Merge pull request #306 from alanbjohnston/beta-cc-safe

add Safe Mode
beta-cc
Alan Johnston 2 years ago committed by GitHub
commit ff3c1f30ba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -70,7 +70,7 @@ if [ "$1" = "" ]; then
FILE=/home/pi/CubeSatSim/battery_saver FILE=/home/pi/CubeSatSim/battery_saver
if [ -f "$FILE" ]; then if [ -f "$FILE" ]; then
echo "Battery saver mode is ON" echo "Safe Mode! Battery saver mode is ON"
else else
echo "Battery saver mode is OFF" echo "Battery saver mode is OFF"
fi fi
@ -100,7 +100,7 @@ elif [ "$1" = "-a" ]; then
FILE=/home/pi/CubeSatSim/battery_saver FILE=/home/pi/CubeSatSim/battery_saver
if [ -f "$FILE" ]; then 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 # if ! grep -q force_turbo=1 /boot/config.txt ; then sudo sh -c 'echo "force_turbo=1" >> /boot/config.txt'; fi
else else
echo "Battery saver mode is OFF." echo "Battery saver mode is OFF."
@ -119,7 +119,7 @@ elif [ "$1" = "-m" ]; then
FILE=/home/pi/CubeSatSim/battery_saver FILE=/home/pi/CubeSatSim/battery_saver
if [ -f "$FILE" ]; then 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 # if ! grep -q force_turbo=1 /boot/config.txt ; then sudo sh -c 'echo "force_turbo=1" >> /boot/config.txt'; fi
else else
echo "Battery saver mode is OFF." echo "Battery saver mode is OFF."
@ -154,7 +154,7 @@ elif [ "$1" = "-s" ]; then
FILE=/home/pi/CubeSatSim/battery_saver FILE=/home/pi/CubeSatSim/battery_saver
if [ -f "$FILE" ]; then 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 # if ! grep -q force_turbo=1 /boot/config.txt ; then sudo sh -c 'echo "force_turbo=1" >> /boot/config.txt'; fi
else else
echo "Battery saver mode is OFF." echo "Battery saver mode is OFF."
@ -482,34 +482,43 @@ elif [ "$1" = "-R" ]; then
elif [ "$1" = "-B" ]; then elif [ "$1" = "-B" ]; then
echo echo
echo "Manually setting battery saver mode" echo "Manually setting Safe Mode (battery saver mode)"
echo echo
FILE=/home/pi/CubeSatSim/battery_saver FILE=/home/pi/CubeSatSim/battery_saver
if [ -f "$FILE" ]; then if [ -f "$FILE" ]; then
echo "Battery saver mode is ON." echo "Safe Mode! Battery saver mode is ON."
mode=1 mode=1
else else
echo "Safe Mode is OFF."
echo "Battery saver mode is OFF." echo "Battery saver mode is OFF."
mode=0 mode=0
fi fi
echo 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 read saver
echo echo
reboot=0
if [ "$saver" = "y" ] || [ "$saver" = "yes" ] ; then if [ "$saver" = "y" ] || [ "$saver" = "yes" ] ; then
echo "Battery saver mode is now ON" if [ "$mode" = "0" ] ; then
touch /home/pi/CubeSatSim/battery_saver echo "Safe Mode will be turned on! Battery saver will be turned ON"
# if ["$mode" = "0"] ; then sudo systemctl restart rpitx sudo touch /home/pi/CubeSatSim/battery_saver
reboot=1
fi
else else
echo "Battery saver mode is now OFF"
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 sudo rm /home/pi/CubeSatSim/battery_saver
# if ["$mode" = "1"] ; then sudo systemctl restart rpitx reboot=1
fi
fi fi
if [ "$reboot" = "1" ] ; then
value=`cat /home/pi/CubeSatSim/.mode` value=`cat /home/pi/CubeSatSim/.mode`
echo "$value" > /dev/null echo "$value" > /dev/null
set -- $value set -- $value
@ -519,6 +528,7 @@ elif [ "$1" = "-B" ]; then
# sudo systemctl restart cubesatsim # sudo systemctl restart cubesatsim
sudo reboot now sudo reboot now
fi fi
fi
elif [ "$1" = "-q" ]; then elif [ "$1" = "-q" ]; then
@ -704,7 +714,7 @@ elif [ "$1" = "-h" ]; then
echo " -C Clear logs" echo " -C Clear logs"
echo " -T Change command and control state" echo " -T Change command and control state"
echo " -R Change the Commands Count in the file command_count.txt" 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 " -q Change the Squelch setting for command receiver"
echo " -F Change the rx and tx frequency" echo " -F Change the rx and tx frequency"
echo " -H Chnage the Balloon mode" echo " -H Chnage the Balloon mode"

