Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.26;
Скачать: CL | DM;

Вниз

COM+HEX   Найти похожие ветки 

 
Phantomouse   (2004-12-11 10:12) [0]

Приветствую Вас, мастера!

На днях столкнулся с такой проблемой:
Пишу программу, которая должна будет обмениваться информацией с электронными весами по специальному протоколу, описанпие которого прислали производители этих самых весов. Но команды в нем все должны передаваться в двоичной системе.

Кто-нибудь может мне объяснить, что означают записи
HEX-77
HEX-01
HEX-00
HEX-10
HEX-02
HEX-0A
Если 01,00,10 еще похожи на двоичное число, то 77, 02 и 0A - точно нет :-(.

И вроде бы HEX - признак шестнадцатиричной системы? Или нет?

И еще вопрос. Как передать эти самые HEX-xx в COM-порт и, соответственно, получить их. Я использую компонент TCommPortDriver, но методов посылки там несколько:
CommPortDriver1.SendData(DataPtr:Pointer,DataSize:Cardinal):Cardinal
CommPortDriver1.SendDataEx(DataPtr:PChar,DataSize:Cardinal,Timeout:Cardinal):Cardinal
CommPortDriver1.SendByte(Value:Byte):Boolean
CommPortDriver1.SendChar(Value:Char):Boolean
CommPortDriver1.SendString(S:String):Boolean
CommPortDriver1.SendZString(S:PChar):Boolean

Какой (и если знаете как) использовать?

Кусочек описания протокола можно взять по адресу:
http://www.antey.com.ru/protocol.zip

Может быть кто-нибудь подскажет доки по этому вопросу.


 
TUser ©   (2004-12-11 10:28) [1]


> И вроде бы HEX - признак шестнадцатиричной системы? Или
> нет?

Да. Они записали тебе цифры в шестнадцатиричном виде. Но в компе они все равно - двоичные.

> Я использую компонент TCommPortDriver, но методов посылки
> там несколько:

Надо читать справку по этому компоненту, раз ты его используешь.


 
Digitman ©   (2004-12-11 10:33) [2]


> Кто-нибудь может мне объяснить, что означают записи


эти записи означают, что числовые значения в них для удобства визуального восприятия представлены в 16-ричной системе счисления

const
SomeCommandSequence: array[0..5] of Byte = ($77, $01, $00, $10, $02, $0A);

1.
SomeResult := CommPortDriver1.SendData(@SomeCommandSequence, SizeOf(SomeCommandSequence));

2.
SomeResult := CommPortDriver1.SendDataEx(@SomeCommandSequence, SizeOf(SomeCommandSequence), SomeTimeout);

3.
for i := 0 to SizeOfSizeOf(SomeCommandSequence) - 1 do
SomeResult := CommPortDriver1.SendByte(SomeCommandSequence[i]);

4.
for i := 0 to SizeOfSizeOf(SomeCommandSequence) - 1 do
SomeResult := CommPortDriver1.SendChar(Char(SomeCommandSequence[i]));


 
Phantomouse   (2004-12-11 10:38) [3]

Благодарю.



Страницы: 1 вся ветка

Текущий архив: 2004.12.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
10-1072286014
Mozg
2003-12-24 20:13
2004.12.26
Переход с Delphi5 + Visibroker 3 на Delphi 7 + Visibroker4


14-1102323016
infom
2004-12-06 11:50
2004.12.26
Верите ли вы в победу ЦСКА в Париже ?


14-1102528952
Alexander Panov
2004-12-08 21:02
2004.12.26
Настройка Apache.


14-1102258472
GanibalLector
2004-12-05 17:54
2004.12.26
API-монитор


1-1103102918
_Max_
2004-12-15 12:28
2004.12.26
Как отключить/перехватиывать буфер обмена Windows?