Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2021, 12:19   #1
limarukraine
 
Регистрация: 11.11.2012
Сообщений: 7
По умолчанию Зависает приложение при чтении с COM порта

Доброго времени суток.

У меня в потоке все время должен вращаться опрос COM порта - если что-то появилось - она принимается. Ниже приведен код (фрагменты). У меня упорно зависает приложение на строке ReadFile (я это проверил средствами вывода сообщения в окно). Порт у меня виртуальный (пара виртуальных портов). Если я удаляю виртуальный порт приложение не зависает. Причем раньше у меня приложение работало и вдруг возникла эта проблема.

Код:
...
DCB   : TDCB;
  PortHandle1: THandle;
...
...
PortHandle1:= CreateFile('COM2', GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
//  if PortHandle1 = INVALID_HANDLE_VALUE then begin
 // exit;
//  end;
  if GetCommState(PortHandle1, DCB) then ;
  DCB.BaudRate := 9600;
  DCB.ByteSize := 8;
  DCB.Parity := NOPARITY;
  DCB.StopBits := ONESTOPBIT;
  DCB.Flags := 20625;
  if not SetCommState(PortHandle1, DCB) then {ошибка настройки порта};
  if not SetupComm(PortHandle1, 1024, 1024) then {ошибка настройки буферов};
  if PurgeComm(PortHandle1, PURGE_TXABORT or PURGE_RXABORT or PURGE_TXCLEAR or PURGE_RXCLEAR) then ;
...
MyBuff: array[0..1023] of char; //буфер для чтения данных
  ByteReaded: Cardinal; //количество считанных байт
 Status: DWord;
...
begin
 if GetCommModemStatus(PortHandle1, Status) then ;
  if  ReadFile(PortHandle1, MyBuff, SizeOf(MyBuff), ByteReaded, nil) then ;
...
limarukraine вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависает форма при закрытии порта Принтер C# (си шарп) 1 24.12.2015 15:15
Проблеммы при чтении из COM порта Demien Общие вопросы Delphi 3 30.10.2012 23:42
Приложение зависает при обращении к IdHTTP1.Get sasha_gavrithing Работа с сетью в Delphi 2 22.08.2012 15:14
Зависает приложение Slow267 Win Api 2 02.05.2011 13:36
При создании нескольких экземпляров класса приложение зависает Mixasik Общие вопросы C/C++ 1 25.04.2009 13:25