From 5613942d51d33d1ea60accb2e82e7c9c2f6fe798 Mon Sep 17 00:00:00 2001 From: Hoang Sa Nguyen <sa.nguyen@gmx.de> Date: Wed, 2 Dec 2020 21:27:34 +0100 Subject: [PATCH] json --- config/json_parser.py | 2 +- config/tmtcc_com_config.py | 33 ++++++++++++++++++++++++++++++++- core/tmtc_client_core.py | 1 + tmtc_core | 2 +- utility/tmtcc_args_parser.py | 6 ++++-- 5 files changed, 39 insertions(+), 5 deletions(-) diff --git a/config/json_parser.py b/config/json_parser.py index 4e26f74..fdea1dd 100644 --- a/config/json_parser.py +++ b/config/json_parser.py @@ -1,7 +1,7 @@ import json com_port_data = { - "com1": "test" + "COM_PORT": "name" } with open("tmtcc_config.json", "w") as write: diff --git a/config/tmtcc_com_config.py b/config/tmtcc_com_config.py index 79ad402..759f780 100644 --- a/config/tmtcc_com_config.py +++ b/config/tmtcc_com_config.py @@ -1,9 +1,14 @@ """ Set-up function. Initiates the communication interface. """ +import json +import os import sys from typing import Union +import serial +import serial.tools.list_ports + from tmtc_core.comIF.obsw_com_interface import CommunicationInterface from tmtc_core.comIF.obsw_dummy_com_if import DummyComIF from tmtc_core.comIF.obsw_ethernet_com_if import EthernetComIF @@ -33,8 +38,22 @@ def set_communication_interface(tmtc_printer: TmTcPrinter) -> Union[Communicatio elif g.G_COM_IF == g.ComInterfaces.Serial: serial_baudrate = g.G_SERIAL_BAUDRATE serial_timeout = g.G_SERIAL_TIMEOUT + com_port = "" + if g.G_COM_PORT is None: + if os.path.isfile("config/tmtcc_config.json"): + with open("config/tmtcc_config.json", "r") as write: + load_data = json.load(write) + com_port = load_data["COM_PORT"] + + else: + com_port = prompt_com_port() + save_to_json = input("Do you want to store serial port to configuration? (y/n)") + if save_to_json.lower() == 'y': + with open("config/tmtcc_config.json", "w") as write: + json.dump(dict(COM_PORT=com_port), write, indent=4) + communication_interface = SerialComIF( - tmtc_printer=tmtc_printer, com_port=g.G_COM_PORT, baud_rate=serial_baudrate, + tmtc_printer=tmtc_printer, com_port=com_port, baud_rate=serial_baudrate, serial_timeout=serial_timeout, ser_com_type=SerialCommunicationType.DLE_ENCODING) communication_interface.set_dle_settings( @@ -55,3 +74,15 @@ def set_communication_interface(tmtc_printer: TmTcPrinter) -> Union[Communicatio LOGGER.error("Error setting up communication interface") LOGGER.exception("Error") sys.exit() + + +def prompt_com_port() -> str: + com_port = input( + "Serial Commuinication specified without COM port. Please enter COM Port" + "(enter h to display list of COM ports): ") + if com_port == 'h': + ports = serial.tools.list_ports.comports() + for port, desc, hwid in sorted(ports): + print("{}: {} [{}]".format(port, desc, hwid)) + com_port = prompt_com_port() + return com_port diff --git a/core/tmtc_client_core.py b/core/tmtc_client_core.py index 4ef4aec..4fbee70 100755 --- a/core/tmtc_client_core.py +++ b/core/tmtc_client_core.py @@ -5,6 +5,7 @@ @manual @author R. Mueller """ +import json import sys from config.tmtcc_version import SW_VERSION, SW_SUBVERSION diff --git a/tmtc_core b/tmtc_core index 2407697..d550621 160000 --- a/tmtc_core +++ b/tmtc_core @@ -1 +1 @@ -Subproject commit 2407697ea25ec1479df5f1308183f7c9f0d01a90 +Subproject commit d550621a799b9836f8bbb1c0760ef3a20cac99af diff --git a/utility/tmtcc_args_parser.py b/utility/tmtcc_args_parser.py index 777f7e6..736797b 100644 --- a/utility/tmtcc_args_parser.py +++ b/utility/tmtcc_args_parser.py @@ -63,9 +63,11 @@ def parse_input_arguments(): print("No Input Arguments specified.") arg_parser.print_help() args, unknown = arg_parser.parse_known_args() - # for argument in vars(args): - # LOGGER.debug(argument + ": " + str(getattr(args, argument))) + + #for argument in vars(args): + # LOGGER.debug(argument + ": " + str(getattr(args, argument))) handle_args(args, unknown) + return args -- GitLab