Пример #1
0
def main(argv):
    last_time = 0

    deltas = {}

    d = evemu.Device(argv[1], create=False)
    for e in d.events():

        if not e.matches("EV_SYN", "SYN_REPORT"):
            print("        %s %s %d" % (evemu.event_get_name(e.type), \
                                        evemu.event_get_name(e.type, e.code), \
                                        e.value))
            continue

        time = usec(e.sec, e.usec)
        dt = (time - last_time) / 1000
        last_time = time
        print("%4dms  ---- %s %s ----" % (dt, evemu.event_get_name(e.type), \
                                          evemu.event_get_name(e.type, e.code)))

        deltas[dt] = dict.get(deltas, dt, 0) + 1

    print("\nDistribution of deltas in ms:")
    for key, value in dict.iteritems(deltas):
        print("  %dms: %d" % (key, value))
Пример #2
0
def main(argv):
    last_time = 0

    deltas = {}

    d = evemu.Device(argv[1], create=False)
    for e in d.events():

        if not e.matches("EV_SYN", "SYN_REPORT"):
            print("        %s %s %d" % (evemu.event_get_name(e.type), \
                                        evemu.event_get_name(e.type, e.code), \
                                        e.value))
            continue

        time = usec(e.sec, e.usec)
        dt = (time - last_time)/1000
        last_time = time
        print("%4dms  ---- %s %s ----" % (dt, evemu.event_get_name(e.type), \
                                          evemu.event_get_name(e.type, e.code)))
                
        deltas[dt] = dict.get(deltas, dt, 0) + 1

    print("\nDistribution of deltas in ms:")
    for key, value in dict.iteritems(deltas):
        print("  %dms: %d" % (key, value))
Пример #3
0
    def test_event_names(self):
        self.assertEqual(evemu.event_get_value("EV_SYN"), 0x00)
        self.assertEqual(evemu.event_get_value("EV_KEY"), 0x01)
        self.assertEqual(evemu.event_get_value("EV_ABS"), 0x03)
        self.assertEqual(evemu.event_get_value("EV_FOO"), None)
        self.assertEqual(evemu.event_get_value(1), 1)
        self.assertEqual(evemu.event_get_value(100), None)

        self.assertEqual(evemu.event_get_value("EV_SYN", "SYN_REPORT"), 0x00)
        self.assertEqual(evemu.event_get_value("EV_KEY", "KEY_Z"), 44)
        self.assertEqual(evemu.event_get_value("EV_ABS", "ABS_X"), 0x00)
        self.assertEqual(evemu.event_get_value("EV_ABS", "ABS_FOO"), None)
        self.assertEqual(evemu.event_get_value(1), 1)
        self.assertEqual(evemu.event_get_value(100), None)

        self.assertEqual(evemu.event_get_name(0x00), "EV_SYN")
        self.assertEqual(evemu.event_get_name(0x01), "EV_KEY")
        self.assertEqual(evemu.event_get_name(0x03), "EV_ABS")
        self.assertEqual(evemu.event_get_name(0xFFFF), None)
        self.assertEqual(evemu.event_get_name("foo"), None)
        self.assertEqual(evemu.event_get_name("EV_SYN"), "EV_SYN")

        self.assertEqual(evemu.event_get_name("EV_SYN", 0x00), "SYN_REPORT")
        self.assertEqual(evemu.event_get_name("EV_REL", 0x01), "REL_Y")
        self.assertEqual(evemu.event_get_name("EV_ABS", 0x00), "ABS_X")
        self.assertEqual(evemu.event_get_name("EV_ABS", 0xFFFF), None)
        self.assertEqual(evemu.event_get_name("EV_ABS", "foo"), None)
        self.assertEqual(evemu.event_get_name("EV_ABS", "ABS_X"), "ABS_X")

        self.assertEqual(evemu.event_get_name(None), None)
        self.assertEqual(evemu.event_get_name(None, None), None)
Пример #4
0
def main(argv):
    d = evemu.Device(argv[1], create=False)
    offsets = {}
    offset = 2

    #     timestamp  count  star   separator
    print('Legend:')
    print('  time, count of keys down, * to mark <3ms timestamp')
    print('  + .... key down, | .... key is down, ^ .... key up')
    print(' ' * 12 + '   ' + ' ' +  ' |', end='')
    for c in range(ord('a'), ord('z') + 1):
        print('{}'.format(chr(c)), end='')
        offsets[offset] = chr(c)
        offset += 1

    for c in range(ord('0'), ord('9') + 1):
        print('{}'.format(chr(c)), end='')
        offsets[offset] = chr(c)
        offset += 1

    offset += 1
    print(' Spc Bksp Del Ret LShf RShf', end='')
    offsets[offset + 2] = 'space'
    offset += 4
    offsets[offset + 2] = 'backspace'
    offset += 5
    offsets[offset + 1] = 'delete'
    offset += 4
    offsets[offset + 1] = 'enter'
    offset += 4
    offsets[offset + 2] = 'leftshift'
    offset += 5
    offsets[offset + 2] = 'rightshift'
    offset += 5
    print('')

    max_offset = offset

    char = ['^', '+', '|', ' ']

    down = {}
    last_down = {}
    bounce = False
    for e in d.events():
        if e.matches('EV_SYN', 'SYN_REPORT'):
            line = []
            line.append('{:06d}.{:06d}'.format(e.sec, e.usec))
            line.append(' {} '.format(len(down)))

            time = e.sec * 1000000 + e.usec
            if bounce:
                line.append('*')
                bounce = False
            else:
                line.append(' ')

            line.append('|')
            for i in range(2, max_offset):
                try:
                    line.append(char[down[offsets[i]]])
                except KeyError:
                    line.append(' ')
            print(''.join(line))

            for key in down:
                if down[key] == DOWN:
                    down[key] = IS_DOWN
                elif down[key] == UP:
                    down[key] = NONE

            d2 = {}
            for key in down.keys():
                value = down[key]
                if value != NONE:
                    d2[key] = value
            down = d2

        if not e.matches('EV_KEY'):
            continue

        key = evemu.event_get_name(e.type, e.code)
        key = key[4:].lower()  # remove KEY_ prefix
        down[key] = e.value
        
        if e.value:
            time = e.sec * 1000000 + e.usec
            if (key in last_down) and (time - last_down[key] < 70000):  # 70 ms
                bounce = True
            else:
                last_down[key] = time
