diff --git a/python/main.py b/python/main.py index 73a55ab..4d002dd 100644 --- a/python/main.py +++ b/python/main.py @@ -63,7 +63,8 @@ class Controller: def clear(self): self.send_hud([0x03, 0, 0, 0, 0x00, 0, 0]) - def _as_dgt(self, n: int) -> int: + def _as_dgt(self, number: float) -> int: + n = int(number) if n == 0: return 0 n %= 10 @@ -89,9 +90,17 @@ class Controller: arr = [0x01, param_1, param_2, param_3] self.send_hud(arr) - def set_distance(self, distance, unit: Unit = Unit.Any): - arr = [0x03, self._as_dgt(distance // 1000), self._as_dgt(distance // 100), self._as_dgt(distance // 10), 0x00, - self._as_dgt(distance), unit.value] + def set_distance(self, distance: float, unit: Unit = Unit.Any): + is_float = int(distance * 10) == int(distance) * 10 + if not is_float: + distance = distance * 10 + arr = [0x03, + self._as_dgt(distance // 1000), + self._as_dgt(distance // 100), + self._as_dgt(distance // 10), + 0x00 if is_float else 0xff, + self._as_dgt(distance), + unit.value] self.send_hud(arr) def set_speed(self, speed: int, limit: int = 0, acc: bool = False): diff --git a/python/test.py b/python/test.py index 68addc9..53ea305 100644 --- a/python/test.py +++ b/python/test.py @@ -62,8 +62,10 @@ def direction(controller: Controller): def distance(controller: Controller): print("Distance") - controller.set_distance(999) - controller.set_distance(999, Unit.Kilometres) + controller.set_distance(555.5) + controller.set_distance(6666) + controller.set_distance(777.7) + controller.set_distance(888, Unit.Kilometres) controller.set_distance(999, Unit.Metres) controller.set_distance(999, Unit.Foot) controller.set_distance(999, Unit.Miles) @@ -108,4 +110,7 @@ def compass(controller: Controller): if __name__ == '__main__': - instance = Controller('/dev/rfcomm0') + import os + name = '/dev/rfcomm0' if os.name != 'nt' else 'COM8' + instance = Controller(name) + suite(instance)