|
ProtoCore v0.0.1
Deterministic, zero-heap network stack for embedded targets
|
EnOcean ESP3 serial codec (PC_ENABLE_ENOCEAN) - energy-harvesting 868 MHz. More...
#include "protocore_config.h"Go to the source code of this file.
EnOcean ESP3 serial codec (PC_ENABLE_ENOCEAN) - energy-harvesting 868 MHz.
A UART telegram codec for EnOcean Serial Protocol 3 (ESP3), the framing every USB / serial EnOcean gateway (TCM 310 / USB 300) speaks. A telegram is:
0x55 | data-len (2, big-endian) | opt-len (1) | packet-type (1) | CRC8H | data[data-len] | opt[opt-len] | CRC8D
where CRC8H protects the 4 header bytes and CRC8D protects the data + optional data (both CRC-8, polynomial 0x07, init 0). pc_esp3_parse() frames one telegram out of a byte stream, resynchronizing on a bad sync / CRC, and pc_esp3_build() assembles one. This is the radio- plugin codec for the gateway: an inbound RADIO_ERP1 telegram carries a sender id (its source address) and payload; bridge it northbound with pc_gateway_uplink(). Pure - you feed it the UART bytes - so it is fully host-testable. See example EnOceanGateway.
Definition in file enocean.h.