Skip to content

Commit

Permalink
GNSS power save option is now part of SoftRF NMEA configuration sentence
Browse files Browse the repository at this point in the history
  • Loading branch information
lyusupov committed Jul 2, 2020
1 parent 49011c5 commit d052bae
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 15 deletions.
5 changes: 3 additions & 2 deletions software/app/Settings/settings.html
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@
+ document.getElementById("gdl90").value + ","
+ document.getElementById("d1090").value + ","
+ document.getElementById("stealth").value + ","
+ document.getElementById("no_track").value;
+ document.getElementById("no_track").value + ","
+ document.getElementById("powersave").value;


// Compute the checksum by XORing all the character values in the string.
Expand Down Expand Up @@ -399,7 +400,7 @@ <h1 align=center>Settings</h1>
<th align=left>Power save</th>
<td align=right>
<select id="PowerSaves" onchange="SelPowerSave()">
<option selected value='0'>Disabled</option>
<option selected value='0'>Off</option>
<option value='2'>GNSS</option>
</select>
</td>
Expand Down
17 changes: 14 additions & 3 deletions software/app/interface/SoftRF.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
<alarm>,<tx power>,<buzzer>,<leds>,
<NMEA GNSS>,<NMEA private>,<NMEA legacy>,<NMEA sensors>,
<NMEA output>,<GDL90 output>,<D1090 output>,
<stealth>,<no track>*<checksum><CR><LF>"
<stealth>,<no track>,<power save>*<checksum><CR><LF>"
TO APPLY SETTINGS
-----------------
Expand All @@ -41,14 +41,14 @@
<alarm>,<tx power>,<buzzer>,<leds>,
<NMEA GNSS>,<NMEA private>,<NMEA legacy>,<NMEA sensors>,
<NMEA output>,<GDL90 output>,<D1090 output>,
<stealth>,<no track>*<checksum><CR><LF>"
<stealth>,<no track>,<power save>*<checksum><CR><LF>"
Response: dump of new settings followed by system restart
EXAMPLE OF NMEA SENTENCE
------------------------
$PSRFC,1,0,1,1,1,1,0,0,0,1,0,1,1,4,0,0,0,0*50
$PSRFC,1,0,1,1,1,1,0,0,0,1,0,1,1,4,0,0,0,0,0*4C
LIST OF SETTINGS AVAILABLE
Expand Down Expand Up @@ -78,6 +78,8 @@
Stealth: On, Off
No track: On, Off
Power save: Off, GNSS
RECOMMENDED DEFAULT SETTINGS
----------------------------
Expand All @@ -99,6 +101,8 @@
Stealth: Off
No track: Off
Power save: Off
OTHER INFORMATION
-----------------
Expand Down Expand Up @@ -262,4 +266,11 @@ enum
SOFTRF_NOTRACK_ON
};

enum
{
SOFTRF_POWER_SAVE_NONE = 0,
SOFTRF_POWER_SAVE_WIFI = 1,
SOFTRF_POWER_SAVE_GNSS = 2
};

#endif /* SOFTRF_H */
6 changes: 3 additions & 3 deletions software/firmware/source/SkyWatch/NMEAHelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -465,13 +465,13 @@ void NMEA_loop()
bool NMEA_Save_Settings()
{
snprintf_P(NMEABuffer, sizeof(NMEABuffer),
PSTR("$PSRFC,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d*"),
PSTR("$PSRFC,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d*"),
PSRFC_VERSION, settings->s.mode, settings->s.rf_protocol,
settings->s.band, settings->s.aircraft_type, settings->s.alarm,
settings->s.txpower, BUZZER_OFF, LED_OFF,
settings->s.nmea_g, settings->s.nmea_p, settings->s.nmea_l,
settings->s.nmea_s, NMEA_UART, GDL90_OFF,
D1090_OFF, settings->s.stealth, settings->s.no_track );
settings->s.nmea_s, NMEA_UART, GDL90_OFF, D1090_OFF,
settings->s.stealth, settings->s.no_track, settings->s.power_save );

NMEA_add_checksum(NMEABuffer, sizeof(NMEABuffer) - strlen(NMEABuffer));

Expand Down
22 changes: 15 additions & 7 deletions software/firmware/source/SoftRF/GNSSHelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ TinyGPSCustom C_GDL90_Output (gnss, "PSRFC", 15);
TinyGPSCustom C_D1090_Output (gnss, "PSRFC", 16);
TinyGPSCustom C_Stealth (gnss, "PSRFC", 17);
TinyGPSCustom C_noTrack (gnss, "PSRFC", 18);
TinyGPSCustom C_PowerSave (gnss, "PSRFC", 19);

#endif /* USE_NMEA_CFG */

Expand Down Expand Up @@ -787,13 +788,14 @@ void PickGNSSFix()
char psrfc_buf[MAX_PSRFC_LEN];

snprintf_P(psrfc_buf, sizeof(psrfc_buf),
PSTR("$PSRFC,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d*"),
PSRFC_VERSION, settings->mode, settings->rf_protocol,
settings->band, settings->aircraft_type, settings->alarm,
settings->txpower, settings->volume, settings->pointer,
settings->nmea_g, settings->nmea_p, settings->nmea_l,
settings->nmea_s, settings->nmea_out, settings->gdl90,
settings->d1090, settings->stealth, settings->no_track );
PSTR("$PSRFC,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d*"),
PSRFC_VERSION, settings->mode, settings->rf_protocol,
settings->band, settings->aircraft_type, settings->alarm,
settings->txpower, settings->volume, settings->pointer,
settings->nmea_g, settings->nmea_p, settings->nmea_l,
settings->nmea_s, settings->nmea_out, settings->gdl90,
settings->d1090, settings->stealth, settings->no_track,
settings->power_save );

NMEA_add_checksum(psrfc_buf, sizeof(psrfc_buf) - strlen(psrfc_buf));
NMEA_Out((byte *) psrfc_buf, strlen(psrfc_buf), false);
Expand Down Expand Up @@ -903,6 +905,12 @@ void PickGNSSFix()
Serial.print(F("noTrack = ")); Serial.println(settings->no_track);
cfg_is_updated = true;
}
if (C_PowerSave.isUpdated())
{
settings->power_save = atoi(C_PowerSave.value());
Serial.print(F("PowerSave = ")); Serial.println(settings->power_save);
cfg_is_updated = true;
}

if (cfg_is_updated) {
SoC->WDT_fini();
Expand Down

0 comments on commit d052bae

Please sign in to comment.