Skip to content

Commit fd3965e

Browse files
committed
Add PQTM variable.
A previous commit added the ability to set the PQTM messages but leveraged the NMEA variable type. Upon startup, the PQTM settings weren't loading, which lead to default settings being applied (ie, GNSS output was reset to 2Hz regardless of user settings). Now the settings work as expected.
1 parent d689150 commit fd3965e

File tree

3 files changed

+75
-1
lines changed

3 files changed

+75
-1
lines changed

Firmware/RTK_Everywhere/NVM.ino

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -616,6 +616,17 @@ void recordSystemSettingsToFile(File *settingsFile)
616616
}
617617
}
618618
break;
619+
case tLgMRPqtm: {
620+
// Record LG290P PQTM rates
621+
for (int x = 0; x < rtkSettingsEntries[i].qualifier; x++)
622+
{
623+
char tempString[50]; // lg290pMessageRatesPQTM_EPE=1
624+
snprintf(tempString, sizeof(tempString), "%s%s=%d", rtkSettingsEntries[i].name,
625+
lgMessagesPQTM[x].msgTextName, settings.lg290pMessageRatesPQTM[x]);
626+
settingsFile->println(tempString);
627+
}
628+
}
629+
break;
619630
case tLgConst: {
620631
// Record LG290P Constellations
621632
for (int x = 0; x < rtkSettingsEntries[i].qualifier; x++)
@@ -1481,6 +1492,19 @@ bool parseLine(char *str)
14811492
}
14821493
}
14831494
break;
1495+
case tLgMRPqtm: {
1496+
for (int x = 0; x < qualifier; x++)
1497+
{
1498+
if ((suffix[0] == lgMessagesPQTM[x].msgTextName[0]) &&
1499+
(strcmp(suffix, lgMessagesPQTM[x].msgTextName) == 0))
1500+
{
1501+
settings.lg290pMessageRatesPQTM[x] = d;
1502+
knownSetting = true;
1503+
break;
1504+
}
1505+
}
1506+
}
1507+
break;
14841508
case tLgConst: {
14851509
for (int x = 0; x < qualifier; x++)
14861510
{

Firmware/RTK_Everywhere/menuCommands.ino

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,6 +1076,19 @@ SettingValueResponse updateSettingWithValue(bool inCommands, const char *setting
10761076
}
10771077
}
10781078
break;
1079+
case tLgMRPqtm: {
1080+
for (int x = 0; x < qualifier; x++)
1081+
{
1082+
if ((suffix[0] == lgMessagesPQTM[x].msgTextName[0]) &&
1083+
(strcmp(suffix, lgMessagesPQTM[x].msgTextName) == 0))
1084+
{
1085+
settings.lg290pMessageRatesPQTM[x] = settingValue;
1086+
knownSetting = true;
1087+
break;
1088+
}
1089+
}
1090+
}
1091+
break;
10791092
case tLgConst: {
10801093
for (int x = 0; x < qualifier; x++)
10811094
{
@@ -1868,6 +1881,17 @@ void createSettingsString(char *newSettings)
18681881
}
18691882
}
18701883
break;
1884+
case tLgMRPqtm: {
1885+
// Record LG290P PQTM rates
1886+
for (int x = 0; x < rtkSettingsEntries[i].qualifier; x++)
1887+
{
1888+
char tempString[50]; // lg290pMessageRatesPQTM_EPE=1 Not a float
1889+
snprintf(tempString, sizeof(tempString), "%s%s,%d,", rtkSettingsEntries[i].name,
1890+
lgMessagesPQTM[x].msgTextName, settings.lg290pMessageRatesPQTM[x]);
1891+
stringRecord(newSettings, tempString);
1892+
}
1893+
}
1894+
break;
18711895
case tLgConst: {
18721896
// Record LG290P Constellations
18731897
// lg290pConstellations are uint8_t, but here we have to convert to bool (true / false) so the web page
@@ -2732,6 +2756,19 @@ SettingValueResponse getSettingValue(bool inCommands, const char *settingName, c
27322756
}
27332757
}
27342758
break;
2759+
case tLgMRPqtm: {
2760+
for (int x = 0; x < qualifier; x++)
2761+
{
2762+
if ((suffix[0] == lgMessagesPQTM[x].msgTextName[0]) &&
2763+
(strcmp(suffix, lgMessagesPQTM[x].msgTextName) == 0))
2764+
{
2765+
writeToString(settingValueStr, settings.lg290pMessageRatesPQTM[x]);
2766+
knownSetting = true;
2767+
break;
2768+
}
2769+
}
2770+
}
2771+
break;
27352772
case tLgConst: {
27362773
for (int x = 0; x < qualifier; x++)
27372774
{
@@ -3278,6 +3315,18 @@ void commandList(bool inCommands, int i)
32783315
}
32793316
}
32803317
break;
3318+
case tLgMRPqtm: {
3319+
// Record LG290P PQTM rates
3320+
for (int x = 0; x < rtkSettingsEntries[i].qualifier; x++)
3321+
{
3322+
snprintf(settingName, sizeof(settingName), "%s%s", rtkSettingsEntries[i].name,
3323+
lgMessagesPQTM[x].msgTextName);
3324+
3325+
getSettingValue(inCommands, settingName, settingValue);
3326+
commandSendExecuteListResponse(settingName, "uint8_t", settingValue);
3327+
}
3328+
}
3329+
break;
32813330
case tLgConst: {
32823331
// Record LG290P Constellations
32833332
for (int x = 0; x < rtkSettingsEntries[i].qualifier; x++)

Firmware/RTK_Everywhere/settings.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1066,6 +1066,7 @@ typedef enum {
10661066
tLgMRNmea,
10671067
tLgMRRvRT,
10681068
tLgMRBaRT,
1069+
tLgMRPqtm,
10691070
tLgConst,
10701071
// Add new settings types above <---------------->
10711072
// (Maintain the enum of existing settings types!)
@@ -1607,7 +1608,7 @@ const RTK_Settings_Entry rtkSettingsEntries[] =
16071608
{ 0, 1, 1, 0, 0, 0, 0, 0, 1, tLgMRNmea, MAX_LG290P_NMEA_MSG, & settings.lg290pMessageRatesNMEA, "messageRateNMEA_", },
16081609
{ 0, 1, 1, 0, 0, 0, 0, 0, 1, tLgMRBaRT, MAX_LG290P_RTCM_MSG, & settings.lg290pMessageRatesRTCMBase, "messageRateRTCMBase_", },
16091610
{ 0, 1, 1, 0, 0, 0, 0, 0, 1, tLgMRRvRT, MAX_LG290P_RTCM_MSG, & settings.lg290pMessageRatesRTCMRover, "messageRateRTCMRover_", },
1610-
{ 0, 1, 1, 0, 0, 0, 0, 0, 1, tLgMRNmea, MAX_LG290P_PQTM_MSG, & settings.lg290pMessageRatesPQTM, "messageRatePQTM_", },
1611+
{ 0, 1, 1, 0, 0, 0, 0, 0, 1, tLgMRPqtm, MAX_LG290P_PQTM_MSG, & settings.lg290pMessageRatesPQTM, "messageRatePQTM_", },
16111612
#endif // COMPILE_LG290P
16121613

16131614
{ 0, 0, 0, 1, 1, 1, 1, 1, 1, _bool, 0, & settings.debugSettings, "debugSettings", },

0 commit comments

Comments
 (0)