@ -190,12 +190,12 @@ int main(int argc, char * argv[]) {
battery_saver_mode = battery_saver_check(); battery_saver_mode = battery_saver_check();
/* /**/
if (battery_saver_mode == ON) 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 else
fprintf(stderr, "\nBattery_saver_mode is OFF\n\n"); fprintf(stderr, "\nBattery_saver_mode is OFF\n\n");
*/ /**/
fflush(stderr); fflush(stderr);
if (mode == AFSK) if (mode == AFSK)
@ -828,12 +828,13 @@ int main(int argc, char * argv[]) {
// batteryVoltage = voltage[map[BAT]]; // batteryVoltage = voltage[map[BAT]];
// batteryCurrent = current[map[BAT]]; // batteryCurrent = current[map[BAT]];
/*
if (batteryVoltage < 3.7) { if (batteryVoltage < 3.7) {
SafeMode = 1; SafeMode = 1;
printf("Safe Mode!\n"); printf("Safe Mode!\n");
} else } else
SafeMode = 0; SafeMode = 0;
*/
FILE * cpuTempSensor = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); FILE * cpuTempSensor = fopen("/sys/class/thermal/thermal_zone0/temp", "r");
if (cpuTempSensor) { if (cpuTempSensor) {
// double cpuTemp; // double cpuTemp;
@ -929,14 +930,22 @@ int main(int argc, char * argv[]) {
if ((batteryCurrent > currentThreshold) && (batteryVoltage < (voltageThreshold + 0.15)) && !sim_mode && !hab_mode) if ((batteryCurrent > currentThreshold) && (batteryVoltage < (voltageThreshold + 0.15)) && !sim_mode && !hab_mode)
{ {
fprintf(stderr,"Battery voltage low - switch to battery saver\n"); fprintf(stderr,"Battery voltage low\n");
if (battery_saver_mode == OFF) if (battery_saver_mode == OFF) {
fprintf(stderr,"Switch to battery saver\n");
battery_saver(ON); battery_saver(ON);
fprintf(stderr, "Safe Mode!\n");
SafeMode = 1;
}
} else if ((battery_saver_mode == ON) && (batteryCurrent < 0) && !sim_mode && !hab_mode) } else if ((battery_saver_mode == ON) && (batteryCurrent < 0) && !sim_mode && !hab_mode)
{ {
fprintf(stderr,"Battery is being charged - switch battery saver off\n"); fprintf(stderr,"Battery is being charged - switch battery saver off\n");
if (battery_saver_mode == ON) if (battery_saver_mode == ON) {
battery_saver(OFF); 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. if ((batteryCurrent > currentThreshold) && (batteryVoltage < voltageThreshold) && !sim_mode && !hab_mode) // currentThreshold ensures that this won't happen when running on DC power.
{ {
@ -1267,18 +1276,18 @@ void get_tlm(void) {
// printf("Str str: %s \n", str); // printf("Str str: %s \n", str);
// fflush(stdout); // fflush(stdout);
strcat(str, cw_footer3); // strcat(str, cw_footer3);
// printf("Str: %s \n", str); // printf("Str: %s \n", str);
// fflush(stdout); // fflush(stdout);
printf("CW string to execute: %s\n", str); // printf("CW string to execute:: %s\n", str);
fflush(stdout); // fflush(stdout);
FILE * cw_file = popen(str, "r");
pclose(cw_file);
// FILE * cw_file = popen(cwready, "r"); // FILE * cw_file = popen(str, "r");
// pclose(cw_file); // 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 while ((cw_file = fopen("/home/pi/CubeSatSim/cwready", "r")) != NULL) { // wait for rpitx to be done
fclose(cw_file); fclose(cw_file);
// printf("Sleeping while waiting for rpitx \n"); // printf("Sleeping while waiting for rpitx \n");
@ -2416,11 +2425,12 @@ if ((uart_fd = serialOpen("/dev/ttyAMA0", 9600)) >= 0) { // was 9600
int battery_saver_check() { int battery_saver_check() {
FILE *file = fopen("/home/pi/CubeSatSim/battery_saver", "r"); FILE *file = fopen("/home/pi/CubeSatSim/battery_saver", "r");
if (file == NULL) { if (file == NULL) {
fprintf(stderr,"Battery saver mode is OFF!\n"); // fprintf(stderr,"Battery saver mode is OFF!\n");
return(OFF); return(OFF);
} }
fclose(file); 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); return(ON);
} }
@ -2430,6 +2440,7 @@ if (setting == ON) {
if (battery_saver_check() == OFF) { if (battery_saver_check() == OFF) {
FILE *command = popen("touch /home/pi/CubeSatSim/battery_saver", "r"); FILE *command = popen("touch /home/pi/CubeSatSim/battery_saver", "r");
pclose(command); pclose(command);
fprintf(stderr,"Turning Safe Mode ON\n");
fprintf(stderr,"Turning Battery saver 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"); // 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); // pclose(command);

@ -62,9 +62,10 @@ def battery_saver_check():
f = open("/home/pi/CubeSatSim/battery_saver", "r") f = open("/home/pi/CubeSatSim/battery_saver", "r")
f.close() f.close()
txc = False txc = False
print("Safe Mode!")
print("battery saver activated") print("battery saver activated")
except: except:
print("not activated") print("battery saver not activated")
# txc = True # txc = True
def increment_mode(): def increment_mode():
@ -490,21 +491,22 @@ if __name__ == "__main__":
## chan = chan + 1 ## chan = chan + 1
if (command_tx == True): if (command_tx == True):
output(txLed, txLedOn) output(txLed, txLedOn)
if (txc):
output (pd, 1) output (pd, 1)
sleep(0.3) sleep(0.3)
output (ptt, 0) output (ptt, 0)
if (txc):
system("aplay -D hw:CARD=Headphones,DEV=0 /home/pi/CubeSatSim/morse.wav") system("aplay -D hw:CARD=Headphones,DEV=0 /home/pi/CubeSatSim/morse.wav")
sleep(0.1)
output (ptt, 1)
# output (pd, 0)
else: else:
if (debug_mode == 1): 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") 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: 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") 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)
output(txLed, txLedOff) output(txLed, txLedOff)
output (ptt, 1)
command_control_check() command_control_check()
f.close() f.close()
sleep(5) sleep(5)

Loading…
Cancel
Save

Powered by TurnKey Linux.