コード例 #1
0
ファイル: test_boletas.py プロジェクト: sunzu/vot.ar
def test_boleta():
    channel = init_channel()
    agent = Agent(channel)
    init = agent.initialize()
    printer = Printer(channel)
    rfid = RFID(channel)
    device = Device(channel)
    printer = Printer(channel)
    print('set autofeed')
    printer.set_autofeed(True, -128)
    printer.register_paper_inserted()

    while True:
        levels = []
        esperar_evento(device, DEV_PRINTER, EVT_PRINTER_PAPER_INSERTED)
        for i in range(10):
            tags_data = rfid.get_tags()[0]
            if tags_data['number'] == 1:
                rec_level = tags_data['reception_level'][0][0]
                levels.append(rec_level)
                #serial_number = tags_data['serial_number'][0]

                #blocks_to_write = [
                #    "hola", "lipe", "chau", "chan", "pato", "mono", "juan",
                #    "gato", "casa", "masa", "pasa", "gabi", "aaaa", "bbbb",
                #    "cccc", "dddd", "eeee", "ffff","gggg", "hhhh", "iiii",
                #    "jjjj", "kkkk", "llll", "mmmm", "nnnn", "oooo"]
                #rfid.write_blocks(serial_number, 0, 26, blocks_to_write)
                sleep(0.2)
        if len(levels):
            data = max(levels), min(levels), sum(levels)/len(levels)
            print(">>> Recepcion Minima %s, Maxima %s, Promedio %s" % data)
        printer.paper_eject()
コード例 #2
0
ファイル: armve_service.py プロジェクト: sunzu/vot.ar
 def _create_devices(self):
     logger.debug("creando dispositivos")
     self.printer = Printer(self.buffer)
     self.power_manager = PowerManager(self.buffer)
     self.rfid = RFID(self.buffer)
     self.backlight = Backlight(self.buffer)
     self.fancoolers = FanCoolers(self.buffer)
     self.pir = PIR(self.buffer)
     self.device = Device(self.buffer)
コード例 #3
0
def test_boleta():
    channel = init_channel()
    agent = Agent(channel)
    init = agent.initialize()
    rfid = RFID(channel)
    device = Device(channel)
    rfid.register_new_tag()

    while True:
        tags_data = esperar_evento(device, DEV_RFID, EVT_RFID_NEW_TAG)
        for serial_number in tags_data[0]['serial_number']:
            blocks_to_write = ["\x00\x00\x00\x00"] * 28
            rfid.write_blocks(serial_number, 0, 27, blocks_to_write)
コード例 #4
0
ファイル: chiptest.py プロジェクト: sunzu/vot.ar
def dar_masa():
    channel = init_channel()
    rfid = RFID(channel)
    fan = FanCoolers(channel)
    fan.set_speed(0)

    tags = rfid.get_tags()
    serial_number = tags[0]['serial_number'][0]
    todo_bien = True
    tag = get_tag()
    while todo_bien:
        rfid.write_tag(array_to_string(serial_number), 4, TOKEN, tag)
        rfid_data = rfid.get_tag_data(serial_number)
        todo_bien = rfid_data is not None
コード例 #5
0
ファイル: test.py プロジェクト: sunzu/vot.ar
def borrar_tag():
    channel = init_channel()
    rfid = RFID(channel)

    rfid.register_new_tag()
    while True:
        esperar_evento(rfid, DEV_RFID, EVT_RFID_NEW_TAG)

        tags = rfid.get_tags()[0]
        if tags['number']:
            serial_number = tags['serial_number'][0]
            print "!!!->SERIAL", serial_number
            serial_number = array_to_string(serial_number)
            rfid.write_blocks(serial_number, 0, 27, [[0, 0, 0, 0]] * 27)

    rfid.unregister_new_tag()
コード例 #6
0
ファイル: test_multi_write.py プロジェクト: sunzu/vot.ar
def test_boleta():
    channel = init_channel()
    agent = Agent(channel)
    init = agent.initialize()
    printer = Printer(channel)
    rfid = RFID(channel)
    device = Device(channel)

    #esperar_evento(device, DEV_PRINTER, EVT_PRINTER_PAPER_INSERTED)
    #print rfid.get_multitag_data()
    tags_data = rfid.get_tags()[0]
    serial_number = tags_data['serial_number'][0]
    rfid.write_tag(
        serial_number, 4, "1C",
        "--00--01--02--03--04--05--06--07--08--09--10--11--12"
        "--13--14--15--16--17--18--19--20--21--22--23--24--25"
        "--26--27--28--29--30--31--32--33--34--35--36--37--38"
        "--39--40--41--42--43--44--45--46--47--48--49--50--51")
    rfid.get_multitag_data()
