Daemonize stratux-screen.py and fancontrol.py.

pull/490/head
Christopher Young 2016-09-11 17:24:01 -04:00
rodzic 333bb6c3ce
commit 0588f8b0e7
4 zmienionych plików z 106 dodań i 84 usunięć

Wyświetl plik

@ -1,4 +1,4 @@
#!/bin/bash
/usr/bin/stratux-screen.py
/usr/bin/fancontrol.py
/usr/bin/stratux-screen.py start
/usr/bin/fancontrol.py start

35
image/fancontrol.py 100644 → 100755
Wyświetl plik

@ -9,20 +9,28 @@ import RPi.GPIO as GPIO
import time
import os
# Return CPU temperature as float
def getCPUtemp():
from daemon import runner
class FanControl():
# Return CPU temperature as float
def getCPUtemp(self):
cTemp = os.popen('vcgencmd measure_temp').readline()
return float(cTemp.replace("temp=","").replace("'C\n",""))
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
GPIO.setwarnings(False)
p=GPIO.PWM(11,1000)
PWM = 50
while True:
CPU_temp = getCPUtemp()
def __init__(self):
self.stdin_path = '/dev/null'
self.stdout_path = '/dev/tty'
self.stderr_path = '/dev/tty'
self.pidfile_path = '/var/run/fancontrol.pid'
self.pidfile_timeout = 5
def run(self):
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11,GPIO.OUT)
GPIO.setwarnings(False)
p=GPIO.PWM(11,1000)
PWM = 50
while True:
CPU_temp = self.getCPUtemp()
if CPU_temp > 40.5:
PWM = min(max(PWM + 1, 0), 100)
p.start(PWM)
@ -30,5 +38,8 @@ while True:
PWM = min(max(PWM - 1, 0), 100)
p.start(PWM)
time.sleep(5)
GPIO.cleanup()
GPIO.cleanup()
fancontrol = FanControl()
daemon_runner = runner.DaemonRunner(fancontrol)
daemon_runner.do_action()

Wyświetl plik

@ -126,7 +126,7 @@ sed -i /etc/default/keyboard -e "/^XKBLAYOUT/s/\".*\"/\"us\"/"
cp -f config.txt mnt/boot/
#external OLED screen
apt-get install -y libjpeg-dev i2c-tools python-smbus python-pip python-dev python-pil screen
apt-get install -y libjpeg-dev i2c-tools python-smbus python-pip python-dev python-pil python-daemon screen
git clone https://github.com/rm-hull/ssd1306
cd ssd1306 && python setup.py install
cp /root/stratux/test/screen/screen.py /usr/bin/stratux-screen.py

Wyświetl plik

@ -9,18 +9,27 @@ import urllib2
import json
import time
font2 = ImageFont.truetype('/etc/stratux-screen/CnC_Red_Alert.ttf', 12)
oled = ssd1306(port=1, address=0x3C)
from daemon import runner
with canvas(oled) as draw:
class StratuxScreen():
def __init__(self):
self.stdin_path = '/dev/null'
self.stdout_path = '/dev/tty'
self.stderr_path = '/dev/tty'
self.pidfile_path = '/var/run/fancontrol.pid'
self.pidfile_timeout = 5
def run(self):
font2 = ImageFont.truetype('/etc/stratux-screen/CnC_Red_Alert.ttf', 12)
oled = ssd1306(port=1, address=0x3C)
with canvas(oled) as draw:
logo = Image.open('/etc/stratux-screen/stratux-logo-64x64.bmp')
draw.bitmap((32, 0), logo, fill=1)
time.sleep(10)
time.sleep(10)
n = 0
n = 0
while 1:
while 1:
time.sleep(1)
response = urllib2.urlopen('http://localhost/getStatus')
getStatusHTML = response.read()
@ -36,9 +45,6 @@ while 1:
getTowersData = json.loads(getTowersHTML)
NumTowers = len(getTowersData)
with canvas(oled) as draw:
pad = 2 # Two pixels on the left and right.
text_margin = 25
@ -71,7 +77,12 @@ while 1:
t = "GPS Sat: %d/%d/%d" % (getStatusData["GPS_satellites_locked"], getStatusData["GPS_satellites_seen"], getStatusData["GPS_satellites_tracked"])
if getStatusData["GPS_solution"] == "GPS + SBAS (WAAS / EGNOS)":
t = t + " (WAAS)"
print t
#print t
draw.text((pad, 45), t, font=font2, fill=255)
n = n+1
stratuxscreen = StratuxScreen()
daemon_runner = runner.DaemonRunner(stratuxscreen)
daemon_runner.do_action()