From 6547478d006f54caba02d5184a628610edc73fd8 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Tue, 30 Jun 2026 16:22:06 +0200 Subject: [PATCH] HendiCtrl: better Exceptions --- components/actor/hendiCtrl.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/components/actor/hendiCtrl.py b/components/actor/hendiCtrl.py index aa3e39b..b8af436 100755 --- a/components/actor/hendiCtrl.py +++ b/components/actor/hendiCtrl.py @@ -6,7 +6,10 @@ import sys import numpy as np from contextlib import contextmanager +class HendiException(Exception): + pass +class HendiCtrl: class HendiCtrl: def __init__(self, port, speed): self.ser = serial.Serial(port, speed) @@ -32,8 +35,12 @@ class HendiCtrl: } self.poly_w2d = np.polyfit(powers, digits, 5) self.poly_d2w = np.polyfit(digits, powers, 5) - self.sw_id = self.getSoftwareIdentifier() - self.sw_ver = self.getSoftwareVersion() + + try: + self.sw_id = self.getSoftwareIdentifier() + self.sw_ver = self.getSoftwareVersion() + except HendiException: + print("HendiCtrl: Hendi not found") @contextmanager def remote_open(self): @@ -113,7 +120,7 @@ class HendiCtrl: self.__write(req) rsp = self.__read() if "OK" not in rsp[0]: - raise Exception(rsp[1]) + raise HendiException(f"Communication error") return rsp[1]