The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Работа с com-портом в Linux"
Отправлено ACCA, 03-Авг-11 01:04 
> 1. Если нет особо жестких требований по времени - достаточно ли просто
> работы с /dev/ttySX, в частности непонятно - можно ли контролировать последовательность
> приема-передачи (мне важно знать, что такой-то байт был получен до или
> после отправки такой-то команды)?

Точная привязка по времени невозможена даже из-за буфера в 16550. В обычном Unix время между приходом байта в порт и чтением из /dev/ttySx никак не регламентировано. Посмотри внимательнее на протокол - если нельзя сделать дисциплину запрос-ответ, то может понадобится какая-нибудь RTOS.


> 2. Правильно ли я понимаю, что вместо того, чтобы расставлять вычисления маленькими
> кусочками между чтением/записью, сейчас более правильно просто "отсаживать" обмен в
> отдельный поток с более высоким приоритетом?

Сильно проще - while (select(...)) { read .... write .... }, однако см. #1. Кроме того, read может вернуть только часть посылки и нужно будет дочитывать остальное. Ещё советуют делать tcdrain перед каждой записью.


> 3. Важна ли сейчас разница между аппаратными реализациями? Или если ядро распознало
> устройство и создало в /dev ссылку, то дальнейшие различия несущественны?

Именно так.


> 4. Значительны ли отличия в работе "классических" портов и преобразователей COM-USB
> (возможность последних пропадать\появляться мне не важна, важны именно отличия в
> программировании)?

ioctl на уровне /dev/ttyU* и /dev/ttyS* не различаются.


> 5. Что можно предпринять во избежание затрат на другие процессы? Пассивная защита
> (поменьше активных демонов) понятна, а активная?

На таких скоростях достаточно, чтобы не было свопа. Остальное - мелочи, на которые можно не обращать внимания. Хочется поиграть в нагруженную систему - можно сделать SCHED_FIFO через sched_setscheduler.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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