def leerBotones(self): re.setReset() botones.configurarPinesGPIO() botones.configurarPinesGPIOBobina() global boleto_previo print("------Preguntar Botones --------") b1, b2 = botones.leerBotonesEntrada() f1 = botones.validarBotones(b1, b2) f2 = f3 = f4 = f5 = False f6 = botones.leerBobina2Subida( ) #PREGUNTAR POR LA BOBINA EN EL PIN CORRECTO if boleto_previo == True: #IMprimir cabecera() print "Imprimo la cabecera para tener listo el boleto..." imprimir.imprimirHeader() boleto_previo = False else: if f1 == True and f2 == False and f3 == False and f4 == False and f5 == False: noBolF = folio.saberFolio() folioBD = noBolF print "Folio:" + noBolF noBol = noBolF.replace('GM:', '') fechaIn = fechaUTC.fechaConFormato() horaEnt = fechaUTC.tiempoConFormato() #imprimir.imprimirQR(noBol,str(terminalEnt),str(fechaIn),str(horaEnt)) imprimir.imprimirQR2(noBol, str(terminalEnt), str(fechaIn), str(horaEnt)) print "Bandera f2=True se termino de imprimir" print "Se agrega Boleto a la base de datos de la expedidora" fechatimestamp = str(fechaIn) + " " + str(horaEnt) conectionBD.insertarBoleto(PATH_NOMBRE_PLAZA, terminalEnt, str(folioBD), fechatimestamp, 'DEFAULT-ESCOM') boleto_previo = True #Se completa la primera face y se puede volver a imprimir unas cabecera. f2 = True if f2 == True and f3 == False and f4 == False and f5 == False: botones.abrir() while (f2 == True and f3 == False): f3 = botones.leerBobina2Subida() f2 = False if f2 == False and f3 == True and f4 == False and f5 == False: while (f3 == True and f4 == False): time.sleep(0.5) print "Barrera Abierta" f4 = botones.abrirBarrera() f3 = False if f2 == False and f3 == False and f4 == True and f5 == False: while (f5 == False): time.sleep(0.5) f5 = botones.CerrarBarrera() f4 = False if f2 == False and f3 == False and f4 == False and f5 == True: print "Ya cerre barrera restablesco fs" f1 = f2 = f3 = f4 = f5 = False if f6 == True: print "Abrir barrera por que se echaron pa tràs" while (f5 == False): f5 = botones.CerrarBarrera() QtCore.QTimer.singleShot(200, self.leerBotones)
def pollearConexion(): global conexion_activa,leido try: conexion_activa = conexion.activo() print("conexion:",conexion_activa) if(conexion_activa): #Validando candado if(leido != ""): try: print("leido endpoint:",leido) folio = leido.split(" ") folio = folio[0] print("leido endpoint2:",folio) folio = folio[3:] print("Folio:",folio) endpoint="https://parkingtip.pythonanywhere.com/api/suscripciones/"+str(4)+"/?clave="+str(folio) r = requests.get(endpoint) data = json.loads(r.text)[0] print("data: ",data) if(r.status_code==200): vigencia=data["activo"] nombre=data["nombre"] print("vigencia:", endpoint, vigencia,nombre) if(vigencia): print("Abriendo a locatario/pensionado",r.status_code) botones.abrir() leido = "" else: print("Candado expirado") leido = "" leido = "" else: print("endpoint inalcanzable") #self.cambia(2) except: leido = "" #botones.abrirBarrera() print("error endpoint suscrpicion") else: if(leido != ""): botones.abrir() print("error endpoint suscrpicion") leido = "" except: leido = "" print("ocurrio un error")
def leerBotones(self): global boleto_previo, espera, limite_impresiones re.setReset() self.mostrarFechayHora() if self.pantalla == 0: self.stackedWidget.setCurrentIndex(0) elif self.pantalla == 1: if espera == 0: mixer.init() mixer.music.load('/home/pi/Documents/eum/app/expedidora/sonidos/mensaje2.mp3') mixer.music.play() self.stackedWidget.setCurrentIndex(1) espera = espera + 1 if espera == 25: espera = 0 self.pantalla = 0 else: self.stackedWidget.setCurrentIndex(2) espera = espera + 1 if espera == 25: espera = 0 self.pantalla = 0 if self.inicio == 0: self.error = 0 self.inicio = 1 self.checarFecha() self.limpiarBD() self.inicioImpresion() respuesta = imprimir.footer() self.finImpresion() if respuesta == "No esta conectada la impresora": mensaje = str(terminalEnt) + "," + str(4) + "," + str("iniciada") #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) self.error = 3 self.pantalla = 1 if botones.leerAyuda() == 1: self.pantalla = 2 if self.error == 0: if boleto_previo == True and self.f1 == False: self.inicioImpresion() respuesta = imprimir.imprimirHeader() self.finImpresion() if respuesta == "No esta conectada la impresora": mensaje = str(terminalEnt) + "," + str(4) + "," + str("iniciada") #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) self.error = 3 self.pantalla = 1 else: boleto_previo = False else: if botones.leerMasa() == 1: if self.f1 == False: print("------Preguntar Botones --------") self.f1 = botones.leerBotonesEntrada() if self.f1 == True and self.f2 == False and self.f3 == False and self.f4 == False and self.f5 == False: if boleto_previo == False: noBolF = folio.saberFolio() folioBD = noBolF fechaIn = fechaUTC.fechaConFormato() horaEnt = fechaUTC.tiempoConFormato() fechatimestamp = str(fechaIn)+" "+str(horaEnt) #self.insertarBoleto(plaza,terminalEnt,noBolF,fechatimestamp,'DEFAULT-ESCOM') ''' Operacion 1.- Registro de boleto''' #mensaje = (idBoleto,idExpedidora,FechaExpedicion, idestado, idtipodescuento, idSalida) mensaje = noBolF + "," + str(terminalEnt) + "," + fechatimestamp + "," + str(1) + "," + str(1) + "," + str(0) #####validacion = clientes.configSocket("registro boleto") validacion = 1 if validacion == "error": self.f1 = self.f2 = self.f3 = self.f4 = self.f5 = False self.pantalla = 1 else: #####valor = clientes.enviarMensaje(validacion,mensaje) valor = 1 if valor == "error": self.f1 = self.f2 = self.f3 = self.f4 = self.f5 = False self.pantalla = 1 else: self.insertarBoleto(plaza,terminalEnt,noBolF,fechatimestamp,'DEFAULT-ESCOM') folio.escribirArchivoFolios(noBolF) self.inicioImpresion() respuesta = imprimir.imprimirQR22(noBolF,str(terminalEnt),str(fechaIn),str(horaEnt)) self.finImpresion() if respuesta == -1: imprimir.cutter() #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) self.error = 3 self.pantalla = 1 else: papel_cont = self.conteoBoletos() if papel_cont == limite_impresiones: #MANDAR MENSAJE AL SERVIDOR DE PAPEL CASI AGOTADO mensaje = str(terminalEnt) + "," + str(3) + "," + str("iniciada") #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) papel_cont = papel_cont + 1 self.aumentoConteo(papel_cont) mixer.init() mixer.music.load('/home/pi/Documents/eum/app/expedidora/sonidos/mensaje1.mp3') mixer.music.play() boleto_previo = True self.f2 = True if self.f2 == True and self.f3 == False and self.f4 == False and self.f5 == False: if self.f6 == False: time.sleep(0.5) botones.abrir() self.f6 = True self.f3 = botones.leerBobina2Subida() if self.f3 == True: self.f2 = False if self.f2 == False and self.f3 == True and self.f5 == False: self.f4 = botones.abrirBarrera() if self.f4 == True: self.f3 = False if self.f2 == False and self.f3 == False and self.f4 == True: self.f5 = botones.CerrarBarrera() if self.f5 == True: self.f4 = False if self.f2 == False and self.f3 == False and self.f4 == False and self.f5 == True: self.f1 = self.f2 = self.f3 = self.f4 = self.f5 = self.f6 = False elif self.error == 2: respuesta = imprimir.imprimirHeader() if respuesta == "ack": boleto_previo = False self.error = 0 elif self.error == 3: respuesta = imprimir.instanciarImpresora() if respuesta != "No esta conectada la impresora": self.error = 0 QtCore.QTimer.singleShot(200, self.leerBotones)
def leerBotones(self): global regreso,boleto_previo, espera, limite_impresiones,teclaF3,ser,panelConf,avanza,errImpresora,segundos,comienzaConteo,sensor,leido ##HABILITAR DESHAB ANCHO PAPEL if(self.cimpresora2.currentIndex()==1): self.cpapel2.setEnabled(False) else: self.cpapel2.setEnabled(True) print("PAPEL:",self.cpapel2.currentIndex()) #botonTicket (MASA) DESHABILITADO self.botonTicket.setEnabled(False) re.setReset() self.mostrarFechayHora() if self.pantalla == 0: pass elif self.pantalla == 1: if espera == 0: #mixer.init() #mixer.music.load('/home/pi/Documents/eum/app/expedidora/sonidos/mensaje2.mp3') #mixer.music.play() pass pass espera = espera + 1 if espera == 25: espera = 0 self.pantalla = 0 else: pass espera = espera + 1 if espera == 25: espera = 0 self.pantalla = 0 if self.inicio == 0: self.error = 0 self.inicio = 1 #self.checarFecha() #self.limpiarBD() #self.inicioImpresion() respuesta = imprimir.footer() #self.finImpresion() if respuesta == "No esta conectada la impresora": mensaje = str(terminalEnt) + "," + str(4) + "," + str("iniciada") #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) self.error = 3 self.pantalla = 1 if botones.leerAyuda() == 1: self.pantalla = 2 if self.error == 0: if boleto_previo == True and self.f1 == False: #self.inicioImpresion() respuesta = imprimir.imprimirHeader() #self.finImpresion() if respuesta == "No esta conectada la impresora": mensaje = str(terminalEnt) + "," + str(4) + "," + str("iniciada") #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) self.error = 3 self.pantalla = 1 else: boleto_previo = False else: if botones.leerMasa() == 1: # -------------Puente sensor de masa #if 1: if self.f1 == False: print("------ PRESENCIA AUTOMOVIL --------") #Habilitando icono presencia self.f1 = botones.leerBotonesEntrada() # -------------Puente boton ticket #self.f1 = 1 #self.botonTicket.setEnabled(True) #self.f1 = teclaF3 if(not panelConf): self.cambia(1) self.F3.setEnabled(True) if(errImpresora==1): self.lpress.setText("Disculpe la molestia\nPresione Nuevamente") else: self.lpress.setText("Presione") print("aaaaa",teclaF3) if self.f1 == True and self.f2 == False and regreso == False and self.f4 == False and self.f5 == False: if boleto_previo == False: self.cambia(7) self.F3.setEnabled(False) teclaF3 = 0 noBolF = folio.saberFolio() folioBD = noBolF fechaIn = fechaUTC.fechaConFormato() horaEnt = fechaUTC.tiempoConFormato() fechatimestamp = str(fechaIn)+" "+str(horaEnt) #self.insertarBoleto(plaza,terminalEnt,noBolF,fechatimestamp,'DEFAULT-ESCOM') ''' Operacion 1.- Registro de boleto''' #mensaje = (idBoleto,idExpedidora,FechaExpedicion, idestado, idtipodescuento, idSalida) mensaje = noBolF + "," + str(terminalEnt) + "," + fechatimestamp + "," + str(1) + "," + str(1) + "," + str(0) #####validacion = clientes.configSocket("registro boleto") validacion = 1 if validacion == "error": self.f1 = self.f2 = regreso = self.f4 = self.f5 = False self.pantalla = 1 else: #####valor = clientes.enviarMensaje(validacion,mensaje) valor = 1 if valor == "error": self.f1 = self.f2 = regreso = self.f4 = self.f5 = False self.pantalla = 1 else: #self.insertarBoleto(plaza,terminalEnt,noBolF,fechatimestamp,'DEFAULT-ESCOM') #self.inicioImpresion() #respuesta = imprimir.imprimirQR22(noBolF,str(terminalEnt),str(fechaIn),str(horaEnt),plaza,localidad,costo) self.cambia(7) respuesta = imprimir.imprimirQR22(noBolF,str(terminalEnt),str(fechaIn),str(horaEnt),plaza,localidad,pol) print("respuesta= ",respuesta) #self.finImpresion() if respuesta != "ack": errImpresora=1 print("ERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR") print("ERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR") print("ERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR") print("ERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR") print("ERRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR") boleto_previo = True self.cambia(1) self.F3.setEnabled(True) self.lpress.setText("Disculpe la molestia\nPresione Nuevamente") errImpresora=1 self.f1 = self.f2 = regreso = self.f4 = self.f5 = self.f6 = False else: #papel_cont = self.conteoBoletos() try: self.registrarBoleto(mensaje) except: print("Error al registrar en servidor") self.lpress.setText("Sin Comunicacion",validacion,valor) folio.escribirArchivoFolios(noBolF) papel_cont = 1 errImpresora=0 if papel_cont == limite_impresiones: #MANDAR MENSAJE AL SERVIDOR DE PAPEL CASI AGOTADO mensaje = str(terminalEnt) + "," + str(3) + "," + str("iniciada") #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) papel_cont = papel_cont + 1 ##self.aumentoConteo(papel_cont) #mixer.init() #mixer.music.load('/home/pi/Documents/eum/app/expedidora/sonidos/mensaje1.mp3') #mixer.music.play() boleto_previo = True self.f2 = True self.lpress.setText("Presione") print("f2,regreso,f4,f5.f6= ",self.f2 ,regreso ,self.f4, self.f5,self.f6) if self.f2 == True and regreso == False and self.f4 == False and self.f5 == False: if self.f6 == False: avanza=1 print("Avance") time.sleep(1.5) botones.abrir() print("Abriendo") self.cambia(8) #self.lcabezal.setText("ESPERE") self.f6 = True if(comienzaConteo==0): #segundos=0 comienzaConteo=1 if(int(sensor)==2): print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM",sensor) print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM",sensor) print("MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM",sensor) comienzaConteo=1 print("NOTTTTTTTTTTTTTTTTTTTTT",regreso) else: comienzaConteo=0 regreso = botones.leerBobina2Subida() print("ERRERERERERERERERE",regreso) #else: print("regresooooooo",regreso) if regreso == True: print("F3=TRUEEEEEEEEEEEEE") print("F3=TRUEEEEEEEEEEEEE") print("F3=TRUEEEEEEEEEEEEE") print("F3=TRUEEEEEEEEEEEEE") print("F3=TRUEEEEEEEEEEEEE") print("F3=TRUEEEEEEEEEEEEE") print("F3=TRUEEEEEEEEEEEEE") print("F3=TRUEEEEEEEEEEEEE") print("F3=TRUEEEEEEEEEEEEE") print("F3=TRUEEEEEEEEEEEEE") print("F3=TRUEEEEEEEEEEEEE") self.F3.setEnabled(True) self.cambia(1) #self.lcabezal.setText("BIENVENIDO") self.f2 = False if self.f2 == False and regreso == True and self.f5 == False: self.f4 = botones.abrirBarrera() if self.f4 == True: regreso = False if self.f2 == False and regreso == False and self.f4 == True: self.f5 = botones.CerrarBarrera() if self.f5 == True: teclaF3 = 0 self.f4 = False if self.f2 == False and regreso == False and self.f4 == False and self.f5 == True: teclaF3 = 0 self.f1 = self.f2 = regreso = self.f4 = self.f5 = self.f6 = False elif self.error == 2: respuesta = imprimir.imprimirHeader() if respuesta == "ack": boleto_previo = False self.error = 0 elif self.error == 3: respuesta = imprimir.instanciarImpresora() if respuesta != "No esta conectada la impresora": self.error = 0 QtCore.QTimer.singleShot(100, self.leerBotones)
def leerBotones(self): global espera, pantalla_cont, reproduccion, red, green, blue, rrr, iface, tolerancia, gerencia if (red < 50): rrr = 1 if (red > 150): rrr = 0 if (rrr == 0): red = red - 20 green = green - 20 blue = blue - 20 else: red = red + 20 green = green + 20 blue = blue + 20 self.lboleto.setStyleSheet("color:rgb(" + str(red) + ", " + str(green) + ", " + str(blue) + ");background-color:transparent;") self.fechaLabel() tiempo = 0 if self.f1 != True: self.f2 = False print("------Preguntar Botones --------") if (iface == 1): iface = 0 self.apagarRasp() #self.apagarRasp() if pantalla_cont > 0: pantalla_cont = pantalla_cont + 1 print(pantalla_cont) if pantalla_cont == 30: self.stackedWidget.setCurrentIndex(0) self.lboleto.setText("---> Inserte su boleto <---") pantalla_cont = 0 if botones.leerMasa() == 1: if self.error == 0 and botones.leerAyuda() == 1: #Agregar dato desde la BD mensaje_envio = str(idSal) + "," + str(1) + "," + str( "iniciado") + "," validacion = cliente.configSocket("log salida", mensaje_envio) self.error = 1 mixer.init() mixer.music.load( '/home/pi/Documents/eum/app/salida/sonidos/mensajeayuda.mp3' ) mixer.music.play() #self.stackedWidget.setCurrentIndex(8) print("dentro del error") elif self.error == 1 and botones.leerAyuda() == 0: print("dentro del contador:") print(espera) espera = espera + 1 if espera == 25: espera = 0 self.error = 0 #self.stackedWidget.setCurrentIndex(1) elif self.error == 0 and botones.leerAyuda() == 0: if self.mensaje == 1: archivo = open("datos.txt", "w") archivo.close() self.mensaje = 0 #self.stackedWidget.setCurrentIndex(1) mixer.init() mixer.music.load( '/home/pi/Documents/eum/app/salida/sonidos/mensaje1.mp3' ) mixer.music.play() if os.stat("datos.txt").st_size != 0: archivo = open("datos.txt", "r") contenido = archivo.readlines() banner2 = False #IF para validar que el boleto se pudo leer de manera correcta for linea in contenido: if linea == "Estacionamientos unicos de Mexico\n" or ( str("CHT") in str(linea)): banner2 = True archivo.close() if banner2 == True: os.system("sudo wmctrl -a 'zbar'") print("ticket detectado") self.f1 = True archivo = open("datos.txt", "r") contenido = archivo.readlines() i = 0 banner = False tam = len(contenido) for linea in contenido: if i == 1: idBol = linea if i == 2: idExp = linea if i == 3: fecBol = linea if i == 4: horBol = linea if linea == "Estacionamientos unicos de Mexico\n": banner = True if (str("CHT") in str(linea)): gerencia = True if banner == True: i += 1 archivo.close() aux = "" i = 0 if (gerencia == False): idExp = int(idExp) idBol = int(idBol) for dat in fecBol: if i < 10: aux = aux + dat i += 1 fecBol = aux aux = "" i = 0 for dat in horBol: if i < 8: aux = aux + dat i += 1 horBol = aux i = 0 aux = "" for dat in fecBol: if i > 5: aux = aux + dat i += 1 aux = aux + "-" i = 0 for dat in fecBol: if i > 2 and i < 5: aux = aux + dat i += 1 aux = aux + "-" i = 0 for dat in fecBol: if i < 2: aux = aux + dat i += 1 fecBol = aux print( str(idExp) + " " + str(idBol) + " " + fecBol + " " + horBol) fechaConc = str(fecBol) + " " + str(horBol) archivo = open("datos.txt", "w") archivo.close() #pass else: self.mensaje = 9 elif botones.leerMasa() == 0: self.mensaje = 1 self.stackedWidget.setCurrentIndex(0) if self.f1 == True and self.f2 == False: ''' Operacion 1.- Autorizacion de salida''' if gerencia == False: mensaje_envio = str(idBol) + "," + str( idExp) + "," + fechaConc + "," + str(1) validacion = cliente.configSocket("autorizacion salida", mensaje_envio) print(validacion) print(validacion, fechaConc) print(validacion, fechaConc) dh = self.restar_hora(horBol.split(':', 2), fecBol.split('-')) try: dias = dh[0] horas = dh[1] minutos = dh[2] #horas=horas+(dias*24) #tiempoEstacionado=horas #print("DHDHDHDHDHDHDHDHDHD",dh) if (dias == 0): if (minutos < tolerancia): validacion = "finalizado" botones.abrir() print("abrido") except Exception as error: print("Errrr Toleeee", error) pass if gerencia == True: validacion = "finalizado" gerencia = False #self.lboleto.setText(validacion) if validacion == "finalizado": self.f2 = self.f3 = True elif validacion == "volver a pagar": self.lboleto.setText("---> Tiempo de salida excedido <---") mixer.init() mixer.music.load( '/home/pi/Documents/eum/app/salida/sonidos/mensaje4.mp3') mixer.music.play() self.f1 = False #self.stackedWidget.setCurrentIndex(4) pantalla_cont = 1 elif validacion == "pago no realizado": self.lboleto.setText("---> Favor de pagar su boleto... <---") mixer.init() mixer.music.load( '/home/pi/Documents/eum/app/salida/sonidos/mensaje2.mp3') mixer.music.play() self.f1 = False #self.stackedWidget.setCurrentIndex(2) pantalla_cont = 1 elif validacion == "boleto no encontrado": mixer.init() self.lboleto.setText("---> Favor de pagar su boleto <---") mixer.music.load( '/home/pi/Documents/eum/app/salida/sonidos/mensaje2.mp3') #mixer.music.load('/home/pi/Documents/eum/app/salida/sonidos/mensaje7.mp3') mixer.music.play() self.f1 = False #self.stackedWidget.setCurrentIndex(7) pantalla_cont = 1 elif validacion == "boleto obsoleto": self.lboleto.setText("---> Boleto usado <---") mixer.init() mixer.music.load( '/home/pi/Documents/eum/app/salida/sonidos/mensaje3.mp3') mixer.music.play() self.f1 = False #self.stackedWidget.setCurrentIndex(3) pantalla_cont = 1 elif validacion == "sin comunicacion servidor": mixer.init() mixer.music.load( '/home/pi/Documents/eum/app/salida/sonidos/mensaje5.mp3') mixer.music.play() self.f1 = False #self.stackedWidget.setCurrentIndex(5) pantalla_cont = 1 elif validacion == "error": mixer.init() mixer.music.load( '/home/pi/Documents/eum/app/salida/sonidos/mensaje5.mp3') mixer.music.play() self.f1 = False #self.stackedWidget.setCurrentIndex(5) pantalla_cont = 1 if self.f1 == True and self.f2 == True: #self.stackedWidget.setCurrentIndex(6) pantalla_cont = 1 if reproduccion == 0: self.lboleto.setText("---> Retire su boleto <---") mixer.init() mixer.music.load( '/home/pi/Documents/eum/app/salida/sonidos/mensajeboleto.mp3' ) mixer.music.play() time.sleep(3.2) mixer.music.load( '/home/pi/Documents/eum/app/salida/sonidos/mensaje6.mp3') mixer.music.play() reproduccion = 1 if self.f3 == True and self.f4 == False and self.f5 == False and self.f6 == False: if self.f7 == False: time.sleep(0.5) botones.abrir() self.f7 = True self.f4 = botones.leerBobina2Subida() if self.f4 == True: self.f3 = False if self.f3 == False and self.f4 == True and self.f5 == False and self.f6 == False: self.f5 = botones.abrirBarrera() if self.f5 == True: self.f4 = False if self.f3 == False and self.f4 == False and self.f5 == True and self.f6 == False: self.f6 = botones.CerrarBarrera() if self.f6 == True: self.f5 = False if self.f3 == False and self.f4 == False and self.f5 == False and self.f6 == True: print("Ya cerre barrera restablesco fs") self.f1 = self.f2 = self.f3 = self.f4 = self.f5 = self.f6 = self.f7 = False reproduccion = 0 QtCore.QTimer.singleShot(100, self.leerBotones)
def alza(self): botones.configurarPinesGPIO() botones.configurarPinesGPIOBobina() botones.abrir()
def leerBotones(self): global conexion_activa,leyendaCandado,espera,pantalla_cont,reproduccion,red,green,blue,rrr,iface,tolerancia,gerencia,sucursal, leido, validacion, estado if(red<50): rrr=1 if(red>150): rrr=0 if(rrr==0): red=red-20 green=green-20 blue=blue-20 else: red=red+20 green=green+20 blue=blue+20 self.lboleto.setStyleSheet("color:rgb("+str(red)+", "+str(green)+", "+str(blue)+");background-color:transparent;") self.fechaLabel() tiempo = 0 if self.f1 != True: self.f2 = False print("------Presencia Auto --------") if(iface==1): iface=0 self.apagarRasp() #self.apagarRasp() if pantalla_cont != 0: pantalla_cont = pantalla_cont + 1 print(pantalla_cont) if pantalla_cont == 60: self.stackedWidget.setCurrentIndex(0) self.lboleto.setText("---> Muestre su boleto <---") pantalla_cont = 0 #if botones.leerMasa() == 1: if "M," in leido: print("ticket leido:",leido) gerencia = False leido = leido.split(",") idBol = leido [1] idExp = leido [2] fecBol = leido [3] horBol = leido [4] fechaAMD=fecBol.split('-',2) fechaAMD=fechaAMD[2]+"-"+fechaAMD[1]+"-"+fechaAMD[0] print("exp:"+str(idExp) + " " + "idBol:"+str(idBol) + " " + "fec:"+fechaAMD + " " + "horaBol:"+horBol) fechaConc = str(fechaAMD)+ " " + str(horBol) leido = "" mensaje_envio = str(idBol) + "," + str(idExp) + "," + fechaConc + "," + str(1) if conexion_activa: validacion = Servidor.configSocket("autorizacion salida", mensaje_envio) else: validacion = "error" print("VALIDACION: ",validacion) print(validacion,fechaConc) print(validacion,fechaConc) dh=self.restar_hora(horBol.split(':',2),fecBol.split('-')) try: dias=dh[0] horas=dh[1] minutos=dh[2] #horas=horas+(dias*24) #tiempoEstacionado=horas #print("DHDHDHDHDHDHDHDHDHD",dh) if(dias==0): if(minutos<tolerancia): validacion="finalizado" botones.abrir() print("abrido") except Exception as error: print("Errrr Toleeee",error) pass #self.lboleto.setText(validacion) if validacion == "finalizado": self.f1 = self.f2 = self.f3 = True leyendaCandado = "VUELVA PRONTO" elif validacion == "salida candado": self.f1 = self.f2 = self.f3 = True elif validacion == "volver a pagar": self.lboleto.setText("---> Tiempo de salida excedido <---") mixer.init() mixer.music.load(ruta+'sonidos/mensaje4.mp3') mixer.music.play() self.f1 = False #self.stackedWidget.setCurrentIndex(4) validacion = "" pantalla_cont = 30 elif validacion == "pago no realizado": self.lboleto.setText("---> Favor de pagar su boleto... <---") mixer.init() mixer.music.load(ruta+'sonidos/mensaje2.mp3') mixer.music.play() self.f1 = False validacion = "" pantalla_cont = 30 #self.stackedWidget.setCurrentIndex(2) elif validacion == "error": """ este bloque representa las acciones frente a una desconexion """ self.f1 = self.f2 = self.f3 = True leyendaCandado = "Disculpe la molestia, ya lo atendemos s/c" #self.stackedWidget.setCurrentIndex(2) validacion = "" elif validacion == "boleto no encontrado": mixer.init() self.lboleto.setText("Favor de pagar su boleto") mixer.music.load(ruta+'sonidos/mensaje2.mp3') #mixer.music.load(ruta+'sonidos/mensaje7.mp3') mixer.music.play() self.f1 = False validacion = "" pantalla_cont = 1 elif validacion == "boleto obsoleto": self.lboleto.setText("---> Boleto usado <---") mixer.init() mixer.music.load(ruta+'sonidos/mensaje3.mp3') mixer.music.play() self.f1 = False #self.stackedWidget.setCurrentIndex(3) validacion = "" pantalla_cont = 30 elif validacion == "sin comunicacion servidor": mixer.init() mixer.music.load(ruta+'sonidos/mensaje5.mp3') mixer.music.play() self.f1 = False #self.stackedWidget.setCurrentIndex(5) validacion = "" pantalla_cont = 30 elif validacion == "Candado Expirado": self.f1 = self.f2 = self.f3 = True if self.f1 == True and self.f2 == True: #self.stackedWidget.setCurrentIndex(6) pantalla_cont = 30 if reproduccion == 0: if(validacion=="finalizado"): time.sleep(0.5) botones.abrir() elif(validacion=="salida candado"): time.sleep(0.5) botones.abrir() else: estado = 3 self.lboleto.setText(leyendaCandado) reproduccion = 1 print("estado:",estado) if(estado == 1): if(botones.leerBobina2Subida()): print("Auto sobre segundo sensor") estado = 2 else : print("Esperando regreso") estado = 1 if(estado == 2): if(botones.leerBobina2Subida() == False): print("Esperando que el auto abandone segundo sensor") estado = 3 else : print("Auto sobre segundo sensor") estado = 2 if(estado == 3): print("Secuencia finalizada") self.f1 = self.f2 = self.f3 = self.f4 = self.f5 = self.f6 = self.f7 = False leido = "" estado = 1 validacion = "" reproduccion = 0 """if self.f3 == True: if self.f7 == False: time.sleep(0.5) botones.abrir() self.f7 = True self.f4 = botones.leerBobina2Subida() if self.f4 == True: print("Auto sobre el sensor") self.f5 = botones.leerBobina2Subida() print("Auto sobre el sensor2, self5",self.f5) if self.f5 == False: self.f4 = False self.f3 = False print("Reestablezco secuencia") if self.f3 == False and self.f4 == False and self.f5 == True and self.f6 == False: self.f6 = botones.CerrarBarrera() if self.f6 == True: self.f5 = False if self.f3 == False and self.f4 == False and self.f5 == False and self.f6 == True: print ("Ya cerre barrera restablesco fs") self.f1 = self.f2 = self.f3 = self.f4 = self.f5 = self.f6 = self.f7 = False reproduccion = 0 """ QtCore.QTimer.singleShot(100, self.leerBotones)
def leerBotones(self): global boleto_previo, espera, limite_impresiones, red, green, blue, rrr, cont if (red < 50): rrr = 1 if (red > 150): rrr = 0 if (rrr == 0): red = red - 20 green = green - 20 blue = blue - 20 else: red = red + 20 green = green + 20 blue = blue + 20 self.lboleto.setStyleSheet("color:rgb(" + str(red) + ", " + str(green) + ", " + str(blue) + ");background-color:transparent;") #re.setReset() self.mostrarFechayHora() if self.pantalla == 0: #self.stackedWidget.setCurrentIndex(0) pass elif self.pantalla == 1: if espera == 0: mixer.init() mixer.music.load( '/home/pi/Documents/eum/app/expedidora/sonidos/mensaje2.mp3' ) mixer.music.play() self.stackedWidget.setCurrentIndex(0) espera = espera + 1 if espera == 25: espera = 0 self.pantalla = 0 else: self.stackedWidget.setCurrentIndex(0) espera = espera + 1 if espera == 25: espera = 0 self.pantalla = 0 if self.inicio == 0: self.error = 0 self.inicio = 1 #self.checarFecha() self.limpiarBD() self.inicioImpresion() respuesta = imprimir.footer() self.finImpresion() if respuesta == "No esta conectada la impresora": mensaje = str(noEquipo) + "," + str(4) + "," + str("iniciada") #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) self.error = 3 self.pantalla = 1 if botones.leerAyuda() == 1: self.pantalla = 2 if self.error == 0: if boleto_previo == True and self.f1 == False: #self.inicioImpresion() #respuesta = imprimir.imprimirHeader() #self.finImpresion() respuesta = 1 if respuesta == "No esta conectada la impresora": mensaje = str(noEquipo) + "," + str(4) + "," + str( "iniciada") #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) self.error = 3 self.pantalla = 1 else: boleto_previo = False else: if botones.leerMasa() == 1: if self.f1 == False: print("------Preguntar Botones --------") self.f1 = botones.leerBotonesEntrada() if self.f1 == True and self.f2 == False and self.f3 == False and self.f4 == False and self.f5 == False: if boleto_previo == False: noBolF = folio.saberFolio() folioBD = noBolF fechaIn = fechaUTC.fechaConFormato() horaEnt = fechaUTC.tiempoConFormato() fechatimestamp = str(fechaIn) + " " + str(horaEnt) #self.insertarBoleto(plaza,noEquipo,noBolF,fechatimestamp,'DEFAULT-ESCOM') ''' Operacion 1.- Registro de boleto''' #mensaje = (idBoleto,idExpedidora,FechaExpedicion, idestado, idtipodescuento, idSalida) mensaje = noBolF + "," + str( noEquipo) + "," + fechatimestamp + "," + str( 1) + "," + str(1) + "," + str(0) #####validacion = clientes.configSocket("registro boleto") validacion = 1 if validacion == "error": self.f1 = self.f2 = self.f3 = self.f4 = self.f5 = False self.pantalla = 1 else: #####valor = clientes.enviarMensaje(validacion,mensaje) valor = 1 if valor == "error": self.f1 = self.f2 = self.f3 = self.f4 = self.f5 = False self.pantalla = 1 else: self.insertarBoleto( plaza, noEquipo, noBolF, fechatimestamp, 'DEFAULT-ESCOM') folio.escribirArchivoFolios(noBolF) self.inicioImpresion() #respuesta = imprimir.imprimirHeader() respuesta = imprimir.imprimirQR2( noBolF, str(noEquipo), str(fechaIn), str(horaEnt)) self.finImpresion() if respuesta == "No esta conectada la impresora": mensaje = str(noEquipo) + "," + str( 4) + "," + str("iniciada") #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) self.error = 3 self.pantalla = 1 else: if (respuesta == "ack"): papel_cont = self.conteoBoletos() if papel_cont == limite_impresiones: #MANDAR MENSAJE AL SERVIDOR DE PAPEL CASI AGOTADO mensaje = str( noEquipo) + "," + str( 3) + "," + str( "iniciada") #####validacion = clientes.configSocket("log expedidora") #####clientes.logExpedidora(validacion,"log expedidora",mensaje) papel_cont = papel_cont + 1 self.aumentoConteo(papel_cont) mixer.init() mixer.music.load( '/home/pi/Documents/eum/app/expedidora/sonidos/mensaje1.mp3' ) mixer.music.play() boleto_previo = True self.f2 = True else: print("PRESIONE NUEVAMENTE") if self.f2 == True and self.f3 == False and self.f4 == False and self.f5 == False: if self.f6 == False: time.sleep(0.5) botones.abrir() print("ABRIENDO....................") cont = cont + 1 print("////////Boletos: ", cont) self.f6 = True self.f3 = botones.leerBobina2Subida() #self.f3 = True; if self.f3 == True: self.f2 = False if self.f2 == False and self.f3 == True and self.f5 == False: self.f4 = botones.abrirBarrera() if self.f4 == True: self.f3 = False if self.f2 == False and self.f3 == False and self.f4 == True: self.f5 = botones.CerrarBarrera() if self.f5 == True: self.f4 = False if self.f2 == False and self.f3 == False and self.f4 == False and self.f5 == True: self.f1 = self.f2 = self.f3 = self.f4 = self.f5 = self.f6 = False elif self.error == 2: #respuesta = imprimir.imprimirHeader() if respuesta == "ack": boleto_previo = False self.error = 0 elif self.error == 3: respuesta = imprimir.instanciarImpresora() if respuesta != "No esta conectada la impresora": self.error = 0 QtCore.QTimer.singleShot(100, self.leerBotones)
def leerBotones(self): tiempo = 0 if self.mensaje == 1: self.label_4.setText( _translate( "ventanaAcceso", "<html><head/><body><p align=\"center\"><span style=\" font-size:16pt;\"></span></p></body></html>", None)) elif self.mensaje == 2: self.label_4.setText( _translate( "ventanaAcceso", "<html><head/><body><p align=\"center\"><span style=\" font-size:16pt;\">Ingrese su boleto</span></p></body></html>", None)) elif self.mensaje == 3: self.label_4.setText( _translate( "ventanaAcceso", "<html><head/><body><p align=\"center\"><span style=\" font-size:16pt;\"></span></p></body></html>", None)) elif self.mensaje == 4: self.label_4.setText( _translate( "ventanaAcceso", "<html><head/><body><p align=\"center\"><span style=\" font-size:16pt;\"></span></p></body></html>", None)) elif self.mensaje == 5: self.label_4.setText( _translate( "ventanaAcceso", "<html><head/><body><p align=\"center\"><span style=\" font-size:16pt;\"></span></p></body></html>", None)) elif self.mensaje == 6: self.label_4.setText( _translate( "ventanaAcceso", "<html><head/><body><p align=\"center\"><span style=\" font-size:16pt;\"></span></p></body></html>", None)) elif self.mensaje == 7: self.label_4.setText( _translate( "ventanaAcceso", "<html><head/><body><p align=\"center\"><span style=\" font-size:16pt;\">Sin coneccion a la Base de Datos</span></p></body></html>", None)) if self.f1 != True: self.f2 = False print("------Preguntar Botones --------") if botones.leerMasa() == 1: if self.mensaje == 1: self.mensaje = 2 if os.stat("datos.txt").st_size != 0: print("ticket detectado") self.f1 = True configuracion = [] archivo = open("datos.txt", "r") contenido = archivo.readlines() i = 0 for linea in contenido: configuracion.append(linea) if i == 0: idExp = linea if i == 1: idBol = linea if i == 2: fecBol = linea if i == 3: horBol = linea i += 1 archivo.close() fechaConc = str(fecBol) + " " + str(horBol) print(idExp) print(idBol) print(fechaConc) archivo = open("datos.txt", "w") archivo.close() #pass elif botones.leerMasa() == 0: self.mensaje = 1 if self.f1 == True and self.f2 == False: ''' Operacion 1.- Autorizacion de salida''' #mensaje = (idBoleto,idExpedidora,fechaExpedicion) mensaje = idBol + "," + idExp + "," + fechaConc validacion = cliente.configSocket("autorizacion salida", mensaje) #validacion = "finalizado" print(validacion) if validacion == "finalizado": self.f2 = self.f3 = True self.label_4.setText( _translate( "ventanaAcceso", "<html><head/><body><p align=\"center\"><span style=\" font-size:16pt;\">Gracias por su visita</span></p></body></html>", None)) elif validacion == "volver a pagar": self.f1 = False self.mensaje = 3 elif validacion == "pago no realizado": self.f1 = False self.mensaje = 4 elif validacion == "sin respuesta servidor": self.f1 = False self.mensaje = 5 elif validacion == "sin comunicacion servidor": self.f1 = False self.mensaje = 6 elif validacion == "error": self.f1 = False self.mensaje = 7 if self.f1 == True and self.f2 == True: if self.f3 == True and self.f4 == False and self.f5 == False and self.f6 == False: time.sleep(0.5) botones.abrir() while (self.f3 == True and self.f4 == False): time.sleep(0.2) print("Barrera Esperando que pase el carro...") self.f4 = botones.leerBobina2Subida() self.f3 = False if self.f3 == False and self.f4 == True and self.f5 == False and self.f6 == False: while (self.f4 == True and self.f5 == False): time.sleep(0.2) self.f5 = botones.abrirBarrera() self.f4 = False if self.f3 == False and self.f4 == False and self.f5 == True and self.f6 == False: while (self.f6 == False): time.sleep(0.2) self.f6 = botones.CerrarBarrera() self.f5 = False if self.f3 == False and self.f4 == False and self.f5 == False and self.f6 == True: botones.cerrar() print("Ya cerre barrera restablesco fs") self.f1 = self.f2 = self.f3 = self.f4 = self.f5 = self.f6 = False QtCore.QTimer.singleShot(200, self.leerBotones)