Files
AnaLogger/sampler/FTDInOut.py
T
2021-04-14 16:40:51 +02:00

72 lines
2.0 KiB
Python

#!/usr/bin/python
from gpiozero import LED,Button
import time
from datetime import datetime
import redis
#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)
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.now()
#formato per data time nomefile: YYYYddmm_HMS
format = "%Y%m%d_%H%M%S"
#format date e time adando strftime()
nameDate = lastDate.strftime(format) + ".csv"
redSrv0.set('RTDATA:SESSION:NAME', nameDate)
if stop.is_pressed:
#basically la stessa funzione stop_log contenuta in FTServer
redSrv0.set('SETTINGS:LOG:STATUS', 0)
redSrv0.set('RTDATA:SESSION:NAME', "")
if cancello.is_pressed:
# print("CANCELLO CHIUSO")
redSrv0.set('RTDATA:GATE_OPEN', 0)
else:
# print("CANCELLO APERTO")
redSrv0.set('RTDATA:GATE_OPEN', 1)
redSrv0.set('SETTINGS:LOG:STATUS', 0)
redSrv0.set('RTDATA:SESSION:NAME', "")
if(getRedisVal('SETTINGS:LOG:STATUS') == "0"):
led.off()
else:
led:on()
time.sleep(.1)