From 061921a4c1cbd701b9781653015b268e3f530af4 Mon Sep 17 00:00:00 2001 From: Alan Johnston Date: Thu, 16 Nov 2023 15:29:37 -0500 Subject: [PATCH] Update main.c added to battery saver change mode --- main.c | 36 ++++++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/main.c b/main.c index c91bfc90..4cfca191 100644 --- a/main.c +++ b/main.c @@ -2255,17 +2255,33 @@ int battery_saver_check() { void battery_saver(int setting) { if (setting == ON) { - FILE *command = popen("touch /home/pi/CubeSatSim/battery_saver", "r"); - pclose(command); - fprintf(stderr,"Turning Battery saver mode ON\n"); - return; - + if ((mode == APRS) || (mode == SSTV) || (mode == CW)) { + if (battery_saver_check() == 0) { + FILE *command = popen("touch /home/pi/CubeSatSim/battery_saver", "r"); + pclose(command); + fprintf(stderr,"Turning Battery saver mode ON\n"); + *command = popen("if ! grep -q force_turbo=1 /boot/config.txt ; then sudo sh -c 'echo "force_turbo=1" >> /boot/config.txt'; fi", "r"); + pclose(command); + *command = popen("sudo reboot now", "r"); + pclose(command); + sleep(60); + return; + } + } } else if (setting == OFF) { - FILE *command = popen("rm /home/pi/CubeSatSim/battery_saver", "r"); - pclose(command); - fprintf(stderr,"Turning Battery saver mode OFF\n"); - return; - + if ((mode == APRS) || (mode == SSTV) || (mode == CW)) { + if (battery_saver_check() == 1) { + FILE *command = popen("rm /home/pi/CubeSatSim/battery_saver", "r"); + pclose(command); + fprintf(stderr,"Turning Battery saver mode OFF\n"); + *command = popen("sudo sed -i ':a;N;$!ba;s/\nforce_turbo=1//g' /boot/config.txt ", "r"); + pclose(command); + *command = popen("sudo reboot now", "r"); + pclose(command); + sleep(60); + return; + } + } } else { fprintf(stderr,"battery_saver function error"); return;