26#ifndef PROTOCORE_ESPNOW_H
27#define PROTOCORE_ESPNOW_H
31#if PROTOCORE_ENABLE_ESPNOW
40#define PROTOCORE_ESPNOW_HDR 3
43#define PROTOCORE_ESPNOW_MAGIC 0xE5
46#define PROTOCORE_ESPNOW_MAX_PAYLOAD 247
49typedef void (*protocore_espnow_recv_fn)(
const uint8_t mac[6], uint8_t type,
const uint8_t *payload,
size_t len);
55 const uint8_t *payload;
67 const uint8_t **payload;
87} EspnowPeerRemoveArgs;
93 protocore_espnow_recv_fn cb;
107 const uint8_t *payload;
115 const uint8_t *payload;
117} EspnowBroadcastArgs;
161 EspnowEncodeArgs encode_args;
162 EspnowDecodeArgs decode_args;
163 EspnowPeerAddArgs peer_add_args;
164 EspnowPeerHasArgs peer_has_args;
165 EspnowPeerRemoveArgs peer_remove_args;
166 EspnowBeginArgs begin_args;
167 EspnowAddPeerArgs add_peer_args;
168 EspnowSendArgs send_args;
169 EspnowBroadcastArgs broadcast_args;
175extern EspnowVars EspnowV;
180 void (*
const encode)(uint8_t *work);
181 void (*
const decode)(uint8_t *work);
182 void (*
const peers_reset)(uint8_t *work);
183 void (*
const peer_add)(uint8_t *work);
184 void (*
const peer_has)(uint8_t *work);
185 void (*
const peer_remove)(uint8_t *work);
186 void (*
const peer_count)(uint8_t *work);
187 void (*
const begin)(uint8_t *work);
188 void (*
const add_peer)(uint8_t *work);
189 void (*
const send)(uint8_t *work);
190 void (*
const broadcast)(uint8_t *work);
195void protocore_espnow_encode(uint8_t *work);
196void protocore_espnow_decode(uint8_t *work);
197void protocore_espnow_peers_reset(uint8_t *work);
198void protocore_espnow_peer_add(uint8_t *work);
199void protocore_espnow_peer_has(uint8_t *work);
200void protocore_espnow_peer_remove(uint8_t *work);
201void protocore_espnow_peer_count(uint8_t *work);
202void protocore_espnow_begin(uint8_t *work);
203void protocore_espnow_add_peer(uint8_t *work);
204void protocore_espnow_send(uint8_t *work);
205void protocore_espnow_broadcast(uint8_t *work);
211static const EspnowNs Espnow __attribute__((unused)) = {
212 .encode = protocore_espnow_encode,
213 .decode = protocore_espnow_decode,
214 .peers_reset = protocore_espnow_peers_reset,
215 .peer_add = protocore_espnow_peer_add,
216 .peer_has = protocore_espnow_peer_has,
217 .peer_remove = protocore_espnow_peer_remove,
218 .peer_count = protocore_espnow_peer_count,
219 .begin = protocore_espnow_begin,
220 .add_peer = protocore_espnow_add_peer,
221 .send = protocore_espnow_send,
222 .broadcast = protocore_espnow_broadcast,
226extern const uint8_t PROTOCORE_ESPNOW_BROADCAST[6];
237uint8_t *protocore_espnow_span(
void);
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS