![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
COM+HEX [D6, WinXP]
Phantomouse © (2004-12-14 16:28:00)Приветствую.
Я наверное уже всех достал, но...
Спасибо за предыдущие советы. Они мне помогли. Но тем не менее снова проблема. Открываю и настраиваю COm-порт. Все нормально. Нормально также передаются данные. И читается все хорошо. Только нет разницы, включено ли устройство по ту сторону COMа, или нет :-). Все-равно возвращает одно и то же :-(((.
В общем задача такая. Есть такой протокольчик:
Обмен осуществляется через интерфейс RS232, скорость обмена 9600 Бод. Прием и передача байта осуществляется последовательным потоком 11 бит: 1 стартовый бит, 8 бит данных (младшими битами вперед), 9-ый бит данных 0 или 1, 1 стоповый бит.
Передачу информации по протоколу 0 всегда начинает ЭВМ с команды синхронизации, в которой восемь бит данных содержат номер весов (от 0 до 99), а девятый бит данных устанавливается в 1. Все остальные команды и данные передаются с девятым битом данных, равным 0. Номер весов задается в каждых весах ручным программированием. Нулевой номер воспринимают все весы, не зависимо от установленного на них номера. При передаче числа, состоящего из двух байт и более, первым передается младший байт. Все числа передаются в двоичной системе счисления, отрицательные в дополнительном коде.
Установка в весах параметров этикетки:
Компьютер -> Команда синхронизации 1 байт (номер весов). -> Весы
Компьютер Весы
Компьютер
ECM (2004-12-15 12:00:00) [1]Могу посоветовать свою софтину - писалась как раз под решение
такого класса задач - она меня уже выручала неоднократно.
http://kolibdb.100free.com/wTerm.zip~ 80кБ
DiamondShark (2004-12-14 20:25:00) [2]Ну, во-первых.
Менять настройку Parity надо после того, как от весов получен ответ на синхронизацию.
Иначе синхробайт от весов не будет принят.
Трассируй не возвращаемый результат ReadFile/WriteFile, а буфер и количество посланных/принятых байт.
Строки посылать, используя в качестве буфера массив символов.
TUser (2004-12-14 18:42:00) [3]ну и шли туда $xx - это и есть hex
Phantomouse (2004-12-14 16:32:00) [4]Простите. небольшая ошибка. В последнем шаге в описании протокола не весы передают данные компьютеру, а компьютер весам. (это там, где написано Компьютер <- Данные (106 байт)... и т.д.)