|
|
|
@ -26,153 +26,155 @@ if __name__ == "__main__":
|
|
|
|
# print("There are arguments!")
|
|
|
|
# print("There are arguments!")
|
|
|
|
if ('d' == sys.argv[1]):
|
|
|
|
if ('d' == sys.argv[1]):
|
|
|
|
debug_mode = True
|
|
|
|
debug_mode = True
|
|
|
|
|
|
|
|
|
|
|
|
for line in sys.stdin:
|
|
|
|
|
|
|
|
# if (debug_mode):
|
|
|
|
|
|
|
|
print(line, end =" ")
|
|
|
|
|
|
|
|
logging.warning(line)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# if '^c' == line.rstrip():
|
|
|
|
|
|
|
|
# break
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ((line.find("MODE=a")) > 0):
|
|
|
|
try:
|
|
|
|
system("echo '\nAPRS Mode!!\n'")
|
|
|
|
for line in sys.stdin:
|
|
|
|
mode = 'a'
|
|
|
|
# if (debug_mode):
|
|
|
|
change_mode = True
|
|
|
|
print(line, end =" ")
|
|
|
|
if ((line.find("DTMF>APDW15:t1#")) > 0):
|
|
|
|
logging.warning(line)
|
|
|
|
system("echo '\nAPRS Mode!!\n'")
|
|
|
|
|
|
|
|
mode = 'a'
|
|
|
|
# if '^c' == line.rstrip():
|
|
|
|
change_mode = True
|
|
|
|
# break
|
|
|
|
if ((line.find("MODE=f")) > 0):
|
|
|
|
|
|
|
|
system("echo '\nFSK Mode!!\n'")
|
|
|
|
if ((line.find("MODE=a")) > 0):
|
|
|
|
mode = 'f'
|
|
|
|
system("echo '\nAPRS Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'a'
|
|
|
|
if ((line.find("DTMF>APDW15:t2#")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nFSK Mode!!\n'")
|
|
|
|
if ((line.find("DTMF>APDW15:t1#")) > 0):
|
|
|
|
mode = 'f'
|
|
|
|
system("echo '\nAPRS Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'a'
|
|
|
|
if ((line.find("MODE=b")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nBPSK Mode!!\n'")
|
|
|
|
if ((line.find("MODE=f")) > 0):
|
|
|
|
mode = 'b'
|
|
|
|
system("echo '\nFSK Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'f'
|
|
|
|
if ((line.find("DTMF>APDW15:t3#")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nBPSK Mode!!\n'")
|
|
|
|
if ((line.find("DTMF>APDW15:t2#")) > 0):
|
|
|
|
mode = 'b'
|
|
|
|
system("echo '\nFSK Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'f'
|
|
|
|
if ((line.find("MODE=s")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nSSTV Mode!!\n'")
|
|
|
|
if ((line.find("MODE=b")) > 0):
|
|
|
|
mode = 's'
|
|
|
|
system("echo '\nBPSK Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'b'
|
|
|
|
if ((line.find("DTMF>APDW15:t4#")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nSSTV Mode!!\n'")
|
|
|
|
if ((line.find("DTMF>APDW15:t3#")) > 0):
|
|
|
|
mode = 's'
|
|
|
|
system("echo '\nBPSK Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'b'
|
|
|
|
if ((line.find("MODE=m")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nCW Mode!!\n'")
|
|
|
|
if ((line.find("MODE=s")) > 0):
|
|
|
|
mode = 'm'
|
|
|
|
system("echo '\nSSTV Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 's'
|
|
|
|
if ((line.find("DTMF>APDW15:t5#")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nCW Mode!!\n'")
|
|
|
|
if ((line.find("DTMF>APDW15:t4#")) > 0):
|
|
|
|
mode = 'm'
|
|
|
|
system("echo '\nSSTV Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 's'
|
|
|
|
if ((line.find("MODE=e")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nRepeater Mode!!\n'")
|
|
|
|
if ((line.find("MODE=m")) > 0):
|
|
|
|
mode = 'e'
|
|
|
|
system("echo '\nCW Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'm'
|
|
|
|
if ((line.find("DTMF>APDW15:t6#")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nRepeater Mode!!\n'")
|
|
|
|
if ((line.find("DTMF>APDW15:t5#")) > 0):
|
|
|
|
mode = 'e'
|
|
|
|
system("echo '\nCW Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'm'
|
|
|
|
if ((line.find("MODE=j")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nFUNcube Mode!!\n'")
|
|
|
|
if ((line.find("MODE=e")) > 0):
|
|
|
|
mode = 'j'
|
|
|
|
system("echo '\nRepeater Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'e'
|
|
|
|
if ((line.find("DTMF>APDW15:t7#")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nFUNcube Mode!!\n'")
|
|
|
|
if ((line.find("DTMF>APDW15:t6#")) > 0):
|
|
|
|
mode = 'j'
|
|
|
|
system("echo '\nRepeater Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'e'
|
|
|
|
if ((line.find("MODE=n")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nTransmit Commands Mode!!\n'")
|
|
|
|
if ((line.find("MODE=j")) > 0):
|
|
|
|
mode = 'n'
|
|
|
|
system("echo '\nFUNcube Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'j'
|
|
|
|
if ((line.find("DTMF>APDW15:t11#")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
system("echo '\nTransmit Commands Mode!!\n'")
|
|
|
|
if ((line.find("DTMF>APDW15:t7#")) > 0):
|
|
|
|
mode = 'n'
|
|
|
|
system("echo '\nFUNcube Mode!!\n'")
|
|
|
|
change_mode = True
|
|
|
|
mode = 'j'
|
|
|
|
if ((line.find("MODE=o")) > 0):
|
|
|
|
change_mode = True
|
|
|
|
counter = (counter + 1) % 2 # Direwolf prints it twice, only do once
|
|
|
|
if ((line.find("MODE=n")) > 0):
|
|
|
|
if (counter == 1):
|
|
|
|
system("echo '\nTransmit Commands Mode!!\n'")
|
|
|
|
|
|
|
|
mode = 'n'
|
|
|
|
|
|
|
|
change_mode = True
|
|
|
|
|
|
|
|
if ((line.find("DTMF>APDW15:t11#")) > 0):
|
|
|
|
|
|
|
|
system("echo '\nTransmit Commands Mode!!\n'")
|
|
|
|
|
|
|
|
mode = 'n'
|
|
|
|
|
|
|
|
change_mode = True
|
|
|
|
|
|
|
|
if ((line.find("MODE=o")) > 0):
|
|
|
|
|
|
|
|
counter = (counter + 1) % 2 # Direwolf prints it twice, only do once
|
|
|
|
|
|
|
|
if (counter == 1):
|
|
|
|
|
|
|
|
system("echo '\nBeacon Mode toggle!!\n'")
|
|
|
|
|
|
|
|
mode = 'o'
|
|
|
|
|
|
|
|
change_mode = True
|
|
|
|
|
|
|
|
counter = 1
|
|
|
|
|
|
|
|
if ((line.find("DTMF>APDW15:t10#")) > 0):
|
|
|
|
system("echo '\nBeacon Mode toggle!!\n'")
|
|
|
|
system("echo '\nBeacon Mode toggle!!\n'")
|
|
|
|
mode = 'o'
|
|
|
|
mode = 'o'
|
|
|
|
change_mode = True
|
|
|
|
change_mode = True
|
|
|
|
counter = 1
|
|
|
|
|
|
|
|
if ((line.find("DTMF>APDW15:t10#")) > 0):
|
|
|
|
# if ((debug_mode == False) and (change_mode == True) and (counter == 1): # skip every other APRS command since Direwolf prints them twice
|
|
|
|
system("echo '\nBeacon Mode toggle!!\n'")
|
|
|
|
if (debug_mode == False) and (change_mode == True): # skip every other APRS command since Direwolf prints them twice
|
|
|
|
mode = 'o'
|
|
|
|
if (mode == 'f'):
|
|
|
|
change_mode = True
|
|
|
|
blink(2)
|
|
|
|
|
|
|
|
sleep(1)
|
|
|
|
# if ((debug_mode == False) and (change_mode == True) and (counter == 1): # skip every other APRS command since Direwolf prints them twice
|
|
|
|
|
|
|
|
if (debug_mode == False) and (change_mode == True): # skip every other APRS command since Direwolf prints them twice
|
|
|
|
|
|
|
|
if (mode == 'f'):
|
|
|
|
|
|
|
|
blink(2)
|
|
|
|
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
elif (mode == 'b'):
|
|
|
|
|
|
|
|
blink(3)
|
|
|
|
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
elif (mode == 's'):
|
|
|
|
|
|
|
|
blink(4)
|
|
|
|
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
elif (mode == 'm'):
|
|
|
|
|
|
|
|
blink(5)
|
|
|
|
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
elif (mode == 'e'):
|
|
|
|
|
|
|
|
blink(6)
|
|
|
|
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
elif (mode == 'j'):
|
|
|
|
|
|
|
|
blink(7)
|
|
|
|
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
elif (mode == 'a'):
|
|
|
|
|
|
|
|
mode = 'a'
|
|
|
|
|
|
|
|
blink(1)
|
|
|
|
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
elif (mode == 'b'):
|
|
|
|
file = open("/home/pi/CubeSatSim/command_count.txt", "r")
|
|
|
|
blink(3)
|
|
|
|
string = file.read()
|
|
|
|
sleep(1)
|
|
|
|
file.close()
|
|
|
|
|
|
|
|
command_count = int(string)
|
|
|
|
elif (mode == 's'):
|
|
|
|
command_count += 1
|
|
|
|
blink(4)
|
|
|
|
filec = open("/home/pi/CubeSatSim/command_count.txt", "w")
|
|
|
|
sleep(1)
|
|
|
|
command_count_string = str(command_count)
|
|
|
|
|
|
|
|
print(command_count_string)
|
|
|
|
|
|
|
|
string = filec.write(command_count_string)
|
|
|
|
|
|
|
|
filec.close()
|
|
|
|
|
|
|
|
except:
|
|
|
|
|
|
|
|
print("Can't write command_count file!")
|
|
|
|
|
|
|
|
print("Command_count: ")
|
|
|
|
|
|
|
|
print(command_count)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# GPIO.output(txLed, 0)
|
|
|
|
elif (mode == 'm'):
|
|
|
|
# GPIO.output(powerPin, 0)
|
|
|
|
blink(5)
|
|
|
|
system("gpio write 27 1")
|
|
|
|
sleep(1)
|
|
|
|
system("gpio write 0 0")
|
|
|
|
|
|
|
|
system("gpio write 2 0")
|
|
|
|
elif (mode == 'e'):
|
|
|
|
|
|
|
|
blink(6)
|
|
|
|
system("sudo systemctl stop transmit")
|
|
|
|
sleep(1)
|
|
|
|
# system("sudo systemctl stop cubesatsim")
|
|
|
|
|
|
|
|
|
|
|
|
elif (mode == 'j'):
|
|
|
|
|
|
|
|
blink(7)
|
|
|
|
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
elif (mode == 'a'):
|
|
|
|
|
|
|
|
mode = 'a'
|
|
|
|
|
|
|
|
blink(1)
|
|
|
|
|
|
|
|
sleep(1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
file = open("/home/pi/CubeSatSim/command_count.txt", "r")
|
|
|
|
|
|
|
|
string = file.read()
|
|
|
|
|
|
|
|
file.close()
|
|
|
|
|
|
|
|
command_count = int(string)
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
print("Can't write command_count file!")
|
|
|
|
|
|
|
|
print("Command_count: ")
|
|
|
|
|
|
|
|
print(command_count)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# GPIO.output(txLed, 0)
|
|
|
|
|
|
|
|
# GPIO.output(powerPin, 0)
|
|
|
|
|
|
|
|
system("gpio write 27 1")
|
|
|
|
|
|
|
|
system("gpio write 0 0")
|
|
|
|
|
|
|
|
system("gpio write 2 0")
|
|
|
|
|
|
|
|
|
|
|
|
print("\n/home/pi/CubeSatSim/config -" + mode)
|
|
|
|
system("sudo systemctl stop transmit")
|
|
|
|
system("/home/pi/CubeSatSim/config -" + mode)
|
|
|
|
# system("sudo systemctl stop cubesatsim")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print("\n/home/pi/CubeSatSim/config -" + mode)
|
|
|
|
|
|
|
|
system("/home/pi/CubeSatSim/config -" + mode)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
change_mode = False
|
|
|
|
|
|
|
|
except:
|
|
|
|
|
|
|
|
print("Error reading line (probably due to UTF-8 issue)")
|
|
|
|
|
|
|
|
|
|
|
|
change_mode = False
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print("Waiting 5 seconds to allow unplug and plug of soundcard")
|
|
|
|
print("Waiting 5 seconds to allow unplug and plug of soundcard")
|
|
|
|
sleep(5)
|
|
|
|
sleep(5)
|
|
|
|
print("Done")
|
|
|
|
print("Done")
|
|
|
|
|