Skip to content

Commit 724efe5

Browse files
committed
ESP-NOW: Merge state values and pair message data structure
1 parent 51c2af7 commit 724efe5

File tree

2 files changed

+52
-75
lines changed

2 files changed

+52
-75
lines changed

Firmware/RTK_Everywhere/ESPNOW.ino

Lines changed: 52 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,26 @@
1212

1313
const uint8_t peerBroadcast[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
1414

15+
//****************************************
16+
// Types
17+
//****************************************
18+
19+
// Create a struct for ESP NOW pairing
20+
typedef struct _ESP_NOW_PAIR_MESSAGE
21+
{
22+
uint8_t macAddress[6];
23+
bool encrypt;
24+
uint8_t channel;
25+
uint8_t crc; // Simple check - add MAC together and limit to 8 bit
26+
} ESP_NOW_PAIR_MESSAGE;
27+
1528
//****************************************
1629
// Locals
1730
//****************************************
1831

1932
bool espNowDebug;
2033
bool espNowDisplay;
21-
ESP_NOW_STATE espNowState;
34+
ESPNOWState espNowState;
2235
bool espNowVerbose;
2336

2437
//*********************************************************************
@@ -94,8 +107,8 @@ ESPNOWState espnowGetState()
94107
// A. Validate message CRC
95108
// B. If valid CRC
96109
// i. Save peer MAC address
97-
// ii. espnowSetState(ESP_NOW_MAC_RECEIVED)
98-
// 14. Else if ESP_NOW_MAC_RECEIVED state
110+
// ii. espnowSetState(ESPNOW_MAC_RECEIVED)
111+
// 14. Else if ESPNOW_MAC_RECEIVED state
99112
// A. If ESP-NOW is corrections source, correctionLastSeen(CORR_ESPNOW)
100113
// i. gnss->pushRawData
101114
// 15. Set espnowIncomingRTCM
@@ -110,44 +123,44 @@ ESPNOWState espnowGetState()
110123
// 7. esp_wifi_get_protocol
111124
// 8. Turn off long range protocol if necessary, call esp_wifi_set_protocol
112125
// 9. Turn off ESP-NOW. call esp_now_deinit
113-
// 10. Set ESP-NOW state, call espnowSetState(ESP_NOW_OFF)
126+
// 10. Set ESP-NOW state, call espnowSetState(ESPNOW_OFF)
114127
// 11. Restart WiFi if necessary
115128
//----------------------------------------------------------------------
116129

117130
//*********************************************************************
118131
// Update the state of the ESP Now state machine
119132
//
120-
// +---------------------+
121-
// | ESP_NOW_OFF |
122-
// +---------------------+
133+
// +--------------------+
134+
// | ESPNOW_OFF |
135+
// +--------------------+
123136
// | |
124137
// | | No pairs listed
125138
// | V
126-
// | +----------------------+
127-
// | | ESP_NOW_BROADCASTING |
128-
// | +----------------------+
139+
// | +---------------------+
140+
// | | ESPNOW_BROADCASTING |
141+
// | +---------------------+
129142
// | |
130143
// | |
131144
// | V
132-
// | +---------------------+
133-
// | | ESP_NOW_PAIRING |
134-
// | +---------------------+
145+
// | +--------------------+
146+
// | | ESPNOW_PAIRING |
147+
// | +--------------------+
135148
// | |
136149
// | |
137150
// | V
138-
// | +---------------------+
139-
// | | ESP_NOW_MAC_RECEIVED |
140-
// | +---------------------+
151+
// | +--------------------+
152+
// | | ESPNOW_MAC_RECEIVED |
153+
// | +--------------------+
141154
// | |
142155
// | |
143156
// | V
144-
// | +---------------------+
145-
// '->| ESP_NOW_PAIRED |
146-
// +---------------------+
157+
// | +--------------------+
158+
// '->| ESPNOW_PAIRED |
159+
// +--------------------+
147160
//
148-
// Send RTCM in either ESP_NOW_BROADCASTING or ESP_NOW_PAIRED state.
149-
// Receive RTCM in ESP_NOW_BROADCASTING, ESP_NOW_MAC_RECEIVED and
150-
// ESP_NOW_PAIRED states.
161+
// Send RTCM in either ESPNOW_BROADCASTING or ESPNOW_PAIRED state.
162+
// Receive RTCM in ESPNOW_BROADCASTING, ESPNOW_MAC_RECEIVED and
163+
// ESPNOW_PAIRED states.
151164
//*********************************************************************
152165

153166
//*********************************************************************
@@ -164,7 +177,7 @@ void espNowRxHandler(const esp_now_recv_info *mac,
164177

165178
uint8_t receivedMAC[6];
166179

167-
if (espNowState == ESP_NOW_PAIRING)
180+
if (espNowState == ESPNOW_PAIRING)
168181
{
169182
ESP_NOW_PAIR_MESSAGE pairMessage;
170183
if (len == sizeof(pairMessage)) // First error check
@@ -179,7 +192,7 @@ void espNowRxHandler(const esp_now_recv_info *mac,
179192
if (tempCRC == pairMessage.crc) // 2nd error check
180193
{
181194
memcpy(&receivedMAC, pairMessage.macAddress, 6);
182-
espNowSetState(ESP_NOW_MAC_RECEIVED);
195+
espNowSetState(ESPNOW_MAC_RECEIVED);
183196
}
184197
// else Pair CRC failed
185198
}
@@ -198,15 +211,15 @@ void espNowRxHandler(const esp_now_recv_info *mac,
198211

199212
//*********************************************************************
200213
// Update the state of the ESP-NOW subsystem
201-
void espNowSetState(ESP_NOW_STATE newState)
214+
void espNowSetState(ESPNOWState newState)
202215
{
203216
const char * name[] =
204217
{
205-
"ESP_NOW_OFF",
206-
"ESP_NOW_BROADCASTING",
207-
"ESP_NOW_PAIRING",
208-
"ESP_NOW_MAC_RECEIVED",
209-
"ESP_NOW_PAIRED",
218+
"ESPNOW_OFF",
219+
"ESPNOW_BROADCASTING",
220+
"ESPNOW_PAIRING",
221+
"ESPNOW_MAC_RECEIVED",
222+
"ESPNOW_PAIRED",
210223
};
211224
const int nameCount = sizeof(name) / sizeof(name[0]);
212225
const char * newName;
@@ -217,7 +230,7 @@ void espNowSetState(ESP_NOW_STATE newState)
217230
if (espNowDebug == true)
218231
{
219232
// Get the old state name
220-
if (espNowState < ESP_NOW_MAX)
233+
if (espNowState < ESPNOW_MAX)
221234
oldName = name[espNowState];
222235
else
223236
{
@@ -226,7 +239,7 @@ void espNowSetState(ESP_NOW_STATE newState)
226239
}
227240

228241
// Get the new state name
229-
if (newState < ESP_NOW_MAX)
242+
if (newState < ESPNOW_MAX)
230243
newName = name[newState];
231244
else
232245
{
@@ -276,10 +289,10 @@ bool espNowStart()
276289
}
277290

278291
// 10. Add peers from settings
279-
// i. Set ESP-NOW state, call espNowSetState(ESP_NOW_PAIRED)
292+
// i. Set ESP-NOW state, call espNowSetState(ESPNOW_PAIRED)
280293
if (espNowDebug && espNowVerbose)
281294
systemPrintf("Calling espNowSetState\r\n");
282-
espNowSetState(ESP_NOW_PAIRED);
295+
espNowSetState(ESPNOW_PAIRED);
283296

284297
// ii. Loop through peers listed in settings, for each
285298
for (index = 0; index < ESPNOW_MAX_PEERS; index++)
@@ -421,7 +434,7 @@ bool espNowStop()
421434
}
422435

423436
// Stop the ESP-NOW state machine
424-
espNowSetState(ESP_NOW_OFF);
437+
espNowSetState(ESPNOW_OFF);
425438

426439
// 9. Turn off ESP-NOW. call esp_now_deinit
427440
if (espNowDebug && espNowVerbose)
@@ -499,20 +512,11 @@ void updateEspnow()
499512
}
500513
}
501514

502-
// Create a struct for ESP NOW pairing
503-
typedef struct PairMessage
504-
{
505-
uint8_t macAddress[6];
506-
bool encrypt;
507-
uint8_t channel;
508-
uint8_t crc; // Simple check - add MAC together and limit to 8 bit
509-
} PairMessage;
510-
511515
// Callback when data is sent
512516
void espnowOnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status)
513517
{
514518
// systemPrint("Last Packet Send Status: ");
515-
// if (status == ESP_NOW_SEND_SUCCESS)
519+
// if (status == ESPNOW_SEND_SUCCESS)
516520
// systemPrintln("Delivery Success");
517521
// else
518522
// systemPrintln("Delivery Fail");
@@ -523,9 +527,9 @@ void espnowOnDataReceived(const esp_now_recv_info *mac, const uint8_t *incomingD
523527
{
524528
if (espnowState == ESPNOW_PAIRING)
525529
{
526-
if (len == sizeof(PairMessage)) // First error check
530+
if (len == sizeof(ESP_NOW_PAIR_MESSAGE)) // First error check
527531
{
528-
PairMessage pairMessage;
532+
ESP_NOW_PAIR_MESSAGE pairMessage;
529533
memcpy(&pairMessage, incomingData, sizeof(pairMessage));
530534

531535
// Check CRC
@@ -867,7 +871,7 @@ bool espnowIsPaired()
867871
esp_err_t espnowSendPairMessage(uint8_t *sendToMac)
868872
{
869873
// Assemble message to send
870-
PairMessage pairMessage;
874+
ESP_NOW_PAIR_MESSAGE pairMessage;
871875

872876
// Get unit MAC address
873877
memcpy(pairMessage.macAddress, wifiMACAddress, 6);

Firmware/RTK_Everywhere/settings.h

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2228,31 +2228,4 @@ class RTK_WIFI
22282228

22292229
#endif // COMPILE_WIFI
22302230
#endif // COMPILE_NETWORK
2231-
2232-
//****************************************
2233-
// ESP-NOW
2234-
//****************************************
2235-
2236-
#ifdef COMPILE_ESPNOW
2237-
2238-
typedef enum
2239-
{
2240-
ESP_NOW_OFF = 0,
2241-
ESP_NOW_BROADCASTING,
2242-
ESP_NOW_PAIRING,
2243-
ESP_NOW_MAC_RECEIVED,
2244-
ESP_NOW_PAIRED,
2245-
ESP_NOW_MAX
2246-
} ESP_NOW_STATE;
2247-
2248-
// Create a struct for ESP NOW pairing
2249-
typedef struct _ESP_NOW_PAIR_MESSAGE
2250-
{
2251-
uint8_t macAddress[6];
2252-
bool encrypt;
2253-
uint8_t channel;
2254-
uint8_t crc; // Simple check - add MAC together and limit to 8 bit
2255-
} ESP_NOW_PAIR_MESSAGE;
2256-
2257-
#endif // COMPILE_ESPNOW
22582231
#endif // __SETTINGS_H__

0 commit comments

Comments
 (0)