Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
3-1101455362
speed
2004-11-26 10:49
2004.12.26
Загрузка акцесс базы в приложение...


3-1101888350
Black
2004-12-01 11:05
2004.12.26
Как программно отключить клиента от сервера?


1-1102863512
Илья
2004-12-12 17:58
2004.12.26
FileRead даёт результат -1


1-1103007188
dr Tr0jan
2004-12-14 09:53
2004.12.26
Почему к строке StringGrid нельзя применить Delete?


6-1097758501
Григорьев Антон
2004-10-14 16:55
2004.12.26
Как авторизоваться на прокси?




   Наверх