4个版本
0.1.1 | 2020年12月31日 |
---|---|
0.1.0 | 2020年12月6日 |
0.0.2 | 2020年12月2日 |
0.0.1 | 2020年12月2日 |
在嵌入式开发中排名1405
每月下载量78次
用于wio_terminal
36KB
913 行
seeed-erpc-rs
Seeed Studio的eRPC协议的嵌入式/no-std实现,用于与他们的RTL8720固件通信。
最值得注意的是,这是他们Wio Terminal产品中wifi芯片的主要固件。
工作进行中 - 大多数RPC尚未实现。
用法
请参阅Wio终端 BSP实现,了解如何使用此工具的示例。
总结如下
- 通过将由
RPC::header(sequence_number)
生成的字节与由RPC::args(&mut buff)
扩展的字节组合来生成请求字节。 - 发送
FrameHeader::new_from_msg(request_bytes)
,后跟请求字节本身。 - 从远程端接收4个字节(帧头),并使用
FrameHeader::parse()
进行解析。 - 通过读取下一个
frame_header.msg_length
字节来接收响应有效负载。 - 通过调用
frame_header.check_crc(&payload_bytes)
来验证CRC。 - 最后,通过调用
RPC::parse(&payload_bytes)
来获取RPC的结果。
处理'回调'消息
有时远程端会主动发送数据给你,即使你没有请求。这些是“回调”服务的“单向”RPC。处理这些情况有点麻烦。如果你从RPC::parse()
返回错误Err::NotOurs
,那么你需要重复上面的步骤3-6。
依赖关系
~2.5MB
~44K SLoC