|
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