diff --git a/config b/config index 9d3a6feb..33da8587 100755 --- a/config +++ b/config @@ -70,7 +70,7 @@ if [ "$1" = "" ]; then FILE=/home/pi/CubeSatSim/battery_saver if [ -f "$FILE" ]; then - echo "Battery saver mode is ON" + echo "Safe Mode! Battery saver mode is ON" else echo "Battery saver mode is OFF" fi @@ -100,7 +100,7 @@ elif [ "$1" = "-a" ]; then FILE=/home/pi/CubeSatSim/battery_saver if [ -f "$FILE" ]; then - echo "Battery saver mode is ON." + echo "Safe Mode! Battery saver mode is ON." # if ! grep -q force_turbo=1 /boot/config.txt ; then sudo sh -c 'echo "force_turbo=1" >> /boot/config.txt'; fi else echo "Battery saver mode is OFF." @@ -119,7 +119,7 @@ elif [ "$1" = "-m" ]; then FILE=/home/pi/CubeSatSim/battery_saver if [ -f "$FILE" ]; then - echo "Battery saver mode is ON." + echo "Safe Mode! Battery saver mode is ON." # if ! grep -q force_turbo=1 /boot/config.txt ; then sudo sh -c 'echo "force_turbo=1" >> /boot/config.txt'; fi else echo "Battery saver mode is OFF." @@ -154,7 +154,7 @@ elif [ "$1" = "-s" ]; then FILE=/home/pi/CubeSatSim/battery_saver if [ -f "$FILE" ]; then - echo "Battery saver mode ON." + echo "Safe Mode! Battery saver mode ON." # if ! grep -q force_turbo=1 /boot/config.txt ; then sudo sh -c 'echo "force_turbo=1" >> /boot/config.txt'; fi else echo "Battery saver mode is OFF." @@ -482,42 +482,52 @@ elif [ "$1" = "-R" ]; then elif [ "$1" = "-B" ]; then echo - echo "Manually setting battery saver mode" + echo "Manually setting Safe Mode (battery saver mode)" echo FILE=/home/pi/CubeSatSim/battery_saver if [ -f "$FILE" ]; then - echo "Battery saver mode is ON." + echo "Safe Mode! Battery saver mode is ON." mode=1 else + echo "Safe Mode is OFF." echo "Battery saver mode is OFF." mode=0 fi echo - echo "Do you want Battery saver mode ON (y/n) " + echo "Do you want Safe Mode (battery saver mode) ON (y/n) " read saver echo - + + reboot=0 + if [ "$saver" = "y" ] || [ "$saver" = "yes" ] ; then - echo "Battery saver mode is now ON" - touch /home/pi/CubeSatSim/battery_saver -# if ["$mode" = "0"] ; then sudo systemctl restart rpitx + if [ "$mode" = "0" ] ; then + echo "Safe Mode will be turned on! Battery saver will be turned ON" + sudo touch /home/pi/CubeSatSim/battery_saver + reboot=1 + fi else - echo "Battery saver mode is now OFF" - sudo rm /home/pi/CubeSatSim/battery_saver -# if ["$mode" = "1"] ; then sudo systemctl restart rpitx + + if [ "$mode" = "1" ] ; then + echo "Safe Mode will be turned OFF. Battery saver mode will be turned OFF" + sudo rm /home/pi/CubeSatSim/battery_saver + reboot=1 + fi fi - value=`cat /home/pi/CubeSatSim/.mode` - echo "$value" > /dev/null - set -- $value - - if [ "$1" = "a" ] || [ "$1" = "s" ] || [ "$1" = "m" ] ; then - echo "rebooting" -# sudo systemctl restart cubesatsim - sudo reboot now + if [ "$reboot" = "1" ] ; then + value=`cat /home/pi/CubeSatSim/.mode` + echo "$value" > /dev/null + set -- $value + + if [ "$1" = "a" ] || [ "$1" = "s" ] || [ "$1" = "m" ] ; then + echo "rebooting" + # sudo systemctl restart cubesatsim + sudo reboot now + fi fi elif [ "$1" = "-q" ]; then @@ -704,7 +714,7 @@ elif [ "$1" = "-h" ]; then echo " -C Clear logs" echo " -T Change command and control state" echo " -R Change the Commands Count in the file command_count.txt" - echo " -B Change battery saver mode manually" + echo " -B Change Safe Mode (battery saver mode) manually" echo " -q Change the Squelch setting for command receiver" echo " -F Change the rx and tx frequency" echo " -H Chnage the Balloon mode" diff --git a/main.c b/main.c index 9958c06f..81b4607e 100644 --- a/main.c +++ b/main.c @@ -190,12 +190,12 @@ int main(int argc, char * argv[]) { battery_saver_mode = battery_saver_check(); -/* +/**/ if (battery_saver_mode == ON) - fprintf(stderr, "\nBattery_saver_mode is ON\n\n"); + fprintf(stderr, "Safe Mode! Battery_saver_mode is ON\n\n"); else fprintf(stderr, "\nBattery_saver_mode is OFF\n\n"); -*/ +/**/ fflush(stderr); if (mode == AFSK) @@ -827,13 +827,14 @@ int main(int argc, char * argv[]) { // batteryVoltage = voltage[map[BAT]]; // batteryCurrent = current[map[BAT]]; - + +/* if (batteryVoltage < 3.7) { SafeMode = 1; printf("Safe Mode!\n"); } else SafeMode = 0; - +*/ FILE * cpuTempSensor = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); if (cpuTempSensor) { // double cpuTemp; @@ -929,14 +930,22 @@ int main(int argc, char * argv[]) { if ((batteryCurrent > currentThreshold) && (batteryVoltage < (voltageThreshold + 0.15)) && !sim_mode && !hab_mode) { - fprintf(stderr,"Battery voltage low - switch to battery saver\n"); - if (battery_saver_mode == OFF) + fprintf(stderr,"Battery voltage low\n"); + if (battery_saver_mode == OFF) { + fprintf(stderr,"Switch to battery saver\n"); battery_saver(ON); + fprintf(stderr, "Safe Mode!\n"); + SafeMode = 1; + + } } else if ((battery_saver_mode == ON) && (batteryCurrent < 0) && !sim_mode && !hab_mode) { fprintf(stderr,"Battery is being charged - switch battery saver off\n"); - if (battery_saver_mode == ON) - battery_saver(OFF); + if (battery_saver_mode == ON) { + battery_saver(OFF); + fprintf(stderr, "Safe Mode off!\n"); + SafeMode = 0; + } } if ((batteryCurrent > currentThreshold) && (batteryVoltage < voltageThreshold) && !sim_mode && !hab_mode) // currentThreshold ensures that this won't happen when running on DC power. { @@ -1267,17 +1276,17 @@ void get_tlm(void) { // printf("Str str: %s \n", str); // fflush(stdout); - strcat(str, cw_footer3); +// strcat(str, cw_footer3); // printf("Str: %s \n", str); // fflush(stdout); - printf("CW string to execute: %s\n", str); - fflush(stdout); +// printf("CW string to execute:: %s\n", str); +// fflush(stdout); - FILE * cw_file = popen(str, "r"); - pclose(cw_file); +// FILE * cw_file = popen(str, "r"); +// pclose(cw_file); -// FILE * cw_file = popen(cwready, "r"); -// pclose(cw_file); + FILE * cw_file = popen(cwready, "r"); + pclose(cw_file); while ((cw_file = fopen("/home/pi/CubeSatSim/cwready", "r")) != NULL) { // wait for rpitx to be done fclose(cw_file); @@ -1328,7 +1337,7 @@ void get_tlm(void) { */ strcat(str, footer_str1); // strcat(str, call); - if (battery_saver_mode == ON) + if (battery_saver_mode == ON) strcat(str, footer_str); // add extra packet for rpitx transmission else strcat(str, footer_str2); @@ -2416,11 +2425,12 @@ if ((uart_fd = serialOpen("/dev/ttyAMA0", 9600)) >= 0) { // was 9600 int battery_saver_check() { FILE *file = fopen("/home/pi/CubeSatSim/battery_saver", "r"); if (file == NULL) { - fprintf(stderr,"Battery saver mode is OFF!\n"); +// fprintf(stderr,"Battery saver mode is OFF!\n"); return(OFF); } fclose(file); - fprintf(stderr,"Battery saver mode is ON!\n"); +// fprintf(stderr, "Safe Mode!\n"); +// fprintf(stderr,"Battery saver mode is ON!\n"); return(ON); } @@ -2430,6 +2440,7 @@ if (setting == ON) { if (battery_saver_check() == OFF) { FILE *command = popen("touch /home/pi/CubeSatSim/battery_saver", "r"); pclose(command); + fprintf(stderr,"Turning Safe Mode ON\n"); 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); diff --git a/rpitx.py b/rpitx.py index 3b6d7617..15782c3d 100644 --- a/rpitx.py +++ b/rpitx.py @@ -62,9 +62,10 @@ def battery_saver_check(): f = open("/home/pi/CubeSatSim/battery_saver", "r") f.close() txc = False + print("Safe Mode!") print("battery saver activated") except: - print("not activated") + print("battery saver not activated") # txc = True def increment_mode(): @@ -489,22 +490,23 @@ if __name__ == "__main__": system(command) ## chan = chan + 1 if (command_tx == True): - output(txLed, txLedOn) - output (pd, 1) - sleep(0.3) - output (ptt, 0) + output(txLed, txLedOn) if (txc): + output (pd, 1) + sleep(0.3) + output (ptt, 0) system("aplay -D hw:CARD=Headphones,DEV=0 /home/pi/CubeSatSim/morse.wav") + sleep(0.1) + output (ptt, 1) +# output (pd, 0) else: if (debug_mode == 1): system("cat /home/pi/CubeSatSim/morse.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f " + tx + "e3") else: - system("cat /home/pi/CubeSatSim/morse.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f " + tx + "e3 > /dev/null 2>&1") - - sleep(0.1) + system("cat /home/pi/CubeSatSim/morse.wav | csdr convert_i16_f | csdr gain_ff 7000 | csdr convert_f_samplerf 20833 | sudo /home/pi/rpitx/rpitx -i- -m RF -f " + tx + "e3 > /dev/null 2>&1") output(txLed, txLedOff) - output (ptt, 1) + command_control_check() f.close() sleep(5)