-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjtagthingy.py
94 lines (92 loc) · 3.03 KB
/
jtagthingy.py
1
2
3
4
5
6
7
8
9
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import time
import mss
import numpy
import pytesseract
import re
import jtag_uart
def keyreturn(text):
keydic={"0000":"s","0100":"d","1000":"a","0001":"w","0101":"e","1001":"q","0010":"x","0110":"c","1010":"z"}
return keydic[text]
def direction(lis):#takes in numbers from accelerometer from gravity, finds direction to move
direction=[]
try:
lisnew=[float(lis[0]), float(lis[1])]
if (lisnew[0]<-0.3):
direction.append(2)
elif (lisnew[0]>0.3):
direction.append(1)
else:
direction.append(0)
if (lisnew[1]<-0.3):
direction.append(2)
elif (lisnew[1]>0.3):
direction.append(1)
else:
direction.append(0)
x=str(bitreturn(direction[0])+bitreturn(direction[1]))
return keyreturn(x)
except:
return("bad read")
def cleanchars(text):
ext=text.replace('8.', '0.')
ext=ext.replace('@','0')
ext=ext.replace('2.','0.')
ext=ext.replace("20.","0.")
ext=ext.replace('40', '+0')
ext=ext.replace('41.','+1.')
ext=ext.replace('%','00')
ext=ext.replace('-.','-0.')
ext=ext.replace('+.','+0.')
ext=ext.replace('4.','+0.')
ext=ext.replace('. ', '.')
return ext
def takenums(text):
p=re.compile(r"[+,\-]\d\.\d\d\d")
v=p.findall(text)
return v
def bitreturn(num):
if (num==0):
return str("00")
elif (num==1):
return str("01")
else:
return str("10")
def write(ju, writearray):
writedata = bytes()
index = 0
while (index < len(writearray)):
writedata = bytes()
for i in range(0, 16 * 2**10):
writedata += bytes([writearray[index]])
index += 1
if (index == len(writearray)):
break
ju.write(writedata)
def keyreturn(text):
keydic={"0000":"s","0100":"d","1000":"a","0001":"w","0101":"e","1001":"q","0010":"x","0110":"c","1010":"z"}
return keydic[text]
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
custom="c- tessedit_char_whitelist= 0123456789-+"
mon = {'top': 313, 'left': 58, 'width': 192, 'height': 18}
mommy= {'top': 513, 'left': 58, 'width': 192, 'height': 18}
time.sleep(5)
def main():
ju = jtag_uart.intel_jtag_uart(instance_nr=0)
with mss.mss() as sct:
while True:
im1 = numpy.asarray(sct.grab(mon))
text1 = pytesseract.image_to_string(im1, lang="eng", config=custom)
a=[ord(c) for c in ((direction(takenums(cleanchars(text1))))+(direction(takenums(cleanchars(text1)))))]
try:
write(ju, a)
print(a)
except:
print(a)
print("bad read")
for i in a:
print(f"{i:02x} ", end="")
time.sleep(1)
print("")
if (__name__ == "__main__"):
write(jtag_uart.intel_jtag_uart(instance_nr=0), [77,77,77])
print("success")