Вниз
Скачать: 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.45 MB
Время: 0.023 c
1-1102867259
Elc_
2004-12-12 19:00
2004.12.26
Dll MDIForm


3-1101470641
Garincho
2004-11-26 15:04
2004.12.26
Два запроса на одной транзакции


3-1101145639
Сафронов Михаил
2004-11-22 20:47
2004.12.26
Таблицы: главная-подчиненная


1-1102521272
ali_t
2004-12-08 18:54
2004.12.26
как перевести PChar в string


3-1101216607
andrey__
2004-11-23 16:30
2004.12.26
метод UpdateBatch в компоненте TADOTable




   Наверх