Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save baotang2118/3e97faa589cb32789e394341714ab472 to your computer and use it in GitHub Desktop.
Save baotang2118/3e97faa589cb32789e394341714ab472 to your computer and use it in GitHub Desktop.
import struct
def key_code(code):
thisdict = {
1: "KEY_ESC",
3: "KEY_2", 4: "KEY_3", 5: "KEY_4", 6: "KEY_5", 7: "KEY_6", 9: "KEY_8", 11: "KEY_0",
12: "KEY_MINUS", 13: "KEY_EQUAL",
14: "KEY_BACKSPACE", 15: "KEY_TAB",
16: "KEY_Q", 18: "KEY_E",
19: "KEY_R", 20: "KEY_T", 21: "KEY_Y", 22: "KEY_U", 23: "KEY_I", 24: "KEY_O", 25: "KEY_P",
26: "KEY_LEFTBRACE", 27: "KEY_RIGHTBRACE", 28: "KEY_ENTER", 29: "KEY_LEFTCTRL",
31: "KEY_S", 32: "KEY_D", 33: "KEY_F", 34: "KEY_G", 35: "KEY_H", 38: "KEY_L",
39: "KEY_SEMICOLON", 40: "KEY_APOSTROPHE", 42: "KEY_LEFTSHIFT", 43: "KEY_BACKSLASH",
45: "KEY_X", 46: "KEY_C", 47: "KEY_V", 48: "KEY_B", 49: "KEY_N",
51: "KEY_COMMA", 52: "KEY_DOT", 53: "KEY_SLASH", 54: "KEY_RIGHTSHIFT", 56: "KEY_LEFTALT",
57: "KEY_SPACE",
60: "KEY_F2", 71: "KEY_KP7", 73: "KEY_KP9",
74: "KEY_KPMINUS",
75: "KEY_KP4", 76: "KEY_KP5",
78: "KEY_KPPLUS",
79: "KEY_KP1", 80: "KEY_KP2", 82: "KEY_KP0",
83: "KEY_KPDOT", 86: "KEY_102ND", 96: "KEY_KPENTER", 100: "KEY_RIGHTALT", 103: "KEY_UP"
}
return thisdict[code]
def short_term():
f = open( "ch24.raw", "rb" );
tmp = []
while 1:
data = f.read(24)
try:
upacked = struct.unpack('4IHHI',data)
except:
return tmp
if upacked[4] == 1:
tmp.append(upacked[4:])
def main():
new_logger = short_term()
# print (new_logger)
i = 0
while i < (len(new_logger)-1):
if new_logger[i][1] == new_logger[i+1][1] and new_logger[i][2] == 1 and new_logger[i+1][2] == 0:
print (key_code(new_logger[i][1]))
i+=1
else:
if new_logger[i][2] == 1:
print (key_code(new_logger[i][1]), 'v')
if new_logger[i][2] == 0:
print (key_code(new_logger[i][1]), '^')
if new_logger[i][2] == 2:
print (key_code(new_logger[i][1]), 'r')
i+=1
if __name__ == '__main__':
main()
import struct
def key_code(code):
thisdict = {
1: "KEY_ESC",
3: "KEY_2", 4: "KEY_3", 5: "KEY_4", 6: "KEY_5", 7: "KEY_6", 9: "KEY_8", 11: "KEY_0",
12: "KEY_MINUS", 13: "KEY_EQUAL",
14: "KEY_BACKSPACE", 15: "KEY_TAB",
16: "KEY_Q", 18: "KEY_E",
19: "KEY_R", 20: "KEY_T", 21: "KEY_Y", 22: "KEY_U", 23: "KEY_I", 24: "KEY_O", 25: "KEY_P",
26: "KEY_LEFTBRACE", 27: "KEY_RIGHTBRACE", 28: "KEY_ENTER", 29: "KEY_LEFTCTRL",
31: "KEY_S", 32: "KEY_D", 33: "KEY_F", 34: "KEY_G", 35: "KEY_H", 38: "KEY_L",
39: "KEY_SEMICOLON", 40: "KEY_APOSTROPHE", 42: "KEY_LEFTSHIFT", 43: "KEY_BACKSLASH",
45: "KEY_X", 46: "KEY_C", 47: "KEY_V", 48: "KEY_B", 49: "KEY_N",
51: "KEY_COMMA", 52: "KEY_DOT", 53: "KEY_SLASH", 54: "KEY_RIGHTSHIFT", 56: "KEY_LEFTALT",
57: "KEY_SPACE",
60: "KEY_F2", 71: "KEY_KP7", 73: "KEY_KP9",
74: "KEY_KPMINUS",
75: "KEY_KP4", 76: "KEY_KP5",
78: "KEY_KPPLUS",
79: "KEY_KP1", 80: "KEY_KP2", 82: "KEY_KP0",
83: "KEY_KPDOT", 86: "KEY_102ND", 96: "KEY_KPENTER", 100: "KEY_RIGHTALT", 103: "KEY_UP"
}
return thisdict[code]
def main():
f = open( "ch24.raw", "rb" );
tmp = []
while 1:
data = f.read(24)
try:
upacked = struct.unpack('4IHHI',data)
except:
tmp.sort()
print (tmp)
print (len(tmp))
exit(0)
if upacked[4] == 0:
print ("====================================")
pass
else:
if upacked[4] == 1:
print (upacked, end='')
if upacked[5]:
if upacked[5] not in tmp:
tmp.append(upacked[5])
if upacked[5]:
print (" ", key_code(upacked[5]))
if __name__ == '__main__':
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment