На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania 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;
      }
      1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script Execution time: 0,0590 ]   [ 15 queries used ]   [ Generated: 16.07.19, 10:16 GMT ]