Skip to content

Commit 5f7fdb5

Browse files
committed
add test utility
1 parent 50ba1ac commit 5f7fdb5

File tree

6 files changed

+209
-1
lines changed

6 files changed

+209
-1
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
PY_FILES=src
1+
PY_FILES=src test
22

33
prepare:
44
pip install pip-tools

test/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Virtual device
2+
3+
Small testing utility. Creates 2 linked serial ports, for virtual device and for application.

test/__init__.py

Whitespace-only changes.

test/device.py

Lines changed: 168 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,168 @@
1+
import serial
2+
3+
from tesmart import utils
4+
5+
# PING
6+
# Request
7+
# 55 01 FE 00 00 00 AB
8+
# Response
9+
# AA 01 FE 00 00 07 41 52 54 2D 30 35 00 D6
10+
#
11+
# CURRENT
12+
# Request
13+
# 55 01 FE 0F 01 06 00 00 00 00 07 A3 EB
14+
# Response
15+
# AA 01 FE 0F 01 07 A3 01 07 12 05 26 02 21 03 01 07 12 26 02 21 CB 46 B9 05 60 12 C0 56 00 00 00 00 00 00 20 00 08 00 00
16+
# 00 00 00 55 91 E9 FF BE C6 FF FF 26 12 D8 02 08 00 0C 00 08 00 20 00 00 00 04 00 00 00 00 00 4A 00 69 00 17 02 17 05 23
17+
# 07 72 00 58 D8 00 00 11 11 00 02 02 04 00 04 00 02 3C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FA 1C 7B 13 FA 09 E0 F8
18+
# 00 80 CF 02 00 00 1B F4 26 13 16 90 1C 00 00 3A 18 ED 18 05 03 9C FF C3 5C 81 F8 2D F8 00 00 00 00 00 C8 C8 5C 00 00 00
19+
# 00 3C 00 00 46 62 00 00 00 00 01 00 00 00 00 00 01 00 D8 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 0F 5F 46 87
20+
# DD 00 00 80 3E 00 00 00 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 54 00 01 00 00 0A 00 05 05 03 01 00 00
21+
# 7C 15 38 FF FF F4 01 01 FF 00 00 00 00 00 FF 00 00 FF 1C 25 01 00 01 00 0C 0A 00 00 00 00 00 00 1E A0 05 00 00 04 00 10
22+
# 0E 00 00 00 00 00 00 00 00 00 00 00 00 0B 03 00 05 0A 00 00 00 00 05 01 00 00 00 00 05 00 00 00 00 00 00 00 00 05 00 00
23+
# 64 3A 18 00 00 00 00 75 14 00 80 00 80 00 80 00 80 00 00 00 00 07 00 80 00 80 00 80 00 00 75 14 70 17 00 04 00 00 78 26
24+
# 81 F8 2D F8 00 00 00 00 5E D0 DA 26 00 00 00 00 3C 00 00 CD FE 00 00 00 00 00 00 00 00 00 00 00 00 4C 00 00 00 00 00 00
25+
# 00 00 00 00 00 00 00 00 00 05 00 14 5F 46 96 E8 00 00 80 3E 00 00 70 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
26+
# 32 00 5A 00 01 00 00 64 00 05 00 04 00 70 17 64 19 00 00 FF F4 01 FF FF 00 00 00 00 00 FF 88 13 FF 00 00 01 00 01 00 0D
27+
# 0A 00 00 00 00 00 00 1E A0 05 00 00 06 00 10 0E 00 00 00 00 00 00 00 00 00 00 00 00 0B 00 00 05 0A 00 00 00 00 05 01 00
28+
# 00 00 00 02 00 00 00 00 00 00 00 00 04 00 00 08 75 14 00 00 00 00 00 09 7F FF 00 19 7F 00 00 00 00 00 00 00 00 00 00 00
29+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
30+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
31+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
32+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
33+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
34+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
35+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
36+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
37+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
38+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
39+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
41+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
42+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
43+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
44+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
45+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
46+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
47+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 22 00 00 00 00 00 00 00
48+
# 00 00 00 00 00 00 00 00 00 22 0D 41 50 54 2D 20 20 20 57 41 52 4E 49 4E 47 00 1A 00 00 00 00 00 00 00 00 00 00 00 00 00
49+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7E 31
51+
# 00 00 7E 31 00 00 7E 31 00 00 7E 31 00 00 7E 31 00 00 7E 31 00 00 7E 31 00 00 7E 31 00 00 17 98 BA 39 17 98 BA 39 17 98
52+
# BA 39 17 98 BA 39 17 98 BA 39 17 98 BA 39 17 98 BA 39 17 98 BA 39 06 06 06 06 06 06 06 06 01 03 04 00 00 00 00 00 00 00
53+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
54+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
55+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 C2 00 00
56+
# F0 C2 00 00 F0 C2 00 00 F0 C2 00 00 F0 C2 00 00 F0 C2 00 00 F0 C2 00 00 F0 C2 FA 1C 78 13 E0 F8 FA 09 73 14 00 80 00 80
57+
# 00 80 00 D0 00 00 04 00 04 00 04 00 04 00 04 00 00 00 00 00 00 00 E0 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
58+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
59+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60+
# 00 00 00 00 00 00 00 00 00 00 00 00 00 64 20 1C 20 1C 00 00 20 1C 20 1C 00 00 00 00 00 00 00 00 00 00 00 00 FF 00 00 FF
61+
# FF FF 94 64 DC 33 69 FF FF FF 10 10 10 10 10 FF FF FF 09 0F 10 03 07 FF FF FF DE DE DE DE DE BB BB BB 44 44 44 44 44 FF
62+
# FF FF 02 FF FF FF C0 83 4C 2A 30 08 83 F0 72 62 FF 01 00 00 00 00 02 18 1E FF 01 00 00 00 00 00 00 00 36 25 20 07 02 18
63+
# 2A FF 18 00 00 00 00 00 00 00 31 49 20 07 02 18 1E FF 01 00 00 00 00 00 00 00 32 49 20 07 02 18 1E FF 01 00 00 00 00 00
64+
# 00 00 DB
65+
66+
67+
PING_RESPONSE_BODY = '41 52 54 2D 30 35 00'
68+
CURRENT_RESPONSE_BODY = (
69+
'01 07 12 05 26 02 21 03 01 07 12 26 02 21 CB 46 B9 05 60 12 C0 56 00 00 00 00 00 00 20 00 08 '
70+
'00 00 00 00 00 55 91 E9 FF BE C6 FF FF 26 12 D8 02 08 00 0C 00 08 00 20 00 00 00 04 00 00 00 '
71+
'00 00 4A 00 69 00 17 02 17 05 23 07 72 00 58 D8 00 00 11 11 00 02 02 04 00 04 00 02 3C 00 00 '
72+
'00 00 00 00 00 00 00 00 00 00 00 00 FA 1C 7B 13 FA 09 E0 F8 00 80 CF 02 00 00 1B F4 26 13 16 '
73+
'90 1C 00 00 3A 18 ED 18 05 03 9C FF C3 5C 81 F8 2D F8 00 00 00 00 00 C8 C8 5C 00 00 00 00 3C '
74+
'00 00 46 62 00 00 00 00 01 00 00 00 00 00 01 00 D8 09 00 00 00 00 00 00 00 00 00 00 00 00 00 '
75+
'00 02 00 0F 5F 46 87 DD 00 00 80 3E 00 00 00 41 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
76+
'00 64 00 54 00 01 00 00 0A 00 05 05 03 01 00 00 7C 15 38 FF FF F4 01 01 FF 00 00 00 00 00 FF '
77+
'00 00 FF 1C 25 01 00 01 00 0C 0A 00 00 00 00 00 00 1E A0 05 00 00 04 00 10 0E 00 00 00 00 00 '
78+
'00 00 00 00 00 00 00 0B 03 00 05 0A 00 00 00 00 05 01 00 00 00 00 05 00 00 00 00 00 00 00 00 '
79+
'05 00 00 64 3A 18 00 00 00 00 75 14 00 80 00 80 00 80 00 80 00 00 00 00 07 00 80 00 80 00 80 '
80+
'00 00 75 14 70 17 00 04 00 00 78 26 81 F8 2D F8 00 00 00 00 5E D0 DA 26 00 00 00 00 3C 00 00 '
81+
'CD FE 00 00 00 00 00 00 00 00 00 00 00 00 4C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 05 '
82+
'00 14 5F 46 96 E8 00 00 80 3E 00 00 70 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 32 '
83+
'00 5A 00 01 00 00 64 00 05 00 04 00 70 17 64 19 00 00 FF F4 01 FF FF 00 00 00 00 00 FF 88 13 '
84+
'FF 00 00 01 00 01 00 0D 0A 00 00 00 00 00 00 1E A0 05 00 00 06 00 10 0E 00 00 00 00 00 00 00 '
85+
'00 00 00 00 00 0B 00 00 05 0A 00 00 00 00 05 01 00 00 00 00 02 00 00 00 00 00 00 00 00 04 00 '
86+
'00 08 75 14 00 00 00 00 00 09 7F FF 00 19 7F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
87+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
88+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
89+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
90+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
91+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
92+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
93+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
94+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
95+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
96+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
97+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
98+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
99+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
100+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
101+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
102+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
103+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
104+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
105+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
106+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
107+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
108+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
109+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
110+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
111+
'00 00 22 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 22 0D 41 50 54 2D 20 20 20 57 41 '
112+
'52 4E 49 4E 47 00 1A 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
113+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
114+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
115+
'00 00 00 00 00 7E 31 00 00 7E 31 00 00 7E 31 00 00 7E 31 00 00 7E 31 00 00 7E 31 00 00 7E 31 '
116+
'00 00 7E 31 00 00 17 98 BA 39 17 98 BA 39 17 98 BA 39 17 98 BA 39 17 98 BA 39 17 98 BA 39 17 '
117+
'98 BA 39 17 98 BA 39 06 06 06 06 06 06 06 06 01 03 04 00 00 00 00 00 00 00 00 00 00 00 00 00 '
118+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
119+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
120+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
121+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 C2 00 00 F0 C2 00 00 F0 C2 00 00 F0 C2 '
122+
'00 00 F0 C2 00 00 F0 C2 00 00 F0 C2 00 00 F0 C2 FA 1C 78 13 E0 F8 FA 09 73 14 00 80 00 80 00 '
123+
'80 00 D0 00 00 04 00 04 00 04 00 04 00 04 00 00 00 00 00 00 00 E0 00 01 00 00 00 00 00 00 00 '
124+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
125+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
126+
'00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 '
127+
'00 00 00 00 00 00 00 00 64 20 1C 20 1C 00 00 20 1C 20 1C 00 00 00 00 00 00 00 00 00 00 00 00 '
128+
'FF 00 00 FF FF FF 94 64 DC 33 69 FF FF FF 10 10 10 10 10 FF FF FF 09 0F 10 03 07 FF FF FF DE '
129+
'DE DE DE DE BB BB BB 44 44 44 44 44 FF FF FF 02 FF FF FF C0 83 4C 2A 30 08 83 F0 72 62 FF 01 '
130+
'00 00 00 00 02 18 1E FF 01 00 00 00 00 00 00 00 36 25 20 07 02 18 2A FF 18 00 00 00 00 00 00 '
131+
'00 31 49 20 07 02 18 1E FF 01 00 00 00 00 00 00 00 32 49 20 07 02 18 1E FF 01 00 00 00 00 00 '
132+
'00 00 '
133+
)
134+
135+
136+
def response_packet(cmd_group: int, cmd: int, command: str) -> bytearray:
137+
packet = bytearray()
138+
packet.extend(bytes.fromhex('AA'))
139+
packet.extend(utils.slave_bytes(1))
140+
packet.extend(bytes([cmd_group, cmd]))
141+
body = bytearray.fromhex(command)
142+
packet.extend(utils.int_to_bytes(len(body)))
143+
packet.extend(body)
144+
packet.extend(utils.calc_checksum(packet))
145+
return packet
146+
147+
148+
def run_mock_device(port: str) -> None:
149+
while True:
150+
while True:
151+
with serial.Serial(port, timeout=3) as ser:
152+
result: bytearray = bytearray(ser.readline())
153+
if result:
154+
is_valid = utils.validate_response(result)
155+
if is_valid:
156+
cmd_group, cmd = result[3], result[4]
157+
if cmd_group == 0 and cmd == 0:
158+
packet = response_packet(cmd_group, cmd, PING_RESPONSE_BODY)
159+
ser.write(packet)
160+
break
161+
if cmd_group == 15 and cmd == 1:
162+
packet = response_packet(cmd_group, cmd, CURRENT_RESPONSE_BODY)
163+
print(len(packet), packet)
164+
ser.write(packet)
165+
break
166+
response = utils.format_bytestring(result[6:-1])
167+
print(response)
168+
break

