Ejemplo n.º 1
0
Archivo: first.py Proyecto: eumsys/eum
 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)
Ejemplo n.º 2
0
	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)
Ejemplo n.º 3
0
Archivo: first.py Proyecto: eumsys/eum
	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)
Ejemplo n.º 4
0
    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)
Ejemplo n.º 5
0
	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)
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)