Russian Qt Forum

Qt => Вопросы новичков => Тема начата: mus_zzz от Январь 20, 2016, 10:12



Название: QSerialPort
Отправлено: mus_zzz от Январь 20, 2016, 10:12
Доброго дня! Вопрос по методу waitForReadyRead:

while(1)
{
  ...
  Port.write();//записываем в порт

  if(waitForReadyRead(100))//не выполняется при отсутствии данных в теч.100мс
 {
      A = Port.readAll();
 }
}
Условие выполняется один раз.Может я неправильно толкую метод waitForReadyRead?


Название: Re: QSerialPort
Отправлено: Bepec от Январь 20, 2016, 10:41
оффтоп: как же меня бесит это while(1). Каждый раз начинаю вспоминать все true / false во всех известных мне языках и постоянно путаюсь. Неужели сложно написать true или false?  :D


Название: Re: QSerialPort
Отправлено: mus_zzz от Январь 20, 2016, 10:46
Ок.

while(true)
{
  ...
  Port.write();//записываем в порт

  if(waitForReadyRead(100))//не выполняется при отсутствии данных в теч.100мс
 {
      A = Port.readAll();
 }
}
Условие выполняется один раз.Может я неправильно толкую метод waitForReadyRead?


Название: Re: QSerialPort
Отправлено: poru от Январь 20, 2016, 13:05
Так же сталкивался с такой проблемой. Сейчас использую только проверку на количество байт в буфере за отведенное время (bytesAvailable). А вообще 40 строк исходного кода waitForReadyRead поражает своей насыщенностью.


Название: Re: QSerialPort
Отправлено: mus_zzz от Январь 20, 2016, 13:35
спс, буду пробывать


Название: Re: QSerialPort
Отправлено: mus_zzz от Январь 20, 2016, 14:10
подскажите, а где можно просмотреть реализацию самого метода waitForReadyRead?