3个不稳定版本
0.7.1 | 2024年3月4日 |
---|---|
0.7.0 | 2024年3月2日 |
0.6.0 | 2021年3月3日 |
#1060 in 硬件支持
在 3 crate中使用
100KB
1.5K SLoC
flipdot-core
描述与Luminator翻字和LED标牌通信的核心类型。
对于标牌通信的基本任务,你可能想使用flipdot
crate中的高级API,而不是使用Sign
。
但是,flipdot_core
对于想要在比flipdot
crate更低的级别与标牌协议交互的crate或想要为flipdot
提供自己的SignBus
实现以供使用的crate来说很有用。
使用MAX3000 90 × 7侧标牌进行了测试。应该适用于任何使用7针圆形插头的翻字或LED标牌,但无法保证。
仅限于业余和教学目的。与Luminator没有任何关联。
使用方法
以下是一个直接在Message
级别与SignBus
交互而不是使用Sign
的示例
use flipdot_core::{Address, Message, Operation, SignBus, SignType, State};
// Assume we have a helper function to obtain a SignBus.
let mut bus: Box<dyn SignBus> = get_bus();
// Discover the sign and verify that is has not yet been configured.
let message = Message::Hello(Address(3));
let response = bus.process_message(message)?;
assert_eq!(Some(Message::ReportState(Address(3), State::Unconfigured)), response);
// Request that the sign receive the configuration data and verify that it acknowledges.
let message = Message::RequestOperation(Address(3), Operation::ReceiveConfig);
let response = bus.process_message(message)?;
assert_eq!(Some(Message::AckOperation(Address(3), Operation::ReceiveConfig)), response);
许可证
在MIT许可证下分发。
依赖关系
~2.6–4MB
~73K SLoC