docs(serial): 更新 ScaleManager 类注释
- 同步典型用法为当前链式 start() 写法 - 职责说明补充 Channel 发送队列描述 - release() 说明补充"清空队列" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -29,37 +29,33 @@ import java.util.Locale
|
||||
import java.util.TimeZone
|
||||
|
||||
/**
|
||||
* 称重控制板协议管理器(SDK 入口)
|
||||
* 称重控制板管理器(单例入口)
|
||||
*
|
||||
* 职责:
|
||||
* - 管理串口连接(open/startReceive/release)
|
||||
* - 管理串口连接生命周期(start/release)
|
||||
* - 通过内部发送队列(Channel)保证指令按顺序写入串口
|
||||
* - 接收串口原始分片数据,自动拼装帧并分发到对应回调
|
||||
* - 内置各命令的自动应答逻辑(心跳/对时/卡号等)
|
||||
* - 提供链式回调注册、常用指令构建、资源释放
|
||||
* - 提供链式回调注册 和 常用指令构建
|
||||
*
|
||||
* 典型用法:
|
||||
* ```kotlin
|
||||
* // 初始化并注册回调
|
||||
* ScaleManager
|
||||
* .init(deviceId = App.deviceId, activateMap = ACTIVE_MAP)
|
||||
* .onHeartbeat { frame, data ->
|
||||
* data.weights.forEach { Log.d("Scale", "秤${it.index}: ${it.grams}g") }
|
||||
* }
|
||||
* .onLog { msg -> Log.d("Scale", msg) }
|
||||
*
|
||||
* // 打开串口并启动接收
|
||||
* lifecycleScope.launch {
|
||||
* if (ScaleManager.open()) {
|
||||
* ScaleManager.startReceive { data ->
|
||||
* // 主线程前置钩子,处理看门狗等副作用
|
||||
* ScaleManager
|
||||
* .init(activateCode = ACTIVE_MAP[deviceId] ?: "")
|
||||
* .onHeartbeat { _, data ->
|
||||
* data.weights.forEach { Log.d("Scale", "秤${it.index}: ${it.grams}g") }
|
||||
* }
|
||||
* .onLog { msg -> Log.d("Scale", msg) }
|
||||
* .start { data ->
|
||||
* // 主线程前置钩子,处理看门狗计时等副作用
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
*
|
||||
* // 主动发送指令
|
||||
* ScaleManager.sendCmd(ScaleManager.buildGetStatusCmd())
|
||||
*
|
||||
* // 页面销毁时释放
|
||||
* // 页面销毁时释放(关闭串口 + 清空队列 + 清理回调)
|
||||
* runBlocking { ScaleManager.release() }
|
||||
* ```
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user