Форум: "Основная";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c