3
3
import serial .tools
4
4
import serial .tools .list_ports
5
5
6
+
6
7
def substring_after (str : str , searchStr : str ):
7
- return str [str .index (searchStr ) + len (searchStr ):]
8
+ return str [str .index (searchStr ) + len (searchStr ) :]
9
+
8
10
9
11
def getPort ():
10
12
ports = sorted (serial .tools .list_ports .comports ())
11
13
print ("Available ports to listing:" )
12
14
for id , portInfo in enumerate (ports ):
13
- print ("{}. - {}: {} [{}]" .format (id , portInfo .device , portInfo .description , portInfo .hwid ))
15
+ print (
16
+ "{}. - {}: {} [{}]" .format (
17
+ id , portInfo .device , portInfo .description , portInfo .hwid
18
+ )
19
+ )
14
20
print ("Select port: " , end = "" )
15
21
selectId = int (input ())
16
22
if selectId < len (ports ) and selectId >= 0 :
17
- return ports [selectId ]
23
+ return ports [selectId ]
18
24
else :
19
- print ("Unrecognized port number" )
20
- return getPort ()
21
-
25
+ print ("Unrecognized port number" )
26
+ return getPort ()
27
+
28
+
22
29
zero = 756
23
30
one = 2149
24
31
space = 752
25
32
interv = 0.2
26
33
34
+
27
35
def getBitFromInterv (value : int ):
28
- if (value > zero - zero * interv and value < zero + zero * interv ):
29
- return 0
30
- elif (value > one - one * interv and value < one + one * interv ):
31
- return 1
32
- else :
33
- return 2
36
+ if value > zero - zero * interv and value < zero + zero * interv :
37
+ return 0
38
+ elif value > one - one * interv and value < one + one * interv :
39
+ return 1
40
+ else :
41
+ return 2
42
+
34
43
35
44
def bitListToInt (bitlist ):
36
45
out = 0
@@ -44,8 +53,8 @@ def main():
44
53
print ("Selected port:" + port .device )
45
54
46
55
ser = serial .Serial (
47
- port = port .device ,
48
- baudrate = 115200 ,
56
+ port = port .device ,
57
+ baudrate = 115200 ,
49
58
)
50
59
51
60
zSum = 0
@@ -56,44 +65,42 @@ def main():
56
65
sCnt = 0
57
66
58
67
while True :
59
- try :
60
- dataStr = ser .readline ().decode ()
61
- except :
62
- continue
63
- #print(dataStr)
64
- if ("uint16_t rawData" in dataStr ):
65
- dataStrArray = str (dataStr [dataStr .index ('{' ) + 1 :dataStr .index ('}' )]).split ("," )
66
- data = [int (i .strip ()) for i in dataStrArray ]
67
- data = data [2 :]
68
- clearData = [i for idi , i in enumerate (data ) if idi % 2 == 1 ]
69
- bitData = [getBitFromInterv (i ) for i in data ]
70
- clearBitData = [getBitFromInterv (i ) for i in clearData ]
71
-
72
-
73
-
74
- for idd , d in enumerate (data ):
75
- if (idd % 2 == 0 ):
76
- sSum += d
77
- sCnt += 1
78
- else :
79
- if (getBitFromInterv (d ) == 0 ):
80
- zSum += d
81
- zCnt += 1
82
- elif (getBitFromInterv (d ) == 1 ):
83
- oSum += d
84
- oCnt += 1
85
-
86
- # print("zero = " + str(zSum/zCnt) + " one = " + str(oSum/oCnt) + " space = " + str(sSum/sCnt))\
87
-
88
-
89
-
90
- # print("Data = ", end="")
91
- # print(data)
92
- # print("0b"+ "".join([str(i) for i in bitData]))
93
- # print("ClearData = ", end="")
94
- #print(clearData)
95
- print ("" .join ([str (i ) for i in clearBitData ]))
96
-
97
-
98
- if __name__ == '__main__' :
99
- main ()
68
+ try :
69
+ dataStr = ser .readline ().decode ()
70
+ except :
71
+ continue
72
+ # print(dataStr)
73
+ if "uint16_t rawData" in dataStr :
74
+ dataStrArray = str (
75
+ dataStr [dataStr .index ("{" ) + 1 : dataStr .index ("}" )]
76
+ ).split ("," )
77
+ data = [int (i .strip ()) for i in dataStrArray ]
78
+ data = data [2 :]
79
+ clearData = [i for idi , i in enumerate (data ) if idi % 2 == 1 ]
80
+ bitData = [getBitFromInterv (i ) for i in data ]
81
+ clearBitData = [getBitFromInterv (i ) for i in clearData ]
82
+
83
+ for idd , d in enumerate (data ):
84
+ if idd % 2 == 0 :
85
+ sSum += d
86
+ sCnt += 1
87
+ else :
88
+ if getBitFromInterv (d ) == 0 :
89
+ zSum += d
90
+ zCnt += 1
91
+ elif getBitFromInterv (d ) == 1 :
92
+ oSum += d
93
+ oCnt += 1
94
+
95
+ # print("zero = " + str(zSum/zCnt) + " one = " + str(oSum/oCnt) + " space = " + str(sSum/sCnt))\
96
+
97
+ # print("Data = ", end="")
98
+ # print(data)
99
+ # print("0b"+ "".join([str(i) for i in bitData]))
100
+ # print("ClearData = ", end="")
101
+ # print(clearData)
102
+ print ("" .join ([str (i ) for i in clearBitData ]))
103
+
104
+
105
+ if __name__ == "__main__" :
106
+ main ()
0 commit comments