@@ -260,13 +260,24 @@ class HomeScreen : public UIScreen {
260260#if ENV_INCLUDE_GPS == 1
261261 } else if (_page == HomePage::GPS) {
262262 LocationProvider* nmea = sensors.getLocationProvider ();
263+ char buf[50 ];
263264 int y = 18 ;
264- display.drawTextLeftAlign (0 , y, _task->getGPSState () ? " gps on" : " gps off" );
265+ bool gps_state = _task->getGPSState ();
266+ #ifdef PIN_GPS_SWITCH
267+ bool hw_gps_state = digitalRead (PIN_GPS_SWITCH);
268+ if (gps_state != hw_gps_state) {
269+ strcpy (buf, gps_state ? " gps off(hw)" : " gps off(sw)" );
270+ } else {
271+ strcpy (buf, gps_state ? " gps on" : " gps off" );
272+ }
273+ #else
274+ strcpy (buf, gps_state ? " gps on" : " gps off" );
275+ #endif
276+ display.drawTextLeftAlign (0 , y, buf);
265277 if (nmea == NULL ) {
266278 y = y + 12 ;
267279 display.drawTextLeftAlign (0 , y, " Can't access GPS" );
268280 } else {
269- char buf[50 ];
270281 strcpy (buf, nmea->isValid ()?" fix" :" no fix" );
271282 display.drawTextRightAlign (display.width ()-1 , y, buf);
272283 y = y + 12 ;
@@ -716,10 +727,14 @@ void UITask::loop() {
716727 _analogue_pin_read_millis = millis ();
717728 }
718729#endif
719- #if defined(DISP_BACKLIGHT) && defined( BACKLIGHT_BTN)
730+ #if defined(BACKLIGHT_BTN)
720731 if (millis () > next_backlight_btn_check) {
721732 bool touch_state = digitalRead (PIN_BUTTON2);
733+ #if defined(DISP_BACKLIGHT)
722734 digitalWrite (DISP_BACKLIGHT, !touch_state);
735+ #elif defined(EXP_PIN_BACKLIGHT)
736+ expander.digitalWrite (EXP_PIN_BACKLIGHT, !touch_state);
737+ #endif
723738 next_backlight_btn_check = millis () + 300 ;
724739 }
725740#endif
0 commit comments