import Clase
import Placa
import random
import time
def Porcentaje(ref,tot): # Funcion que realiza un porcentaje
return (ref*100)/tot
Prueba_1 = Clase.Prueba(10,24) #Inicializo los atributos de la clase Prueba
for i in range(10):
Prueba_1.setModelo(i,i+100)
flag = True #Esta bandera me ayudara a controlar el fin del programa
while(flag):
Byte = random.randint(0,9) + 100 # genero un byte aleatorio del 100 al 109
Placa.muestroByte(Byte) # Muestro el byte generado en los leds, durante 3 segundos
Dato = random.randint(0,255) # genero otro byte random, esta vez desde el 0 hasta el 255
Mask_Sinc = int("10000001",2) # genero una mascara que me ayudara a evaluar el sincromismo del dato
Sinc = bin(Mask_Sinc & Dato) # Utilizo la mascara para evaluar el sincronismo del dato
while(Sinc != "0b0" and Sinc != "0b10000001"): # Evaluo si el dato es sincronico, ya que si no lo es no se acepta como valido
print("El dato ingresado no es sincronico")
Dato = random.randint(0,255) # genero otro byte random, esta vez desde el 0 hasta el 255
Mask_Sinc = int("10000001",2) # genero una mascara que me ayudara a evaluar el sincromismo del dato
Sinc = bin(Mask_Sinc & Dato) # Utilizo la mascara para evaluar el sincronismo del dato
Mask_Info = int("00111000",2) # Genero una mascara para evaluar la informacion util del dato
Info = bin(Mask_Info & Dato)
if(Info == "0b0" or Info == "0b1100" or Info == "0b101000" or Info == "0b110000"): # Evaluo si el testeo es incorrecto
Prueba_1.setIncorrectos() # Acumulo la cantidad de testeos incorrectos
hora_actual = time.localtime()
Prueba_1.setHora(hora_actual[3]) # Acumulo la cantidad de pruebas por hora
Placa.muestroByte(0)
elif(Info == "0b1000"): # Evaluo si la prueba fue aceptada
Prueba_1.setAceptadas(Byte - 100) # Acumulo la cantidad de pruebas aceptadas por modelo
hora_actual = time.localtime()
Prueba_1.setHora(hora_actual[3]) # Acumulo la cantidad de pruebas por hora
Placa.muestroByte(1) # Muestro en los leds la informacion generada
elif(Info == "0b10000"): # Evaluo si la prueba fue rechazada
Prueba_1.setRechazadas(Byte - 100) # Acumulo la cantidad de pruebas rechazadas por modelo
hora_actual = time.localtime()
Prueba_1.setHora(hora_actual[3]) # Acumulo la cantidad de pruebas por hora
Placa.muestroByte(2) # Muestro en los leds la informacion generada
elif(Info == "0b100000"): # Evaluo se la prueba esta en Reparacion
Prueba_1.setReparacion(Byte - 100)
hora_actual = time.localtime()
Prueba_1.setHora(hora_actual[3]) # Acumulo la cantidad de pruebas por hora
Placa.muestroByte(4) # Muestro en los leds la informacion generada
elif(Info == "0b111000"): # Evaluo si ingreso la condicion de fin
Placa.muestroByte(7) # Muestro en los leds la informacion generada
flag = False
print(Prueba_1) # Informo todos los atributos de la clase
Aceptadas = Prueba_1.SumaAceptadas(10) # Acumulo en una variable la cantidad total de pruebas aceptadas
Rechazadas = Prueba_1.SumaRechazadas(10) # Acumulo en una variable la cantidad total de pruebas rechazadas
Reparacion = Prueba_1.SumaReparacion(10) # Acumulo en una variable la cantidad total de pruebas en reparacion
if((Aceptadas+Rechazadas+Reparacion) != 0):
print("El porcentaje de pruebas aceptadas es de: %.2f" % Porcentaje(Aceptadas,Aceptadas+Rechazadas+Reparacion))
print("El porcentaje de pruebas rechazadas es de: %.2f" % Porcentaje(Rechazadas,Aceptadas+Rechazadas+Reparacion))
print("El porcentaje de pruebas en reparacion es de: %.2f" % Porcentaje(Reparacion,Aceptadas+Rechazadas+Reparacion))
else:
print("No se realizo ninguna prueba aceptada, rechazada o en reparacion")
mayor = Prueba_1.MayorRechazadas(10)
if(mayor != 0):
print("El/los modelos con mayor cantidad de pruebas rechazadas es/son:")
Prueba_1.MuestraRef(mayor,10)
else:
print("No hubo pruebas rechazadas")
print("La cantidad de pruebas entre las 8 y las 12 es de: "+str(Prueba_1.TotalXhora(8,12)))
Placa.Fin()