From 93748661749954ae9db22f8838b416ea82c45818 Mon Sep 17 00:00:00 2001 From: novirium Date: Wed, 23 Jun 2021 15:02:52 +0800 Subject: [PATCH] Add compatibility for both camera types --- shepherd/plugins/aphidtrap.py | 10 ++++++++-- shepherd/plugins/mothtrap.py | 13 ++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/shepherd/plugins/aphidtrap.py b/shepherd/plugins/aphidtrap.py index 9c50771..9fedac8 100644 --- a/shepherd/plugins/aphidtrap.py +++ b/shepherd/plugins/aphidtrap.py @@ -25,8 +25,14 @@ class AphidtrapModule(shepherd.plugin.Plugin): print("Aphidtrap config:") print(self.config) - self.interface.attach_hook("picam", "pre_cam", self.led_on) - self.interface.attach_hook("picam", "post_cam", self.led_off) + if "picam" in self.plugins: + self.interface.attach_hook("picam", "pre_cam", self.led_on) + self.interface.attach_hook("picam", "post_cam", self.led_off) + elif "usbcam" in self.plugins: + self.interface.attach_hook("usbcam", "pre_cam", self.led_on) + self.interface.attach_hook("usbcam", "post_cam", self.led_off) + else: + raise ValueError("Need to either have picam or usbcam plugin loaded") self.interface.register_function(self.test) diff --git a/shepherd/plugins/mothtrap.py b/shepherd/plugins/mothtrap.py index 2e45e9a..ff405bc 100644 --- a/shepherd/plugins/mothtrap.py +++ b/shepherd/plugins/mothtrap.py @@ -37,9 +37,16 @@ class MothtrapPlugin(shepherd.plugin.Plugin): #print(F"Supplied min: {servo_min}, max: {servo_max}") - self.interface.attach_hook("usbcam", "pre_cam", self.led_on) - self.interface.attach_hook("usbcam", "post_cam", self.led_off) - self.interface.attach_hook("usbcam", "post_cam", self.run_servo) + if "picam" in self.plugins: + self.interface.attach_hook("picam", "pre_cam", self.led_on) + self.interface.attach_hook("picam", "post_cam", self.led_off) + self.interface.attach_hook("picam", "post_cam", self.run_servo) + elif "usbcam" in self.plugins: + self.interface.attach_hook("usbcam", "pre_cam", self.led_on) + self.interface.attach_hook("usbcam", "post_cam", self.led_off) + self.interface.attach_hook("usbcam", "post_cam", self.run_servo) + else: + raise ValueError("Need to either have picam or usbcam plugin loaded") self.interface.register_function(self.test)