Skip to content

Commit dd749f5

Browse files
author
andy
committed
release bayOmicsLib-1.5.6 and add TC diagnostic test
1 parent 289893d commit dd749f5

18 files changed

+1083
-129
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
## Build
2+
3+
make build
4+
5+
## Run
6+
7+
python3 tc_diagnostic.py

modules_testing/thermocycle_diagnostic/__init__.py

Whitespace-only changes.
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
# encoding:utf-8
2+
3+
import time
4+
5+
import serial
6+
import serial.tools.list_ports
7+
8+
Baud = 115200
9+
ReceiveBuffer = 100
10+
11+
12+
class SerialDriver:
13+
14+
@classmethod
15+
def get_com_list(cls):
16+
port_list = serial.tools.list_ports.comports()
17+
return port_list
18+
19+
def __init__(self):
20+
self.device = None
21+
self.com = None
22+
23+
def get_device(self):
24+
"""
25+
select device
26+
:return:
27+
"""
28+
port_list = SerialDriver.get_com_list()
29+
print("=" * 5 + "PORT LIST" + "=" * 5)
30+
for port in port_list:
31+
print(f">>{port.device}")
32+
select = input("Select Port Number(输入串口号数字):")
33+
self.device = f'COM{select}'
34+
35+
def init_serial(self):
36+
"""
37+
init connection
38+
:return:
39+
"""
40+
self.com = serial.Serial(self.device, Baud, timeout=0.01)
41+
if self.com.isOpen():
42+
print(f"{self.device} Opened! \n")
43+
44+
def close(self):
45+
"""
46+
close com
47+
:return:
48+
"""
49+
self.com.close()
50+
print(f"{self.device} Closed! \n")
51+
52+
def init(self):
53+
"""
54+
main
55+
:return:
56+
"""
57+
self.get_device()
58+
self.init_serial()
59+
60+
def write_and_get_buffer(self, send: str, only_write=False, delay=None, times=30):
61+
"""
62+
send cmd
63+
:return:
64+
"""
65+
if self.com is None:
66+
return
67+
send = (send + "\r\n").encode('utf-8')
68+
self.com.write(send)
69+
if delay is None:
70+
pass
71+
else:
72+
time.sleep(delay)
73+
if only_write is True:
74+
return
75+
for i in range(times):
76+
data = self.com.read(ReceiveBuffer)
77+
if "OK" not in data.decode('utf-8') or "busy" in data.decode('utf-8'):
78+
time.sleep(1)
79+
continue
80+
return data.decode('utf-8')
81+
82+
def read_buffer(self):
83+
"""
84+
读取缓存
85+
:return:
86+
"""
87+
data = self.com.read(ReceiveBuffer)
88+
return data.decode('utf-8')
89+
90+
91+
if __name__ == '__main__':
92+
s = SerialDriver()
93+
s.init()
94+
res = s.write_and_get_buffer("M115")
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import csv
2+
import time
3+
4+
5+
class Report:
6+
def __init__(self, csv_name: str):
7+
self.csv_name = csv_name + "-" + time.strftime("%Y%m%d") + '.csv'
8+
9+
def write_row(self, row: list):
10+
"""
11+
write list to csv
12+
:param row:
13+
:return:
14+
"""
15+
with open(self.csv_name, 'a+', encoding='utf8', newline='') as f:
16+
writer = csv.writer(f)
17+
writer.writerow(row)
18+
19+
def write_last_row(self, row: list):
20+
"""
21+
del last row and replace
22+
:param row:
23+
:return:
24+
"""
25+
26+
def delete_lines(filename, tail):
27+
fin = open(filename, 'r')
28+
a = fin.readlines()
29+
fout = open(filename, 'w')
30+
b = ''.join(a[:-tail])
31+
fout.write(b)
32+
33+
delete_lines(self.csv_name, 1)
34+
35+
self.write_row(row)
36+
37+
38+
if __name__ == '__main__':
39+
r = Report("test")
40+
r.write_row(['n', 'c', 2])
41+
r.write_row([3, 4, 3])
42+
r.write_row([3, 4, 3])
43+
r.write_row([3, 4, 3])
44+
r.write_last_row([2, 3, 4])
45+
r.write_last_row([1, 3, 4])

0 commit comments

Comments
 (0)