test/emulator.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import subprocess
2+
import time
3+
4+
5+
class SerialEmulator:
6+
def __init__(self, device_port: str = './ttydevice', client_port: str = './ttyclient') -> None:
7+
self.device_port = device_port
8+
self.client_port = client_port
9+
cmd = ['socat', '-d', '-d', f'PTY,link={self.device_port},raw,echo=0', f'PTY,link={self.client_port},raw,echo=0']
10+
self.proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
11+
time.sleep(1)
12+
self.err: bytes
13+
self.out: bytes
14+
15+
def __del__(self) -> None:
16+
self.stop()
17+
18+
def stop(self) -> None:
19+
self.proc.kill()
20+
self.out, self.err = self.proc.communicate()
21+
22+
@staticmethod
23+
def start(device_port: str = './ttydevice', client_port: str = './ttyclient') -> tuple[str, str]:
24+
emulator = SerialEmulator(device_port, client_port)
25+
return emulator.device_port, emulator.client_port

test/run_test.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from test.device import run_mock_device
2+
from test.emulator import SerialEmulator
3+
4+
if __name__ == '__main__':
5+
emulator = SerialEmulator()
6+
try:
7+
print('device_port:', emulator.device_port)
8+
print('client_port:', emulator.client_port)
9+
run_mock_device(emulator.device_port)
10+
except KeyboardInterrupt:
11+
pass
12+
emulator.stop()

0 commit comments

Comments
 (0)