Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2011, 14:39   #1
Lexa_kltn
Новичок
Джуниор
 
Регистрация: 15.05.2011
Сообщений: 2
Вопрос Побитовый контроль передаваемых по COM порту данных

Есть следующая задачка:
Необходимо осуществить связь купюроприемника и компа используя RS232 и протокол MDB 3.0. Задача решается на С++ в среде QT и ОС KUbuntu 11.04.

Проблема:
Стандартные функции приема и передачи данных write(fd,buffer,N) и read(fd,buffer,N) не позволяют получить доступ к биту паритета, а очень надо (протокол MDB использует этот бит по-своему).
Какие есть способы получения доступа к этому биту?


На всякий случай вот код конфигурирования порта:

termios options; //создаем переменную с настройками
tcgetattr(_FD,&options); //получаем текущие настройки
cfsetispeed(&options, B9600);//устанавливаем скорость input
cfsetospeed(&options, B9600);//устанавливаем скорость output
//конфигурируем c_cflag
options.c_cflag |= (CLOCAL | CREAD);//не менять "владельца" порта и разрешить чтение
options.c_cflag &= ~CRTSCTS;//выкл аппаратное управление потоком IO данных
options.c_cflag &= ~PARENB;//выкл проверку на четность
options.c_cflag &= ~CSTOPB;//1 stop бит
options.c_cflag &= ~CSIZE;//маскирование размера IO данных
options.c_cflag |= CS8;//установка размера IO данных
//конфигурируем c_lflag
options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);//выбор неканонического способа передачи
//конфигурируем c_iflag
options.c_iflag &= ~INPCK; //выкл проверку на четность для входных данных
options.c_iflag &= ~IGNPAR; //игнорировать ошибки четности
options.c_iflag &= ~PARMRK; //
options.c_iflag &= ~ISTRIP; //не отбрасывать бит четности
options.c_iflag |= (IXON | IXOFF | IXANY); //программное управление потоком передачи данных
//конфигурируем c_oflag
options.c_oflag &= ~OPOST; // не обработанный вывод данных
//конфигурируем c_cc
options.c_cc[VMIN]=0;
tcsetattr(_FD,TCSAFLUSH, &options);//применяем новые настройки
Lexa_kltn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контроль корректности ввода данных SergSpectr Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 23.12.2010 11:27
Как узнать тип данных передаваемых sendbuf и send? Crystallon Работа с сетью в Delphi 4 29.07.2010 19:22
Считывание и расшифровка (интерпретация) данных с lpt порта, передаваемых печатающему устройству Ma3a Общие вопросы Delphi 3 21.12.2009 08:46
Формат передаваемых данных хабам локальной сети, при отправке личных сообщений из DC клиетов docm Общие вопросы .NET 0 18.11.2008 15:33
Контроль ввода данных в классе oleg kutkov Общие вопросы C/C++ 1 14.04.2008 22:19