Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.065 c
14-1102494574
Rouse_
2004-12-08 11:29
2004.12.26
LOL


14-1102171935
sof_
2004-12-04 17:52
2004.12.26
IP адрес и доступ к дискам по сети


1-1103096660
Balck_Fury
2004-12-15 10:44
2004.12.26
Как организовать обмен полями записи, через типизированный файл


3-1101627994
MaxxSoft
2004-11-28 10:46
2004.12.26
Создание / изменение процедур


9-1093143246
Xerx
2004-08-22 06:54
2004.12.26
Где достать модели косм. кораблей?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский