Здравствуйте, Starwarrior, Вы писали:
S>Кто-нибудь в курсе, какие надо ставить флаги в SetCommMask чтобы при поступлении любых данных в порт они тут же обрабатывались?
Флаг EV_RXCHAR. При нем сразу вызывается обработчик, когда в буфер порта поступают данные, дальше ты сам считываешь.
P.S. Если не секрет, что за устройство, где ты выбрал ассинхронный режим работы COM-порта?
Re[2]: Как принять данные из COM-порта
От:
Аноним
Дата:
19.06.04 08:26
Оценка:
Здравствуйте, PauseBreak, Вы писали:
PB>Здравствуйте, Starwarrior, Вы писали:
S>>Кто-нибудь в курсе, какие надо ставить флаги в SetCommMask чтобы при поступлении любых данных в порт они тут же обрабатывались? PB>Флаг EV_RXCHAR. При нем сразу вызывается обработчик, когда в буфер порта поступают данные, дальше ты сам считываешь. PB>P.S. Если не секрет, что за устройство, где ты выбрал ассинхронный режим работы COM-порта?
Эх, не хочет EV_RXCHAR работать... А работаю с русской радиоаппаратурой
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, PauseBreak, Вы писали:
PB>>Здравствуйте, Starwarrior, Вы писали:
S>>>Кто-нибудь в курсе, какие надо ставить флаги в SetCommMask чтобы при поступлении любых данных в порт они тут же обрабатывались? PB>>Флаг EV_RXCHAR. При нем сразу вызывается обработчик, когда в буфер порта поступают данные, дальше ты сам считываешь. PB>>P.S. Если не секрет, что за устройство, где ты выбрал ассинхронный режим работы COM-порта? А>Эх, не хочет EV_RXCHAR работать... А работаю с русской радиоаппаратурой
А при простом синхронном режиме данные получаешь?
Re[4]: Как принять данные из COM-порта
От:
Аноним
Дата:
22.06.04 06:03
Оценка:
еще один вопрос по теме — есть некое устройство (носимый терминал транкинговой связи), понимающее АТ команды. необходимо написать небольшую программку которая бы эти команды слала и получала ответ. Почитал все ветки, посвященные работе с портами, написал примерно следующее:
Здравствуйте, Аноним, Вы писали:
А>еще один вопрос по теме — есть некое устройство (носимый терминал транкинговой связи), понимающее АТ команды. необходимо написать небольшую программку которая бы эти команды слала и получала ответ. Почитал все ветки, посвященные работе с портами, написал примерно следующее:
А>char *buf_out="AT\r"; А>char *buf_in;
А>DWORD bc; А>DCB *dcb; А>COMMTIMEOUTS ct; А>HANDLE port; А>DWORD mask;
А>dcb=(DCB*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(DCB));
Не надо забывать указать dcb->DCBlength=sizeof(DCB); А>BuildCommDCB("baud=38400 parity=N data=8 stop=1",dcb); dcb->>fNull=TRUE;
А>ct.ReadIntervalTimeout=50; А>ct.ReadTotalTimeoutMultiplier=ct.ReadTotalTimeoutConstant=0; А>ct.WriteTotalTimeoutMultiplier=ct.WriteTotalTimeoutConstant=0;
А>buf_in=(char*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,strlen(buf_out)+1);
А>WriteFile(port,buf_out,strlen(buf_out),&bc,NULL);
Между этими функциями должна быть временная задержка! А>ReadFile(port,buf_in,strlen(buf_out),&bc,NULL);
Все функции выполняются? Проверки на ошибки есть?
Надо посмотреть полное описание устройства. wabo@inbox.ru.
Re[6]: Как принять данные из COM-порта
От:
Аноним
Дата:
23.06.04 11:27
Оценка:
Здравствуйте, PauseBreak, Вы писали:
PB>Все функции выполняются? Проверки на ошибки есть?
PB>Надо посмотреть полное описание устройства. wabo@inbox.ru.