The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
" Получение кода ошибки при работе с com портом"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

" Получение кода ошибки при работе с com портом"  
Сообщение от NightSpider email(ok) on 16-Окт-06, 17:45 
Из программы C+ (Linux) в цикле опрашиваю несколько устройств, подключенных к com порту. В определенный момент происходит какая-то ошибка и модули перестают отвечать (запрос уходит, а read всегда возвращает длину 0). Если в этот момент выполнить закрытие, а потом открытие порта, опрос можно продолжать до возникновения следующей ошибки.
Функции read и write всегда заканчиваются без ошибок. Я отслеживаю длину блока, которую возвращает read, и, если она =0, выполняю переоткрытие порта. Но это явно не лучший способ.

Полагаю, что где-то поднимается флаг ошибки и порт перестает принимать и передавать данные.
В чем может быть дело?
Как можно в C++ под Linux узнать код последней ошибки передачи данных через порт?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. " Получение кода ошибки при работе с com портом"  
Сообщение от gyn61 (ok) on 16-Окт-06, 23:16 
>Из программы C+ (Linux) в цикле опрашиваю несколько устройств, подключенных к com
>порту. В определенный момент происходит какая-то ошибка и модули перестают отвечать
>(запрос уходит, а read всегда возвращает длину 0). Если в этот
>момент выполнить закрытие, а потом открытие порта, опрос можно продолжать до
>возникновения следующей ошибки.

Если вы обмениваетесь с устройствами бинарными данными то возможно послали в линию XOFF поэтому данные и не приходят. Переведите com порт в raw-режим через tcgetattr/cfmakeraw/tcsetattr.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру