Добрый день всем.
Подключил по шине RS-485 датчик угарного газа/метана.
Данные читаются.
Прошу помощи в разборе поля
Адрес 0x01 - 16 разрядный регистр состояния газосигнализатора (только чтение) со следующими информационными байтами:
старший байт - тип устройства;
1 - метан, пропан (далее – “CH”)
17 - угарный газ (СО)
18 - метан, пропан (“CH”)+ угарный газ (СО)младший байт - текущее состояние устройства в формате ХХХХ Х D1 D1 D0; D1 1 - превышен порог, 0 – дежурный режим
D0 0 - неисправность, 1 – дежурный режим.
Каким образом при чтении параметра разбирать его на байты в различные каналы устройства?
При опросе из cli имею результат
Opening /dev/ttyRS485-1 at 9600 bauds (N, 8, 2)
[0A][03][00][01][00][01][D4][B1]
Waiting for a confirmation…
<0A><03><02><12><01>
SUCCESS: read 1 of elements:
Data: 0x1201
Данные читаются верно, но хотелось бы получить в разные каналы биты ответа
Т.е. разбить 0х1201 на
- версию устройства (0х12 = 18 = датчик угарного газа и метана)
- отсутствие тревоги по полям 1-го и второго бита (два ноля в ответе)
- бит дежурного режима/неисправности (единица в ответе)
с уважением
Евгений