diff --git a/legacy/README.md b/legacy/README.md index 1f0b4a8..cd94f01 100644 --- a/legacy/README.md +++ b/legacy/README.md @@ -1,3 +1,5 @@ # LCR Connector (Legacy) 在3个元器件内,使用给定元器件数值列表快速找到目标数值元器件的最好拼接方式,支持电阻,电容,电感 + +执行`uv run lcr-connector --help`来查阅参数手册。 diff --git a/legacy/src/lcr_connector/__init__.py b/legacy/src/lcr_connector/__init__.py index 66a37f0..afa8cd3 100644 --- a/legacy/src/lcr_connector/__init__.py +++ b/legacy/src/lcr_connector/__init__.py @@ -177,12 +177,15 @@ class App: # fetch item and print it item = response[index] print( - "Plan {0}\t{1}\t{2:.2%}".format( + "Plan {0}\tValue: {1}\tDiff: {2} ({3:.2%})".format( index + 1, to_human_readable_value(item.value), + to_human_readable_value(item.difference), item.relative_difference, ) ) + self.__illustrate_circuit(item.circuit) + # print page footer print("") print("Page {} of {}.".format(current_page + 1, all_page + 1)) @@ -204,15 +207,19 @@ class App: :return: The command. It is an instance of `cmd_enum`. """ while True: - print("> ", end=None) - words = input() - words = words.strip() - if words in cmd_enum: + self.__show_prompt_arrow() + words = input().strip() + if words == "": + continue + + try: return cmd_enum(words) - print("Unknown command, please try again.") + except ValueError: + print("Unknown command, please try again.") def __accept_device_value(self) -> float: while True: + self.__show_prompt_arrow() words = input() value = self.__parse_human_readable_value(words) if value is None: @@ -222,6 +229,7 @@ class App: def __accept_device_value_tolerance(self, target_value: float) -> float: while True: + self.__show_prompt_arrow() words = input() if words.endswith("%"): @@ -238,6 +246,9 @@ class App: else: return value + def __show_prompt_arrow(self) -> None: + print("> ", end="") + def __parse_plain_float( self, user_value: str, checker: Callable[[float], bool] ) -> float | None: diff --git a/legacy/src/lcr_connector/main.py b/legacy/src/lcr_connector/main.py index 3f8f202..8b509fb 100644 --- a/legacy/src/lcr_connector/main.py +++ b/legacy/src/lcr_connector/main.py @@ -184,7 +184,7 @@ def WriteBoolean(fs, num): def OutputAsHuman(v): if v / 1e-12 < 1e3: - return "{:e} n".format(v / 1e-12) + return "{:.4f} n".format(v / 1e-12) if v / 1e-9 < 1e3: return "{:.4f} p".format(v / 1e-9) if v / 1e-6 < 1e3: diff --git a/legacy/src/lcr_connector/query.py b/legacy/src/lcr_connector/query.py index 6baba5c..04580cf 100644 --- a/legacy/src/lcr_connector/query.py +++ b/legacy/src/lcr_connector/query.py @@ -60,7 +60,7 @@ class ResponseItem: :return: The circuit. """ - return self.circuit + return self.__circuit @cached_property def device_count(self) -> int: @@ -69,7 +69,7 @@ class ResponseItem: :return: The device count. """ - return self.circuit.device_scale.to_device_count() + return self.__circuit.device_scale.to_device_count() @cached_property def value(self) -> float: