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
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,34 +482,43 @@ 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"
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
# if ["$mode" = "1"] ; then sudo systemctl restart rpitx
reboot=1
fi
fi
if [ "$reboot" = "1" ] ; then
value=`cat /home/pi/CubeSatSim/.mode`
echo "$value" > /dev/null
set -- $value
@ -519,6 +528,7 @@ elif [ "$1" = "-B" ]; then
# 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"

@ -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)
@ -828,12 +828,13 @@ 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)
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,18 +1276,18 @@ 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);
FILE * cw_file = popen(str, "r");
pclose(cw_file);
// printf("CW string to execute:: %s\n", str);
// fflush(stdout);
// FILE * cw_file = popen(cwready, "r");
// FILE * cw_file = popen(str, "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);
// 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() {
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);

@ -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():
@ -490,21 +491,22 @@ if __name__ == "__main__":
## chan = chan + 1
if (command_tx == True):
output(txLed, txLedOn)
if (txc):
output (pd, 1)
sleep(0.3)
output (ptt, 0)
if (txc):
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)
output(txLed, txLedOff)
output (ptt, 1)
command_control_check()
f.close()
sleep(5)

Loading…
Cancel
Save

Powered by TurnKey Linux.