|
|
@@ -42,12 +42,16 @@ esp_err_t EspNowSerial::add_peer_encrypted(EspMacAddress peer_address, CcmpMaste
|
|
|
return esp_now_add_peer(&peer_info);
|
|
|
}
|
|
|
|
|
|
+esp_now_send_status_t EspNowSerial::get_send_status()
|
|
|
+{
|
|
|
+ return EspNowSerial::_instance->_data_sent;
|
|
|
+}
|
|
|
+
|
|
|
esp_err_t EspNowSerial::begin(uint8_t channel, bool broadcast, CcmpMasterKey pmk)
|
|
|
{
|
|
|
_broadcast = broadcast; // set broadcast flag
|
|
|
EspNowSerial::_instance = this; // attach global instance as this object
|
|
|
- _rx_queue.init(); // init rx buffer
|
|
|
- _data_sent = 1; // reset data sent flag
|
|
|
+ _rx_queue.init(); // init rx buffer
|
|
|
|
|
|
WiFi.mode(_wifi_mode); // set device as a Wi-Fi Station
|
|
|
esp_wifi_set_channel(channel, WIFI_SECOND_CHAN_NONE); // force WiFi channel
|
|
|
@@ -110,10 +114,7 @@ int EspNowSerial::peek()
|
|
|
}
|
|
|
|
|
|
size_t EspNowSerial::write(uint8_t value)
|
|
|
-{
|
|
|
- if (!_data_sent)
|
|
|
- return 0;
|
|
|
-
|
|
|
+{
|
|
|
uint8_t buffer[1] = {value};
|
|
|
esp_err_t result = esp_now_send(nullptr, buffer, 1);
|
|
|
|
|
|
@@ -124,22 +125,21 @@ size_t EspNowSerial::write(uint8_t value)
|
|
|
};
|
|
|
|
|
|
size_t EspNowSerial::write(const uint8_t *buffer, size_t size)
|
|
|
-{
|
|
|
- if (!_data_sent)
|
|
|
- return 0;
|
|
|
-
|
|
|
- _data_sent = 0; // reset data sent flag
|
|
|
+{
|
|
|
+ // send new data
|
|
|
esp_err_t result = esp_now_send(nullptr, buffer, size);
|
|
|
|
|
|
if (result != ESP_OK)
|
|
|
+ {
|
|
|
return 0;
|
|
|
+ }
|
|
|
|
|
|
return size;
|
|
|
}
|
|
|
|
|
|
void EspNowSerial::_on_data_sent(const uint8_t *mac_addr, esp_now_send_status_t status)
|
|
|
{
|
|
|
- EspNowSerial::_instance->_data_sent = 1;
|
|
|
+ EspNowSerial::_instance->_data_sent = status;
|
|
|
}
|
|
|
|
|
|
void EspNowSerial::_on_data_recv(const uint8_t *mac_addr, const uint8_t *data, int len)
|