From 8ecb7dcad8047ec2350c077fa58cbdf74400b1bc Mon Sep 17 00:00:00 2001 From: mino Date: Tue, 11 Oct 2022 16:25:18 +0200 Subject: [PATCH] wip --- config/machine_settings/mino.ini | 24 ++++++++++++++++++++++++ src/components/uvc_camera.py | 4 ++-- src/ui/test/test.py | 13 ++++++++----- src/ui/test_vision/test_vision.py | 18 ++++++++++++++---- 4 files changed, 48 insertions(+), 11 deletions(-) diff --git a/config/machine_settings/mino.ini b/config/machine_settings/mino.ini index 36a8bdc..d891c0d 100644 --- a/config/machine_settings/mino.ini +++ b/config/machine_settings/mino.ini @@ -1,2 +1,26 @@ +[hardware_config] +archive_synchronizer: present +galaxy_camera: absent +label_printer: present +multicomp: present +neo_pixels: present +remote_api: present +screwdriver: present +tecna_t3: present +uvc_camera: present +vision_saver: present +vision: present + [tecna_t3] +model: t3l port: /dev/ttyUSB0 + +[multicomp] +port: /dev/ttyACM0 + +[neo_pixels] +port: /dev/ttyACM1 + +[archive_synchronizer] +poll_time: 6 +hold_time: 1 diff --git a/src/components/uvc_camera.py b/src/components/uvc_camera.py index 402c496..aca2ade 100644 --- a/src/components/uvc_camera.py +++ b/src/components/uvc_camera.py @@ -58,8 +58,8 @@ class UVCCamera(Component): "b": float(self.config[self.name].get("balance_blue", 1)), } self.lock.lock() - self.camera.set(cv2.CAP_PROP_FRAME_WIDTH, self.resolution["w"]) - self.camera.set(cv2.CAP_PROP_FRAME_HEIGHT, self.resolution["h"]) + self.camera.set(cv2.CAP_PROP_FRAME_WIDTH, int(self.resolution["w"] / 4)) + self.camera.set(cv2.CAP_PROP_FRAME_HEIGHT, int(self.resolution["h"] / 4)) self.camera.set(cv2.CAP_PROP_AUTOFOCUS, 1) if self.exposure_time is not None: self.camera.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0) diff --git a/src/ui/test/test.py b/src/ui/test/test.py index f4cad4e..4b8257b 100755 --- a/src/ui/test/test.py +++ b/src/ui/test/test.py @@ -298,13 +298,16 @@ class Test(Widget): if all([d not in self.components for d in dependency]): unsupported_steps.add(step.type) else: - unready = {} + unready = set() for d in dependency: - if not self.components[d].ready: - self.components[d].reconfigure() + if d in self.components: if not self.components[d].ready: - unready.add(d) - if unready == dependency: + self.components[d].reconfigure() + if not self.components[d].ready: + unready.add(d) + else: + unready.add(d) + if unready == set(dependency): missing_components.add(" or ".join(dependency)) else: if dependency not in self.components: diff --git a/src/ui/test_vision/test_vision.py b/src/ui/test_vision/test_vision.py index 72ebf00..dbaf5d7 100644 --- a/src/ui/test_vision/test_vision.py +++ b/src/ui/test_vision/test_vision.py @@ -32,8 +32,12 @@ class Test_Vision(Test_Test): if self.run_once is True and self.done is True and self.done_ok is True: return # setup camera-vision loop - self.components["galaxy_camera"].set_period(period=None) # only get frame on request - self.components["galaxy_camera"].add_sources({"test_vision": self.request_frame}) + if "uvc_camera" in self.components: + self.components["uvc_camera"].set_period(period=None) # only get frame on request + self.components["uvc_camera"].add_sources({"test_vision": self.request_frame}) + elif "galaxy_camera" in self.components: + self.components["galaxy_camera"].set_period(period=None) # only get frame on request + self.components["galaxy_camera"].add_sources({"test_vision": self.request_frame}) self.request_frame_connection = self.components["vision"].out.connect(self.request_frame) # request new frame as soon as vision finishes self.get_connection = self.components["vision"].out.connect(self.get) if "neo_pixels" in self.components and self.components["neo_pixels"].ready: @@ -51,11 +55,17 @@ class Test_Vision(Test_Test): def stop(self): # disable camera-vision loop - self.components["galaxy_camera"].pause() + if "uvc_camera" in self.components: + self.components["uvc_camera"].pause() + elif "galaxy_camera" in self.components: + self.components["galaxy_camera"].pause() self.components["vision"].pause() self.disconnect(self.get_connection) self.disconnect(self.request_frame_connection) - self.components["galaxy_camera"].remove_sources(["test_vision", ]) + if "uvc_camera" in self.components: + self.components["uvc_camera"].remove_sources(["test_vision", ]) + elif "galaxy_camera" in self.components: + self.components["galaxy_camera"].remove_sources(["test_vision", ]) super().stop() # def reset(self):