This repository has been archived on 2025-06-01. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
compLIB/compLib/VisionDaemon.py
2021-01-30 01:53:25 +01:00

52 lines
1.7 KiB
Python

import os
import threading
import time
import systemd.daemon
import LogstashLogging
from LogstashLogging import logstash_logger
from threading import Thread
import logging
try:
from Battery import Battery
from Buzzer import Buzzer
except Exception as e:
logstash_logger.error("unable to import battery or buzzer in daemon")
__run = """raspivid -t 0 -b 5000000 -w 1280 -h 720 -fps 30 -n -o - | gst-launch-1.0 fdsrc ! video/x-h264,width=1280,height=720,framerate=30/1,noise-reduction=1,profile=high,stream-format=byte-stream ! h264parse ! queue ! flvmux streamable=true ! rtmpsink location=\"rtmp://localhost/live/stream\""""
def check_battery():
while True:
time.sleep(2)
battery = 0
try:
battery = Battery.percent()
except Exception as e:
logstash_logger.error(f"could not check battery -> {str(e)}")
if -100 <= battery <= 15:
logstash_logger.warning(f"LOW BATTERY DETECTED: '{battery}'")
Buzzer.set(True)
time.sleep(1)
Buzzer.set(False)
if __name__ == '__main__':
try:
systemd.daemon.notify(systemd.daemon.Notification.READY)
except:
logstash_logger.warning("Warning, old systemd version detected")
systemd.daemon.notify('READY=1')
logstash_logger.info("starting battery checker")
try:
battery_checker = threading.Thread(target=check_battery)
battery_checker.start()
logstash_logger.info("starting battery checker - DONE")
except Exception as e:
logstash_logger.error(f"could not start battery checker -> {str(e)}")
logstash_logger.info("starting gstreamer background process")
os.system(__run)
logstash_logger.error("gstreamer stopped...")