необходимо предоставить тайм-аут для обработки ошибок с помощью c - PullRequest
0 голосов
/ 25 марта 2019

Я разрабатываю код для связи между двумя платами контроллеров. Я передаю 9-байтовое сообщение с одной доски на другую. Необходимо определить обработку ошибок на стороне получателя таким образом, чтобы он ожидал 9-байтового значения до истечения времени ожидания. Если время ожидания истекло, управление должно начинаться с 1-й строки функции.

В настоящее время я определил одну строку, как

while (/*wait_loop_cnt++<= MAX_WAIT_LOOP &&*/ counter < length);

в моем коде, но он останется в том же цикле бесконечно, если не получит 9 байт.

Пожалуйста, помогите спасибо

1 Ответ

0 голосов
/ 25 марта 2019

Попробуйте это:

const int length = 9;
int counter = 0;
int wait_loop_cnt = 0;

while (
  wait_loop_cnt++ <= MAX_WAIT_LOOP && 
  counter < length) /* NO semicolon here! */
{
  if (read_byte_successfully(...))
  {
    ++counter;
  }
}

if (counter < length) 
{
  /* Handle case of to few bytes received here. */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...