Commit 4969378f authored by Béuren F. Bechlin's avatar Béuren F. Bechlin

Adicionado correção contra mais bugs, tais como baud rate e serial port

parent 99b747a5
......@@ -22,10 +22,25 @@
PADRÃO NOME DO ARQUIVO DE SAÍDA: coleta_[Nome]_[Sobrenome]_[obs].log
[obs] são observações caso sejam necessárias
'''
# Exemplo: python armazenamento_new.py '/dev/ttyACM0' 115200 coleta_Nome_Exemplo_1min.log 30
# Exemplo: python armazenamento_new.py /dev/ttyACM0 115200 coleta_Nome_Exemplo_1min.log 30
import sys, time, serial, datetime
import sys, time, serial, datetime, os
argumento = sys.argv[1:] #renomeando os argumentos
baud_rate = [300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200]
baud_correct = 0
# Erros
if not os.path.exists(argumento[0]):
sys.stderr.write('ERRO: Arduino não está conectado na porta '+argumento[0]+'!\nEm caso de dúvidas leia o READ_ME.md.\n')
sys.exit(1)
if not os.access(argumento[0], os.R_OK):
sys.stderr.write('ERRO: A porta '+argumento[0]+' não pode ser lida por problemas de permissão!\nEm caso de dúvidas leia o READ_ME.md.\n')
sys.exit(1)
for i in baud_rate:
if i == int(argumento[1]):
baud_correct = 1
if not baud_correct:
sys.stderr.write('ERRO: A taxa de transmissão '+argumento[1]+' não pode ser usada pelo microcontrolador!\nEm caso de dúvidas leia o READ_ME.md.\n')
sys.exit(1)
# Iniciando comunicação serial
ser = serial.Serial(argumento[0], argumento[1])
......
......@@ -44,7 +44,7 @@ import matplotlib.pyplot as plt
import math
# ERROS:
# Testando se contém os argumentos
# Testando se contém os argumentos
if len(sys.argv) < 7:
sys.stderr.write('ERRO: Argumentos insuficientes.\nEm caso de dúvidas leia o READ_ME.md.\n' )
sys.exit(1)
......@@ -53,7 +53,6 @@ if not os.path.exists(sys.argv[1]):
sys.stderr.write('ERRO: Arquivo '+sys.argv[1]+' não encontrado!\nEm caso de dúvidas leia o READ_ME.md.\n')
sys.exit(1)
# Atribuindo as váriaveis com os valores de entrada
parametro = sys.argv[1:]
log_file = parametro[0]
......@@ -100,18 +99,22 @@ sum_norm_2 = 0
# Ajustando para que os pontos iniciais não sejam maiores que os finais
if t_inicial > t_final:
aux_1 = t_inicial
t_final = t_inicial
t_inicial = aux_1
t_inicial = t_final
t_final = aux_1
if freq_i > freq_f:
aux_1 = freq_i
freq_f = freq_i
freq_i = aux_1
freq_i = freq_f
freq_f = aux_1
cont_ini = t_inicial*freq
cont_final = t_final*freq
if t_inicial < 0 or t_final < 0:
sys.stderr.write('ERRO: Não possível operar com intervalos negativos.\nEm caso de dúvidas leia o READ_ME.md.\n')
sys.exit(1)
N = cont_final - cont_ini
T = 1.0/freq
dx = float(freq)/N
......@@ -146,6 +149,9 @@ if (freq_i > float(freq)/2 or freq_f > float(freq)/2):
if (freq_f - freq_i < 0.1 ):
sys.stderr.write('ERRO: Não é possível ter essa resolução do domínio frequência.\nEm caso de dúvidas leia o READ_ME.md.\n')
sys.exit(1)
if (freq_i < 0 or freq_f < 0):
sys.stderr.write('ERRO: Não possível operar com frequências negativas.\nLembrando que o espectro de frequência é uma função par, Y(f)= Y(-f).\nEm caso de dúvidas leia o READ_ME.md.\n')
sys.exit(1)
# Média e varianca:
med_y1 = sum(y1) / len(y1)
......
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