From 2ae2b33d087b8dc675f9450eb842ba5978e5eb72 Mon Sep 17 00:00:00 2001 From: Israel Figueroa Date: Wed, 29 Nov 2023 13:25:29 -0300 Subject: [PATCH] Subsistema de video --- ModuloLED/init.png | Bin 0 -> 26240 bytes ModuloLED/install-service.sh | 44 +++++++++++++++++++++++++++++ ModuloLED/led-driver.py | 52 +++++++++++++++++++++++++++++++++++ ModuloLED/led-driver.service | 14 ++++++++++ 4 files changed, 110 insertions(+) create mode 100644 ModuloLED/init.png create mode 100644 ModuloLED/install-service.sh create mode 100644 ModuloLED/led-driver.py create mode 100644 ModuloLED/led-driver.service diff --git a/ModuloLED/init.png b/ModuloLED/init.png new file mode 100644 index 0000000000000000000000000000000000000000..776fe6acc380c8466d3b3d508b17ebfd1edb4ec4 GIT binary patch literal 26240 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 P8`j>uX8Y=|Jo$eBd7y tstam: + image=Image.open(img_path) + matrix.SetImage(image.convert('RGB')) + tstam = ntstam diff --git a/ModuloLED/led-driver.service b/ModuloLED/led-driver.service new file mode 100644 index 0000000..f78b49e --- /dev/null +++ b/ModuloLED/led-driver.service @@ -0,0 +1,14 @@ +[Unit] +Description=LED Rendering Service +After=local-fs.target + +[Service] +User=root +CPUAffinity=3 +Nice=-20 +WorkingDirectory=/srv +ExecStart=/usr/bin/python3 /srv/subsystem/led-driver.py +Restart=always + +[Install] +WantedBy=multi-user.target