1个不稳定版本

0.6.0 2023年12月7日

#1512嵌入式开发

Download history 208/week @ 2024-03-12 221/week @ 2024-03-19 151/week @ 2024-03-26 102/week @ 2024-04-02 126/week @ 2024-04-09 182/week @ 2024-04-16 60/week @ 2024-04-23 16/week @ 2024-04-30 47/week @ 2024-05-07 14/week @ 2024-05-14 3/week @ 2024-06-11 86/week @ 2024-06-18

89 每月下载量

MIT/Apache

23KB
522 代码行

mcumgr-smp

实现SMP协议

该库定义了SMP消息格式以及编码和解码字节的方法。

此外,还提供了带有CBOR有效负载的常用请求和响应对象,用于应用管理、操作系统管理和shell管理。
欢迎贡献额外的消息定义。

通过手动创建SMPFrames,完全支持自定义消息。您甚至可以使用CBOR之外的负载编码。

示例

回声

// build an echo SMP message
let smp_frame: mcumgr_smp::SMPFrame = mcumgr_smp::os_management::echo(42, "Hello World");
// get frame as bytes
let data: Vec<u8> = smp_frame.encode_with_cbor();
// send frame and get response
// ...
let response_data = [3, 0, 0, 16, 0, 0, 66, 0, 191, 97, 114, 107, 72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 255];
let response: SMPFrame<EchoResult> = mcumgr_smp::SMPFrame::decode_with_cbor(&response_data).expect("decoding error");

println!("response payload: {:?}", response.data);

您也可以手动创建一个帧

let data = todo!(); // cbor payload of command, in this case a firmware chunk
let smp_frame = SMPFrame::new(
    mcumgr_smp::OpCode::WriteRequest,
    69,
    mcumgr_smp::Group::ApplicationManagement,
    mcumgr_smp::ApplicationManagementCommand::Upload as u8,
    data,
);

版权所有 (c) 2023 Gessler GmbH。

依赖项

~0.3–1MB
~22K SLoC