Пример #5
0
    def test_event_names(self):
        self.assertEqual(evemu.event_get_value("EV_SYN"), 0x00)
        self.assertEqual(evemu.event_get_value("EV_KEY"), 0x01)
        self.assertEqual(evemu.event_get_value("EV_ABS"), 0x03)
        self.assertEqual(evemu.event_get_value("EV_FOO"), None)
        self.assertEqual(evemu.event_get_value(1), 1)
        self.assertEqual(evemu.event_get_value(100), None)

        self.assertEqual(evemu.event_get_value("EV_SYN", "SYN_REPORT"), 0x00)
        self.assertEqual(evemu.event_get_value("EV_KEY", "KEY_Z"), 44)
        self.assertEqual(evemu.event_get_value("EV_ABS", "ABS_X"), 0x00)
        self.assertEqual(evemu.event_get_value("EV_ABS", "ABS_FOO"), None)
        self.assertEqual(evemu.event_get_value(1), 1)
        self.assertEqual(evemu.event_get_value(100), None)

        self.assertEqual(evemu.event_get_name(0x00), "EV_SYN")
        self.assertEqual(evemu.event_get_name(0x01), "EV_KEY")
        self.assertEqual(evemu.event_get_name(0x03), "EV_ABS")
        self.assertEqual(evemu.event_get_name(0xFFFF), None)
        self.assertEqual(evemu.event_get_name("foo"), None)
        self.assertEqual(evemu.event_get_name("EV_SYN"), "EV_SYN")

        self.assertEqual(evemu.event_get_name("EV_SYN", 0x00), "SYN_REPORT")
        self.assertEqual(evemu.event_get_name("EV_REL", 0x01), "REL_Y")
        self.assertEqual(evemu.event_get_name("EV_ABS", 0x00), "ABS_X")
        self.assertEqual(evemu.event_get_name("EV_ABS", 0xFFFF), None)
        self.assertEqual(evemu.event_get_name("EV_ABS", "foo"), None)
        self.assertEqual(evemu.event_get_name("EV_ABS", "ABS_X"), "ABS_X")

        self.assertEqual(evemu.event_get_name(None), None)
        self.assertEqual(evemu.event_get_name(None, None), None)
Пример #6
0
def main(argv):
    d = evemu.Device(argv[1], create=False)
    offsets = {}
    offset = 2

    #     timestamp  count  star   separator
    print('Legend:')
    print('  time, count of keys down, * to mark <3ms timestamp')
    print('  + .... key down, | .... key is down, ^ .... key up')
    print(' ' * 12 + '   ' + ' ' + ' |', end='')
    for c in range(ord('a'), ord('z') + 1):
        print('{}'.format(chr(c)), end='')
        offsets[offset] = chr(c)
        offset += 1

    for c in range(ord('0'), ord('9') + 1):
        print('{}'.format(chr(c)), end='')
        offsets[offset] = chr(c)
        offset += 1

    offset += 1
    print(' Spc Bksp Del Ret LShf RShf', end='')
    offsets[offset + 2] = 'space'
    offset += 4
    offsets[offset + 2] = 'backspace'
    offset += 5
    offsets[offset + 1] = 'delete'
    offset += 4
    offsets[offset + 1] = 'enter'
    offset += 4
    offsets[offset + 2] = 'leftshift'
    offset += 5
    offsets[offset + 2] = 'rightshift'
    offset += 5
    print('')

    max_offset = offset

    char = ['^', '+', '|', ' ']

    down = {}
    last_down = {}
    bounce = False
    for e in d.events():
        if e.matches('EV_SYN', 'SYN_REPORT'):
            line = []
            line.append('{:06d}.{:06d}'.format(e.sec, e.usec))
            line.append(' {} '.format(len(down)))

            time = e.sec * 1000000 + e.usec
            if bounce:
                line.append('*')
                bounce = False
            else:
                line.append(' ')

            line.append('|')
            for i in range(2, max_offset):
                try:
                    line.append(char[down[offsets[i]]])
                except KeyError:
                    line.append(' ')
            print(''.join(line))

            for key in down:
                if down[key] == DOWN:
                    down[key] = IS_DOWN
                elif down[key] == UP:
                    down[key] = NONE

            d2 = {}
            for key in down.keys():
                value = down[key]
                if value != NONE:
                    d2[key] = value
            down = d2

        if not e.matches('EV_KEY'):
            continue

        key = evemu.event_get_name(e.type, e.code)
        key = key[4:].lower()  # remove KEY_ prefix
        down[key] = e.value

        if e.value:
            time = e.sec * 1000000 + e.usec
            if (key in last_down) and (time - last_down[key] < 70000):  # 70 ms
                bounce = True
            else:
                last_down[key] = time