@@ -17,37 +17,37 @@ void updateSystemState()
1717 case (STATE_ROVER_NO_FIX):
1818 {
1919 if (i2cGNSS.getFixType () == 3 ) // 3D
20- systemState = STATE_ROVER_FIX;
20+ changeState ( STATE_ROVER_FIX) ;
2121 }
2222 break ;
2323
2424 case (STATE_ROVER_FIX):
2525 {
2626 byte rtkType = i2cGNSS.getCarrierSolutionType ();
2727 if (rtkType == 1 ) // RTK Float
28- systemState = STATE_ROVER_RTK_FLOAT;
28+ changeState ( STATE_ROVER_RTK_FLOAT) ;
2929 else if (rtkType == 2 ) // RTK Fix
30- systemState = STATE_ROVER_RTK_FIX;
30+ changeState ( STATE_ROVER_RTK_FIX) ;
3131 }
3232 break ;
3333
3434 case (STATE_ROVER_RTK_FLOAT):
3535 {
3636 byte rtkType = i2cGNSS.getCarrierSolutionType ();
3737 if (rtkType == 0 ) // No RTK
38- systemState = STATE_ROVER_FIX;
38+ changeState ( STATE_ROVER_FIX) ;
3939 if (rtkType == 2 ) // RTK Fix
40- systemState = STATE_ROVER_RTK_FIX;
40+ changeState ( STATE_ROVER_RTK_FIX) ;
4141 }
4242 break ;
4343
4444 case (STATE_ROVER_RTK_FIX):
4545 {
4646 byte rtkType = i2cGNSS.getCarrierSolutionType ();
4747 if (rtkType == 0 ) // No RTK
48- systemState = STATE_ROVER_FIX;
48+ changeState ( STATE_ROVER_FIX) ;
4949 if (rtkType == 1 ) // RTK Float
50- systemState = STATE_ROVER_RTK_FLOAT;
50+ changeState ( STATE_ROVER_RTK_FLOAT) ;
5151 }
5252 break ;
5353
@@ -70,7 +70,7 @@ void updateSystemState()
7070 if (surveyIn () == true ) // Begin survey
7171 {
7272 displaySurveyStarted (); // Show 'Survey Started'
73- systemState = STATE_BASE_TEMP_SURVEY_STARTED;
73+ changeState ( STATE_BASE_TEMP_SURVEY_STARTED) ;
7474 }
7575 }
7676 }
@@ -83,7 +83,7 @@ void updateSystemState()
8383 if (i2cGNSS.getFixType () == 5 ) // We have a TIME fix which is survey in complete
8484 {
8585 Serial.println (F (" Base survey complete! RTCM now broadcasting." ));
86- systemState = STATE_BASE_TEMP_TRANSMITTING;
86+ changeState ( STATE_BASE_TEMP_TRANSMITTING) ;
8787 }
8888 else
8989 {
@@ -116,7 +116,7 @@ void updateSystemState()
116116
117117 beginBluetooth (); // Restart Bluetooth with 'Rover' name
118118
119- systemState = STATE_ROVER_NO_FIX;
119+ changeState ( STATE_ROVER_NO_FIX) ;
120120 displayRoverSuccess ();
121121 }
122122 }
@@ -135,7 +135,7 @@ void updateSystemState()
135135 WiFi.begin (settings.wifiSSID , settings.wifiPW );
136136
137137 radioState = WIFI_ON_NOCONNECTION;
138- systemState = STATE_BASE_TEMP_WIFI_STARTED;
138+ changeState ( STATE_BASE_TEMP_WIFI_STARTED) ;
139139 }
140140 }
141141 break ;
@@ -148,7 +148,7 @@ void updateSystemState()
148148 {
149149 radioState = WIFI_CONNECTED;
150150
151- systemState = STATE_BASE_TEMP_WIFI_CONNECTED;
151+ changeState ( STATE_BASE_TEMP_WIFI_CONNECTED) ;
152152 }
153153 else
154154 {
@@ -174,7 +174,7 @@ void updateSystemState()
174174 // Open connection to caster service
175175 if (caster.connect (settings.casterHost , settings.casterPort ) == true ) // Attempt connection
176176 {
177- systemState = STATE_BASE_TEMP_CASTER_STARTED;
177+ changeState ( STATE_BASE_TEMP_CASTER_STARTED) ;
178178
179179 Serial.printf (" Connected to %s:%d\n " , settings.casterHost , settings.casterPort );
180180
@@ -205,7 +205,7 @@ void updateSystemState()
205205 caster.stop ();
206206 delay (10 ); // Yield to RTOS
207207
208- systemState = STATE_BASE_TEMP_WIFI_CONNECTED; // Return to previous state
208+ changeState ( STATE_BASE_TEMP_WIFI_CONNECTED) ; // Return to previous state
209209 }
210210 }
211211 else
@@ -227,7 +227,7 @@ void updateSystemState()
227227 if (connectionSuccess == false )
228228 {
229229 Serial.printf (" Caster responded with bad news: %s. Are you sure your caster credentials are correct?" , response);
230- systemState = STATE_BASE_TEMP_WIFI_CONNECTED; // Return to previous state
230+ changeState ( STATE_BASE_TEMP_WIFI_CONNECTED) ; // Return to previous state
231231 }
232232 else
233233 {
@@ -239,7 +239,7 @@ void updateSystemState()
239239 lastServerSent_ms = millis ();
240240 serverBytesSent = 0 ;
241241
242- systemState = STATE_BASE_TEMP_CASTER_CONNECTED;
242+ changeState ( STATE_BASE_TEMP_CASTER_CONNECTED) ;
243243 }
244244 }
245245 }
@@ -250,7 +250,7 @@ void updateSystemState()
250250 {
251251 if (caster.connected () == false )
252252 {
253- systemState = STATE_BASE_TEMP_WIFI_CONNECTED; // Return to 2 earlier states to try to reconnect
253+ changeState ( STATE_BASE_TEMP_WIFI_CONNECTED) ; // Return to 2 earlier states to try to reconnect
254254 }
255255 }
256256 break ;
@@ -267,7 +267,7 @@ void updateSystemState()
267267 WiFi.begin (settings.wifiSSID , settings.wifiPW );
268268
269269 radioState = WIFI_ON_NOCONNECTION;
270- systemState = STATE_BASE_FIXED_WIFI_STARTED;
270+ changeState ( STATE_BASE_FIXED_WIFI_STARTED) ;
271271 }
272272 }
273273 break ;
@@ -280,7 +280,7 @@ void updateSystemState()
280280 {
281281 radioState = WIFI_CONNECTED;
282282
283- systemState = STATE_BASE_FIXED_WIFI_CONNECTED;
283+ changeState ( STATE_BASE_FIXED_WIFI_CONNECTED) ;
284284 }
285285 else
286286 {
@@ -306,7 +306,7 @@ void updateSystemState()
306306 // Open connection to caster service
307307 if (caster.connect (settings.casterHost , settings.casterPort ) == true ) // Attempt connection
308308 {
309- systemState = STATE_BASE_FIXED_CASTER_STARTED;
309+ changeState ( STATE_BASE_FIXED_CASTER_STARTED) ;
310310
311311 Serial.printf (" Connected to %s:%d\n " , settings.casterHost , settings.casterPort );
312312
@@ -337,7 +337,7 @@ void updateSystemState()
337337 caster.stop ();
338338 delay (10 ); // Yield to RTOS
339339
340- systemState = STATE_BASE_FIXED_WIFI_CONNECTED; // Return to previous state
340+ changeState ( STATE_BASE_FIXED_WIFI_CONNECTED) ; // Return to previous state
341341 }
342342 }
343343 else
@@ -359,7 +359,7 @@ void updateSystemState()
359359 if (connectionSuccess == false )
360360 {
361361 Serial.printf (" Caster responded with bad news: %s. Are you sure your caster credentials are correct?" , response);
362- systemState = STATE_BASE_FIXED_WIFI_CONNECTED; // Return to previous state
362+ changeState ( STATE_BASE_FIXED_WIFI_CONNECTED) ; // Return to previous state
363363 }
364364 else
365365 {
@@ -371,7 +371,7 @@ void updateSystemState()
371371 lastServerSent_ms = millis ();
372372 serverBytesSent = 0 ;
373373
374- systemState = STATE_BASE_FIXED_CASTER_CONNECTED;
374+ changeState ( STATE_BASE_FIXED_CASTER_CONNECTED) ;
375375 }
376376 }
377377 }
@@ -382,67 +382,73 @@ void updateSystemState()
382382 {
383383 if (caster.connected () == false )
384384 {
385- systemState = STATE_BASE_FIXED_WIFI_CONNECTED; // Return to 2 earlier states to try to reconnect
385+ changeState ( STATE_BASE_FIXED_WIFI_CONNECTED);
386386 }
387387 }
388388 break ;
389389
390390 }
391+ }
392+ }
391393
392- // Debug print
393- switch (systemState)
394- {
395- case (STATE_ROVER_NO_FIX):
396- Serial.println (F (" State: Rover - No Fix" ));
397- break ;
398- case (STATE_ROVER_FIX):
399- Serial.println (F (" State: Rover - Fix" ));
400- break ;
401- case (STATE_ROVER_RTK_FLOAT):
402- Serial.println (F (" State: Rover - RTK Float" ));
403- break ;
404- case (STATE_ROVER_RTK_FIX):
405- Serial.println (F (" State: Rover - RTK Fix" ));
406- break ;
407- case (STATE_BASE_TEMP_SURVEY_NOT_STARTED):
408- Serial.println (F (" State: Base-Temp - Survey Not Started" ));
409- break ;
410- case (STATE_BASE_TEMP_SURVEY_STARTED):
411- Serial.println (F (" State: Base-Temp - Survey Started" ));
412- break ;
413- case (STATE_BASE_TEMP_TRANSMITTING):
414- Serial.println (F (" State: Base-Temp - Transmitting" ));
415- break ;
416- case (STATE_BASE_TEMP_WIFI_STARTED):
417- Serial.println (F (" State: Base-Temp - WiFi Started" ));
418- break ;
419- case (STATE_BASE_TEMP_WIFI_CONNECTED):
420- Serial.println (F (" State: Base-Temp - WiFi Connected" ));
421- break ;
422- case (STATE_BASE_TEMP_CASTER_STARTED):
423- Serial.println (F (" State: Base-Temp - Caster Started" ));
424- break ;
425- case (STATE_BASE_TEMP_CASTER_CONNECTED):
426- Serial.println (F (" State: Base-Temp - Caster Connected" ));
427- break ;
428- case (STATE_BASE_FIXED_TRANSMITTING):
429- Serial.println (F (" State: Base-Fixed - Transmitting" ));
430- break ;
431- case (STATE_BASE_FIXED_WIFI_STARTED):
432- Serial.println (F (" State: Base-Fixed - WiFi Started" ));
433- break ;
434- case (STATE_BASE_FIXED_WIFI_CONNECTED):
435- Serial.println (F (" State: Base-Fixed - WiFi Connected" ));
436- break ;
437- case (STATE_BASE_FIXED_CASTER_STARTED):
438- Serial.println (F (" State: Base-Fixed - Caster Started" ));
439- break ;
440- case (STATE_BASE_FIXED_CASTER_CONNECTED):
441- Serial.println (F (" State: Base-Fixed - Caster Connected" ));
442- break ;
443- default :
444- Serial.printf (" State Unknown: %d\n " , systemState);
445- break ;
446- }
394+ // Change states and print the new state
395+ void changeState (SystemState newState)
396+ {
397+ systemState = newState;
398+
399+ // Debug print
400+ switch (systemState)
401+ {
402+ case (STATE_ROVER_NO_FIX):
403+ Serial.println (F (" State: Rover - No Fix" ));
404+ break ;
405+ case (STATE_ROVER_FIX):
406+ Serial.println (F (" State: Rover - Fix" ));
407+ break ;
408+ case (STATE_ROVER_RTK_FLOAT):
409+ Serial.println (F (" State: Rover - RTK Float" ));
410+ break ;
411+ case (STATE_ROVER_RTK_FIX):
412+ Serial.println (F (" State: Rover - RTK Fix" ));
413+ break ;
414+ case (STATE_BASE_TEMP_SURVEY_NOT_STARTED):
415+ Serial.println (F (" State: Base-Temp - Survey Not Started" ));
416+ break ;
417+ case (STATE_BASE_TEMP_SURVEY_STARTED):
418+ Serial.println (F (" State: Base-Temp - Survey Started" ));
419+ break ;
420+ case (STATE_BASE_TEMP_TRANSMITTING):
421+ Serial.println (F (" State: Base-Temp - Transmitting" ));
422+ break ;
423+ case (STATE_BASE_TEMP_WIFI_STARTED):
424+ Serial.println (F (" State: Base-Temp - WiFi Started" ));
425+ break ;
426+ case (STATE_BASE_TEMP_WIFI_CONNECTED):
427+ Serial.println (F (" State: Base-Temp - WiFi Connected" ));
428+ break ;
429+ case (STATE_BASE_TEMP_CASTER_STARTED):
430+ Serial.println (F (" State: Base-Temp - Caster Started" ));
431+ break ;
432+ case (STATE_BASE_TEMP_CASTER_CONNECTED):
433+ Serial.println (F (" State: Base-Temp - Caster Connected" ));
434+ break ;
435+ case (STATE_BASE_FIXED_TRANSMITTING):
436+ Serial.println (F (" State: Base-Fixed - Transmitting" ));
437+ break ;
438+ case (STATE_BASE_FIXED_WIFI_STARTED):
439+ Serial.println (F (" State: Base-Fixed - WiFi Started" ));
440+ break ;
441+ case (STATE_BASE_FIXED_WIFI_CONNECTED):
442+ Serial.println (F (" State: Base-Fixed - WiFi Connected" ));
443+ break ;
444+ case (STATE_BASE_FIXED_CASTER_STARTED):
445+ Serial.println (F (" State: Base-Fixed - Caster Started" ));
446+ break ;
447+ case (STATE_BASE_FIXED_CASTER_CONNECTED):
448+ Serial.println (F (" State: Base-Fixed - Caster Connected" ));
449+ break ;
450+ default :
451+ Serial.printf (" State Unknown: %d\n " , systemState);
452+ break ;
447453 }
448454}
0 commit comments