From 74bd9c5bc4f852faf6b5e4be20981f5596df93bf Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Mon, 12 Jan 2026 18:24:29 +0000 Subject: [PATCH] controller: Move camera to its own service --- controller/camera/README.md | 22 +++++++++++++++++++ controller/{imager => }/camera/hardware.py | 0 controller/camera/justfile | 8 +++++++ controller/{imager => }/camera/mqtt.py | 0 ...planktoscope-org.controller.camera.service | 17 ++++++++++++++ controller/imager/camera/__init__.py | 0 ...planktoscope-org.controller.imager.service | 1 - 7 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 controller/camera/README.md rename controller/{imager => }/camera/hardware.py (100%) create mode 100644 controller/camera/justfile rename controller/{imager => }/camera/mqtt.py (100%) create mode 100644 controller/camera/planktoscope-org.controller.camera.service delete mode 100644 controller/imager/camera/__init__.py diff --git a/controller/camera/README.md b/controller/camera/README.md new file mode 100644 index 000000000..f0f34ec65 --- /dev/null +++ b/controller/camera/README.md @@ -0,0 +1,22 @@ +# controller.camera + +The PlanktoScope's hardware controller for the camera + +## Usage + +### Development + +Install all dependencies including development tooling: + +```sh +cd camera +just +``` + +Start controller for development: + +```sh +cd camera +just dev +# make changes and restart +``` diff --git a/controller/imager/camera/hardware.py b/controller/camera/hardware.py similarity index 100% rename from controller/imager/camera/hardware.py rename to controller/camera/hardware.py diff --git a/controller/camera/justfile b/controller/camera/justfile new file mode 100644 index 000000000..7ba15b049 --- /dev/null +++ b/controller/camera/justfile @@ -0,0 +1,8 @@ +setup: + sudo cp planktoscope-org.controller.camera.service /etc/systemd/system/ + sudo systemctl reenable planktoscope-org.controller.camera + sudo systemctl restart planktoscope-org.controller.camera + +dev: + -sudo systemctl stop planktoscope-org.controller.camera + cd .. && uv run python -m camera.main diff --git a/controller/imager/camera/mqtt.py b/controller/camera/mqtt.py similarity index 100% rename from controller/imager/camera/mqtt.py rename to controller/camera/mqtt.py diff --git a/controller/camera/planktoscope-org.controller.camera.service b/controller/camera/planktoscope-org.controller.camera.service new file mode 100644 index 000000000..29808e2fd --- /dev/null +++ b/controller/camera/planktoscope-org.controller.camera.service @@ -0,0 +1,17 @@ +[Unit] +Wants=mosquitto.service +After=mosquitto.service +After=nodered.service +After=mediamtx.service + +[Service] +Type=simple +Environment=HOME=/home/pi +WorkingDirectory=/home/pi/PlanktoScope/controller +ExecStart=/usr/local/bin/uv run python -m camera.main +User=pi +Group=pi +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/controller/imager/camera/__init__.py b/controller/imager/camera/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/controller/imager/planktoscope-org.controller.imager.service b/controller/imager/planktoscope-org.controller.imager.service index 368852327..3f9cb80de 100644 --- a/controller/imager/planktoscope-org.controller.imager.service +++ b/controller/imager/planktoscope-org.controller.imager.service @@ -2,7 +2,6 @@ Wants=mosquitto.service After=mosquitto.service After=nodered.service -After=mediamtx.service [Service] Type=simple