armazenamento.py 1.41 KB
Newer Older
1
2
#!/usr/bin/env python 
# -*- coding: utf-8 -*- 
3
4
5
6
7
8
9
10
#
# Controlador da estação biométrica
# 
# Centro de Tecnologia Acadêmica - UFRGS
# http://cta.if.ufrgs.br
#
# Licença: GPL v3

11
#Ordem de parametros : [porta],[banda],[nome_arquivo],[frequencia]
12
#Exemplo: armazenamento '/dev/ttyACM0' 115200 teste1 5
13
14
15
16
17
18
19
20
21
22
import sys, time, serial, datetime
parametro = sys.argv[1:]

#Iniciando comunicação serial
ser = serial.Serial(parametro[0], parametro[1])
time.sleep(2)

#Arquivos de log
fisiologfile = open(parametro[2]+'.log','w')
now=datetime.datetime.now()
23
fisiologfile.write(now.strftime("#Estação Biométrica\n"+"#Frequência de operação "+parametro[3]+"\n"+"#Coleta de dados iniciado em: "+"%Y-%m-%d %H:%M:%S" +"\n"))
24
25

frequencia = parametro[3]
26
periodo = 1.0/int(frequencia)
27
28
29
30
31
32
33
while True:
	t0 = time.time()
	try:
    		# Temperatura
    		t = float(ser.readline().replace('\r\n',''))
  	except KeyboardInterrupt:
    		break
34
35
36
37
	except ValueError:
		print "Não é possível operar a essa frequência (controlador)"
		break	

38
39
40
41
42
	try:
		# Registra horário atual
		now = datetime.datetime.now()
 
		# Arquivo de log
43
44
		print now.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3],"\t", t,"\t"
		fisiologfile.write(now.strftime("%Y%m%d%H%M%S%f")[:-3]+"\t"+str(t)+"\n")   
45
46
47
48
49
50
51
		if (periodo - (time.time()- t0))< 0:
			print "Não é possível operar a essa frequência"
			break 		
		time.sleep(periodo - (time.time()- t0))
	except KeyboardInterrupt:
    		break
ser.close()