mirror of
https://github.com/timmbogner/Farm-Data-Relay-System
synced 2024-11-08 13:10:29 +00:00
added ESP-NOW LR mode
This commit is contained in:
parent
35a5201aa4
commit
cd81f1b869
@ -72,6 +72,9 @@ void begin_espnow()
|
|||||||
WiFi.disconnect();
|
WiFi.disconnect();
|
||||||
// Init ESP-NOW for either ESP8266 or ESP32 and set MAC address
|
// Init ESP-NOW for either ESP8266 or ESP32 and set MAC address
|
||||||
#if defined(ESP8266)
|
#if defined(ESP8266)
|
||||||
|
#ifdef USE_LR
|
||||||
|
DBG(" LR mode is only available on ESP32. ESP-NOW will begin in normal mode.");
|
||||||
|
#endif
|
||||||
wifi_set_macaddr(STATION_IF, selfAddress);
|
wifi_set_macaddr(STATION_IF, selfAddress);
|
||||||
if (esp_now_init() != 0)
|
if (esp_now_init() != 0)
|
||||||
{
|
{
|
||||||
@ -83,6 +86,10 @@ void begin_espnow()
|
|||||||
esp_now_register_recv_cb(OnDataRecv);
|
esp_now_register_recv_cb(OnDataRecv);
|
||||||
|
|
||||||
#elif defined(ESP32)
|
#elif defined(ESP32)
|
||||||
|
#ifdef USE_LR
|
||||||
|
DBG(" ESP-NOW LR mode is active!");
|
||||||
|
esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_LR);
|
||||||
|
#endif
|
||||||
esp_wifi_set_mac(WIFI_IF_STA, &selfAddress[0]);
|
esp_wifi_set_mac(WIFI_IF_STA, &selfAddress[0]);
|
||||||
if (esp_now_init() != ESP_OK)
|
if (esp_now_init() != ESP_OK)
|
||||||
{
|
{
|
||||||
@ -136,7 +143,7 @@ int find_espnow_peer()
|
|||||||
// Returns the index of the peer list array element that contains the provided MAC address, -1 if not found
|
// Returns the index of the peer list array element that contains the provided MAC address, -1 if not found
|
||||||
int getFDRSPeer(uint8_t *mac)
|
int getFDRSPeer(uint8_t *mac)
|
||||||
{
|
{
|
||||||
//DBG("Getting peer #");
|
// DBG("Getting peer #");
|
||||||
|
|
||||||
for (int i = 0; i < 16; i++)
|
for (int i = 0; i < 16; i++)
|
||||||
{
|
{
|
||||||
@ -157,7 +164,7 @@ void add_espnow_peer()
|
|||||||
int peer_num = getFDRSPeer(&incMAC[0]);
|
int peer_num = getFDRSPeer(&incMAC[0]);
|
||||||
if (peer_num == -1) // if the device isn't registered
|
if (peer_num == -1) // if the device isn't registered
|
||||||
{
|
{
|
||||||
//DBG("Device not yet registered, adding to peer list");
|
// DBG("Device not yet registered, adding to peer list");
|
||||||
int open_peer = find_espnow_peer(); // find open spot in peer_list
|
int open_peer = find_espnow_peer(); // find open spot in peer_list
|
||||||
memcpy(&peer_list[open_peer].mac, &incMAC, 6); // save MAC to open spot
|
memcpy(&peer_list[open_peer].mac, &incMAC, 6); // save MAC to open spot
|
||||||
peer_list[open_peer].last_seen = millis();
|
peer_list[open_peer].last_seen = millis();
|
||||||
|
@ -85,11 +85,15 @@ void beginFDRS()
|
|||||||
delay(50);
|
delay(50);
|
||||||
#endif
|
#endif
|
||||||
// Init ESP-NOW for either ESP8266 or ESP32
|
// Init ESP-NOW for either ESP8266 or ESP32
|
||||||
|
|
||||||
#ifdef USE_ESPNOW
|
#ifdef USE_ESPNOW
|
||||||
DBG("Initializing ESP-NOW!");
|
DBG("Initializing ESP-NOW!");
|
||||||
WiFi.mode(WIFI_STA);
|
WiFi.mode(WIFI_STA);
|
||||||
WiFi.disconnect();
|
WiFi.disconnect();
|
||||||
#if defined(ESP8266)
|
#if defined(ESP8266)
|
||||||
|
#ifdef USE_LR
|
||||||
|
DBG(" LR mode is only available on ESP32. ESP-NOW will begin in normal mode.");
|
||||||
|
#endif
|
||||||
if (esp_now_init() != 0)
|
if (esp_now_init() != 0)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -101,7 +105,10 @@ void beginFDRS()
|
|||||||
// Register peers
|
// Register peers
|
||||||
esp_now_add_peer(gatewayAddress, ESP_NOW_ROLE_COMBO, 0, NULL, 0);
|
esp_now_add_peer(gatewayAddress, ESP_NOW_ROLE_COMBO, 0, NULL, 0);
|
||||||
#elif defined(ESP32)
|
#elif defined(ESP32)
|
||||||
|
#ifdef USE_LR
|
||||||
|
DBG(" ESP-NOW LR mode is active!");
|
||||||
|
esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_LR);
|
||||||
|
#endif
|
||||||
if (esp_now_init() != ESP_OK)
|
if (esp_now_init() != ESP_OK)
|
||||||
{
|
{
|
||||||
DBG("Error initializing ESP-NOW");
|
DBG("Error initializing ESP-NOW");
|
||||||
|
Loading…
Reference in New Issue
Block a user