Commit 61212313 authored by beuren's avatar beuren

Atualização da estrutura no git e retirada da data no armazenamento

parent c79f2a17
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Controlador da estação biométrica # Estação biométrica CTA
#
# Programa para aquisição dos dados
# Este programa é utilizado com o programa biometrica.ino no qual a taxa de amostragem é definida no microcontrolador
# #
# Centro de Tecnologia Acadêmica - UFRGS # Centro de Tecnologia Acadêmica - UFRGS
# http://cta.if.ufrgs.br # http://cta.if.ufrgs.br
# #
# Licença: GPL v3 # Licença: GPL v3
# Ordem de argumentos : [porta],[taxa_transmissão],[arquivo_saída],[frequência]
# Onde
# [porta]: porta serial no qual o arduino está conectado
# [taxa_transmissão]: velocidade de comunicação serial
# [arquivo_saída]: nome do arquivo em que os dados serão salvos
# [frequência]: frequência de coleta de dados definida no arduino
# Exemplo: python armazenamento.py '/dev/ttyACM0' 115200 coleta1.log 5
#Ordem de parametros : [porta],[banda],[nome_arquivo],[frequencia]
#Exemplo: armazenamento '/dev/ttyACM0' 115200 teste1 5
import sys, time, serial, datetime import sys, time, serial, datetime
parametro = sys.argv[1:] argumento = sys.argv[1:] #renomeando os argumentos
#Iniciando comunicação serial #Iniciando comunicação serial
ser = serial.Serial(parametro[0], parametro[1]) ser = serial.Serial(argumento[0], argumento[1])
time.sleep(2) time.sleep(2)
#Arquivos de log #Arquivos de log
fisiologfile = open(parametro[2]+'.log','w') fisiologfile = open(argumento[2],'w')
now=datetime.datetime.now() now=datetime.datetime.now()
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")) fisiologfile.write(now.strftime("#Frequência\t"+argumento[3]+"\n"+"#Estação Biométrica\n"+"#Coleta de dados iniciado em: "+"%Y-%m-%d %H:%M:%S" +"\n"))
frequencia = parametro[3] #Variáveis de controle
frequencia = argumento[3]
periodo = 1.0/int(frequencia) periodo = 1.0/int(frequencia)
while True: while True:
t0 = time.time() t0 = time.time()
try: try:
...@@ -41,7 +54,9 @@ while True: ...@@ -41,7 +54,9 @@ while True:
# Arquivo de log # Arquivo de log
print now.strftime("%Y-%m-%d %H:%M:%S.%f")[:-3],"\t", t,"\t" 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") fisiologfile = open(argumento[2],'a')
fisiologfile.write(str(t)+"\n")
fisiologfile.close()
if (periodo - (time.time()- t0))< 0: if (periodo - (time.time()- t0))< 0:
print "Não é possível operar a essa frequência" print "Não é possível operar a essa frequência"
break break
......
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# #
# Visualizador de Temperatura # Estação biométrica CTA
# #
# Programa para visualização dos dados
# Este programa é utilizado com o programa biometrica.ino no qual a taxa de amostragem é definida no microcontrolador
#
# Centro de Tecnologia Acadêmica - UFRGS
# http://cta.if.ufrgs.br
#
# Licença: GPL v3
# Ordem de argumentos : [arquivo_entrada]
# Onde
# [arquivo_entrada]: arquivo que será visualizado
# Exemplo: python visualiza.py coleta1.log
from pylab import * from pylab import *
import time, sys import time, sys
parametro = sys.argv[1:] parametro = sys.argv[1:]
ion() ion()
fisiologfile = open(parametro[0]+'.log','r') fisiologfile = open(parametro[0],'r')
i = 0 i = 0
t = [] t = []
h = [] h = []
for linha in fisiologfile: for linha in fisiologfile:
if linha[0] == '!': if linha[0:5] == '#Freq':
frequencia = linha.strip('!') frequencia = float(linha.replace('\n', '').split('\t')[1])
periodo = 1.0/ frequencia periodo = 1.0/ frequencia
elif linha[0] != '#': elif linha[0] != '#':
h.append(float(linha.split('\t')[1])) h.append(float(linha))
t.append(i) t.append(i)
i = i + periodo i = i + periodo
...@@ -37,7 +49,7 @@ title('Frequência Respiratória') ...@@ -37,7 +49,7 @@ title('Frequência Respiratória')
#Variáveis de controle #Variáveis de controle
intervalo = 5 intervalo = 5
quantidade_dados = int(intervalo*frequencia(3/2)) quantidade_dados = int(intervalo*frequencia*(3/2))
variacao = 0.02 #porcento variacao = 0.02 #porcento
variacao_max = 0.20 #porcento variacao_max = 0.20 #porcento
...@@ -49,8 +61,9 @@ while True: ...@@ -49,8 +61,9 @@ while True:
t0 = time.time() t0 = time.time()
#Leitura do ultimo dado do arquivo (Problema se o arquivo não estiver sendo atualizado) #Leitura do ultimo dado do arquivo (Problema se o arquivo não estiver sendo atualizado)
fisiologfile = open(parametro[0]+'.log','r') fisiologfile = open(parametro[0],'r')
s = fisiologfile.readlines()[-1].split('\t')[1] s = float(fisiologfile.readlines()[-1])
fisiologfile.close()
t.append(i) t.append(i)
h.append(s) h.append(s)
line[0].set_data(t,h) line[0].set_data(t,h)
...@@ -58,8 +71,8 @@ while True: ...@@ -58,8 +71,8 @@ while True:
sub.set_xlim(x0,i) sub.set_xlim(x0,i)
#Controle do foco da imagem do gráfico #Controle do foco da imagem do gráfico
yf=(1.0 + variacao_y)*(max(h[-quantidade_dados:])) yf=(1.0 + variacao)*(max(h[-quantidade_dados:]))
yi=(1.0 - variacao_y)*(min(h[-quantidade_dados:])) yi=(1.0 - variacao)*(min(h[-quantidade_dados:]))
valor_medio= sum(h[-quantidade_dados:])/quantidade_dados valor_medio= sum(h[-quantidade_dados:])/quantidade_dados
if(yf > (1 + variacao + variacao_max)*valor_medio): if(yf > (1 + variacao + variacao_max)*valor_medio):
yf = (1 + variacao + variacao_max)*valor_medio yf = (1 + variacao + variacao_max)*valor_medio
...@@ -69,10 +82,10 @@ while True: ...@@ -69,10 +82,10 @@ while True:
draw() draw()
i = i+periodo i = i+periodo
if (periodo - (time.time()- t0))< 0: if (periodo - (time.time()- t0))< 0:
print "Não é possível operar a essa frequência" print "Não é possível operar a essa frequência"
break break
fisiologfile.close()
time.sleep(periodo - (time.time()- t0)) time.sleep(periodo - (time.time()- t0))
except KeyboardInterrupt: except KeyboardInterrupt:
break break
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment