d1 = 0x07
did1 = 0xFF
did2 = 0xFF
checksum = rem(d1 + did1 + did2, 256)
command =
<<@head, d1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, did1, did2, checksum, @tail>>
Circuits.UART.write(state.pid, command)
d1 = номер команды (первый байт в дате, дата 15 байт)
did* - id датчика (FF,FF - все датчики)
Как собственно красиво сделать command, чтобы избежать повторения нулей?
В общем отправляется пакет из 19 байт. Голова 2 байта, потом 15 байт дата, чек сумма и хвост по одному байту.
Чек сумма это просто сумма дата байтов.
0::size(...)
Обсуждают сегодня