Update transmit.py added try except

pull/444/head
Alan Johnston 3 months ago committed by GitHub
parent 08a8072176
commit f94b301c4c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -95,7 +95,8 @@ def sim_failure_check():
print("Other failure mode")
card = "Headphones"
sim_mode = True
except:
except Exception as e:
print(f"An error occurred: {e}")
print("No failure mode")
card = "Headphones"
if sim_config:
@ -109,7 +110,8 @@ def battery_saver_check():
txc = False
print("Safe Mode!")
print("battery saver activated")
except:
except Exception as e:
print(f"An error occurred: {e}")
print("battery saver not activated")
# txc = True
@ -127,10 +129,10 @@ def increment_mode():
try:
file = open("/home/pi/CubeSatSim/.mode")
mode = file.read(1)
except:
except Exception as e:
print(f"An error occurred: {e}")
# mode = "f"
if (debug_mode == 1):
print("Can't open .mode file") # , defaulting to FSK")
print("Can't open .mode file") # , defaulting to FSK")
file.close()
print("Mode is: ")
print(mode)
@ -178,7 +180,8 @@ def increment_mode():
system("reboot -h now")
sleep(10);
except:
except Exception as e:
print(f"An error occurred: {e}")
print("can't write to .mode file")
def camera_photo():
@ -199,7 +202,8 @@ def camera_photo():
system("cp /home/pi/CubeSatSim/sstv//sstv_image_2_320_x_256.jpeg /home/pi/CubeSatSim/camera_out.jpg")
print("Using stored image")
stored_image = True
except:
except Exception as e:
print(f"An error occurred: {e}")
system("cp /home/pi/CubeSatSim/sstv//sstv_image_2_320_x_256.jpeg /home/pi/CubeSatSim/camera_out.jpg")
print("Using stored image")
stored_image = True
@ -211,7 +215,8 @@ def camera_photo():
try:
filep = open("/home/pi/CubeSatSim/telem_string.txt")
telem_string = filep.readline()
except:
except Exception as e:
print(f"An error occurred: {e}")
telem_string = ""
if (debug_mode == 1):
print("Can't read telem_string.txt")
@ -302,32 +307,40 @@ def program_fm(rx, tx, rxpl_value, sq, txpl_value):
def start_repeater(tx_freq_hz, rx_freq_hz):
global txLed
print("Starting repeater")
if abs(rx_freq_hz - 3 * tx_freq_hz) < 10000:
tx_freq_hz = tx_freq_hz + 30000
print("Adjusting Repeater TX frequency to avoid 3rd harmonic RX")
try:
print("Starting repeater")
output(txLed, 1)
txr = "{:.3f}".format(tx_freq_hz/1e3)
print(txr)
system("sudo nc -l 8011 | csdr convert_i16_f | csdr gain_ff 4000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f " + txr + " > /dev/null 2>&1 &")
sleep(0.5)
system("sudo arecord -D shared_mic -r48000 -fS16_LE -c1 | nc localhost 8011 &")
if abs(rx_freq_hz - 3 * tx_freq_hz) < 10000:
tx_freq_hz = tx_freq_hz + 30000
print("Adjusting Repeater TX frequency to avoid 3rd harmonic RX")
output(txLed, 1)
txr = "{:.3f}".format(tx_freq_hz/1e3)
print(txr)
system("sudo nc -l 8011 | csdr convert_i16_f | csdr gain_ff 4000 | csdr convert_f_samplerf 20833 | sudo rpitx -i- -m RF -f " + txr + " > /dev/null 2>&1 &")
sleep(0.5)
system("sudo arecord -D shared_mic -r48000 -fS16_LE -c1 | nc localhost 8011 &")
except Exception as e:
print(f"An error occurred: {e}")
print("start_repeater failed")
def stop_repeater():
global txLed
# print("No carrier detected, stopping repeater")
output(txLed, 0)
system("sudo rpitx -i null > /dev/null 2>&1")
system("sudo killall -9 arecord > /dev/null 2>&1")
system("sudo killall -9 nc > /dev/null 2>&1")
# system("sudo killall -9 rpitx > /dev/null 2>&1")
print("Resetting audio")
system("sudo /etc/init.d/alsa-utils stop")
system("sudo /etc/init.d/alsa-utils start")
print("Finished resetting audio")
# print("Ready to detect carrier")
try:
# print("No carrier detected, stopping repeater")
output(txLed, 0)
system("sudo rpitx -i null > /dev/null 2>&1")
system("sudo killall -9 arecord > /dev/null 2>&1")
system("sudo killall -9 nc > /dev/null 2>&1")
# system("sudo killall -9 rpitx > /dev/null 2>&1")
print("Resetting audio")
system("sudo /etc/init.d/alsa-utils stop")
system("sudo /etc/init.d/alsa-utils start")
print("Finished resetting audio")
# print("Ready to detect carrier")
except Exception as e:
print(f"An error occurred: {e}")
print("stop_repeater failed")
def update_doppler(fm="yes"):
@ -496,48 +509,60 @@ def cw_transmit_fm(morse, tx):
def cw_transmit_string(string):
global morse_timing
for character in string:
if (character != ' '):
update_doppler()
cw_transmit_char(character);
else:
sleep(7.0 * morse_timing);
try:
for character in string:
if (character != ' '):
update_doppler()
cw_transmit_char(character);
else:
sleep(7.0 * morse_timing);
except Exception as e:
print(f"An error occurred: {e}")
print("cw_transmit_string failed")
def cw_transmit_char(character):
global morse_timing
# update_doppler("no")
i = 0
duration = morse_table[(ord(character.upper()) - ord('0')) % 44][i]
if duration == 1:
duration = 1.2
# print(duration)
while (duration != 0):
transmit_carrier(duration * morse_timing)
sleep(morse_timing * 0.4) # 6)
i=i+1
try:
# update_doppler("no")
i = 0
duration = morse_table[(ord(character.upper()) - ord('0')) % 44][i]
if duration == 1:
duration = 1.2
sleep(morse_timing * 2.0) # 3) # 1.5);
# print(duration)
while (duration != 0):
transmit_carrier(duration * morse_timing)
sleep(morse_timing * 0.4) # 6)
i=i+1
duration = morse_table[(ord(character.upper()) - ord('0')) % 44][i]
if duration == 1:
duration = 1.2
sleep(morse_timing * 2.0) # 3) # 1.5);
except Exception as e:
print(f"An error occurred: {e}")
print("cw_transmit_char failed")
def transmit_carrier(duration):
global tx_doppler_freq_hz
global txLed
update_doppler("no")
command = "timeout -k 0.5 " + str(duration) + " sudo tune -f " + str(tx_doppler_freq_hz) + " > /dev/null 2>&1" # 434.9e6
start = "sudo tune -f " + str(tx_doppler_freq_hz) + " &" # + " & > /dev/null 2>&1" # 434.9e6
stop = "sudo rpitx -f 434.9e6 &"
# killrpitx = "sudo killall -9 rpitx &"
killtune = "sudo killall -9 tune &"
output(txLed, 1)
# system(start)
system(command)
system("gpio -g mode 20 out && gpio -g write 20 1")
# sleep(duration)
# system(stop)
output(txLed, 0)
# system(killrpitx)
# system(killtune)
try:
update_doppler("no")
command = "timeout -k 0.5 " + str(duration) + " sudo tune -f " + str(tx_doppler_freq_hz) + " > /dev/null 2>&1" # 434.9e6
start = "sudo tune -f " + str(tx_doppler_freq_hz) + " &" # + " & > /dev/null 2>&1" # 434.9e6
stop = "sudo rpitx -f 434.9e6 &"
# killrpitx = "sudo killall -9 rpitx &"
killtune = "sudo killall -9 tune &"
output(txLed, 1)
# system(start)
system(command)
system("gpio -g mode 20 out && gpio -g write 20 1")
# sleep(duration)
# system(stop)
output(txLed, 0)
# system(killrpitx)
# system(killtune)
except Exception as e:
print(f"An error occurred: {e}")
print("transmit_carrier failed")
print("CubeSatSim v2.2 transmit.py starting...")
@ -1055,51 +1080,54 @@ if __name__ == "__main__":
f.close()
system("sudo rm /home/pi/CubeSatSim/cwready")
## ch = 1
for chan in range(7):
if (doppler_mode):
if (command_tx == True):
try:
# update_doppler()
filename="/home/pi/CubeSatSim/cw" + str(chan) + ".txt"
print(filename)
file = open(filename)
cw_string = file.readline()
print(cw_string)
cw_transmit_string(cw_string)
except Exception as e:
print(f"An error occurred: {e}")
print("error reading cw string " + str(chan))
else:
command = "gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw" + str(chan) + ".txt -r 48000 > /dev/null 2>&1"
print(command)
system(command)
## chan = chan + 1
if (command_tx == True):
output(txLed, 1)
if (doppler_mode == True):
update_doppler()
txf = tx_doppler_freq_hz / 1e6
tx = "{:.4f}".format(txf)
if (txc):
sim_failure_check()
# output (pd, 1)
sleep(0.3)
output (ptt, 0)
system("aplay -D plughw:CARD=" + card + ",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")
try:
for chan in range(7):
if (doppler_mode):
if (command_tx == True):
try:
# update_doppler()
filename="/home/pi/CubeSatSim/cw" + str(chan) + ".txt"
print(filename)
file = open(filename)
cw_string = file.readline()
print(cw_string)
cw_transmit_string(cw_string)
except Exception as e:
print(f"An error occurred: {e}")
print("error reading cw string " + str(chan))
else:
command = "gen_packets -M 20 -o /home/pi/CubeSatSim/morse.wav /home/pi/CubeSatSim/cw" + str(chan) + ".txt -r 48000 > /dev/null 2>&1"
print(command)
system(command)
## chan = chan + 1
if (command_tx == True):
output(txLed, 1)
if (doppler_mode == True):
update_doppler()
txf = tx_doppler_freq_hz / 1e6
tx = "{:.4f}".format(txf)
if (txc):
sim_failure_check()
# output (pd, 1)
sleep(0.3)
output (ptt, 0)
system("aplay -D plughw:CARD=" + card + ",DEV=0 /home/pi/CubeSatSim/morse.wav")
sleep(0.1)
output (ptt, 1)
# output (pd, 0)
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")
output(txLed, 0)
# command_control_check()
sleep(2)
f.close()
sleep(10)
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")
output(txLed, 0)
# command_control_check()
sleep(2)
f.close()
sleep(10)
except Exception as e:
print(f"An error occurred: {e}")
except:
# command_control_check()
# print("cw not ready")

Loading…
Cancel
Save

Powered by TurnKey Linux.