Из программы C+ (Linux) в цикле опрашиваю несколько устройств, подключенных к com порту. В определенный момент происходит какая-то ошибка и модули перестают отвечать (запрос уходит, а read всегда возвращает длину 0). Если в этот момент выполнить закрытие, а потом открытие порта, опрос можно продолжать до возникновения следующей ошибки. Функции read и write всегда заканчиваются без ошибок. Я отслеживаю длину блока, которую возвращает read, и, если она =0, выполняю переоткрытие порта. Но это явно не лучший способ.Полагаю, что где-то поднимается флаг ошибки и порт перестает принимать и передавать данные. В чем может быть дело? Как можно в C++ под Linux узнать код последней ошибки передачи данных через порт?
|