Пример #1
0
def listen(device_address):
    if raw_input("[!] warning this will write to your device! continue [Y/n]"
                 ).lower() not in ['y', '']:
        return
    device = device_factory(device_address)
    change = False
    drive = 'B'
    inp = 'A'
    prev_column_data = 0
    prev_row_data = 0

    device.set_io_mode('output', drive)
    device.set_io_mode('input', inp)

    while True:
        if change:
            print("[+]  input detected: row: {}| column: {}".format(
                repr_binary(row_data), repr_binary(column_data)))
            change = False
        column_data = device.read_port(drive)
        row_data = device.read_port(inp)
        if column_data != prev_column_data or row_data != prev_row_data:
            change = True
            prev_column_data = column_data
            prev_row_data = row_data
        time.sleep(0.1)
Пример #2
0
def compare_devices_regs(device1, device2,
                         regs=register_addresses.keys()):  # todo: debug
    device1_regs = dict()
    device2_regs = dict()

    for reg in regs:
        device1_regs[reg] = read_byte(device1, reg)
        device2_regs[reg] = read_byte(device2, reg)

    print("[+]registries comparison")
    for reg in regs:
        # device1_reg, device2_reg in zip(device1_regs.iteritems(), device2_regs.iteritems()):
        if device1_regs[reg] == device2_regs[reg]:
            print("[=]" + reg + ": " + repr_binary(device1[reg]))
        else:
            print("[!=]" + device1 + ": " + repr_binary(device1_regs[reg]))
            print("[!=]" + device2 + ": " + repr_binary(device2_regs[reg]))
Пример #3
0
def compare_devices_regs(device1, device2,
                         regs=register_addresses.keys()):  # todo: debug
    device1_regs = dict()
    device2_regs = dict()

    for reg in regs:
        device1_regs[reg] = read_byte(device1, reg)
        device2_regs[reg] = read_byte(device2, reg)

    print("[+]registries comparison")
    for reg in regs:
        # device1_reg, device2_reg in zip(device1_regs.iteritems(), device2_regs.iteritems()):
        if device1_regs[reg] == device2_regs[reg]:
            print("[=]" + reg + ": " + repr_binary(device1[reg]))
        else:
            print("[!=]" + device1 + ": " + repr_binary(device1_regs[reg]))
            print("[!=]" + device2 + ": " + repr_binary(device2_regs[reg]))
Пример #4
0
def read_byte(device_addr, reg):
    device = device_factory(device_addr)
    try:
        reg = register_lookup(reg)
    except ValueError:
        if raw_input("[!] the register '{}' could not be found! ingore warning [N/y]".format(reg)).lower() in ['','n']:
            return

    data = device.read_byte(reg)

    try:
        reg = register_names[reg]
    except KeyError:
        print("[!]  warning: register {} is unknown".format(reg))
    print("[+]  read: {}: {}".format(reg,repr_binary(data)))

    return data
Пример #5
0
def read_byte(device_addr, reg):
    device = device_factory(device_addr)
    try:
        reg = register_lookup(reg)
    except ValueError:
        if raw_input(
                "[!] the register '{}' could not be found! ingore warning [N/y]"
                .format(reg)).lower() in ['', 'n']:
            return

    data = device.read_byte(reg)

    try:
        reg = register_names[reg]
    except KeyError:
        print("[!]  warning: register {} is unknown".format(reg))
    print("[+]  read: {}: {}".format(reg, repr_binary(data)))

    return data
Пример #6
0
def listen(device_address):
    if raw_input("[!] warning this will write to your device! continue [Y/n]").lower() not in ['y', '']: return
    device = device_factory(device_address)
    change = False
    drive = 'B'
    inp = 'A'
    prev_column_data = 0
    prev_row_data = 0

    device.set_io_mode('output', drive)
    device.set_io_mode('input', inp)

    while True:
        if change:
            print("[+]  input detected: row: {}| column: {}".format(repr_binary(row_data), repr_binary(column_data)))
            change = False
        column_data = device.read_port(drive)
        row_data = device.read_port(inp)
        if column_data != prev_column_data or row_data != prev_row_data:
            change = True
            prev_column_data = column_data
            prev_row_data = row_data
        time.sleep(0.1)