На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
  
> ReadFile зависает. , Borland C++ Builder v.6.0.
    Общаюсь с источником питания по COM_порту. Если источник выключен - при успешно открытом порте происходит зависание ф-ции ReadFile. Она так всегда делает, если данные для считывания отсутствуют.

    Как обойти этот баг? EOF какой-нибудь?
      Решение.

      COMMTIMEOUTS ctoSettings = {0}; //Структура задержек работы команд WriteFile и ReadFile. Без них в случае пустого буфера ReadFile зависает.

      ctoSettings.ReadIntervalTimeout = 100;
      ctoSettings.ReadTotalTimeoutMultiplier = 100;
      ctoSettings.ReadTotalTimeoutConstant = 100;
      ctoSettings.WriteTotalTimeoutMultiplier = 100;
      ctoSettings.WriteTotalTimeoutConstant = 100;

      if (SetCommTimeouts(g_hHandle_Power, &ctoSettings) == 0)
      {
      Application->MessageBox("Функция SetCommTimeouts COM-порта не отработала. Возможно, проблемы с COM-портом COM1.", g_cErrorText_Title, g_iErrorText_Icons);
      return false;
      }
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0144 ]   [ 16 queries used ]   [ Generated: 28.03.24, 18:44 GMT ]