Com порт

  • Автор темы Guest
  • Дата начала
G

Guest

#1
Вопщем мне требуется "поговорить с ком портом" , погуглил нашел вот такие фичи CreateFile, WriteFile,ReadFile , попробовал но не могу поянть какой параметр к чему, точнее напишите ваши говорилки с ком портом с описанием плиз.. :) ,
Пример задачи открыть порт, запустить чтение из него(причем ели нет входящих строк в течение определенного времени выбрасывать эксепшн) чтение производить асинхронное, и раз в n секунда писать какую нить команду.. Чтение из порта производить в потоке демоне..
ПС: это не моя задача, просто я хочу увидить как это выглядит в Си , на жабе это у меня реализованно.. Кто сможет помочь , помогите пожалуста.. :blink:
 
G

Guest

#2
Понял в чем у меня сложность , счас точный вопрос сформулирую:
Какая функция реализует вот такие вещи(пример на java написан):

[codebox]InputStream in = port.getInputStream();
byte[] buff = new byte[in.aviable];//помойму так пишется[/codebox]


Вопщем я не знаю какое количество байт ко мне прийдет , какая фунция говорит , что чтение закончилось, или ожидайте к примеру 20 байт , чтоб в ReadFile , в поле по количеству чтения выставить точной количество байт ответа с ком порта , помойму вот так вопрос звучит?!
 
Z

zubr

#3
Кирзач
Сложно отвечать на вопросы человеку, когда он не в теме.
Советую
1. Почитать книжку "Последовательные интерфейсы ПК. Практика программирования" П.Агуров. В сети есть в электронном виде.
2. MSDN. Там тоже есть примеры работы с COM-портами.
 
Z

zubr

#5
Есть несколько методов. Все зависит от реализации протокола обмена данными. Все возможные методы хорошо описаны у Агурова.
 
G

Guest

#6
Thanks , за настойчивость , читаю книжку , зачетно написано. :)
 
G

Guest

#7
Делаю так , но не работает..

[codebox]
TComStat statusBytes ;
long AviableBytes =statusBytes.cbInQue;
ShowMessage("BytesAviable:"+(AnsiString)AviableBytes);


[/codebox]
Какой еще вариант есть?