1个不稳定版本
0.6.0 | 2023年12月7日 |
---|
#1512 在 嵌入式开发
89 每月下载量
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