![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброго времени суток,
Уважаемые программеры, помогите в решение проблемы. Мне необходимо, чтоб моя программа принимала данные через COM-порт и проводила анализ их. Процедура клавиши "Читать": Код:
procedure TForm1.btn4Click(Sender: TObject); //Получение данных var d:array[0..127] of Char; actual_bytes:DWORD; TimeOuts:TCommTimeouts; stat:TComStat; begin ... PurgeComm(FHandl, PURGE_TXABORT or PURGE_RXABORT or PURGE_TXCLEAR or PURGE_RXCLEAR); BufferRead := ''; if not ReadFile(FHandl, d, SizeOf(d), actual_bytes, nil) then edt2.Text:='Ошибка' else edt2.Text:='Получение'; BufferRead := d; mmo1.Text:=BufferRead; CloseHandle(FHandl); end; Все бы хорошо, но принимаются только 128 символов, затем порт закрывается. А необходимо получать постоянно данные, закрывая порт лишь по нажатию клавиши, например, "Стоп". Последний раз редактировалось Admin, 15.06.2010 в 16:15. |
#2
|
|||
|
|||
![]() Единственно что прихидит в голову это зациклить код в потоке, что бы он постоянно прослушивал порт. Некрасиво, знаю....
Люблю спать, пить пиво за компом, день зарплаты... И что бы все работало само по себе. |