9e9a63ea1a
Update startBrowser x MON PI
99 lines
3.2 KiB
Python
99 lines
3.2 KiB
Python
#!/usr/bin/python
|
|
|
|
from os import getrandom
|
|
from gpiozero import LED,Button
|
|
import time
|
|
import datetime
|
|
import redis
|
|
import os
|
|
import FTL.FTLog
|
|
|
|
FTL.FTLog.Write(" FTDInOut started")
|
|
|
|
#configurazione per lavorare su server redis locale
|
|
REDIS_PORT = 6379
|
|
REDIS_HOST = '127.0.0.1'
|
|
redSrv0 = redis.Redis(
|
|
host=REDIS_HOST,
|
|
port=REDIS_PORT,
|
|
db=0)
|
|
|
|
#definisco directory /data
|
|
dataDir='/home/pi/data/'
|
|
|
|
#funzione per leggere e decodificare da redis
|
|
def getRedisVal(redisKey):
|
|
if redSrv0.get(redisKey) is None:
|
|
return redSrv0.get(redisKey)
|
|
else:
|
|
return redSrv0.get(redisKey).decode('utf-8')
|
|
|
|
#definisco gli elementi da utilizzare: bottone start, bottone stop, cancelletto e led
|
|
start = Button(6)
|
|
stop = Button(13)
|
|
cancello = Button(19)
|
|
led = LED(26)
|
|
|
|
redSrv0.set('SETTINGS:LOG:STATUS',0)
|
|
redSrv0.set('SETTINGS:POWER:OFF',0)
|
|
|
|
while (1):
|
|
if(getRedisVal('SETTINGS:LOG:STATUS') == "0"):
|
|
if start.is_pressed:
|
|
#basically, la stessa funzione start_log contenuta in FTServer
|
|
currentFolder = getRedisVal('SETTINGS:FOLDER:CURRENT')
|
|
workingDirectory = (dataDir+currentFolder)
|
|
if workingDirectory != dataDir:
|
|
redSrv0.set('SETTINGS:LOG:STATUS', 1)
|
|
#data e time ora
|
|
lastDate = datetime.datetime.now()
|
|
#formato per data time nomefile: YYYYddmm_HMS
|
|
format = "%Y%m%d_%H%M%S"
|
|
#format date e time con strftime()
|
|
nameDate = lastDate.strftime(format) + ".txt"
|
|
redSrv0.set('RTDATA:SESSION:NAME', nameDate)
|
|
led.on()
|
|
else:
|
|
redSrv0.set('SETTINGS:FOLDER:CURRENT', "Default")
|
|
currentFolder = getRedisVal('SETTINGS:FOLDER:CURRENT')
|
|
workingDirectory = (dataDir+currentFolder)
|
|
os.mkdir(workingDirectory)
|
|
redSrv0.set('SETTINGS:LOG:STATUS', 1)
|
|
#data e time ora
|
|
lastDate = datetime.datetime.now()
|
|
#formato per data time nomefile: YYYYddmm_HMS
|
|
format = "%Y%m%d_%H%M%S"
|
|
#format date e time con strftime()
|
|
nameDate = lastDate.strftime(format) + ".txt"
|
|
redSrv0.set('RTDATA:SESSION:NAME', nameDate)
|
|
led.on()
|
|
|
|
if stop.is_pressed:
|
|
#basically la stessa funzione stop_log contenuta in FTServer
|
|
redSrv0.set('SETTINGS:LOG:STATUS', 0)
|
|
redSrv0.set('SETTINGS:LOG:WAITER', 0)
|
|
redSrv0.set('RTDATA:SESSION:NAME', "")
|
|
|
|
if cancello.is_pressed:
|
|
# CANCELLO CHIUSO
|
|
redSrv0.set('RTDATA:GATE_OPEN', 0)
|
|
|
|
else:
|
|
# CANCELLO APERTO
|
|
redSrv0.set('RTDATA:GATE_OPEN', 1)
|
|
redSrv0.set('SETTINGS:LOG:STATUS', 0)
|
|
redSrv0.set('SETTINGS:LOG:WAITER', 0)
|
|
redSrv0.set('RTDATA:SESSION:NAME', "")
|
|
|
|
if(getRedisVal('SETTINGS:LOG:STATUS') == "1"):
|
|
led.on()
|
|
else:
|
|
led.off()
|
|
|
|
if(getRedisVal('SETTINGS:POWER:OFF') == "1"):
|
|
redSrv0.set('SETTINGS:POWER:OFF',0)
|
|
redSrv0.set('SETTINGS:LOG:WAITER', 0)
|
|
FTL.FTLog.Write(" FTDInOut requested shutdown")
|
|
os.system("sudo shutdown -h now")
|
|
|
|
time.sleep(.1) |