From e0f5f3d1e0e4e94dc858a3bba24bc2d9ad82375f Mon Sep 17 00:00:00 2001 From: micha Date: Sun, 7 Nov 2021 17:48:54 +0100 Subject: [PATCH] added new options --- hr50ctl.py | 58 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/hr50ctl.py b/hr50ctl.py index 4ad5961..aa1e07b 100755 --- a/hr50ctl.py +++ b/hr50ctl.py @@ -43,7 +43,7 @@ keying_methods = { def get_serial(port, baud): try: - ser = serial.Serial(port, baud, timeout=1) + ser = serial.Serial(port, baud, timeout=2) return ser except serial.serialutil.SerialException as e: print("The following error has occured while opening the serial connection to {} with {} baud:".format(port, baud)) @@ -54,13 +54,16 @@ def get_serial(port, baud): # Hardrock-50 via the serial interface def send_command(cmd, param): ser = get_serial(serial_port, baud) + res = None try: command = cmd + param + ';' ser.write(str.encode(command)) + res = ser.readline().decode("utf-8").rstrip() except Exception as e: print("The following error has occured while sending the command {} to the HR50:".format(port, baud)) print(e) ser.close() + return res # Executed two commands vie the serial interface, # parsed the result ad polulates a dict with the @@ -92,15 +95,18 @@ def get_info(): def main(argv): + show_info = True try: - opts, args = getopt.getopt(argv,"hb:tk:") + opts, args = getopt.getopt(argv,"hb:sntk:") except getopt.GetoptError: print("Error :(") print("Please consult help via ./hr50ctl.py -h") sys.exit(2) for opt, arg in opts: + if opt == '-n': + show_info = False if opt == '-h': - print("\nUSAGE: # ./hr50ctl.py -b -t -k ") + print("\nUSAGE: # ./hr50ctl.py -b -t -s -k ") print("\nPARAMETERS:") print(" -k: the following keying methods are available:") print(" off, cor, ptt, qrp") @@ -110,6 +116,10 @@ def main(argv): print(" This parameter changes the band of the HR50") print(" -t: no parameter required.") print(" This parameters initiates the tuning during the next PTT") + print(" -s: no parameter required.") + print(" Query the status of the last tuning cycle") + print(" -n: no parameter required.") + print(" only send command, don't query status afterwards") print("\nEXAMPLES:") print(" Change the band to 12m: # ./hr50ctl.py -b 12") print(" Change the keying method to PTT: # ./hr50ctl.py -k ptt") @@ -122,31 +132,35 @@ def main(argv): elif opt == "-t": # let the HR50 know that it should return send_command("HRTU","1") + elif opt == "-s": + # query result of last tuning cycle + print(send_command("HRTS","")) elif opt == "-k": if arg in keying_methods: # let the HR50 know that it should retunr send_command("HRMD",keying_methods[arg]) - # query all desired info from the HR50 - get_info() + if show_info: + # query all desired info from the HR50 + get_info() - # print info to stdout - table = PrettyTable() - table.add_row([ - "STA: " + vlcd["STA"], - "PTT: " + vlcd["PTT"], - "BND: " + vlcd["BND"], - "VLT: " + vlcd["VLT"]]) - table.add_row([ - "PEP: " + vlcd["PEP"], - "AVG: " + vlcd["AVG"], - "SWR: " + vlcd["SWR"], - "TMP: " + vlcd["TMP"]]) - table.align = "l" - table.header = False - print("") - print(table) - print("") + # print info to stdout + table = PrettyTable() + table.add_row([ + "STA: " + vlcd["STA"], + "PTT: " + vlcd["PTT"], + "BND: " + vlcd["BND"], + "VLT: " + vlcd["VLT"]]) + table.add_row([ + "PEP: " + vlcd["PEP"], + "AVG: " + vlcd["AVG"], + "SWR: " + vlcd["SWR"], + "TMP: " + vlcd["TMP"]]) + table.align = "l" + table.header = False + print("") + print(table) + print("") if __name__ == "__main__": main(sys.argv[1:])