|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.05.2011, 14:39 | #1 |
Новичок
Джуниор
Регистрация: 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);//применяем новые настройки |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Контроль корректности ввода данных | 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 |