#!/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)