#bus #luminator #flip-dot #lower-level

flipdot-core

描述与Luminator翻字和LED标牌通信的核心类型

3个不稳定版本

0.7.1 2024年3月4日
0.7.0 2024年3月2日
0.6.0 2021年3月3日

#1060 in 硬件支持


3 crate中使用

MIT 许可证

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