Skip to content

Commit fa2456c

Browse files
committed
fix: serial_server not unpacking messages correctly. mod: serial_server_example with mult callback and stm32 uart setting
1 parent 9acabc0 commit fa2456c

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

extras/examples/serial_server_example.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,19 @@
1+
from serial_server import SerialServer
2+
13
def add(a, b):
24
return a + b
35

46
def greet(name):
57
return f"Hello, {name}!"
68

7-
server = SerialServer(port='/dev/ttyUSB0', baudrate=115200)
9+
def multiply(a, b):
10+
return a*b
11+
12+
PORT = '/dev/ttySTM0'
13+
14+
server = SerialServer(port=PORT, baudrate=115200)
815
server.register_callback('add', add)
16+
server.register_callback('mult', multiply)
917
server.register_callback('greet', greet)
1018
server.start()
1119

extras/serial_server.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import serial
22
import msgpack
33
import threading
4-
4+
from io import BytesIO
55

66
REQUEST = 0
77
RESPONSE = 1
@@ -53,18 +53,18 @@ def start(self):
5353
threading.Thread(target=self._run, daemon=True).start()
5454

5555
def _run(self):
56-
unpacker = msgpack.Unpacker(raw=False)
5756
while self.running:
5857
try:
5958
data = self.ser.read(1024)
6059
if data:
61-
unpacker.feed(data)
60+
unpacker = msgpack.Unpacker(BytesIO(data))
6261
for message in unpacker:
6362
response = self.handle_message(message)
6463
if response is not None:
6564
self.ser.write(response)
6665
except Exception as e:
6766
print(f"Error: {e}")
67+
print("Server stopped")
6868

6969
def stop(self):
7070
self.running = False

0 commit comments

Comments
 (0)