feat: plugin-sdk同步Device类型 + example-plugin适配新Message变体

This commit is contained in:
showen
2026-03-13 06:58:28 +08:00
parent 2c14f5f04c
commit 48d1eeb7c4
4 changed files with 189 additions and 0 deletions

View File

@@ -65,3 +65,27 @@
- cargo check --workspace --all-targets 零 warning
- cargo test --workspace 全部通过73 个测试,新增 7 个)
- 测试覆盖了所有核心消息类型的序列化和 MockBackend 的基本行为
## 个人经验 (2026-03-13 SDK 同步)
- 完成 plugin-sdk 与主库 Device 类型同步任务
- 在 plugin-sdk/src/lib.rs 的 Message enum 中添加了三个新变体:
- DeviceCommand(DeviceCommand)
- DeviceResponse(DeviceResponse)
- DeviceEvent(DeviceEvent)
- 在 plugin-sdk 中定义了完整的 Device 相关类型(与主库保持一致):
- PixelFormat enum (RGBA8888, RGB888, RGB565)
- SensorType enum (Temperature, Humidity, Light, Proximity)
- TouchAction enum (Down, Move, Up)
- DeviceCapability enum (Display, Touch, Buttons, Audio, Battery, Backlight, Sensors, Framebuffer, GPIO)
- DeviceCommand enum (12 个变体,包括 GetDisplayInfo, SetBrightness, WriteFramebuffer 等)
- DeviceResponse enum (6 个变体,包括 DisplayInfo, SensorData, BatteryLevel 等)
- DeviceEvent enum (6 个变体,包括 TouchEvent, ButtonEvent, BatteryLow 等)
- 所有类型都派生了 Debug, Clone, Serialize, Deserialize, PartialEq与主库一致
- 添加了完整的中文文档注释
- 修复了 example-plugin 中的 match 穷尽性问题,添加了三个 Device 消息的处理分支
- cargo check --workspace --all-targets 零 warning
- cargo test --workspace 全部通过77 个测试)
- 经验总结:
- SDK 与主库的类型同步需要保持完全一致的派生宏和字段定义
- 添加新的 Message 变体后,需要检查所有现有插件的 match 表达式
- Rust 的穷尽性检查是很好的安全网,确保不会遗漏新增的消息类型