コード例 #7
0
ファイル: test.py プロジェクト: sunzu/vot.ar
def test_boleta():
    channel = init_channel()
    agent = Agent(channel)
    init = agent.initialize()
    free_page_mem = init[0]['free_page_mem']
    #     free_page_mem = 50740
    printer = Printer(channel)
    rfid = RFID(channel)
    device = Device(channel)
    print 'set autofeed'
    printer.set_autofeed(True, -120)

    for i in range(1, 2):
        #         print 'unregister events'
        #         agent.unregister_events()
        channel.flushInput()
        channel.flushOutput()
        print "___ITERACION %d___" % i
        print "!!!!-> testeando status de papel"
        paper_in = False

        #         print "!!!!-> limpiando buffer"
        #         inicio = time()
        #         printer.clear_buffer()
        #         print "!!!!-> tiempo transcurrido de clear_buffer", time() - inicio

        while not paper_in:
            paper_in = printer.has_paper()
            sleep(1)
        print "!!!!-> papel_encontrado"

        print "registro eventos eventuales mover y eject"
        printer.register_move()  # eventual
        printer.register_paper_eject()  # eventual
        printer.register_print_finished()  # eventual

        #test_rfid(channel, False)

        #buffer_file_cmp(printer, 'boleta2.png')#'voto.prn')
        print "!!!!-> cargando buffer de impresion"
        inicio = time()
        img = Image.open('testeo_form.png')
        #img = Image.open('boleta2.png')
        data = img.getdata()

        # Impresión comprimida do_print=True
        #         printer.load_buffer_compressed(data, 10000, print_immediately=True, clear_buffer=True)
        #          printer.load_buffer_compressed(data, free_page_mem, print_immediately=True, clear_buffer=False)

        #         printer.load_buffer_compressed(data, free_page_mem, print_immediately=True)
        #         printer.load_buffer_compressed_fast(data)
        #         printer.load_buffer_compressed(data, 0, print_immediately=True)
        # Fin ejemplo do_print=True

        # Impresión comprimida do_print=False
        printer.register_load_buffer_compressed()
        printer.load_buffer_compressed(data, free_page_mem)
        #         printer.load_buffer_compressed_fast(data)
        print "!!!!-> tiempo transcurrido de buffer de impresion", time(
        ) - inicio
        inicio = time()
        esperar_evento(device, DEV_PRINTER, CMD_PRINTER_LOAD_COMP_BUFFER)
        print "!!!!-> tiempo transcurrido de listo para impresion", time(
        ) - inicio
        printer.do_print()
        # Fin ejemplo do_print=False

        esperar_evento(device, DEV_PRINTER, CMD_PRINTER_PRINT)
        print "!!!!-> tiempo transcurrido de impresion", time() - inicio
        print "eventos"
        agent.list_events()
        printer.move(350)
        print "!!!!-> Esperando evento de mover papel"
        esperar_evento(device, DEV_PRINTER, CMD_PRINTER_MOVE)
        printer.paper_eject()
        print "!!!!-> Esperando evento de papel expulsado"
        esperar_evento(device, DEV_PRINTER, CMD_PRINTER_PAPER_REMOVE)
