diff --git a/pyhon/commands.py b/pyhon/commands.py index 6fad60a..7c1e9ee 100644 --- a/pyhon/commands.py +++ b/pyhon/commands.py @@ -67,5 +67,5 @@ class HonCommand: @property def settings(self): """Parameters with typology enum and range""" - return {s: self._parameters[s] for s in self.setting_keys} + return {s: self._parameters.get(s) for s in self.setting_keys if self._parameters.get(s) is not None} diff --git a/pyhon/device.py b/pyhon/device.py index e63b89d..54ff200 100644 --- a/pyhon/device.py +++ b/pyhon/device.py @@ -1,6 +1,7 @@ import importlib from pyhon.commands import HonCommand +from pyhon.parameter import HonParameterFixed class HonDevice: @@ -93,7 +94,7 @@ class HonDevice: command.set_program(parameters.pop("program").split(".")[-1].lower()) command = self.commands[name] for key, data in command.settings.items(): - if parameters.get(key) is not None: + if not isinstance(data, HonParameterFixed) and parameters.get(key) is not None: data.value = parameters.get(key) async def load_commands(self): diff --git a/pyhon/parameter.py b/pyhon/parameter.py index 2970fd9..7f4e1f7 100644 --- a/pyhon/parameter.py +++ b/pyhon/parameter.py @@ -75,6 +75,7 @@ class HonParameterRange(HonParameter): @value.setter def value(self, value): + value = int(value) if self._min <= value <= self._max and not value % self._step: self._value = value else: