Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
4f58a04eae | |||
2ed860b78b |
@ -116,6 +116,12 @@ myNet.setApSetting("SSID", "PASSWORD");
|
|||||||
myNet.begin();
|
myNet.begin();
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### ESP-NOW Mesh network deinitialization
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
myNet.stop();
|
||||||
|
```
|
||||||
|
|
||||||
### Sends broadcast message to all nodes
|
### Sends broadcast message to all nodes
|
||||||
|
|
||||||
```cpp
|
```cpp
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
name=ZHNetwork
|
name=ZHNetwork
|
||||||
version=1.02
|
version=1.11
|
||||||
author=Alexey Zholtikov
|
author=Alexey Zholtikov
|
||||||
maintainer=Alexey Zholtikov
|
maintainer=Alexey Zholtikov
|
||||||
sentence=ESP-NOW based Mesh network for ESP8266/ESP32
|
sentence=ESP-NOW based Mesh network for ESP8266/ESP32
|
||||||
|
@ -1,31 +1,17 @@
|
|||||||
#include "ZHNetwork.h"
|
#include "ZHNetwork.h"
|
||||||
|
|
||||||
routing_vector_t routingVector;
|
routing_vector_t ZHNetwork::routingVector;
|
||||||
incoming_queue_t queueForIncomingData;
|
incoming_queue_t ZHNetwork::queueForIncomingData;
|
||||||
outgoing_queue_t queueForOutgoingData;
|
outgoing_queue_t ZHNetwork::queueForOutgoingData;
|
||||||
waiting_queue_t queueForRoutingVectorWaiting;
|
waiting_queue_t ZHNetwork::queueForRoutingVectorWaiting;
|
||||||
|
|
||||||
const char *firmware PROGMEM{"1.02"};
|
bool ZHNetwork::criticalProcessSemaphore{false};
|
||||||
const uint8_t broadcastMAC[6]{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
bool ZHNetwork::sentMessageSemaphore{false};
|
||||||
|
bool ZHNetwork::confirmReceivingSemaphore{false};
|
||||||
bool criticalProcessSemaphore{false};
|
bool ZHNetwork::confirmReceiving{false};
|
||||||
bool sentMessageSemaphore{false};
|
char ZHNetwork::netName_[20]{0};
|
||||||
bool confirmReceivingSemaphore{false};
|
uint8_t ZHNetwork::localMAC[6]{0};
|
||||||
bool confirmReceiving{false};
|
uint16_t ZHNetwork::lastMessageID[10]{0};
|
||||||
uint8_t localMAC[6]{0};
|
|
||||||
uint8_t numberOfAttemptsToSend{1};
|
|
||||||
uint16_t lastMessageID[10]{0};
|
|
||||||
uint64_t lastMessageSentTime{0};
|
|
||||||
|
|
||||||
work_mode_t workMode_{ESP_NOW};
|
|
||||||
char netName_[20]{0};
|
|
||||||
char apSsid_[32]{"ESP-NOW NODE"};
|
|
||||||
char apPassword_[64]{0};
|
|
||||||
char staSsid_[32]{0};
|
|
||||||
char staPassword_[64]{0};
|
|
||||||
uint8_t maxNumberOfAttempts_{3};
|
|
||||||
uint8_t maxWaitingTimeBetweenTransmissions_{50};
|
|
||||||
uint16_t maxTimeForRoutingInfoWaiting_{500};
|
|
||||||
|
|
||||||
ZHNetwork &ZHNetwork::setOnBroadcastReceivingCallback(on_message_t onBroadcastReceivingCallback)
|
ZHNetwork &ZHNetwork::setOnBroadcastReceivingCallback(on_message_t onBroadcastReceivingCallback)
|
||||||
{
|
{
|
||||||
@ -130,6 +116,15 @@ error_code_t ZHNetwork::begin()
|
|||||||
return SUCCESS;
|
return SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
error_code_t stop()
|
||||||
|
{
|
||||||
|
WiFi.mode(WIFI_OFF);
|
||||||
|
esp_now_deinit();
|
||||||
|
esp_now_unregister_recv_cb();
|
||||||
|
esp_now_unregister_send_cb();
|
||||||
|
return SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
void ZHNetwork::sendBroadcastMessage(const char *data)
|
void ZHNetwork::sendBroadcastMessage(const char *data)
|
||||||
{
|
{
|
||||||
broadcastMessage(data, broadcastMAC, BROADCAST);
|
broadcastMessage(data, broadcastMAC, BROADCAST);
|
||||||
|
@ -97,6 +97,7 @@ public:
|
|||||||
error_code_t setApSetting(const char *ssid, const char *password);
|
error_code_t setApSetting(const char *ssid, const char *password);
|
||||||
|
|
||||||
error_code_t begin(void);
|
error_code_t begin(void);
|
||||||
|
error_code_t stop(void);
|
||||||
|
|
||||||
void sendBroadcastMessage(const char *data);
|
void sendBroadcastMessage(const char *data);
|
||||||
void sendUnicastMessage(const char *data, const uint8_t *target, const bool confirm = false);
|
void sendUnicastMessage(const char *data, const uint8_t *target, const bool confirm = false);
|
||||||
@ -119,6 +120,32 @@ public:
|
|||||||
uint16_t getMaxWaitingTimeForRoutingInfo(void);
|
uint16_t getMaxWaitingTimeForRoutingInfo(void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
static routing_vector_t routingVector;
|
||||||
|
static incoming_queue_t queueForIncomingData;
|
||||||
|
static outgoing_queue_t queueForOutgoingData;
|
||||||
|
static waiting_queue_t queueForRoutingVectorWaiting;
|
||||||
|
|
||||||
|
static bool criticalProcessSemaphore;
|
||||||
|
static bool sentMessageSemaphore;
|
||||||
|
static bool confirmReceivingSemaphore;
|
||||||
|
static bool confirmReceiving;
|
||||||
|
static uint8_t localMAC[6];
|
||||||
|
static uint16_t lastMessageID[10];
|
||||||
|
static char netName_[20];
|
||||||
|
|
||||||
|
const char *firmware{"1.11"};
|
||||||
|
const uint8_t broadcastMAC[6]{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
|
||||||
|
work_mode_t workMode_{ESP_NOW};
|
||||||
|
char apSsid_[32]{"ESP-NOW NODE"};
|
||||||
|
char apPassword_[64]{0};
|
||||||
|
char staSsid_[32]{0};
|
||||||
|
char staPassword_[64]{0};
|
||||||
|
uint8_t maxNumberOfAttempts_{3};
|
||||||
|
uint8_t maxWaitingTimeBetweenTransmissions_{50};
|
||||||
|
uint8_t numberOfAttemptsToSend{1};
|
||||||
|
uint16_t maxTimeForRoutingInfoWaiting_{500};
|
||||||
|
uint64_t lastMessageSentTime{0};
|
||||||
|
|
||||||
#if defined(ESP8266)
|
#if defined(ESP8266)
|
||||||
static void onDataSent(uint8_t *mac, uint8_t status);
|
static void onDataSent(uint8_t *mac, uint8_t status);
|
||||||
static void onDataReceive(uint8_t *mac, uint8_t *data, uint8_t length);
|
static void onDataReceive(uint8_t *mac, uint8_t *data, uint8_t length);
|
||||||
|
Reference in New Issue
Block a user