コード例 #8
0
ファイル: test.py プロジェクト: sunzu/vot.ar
def test_rfid(channel=None, quemar=False):
    if channel is None:
        channel = init_channel()
        agent = Agent(channel)
        agent.unregister_events()
        channel.flushInput()
        channel.flushOutput()

    rfid = RFID(channel)
    device = Device(channel)

    print "!!!!-> limpiando buffer de RFID"
    inicio = time()
    rfid.clear_buffer()

    print "!!!!-> tiempo transcurrido de clear_buffer", time() - inicio

    tags = rfid.get_tags()
    if tags[0]['number'] == 0:
        rfid.register_new_tag()
        print 'esperando evento...'
        esperar_evento(device, DEV_RFID, EVT_RFID_NEW_TAG)
        print 'gotcha!'
        tags = rfid.get_tags()

    serial_number = tags[0]['serial_number'][0]
    print "!!!->SERIAL", serial_number
    serial_number = array_to_string(serial_number)
    #rfid.select_tag(serial_number)
    #serial_number = "\x00"*8
    blocks = rfid.read_blocks(serial_number, 0, 4)
    print "!!!-> read blocks:", blocks_to_string(blocks[0])
    blocks_to_write = [
        "hola", "lipe", "chau", "chan", "pato", "mono", "juan", "gato", "casa",
        "masa", "pasa", "gabi", "aaaa", "bbbb", "cccc", "dddd", "eeee", "ffff",
        "gggg", "hhhh", "iiii", "jjjj", "kkkk", "llll", "mmmm", "nnnn", "oooo"
    ]
    rfid.write_blocks(serial_number, 0, 26, blocks_to_write)
    blocks = rfid.read_blocks(serial_number, 0, 26)
    read_blocks = blocks_to_string(blocks[0])
    if read_blocks == blocks_to_write:
        print "!!!!-> test de escritura de bloques pasado"
    else:
        print "!!!!-> test de escritura de bloques NO pasado!!!!!!"

    blocks_to_write.reverse()

    for i, block_to_write in enumerate(blocks_to_write):
        rfid.write_block(serial_number, i, block_to_write)
    blocks = rfid.read_blocks(serial_number, 0, 26)
    read_blocks = blocks_to_string(blocks[0])
    if read_blocks == blocks_to_write:
        print "!!!!-> test de escritura de bloque pasado"
    else:
        print "!!!!-> test de escritura de bloque NO pasado!!!!!!"
    if quemar:
        write_status = rfid.is_read_only(serial_number, 0, 26)
        rfid.set_read_only_blocks(serial_number, 0, 20)
        rfid.set_read_only_block(serial_number, 26)
        write_status = rfid.is_read_only(serial_number, 0, 27)
        write_status = [block.byte for block in write_status[0]]
        expected = [
            1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
            0, 0, 0, 0, 1, 0
        ]
        if write_status == expected:
            print "test de quemado OK"
        else:
            print "test de quemado FAIL"
    else:
        print "ojo que no estoy quemando"
コード例 #9
0
ファイル: test.py プロジェクト: sunzu/vot.ar
def test_eventos():
    channel = init_channel()
    device = Device(channel)
    agent = Agent(channel)
    batt = PowerManager(channel)
    printer = Printer(channel)
    rfid = RFID(channel)
    pir = PIR(channel)

    batt.register_battery_discharge()
    batt.register_battery_unplugged()
    batt.register_switch_ac()
    batt.register_battery_empty()
    batt.register_battery_level_critical()
    batt.register_battery_level_max()
    batt.register_battery_level_min()

    printer.register_paper_eject()
    printer.register_paper_start()
    printer.register_paper_inserted()
    printer.register_paper_out_1()
    printer.register_paper_out_2()
    printer.register_lever_open()

    pir.register_detected()
    pir.register_not_detected()

    rfid.register_new_tag(100)
    try:
        while True:
            event = agent.list_events()
            if event is not None:
                if hasattr(event[0], "event"):
                    event = event[0].event
            #print "eventos", event
            status = batt.get_status()[0]['batt_data'][0]
            #print status
            print "remaining %s/%s (%s)" % (status['remaining'],
                                            status['full_charge'],
                                            status['corriente'])
            ret = device.read()
            if ret is not None:
                print ret
                print "device", device._devices.get(ret[1])
                print device.get_device_instance(ret[1])._command_dict.get(
                    ret[2])
            #sleep(2)
    except KeyboardInterrupt:
        print "Desregistrando eventos"

    batt.unregister_battery_discharge()
    batt.unregister_battery_unplugged()
    batt.unregister_switch_ac()
    batt.unregister_battery_empty()
    batt.unregister_battery_level_critical()
    batt.unregister_battery_level_max()
    batt.unregister_battery_level_min()

    printer.unregister_paper_eject()
    printer.unregister_paper_start()
    printer.unregister_paper_inserted()
    printer.unregister_paper_out_1()
    printer.unregister_paper_out_2()
    printer.unregister_lever_open()

    pir.unregister_detected()
    pir.unregister_not_detected()

    rfid.unregister_new_tag()
    sleep(2)
    print "eventos", agent.list_events()[0].event
    agent.unregister_events()
    sleep(2)
    print "eventos", agent.list_events()[0].event
