Files
SaltStates/FTProject/AL/sampler/FTDInOut.py
T
Samuele-StackUser 9e9a63ea1a Update progeto FTL
Update startBrowser x MON PI
2022-07-15 16:20:37 +02:00

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)