Python SDK¶
The Python SDK provides both synchronous and asynchronous interfaces for message communication.
Installation¶
Generate with SDK:
Parser Usage¶
from struct_frame_parser import Parser, HeaderType, PayloadType
from messages_sf import Status
# Create parser
parser = Parser()
# Encode
frame = parser.encode_basic(msg_id=1, msg=Status(value=42).to_bytes())
# Decode
for byte in frame:
result = parser.parse_byte(byte)
if result.valid:
msg = Status.from_bytes(result.msg_data)
print(f"Status: {msg.value}")
Message Router¶
from struct_frame_sdk import MessageRouter
from messages_sf import Status
router = MessageRouter()
# Subscribe to messages
@router.subscribe(Status)
def handle_status(msg: Status):
print(f"Status: {msg.value}")
# Process incoming data
router.process_byte(byte)
Transports¶
Serial¶
import serial
from struct_frame_sdk.transports import SerialTransport
transport = SerialTransport('/dev/ttyUSB0', 115200)
transport.connect()
transport.send(msg_id, data)
Socket¶
import socket
from struct_frame_sdk.transports import SocketTransport
transport = SocketTransport('192.168.1.100', 8080)
transport.connect()
transport.send(msg_id, data)