Skip to content

Commit 7dbca6b

Browse files
authored
Merge pull request #531 from sparkfun/leeUpdates
Lee updates
2 parents 202f1bc + 68382e1 commit 7dbca6b

15 files changed

+344
-303
lines changed

Firmware/RTK_Everywhere/Cellular.ino

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ void cellularEvent(arduino_event_id_t event)
8787
if (networkInterfaceHasInternet(NETWORK_CELLULAR) && (event != ARDUINO_EVENT_ETH_GOT_IP) &&
8888
(event != ARDUINO_EVENT_ETH_GOT_IP6) && (event != ARDUINO_EVENT_PPP_CONNECTED))
8989
{
90-
networkInterfaceInternetConnectionLost(NETWORK_CELLULAR);
90+
networkInterfaceEventInternetLost(NETWORK_CELLULAR);
9191
}
9292

9393
// Cellular State Machine
@@ -108,7 +108,7 @@ void cellularEvent(arduino_event_id_t event)
108108

109109
case ARDUINO_EVENT_PPP_CONNECTED:
110110
systemPrintln("Cellular Connected");
111-
networkInterfaceInternetConnectionAvailable(NETWORK_CELLULAR);
111+
networkInterfaceEventInternetAvailable(NETWORK_CELLULAR);
112112
break;
113113

114114
case ARDUINO_EVENT_PPP_DISCONNECTED:

Firmware/RTK_Everywhere/Developer.ino

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ void stopWebServer() {}
168168
bool webServerNeedsNetwork() {return false;}
169169
void webServerStop() {}
170170
void webServerUpdate() {}
171+
void webServerVerifyTables() {}
171172

172173
#endif // COMPILE_AP
173174

@@ -177,18 +178,17 @@ void webServerUpdate() {}
177178

178179
#ifndef COMPILE_ESPNOW
179180

180-
bool espNowStart() {return false;}
181-
bool espNowStop() {return false;}
182-
183181
bool espnowGetState() {return ESPNOW_OFF;}
184182
bool espnowIsPaired() {return false;}
185183
void espnowProcessRTCM(byte incoming) {}
186184
esp_err_t espnowRemovePeer(uint8_t *peerMac) {return ESP_OK;}
187185
esp_err_t espnowSendPairMessage(uint8_t *sendToMac) {return ESP_OK;}
188186
bool espnowSetChannel(uint8_t channelNumber) {return false;}
189187
void espnowStart() {}
188+
#define ESPNOW_START() false
190189
void espnowStaticPairing() {}
191190
void espnowStop() {}
191+
#define ESPNOW_STOP() true
192192
void updateEspnow() {}
193193

194194
#endif // COMPILE_ESPNOW

Firmware/RTK_Everywhere/ESPNOW.ino

Lines changed: 68 additions & 64 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
//*********************************************************************
@@ -57,7 +70,7 @@ esp_err_t espNowAddPeer(const uint8_t * peerMac)
5770
// Get the current ESP-NOW state
5871
ESPNOWState espnowGetState()
5972
{
60-
return espnowState;
73+
return espNowState;
6174
}
6275

