The OpenNET Project / Index page

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



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

Исходное сообщение
"Определение бита четности при передаче через последовательны..."
Отправлено Iceman, 05-Мрт-07 16:47 
Есть задача - организовать обмен данными с неким устройством, которое подключено к последовательному порту компьютера с ОС Linux. При этом устройство общается с компьютером в простой асинхронном режиме, ничего сложного - принимать/отправлять байты (символы) получается, не проблема.

Но есть одна единственная загвоздка - при передаче данных устройству необходимо первый байт посылки принудительно пометить битом четности (т.н. wakeup bit). Кроме того, в некоторых случаях, от устройства тоже возможен прием байта с таким битом, при том, что контроль четности на самом деле отключен. В связи с этим, собственно, вопрос: можно ли каким-то образом при получении байта из порта проверить, а установлен ли бит четности; и наоборот, при посылке байта, принудительно его установить?

Внимательно изучив доступную документацию по работе с послед. портом, особенно вот здесь http://www.opennet.ru/docs/RUS/serial_guide/ - есть такая возможность:

> Пробел (space parity) бита четности устанавливается также как и отсутствие проверки
> на четность (7S1):

>    options.c_cflag &= ~PARENB
>    options.c_cflag &= ~CSTOPB
>    options.c_cflag &= ~CSIZE;
>    options.c_cflag |= CS8;

Догадываюсь, что примерно таким же способом можно установить и mark parity, что-то вроде

    options.c_cflag |= PARENB
    options.c_cflag &= ~CSTOPB
    options.c_cflag &= ~CSIZE;
    options.c_cflag |= CS8;

Но, в любом случае, остается вопрос: а как проверить бит четности при получении байта из порта?

 

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



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

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