This commit is contained in:
mino 2022-10-11 16:25:18 +02:00
parent f1ae005267
commit 8ecb7dcad8
4 changed files with 48 additions and 11 deletions

View File

@ -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] [tecna_t3]
model: t3l
port: /dev/ttyUSB0 port: /dev/ttyUSB0
[multicomp]
port: /dev/ttyACM0
[neo_pixels]
port: /dev/ttyACM1
[archive_synchronizer]
poll_time: 6
hold_time: 1

View File

@ -58,8 +58,8 @@ class UVCCamera(Component):
"b": float(self.config[self.name].get("balance_blue", 1)), "b": float(self.config[self.name].get("balance_blue", 1)),
} }
self.lock.lock() self.lock.lock()
self.camera.set(cv2.CAP_PROP_FRAME_WIDTH, self.resolution["w"]) self.camera.set(cv2.CAP_PROP_FRAME_WIDTH, int(self.resolution["w"] / 4))
self.camera.set(cv2.CAP_PROP_FRAME_HEIGHT, self.resolution["h"]) self.camera.set(cv2.CAP_PROP_FRAME_HEIGHT, int(self.resolution["h"] / 4))
self.camera.set(cv2.CAP_PROP_AUTOFOCUS, 1) self.camera.set(cv2.CAP_PROP_AUTOFOCUS, 1)
if self.exposure_time is not None: if self.exposure_time is not None:
self.camera.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0) self.camera.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0)

View File

@ -298,13 +298,16 @@ class Test(Widget):
if all([d not in self.components for d in dependency]): if all([d not in self.components for d in dependency]):
unsupported_steps.add(step.type) unsupported_steps.add(step.type)
else: else:
unready = {} unready = set()
for d in dependency: for d in dependency:
if not self.components[d].ready: if d in self.components:
self.components[d].reconfigure()
if not self.components[d].ready: if not self.components[d].ready:
unready.add(d) self.components[d].reconfigure()
if unready == dependency: if not self.components[d].ready:
unready.add(d)
else:
unready.add(d)
if unready == set(dependency):
missing_components.add(" or ".join(dependency)) missing_components.add(" or ".join(dependency))
else: else:
if dependency not in self.components: if dependency not in self.components:

View File

@ -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: if self.run_once is True and self.done is True and self.done_ok is True:
return return
# setup camera-vision loop # setup camera-vision loop
self.components["galaxy_camera"].set_period(period=None) # only get frame on request if "uvc_camera" in self.components:
self.components["galaxy_camera"].add_sources({"test_vision": self.request_frame}) 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.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) self.get_connection = self.components["vision"].out.connect(self.get)
if "neo_pixels" in self.components and self.components["neo_pixels"].ready: if "neo_pixels" in self.components and self.components["neo_pixels"].ready:
@ -51,11 +55,17 @@ class Test_Vision(Test_Test):
def stop(self): def stop(self):
# disable camera-vision loop # 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.components["vision"].pause()
self.disconnect(self.get_connection) self.disconnect(self.get_connection)
self.disconnect(self.request_frame_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() super().stop()
# def reset(self): # def reset(self):