25#ifndef PROTOCORE_ENOCEAN_H
26#define PROTOCORE_ENOCEAN_H
39enum class pc_esp3_type : uint8_t
41 ESP3_RADIO_ERP1 = 0x01,
43 ESP3_RADIO_SUB_TEL = 0x03,
45 ESP3_COMMON_COMMAND = 0x05,
46 ESP3_SMART_ACK = 0x06,
47 ESP3_REMOTE_MAN = 0x07,
48 ESP3_RADIO_ERP2 = 0x0A,
62uint8_t pc_esp3_crc8(
const uint8_t *buf, uint16_t len);
71int pc_esp3_parse(
const uint8_t *raw, uint16_t len, pc_esp3_packet *out);
78uint16_t pc_esp3_build(pc_esp3_type type,
const uint8_t *data, uint16_t data_len,
const uint8_t *opt, uint8_t opt_len,
79 uint8_t *out, uint16_t cap);
88#define PC_ERP_RORG_RPS 0xF6
89#define PC_ERP_RORG_1BS 0xD5
90#define PC_ERP_RORG_4BS 0xA5
91#define PC_ERP_RORG_VLD 0xD2
92#define PC_ERP_RORG_MSC 0xD1
93#define PC_ERP_RORG_ADT 0xA6
94#define PC_ERP_RORG_UTE 0xD4
100 const uint8_t *payload;
110bool pc_erp1_parse(
const uint8_t *data, uint16_t len, pc_erp1 *out);
119uint16_t pc_erp1_build(uint8_t *out, uint16_t cap, uint8_t rorg,
const uint8_t *payload, uint8_t payload_len,
120 uint32_t sender_id, uint8_t status);
User-facing configuration for ProtoCore.