Commit c054b6e3 authored by Bruno Thomazi Zanette's avatar Bruno Thomazi Zanette 🎱
Browse files

Correção de erros e padronização das funções em português

parent 1864f016
...@@ -12,8 +12,8 @@ Programa que maneja os histogramas, faz a atualização deles com dados do mysql ...@@ -12,8 +12,8 @@ Programa que maneja os histogramas, faz a atualização deles com dados do mysql
Possui o mecanismo de comunicação com o site, quando ocorrer um erro irá aparecer um card vermelho no final Possui o mecanismo de comunicação com o site, quando ocorrer um erro irá aparecer um card vermelho no final
do site do site
''' '''
############ argumentos ############ ############ argumentos ############
user_sql= "bruno" # usuario do detector que serão usados os dados user_sql= "bruno" # usuario do detector que serão usados os dados
...@@ -29,17 +29,23 @@ Eventos= "Eventos/"+str(minutos)+"min" # titulo de y do histograma ...@@ -29,17 +29,23 @@ Eventos= "Eventos/"+str(minutos)+"min" # titulo de y do histograma
############ Funções ############ ############ Funções ############
def dateiniciofim(): #função que dá a hora do inicio e final do dia atual em segundos da epoch def data_inicio_fim():
'''
Função que dá a hora do inicio e final
do dia atual em segundos da epoch
'''
listA=list(localtime()) listA=list(localtime())
listB=list(localtime()) listB=list(localtime())
for i in range (3,6):#posições que são zero
for i in range (3,6): # posições que são zero
listA[i]=0 # zerando hora minuto segundo listA[i]=0 # zerando hora minuto segundo
if i==3: if i==3:
listB[i]=23 #23 horas listB[i]=23 # horas
elif i==4: elif i==4:
listB[i]=59 #23 min listB[i]=59 # min
else: else:
listB[i]=60 #60 seg listB[i]=60 # seg
datainicial = tuple(listA) datainicial = tuple(listA)
datafinal = tuple(listB) datafinal = tuple(listB)
...@@ -47,16 +53,24 @@ def dateiniciofim(): #função que dá a hora do inicio e final do dia atual em ...@@ -47,16 +53,24 @@ def dateiniciofim(): #função que dá a hora do inicio e final do dia atual em
return((time.mktime(datainicial),time.mktime(datafinal))) return((time.mktime(datainicial),time.mktime(datafinal)))
def manejo_pasta(file): def manejo_pasta(file):
'''
Função que leva o arquivo file para
posição '/home/brunoz31/graficos/'
Exemplo de nome: histograma27082021
'''
nome=date.today().strftime("histograma%d%m%Y") nome=date.today().strftime("histograma%d%m%Y")
os.rename(file,f'/home/brunoz31/graficos/{nome}') os.rename(file,f'/home/brunoz31/graficos/{nome}')
def mensagem_sql(usuario, tempo): def mensagem_sql(usuario, tempo):
'''
Função que retorna a mensagem de sql
para seleção de dados de um usuario
que chegaram depois de um tempo
'''
horas_grafico= 24 where= tempo*1000 # em ms
where= tempo*1000
mensagem=f'select hora from eventos where hora >= {where} and usuario="{usuario}";' mensagem=f'select hora from eventos where hora >= {where} and usuario="{usuario}";'
...@@ -64,7 +78,6 @@ def mensagem_sql(usuario, tempo): ...@@ -64,7 +78,6 @@ def mensagem_sql(usuario, tempo):
def plot_dist(data, x_label, y_label, tittle, number_bins, plot_output): def plot_dist(data, x_label, y_label, tittle, number_bins, plot_output):
""" """
Args: Args:
data (list): List with data to be plotted. data (list): List with data to be plotted.
x_label (str): Plot x-label. x_label (str): Plot x-label.
...@@ -72,7 +85,6 @@ def plot_dist(data, x_label, y_label, tittle, number_bins, plot_output): ...@@ -72,7 +85,6 @@ def plot_dist(data, x_label, y_label, tittle, number_bins, plot_output):
tittle (str): Plot tittle. tittle (str): Plot tittle.
number_bins (int): Number of bins for distribution. number_bins (int): Number of bins for distribution.
plot_output (str): Path to plot output. plot_output (str): Path to plot output.
""" """
plt.xlim([0, 24]) plt.xlim([0, 24])
...@@ -87,7 +99,7 @@ def plot_dist(data, x_label, y_label, tittle, number_bins, plot_output): ...@@ -87,7 +99,7 @@ def plot_dist(data, x_label, y_label, tittle, number_bins, plot_output):
plt.show() plt.show()
plt.close() plt.close()
def trocatexto(nomefile,outword, inword): def troca_texto(nomefile,outword, inword):
''' '''
Programa que recebe um arquivo e substitui uma palavra por outra Programa que recebe um arquivo e substitui uma palavra por outra
e escreve novamente no arquivo e escreve novamente no arquivo
...@@ -105,32 +117,36 @@ def trocatexto(nomefile,outword, inword): ...@@ -105,32 +117,36 @@ def trocatexto(nomefile,outword, inword):
with open(nomefile,"w") as arqu: #apaga texto do arquivo with open(nomefile,"w") as arqu: #apaga texto do arquivo
arqu.write(mudado) # escreve novo com as palavras trocadas arqu.write(mudado) # escreve novo com as palavras trocadas
def erro(html): # func def erro(html):
'''
Função que encontra o erro tem que ser atualizado no html
toda vez que muda o html tem que mudar a posição 10584:-25
'''
with open(html,"r") as arquivo: #abre sem apagar o arquivo with open(html,"r") as arquivo: #abre sem apagar o arquivo
lido = arquivo.read() # lê o arquivo armazenado em nomefile lido = arquivo.read() # lê o arquivo armazenado em nomefile
string_erro = lido[10584:-25] string_erro = lido[10584:-25]
return(string_erro) return(string_erro)
############ loop principal ############ ############ loop principal ############
endereco_html = "/var/www/html/testou.html" endereco_html = "/var/www/html/testou.html"
trocatexto(endereco_html,"verme","verde") troca_texto(endereco_html,"verme","verde")
trocatexto(endereco_html,erro(endereco_html),"ok") troca_texto(endereco_html,erro(endereco_html),"ok")
tempo_inicial , tempo_final= dateiniciofim() #começo e fim do dia que o programa rodou tempo_inicial , tempo_final= data_inicio_fim() #começo e fim do dia que o programa rodou
tempo_sql = tempo_inicial # para que haja seleção de dados antes da meia noite anterior tempo_sql = tempo_inicial # para que haja seleção de dados antes da meia noite anterior
try: try:
while True: while True:
##### troca de dia ##### ##### troca de dia #####
if time.time() > tempo_final: if time.time() > tempo_final:
manejo_pasta(output)# manda o histograma para a pasta graficos quando passa da meia noite manejo_pasta(output)# manda o histograma para a pasta graficos quando passa da meia noite
tempo_inicial , tempo_final= data_inicio_fim() #novo tempo inical e final
tempo_inicial , tempo_final= dateiniciofim() #novo tempo inical e final
tempo_sql = tempo_inicial # tempo utilizado para consulta sql atualizado tempo_sql = tempo_inicial # tempo utilizado para consulta sql atualizado
##### Recebe os dados ##### ##### Recebe os dados #####
...@@ -138,48 +154,45 @@ try: ...@@ -138,48 +154,45 @@ try:
db_connection = mysql.connector.connect( # Conectando ao sql db_connection = mysql.connector.connect( # Conectando ao sql
host='localhost', host='localhost',
user='user', user='user',
passwd='pass', passwd='password',
auth_plugin='mysql_native_password' auth_plugin='mysql_native_password'
) )
cur = db_connection.cursor() # Create a Cursor object to execute queries. cur = db_connection.cursor() # Create a Cursor object to execute queries.
cur.execute("USE COSMICPAMPA;") # Seleciona banco de dados previamento criado a ser usado. cur.execute("USE COSMICPAMPA;") # Seleciona banco de dados previamento criado a ser usado.
mensagem = mensagem_sql(user_sql,tempo_sql) # comando sql que será executado
mensagem = mensagem_sql(user_sql,tempo_sql) # comando sql que será executado
cur.execute(mensagem) # executa o comando sql cur.execute(mensagem) # executa o comando sql
dados = np.array([],dtype=float) # vetor que armazena os dados em ms dados = np.array([],dtype=float) # vetor que armazena os dados em ms
for row in cur.fetchall(): for row in cur.fetchall(): # coloca os dados de tempo do mysql no array dados
dados= np.append(dados,row) dados= np.append(dados,row)
extensaodehoras = (dados[-1] - dados[0])/(1000*60*60) # usado para que o número de bins creçam conforme a chegada de mais dados
for i in range(0,len(dados)):
dados[i]= (dados[i] - tempo_inicial*1000)/(1000*60*60) # transformando os dados em horas if dados.size > 0: # se houver
extensaodehoras = (dados[-1] - dados[0])/(1000*60*60) # usado para que o número de bins creçam conforme a chegada de mais dados
for i in range(0,len(dados)):
dados[i]= (dados[i] - tempo_inicial*1000)/(1000*60*60) # transformando os dados em horas
else:
dados= np.append(dados,-10)
extensaodehoras = (dados[-1] - dados[0])/(1000*60*60)
##### histograma ##### ##### histograma #####
today = date.today()# Data para o título today = date.today()# Data para o título
d1 = today.strftime("%A %d/%b/%Y") d1 = today.strftime("%A %d/%b/%Y")
bins=round(extensaodehoras)*2
bins=int(extensaodehoras*2)
if bins < 1: # para garantir que haja sempre pelo menos um bin if bins < 1: # para garantir que haja sempre pelo menos um bin
bins=1 bins=1
plot_dist(dados, "Horas", Eventos, d1, bins, output) plot_dist(dados, "Horas", Eventos, d1, bins, output)
# pausa de 1 minutos no loop para chegar novos dados # pausa de 1 minutos no loop para chegar novos dados
time.sleep(dormir) time.sleep(dormir)
except Exception as e: except Exception as e:
trocatexto(endereco_html,"verde","verme") troca_texto(endereco_html,"verde","verme")
trocatexto(endereco_html,"ok",f"O erro foi {e} no programa grafico.py") troca_texto(endereco_html,"ok",f"O erro foi {e} no programa grafico.py")
\ No newline at end of file
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