Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Но есть нюансы. Оказалось, что на горшке можно просидеть довольно неподвижно и более трех минут, а тогда придется махать руками. Это, конечно, минус. Поэтому я думаю о том, что нужен еще датчик веса — сами понимаете, для чего. Хотя это лишние провода в ванной.

Код команды:
A0 — запрос для получения названия клиента
A1 — отправка названия клиента
A2 — запрос для получения значения датчиков
A3 — отправка значения датчиков
A4 — установка значения для реле
Код устройства получатея:
От 20 до FF
FF — бродкаст
Контрольная сумма — что-то вроде CRC-CCITT (0xFFFF)
www.lammertbies.nl/comm/info/crc-calculation.html
Для одного клиента уникальная нумерация датчиков / реле(выходов).
Запрос для получение названия клиента
[STX = 02]
Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
Код устройства отправителя [20 — FF]
Код устройства получателя [20 — FF]
Код команды [A0]
[EOT = 04]
Отправка названия клиента
[STX = 02]
Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
Код устройства отправителя [20 — FF]
Код устройства получателя [20 — FF]
Код команды [A1]
Название клиена HEX кодами произвольной длины
[EOT = 04]
Запрос для получения значения датчиков
[STX = 02]
Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
Код устройства отправителя [00 — FF]
Код устройства получателя [00 — FF]
Код команды [A2]
[EOT = 04]
Отправка значения датчиков
[STX = 02]
Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
Код устройства отправителя [00 — FF]
Код устройства получателя [00 — FF]
Код команды [A3]
Код датчика [20 — FF]
Значение [0000 — FFFF]
… повторяем для каждого датчика
[EOT = 04]
Установка значения для реле/выхода
[STX = 02]
Контрольная сумма начиная с длины и до EOT (EOT не включается) [0000-FFFF]
Длинна без учета КС и самой длины, обратный порядок байт [0000 — FFFF]
Код устройства отправителя [20 — FF]
Код устройства получателя [20 — FF]
Код команды [A4]
Код реле [20 — FF]
Значение [0000 — FFFF]
… повторяем для каждого реле/выхода, значение которого надо задать
[EOT = 04]
Примеры.
Запрос для получение названия клиента
02F92503002021A004
Отправка названия клиента
02663B07002120A15465737404
Запрос для получения значения датчиков
02D96703002021A204
Отправка значения датчиков
024A1C09002120A320990021AA3004
Установка значения для реле/выхода
02DD0806002021A422010004
Мой удобный дом