def LerUsuario(tag): bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi.cursor() try: validacao = cursor_rpi.execute( "SELECT id, nome, desativado FROM usuario WHERE rfid = %s", tag) except: user_id, user_nome = (0, ) * 2 cursor_rpi.close() bd_rpi.close() if validacao == 1: # Tag encontrada na tabela usuário user_id, user_nome, user_desativado = cursor_rpi.fetchone() if user_desativado == 1: # O usuário está desativado do sistema user_id, user_nome = (-1, ) * 2 else: # Tag não foi encontrada na tabela usuário user_id, user_nome = (0, ) * 2 else: # Não foi possível conectar ao banco de dados do Raspberry Pi user_id, user_nome = (-2, ) * 2 return user_id, user_nome
def LerSituacaoEquipamento(equipamento_id): bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi.cursor() try: sql_ler = "SELECT id, data_devolucao FROM equipamento_log WHERE equipamento_id = %s ORDER BY id DESC" validacao = cursor_rpi.execute(sql_ler, equipamento_id) except: id, data_devolucao = (-1, ) * 2 cursor_rpi.close() bd_rpi.close() if validacao == 0: # Equipamento não foi encontrado na tabela equipamento_log id, data_devolucao = (-1, ) * 2 else: # Equipamento encontrado na tabela equipamento_log id, data_devolucao = cursor_rpi.fetchone() else: # Não foi possível conectar ao banco de dados do Raspberry Pi id, data_devolucao = (-1, ) * 2 return id, data_devolucao
def LerConfig(): import socket from os import popen ip = "" try: # Obter o endereço de IP do Raspberry Pi gw = popen("ip -4 route show default").read().split() s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect((gw[2], 0)) ip = s.getsockname()[0] s.close() # /Obter o endereço de IP do Raspberry Pi bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi.cursor() try: sql_importar = "SELECT sala_id, dht, luminosidade, rfid, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17 FROM configuracao_rpi WHERE ip = %s" validacao = cursor_rpi.execute(sql_importar, ip) except: sala_id, dht, luminosidade, rfid, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17 = ( 0, ) * 21 cursor_rpi.close() bd_rpi.close() if validacao == 1: sala_id, dht, luminosidade, rfid, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17 = cursor_rpi.fetchone( ) else: # O IP não foi encontrado na tabela configuracao_rpi sala_id, dht, luminosidade, rfid, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17 = ( 0, ) * 21 else: # Não foi possível conectar ao banco de dados do Servidor sala_id, dht, luminosidade, rfid, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17 = ( -2, ) * 21 except: # Equipamento não conectado à rede sala_id, dht, luminosidade, rfid, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17 = ( -1, ) * 21 return sala_id, dht, luminosidade, rfid, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17
def LerEquipamento(tag): bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi.cursor() try: validacao = cursor_rpi.execute( "SELECT gepoc_id, equipamento FROM equipamento WHERE rfid = %s", tag) except: equip_id, equip_nome = (0, ) * 2 cursor_rpi.close() bd_rpi.close() if validacao == 1: # Tag encontrada na tabela equipamento equip_id, equip_nome = cursor_rpi.fetchone() else: # Tag não foi encontrada na tabela equipamento equip_id, equip_nome = (0, ) * 2 else: # Não foi possível conectar ao banco de dados do Raspberry Pi equip_id, equip_nome = (0, ) * 2 return equip_id, equip_nome
def SalvarAlarme(parametro_sala_id, parametro_motivo): bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi.cursor() try: cursor_rpi.execute("INSERT INTO alarme (sala_id, motivo) VALUES (%s, %s)", (parametro_sala_id, parametro_motivo)) bd_rpi.commit() except: Painel.NotificaErro() Painel.Mensagem(" Erro ao salvar "," (erro 20) ", 10) cursor_rpi.close() bd_rpi.close() else: Painel.NotificaErro() Painel.Mensagem(" Erro ao salvar "," (erro 20) ", 10) SincronizarTabelas.SincronizarAlarme(0)
def SalvarEquipamentosLogDevolucao(parametro_id): bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi.cursor() try: cursor_rpi.execute("UPDATE equipamento_log SET data_devolucao=NOW() WHERE id = %s", parametro_id) bd_rpi.commit() except: Painel.NotificaErro() Painel.Mensagem(" Erro ao salvar "," (erro 12) ", 10) cursor_rpi.close() bd_rpi.close() else: Painel.NotificaErro() Painel.Mensagem(" Erro ao salvar "," (erro 12) ", 10) SincronizarTabelas.SincronizarEquipamentoLog(0)
def SalvarEquipamentosLog(parametro_equipamento_id, parametro_usuario_id, parametro_sala_id): bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi.cursor() try: cursor_rpi.execute("INSERT INTO equipamento_log (equipamento_id, usuario_id, sala_id) VALUES (%s, %s, %s)", (parametro_equipamento_id, parametro_usuario_id, parametro_sala_id)) bd_rpi.commit() except: Painel.NotificaErro() Painel.Mensagem(" Erro ao salvar "," (erro 9) ", 10) cursor_rpi.close() bd_rpi.close() else: Painel.NotificaErro() Painel.Mensagem(" Erro ao salvar "," (erro 9) ", 10) SincronizarTabelas.SincronizarEquipamentoLog(0)
def SalvarSalasLog(par_sala_id, par_umidade, par_temperatura, par_luminosidade, par_porta1, par_porta2, par_porta3, par_porta4, par_porta5, par_porta6, par_porta7, par_porta8, par_porta9, par_porta10, par_porta11, par_porta12, par_porta13, par_porta14, par_porta15, par_porta16, par_porta17): bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi.cursor() try: sql_inserir = "INSERT INTO sala_log (sala_id, umidade, temperatura, luminosidade, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" cursor_rpi.execute(sql_inserir, (par_sala_id, par_umidade, par_temperatura, par_luminosidade, par_porta1, par_porta2, par_porta3, par_porta4, par_porta5, par_porta6, par_porta7, par_porta8, par_porta9, par_porta10, par_porta11, par_porta12, par_porta13, par_porta14, par_porta15, par_porta16, par_porta17)) bd_rpi.commit() except: Painel.NotificaErro() Painel.Mensagem(" Erro ao salvar "," (erro 10) ", 10) cursor_rpi.close() bd_rpi.close() else: Painel.NotificaErro() Painel.Mensagem(" Erro ao salvar "," (erro 10) ", 10) SincronizarTabelas.SincronizarSalaLog(par_sala_id, 0)
def SincronizarEquipamentoLog(display = 1): # SincronizarEquipamentoLog(0) executa a função sem exibir mensagem no display # SincronizarEquipamentoLog() executa a função exibindo mensagens no display bd_server=ConectarBDServidor() EquipamentoLog_server = 0 EquipamentoLog_rpi = 0 if bd_server != None: if display == 1: Painel.Mensagem(" Sincronizando ","equipamento log ") cursor_server = bd_server .cursor() try: cursor_server.execute("SELECT id, data_retirada, data_devolucao, equipamento_id, usuario_id, sala_id FROM equipamento_log ORDER BY id") EquipamentoLog_server = cursor_server.fetchall() except: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","equi.log(erro16)", 15) bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi .cursor() try: cursor_rpi.execute("SELECT id, data_retirada, data_devolucao, equipamento_id, usuario_id, sala_id FROM equipamento_log ORDER BY id") EquipamentoLog_rpi = cursor_rpi.fetchall() except: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","equi.log(erro15)", 15) else: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","equi.log(erro15)", 15) else: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","equi.log(erro16)", 15) flag_novo_registro = 0 if EquipamentoLog_server != 0: # Sincronizar banco de dados no Servidor (envia novos dados do raspberry pi para o servidor) if len(EquipamentoLog_rpi) != 0: for dado_rpi in EquipamentoLog_rpi: for dado_server in EquipamentoLog_server: flag_novo_registro = 0 if dado_rpi[0] == dado_server[0]: flag_novo_registro = 1 if dado_rpi[2] != dado_server[2] and dado_rpi[2] != None: try: cursor_server.execute("UPDATE equipamento_log SET data_devolucao=%s WHERE id = %s", (dado_rpi[2], dado_rpi[0])) bd_server.commit() except: continue break if flag_novo_registro == 0: try: cursor_server.execute("INSERT INTO equipamento_log (id, data_retirada, data_devolucao, equipamento_id, usuario_id, sala_id) VALUE (%s, %s, %s, %s, %s, %s)", (dado_rpi[0], dado_rpi[1], dado_rpi[2], dado_rpi[3], dado_rpi[4], dado_rpi[5])) bd_server.commit() except: continue # /Sincronizar banco de dados no Servidor # Sincronizar banco de dados no Raspberry Pi (envia novos dados do servidor para o raspberry pi) for dado_server in EquipamentoLog_server: if len(EquipamentoLog_rpi) != 0: for dado_rpi in EquipamentoLog_rpi: flag_novo_registro = 0 if dado_server[0] == dado_rpi[0]: flag_novo_registro = 1 if dado_server[2] != dado_rpi[2] and dado_server[2] != None: try: cursor_rpi.execute("UPDATE equipamento_log SET data_devolucao=%s WHERE id = %s", (dado_server[2], dado_rpi[0])) bd_rpi.commit() except: continue break if flag_novo_registro == 0: try: cursor_rpi.execute("INSERT INTO equipamento_log (id, data_retirada, data_devolucao, equipamento_id, usuario_id, sala_id) VALUE (%s, %s, %s, %s, %s, %s)", (dado_server[0], dado_server[1], dado_server[2], dado_server[3], dado_server[4], dado_server[5])) bd_rpi.commit() except: continue # /Sincronizar banco de dados no Raspberry Pi # Finaliza conexão com o servidor cursor_server.close() bd_server.close() # Finaliza conexão com o Raspberry Pi cursor_rpi.close() bd_rpi.close() if display == 1: Painel.NotificaOK() Painel.Mensagem("Equipamento log "," sincronizada ", 5)
def SincronizarAlarme(display = 1): bd_server=ConectarBDServidor() Alarme_server = 0 Alarme_rpi = 0 if bd_server != None: if display == 1: Painel.Mensagem(" Sincronizando "," tabela alarme ") cursor_server = bd_server .cursor() try: cursor_server.execute("SELECT id, data, sala_id, motivo FROM alarme ORDER BY id") Alarme_server = cursor_server.fetchall() except: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","alarme (erro23) ", 15) bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi .cursor() try: cursor_rpi.execute("SELECT id, data, sala_id, motivo FROM alarme ORDER BY id") Alarme_rpi = cursor_rpi.fetchall() except: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","alarme (erro22) ", 15) else: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","alarme (erro22) ", 15) else: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","alarme (erro23) ", 15) flag_novo_registro = 0 if Alarme_server != 0 or Alarme_rpi != 0: # Sincronizar banco de dados no Raspberry Pi (envia novos dados do servidor para o raspberry pi) for dado_server in Alarme_server: if Alarme_rpi != 0: for dado_rpi in Alarme_rpi: flag_novo_registro = 0 if dado_server[0] == dado_rpi[0]: flag_novo_registro = 1 if dado_server[1] != dado_rpi[1]: try: cursor_server.execute("UPDATE alarme SET data=%s, sala_id=%s, motivo=%s WHERE id = %s", (dado_server[1], dado_server[2], dado_server[3], dado_server[0])) bd_rpi.commit() except: continue break if flag_novo_registro == 0: try: cursor_rpi.execute("INSERT INTO alarme (id, data, sala_id, motivo) VALUE (%s, %s, %s, %s)", (dado_server[0], dado_server[1], dado_server[2], dado_server[3])) bd_rpi.commit() except: continue # /Sincronizar banco de dados no Raspberry Pi # Sincronizar banco de dados no Servidor (envia novos dados do raspberry pi para o servidor) if Alarme_rpi != 0: for dado_rpi in Alarme_rpi: for dado_server in Alarme_server: flag_novo_registro = 0 if dado_rpi[0] == dado_server[0]: flag_novo_registro = 1 break if flag_novo_registro == 0: try: cursor_server.execute("INSERT INTO alarme (id, data, sala_id, motivo) VALUE (%s, %s, %s, %s)", (dado_rpi[0], dado_rpi[1], dado_rpi[2], dado_rpi[3])) bd_server.commit() except: continue # /Sincronizar banco de dados no Servidor # Finaliza conexão com o servidor cursor_server.close() bd_server.close() # Finaliza conexão com o Raspberry Pi cursor_rpi.close() bd_rpi.close() if display == 1: Painel.NotificaOK() Painel.Mensagem(" Tabela alarme "," sincronizada ", 5)
def SincronizarSalaLog(parametro_sala_id, display = 1): bd_server=ConectarBDServidor() SalaLog_server = 0 SalaLog_rpi = 0 if bd_server != None: if display == 1: Painel.Mensagem(" Sincronizando "," sala log ") cursor_server = bd_server .cursor() try: sql_importar = "SELECT id, data, sala_id, umidade, temperatura, luminosidade, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17 FROM sala_log WHERE sala_id = %s ORDER BY id" cursor_server.execute(sql_importar, parametro_sala_id) SalaLog_server = cursor_server.fetchall() except: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","sala log(erro14)", 15) bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi .cursor() try: cursor_rpi.execute("SELECT id, data, sala_id, umidade, temperatura, luminosidade, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17 FROM sala_log ORDER BY id") SalaLog_rpi = cursor_rpi.fetchall() except: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","sala log(erro13)", 15) else: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","sala log(erro13)", 15) else: if display == 1: Painel.NotificaErro() Painel.Mensagem("Erro ao sincron.","sala log(erro14)", 15) flag_novo_registro = 0 if SalaLog_server != 0: # Sincronizar banco de dados no Servidor (envia novos dados do raspberry pi para o servidor) if len(SalaLog_rpi) != 0: for dado_rpi in SalaLog_rpi: for dado_server in SalaLog_server: flag_novo_registro = 0 if dado_rpi[0] == dado_server[0]: flag_novo_registro = 1 break if flag_novo_registro == 0: try: cursor_server.execute("INSERT INTO sala_log (id, data, sala_id, umidade, temperatura, luminosidade, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17) VALUE (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", (dado_rpi[0], dado_rpi[1], dado_rpi[2], dado_rpi[3], dado_rpi[4], dado_rpi[5], dado_rpi[6], dado_rpi[7], dado_rpi[8], dado_rpi[9], dado_rpi[10], dado_rpi[11], dado_rpi[12], dado_rpi[13], dado_rpi[14], dado_rpi[15], dado_rpi[16], dado_rpi[17], dado_rpi[18], dado_rpi[19], dado_rpi[20], dado_rpi[21], dado_rpi[22])) bd_server.commit() except: continue # /Sincronizar banco de dados no Servidor # Sincronizar banco de dados no Raspberry Pi (envia novos dados do servidor para o raspberry pi) for dado_server in SalaLog_server: if len(SalaLog_rpi) != 0: for dado_rpi in SalaLog_rpi: flag_novo_registro = 0 if dado_server[0] == dado_rpi[0]: flag_novo_registro = 1 break if flag_novo_registro == 0: try: cursor_rpi.execute("INSERT INTO sala_log (id, data, sala_id, umidade, temperatura, luminosidade, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17) VALUE (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)", (dado_server[0], dado_server[1], parametro_sala_id, dado_server[2], dado_server[3], dado_server[4], dado_server[5], dado_server[6], dado_server[7], dado_server[8], dado_server[9], dado_server[10], dado_server[11], dado_server[12], dado_server[13], dado_server[14], dado_server[15], dado_server[16], dado_server[17], dado_server[18], dado_server[19], dado_server[20], dado_server[21])) bd_rpi.commit() except: continue # /Sincronizar banco de dados no Raspberry Pi # Finaliza conexão com o servidor cursor_server.close() bd_server.close() # Finaliza conexão com o Raspberry Pi cursor_rpi.close() bd_rpi.close() if display == 1: Painel.NotificaOK() Painel.Mensagem(" Sala log "," sincronizada ", 5)
def ImportarUsuarios(): bd_server=ConectarBDServidor() Usuario_server = 0 Usuario_rpi = 0 if bd_server != None: Painel.Mensagem(" Importando "," usuários ") cursor_server = bd_server .cursor() try: cursor_server.execute("SELECT id, nome, rfid, desativado FROM usuario") Usuario_server = cursor_server.fetchall() except: Painel.NotificaErro() Painel.Mensagem("Erro ao importar","usuarios (erro4)", 15) cursor_server.close() bd_server.close() bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi .cursor() try: cursor_rpi.execute("SELECT id, nome, rfid, desativado FROM usuario") Usuario_rpi = cursor_rpi.fetchall() except: Painel.NotificaErro() Painel.Mensagem("Erro ao importar","usuários (erro3)", 15) else: Painel.NotificaErro() Painel.Mensagem("Erro ao importar","usuários (erro3)", 15) else: Painel.NotificaErro() Painel.Mensagem("Erro ao importar","usuários (erro4)", 15) # Sincronizar banco de dados no Raspberry Pi (envia novos dados e atualiza dados do servidor para o raspberry pi) flag_novo_registro = 0 if Usuario_server != 0: for dado_server in Usuario_server: if Usuario_rpi != 0: for dado_rpi in Usuario_rpi: flag_novo_registro = 0 if dado_server[0] == dado_rpi[0]: flag_novo_registro = 1 if dado_server[1] != dado_rpi[1]: try: cursor_rpi.execute("UPDATE usuario SET nome=%s WHERE id = %s", (dado_server[1], dado_rpi[0])) bd_rpi.commit() except: continue if dado_server[2] != dado_rpi[2]: try: cursor_rpi.execute("UPDATE usuario SET rfid=%s WHERE id = %s", (dado_server[2], dado_rpi[0])) bd_rpi.commit() except: continue if dado_server[3] != dado_rpi[3]: try: cursor_rpi.execute("UPDATE usuario SET desativado=%s WHERE id = %s", (dado_server[3], dado_rpi[0])) bd_rpi.commit() except: continue break if flag_novo_registro == 0: try: cursor_rpi.execute("INSERT INTO usuario (id, nome, rfid, desativado) VALUE (%s, %s, %s, %s)", (dado_server[0], dado_server[1], dado_server[2], dado_server[3])) bd_rpi.commit() except: continue # /Sincronizar banco de dados no Raspberry Pi if Usuario_rpi != 0: # Finaliza conexão com o Raspberry Pi cursor_rpi.close() bd_rpi.close() Painel.NotificaOK() Painel.Mensagem(" Usuários ", " importados ",5)
def ImportarConfig(): bd_server=ConectarBDServidor() Config_server = 0 Config_rpi = 0 if bd_server != None: Painel.Mensagem(" Importando "," configurações ") cursor_server = bd_server .cursor() try: cursor_server.execute("SELECT id, data_modificacao, ip, sala_id, dht, luminosidade, rfid, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17 FROM configuracao_rpi") Config_server = cursor_server.fetchall() except: Painel.NotificaErro() Painel.Mensagem("Erro ao importar","config. (erro8) ", 15) cursor_server.close() bd_server.close() bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi .cursor() try: cursor_rpi.execute("SELECT id, data_modificacao, ip, sala_id, dht, luminosidade, rfid, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17 FROM configuracao_rpi") Config_rpi = cursor_rpi.fetchall() except: Painel.NotificaErro() Painel.Mensagem("Erro ao importar","config. (erro7) ", 15) else: Painel.NotificaErro() Painel.Mensagem("Erro ao importar","config. (erro7) ", 15) else: Painel.NotificaErro() Painel.Mensagem("Erro ao importar","config. (erro8) ", 15) # Sincronizar banco de dados no Raspberry Pi (envia novos dados e atualiza dados do servidor para o raspberry pi) flag_novo_registro = 0 if Config_server != 0: for dado_server in Config_server: if Config_rpi != 0: for dado_rpi in Config_rpi: flag_novo_registro = 0 if dado_server[0] == dado_rpi[0]: flag_novo_registro = 1 if dado_server[1] != dado_rpi[1]: try: sql_update = ("UPDATE configuracao_rpi SET data_modificacao=%s, ip=%s, sala_id=%s, dht=%s, luminosidade=%s, rfid=%s, porta1=%s, porta2=%s, porta3=%s, porta4=%s, porta5=%s, porta6=%s, porta7=%s, porta8=%s, porta9=%s, porta10=%s, porta11=%s, porta12=%s, porta13=%s, porta14=%s, porta15=%s, porta16=%s, porta17=%s WHERE id = %s") valor_update = (dado_server[1], dado_server[2], dado_server[3], dado_server[4], dado_server[5], dado_server[6], dado_server[7], dado_server[8], dado_server[9], dado_server[10], dado_server[11], dado_server[12], dado_server[13], dado_server[14], dado_server[15], dado_server[16], dado_server[17], dado_server[18], dado_server[19], dado_server[20], dado_server[21], dado_server[22], dado_server[23], dado_server[0]) cursor_rpi.execute(sql_update, valor_update) bd_rpi.commit() except: continue break if flag_novo_registro == 0: try: sql_salvar = "INSERT INTO configuracao_rpi (id, data_modificacao, ip, sala_id, dht, luminosidade, rfid, porta1, porta2, porta3, porta4, porta5, porta6, porta7, porta8, porta9, porta10, porta11, porta12, porta13, porta14, porta15, porta16, porta17) VALUE (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)" valor_salvar = (dado_server[0], dado_server[1], dado_server[2], dado_server[3], dado_server[4], dado_server[5], dado_server[6], dado_server[7], dado_server[8], dado_server[9], dado_server[10], dado_server[11], dado_server[12], dado_server[13], dado_server[14], dado_server[15], dado_server[16], dado_server[17], dado_server[18], dado_server[19], dado_server[20], dado_server[21], dado_server[22], dado_server[23]) cursor_rpi.execute(sql_salvar, valor_salvar) bd_rpi.commit() except: continue # /Sincronizar banco de dados no Raspberry Pi if Config_rpi != 0: # Finaliza conexão com o Raspberry Pi cursor_rpi.close() bd_rpi.close() Painel.NotificaOK() Painel.Mensagem(" Configurações "," importadas ", 5)
def ImportarEquipamentos(): bd_server=ConectarBDServidor() Equipamento_server = 0 Equipamento_rpi = 0 if bd_server != None: Painel.Mensagem(" Importando "," equipamentos ") cursor_server = bd_server .cursor() try: cursor_server.execute("SELECT gepoc_id, equipamento, rfid FROM equipamento") Equipamento_server = cursor_server.fetchall() except: Painel.NotificaErro() Painel.Mensagem("Erro ao importar"," equip. (erro6) ", 15) cursor_server.close() bd_server.close() bd_rpi = ConectarBDRpi() if bd_rpi != None: cursor_rpi = bd_rpi .cursor() try: cursor_rpi.execute("SELECT gepoc_id, equipamento, rfid FROM equipamento") Equipamento_rpi = cursor_rpi.fetchall() except: Painel.NotificaErro() Painel.Mensagem("Erro ao importar"," equip. (erro5) ", 15) else: Painel.NotificaErro() Painel.Mensagem("Erro ao importar"," equip. (erro5) ", 15) else: Painel.NotificaErro() Painel.Mensagem("Erro ao importar"," equip. (erro6) ", 15) # Sincronizar banco de dados no Raspberry Pi (envia novos dados e atualiza dados do servidor para o raspberry pi) flag_novo_registro = 0 if Equipamento_server != 0: for dado_server in Equipamento_server: if Equipamento_rpi != 0: for dado_rpi in Equipamento_rpi: flag_novo_registro = 0 if dado_server[0] == dado_rpi[0]: flag_novo_registro = 1 if dado_server[1] != dado_rpi[1]: try: cursor_rpi.execute("UPDATE equipamento SET equipamento=%s WHERE gepoc_id = %s", (dado_server[1], dado_rpi[0])) bd_rpi.commit() except: continue if dado_server[2] != dado_rpi[2]: try: cursor_rpi.execute("UPDATE equipamento SET rfid=%s WHERE gepoc_id = %s", (dado_server[2], dado_rpi[0])) bd_rpi.commit() except: continue break if flag_novo_registro == 0: try: cursor_rpi.execute("INSERT INTO equipamento (gepoc_id, equipamento, rfid) VALUE (%s, %s, %s)", (dado_server[0], dado_server[1], dado_server[2])) bd_rpi.commit() except: continue # /Sincronizar banco de dados no Raspberry Pi if Equipamento_rpi != 0: # Finaliza conexão com o Raspberry Pi cursor_rpi.close() bd_rpi.close() Painel.NotificaOK() Painel.Mensagem(" Equipamentos "," importados ", 5)