@@ -306,11 +306,11 @@ void createSettingsString(char* settingsCSV)
306306 stringRecord (settingsCSV, " baseTypeFixed" , settings.fixedBase );
307307 stringRecord (settingsCSV, " observationSeconds" , settings.observationSeconds );
308308 stringRecord (settingsCSV, " observationPositionAccuracy" , settings.observationPositionAccuracy , 2 );
309- stringRecord (settingsCSV, " fixedBaseCoordinateTypeECEF" , settings.fixedBaseCoordinateType );
309+ stringRecord (settingsCSV, " fixedBaseCoordinateTypeECEF" , ! settings.fixedBaseCoordinateType ); // COORD_TYPE_ECEF = 0
310310 stringRecord (settingsCSV, " fixedEcefX" , settings.fixedEcefX , 3 );
311311 stringRecord (settingsCSV, " fixedEcefY" , settings.fixedEcefY , 3 );
312312 stringRecord (settingsCSV, " fixedEcefZ" , settings.fixedEcefZ , 3 );
313- stringRecord (settingsCSV, " fixedBaseCoordinateTypeGeo" , ! settings.fixedBaseCoordinateType );
313+ stringRecord (settingsCSV, " fixedBaseCoordinateTypeGeo" , settings.fixedBaseCoordinateType );
314314 stringRecord (settingsCSV, " fixedLat" , settings.fixedLat , 9 );
315315 stringRecord (settingsCSV, " fixedLong" , settings.fixedLong , 9 );
316316 stringRecord (settingsCSV, " fixedAltitude" , settings.fixedAltitude , 4 );
@@ -321,9 +321,9 @@ void createSettingsString(char* settingsCSV)
321321 stringRecord (settingsCSV, " casterUser" , settings.casterUser );
322322 stringRecord (settingsCSV, " casterUserPW" , settings.casterUserPW );
323323 stringRecord (settingsCSV, " mountPointUpload" , settings.mountPointUpload );
324- stringRecord (settingsCSV, " mountPointPWUpload " , settings.mountPointPWUpload );
324+ stringRecord (settingsCSV, " mountPointUploadPW " , settings.mountPointUploadPW );
325325 stringRecord (settingsCSV, " mountPointDownload" , settings.mountPointDownload );
326- stringRecord (settingsCSV, " mountPointPWDownload " , settings.mountPointPWDownload );
326+ stringRecord (settingsCSV, " mountPointDownloadPW " , settings.mountPointDownloadPW );
327327 stringRecord (settingsCSV, " casterTransmitGGA" , settings.casterTransmitGGA );
328328 stringRecord (settingsCSV, " wifiSSID" , settings.wifiSSID );
329329 stringRecord (settingsCSV, " wifiPW" , settings.wifiPW );
@@ -362,6 +362,13 @@ void createSettingsString(char* settingsCSV)
362362
363363 strcat (settingsCSV, " \0 " );
364364 Serial.printf (" settingsCSV len: %d\n\r " , strlen (settingsCSV));
365+
366+ // Upon AP load, Survey In is always checked.
367+ // Sometimes, (perhaps if fixed should be checked) fixed area is left enabled. Check main.js for correct disable of baseTypeFixed if fixedBase = false
368+
369+
370+ // Is baseTypeSurveyIn 1 or 0
371+ Serial.printf (" settingsCSV: %s\n\r " , settingsCSV);
365372}
366373
367374// Given a settingName, and string value, update a given setting
@@ -415,12 +422,12 @@ void updateSettingWithValue(const char *settingName, const char* settingValueStr
415422 strcpy (settings.casterUserPW , settingValueStr);
416423 else if (strcmp (settingName, " mountPointUpload" ) == 0 )
417424 strcpy (settings.mountPointUpload , settingValueStr);
418- else if (strcmp (settingName, " mountPointPWUpload " ) == 0 )
419- strcpy (settings.mountPointPWUpload , settingValueStr);
425+ else if (strcmp (settingName, " mountPointUploadPW " ) == 0 )
426+ strcpy (settings.mountPointUploadPW , settingValueStr);
420427 else if (strcmp (settingName, " mountPointDownload" ) == 0 )
421428 strcpy (settings.mountPointDownload , settingValueStr);
422- else if (strcmp (settingName, " mountPointPWDownload " ) == 0 )
423- strcpy (settings.mountPointPWDownload , settingValueStr);
429+ else if (strcmp (settingName, " mountPointDownloadPW " ) == 0 )
430+ strcpy (settings.mountPointDownloadPW , settingValueStr);
424431 else if (strcmp (settingName, " casterTransmitGGA" ) == 0 )
425432 settings.casterTransmitGGA = settingValueBool;
426433 else if (strcmp (settingName, " wifiSSID" ) == 0 )
@@ -455,7 +462,10 @@ void updateSettingWithValue(const char *settingName, const char* settingValueStr
455462 else if (strcmp (settingName, " factoryDefaultReset" ) == 0 )
456463 factoryReset ();
457464 else if (strcmp (settingName, " exitToRoverMode" ) == 0 )
458- requestChangeState (STATE_ROVER_NOT_STARTED);
465+ {
466+ ESP.restart ();
467+ // requestChangeState(STATE_ROVER_NOT_STARTED);
468+ }
459469
460470 // Check for bulk settings (constellations and message rates)
461471 // Must be last on else list
@@ -555,22 +565,36 @@ void stringRecord(char* settingsCSV, const char *id, char* settingValue)
555565}
556566
557567// Break CSV into setting constituents
568+ // Can't use strtok because we may have two commas next to each other, ie measurementRateHz,4.00,measurementRateSec,,dynamicModel,0,
558569bool parseIncomingSettings ()
559570{
560- char settingName[50 ];
561- char valueStr[50 ]; // firmwareFileName,RTK_Surveyor_Firmware_v14.bin,
562- char *ptr = strtok (incomingSettings, " ," ); // measurementRateHz,2.00,
563- for (int x = 0 ; ptr != NULL ; x++)
571+ char settingName[50 ] = {' \0 ' };
572+ char valueStr[50 ] = {' \0 ' }; // firmwareFileName,RTK_Surveyor_Firmware_v14.bin,
573+
574+ char * commaPtr = incomingSettings;
575+ char * headPtr = incomingSettings;
576+ while (*headPtr) // Check if string is over
564577 {
565- strcpy (settingName, ptr);
566- ptr = strtok (NULL , " ," ); // Move to next comma
567- if (ptr == NULL ) break ;
578+ // Spin to first comma
579+ commaPtr = strstr (headPtr, " ," );
580+ if (commaPtr != NULL ) {
581+ *commaPtr = ' \0 ' ;
582+ strcpy (settingName, headPtr);
583+ headPtr = commaPtr + 1 ;
584+ }
585+
586+ commaPtr = strstr (headPtr, " ," );
587+ if (commaPtr != NULL ) {
588+ *commaPtr = ' \0 ' ;
589+ strcpy (valueStr, headPtr);
590+ headPtr = commaPtr + 1 ;
591+ }
568592
569- strcpy (valueStr, ptr);
570- ptr = strtok (NULL , " ," ); // Move to next comma
593+ Serial.printf (" settingName: %s value: %s\n\r " , settingName, valueStr);
571594
572- // Serial.printf("settingName: %s value: %s\n\r", settingName, valueStr);
573- updateSettingWithValue (settingName, valueStr);
595+ // Ignore zero length values (measurementRateSec) received from browser
596+ if (strlen (valueStr) > 0 )
597+ updateSettingWithValue (settingName, valueStr);
574598 }
575599
576600 return (true );
0 commit comments