Передача данных в com порт
Добавлено: 2009-06-08 12:22:41
Есть у меня на работе электронные весы, данные на которые отправляются и принимаются через com порт. Под каждыми весами стоит комп с winxp, на нем 1С, в которой формируется список товаров которые нужно передать на эти весы. Список сохраняется в текстовой файлик и в дальнейшем программкой написанной в Дельфях отправляется на эти самые весы (исходников ее нет).
Пытаюсь написать программку под FreeBsd которая бы делала то же самое. Отправляла данные из файлика на весы.
Но пока что все бестолку.
Проблема в том что С++ я начал изучать неделю назад и именно ради того чтобы написать эту программу. Так что не бейте больно, а лучше направьте в правильном направлении (что где почитать).
Сейчас пытаюсь просто написать программку которая передаст в эти весы просто один товар.
В инструкции ест вот такие вот строки
Обмен осуществляется через интерфейс RS-232, скорость обмена 9600 Бод. Прием и передача
байта осуществляется последовательным потоком 11 бит: 1 стартовый бит, 8 бит данных (младши-
ми битами вперед), 9-ый бит данных 0 или 1, 1 стоповый бит.
Передачу информации по протоколу 0 всегда начинает ЭВМ с команды синхронизации, в кото-
рой восемь бит данных содержат номер весов (от 0 до 99), а девятый бит данных устанавливается
в 1. Все остальные команды и данные передаются с девятым битом данных, равным 0.
как установить передачу по 8 бит данных я понял
стоповый бит вроде тоже
а вот как сделать чтобы каждый девятый бит вначале был 0 а в последующих 1 не пойму.
Пытаюсь написать программку под FreeBsd которая бы делала то же самое. Отправляла данные из файлика на весы.
Но пока что все бестолку.
Проблема в том что С++ я начал изучать неделю назад и именно ради того чтобы написать эту программу. Так что не бейте больно, а лучше направьте в правильном направлении (что где почитать).
Сейчас пытаюсь просто написать программку которая передаст в эти весы просто один товар.
В инструкции ест вот такие вот строки
Обмен осуществляется через интерфейс RS-232, скорость обмена 9600 Бод. Прием и передача
байта осуществляется последовательным потоком 11 бит: 1 стартовый бит, 8 бит данных (младши-
ми битами вперед), 9-ый бит данных 0 или 1, 1 стоповый бит.
Передачу информации по протоколу 0 всегда начинает ЭВМ с команды синхронизации, в кото-
рой восемь бит данных содержат номер весов (от 0 до 99), а девятый бит данных устанавливается
в 1. Все остальные команды и данные передаются с девятым битом данных, равным 0.
как установить передачу по 8 бит данных я понял
Код: Выделить всё
// размер передаваемых данных - 8 байт
//newOptions.c_cflag &= ~CSIZE;
newOptions.c_cflag |= CS8;
стоповый бит вроде тоже
Код: Выделить всё
// число стоп- битов =1
newOptions.c_cflag &= ~CSTOPB;