@@ -65,7 +65,8 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
6565 file.read ((uint8_t *)&_prefs->bridge_baud , sizeof (_prefs->bridge_baud )); // 131
6666 file.read ((uint8_t *)&_prefs->bridge_channel , sizeof (_prefs->bridge_channel )); // 135
6767 file.read ((uint8_t *)&_prefs->bridge_secret , sizeof (_prefs->bridge_secret )); // 136
68- file.read (pad, 4 ); // 152
68+ file.read ((uint8_t *)&_prefs->powersaving_enabled , sizeof (_prefs->powersaving_enabled )); // 152
69+ file.read (pad, 3 ); // 153
6970 file.read ((uint8_t *)&_prefs->gps_enabled , sizeof (_prefs->gps_enabled )); // 156
7071 file.read ((uint8_t *)&_prefs->gps_interval , sizeof (_prefs->gps_interval )); // 157
7172 file.read ((uint8_t *)&_prefs->advert_loc_policy , sizeof (_prefs->advert_loc_policy )); // 161
@@ -93,6 +94,8 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) {
9394 _prefs->bridge_baud = constrain (_prefs->bridge_baud , 9600 , 115200 );
9495 _prefs->bridge_channel = constrain (_prefs->bridge_channel , 0 , 14 );
9596
97+ _prefs->powersaving_enabled = constrain (_prefs->powersaving_enabled , 0 , 1 );
98+
9699 _prefs->gps_enabled = constrain (_prefs->gps_enabled , 0 , 1 );
97100 _prefs->advert_loc_policy = constrain (_prefs->advert_loc_policy , 0 , 2 );
98101
@@ -145,7 +148,8 @@ void CommonCLI::savePrefs(FILESYSTEM* fs) {
145148 file.write ((uint8_t *)&_prefs->bridge_baud , sizeof (_prefs->bridge_baud )); // 131
146149 file.write ((uint8_t *)&_prefs->bridge_channel , sizeof (_prefs->bridge_channel )); // 135
147150 file.write ((uint8_t *)&_prefs->bridge_secret , sizeof (_prefs->bridge_secret )); // 136
148- file.write (pad, 4 ); // 152
151+ file.write ((uint8_t *)&_prefs->powersaving_enabled , sizeof (_prefs->powersaving_enabled )); // 152
152+ file.write (pad, 3 ); // 153
149153 file.write ((uint8_t *)&_prefs->gps_enabled , sizeof (_prefs->gps_enabled )); // 156
150154 file.write ((uint8_t *)&_prefs->gps_interval , sizeof (_prefs->gps_interval )); // 157
151155 file.write ((uint8_t *)&_prefs->advert_loc_policy , sizeof (_prefs->advert_loc_policy )); // 161
@@ -676,6 +680,20 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch
676680 strcpy (reply, " Can't find GPS" );
677681 }
678682#endif
683+ } else if (memcmp (command, " powersaving on" , 14 ) == 0 ) {
684+ _prefs->powersaving_enabled = 1 ;
685+ savePrefs ();
686+ strcpy (reply, " ok" ); // TODO: to return Not supported if required
687+ } else if (memcmp (command, " powersaving off" , 15 ) == 0 ) {
688+ _prefs->powersaving_enabled = 0 ;
689+ savePrefs ();
690+ strcpy (reply, " ok" );
691+ } else if (memcmp (command, " powersaving" , 11 ) == 0 ) {
692+ if (_prefs->powersaving_enabled ) {
693+ strcpy (reply, " on" );
694+ } else {
695+ strcpy (reply, " off" );
696+ }
679697 } else if (memcmp (command, " log start" , 9 ) == 0 ) {
680698 _callbacks->setLoggingOn (true );
681699 strcpy (reply, " logging on" );
0 commit comments