Форум: "Потрепаться";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];
ВнизТри дня мурыжу протокол, между устройством и прогой для него.. Найти похожие ветки
← →
Fredericco (2002-06-21 13:07) [0]Если кому интересно или кто имеет опыт расшифровки чужих протоколов - помогите пожалуйста. Ситуация такая: есть одно устройство (для управления теплым полом) и программа для него. Устр-во соединяется с компом через RS232. Я вклинился между ними и смотрю какие комманды передаются и принимаются. Опытным путем выяснил для какого параметра какая комманда. А вот с чем, собственно, не могу разобраться: команда устанавливающая температуру, где в ней передается как параметр значение температуры. Для одной температуры строго зафиксированная комманда, они не меняютя. А вот и сами команды :
82 06 47 03 01 10 06 00 74 26 00 7D 00 7A 83 - 24.9
82 06 47 03 01 10 06 00 60 26 00 7D 00 6E 83 - 24.8
82 06 47 03 01 10 06 00 4C 26 00 7D 00 42 83 - 24.7
82 06 47 03 01 10 06 00 4C 26 00 7D 00 42 83 - 24.7
82 06 47 03 01 10 06 00 14 28 00 7D 00 14 83 - 25.7
82 06 47 03 01 10 06 00 5C 29 00 7D 00 5D 83 - 26.7
82 06 47 03 01 10 06 00 24 2B 00 7D 00 27 83 - 27.7
82 06 47 03 01 10 06 00 6C 2C 00 7D 00 68 83 - 28.7
82 06 47 03 01 10 06 00 34 2E 00 7D 00 32 83 - 29.7
82 06 47 03 01 10 06 00 60 2B 00 7D 00 63 83 - 28.0
82 06 47 03 01 10 06 00 28 2D 00 7D 00 2D 83 - 29.0
82 06 47 03 01 10 06 00 70 2E 00 7D 00 76 83 - 30.0
82 06 47 03 01 10 06 00 38 30 00 7D 00 20 83 - 31.0
82 06 47 03 01 10 06 00 00 32 00 7D 00 1A 83 - 32.0
82 06 47 03 01 10 06 00 48 33 00 7D 00 53 83 - 33.0
82 06 47 03 01 10 06 00 10 35 00 7D 00 0D 83 - 34.0
82 06 47 03 01 10 06 00 58 36 00 7D 00 46 83 - 35.0
82 06 47 03 01 10 06 00 68 07 00 7D 00 47 83 - 5.0
82 06 47 03 01 10 06 00 30 09 00 7D 00 11 83 - 6.0
82 06 47 03 01 10 06 00 78 0A 00 7D 00 5A 83 - 7.0
82 06 47 03 01 10 06 00 40 0C 00 7D 00 64 83 - 8.0
82 06 47 03 01 10 06 00 08 0E 00 7D 00 2E 83 - 9.0
82 06 47 03 01 10 06 00 50 0F 00 7D 00 77 83 - 10.0
После черточки: какая температура передается.
Заране спасибо.
С уважением Fredericco.
← →
vuk (2002-06-21 14:00) [1]На первый взгляд...
Температура - 9 и 10 байт. Разнице в 5 градусов соответствует приращение на 2024 ($07E8).
$0768 - 5.0
$0F50 - 10.0 (+$7E8)
...
$2B60 - 28.0
$3348 - 33.0 (+$7E8)
...
$2E70 - 30.0
$3658 - 35.0 (+$7E8)
14 байт скорее всего содержит контрольную сумму пакета...
← →
Fredericco (2002-06-21 14:14) [2]2 vuk
Огромное спасибо!
Но возникло два вопроса.
1) Число может содержать и дробную часть;
2) С приращением одного градуса чего-то не выходит.
Но все равно спасибо, что откликнулся!
← →
Fredericco (2002-06-21 14:16) [3]2 vuk
2-й вопрос снимается.
← →
Fredericco (2002-06-21 18:08) [4]2 vuk
Поднимается.
Это приращение не всегда верно.
← →
limon (2002-06-21 19:06) [5]все правильно. дело не в приращении, а в т.н. цене деления(цена младшего разряда), а также в неточности термометра и дрожании датчика.
соответствие прослеживается такое:
10 градусов = 4096 ~ 0x1000 ~ $1000;
младший разряд соответственно - 10/4096 = 0,00244140625 градуса
за счет дрожания АЦП и датчика получаешь
> Это приращение не всегда верно.
← →
limon (2002-06-21 19:07) [6]на всякий случай таблица стандартных кодов
// control character of communication process
SOH = $01; // Start Of Heading
STX = $02; // Start Of Text
ETX = $03; // End Of Text
EOT = $04; // End Of Transmission (Tape)
ENQ = $05; // ENQury
ACK = $06; // ACKnowledge
BEL = $07; // BELl
BS = $08; // BackSpace
HT = $09; // Horisontal Tabulator
LF = $0A; // Line Feed
VT = $0B; // Vertical Tabulator
FF = $0C; // Form Feed
CR = $0D; // Carridge Return
SO = $0E; // Shift Out
SI = $0F; // Shift In
DLE = $10; // Data Line Escaped
DC1 = $11; // Device Control 1 (XOFF)
DC2 = $12; // Device Control 2
DC3 = $13; // Device Control 3 (XON)
DC4 = $14; // Device Control 4
NAK = $15; // Negative AcKnowledgement
SYN = $16; // SYNchronous idle
ETB = $17; // End of Transmission Block
CAN = $18; // CANcel
EM = $19; // End of Medium
SUB = $1A; // SUBstitute // EOF - End Of File
ESC = $1B; // ESCape
FS = $1C; // Field(File) Separator
GS = $1D; // Group Separator
RS = $1E; // Record Separator
US = $1F; // Unit Separator
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c