1#![deny(missing_docs)]
2#![deny(unreachable_pub)]
3#![forbid(unsafe_code)]
4#![doc = include_str!("../README.md")]
5#![doc(issue_tracker_base_url = "https://github.com/Finomnis/mcumgr-toolkit/issues")]
6
7pub mod client;
9pub use client::MCUmgrClient;
10
11mod errno;
12pub use errno::Errno;
13
14pub mod commands;
16
17pub mod connection;
19
20pub mod transport;
22
23pub mod smp_errors;
25
26pub mod bootloader;
28
29pub mod mcuboot;
31
32#[derive(strum::FromRepr, strum::Display, Debug, Copy, Clone, PartialEq, Eq)]
34#[repr(u16)]
35#[allow(non_camel_case_types)]
36#[allow(missing_docs)]
37pub enum MCUmgrGroup {
38 MGMT_GROUP_ID_OS = 0,
39 MGMT_GROUP_ID_IMAGE,
40 MGMT_GROUP_ID_STAT,
41 MGMT_GROUP_ID_SETTINGS,
42 MGMT_GROUP_ID_LOG,
43 MGMT_GROUP_ID_CRASH,
44 MGMT_GROUP_ID_SPLIT,
45 MGMT_GROUP_ID_RUN,
46 MGMT_GROUP_ID_FS,
47 MGMT_GROUP_ID_SHELL,
48 MGMT_GROUP_ID_ENUM,
49 ZEPHYR_MGMT_GRP_BASIC = 63,
50 MGMT_GROUP_ID_PERUSER = 64,
51}
52
53impl MCUmgrGroup {
54 pub fn group_id_to_string(group_id: u16) -> String {
56 const PERUSER: MCUmgrGroup = MCUmgrGroup::MGMT_GROUP_ID_PERUSER;
57 if group_id < PERUSER as u16 {
58 if let Some(group_enum) = Self::from_repr(group_id) {
59 format!("{group_enum}")
60 } else {
61 format!("MGMT_GROUP_ID_UNKNOWN({group_id})")
62 }
63 } else {
64 format!("{PERUSER}({group_id})")
65 }
66 }
67}