Skip to content

Commit 0c05680

Browse files
committed
examples: python client
1 parent 1efbff5 commit 0c05680

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from serial_client import SerialClient
2+
3+
PORT = '/dev/ttySTM0'
4+
5+
client = SerialClient(port=PORT, baudrate=115200)
6+
7+
client.call("add", 15, 7)

extras/serial_client.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import serial
2+
import time
3+
import msgpack
4+
from io import BytesIO
5+
6+
REQUEST = 0
7+
RESPONSE = 1
8+
NOTIFY = 2
9+
10+
class SerialClient:
11+
def __init__(self, port, baudrate=115200):
12+
self.ser = serial.Serial(port, baudrate, timeout=0.1)
13+
self.msg_id = 0
14+
15+
def call(self, method, *args):
16+
request = [REQUEST, self.msg_id, method, [*args]]
17+
self.ser.write(msgpack.packb(request))
18+
19+
data = None
20+
while not data:
21+
data = self.ser.read(1024)
22+
23+
unpacker = msgpack.Unpacker(BytesIO(data))
24+
for message in unpacker:
25+
print(message)

0 commit comments

Comments
 (0)