The OpenNET Project / Index page

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

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

"Проблема при обращении к com-порту /dev/ttyS0"  +1 +/
Сообщение от hellbat email on 06-Мрт-08, 11:32 
Программирую com-порт, для отладки пытаюсь писать туда одним процессом,
а считывать другим. Открываю с помощью
open( "/dev/ttyS0", O_RDWR, O_NDELAY, O_NOCTTY );
затем fcntl( fd, F_SETFL, FNDELAY );
Пишется туда без проблем, а вот при чтении read() возращает -1.
Есть соображения, что устройство блокируется одним процессом и думаю, что
надо копать в сторону ioctl, но чтото в манах ничего не нашёл.
Ответить | Правка | Cообщить модератору

Оглавление

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


1. "Проблема при обращении к com-порту /dev/ttyS0"  +/
Сообщение от hellbat email on 06-Мрт-08, 11:54 
А, чуть не забыл! perror() возвращает Resourse temporarily unavailable
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Проблема при обращении к com-порту /dev/ttyS0"  +/
Сообщение от eee (??) on 06-Мрт-08, 12:50 
>Программирую com-порт, для отладки пытаюсь писать туда одним процессом,
>а считывать другим. Открываю с помощью
>open( "/dev/ttyS0", O_RDWR, O_NDELAY, O_NOCTTY );
>затем fcntl( fd, F_SETFL, FNDELAY );
>Пишется туда без проблем, а вот при чтении read() возращает -1.
>Есть соображения, что устройство блокируется одним процессом и думаю, что
>надо копать в сторону ioctl, но чтото в манах ничего не нашёл.
>

Для loopbabk, порт должен быть настроен. Надо проверить работает ли прерывание setserial /dev/ttyS0.
У меня другая проблема, как определить конец передачи по ассинхронному порту rs-422. Не все контакты задествованы.
Документация есть http://tldp.org/HOWTO/Serial-Programming-HOWTO/

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Проблема при обращении к com-порту /dev/ttyS0"  +/
Сообщение от Fisher (??) on 06-Мрт-08, 13:38 
>Программирую com-порт, для отладки пытаюсь писать туда одним процессом,
>а считывать другим. Открываю с помощью
>open( "/dev/ttyS0", O_RDWR, O_NDELAY, O_NOCTTY );
>затем fcntl( fd, F_SETFL, FNDELAY );
>Пишется туда без проблем, а вот при чтении read() возращает -1.
>Есть соображения, что устройство блокируется одним процессом и думаю, что
>надо копать в сторону ioctl, но чтото в манах ничего не нашёл.
>

https://www.opennet.ru/docs/RUS/serial_guide/

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Проблема при обращении к com-порту /dev/ttyS0"  +/
Сообщение от hellbat email on 07-Мрт-08, 12:42 
>https://www.opennet.ru/docs/RUS/serial_guide/

Читал аж на 2 языках, не помогло)
Как настроить порт для loopback?


Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Проблема при обращении к com-порту /dev/ttyS0"  +/
Сообщение от Fisher (??) on 07-Мрт-08, 13:36 
>>https://www.opennet.ru/docs/RUS/serial_guide/
>
>Читал аж на 2 языках, не помогло)
>Как настроить порт для loopback?

Может так никто не делает, но когда я программировал com-порт, я просто физически соединил проиемник с передатчиком, а потом посылал и читал данные.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Проблема при обращении к com-порту /dev/ttyS0"  +/
Сообщение от hellbat email on 08-Мрт-08, 13:38 
>>>https://www.opennet.ru/docs/RUS/serial_guide/
>>
>>Читал аж на 2 языках, не помогло)
>>Как настроить порт для loopback?
>
>Может так никто не делает, но когда я программировал com-порт, я просто
>физически соединил проиемник с передатчиком, а потом посылал и читал данные.
>

Мне нравится эта крутая технология программирования, но ,к сожалению, я не могу приносить всякие провода на работу :)

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Проблема при обращении к com-порту /dev/ttyS0"  +/
Сообщение от alex (??) on 16-Июл-09, 17:39 
>[оверквотинг удален]
>>>
>>>Читал аж на 2 языках, не помогло)
>>>Как настроить порт для loopback?
>>
>>Может так никто не делает, но когда я программировал com-порт, я просто
>>физически соединил проиемник с передатчиком, а потом посылал и читал данные.
>>
>
>Мне нравится эта крутая технология программирования, но ,к сожалению, я не могу
>приносить всякие провода на работу :)

Правильная технология, я соединяю только два контакта(rxd, txd) на одном порту и пытаюсь работать из одной проги. Иначе инфа просто не дойдёт.

У меня другая ошибка: при исполнении строки кода "tcgetattr(fd, def);" в консоли выдаётся "segmentation fault" и программа вылетает.


Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Проблема при обращении к com-порту /dev/ttyS0"  +/
Сообщение от Mike (??) on 07-Окт-11, 10:08 
>open( "/dev/ttyS0", O_RDWR, O_NDELAY, O_NOCTTY );

Думаю, флажки необходимо объединить по "ИЛИ" для получения двоичной маски, а не перечислять через запятую:
open( "/dev/ttyS0", O_RDWR | O_NDELAY | O_NOCTTY );

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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