|
6 | 6 | #include "esp32-hal-log.h" |
7 | 7 | #include "esp_mac.h" |
8 | 8 |
|
| 9 | +class ESP_NOW_Peer; //forward declaration for friend function |
| 10 | + |
| 11 | +class ESP_NOW_Class : public Print { |
| 12 | +public: |
| 13 | + const uint8_t BROADCAST_ADDR[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; |
| 14 | + |
| 15 | + ESP_NOW_Class(); |
| 16 | + ~ESP_NOW_Class(); |
| 17 | + |
| 18 | + bool begin(const uint8_t *pmk = NULL /* 16 bytes */); |
| 19 | + bool end(); |
| 20 | + |
| 21 | + int getTotalPeerCount(); |
| 22 | + int getEncryptedPeerCount(); |
| 23 | + |
| 24 | + int availableForWrite(); |
| 25 | + size_t write(const uint8_t *data, size_t len); |
| 26 | + size_t write(uint8_t data) { |
| 27 | + return write(&data, 1); |
| 28 | + } |
| 29 | + |
| 30 | + void onNewPeer(void (*cb)(const esp_now_recv_info_t *info, const uint8_t *data, int len, void *arg), void *arg); |
| 31 | + bool removePeer(ESP_NOW_Peer &peer); |
| 32 | +}; |
| 33 | + |
9 | 34 | class ESP_NOW_Peer { |
10 | 35 | private: |
11 | 36 | uint8_t mac[6]; |
@@ -47,28 +72,8 @@ class ESP_NOW_Peer { |
47 | 72 | virtual void onSent(bool success) { |
48 | 73 | log_i("Message transmission to peer " MACSTR " %s", MAC2STR(mac), success ? "successful" : "failed"); |
49 | 74 | } |
50 | | -}; |
51 | | - |
52 | | -class ESP_NOW_Class : public Print { |
53 | | -public: |
54 | | - const uint8_t BROADCAST_ADDR[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; |
55 | | - |
56 | | - ESP_NOW_Class(); |
57 | | - ~ESP_NOW_Class(); |
58 | | - |
59 | | - bool begin(const uint8_t *pmk = NULL /* 16 bytes */); |
60 | | - bool end(); |
61 | | - |
62 | | - int getTotalPeerCount(); |
63 | | - int getEncryptedPeerCount(); |
64 | | - |
65 | | - int availableForWrite(); |
66 | | - size_t write(const uint8_t *data, size_t len); |
67 | | - size_t write(uint8_t data) { |
68 | | - return write(&data, 1); |
69 | | - } |
70 | 75 |
|
71 | | - void onNewPeer(void (*cb)(const esp_now_recv_info_t *info, const uint8_t *data, int len, void *arg), void *arg); |
| 76 | + friend bool ESP_NOW_Class::removePeer(ESP_NOW_Peer &); |
72 | 77 | }; |
73 | 78 |
|
74 | 79 | extern ESP_NOW_Class ESP_NOW; |
0 commit comments