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]
model: t3l
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)),
}
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)

View File

@ -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 d in self.components:
if not self.components[d].ready:
self.components[d].reconfigure()
if not self.components[d].ready:
unready.add(d)
if unready == dependency:
else:
unready.add(d)
if unready == set(dependency):
missing_components.add(" or ".join(dependency))
else:
if dependency not in self.components:

View File

@ -32,6 +32,10 @@ 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
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
@ -51,10 +55,16 @@ class Test_Vision(Test_Test):
def stop(self):
# disable camera-vision loop
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)
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()