diff --git a/config b/config index 491f9565..7f603977 100755 --- a/config +++ b/config @@ -15,15 +15,15 @@ if [ "$1" = "" ]; then set -- $value if [ "$1" = "a" ]; then - echo "APRS mode is set" + echo "Mode is APRS" elif [ "$1" = "m" ]; then - echo "CW mode is set" + echo "Mode is CW" elif [ "$1" = "f" ]; then - echo "FSK mode is set" + echo "Mode is FSK" elif [ "$1" = "b" ]; then - echo "BPSK mode is set" + echo "Mode is BPSK" elif [ "$1" = "s" ]; then - echo "SSTV mode is set" + echo "Mode is SSTV" else echo fi @@ -60,6 +60,14 @@ if [ "$1" = "" ]; then echo $6 echo + FILE=/home/pi/CubeSatSim/command_control + if [ -f "$FILE" ]; then + echo "Radio command and control is ON" + else + echo "Radio command and control is OFF" + fi + echo + FILE=/home/pi/CubeSatSim/battery_saver if [ -f "$FILE" ]; then echo "Battery saver mode is ON" @@ -95,7 +103,7 @@ elif [ "$1" = "-a" ]; then echo "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 os OFF." + echo "Battery saver mode is OFF." # sudo sed -i ':a;N;$!ba;s/\nforce_turbo=1//g' /boot/config.txt fi @@ -175,7 +183,7 @@ elif [ "$1" = "-h" ]; then echo " -l Change the Latitude and Longitude in the configuration file sim.cfg" echo " -S Scan both I2C buses on the Raspberry Pi" echo " -C Clear logs" - echo " -T Change command state" + 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 " -q Change the Squelch setting for command receiver" @@ -441,29 +449,40 @@ elif [ "$1" = "-C" ]; then elif [ "$1" = "-T" ]; then echo - echo "Change command state" + echo "Change command and control state" echo - echo "Current command state is:" - cat /home/pi/CubeSatSim/command_tx - echo + FILE=/home/pi/CubeSatSim/command_control + if [ -f "$FILE" ]; then + echo "Radio command and control is ON" + echo + echo "Do you want to turn command and control to OFF (y/n) " + read reset + echo + + if [ "$reset" = "y" ] || [ "$reset" = "yes" ] ; then + echo "Command and control set to OFF" + sudo rm /home/pi/CubeSatSim/command_control + echo "rebooting" + sudo systemctl stop rpitx + sudo reboot now + fi + + else + echo "Radio command and control is OFF" + echo + echo "Do you want to set command and control to ON (y/n) " + read reset + echo + + if [ "$reset" = "y" ] || [ "$reset" = "yes" ] ; then + echo "Command and control set to ON" + sudo touch /home/pi/CubeSatSim/command_control + echo "rebooting" + sudo systemctl stop rpitx + sudo reboot now + fi - echo "Do you want to set beacon transmit to ON (y/n) " - read reset - echo - - if [ "$reset" = "y" ] || [ "$reset" = "yes" ] ; then - sudo sed -i 's/False/True/g' /home/pi/CubeSatSim/command_tx - echo "Command state set to True to enable beacon" - echo "rebooting" - sudo systemctl stop rpitx - sudo reboot now - else - sudo sed -i 's/True/False/g' /home/pi/CubeSatSim/command_tx - echo "Command state set to False to disable beacon" - echo "rebooting" - sudo systemctl stop rpitx - sudo reboot now fi elif [ "$1" = "-R" ]; then @@ -693,6 +712,11 @@ elif [ "$1" = "-v" ]; then echo /home/pi/CubeSatSim/telem +else + echo + echo "Unknown option. Try config -h for a list of supported options." + echo + fi # sudo systemctl restart cubesatsim diff --git a/main.c b/main.c index d16a1af3..3a39deed 100644 --- a/main.c +++ b/main.c @@ -567,7 +567,7 @@ int main(int argc, char * argv[]) { voltage_max[i] = -1000.0; current_max[i] = -1000.0; } - for (int i = 0; i < 17; i++) { + for (int i = 0; i < SENSOR_FIELDS; i++) { sensor_min[i] = 1000.0; sensor_max[i] = -1000.0; // printf("Sensor min and max initialized!"); @@ -673,7 +673,7 @@ int main(int argc, char * argv[]) { const char space[2] = " "; token = strtok(sensor_payload, space); // printf("token: %s\n", token); - for (count1 = 0; count1 < 17; count1++) { + for (count1 = 0; count1 < SENSOR_FIELDS; count1++) { if (token != NULL) { sensor[count1] = (float) atof(token); // #ifdef DEBUG_LOGGING @@ -683,18 +683,18 @@ int main(int argc, char * argv[]) { } } printf("\n"); -// if (sensor[XS1] != 0) { - if ((sensor[XS1] > -90.0) && (sensor[XS1] < 90.0) && (sensor[XS1] != 0.0)) { - if (sensor[XS1] != latitude) { - latitude = sensor[XS1]; +// if (sensor[GPS1] != 0) { + if ((sensor[GPS1] > -90.0) && (sensor[GPS1] < 90.0) && (sensor[GPS1] != 0.0)) { + if (sensor[GPS1] != latitude) { + latitude = sensor[GPS1]; printf("Latitude updated to %f \n", latitude); newGpsTime = millis(); } } -// if (sensor[XS2] != 0) { - if ((sensor[XS2] > -180.0) && (sensor[XS2] < 180.0) && (sensor[XS2] != 0.0)) { - if (sensor[XS2] != longitude) { - longitude = sensor[XS2]; +// if (sensor[GPS2] != 0) { + if ((sensor[GPS2] > -180.0) && (sensor[GPS2] < 180.0) && (sensor[GPS2] != 0.0)) { + if (sensor[GPS2] != longitude) { + longitude = sensor[GPS2]; printf("Longitude updated to %f \n", longitude); newGpsTime = millis(); } @@ -712,7 +712,7 @@ int main(int argc, char * argv[]) { } if ((sensor_payload[0] == 'O') && (sensor_payload[1] == 'K')) { - for (int count1 = 0; count1 < 17; count1++) { + for (int count1 = 0; count1 < SENSOR_FIELDS; count1++) { if (sensor[count1] < sensor_min[count1]) sensor_min[count1] = sensor[count1]; if (sensor[count1] > sensor_max[count1]) @@ -869,7 +869,7 @@ int main(int argc, char * argv[]) { const char space[2] = " "; token = strtok(sensor_payload, space); // printf("token: %s\n", token); - for (count1 = 0; count1 < 17; count1++) { + for (count1 = 0; count1 < SENSOR_FIELDS; count1++) { if (token != NULL) { sensor[count1] = (float) atof(token); // #ifdef DEBUG_LOGGING @@ -879,18 +879,18 @@ int main(int argc, char * argv[]) { } } printf("\n"); -// if (sensor[XS1] != 0) { - if ((sensor[XS1] > -90.0) && (sensor[XS1] < 90.0) && (sensor[XS1] != 0.0)) { - if (sensor[XS1] != latitude) { - latitude = sensor[XS1]; +// if (sensor[GPS1] != 0) { + if ((sensor[GPS1] > -90.0) && (sensor[GPS1] < 90.0) && (sensor[GPS1] != 0.0)) { + if (sensor[GPS1] != latitude) { + latitude = sensor[GPS1]; printf("Latitude updated to %f \n", latitude); newGpsTime = millis(); } } -// if (sensor[XS2] != 0) { - if ((sensor[XS2] > -180.0) && (sensor[XS2] < 180.0) && (sensor[XS2] != 0.0)) { - if (sensor[XS2] != longitude) { - longitude = sensor[XS2]; +// if (sensor[GPS2] != 0) { + if ((sensor[GPS2] > -180.0) && (sensor[GPS2] < 180.0) && (sensor[GPS2] != 0.0)) { + if (sensor[GPS2] != longitude) { + longitude = sensor[GPS2]; printf("Longitude updated to %f \n", longitude); newGpsTime = millis(); } @@ -908,7 +908,7 @@ int main(int argc, char * argv[]) { } if ((sensor_payload[0] == 'O') && (sensor_payload[1] == 'K')) { - for (int count1 = 0; count1 < 17; count1++) { + for (int count1 = 0; count1 < SENSOR_FIELDS; count1++) { if (sensor[count1] < sensor_min[count1]) sensor_min[count1] = sensor[count1]; if (sensor[count1] > sensor_max[count1]) @@ -1435,7 +1435,7 @@ void get_tlm_fox() { if (loop % 32 == 0) { // was 8 printf("Sending MIN frame \n"); frm_type = 0x03; - for (int count1 = 0; count1 < 17; count1++) { + for (int count1 = 0; count1 < SENSOR_FIELDS; count1++) { if (count1 < 3) other[count1] = other_min[count1]; if (count1 < 8) { @@ -1449,7 +1449,7 @@ void get_tlm_fox() { if ((loop + 16) % 32 == 0) { // was 8 printf("Sending MAX frame \n"); frm_type = 0x02; - for (int count1 = 0; count1 < 17; count1++) { + for (int count1 = 0; count1 < SENSOR_FIELDS; count1++) { if (count1 < 3) other[count1] = other_max[count1]; if (count1 < 8) { @@ -1588,8 +1588,8 @@ void get_tlm_fox() { encodeA(b_max, 42 + head_offset, (int)(sensor_max[GYRO_Y] + 0.5) + 2048); encodeB(b_max, 43 + head_offset, (int)(sensor_max[GYRO_Z] + 0.5) + 2048); - encodeA(b_max, 48 + head_offset, (int)(sensor_max[XS1] * 10 + 0.5) + 2048); - encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS2] * 10 + 0.5) + 2048); + encodeA(b_max, 48 + head_offset, (int)(sensor_max[DTEMP] * 10 + 0.5) + 2048); + encodeB(b_max, 49 + head_offset, (int)(sensor_max[XS1] * 10 + 0.5) + 2048); encodeB(b_max, 10 + head_offset, (int)(sensor_max[TEMP] * 10 + 0.5)); encodeA(b_max, 45 + head_offset, (int)(sensor_max[HUMI] * 10 + 0.5)); } @@ -1641,8 +1641,8 @@ void get_tlm_fox() { encodeA(b_min, 42 + head_offset, (int)(sensor_min[GYRO_Y] + 0.5) + 2048); encodeB(b_min, 43 + head_offset, (int)(sensor_min[GYRO_Z] + 0.5) + 2048); - encodeA(b_min, 48 + head_offset, (int)(sensor_min[XS1] * 10 + 0.5) + 2048); - encodeB(b_min, 49 + head_offset, (int)(sensor_min[XS2] * 10 + 0.5) + 2048); + encodeA(b_min, 48 + head_offset, (int)(sensor_min[DTEMP] * 10 + 0.5) + 2048); + encodeB(b_min, 49 + head_offset, (int)(sensor_min[XS1] * 10 + 0.5) + 2048); encodeB(b_min, 10 + head_offset, (int)(sensor_min[TEMP] * 10 + 0.5)); encodeA(b_min, 45 + head_offset, (int)(sensor_min[HUMI] * 10 + 0.5)); } @@ -1679,8 +1679,8 @@ void get_tlm_fox() { encodeA(b, 45 + head_offset, (int)(sensor[HUMI] * 10 + 0.5)); // in place of sensor1 encodeB(b, 46 + head_offset, PSUCurrent); - encodeA(b, 48 + head_offset, (int)(sensor[XS1] * 10 + 0.5) + 2048); - encodeB(b, 49 + head_offset, (int)(sensor[XS2] * 10 + 0.5) + 2048); + encodeA(b, 48 + head_offset, (int)(sensor[DTEMP] * 10 + 0.5) + 2048); + encodeB(b, 49 + head_offset, (int)(sensor[XS1] * 10 + 0.5) + 2048); FILE * command_count_file = fopen("/home/pi/CubeSatSim/command_count.txt", "r"); if (command_count_file != NULL) { diff --git a/main.h b/main.h index 076c0523..7e7a8507 100644 --- a/main.h +++ b/main.h @@ -34,19 +34,24 @@ #define MINUS_Y 5 #define PLUS_Z 6 #define MINUS_Z 7 -#define TEMP 2 +#define TEMP 2 // OK and BME280 is positions 0 and 1 #define PRES 3 #define ALT 4 #define HUMI 5 -#define GYRO_X 7 +#define GYRO_X 7 // MPU6050 is posisition 6 #define GYRO_Y 8 #define GYRO_Z 9 #define ACCEL_X 10 #define ACCEL_Y 11 #define ACCEL_Z 12 -#define XS1 14 -#define XS2 15 -#define XS3 16 +#define GPS1 14 // GPS is position 13 +#define GPS2 15 +#define GPS3 16 +#define DTEMP 18 // TMP is position 17 +#define XS1 20 // NEW user defined token will be position 19 +#define XS2 21 +#define XS3 22 +#define SENSOR_FIELDS 26 #define RSSI 0 #define IHU_TEMP 2 @@ -146,7 +151,7 @@ float axis[3], angle[3], volts_max[3], amps_max[3], batt, speed, period, tempS, int i2c_bus0 = OFF, i2c_bus1 = OFF, i2c_bus3 = OFF, camera = OFF, sim_mode = FALSE, SafeMode = FALSE, rxAntennaDeployed = 0, txAntennaDeployed = 0; double eclipse_time; -float voltage[9], current[9], sensor[17], other[3]; +float voltage[9], current[9], sensor[SENSOR_FIELDS], other[3]; char sensor_payload[500]; int test_i2c_bus(int bus); @@ -157,7 +162,7 @@ char pythonStr[100], pythonConfigStr[100], busStr[10]; int map[8] = {0, 1, 2, 3, 4, 5, 6, 7}; char src_addr[5] = ""; char dest_addr[5] = "APCSS"; -float voltage_min[9], current_min[9], voltage_max[9], current_max[9], sensor_max[17], sensor_min[17], other_max[3], other_min[3]; +float voltage_min[9], current_min[9], voltage_max[9], current_max[9], sensor_max[SENSOR_FIELDS], sensor_min[SENSOR_FIELDS], other_max[3], other_min[3]; int get_payload_serial(int debug_camera); int finished = FALSE; diff --git a/rpitx.py b/rpitx.py index 7e4dbba4..2168aec8 100644 --- a/rpitx.py +++ b/rpitx.py @@ -11,6 +11,51 @@ from os import system from PIL import Image, ImageDraw, ImageFont, ImageColor import serial +def command_control_check(): + + global command_control + global no_command + global debug_mode + global command_count + + output(pd, 1) + output(ptt, 1) + sleep(1) + if (no_command == False and GPIO.input(squelch) == False): + print("carrier received!") + # command_tx = not command_tx +# print(command_tx) + + try: + command_count += 1 + filec = open("/home/pi/CubeSatSim/command_count.txt", "w") + command_count_string = str(command_count) + print(command_count_string) + string = filec.write(command_count_string) + filec.close() + except: + if (debug_mode == 1): + print("Can't write command_count file!") + print("Command_count: ") + print(command_count) + + increment_mode() + +# if (command_tx == True): +# print("Turning on transmit") +# system("echo > command_tx True") +# output(txLed, txLedOn) +# sleep(0.5) +# output(txLed, txLedff) +# else: +# print("Turning off transmit") +# system("echo > command_tx False") + else: + print("No carrier received!") + output(pd, 0) +# sleep(1) + + def battery_saver_check(): try: global txc @@ -153,14 +198,6 @@ GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(txc_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(green, GPIO.OUT) -GPIO.setup(squelch, GPIO.IN, pull_up_down=GPIO.PUD_UP) ## pull up in case pin is not connected - -if GPIO.input(squelch) == False: - print("squelch not set correctly, no command input!") - no_command = True -else: - no_command = False - transmit = False if GPIO.input(12) == False: print("Version is v1 with UHF BPF") @@ -311,6 +348,23 @@ if __name__ == "__main__": if (debug_mode == 1): print("Can't read callsign from sim.cfg file, defaulting to AMSAT") file.close() + + try: + f = open("/home/pi/CubeSatSim/command_control", "r") + f.close() + GPIO.setmode(GPIO.BCM) + GPIO.setwarnings(False) + GPIO.setup(squelch, GPIO.IN, pull_up_down=GPIO.PUD_UP) ## pull up in case pin is not connected + if GPIO.input(squelch) == False: + print("squelch not set correctly, no command input!") + no_command = True + else: + print("command and control is activated") + no_command = False + except: + print("command and control not activated") + no_command = True + print(callsign) GPIO.setmode(GPIO.BCM) # added to make Tx LED work on Pi 4 GPIO.setup(txLed, GPIO.OUT) @@ -415,49 +469,14 @@ if __name__ == "__main__": output(txLed, txLedOff) system("sudo rm /home/pi/CubeSatSim/ready") f.close() - output(pd, 1) - output(ptt, 1) - sleep(1) - if (no_command == False and GPIO.input(squelch) == False): - print("carrier received!") - # command_tx = not command_tx - print(command_tx) - - try: - command_count += 1 - filec = open("/home/pi/CubeSatSim/command_count.txt", "w") - command_count_string = str(command_count) - print(command_count_string) - string = filec.write(command_count_string) - filec.close() - except: - if (debug_mode == 1): - print("Can't write command_count file!") - print("Command_count: ") - print(command_count) - - increment_mode() - - if (command_tx == True): - print("Turning on transmit") - system("echo > command_tx True") -# output(txLed, txLedOn) -# sleep(0.5) -# output(txLed, txLedff) - else: - print("Turning off transmit") - system("echo > command_tx False") - else: - print("No carrier received!") - output(pd, 0) - + if (debug_mode == 1): print("Ready for next packet!") sleep(0.5) except: - - sleep(0.5) + command_control_check() + sleep(1) elif (mode == 'm'): print("CW") # sleep(4) @@ -491,40 +510,7 @@ if __name__ == "__main__": # output (ptt, 1) sleep(5) while True: - output(pd, 1) - output(ptt, 1) - sleep(1) - if (no_command == False and GPIO.input(squelch) == False): - print("carrier received!") - # command_tx = not command_tx - print(command_tx) - - try: - command_count += 1 - filec = open("/home/pi/CubeSatSim/command_count.txt", "w") - command_count_string = str(command_count) - print(command_count_string) - string = filec.write(command_count_string) - filec.close() - except: - if (debug_mode == 1): - print("Can't write command_count file!") - print("Command_count: ") - print(command_count) - - increment_mode() - - if (command_tx == True): - print("Turning on transmit") - system("echo > command_tx True") -# output(txLed, txLedOn) -# sleep(0.5) -# output(txLed, txLedff) - else: - print("Turning off transmit") - system("echo > command_tx False") - sleep(5) - output(pd, 1) # changed from 0 to 1 + command_control_check() try: f = open("/home/pi/CubeSatSim/cwready") @@ -606,6 +592,8 @@ if __name__ == "__main__": except: print("image 2 did not load - copy from CubeSatSim/sstv directory") while 1: + command_control_check() + system("raspistill -o /home/pi/CubeSatSim/camera_out.jpg -w 320 -h 256") # > /dev/null 2>&1") print("Photo taken") @@ -632,42 +620,12 @@ if __name__ == "__main__": draw.text((120, 10), telem_string, font=font2, fill='white') img.save(file) + command_control_check() + system("/home/pi/PiSSTVpp/pisstvpp -r 48000 -p s2 /home/pi/CubeSatSim/camera_out.jpg") system("sudo rm /home/pi/CubeSatSim/camera_out.jpg > /dev/null 2>&1") - output(pd, 1) - output(ptt, 1) - sleep(1) - if (no_command == False and GPIO.input(squelch) == False): - print("carrier received!") - # command_tx = not command_tx - print(command_tx) - - try: - command_count += 1 - filec = open("/home/pi/CubeSatSim/command_count.txt", "w") - command_count_string = str(command_count) - print(command_count_string) - string = filec.write(command_count_string) - filec.close() - except: - if (debug_mode == 1): - print("Can't write command_count file!") - print("Command_count: ") - print(command_count) - - increment_mode() - - if (command_tx == True): - print("Turning on transmit") - system("echo > command_tx True") -# output(txLed, txLedOn) -# sleep(0.5) -# output(txLed, txLedff) - else: - print("Turning off transmit") - system("echo > command_tx False") - output(pd, 0) + command_control_check() if (command_tx == True): print ("Sending SSTV image") @@ -694,9 +652,14 @@ if __name__ == "__main__": sleep(1) else: try: + command_control_check() + file = open("/home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg") print("First SSTV stored image detected") system("/home/pi/PiSSTVpp/pisstvpp -r 48000 -p s2 /home/pi/CubeSatSim/sstv_image_1_320_x_256.jpg") + + command_control_check() + if (command_tx == True): print ("Sending SSTV image") @@ -723,43 +686,15 @@ if __name__ == "__main__": except: print("image 1 did not load - copy from CubeSatSim/sstv directory") try: + command_control_check() + file = open("/home/pi/CubeSatSim/sstv_image_2_320_x_256.jpg") print("Second SSTV stored image detected") system("/home/pi/PiSSTVpp/pisstvpp -r 48000 -p s2 /home/pi/CubeSatSim/sstv_image_2_320_x_256.jpg") + while 1: - output(pd, 1) - output(ptt, 1) - sleep(1) - if (no_command == False and GPIO.input(squelch) == False): - print("carrier received!") - # command_tx = not command_tx - print(command_tx) - try: - command_count += 1 - filec = open("/home/pi/CubeSatSim/command_count.txt", "w") - command_count_string = str(command_count) - print(command_count_string) - string = filec.write(command_count_string) - filec.close() - except: - if (debug_mode == 1): - print("Can't write command_count file!") - print("Command_count: ") - print(command_count) - - increment_mode() - - if (command_tx == True): - print("Turning on transmit") - system("echo > command_tx True") -# output(txLed, txLedOn) -# sleep(0.5) -# output(txLed, txLedff) - else: - print("Turning off transmit") - system("echo > command_tx False") - output(pd, 0) + command_control_check() if (command_tx == True): print ("Sending SSTV image") @@ -822,40 +757,7 @@ if __name__ == "__main__": # output(txLed, txLedOn) # sleep(0.03) # output(txLed, txLedOff) - output(pd, 1) - output(ptt, 1) - sleep(1) - if (no_command == False and GPIO.input(squelch) == False): - print("carrier received!") - # command_tx = not command_tx - print(command_tx) - - try: - command_count += 1 - filec = open("/home/pi/CubeSatSim/command_count.txt", "w") - command_count_string = str(command_count) - print(command_count_string) - string = filec.write(command_count_string) - filec.close() - except: - if (debug_mode == 1): - print("Can't write command_count file!") - print("Command_count: ") - print(command_count) - - increment_mode() - - if (command_tx == True): - print("Turning on transmit") - system("echo > command_tx True") - system("sudo nc -l 8080 | csdr convert_i16_f | csdr fir_interpolate_cc 2 | csdr dsb_fc | csdr bandpass_fir_fft_cc 0.002 0.06 0.01 | csdr fastagc_ff | sudo /home/pi/rpitx/sendiq -i /dev/stdin -s 96000 -f " + tx + "e6 -t float &") - else: - print("Turning off transmit") # and rebooting") - system("echo > command_tx False") - system("sudo systemctl restart rpitx") -# system("sudo reboot now") - sleep(60) - output(pd, 0) + command_control_check() if (command_tx == True): output(txLed, txLedOn) @@ -875,39 +777,7 @@ if __name__ == "__main__": # output(txLed, txLedOn) # sleep(0.03) # output(txLed, txLedOff) - output(pd, 1) - output(ptt, 1) - sleep(1) - if (no_command == False and GPIO.input(squelch) == False): - print("carrier received!") - # command_tx = not command_tx - print(command_tx) - - try: - command_count += 1 - filec = open("/home/pi/CubeSatSim/command_count.txt", "w") - command_count_string = str(command_count) - print(command_count_string) - string = filec.write(command_count_string) - filec.close() - except: - if (debug_mode == 1): - print("Can't write command_count file!") - print("Command_count: ") - print(command_count) - - increment_mode() - - if (command_tx == True): - print("Turning on transmit") - system("echo > command_tx True") - system("sudo nc -l 8080 | 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: - print("Turning of transmit and rebooting") - system("echo > command_tx False") - system("sudo systemctl restart rpitx") -# system("sudo reboot now") - sleep(60) + command_control_check() if (command_tx == True): output(txLed, txLedOn) sleep(4.0)