6376
//----------------------------------------------------------------------
@@ -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)
@@ -467,15 +480,15 @@ void updateEspnow()
467480
{
468481
if (settings.enableEspNow == true)
469482
{
470-
if (espnowState == ESPNOW_PAIRED || espnowState == ESPNOW_BROADCASTING)
483+
if (espNowState == ESPNOW_PAIRED || espNowState == ESPNOW_BROADCASTING)
471484
{
472485
// If it's been longer than a few ms since we last added a byte to the buffer
473486
// then we've reached the end of the RTCM stream. Send partial buffer.
474487
if (espnowOutgoingSpot > 0 && (millis() - espnowLastAdd) > 50)
475488
{
476-
if (espnowState == ESPNOW_PAIRED)
489+
if (espNowState == ESPNOW_PAIRED)
477490
esp_now_send(0, (uint8_t *)&espnowOutgoing, espnowOutgoingSpot); // Send partial packet to all peers
478-
else // if (espnowState == ESPNOW_BROADCASTING)
491+
else // if (espNowState == ESPNOW_BROADCASTING)
479492
{
480493
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
481494
esp_now_send(broadcastMac, (uint8_t *)&espnowOutgoing,
@@ -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");
@@ -521,11 +525,11 @@ void espnowOnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status)
521525
// Callback when data is received
522526
void espnowOnDataReceived(const esp_now_recv_info *mac, const uint8_t *incomingData, int len)
523527
{
524-
if (espnowState == ESPNOW_PAIRING)
528+
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
@@ -601,7 +605,7 @@ void espnowStart()
601605
if (response != ESP_OK)
602606
systemPrintf("espnowStart: Failed to get protocols: %s\r\n", esp_err_to_name(response));
603607

604-
if ((WIFI_IS_RUNNING() == false) && espnowState == ESPNOW_OFF)
608+
if ((WIFI_IS_RUNNING() == false) && espNowState == ESPNOW_OFF)
605609
{
606610
// Radio is off, turn it on
607611
if (protocols != (WIFI_PROTOCOL_LR))
@@ -622,7 +626,7 @@ void espnowStart()
622626
}
623627
}
624628
// If WiFi is on but ESP NOW is off, then enable LR protocol
625-
else if (WIFI_IS_RUNNING() && espnowState == ESPNOW_OFF)
629+
else if (WIFI_IS_RUNNING() && espNowState == ESPNOW_OFF)
626630
{
627631
// Enable WiFi + ESP-Now
628632
// Enable long range, PHY rate of ESP32 will be 512Kbps or 256Kbps
@@ -739,7 +743,7 @@ void espnowStart()
739743
// If WiFi is off, stop the radio entirely
740744
void espnowStop()
741745
{
742-
if (espnowState == ESPNOW_OFF)
746+
if (espNowState == ESPNOW_OFF)
743747
return;
744748

745749
// Turn off promiscuous WiFi mode
@@ -827,7 +831,7 @@ void espnowBeginPairing()
827831
// Regularly call during pairing to see if we've received a Pairing message
828832
bool espnowIsPaired()
829833
{
830-
if (espnowState == ESPNOW_MAC_RECEIVED)
834+
if (espNowState == ESPNOW_MAC_RECEIVED)
831835
{
832836
// Remove broadcast peer
833837
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
@@ -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);
@@ -924,13 +928,13 @@ esp_err_t espnowRemovePeer(uint8_t *peerMac)
924928
// Update the state of the ESP Now state machine
925929
void espnowSetState(ESPNOWState newState)
926930
{
927-
if (espnowState == newState && settings.debugEspNow == true)
931+
if (espNowState == newState && settings.debugEspNow == true)
928932
systemPrint("*");
929-
espnowState = newState;
933+
espNowState = newState;
930934

931935
if (settings.debugEspNow == true)
932936
{
933-
systemPrint("espnowState: ");
937+
systemPrint("espNowState: ");
934938
switch (newState)
935939
{
936940
case ESPNOW_OFF:
@@ -960,7 +964,7 @@ void espnowProcessRTCM(byte incoming)
960964
// If we are paired,
961965
// Or if the radio is broadcasting
962966
// Then add bytes to the outgoing buffer
963-
if (espnowState == ESPNOW_PAIRED || espnowState == ESPNOW_BROADCASTING)
967+
if (espNowState == ESPNOW_PAIRED || espNowState == ESPNOW_BROADCASTING)
964968
{
965969
// Move this byte into ESP NOW to send buffer
966970
espnowOutgoing[espnowOutgoingSpot++] = incoming;
@@ -972,9 +976,9 @@ void espnowProcessRTCM(byte incoming)
972976
{
973977
espnowOutgoingSpot = 0; // Wrap
974978

975-
if (espnowState == ESPNOW_PAIRED)
979+
if (espNowState == ESPNOW_PAIRED)
976980
esp_now_send(0, (uint8_t *)&espnowOutgoing, sizeof(espnowOutgoing)); // Send packet to all peers
977-
else // if (espnowState == ESPNOW_BROADCASTING)
981+
else // if (espNowState == ESPNOW_BROADCASTING)
978982
{
979983
uint8_t broadcastMac[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
980984
esp_now_send(broadcastMac, (uint8_t *)&espnowOutgoing,
@@ -1037,7 +1041,7 @@ void espnowStaticPairing()
10371041
// Returns the current channel being used by WiFi
10381042
uint8_t espnowGetChannel()
10391043
{
1040-
if (espnowState == ESPNOW_OFF)
1044+
if (espNowState == ESPNOW_OFF)
10411045
return 0;
10421046

10431047
bool originalPromiscuousMode = false;

0 commit comments

Comments
 (0)