Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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 байт)... и т.д.)


Наверх

Титульная страница Поиск, карта сайта Написать письмо