1 个不稳定版本
0.1.0 | 2021 年 7 月 11 日 |
---|
#12 in #ordering
在 mcp25625 中使用
13KB
347 行
vhrdcan
FrameId
检查 CAN 总线标识符,可以是 StandardId 或 ExtendedId。构造函数是 const fn,因此可以在编译时检查 ID 是否有效
const MOTOR_DRIVE_ID: FrameId = FrameId::new_extended(0x1).unwrap();
const EMERGENCY_STOP_ID: FrameId = FrameId::new_standard(0x0).unwrap();
RawFrameRef
包含 FrameId + 对 [u8] 切片的引用。可以用来创建一个帧,而无需复制数据。
RawFrame
包含 FrameId + 所有者 [u8; 8] 数组 + 长度以确定实际使用的字节数。
Frame
包含 RawFrame + 序列号。只能从 FramePool
安全创建,以保留消息顺序并避免各种错误,例如优先级反转(CAN 总线驱动程序也应仔细检查优先级反转,尤其是在它有几个发送缓冲区的情况下)。
FramePool
允许创建 Frame,同时保留它们的创建时间。
特质
Ord
、Hash
、hash32::Hash
、漂亮的 Debug
、Eq
、PartialEq
、Copy
、Clone
已实现。 Serialize
和 Deserialize
在 serialization
功能门后面。
依赖
~2MB
~52K SLoC