32#ifndef PROTOCORE_GATEWAY_H
33#define PROTOCORE_GATEWAY_H
43enum class pc_gateway_kind : uint8_t
66 const uint8_t *payload;
79typedef bool (*pc_gateway_uplink_fn)(
const pc_gateway_msg *msg,
void *ctx);
85typedef bool (*pc_gateway_tx_fn)(uint8_t port_id, uint16_t dst_addr,
const uint8_t *payload, uint16_t len,
void *ctx);
88struct pc_gateway_port_config
98struct pc_gateway_stats
101 uint32_t up_published;
105 uint32_t down_dropped;
109void pc_gateway_reset(
void);
116bool pc_gateway_add_port(
const pc_gateway_port_config *cfg);
119void pc_gateway_set_uplink_cb(pc_gateway_uplink_fn fn,
void *ctx);
122void pc_gateway_set_topic_prefix(
const char *prefix);
132bool pc_gateway_uplink(uint8_t port_id, uint16_t src_addr,
const uint8_t *payload, uint16_t len, int16_t rssi);
138bool pc_gateway_downlink(uint8_t port_id, uint16_t dst_addr,
const uint8_t *payload, uint16_t len);
144uint16_t pc_gateway_topic(
const pc_gateway_msg *msg,
char *buf, uint16_t buflen);
147void pc_gateway_get_stats(pc_gateway_stats *out);
151void pc_gateway_test_set_now(uint32_t ms);
User-facing configuration for ProtoCore.