コード例 #10
0
ファイル: console.py プロジェクト: sunzu/vot.ar
port = get_arm_port()
if not port:
    port = '/tmp/ttyACM0' # pruebo un puerto remoto

channel = Serial(port, timeout=3)
if not channel.isOpen():
    channel.open()
channel.flushInput()
channel.flushOutput()

# Objetos disponibles
dev = Device(channel)
agent = Agent(channel)
batt = PowerManager(channel)
printer = Printer(channel)
rfid = RFID(channel)
backlight = Backlight(channel)
fan = FanCoolers(channel)
pir = PIR(channel)
buzzer = Buzzer(channel)

print """\nObjetos disponibles:
- agent
- batt
- printer
- rfid
- backlight
- fan
- pir
- buzzer
Funcion r() lee los mensajes en el channel."""
コード例 #11
0
def loop():
    """Loop de pruebas de los comandos."""
    channel = StringIO()
    device = Device(channel)

    print "Enviando comandos de bateria"
    batt = PowerManager(channel)
    print "\nEnviando Comando consulta fuente de bateria actual (7.1)"
    batt.get_power_source()
    #read_and_process(device, channel)

    print "\nEnviando Comando consulta baterias conectadas (7.2)"
    batt.get_connected_batteries()
    read_and_process(device, channel)

    print "\nEnviando Comando consulta estado de funcionamiento (7.3)"
    batt.get_status()
    read_and_process(device, channel)

    print "\nEnviando Comando consulta de parametros de diseño (7.4)"
    batt.get_params()
    read_and_process(device, channel)

    print "\nEnviando Comando consulta funcionamiento convertidor DC/DC (7.5)"
    batt.check_voltages()
    read_and_process(device, channel)

    print "\n Enviando comando seleccion de modo de control de modo de alimentacion (7.6)"
    batt.power_source_control_mode()
    read_and_process(device, channel)

    print "\n Enviando comando de control de modo de alimentacion (7.7)"
    batt.power_source_control(True, True, True, True)
    read_and_process(device, channel)

    print "\nRegistrando evento bateria descargandose (7.8)"
    batt.register_battery_discharge()
    read_and_process(device, channel)

    print "\nRegistrando evento bateria nivel minimo (7.9)"
    batt.register_battery_level_min()
    read_and_process(device, channel)

    print "\nRegistrando evento bateria nivel critico (7.10)"
    batt.register_battery_level_critical()
    read_and_process(device, channel)

    print "\nRegistrando evento bateria nivel maximo (7.11)"
    batt.register_battery_level_max()
    read_and_process(device, channel)

    print "\nRegistrando evento switch AC (7.12)"
    batt.register_switch_ac()
    read_and_process(device, channel)

    print "\nRegistrando evento Bateria Desconectada (7.13)"
    batt.register_battery_unplugged()
    read_and_process(device, channel)

    print "\nRegistrando evento Bateria Agotada (7.14)"
    batt.register_battery_empty()
    read_and_process(device, channel)
    return

    print "\n---------\nEnviando comandos de impresion"
    printer = Printer(channel)

    print "\nEnviando comando consulta estado sensores (8.1)"
    printer.get_status()
    read_and_process(device, channel)

    print "\nEnviando comando mover motor (8.2)"
    printer.move(500)
    read_and_process(device, channel)

    print "\nEnviando comando (8.3)"
    printer.load_buffer("\x00\x01" * 500)
    read_and_process(device, channel)

    print "\nEnviando comando (8.4)"
    printer.do_print()
    read_and_process(device, channel)

    print "\nEnviando comando (8.5)"
    printer.clear_buffer()
    read_and_process(device, channel)

    print "\nEnviando comando (8.6)"
    printer.paper_eject()
    read_and_process(device, channel)

    print "\nEnviando comando (8.7)"
    printer.paper_start()
    read_and_process(device, channel)

    print "\nEnviando comando (8.8)"
    printer.get_autofeed()
    read_and_process(device, channel)

    print "\nEnviando comando (8.9)"
    printer.set_autofeed(-120)
    read_and_process(device, channel)

    print "\nEnviando comando (8.10)"
    printer.register_paper_inserted()
    read_and_process(device, channel)

    print "\nEnviando comando (8.11)"
    printer.register_paper_out_1()
    read_and_process(device, channel)

    print "\nEnviando comando (8.12)"
    printer.register_paper_out_2()
    read_and_process(device, channel)

    print "\nEnviando comando (8.13)"
    printer.register_lever_open
    read_and_process(device, channel)

    print "\n---------\nEnviando comandos de RFID"
    rfid = RFID(channel)

    print "\nEnviando comando obtener tags (9.1)"
    rfid.get_tags()
    read_and_process(device, channel)

    print "\nEnviando comando seleccionar tag(9.2)"
    rfid.select_tag("\x00\x01\x02\x03\x04\x05\x06\x07")
    read_and_process(device, channel)

    print "\nEnviando comando leer bloque(9.3)"
    rfid.read_block("\x00\x01\x02\x03\x04\x05\x06\x07", 1)
    read_and_process(device, channel)

    print "\nEnviando comando leer multiples bloques (9.4)"
    rfid.read_blocks("\x00\x01\x02\x03\x04\x05\x06\x07", 1, 5)
    read_and_process(device, channel)

    print "\nEnviando comando escribir bloque (9.5)"
    rfid.write_block("\x00\x01\x02\x03\x04\x05\x06\x07", 1, "\x00\x01\x02\x03")
    read_and_process(device, channel)

    print "\nEnviando comando escribir bloques (9.6)"
    blocks = [
        "\x00\x01\x02\x03", "\x00\x01\x02\x03", "\x00\x01\x02\x03",
        "\x00\x01\x02\x03"
    ]
    rfid.write_blocks("\x00\x01\x02\x03\x04\x05\x06\x07", 1, 4, blocks)
    read_and_process(device, channel)

    print "\nEnviando comando consulta tag solo lectura (9.7)"
    rfid.is_read_only("\x00\x01\x02\x03\x04\x05\x06\x07", 1, 4)
    read_and_process(device, channel)

    print "\nEnviando comando establecer tag de solo lectura (9.8)"
    rfid.set_read_only_block("\x00\x01\x02\x03\x04\x05\x06\x07", 1)
    read_and_process(device, channel)

    print "\nEnviando comando establecer tag de solo lectura (9.9)"
    rfid.set_read_only_blocks("\x00\x01\x02\x03\x04\x05\x06\x07", 1, 5)
    read_and_process(device, channel)

    print "\nEnviando comando limpiar buffer(9.10)"
    rfid.clear_buffer()
    read_and_process(device, channel)

    print "\nEnviando comando consulta nivel de potencia antena (9.11)"
    rfid.get_antenna_level()
    read_and_process(device, channel)

    print "\nEnviando comando establecer nivel de potencia antena (9.12)"
    rfid.set_antenna_level(255)
    read_and_process(device, channel)

    #     print "\nEnviando comando establecer led de encendido maquina ON/OFF (9.13)"
    #     rfid.set_power_led(True)
    #     read_and_process(device, channel)

    print "\nEnviando evento new tag"
    rfid.register_new_tag(100)
    read_and_process(device, channel)

    print "\n---------\nEnviando comandos de Backlight"
    backlight = Backlight(channel)

    print "\nEnviando comando obtener brillo (10.1)"
    backlight.get_brighthess()
    read_and_process(device, channel)

    print "\nEnviando comando establecer brillo (10.2)"
    backlight.set_brighthess(100, True)
    read_and_process(device, channel)

    print "\nEnviando obtener Backlight encendido/apagado (10.3)"
    backlight.get_status()
    read_and_process(device, channel)

    print "\nEnviando obtener Backlight encendido/apagado (10.4)"
    backlight.set_status(True)
    read_and_process(device, channel)

    print "\n---------\nEnviando comandos de Fan Coolers"
    fan = FanCoolers(channel)

    print "\nEnviando comando obtener velocidad (11.1)"
    fan.get_speed()
    read_and_process(device, channel)

    print "\nEnviando comando obtener velocidad (11.2)"
    fan.set_speed(50)
    read_and_process(device, channel)

    print "\n---------\nEnviando comandos de PIR"
    pir = PIR(channel)

    print "\nEnviando comando obtener velocidad (12.1)"
    pir.register_detected()
    read_and_process(device, channel)

    print "\nEnviando comando obtener velocidad (12.2)"
    pir.register_not_detected()
    read_and_process(device, channel)

    print "\n---------\nEnviando comandos de Buzzer"
    buzzer = Buzzer(channel)

    print "\nEnviando comando obtener velocidad (11.1)"
    buzzer.buzz("\x00\x50")
    read_and_process(device, channel)