From 0eede1059c03a3a589f4cf692c144ecf331d92e8 Mon Sep 17 00:00:00 2001 From: mazengfei <331023091@qq.com> Date: Thu, 21 May 2026 13:54:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(serial):=20=E5=B0=81=E8=A3=85=20ScaleManag?= =?UTF-8?q?er=20=E6=9B=BF=E6=8D=A2=E7=8E=B0=E6=9C=89=E7=A7=A4=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增 SDK 核心类: - ScaleProtocolConstants:协议常量(命令字节、帧偏移) - ScaleFrameParser:分片拼装、帧解析、BCD重量解析(修复旧代码 hex 误用问题) - ScaleFrame / ScaleWeight / HeartbeatData / StatusData:数据模型 - ScaleManager:单例入口,支持链式回调注册、自动应答、指令构建 - ScaleFrameParserTest:基于实际抓包数据的单元测试 业务层替换: - HomeActivity:移除 SerialProtocolHandler/SerialFrameParser,改用 ScaleManager 回调 - BaseActivity:sendCmd() 保持调用 SerialPortManager,与 ScaleManager.sendAction 独立 - ShelfActivity:秤置零、获取状态指令改用 ScaleManager 构建方法 Co-Authored-By: Claude Sonnet 4.6 (1M context) --- .../shelves/activity/HomeActivity.kt | 75 ++- .../shelves/activity/ShelfActivity.kt | 10 +- .../intelligent/shelves/base/BaseActivity.kt | 2 +- .../shelves/serial/HeartbeatData.kt | 24 + .../intelligent/shelves/serial/ScaleFrame.kt | 42 ++ .../shelves/serial/ScaleFrameParser.kt | 294 ++++++++++ .../shelves/serial/ScaleManager.kt | 538 ++++++++++++++++++ .../shelves/serial/ScaleProtocolConstants.kt | 121 ++++ .../intelligent/shelves/serial/ScaleWeight.kt | 15 + .../intelligent/shelves/serial/StatusData.kt | 22 + .../shelves/serial/ScaleFrameParserTest.kt | 475 ++++++++++++++++ 秤心跳数据.md | 74 +++ 称重控制板接口协议.pdf | Bin 0 -> 301797 bytes 13 files changed, 1644 insertions(+), 48 deletions(-) create mode 100644 app/src/main/java/com/shuwei/intelligent/shelves/serial/HeartbeatData.kt create mode 100644 app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleFrame.kt create mode 100644 app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleFrameParser.kt create mode 100644 app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleManager.kt create mode 100644 app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleProtocolConstants.kt create mode 100644 app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleWeight.kt create mode 100644 app/src/main/java/com/shuwei/intelligent/shelves/serial/StatusData.kt create mode 100644 app/src/test/java/com/shuwei/intelligent/shelves/serial/ScaleFrameParserTest.kt create mode 100644 秤心跳数据.md create mode 100644 称重控制板接口协议.pdf diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/activity/HomeActivity.kt b/app/src/main/java/com/shuwei/intelligent/shelves/activity/HomeActivity.kt index 42d9670..0a042cd 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/activity/HomeActivity.kt +++ b/app/src/main/java/com/shuwei/intelligent/shelves/activity/HomeActivity.kt @@ -29,15 +29,11 @@ import com.shuwei.intelligent.shelves.net.Loading import com.shuwei.intelligent.shelves.net.NetViewModel import com.shuwei.intelligent.shelves.net.RespData import com.shuwei.intelligent.shelves.net.UiState +import com.shuwei.intelligent.shelves.serial.ProtocolConstants import com.shuwei.intelligent.shelves.serial.ProtocolConstants.C_TEMP_CMD -import com.shuwei.intelligent.shelves.serial.ProtocolConstants.FOOTER -import com.shuwei.intelligent.shelves.serial.ProtocolConstants.HEADER -import com.shuwei.intelligent.shelves.serial.ProtocolConstants.LEFT_SHELF_OPEN_CMD -import com.shuwei.intelligent.shelves.serial.ProtocolConstants.RIGHT_SHELF_OPEN_CMD import com.shuwei.intelligent.shelves.serial.ProtocolConstants.START_TEMP_CTRL_CMD -import com.shuwei.intelligent.shelves.serial.SerialFrameParser +import com.shuwei.intelligent.shelves.serial.ScaleManager import com.shuwei.intelligent.shelves.serial.SerialPortManager -import com.shuwei.intelligent.shelves.serial.SerialProtocolHandler import com.shuwei.intelligent.shelves.utils.GridLayoutTool import com.shuwei.intelligent.shelves.utils.IntervalExecutor import com.shuwei.intelligent.shelves.utils.ext.copyTextToClipboard @@ -80,41 +76,35 @@ class HomeActivity : BaseActivity() { private val viewModel: NetViewModel by viewModels() // 串口协议解析器,通过回调通知本 Activity - private val serialProtocolHandler = - SerialProtocolHandler(object : SerialProtocolHandler.Callback { - override fun onSendCmd(cmd: String) = sendCmd(cmd) - - override fun onWeightUpdated(shelfNo: Int, weight: Int) { - if (shelfNo in 1..list.size) { - list.firstOrNull { it.deviceNo == shelfNo }?.let { model -> - model.weight = weight.toDouble() - val pos = list.indexOf(model) - shelfAdapter.notifyItemChanged(pos) - log("getWeightInfo: deviceNo=${model.deviceNo},realWeight=$weight") - EventBus.getDefault().post(SendWeightEvent(model.deviceNo, weight)) + private fun initScaleManager() { + ScaleManager.instance + .init( + sendAction = { cmd -> + // ScaleManager 的自动应答(心跳/对时等)直接写串口,不经过 BaseActivity.sendCmd + lifecycleScope.launch { SerialPortManager.send(cmd) } + }, + deviceId = App.deviceId ?: "", + activateMap = ProtocolConstants.ACTIVE_MAP + ) + .onHeartbeat { _, data -> + data.weights.forEach { weight -> + val shelfNo = weight.index + if (shelfNo in 1..list.size) { + list.firstOrNull { it.deviceNo == shelfNo }?.let { model -> + model.weight = weight.grams.toDouble() + val pos = list.indexOf(model) + shelfAdapter.notifyItemChanged(pos) + log("getWeightInfo: deviceNo=${model.deviceNo},realWeight=${weight.grams}") + EventBus.getDefault().post(SendWeightEvent(model.deviceNo, weight.grams)) + } } } } - - override fun onTempReport(logMsg: String) { + .onTempReport { _ -> updateLeftStatus(deviceName) - log(logMsg) -// if (tipDialog == null) { -// tipDialog = CommonDialog(this@HomeActivity).apply { -// dialogTitle = "温馨提示" -// confirmBlock = { logMsg.copyTextToClipboard(this@HomeActivity) } -// } -// } -// if (tipDialog?.isShowing == false) { -// tipDialog?.dialogContent = logMsg -// tipDialog?.show() -// } } - - override fun onLog(message: String) = log(message) - }) - - private val serialFrameParser = SerialFrameParser() + .onLog { message -> log(message) } + } @SuppressLint("NotifyDataSetChanged") override fun onCreate(savedInstanceState: Bundle?) { @@ -129,6 +119,9 @@ class HomeActivity : BaseActivity() { updateLeftStatus("") initRecyclerView() + // 初始化 ScaleManager(串口初始化前注册回调) + initScaleManager() + // 串口初始化,独立协程,不阻塞网络状态监听 lifecycleScope.launch { val openState = SerialPortManager.open() @@ -262,8 +255,7 @@ class HomeActivity : BaseActivity() { // 重置无数据计时,并关闭已显示的超时提示弹窗 lastDataReceivedTime = System.currentTimeMillis() noDataWarningDialog?.takeIf { it.isShowing }?.dismiss() - val frame = serialFrameParser.parse(srcData) ?: return - serialProtocolHandler.handle(frame) + ScaleManager.instance.onDataReceived(srcData) } private var tipDialog: CommonDialog? = null @@ -318,6 +310,7 @@ class HomeActivity : BaseActivity() { noDataWarningDialog = null runBlocking { SerialPortManager.close() } + ScaleManager.instance.release() saveTaskJob?.cancel() overdueTaskJob?.cancel() EventBus.getDefault().unregister(this) @@ -340,10 +333,10 @@ class HomeActivity : BaseActivity() { lifecycleScope.launch { if (isNeedOpenLock()) { val openCmd = if (list[position].deviceNo in 1..5) - LEFT_SHELF_OPEN_CMD + ScaleManager.instance.buildOpenLock1Cmd() else - RIGHT_SHELF_OPEN_CMD - SerialPortManager.send(openCmd) + ScaleManager.instance.buildOpenLock2Cmd() + ScaleManager.instance.sendCmd(openCmd) } launch(Intent(this@HomeActivity, ShelfActivity::class.java).also { it.putExtra(ShelfActivity.SHELF_MODEL, list[position]) diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/activity/ShelfActivity.kt b/app/src/main/java/com/shuwei/intelligent/shelves/activity/ShelfActivity.kt index d69789c..778ab0d 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/activity/ShelfActivity.kt +++ b/app/src/main/java/com/shuwei/intelligent/shelves/activity/ShelfActivity.kt @@ -16,7 +16,7 @@ import com.chad.library.adapter4.util.setOnDebouncedItemClick import com.scwang.smart.refresh.layout.constant.RefreshState import com.shuwei.intelligent.shelves.App import com.shuwei.intelligent.shelves.R -import com.shuwei.intelligent.shelves.serial.ProtocolConstants +import com.shuwei.intelligent.shelves.serial.ScaleManager import com.shuwei.intelligent.shelves.adapter.SearchAdapter import com.shuwei.intelligent.shelves.base.BaseActivity import com.shuwei.intelligent.shelves.databinding.ActivityShelfBinding @@ -146,7 +146,7 @@ class ShelfActivity : BaseActivity() { //binding.tvFoodWeight.text = "0克" EventBus.getDefault().post(ClearShelfEvent(shelfModel!!.deviceNo, tempWeight)) } - sendCmd(ProtocolConstants.DEVICE_INFO_CMD) + sendCmd(ScaleManager.instance.buildGetStatusCmd()) lifecycleScope.launch { repeatOnLifecycle(Lifecycle.State.STARTED) { viewModel.getGoodsListUiState.collect { state -> @@ -359,9 +359,7 @@ class ShelfActivity : BaseActivity() { private fun clearZero() { lifecycleScope.launch { val shelfNo = shelfModel?.deviceNo ?: 0 - val hex = shelfNo.toString(16).padStart(2, '0').uppercase() - Log.d(TAG, "onCreate: hex=$hex") - val zeroClearingCmd = "${ProtocolConstants.HEADER}0401${hex}${ProtocolConstants.FOOTER}" + val zeroClearingCmd = ScaleManager.instance.buildScaleZeroCmd(shelfNo) log("编号${shelfNo}货架执行清零指令:${zeroClearingCmd}") sendCmd(zeroClearingCmd) // sendCmd( @@ -371,7 +369,7 @@ class ShelfActivity : BaseActivity() { realWeight = 0 // binding.tvFoodWeight.text = "${realWeight}克" - sendCmd(ProtocolConstants.DEVICE_INFO_CMD) + sendCmd(ScaleManager.instance.buildGetStatusCmd()) startTime = System.currentTimeMillis() Loading.show(this@ShelfActivity) window.decorView.postDelayed({ Loading.dismiss() }, 10000) diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/base/BaseActivity.kt b/app/src/main/java/com/shuwei/intelligent/shelves/base/BaseActivity.kt index 2d81626..5b624f5 100644 --- a/app/src/main/java/com/shuwei/intelligent/shelves/base/BaseActivity.kt +++ b/app/src/main/java/com/shuwei/intelligent/shelves/base/BaseActivity.kt @@ -214,7 +214,7 @@ open class BaseActivity : AppCompatActivity() { } - fun sendCmd(cmd:String) { + fun sendCmd(cmd: String) { lifecycleScope.launch { val result = SerialPortManager.send(cmd) log("发送命令${cmd}结果:${result}") diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/serial/HeartbeatData.kt b/app/src/main/java/com/shuwei/intelligent/shelves/serial/HeartbeatData.kt new file mode 100644 index 0000000..5b00051 --- /dev/null +++ b/app/src/main/java/com/shuwei/intelligent/shelves/serial/HeartbeatData.kt @@ -0,0 +1,24 @@ +package com.shuwei.intelligent.shelves.serial + +/** + * 心跳数据(命令 0x01 / 0x81,终端发起) + * + * @param scaleCount 秤的数量 + * @param weights 各台秤的重量列表,索引从1开始 + * @param simCardNo 物联卡号(20字节ASCII) + * @param lock1Door 锁1门状态:0-关 1-开 + * @param lock1Lock 锁1锁状态:0-关 1-开 + * @param lock2Door 锁2门状态:0-关 1-开 + * @param lock2Lock 锁2锁状态:0-关 1-开 + * @param temperature 温度值(原始字节,单位由温控器决定) + */ +data class HeartbeatData( + val scaleCount: Int, + val weights: List, + val simCardNo: String, + val lock1Door: Int, + val lock1Lock: Int, + val lock2Door: Int, + val lock2Lock: Int, + val temperature: Int +) diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleFrame.kt b/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleFrame.kt new file mode 100644 index 0000000..cc00a4c --- /dev/null +++ b/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleFrame.kt @@ -0,0 +1,42 @@ +package com.shuwei.intelligent.shelves.serial + +/** + * 协议帧通用数据结构 + * 每一帧解析后的原始信息,所有命令共用此结构 + * + * @param cmd 命令字节,对应 ScaleProtocolConstants.CMD_* 常量 + * @param flag 标志字节 + * @param rawBody 数据体原始字节(不含协议头尾、命令、标志、固定数据体) + * @param terminalId 终端ID(15字节),ASCII字符串 + * @param firmwareVersion 固件版本(5字节),ASCII字符串 + * @param cmdCount 命令次数 + */ +data class ScaleFrame( + val cmd: Byte, + val flag: Byte, + val rawBody: ByteArray, + val terminalId: String, + val firmwareVersion: String, + val cmdCount: Int +) { + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other !is ScaleFrame) return false + return cmd == other.cmd && + flag == other.flag && + rawBody.contentEquals(other.rawBody) && + terminalId == other.terminalId && + firmwareVersion == other.firmwareVersion && + cmdCount == other.cmdCount + } + + override fun hashCode(): Int { + var result = cmd.toInt() + result = 31 * result + flag.toInt() + result = 31 * result + rawBody.contentHashCode() + result = 31 * result + terminalId.hashCode() + result = 31 * result + firmwareVersion.hashCode() + result = 31 * result + cmdCount + return result + } +} diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleFrameParser.kt b/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleFrameParser.kt new file mode 100644 index 0000000..1849edc --- /dev/null +++ b/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleFrameParser.kt @@ -0,0 +1,294 @@ +package com.shuwei.intelligent.shelves.serial + +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.BODY_OFFSET +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.BYTES_PER_WEIGHT +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.FIRMWARE_VERSION_LEN +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.FIXED_BODY_LEN +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.FOOTER_HEX +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.FOOTER_LEN +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.HEADER_HEX +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.SIM_CARD_NO_LEN +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.TERMINAL_ID_LEN + +/** + * 协议帧组装与解析器 + * + * 职责一:将串口原始分片十六进制字符串拼装为完整协议帧 + * 职责二:将完整帧解析为 ScaleFrame,自动提取固定数据体字段 + * 职责三:提供心跳、状态等数据体的具体解析方法 + * 职责四:提供重量字节解析工具(BCD编码、小端序、最高位符号位) + * + * 设计为无业务依赖,可独立复制到其他项目使用 + */ +class ScaleFrameParser { + + /** 分片拼装缓冲区 */ + private val buffer = StringBuilder() + + // ---------------------------------------------------------------- + // 一、帧组装(串口分片 -> 完整帧十六进制字符串) + // ---------------------------------------------------------------- + + /** + * 追加串口原始分片数据,尝试拼装为完整帧 + * + * @param srcData 串口收到的原始十六进制字符串片段 + * @return 完整协议帧字符串;帧尚不完整时返回 null + */ + fun appendData(srcData: String): String? { + val hasHeader = srcData.contains(HEADER_HEX) + val hasFooter = srcData.contains(FOOTER_HEX) + return when { + hasHeader && hasFooter -> parseCompleteInSingleChunk(srcData) + hasHeader && !hasFooter -> { + // 只有帧头,等待后续分片 + buffer.clear() + buffer.append(srcData.substring(srcData.lastIndexOf(HEADER_HEX))).append(",") + null + } + !hasHeader && !hasFooter -> { + // 中间分片,追加缓冲 + buffer.append(srcData).append(",") + null + } + else -> { + // 只有帧尾,与缓冲区拼接成完整帧 + val endIndex = srcData.indexOf(FOOTER_HEX) + FOOTER_HEX.length + buffer.append(srcData.substring(0, endIndex)) + val frame = buffer.toString().replace(",", "") + buffer.clear() + frame.takeIf { it.isNotEmpty() } + } + } + } + + /** + * 处理单个分片中同时含有帧头和帧尾的情况 + */ + private fun parseCompleteInSingleChunk(srcData: String): String? { + buffer.clear() + val startIndex = srcData.lastIndexOf(HEADER_HEX) + val endIndex = srcData.indexOf(FOOTER_HEX) + FOOTER_HEX.length + return if (endIndex <= startIndex) { + // 帧尾在帧头之前:是上一帧的残留尾部 + 新帧头部 + val partial = srcData.substring(startIndex) + if (partial.contains(FOOTER_HEX)) { + val newEnd = partial.indexOf(FOOTER_HEX) + FOOTER_HEX.length + partial.substring(0, newEnd) + } else { + buffer.append(partial).append(",") + null + } + } else { + // 正常完整帧 + srcData.substring(startIndex, endIndex) + } + } + + /** 清空分片缓冲区 */ + fun reset() { + buffer.clear() + } + + // ---------------------------------------------------------------- + // 二、帧解析(完整帧十六进制字符串 -> ScaleFrame) + // ---------------------------------------------------------------- + + /** + * 解析完整协议帧为 ScaleFrame + * + * 帧结构:[协议头4] [CMD1] [FLAG1] [数据体N] [终端ID15] [固件版本5] [命令次数1] [协议尾2] + * + * @param hexFrame 完整帧十六进制字符串(含协议头尾) + * @return 解析成功返回 ScaleFrame;校验失败或格式错误返回 null + */ + fun parseFrame(hexFrame: String): ScaleFrame? { + // 最小帧:协议头(8) + cmd(2) + flag(2) + 固定数据体(42) + 协议尾(4) = 58 字符 + if (hexFrame.length < 58) return null + if (!hexFrame.startsWith(HEADER_HEX) || !hexFrame.endsWith(FOOTER_HEX)) return null + + return runCatching { + val bytes = hexFrame.hexToByteArray() + val totalLen = bytes.size + + val cmd = bytes[ScaleProtocolConstants.HEADER_LEN] + val flag = bytes[ScaleProtocolConstants.HEADER_LEN + 1] + + // 固定数据体位于协议尾之前 + val fixedBodyStart = totalLen - FOOTER_LEN - FIXED_BODY_LEN + if (fixedBodyStart < BODY_OFFSET) return null + + val fixedBody = bytes.copyOfRange(fixedBodyStart, totalLen - FOOTER_LEN) + + // 解析固定数据体三个字段 + val terminalId = String(fixedBody, 0, TERMINAL_ID_LEN, Charsets.US_ASCII) + val firmwareVersion = String(fixedBody, TERMINAL_ID_LEN, FIRMWARE_VERSION_LEN, Charsets.US_ASCII) + val cmdCount = fixedBody[TERMINAL_ID_LEN + FIRMWARE_VERSION_LEN].toInt() and 0xFF + + // 命令专属数据体(固定数据体和协议头尾之间的部分) + val rawBody = bytes.copyOfRange(BODY_OFFSET, fixedBodyStart) + + ScaleFrame( + cmd = cmd, + flag = flag, + rawBody = rawBody, + terminalId = terminalId, + firmwareVersion = firmwareVersion, + cmdCount = cmdCount + ) + }.getOrNull() + } + + // ---------------------------------------------------------------- + // 三、数据体解析 + // ---------------------------------------------------------------- + + /** + * 解析心跳数据体(命令 0x01 / 0x81,终端发起) + * + * rawBody 格式: + * [秤数量 1] [秤重量 N×4] [物联卡号 20] [锁1门 1] [锁1锁 1] [锁2门 1] [锁2锁 1] [温度 1] + * + * @param body ScaleFrame.rawBody + * @return 解析成功返回 HeartbeatData;数据不足返回 null + */ + fun parseHeartbeat(body: ByteArray): HeartbeatData? { + if (body.isEmpty()) return null + return runCatching { + var offset = 0 + + val scaleCount = body[offset++].toInt() and 0xFF + val minBodyLen = 1 + scaleCount * BYTES_PER_WEIGHT + SIM_CARD_NO_LEN + 4 + 1 + if (body.size < minBodyLen) return null + + val weights = (1..scaleCount).map { index -> + val grams = parseWeightBytes(body, offset) + offset += BYTES_PER_WEIGHT + ScaleWeight(index, grams) + } + + // 物联卡号:ASCII字符串,去除尾部空字符 + val simCardNo = String(body, offset, SIM_CARD_NO_LEN, Charsets.US_ASCII) + .trimEnd('\u0000').trim() + offset += SIM_CARD_NO_LEN + + val lock1Door = body[offset++].toInt() and 0xFF + val lock1Lock = body[offset++].toInt() and 0xFF + val lock2Door = body[offset++].toInt() and 0xFF + val lock2Lock = body[offset++].toInt() and 0xFF + val temperature = body[offset].toInt() and 0xFF + + HeartbeatData( + scaleCount = scaleCount, + weights = weights, + simCardNo = simCardNo, + lock1Door = lock1Door, + lock1Lock = lock1Lock, + lock2Door = lock2Door, + lock2Lock = lock2Lock, + temperature = temperature + ) + }.getOrNull() + } + + /** + * 解析获取状态响应数据体(命令 0x03,终端响应) + * + * rawBody 格式: + * [锁1锁 1] [锁1门 1] [锁2锁 1] [锁2门 1] [秤数量 1] [秤重量 N×4] [温度 1] + * + * @param body ScaleFrame.rawBody + * @return 解析成功返回 StatusData;数据不足返回 null + */ + fun parseStatus(body: ByteArray): StatusData? { + if (body.size < 6) return null + return runCatching { + var offset = 0 + + val lock1Lock = body[offset++].toInt() and 0xFF + val lock1Door = body[offset++].toInt() and 0xFF + val lock2Lock = body[offset++].toInt() and 0xFF + val lock2Door = body[offset++].toInt() and 0xFF + val scaleCount = body[offset++].toInt() and 0xFF + + val minBodyLen = 5 + scaleCount * BYTES_PER_WEIGHT + 1 + if (body.size < minBodyLen) return null + + val weights = (1..scaleCount).map { index -> + val grams = parseWeightBytes(body, offset) + offset += BYTES_PER_WEIGHT + ScaleWeight(index, grams) + } + + val temperature = body[offset].toInt() and 0xFF + + StatusData( + lock1Lock = lock1Lock, + lock1Door = lock1Door, + lock2Lock = lock2Lock, + lock2Door = lock2Door, + scaleCount = scaleCount, + weights = weights, + temperature = temperature + ) + }.getOrNull() + } + + // ---------------------------------------------------------------- + // 四、重量解析工具 + // ---------------------------------------------------------------- + + /** + * 解析4字节小端序重量数据 + * + * 编码规则(BCD + 小端序 + 最高位符号位): + * - 4字节小端序存储,低字节在前,高字节在后 + * - 高字节最高位(bit7)为符号位:0=正数,1=负数 + * - 其余位组成8位BCD十进制字符串,作为十进制整数读取,单位为克 + * + * 示例: + * [0x13, 0x10, 0x00, 0x00] → 大端序 "00001013" → 十进制 1013g = 1.013KG + * [0x13, 0x01, 0x02, 0x00] → 大端序 "00020113" → 十进制 2113g = 20.113KG(注:原例实为20113g,见下) + * [0x13, 0x10, 0x00, 0x80] → 大端序 "80001013" → 符号位=1 → 十进制 -1013g = -1.013KG + * + * 注意:大端序十六进制字符串按十进制解析(非十六进制),这是BCD编码的关键 + * + * @param bytes 字节数组 + * @param offset 起始偏移量(连续4字节) + * @return 重量(克),负数表示低于去皮零点 + */ + fun parseWeightBytes(bytes: ByteArray, offset: Int): Int { + val b0 = bytes[offset].toInt() and 0xFF // 最低字节 + val b1 = bytes[offset + 1].toInt() and 0xFF + val b2 = bytes[offset + 2].toInt() and 0xFF + val b3 = bytes[offset + 3].toInt() and 0xFF // 最高字节(含符号位) + + // 检查最高字节的最高位是否为1(负数标志) + val isNegative = (b3 and 0x80) != 0 + val b3Cleared = b3 and 0x7F // 清除符号位 + + // 构造大端序8位十六进制字符串 + val hexStr = "%02X%02X%02X%02X".format(b3Cleared, b2, b1, b0) + + // 将十六进制字符串作为十进制整数解析(BCD解码) + // "00001013" → toLong() = 1013,而非 toLong(16) = 4115 + val absValue = hexStr.toLongOrNull() ?: 0L + + return if (isNegative) -absValue.toInt() else absValue.toInt() + } + + // ---------------------------------------------------------------- + // 私有工具 + // ---------------------------------------------------------------- + + /** + * 十六进制字符串转字节数组 + * 例:"D6DADEDB" → [0xD6, 0xDA, 0xDE, 0xDB] + */ + private fun String.hexToByteArray(): ByteArray { + require(length % 2 == 0) { "十六进制字符串长度必须为偶数" } + return ByteArray(length / 2) { i -> + substring(i * 2, i * 2 + 2).toInt(16).toByte() + } + } +} diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleManager.kt b/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleManager.kt new file mode 100644 index 0000000..d64f3b8 --- /dev/null +++ b/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleManager.kt @@ -0,0 +1,538 @@ +package com.shuwei.intelligent.shelves.serial + +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.CMD_ACTIVATE +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.CMD_CARD_UPLOAD +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.CMD_GET_STATUS +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.CMD_HEARTBEAT +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.CMD_HEARTBEAT_STORE +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.CMD_OPERATION_RECORD +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.CMD_POSITION_REPORT +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.CMD_TEMP_REPORT +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.CMD_TIME_SYNC +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.CMD_UNLOCK +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.FOOTER_HEX +import com.shuwei.intelligent.shelves.serial.ScaleProtocolConstants.HEADER_HEX +import java.util.TimeZone + +/** + * 称重控制板协议管理器(SDK 入口) + * + * 职责: + * - 接收串口原始分片数据,自动拼装帧并分发到对应回调 + * - 内置各命令的自动应答逻辑(心跳/对时/卡号等) + * - 提供链式回调注册、常用指令构建、资源释放 + * + * 设计原则: + * - 不依赖具体串口实现,通过 init(sendAction) 注入发送函数 + * - 不依赖任何业务类,可直接复制到其他项目使用 + * - 非线程安全,建议在同一线程(如串口IO线程或主线程)中使用 + * + * 典型用法: + * ```kotlin + * // 初始化(Activity/Application中) + * ScaleManager.instance + * .init { hexStr -> scope.launch { SerialPortManager.send(hexStr) } } + * .onHeartbeat { frame, data -> + * data.weights.forEach { Log.d("Scale", "秤${it.index}: ${it.grams}g") } + * } + * .onStatus { frame, data -> + * Log.d("Scale", "锁1状态: ${data.lock1Lock}") + * } + * .onLog { msg -> Log.d("Scale", msg) } + * + * // 在串口数据回调中调用 + * ScaleManager.instance.onDataReceived(hexData) + * + * // 主动发送指令 + * ScaleManager.instance.sendCmd(ScaleManager.instance.buildGetStatusCmd()) + * + * // 页面销毁时释放回调(不影响其他页面注册的回调,若需完全释放则调用 release()) + * ``` + */ +class ScaleManager { + + companion object { + /** 默认单例,适用于单设备场景;多设备场景请自行实例化 */ + @JvmStatic + val instance: ScaleManager by lazy { ScaleManager() } + } + + private val parser = ScaleFrameParser() + private var sendAction: ((String) -> Unit)? = null + + /** 激活码映射表:key=deviceId,value=完整激活应答帧十六进制字符串 */ + private var activateMap: Map = emptyMap() + + /** 当前设备ID,用于激活码查表 */ + private var currentDeviceId: String = "" + + /** 心跳应答:心跳上报间隔(秒),默认5秒 */ + var heartbeatInterval: Int = 5 + + /** 心跳应答:开锁后未开门自动落锁时间(秒),默认6秒 */ + var lockTimeout: Int = 6 + + // 各命令监听列表 + private val heartbeatListeners = mutableListOf<(ScaleFrame, HeartbeatData) -> Unit>() + private val statusListeners = mutableListOf<(ScaleFrame, StatusData) -> Unit>() + private val lockListeners = mutableListOf<(ScaleFrame) -> Unit>() + private val cardListeners = mutableListOf<(ScaleFrame) -> Unit>() + private val operationListeners = mutableListOf<(ScaleFrame) -> Unit>() + private val timeSyncListeners = mutableListOf<(ScaleFrame) -> Unit>() + private val positionListeners = mutableListOf<(ScaleFrame) -> Unit>() + private val tempReportListeners = mutableListOf<(ScaleFrame) -> Unit>() + private val activateListeners = mutableListOf<(ScaleFrame) -> Unit>() + /** 任意命令的原始帧监听,用于协议中尚未提供专项解析的命令 */ + private val rawListeners = mutableMapOf Unit>>() + private val logListeners = mutableListOf<(String) -> Unit>() + + // ---------------------------------------------------------------- + // 初始化 + // ---------------------------------------------------------------- + + /** + * 初始化,注入串口发送函数与激活码映射表 + * + * @param sendAction 发送十六进制字符串指令的函数,在该函数内完成实际串口写入 + * @param deviceId 当前设备ID,用于激活码查表 + * @param activateMap 激活码映射表:key=deviceId,value=完整激活应答帧十六进制字符串; + * 传入后终端激活请求将由 SDK 内部自动应答,无需再注册 onActivate 回调 + * @return this,支持链式调用 + */ + fun init( + sendAction: (String) -> Unit, + deviceId: String = "", + activateMap: Map = emptyMap() + ): ScaleManager { + this.sendAction = sendAction + this.currentDeviceId = deviceId + this.activateMap = activateMap + return this + } + + // ---------------------------------------------------------------- + // 数据接收入口 + // ---------------------------------------------------------------- + + /** + * 接收串口原始数据(在串口回调中调用此方法) + * + * 内部自动完成分片拼装 → 帧解析 → 命令分发 → 自动应答 + * + * @param hexData 串口收到的十六进制字符串(可能为分片数据) + */ + fun onDataReceived(hexData: String) { + val completeFrame = parser.appendData(hexData) ?: return + val frame = parser.parseFrame(completeFrame) ?: run { + log("帧解析失败,原始数据:$completeFrame") + return + } + dispatch(frame, completeFrame) + } + + // ---------------------------------------------------------------- + // 回调注册(链式调用) + // ---------------------------------------------------------------- + + /** + * 注册心跳回调(命令 0x01 / 0x81,终端发起) + * 回调参数:[ScaleFrame 帧信息] [HeartbeatData 心跳数据(含重量、锁状态、温度)] + */ + fun onHeartbeat(listener: (ScaleFrame, HeartbeatData) -> Unit): ScaleManager { + heartbeatListeners.add(listener) + return this + } + + /** + * 注册获取状态回调(命令 0x03,服务端请求后终端响应) + * 回调参数:[ScaleFrame 帧信息] [StatusData 状态数据(含重量、锁状态、温度)] + */ + fun onStatus(listener: (ScaleFrame, StatusData) -> Unit): ScaleManager { + statusListeners.add(listener) + return this + } + + /** + * 注册开锁反馈回调(命令 0x02,终端发起,关门后上报) + * 回调参数:[ScaleFrame 帧信息],锁状态等信息在 ScaleFrame.rawBody 中 + */ + fun onLockFeedback(listener: (ScaleFrame) -> Unit): ScaleManager { + lockListeners.add(listener) + return this + } + + /** + * 注册卡号上发回调(命令 0x05,终端发起) + * 回调参数:[ScaleFrame 帧信息],卡号等信息在 ScaleFrame.rawBody 中 + */ + fun onCardUpload(listener: (ScaleFrame) -> Unit): ScaleManager { + cardListeners.add(listener) + return this + } + + /** + * 注册操作记录上传回调(命令 0x0B,终端发起) + * 回调参数:[ScaleFrame 帧信息],操作记录在 ScaleFrame.rawBody 中 + */ + fun onOperationRecord(listener: (ScaleFrame) -> Unit): ScaleManager { + operationListeners.add(listener) + return this + } + + /** + * 注册对时回调(命令 0x0C,终端发起) + * 管理器已自动回复当前时间戳,此回调用于业务侧感知对时事件 + */ + fun onTimeSync(listener: (ScaleFrame) -> Unit): ScaleManager { + timeSyncListeners.add(listener) + return this + } + + /** + * 注册终端位置上报回调(命令 0x0E,终端发起,仅4G版本) + * 回调参数:[ScaleFrame 帧信息],基站信息(MCC/MNC/LAC/CI)在 ScaleFrame.rawBody 中 + */ + fun onPositionReport(listener: (ScaleFrame) -> Unit): ScaleManager { + positionListeners.add(listener) + return this + } + + /** + * 注册温控信息上报回调(命令 0x10,终端发起) + * 回调参数:[ScaleFrame 帧信息],寄存器内容在 ScaleFrame.rawBody 中 + */ + fun onTempReport(listener: (ScaleFrame) -> Unit): ScaleManager { + tempReportListeners.add(listener) + return this + } + + /** + * 注册终端激活回调(命令 0x00,终端发起) + * 注意:激活应答(含激活码)需在此回调中手动调用 sendCmd() 发送 + */ + fun onActivate(listener: (ScaleFrame) -> Unit): ScaleManager { + activateListeners.add(listener) + return this + } + + /** + * 注册任意命令的原始帧监听(用于协议中尚未专项解析的命令,或扩展监听) + * + * @param cmd 命令字节,对应 ScaleProtocolConstants.CMD_* 常量 + */ + fun onRawFrame(cmd: Byte, listener: (ScaleFrame) -> Unit): ScaleManager { + rawListeners.getOrPut(cmd) { mutableListOf() }.add(listener) + return this + } + + /** + * 注册日志回调,所有内部日志通过此回调输出 + */ + fun onLog(listener: (String) -> Unit): ScaleManager { + logListeners.add(listener) + return this + } + + // ---------------------------------------------------------------- + // 发送指令 + // ---------------------------------------------------------------- + + /** + * 发送十六进制字符串指令(需先调用 init() 注入发送函数) + * + * @param hexStr 完整帧十六进制字符串,含协议头尾 + */ + fun sendCmd(hexStr: String) { + val action = sendAction ?: run { + log("警告:ScaleManager 尚未初始化,请先调用 init(sendAction)") + return + } + action(hexStr) + } + + // ---------------------------------------------------------------- + // 常用指令构建 + // ---------------------------------------------------------------- + + /** + * 构建获取设备状态指令 + * 协议:CMD=03 FLAG=01 [预留12字节] + */ + fun buildGetStatusCmd(): String = + "${HEADER_HEX}0301${"00".repeat(12)}${FOOTER_HEX}" + + /** + * 构建开锁/控制指令 + * + * @param lock1 锁1操作:1=开 0=关 其他值(如0xFF)=不动作 + * @param lock2 锁2操作:1=开 0=关 其他值=不动作 + * @param relay1 继电器1:1=开 0=关 其他值=不动作 + * @param relay2 继电器2:1=开 0=关 其他值=不动作 + * @param relay3 继电器3:1=开 0=关 其他值=不动作 + * @param orderId 订单号,超出14字节截断,不足补零 + */ + fun buildUnlockCmd( + lock1: Int = 0xFF, + lock2: Int = 0xFF, + relay1: Int = 0xFF, + relay2: Int = 0xFF, + relay3: Int = 0xFF, + orderId: String = "" + ): String { + val orderBytes = orderId.toByteArray(Charsets.US_ASCII).copyOf(14) + val orderHex = orderBytes.joinToString("") { "%02X".format(it) } + return "${HEADER_HEX}0201" + + "%02X%02X%02X%02X%02X".format(lock1 and 0xFF, lock2 and 0xFF, relay1 and 0xFF, relay2 and 0xFF, relay3 and 0xFF) + + orderHex + + FOOTER_HEX + } + + /** + * 构建开锁1指令(左门) + * @param orderId 订单号,可选 + */ + fun buildOpenLock1Cmd(orderId: String = ""): String = + buildUnlockCmd(lock1 = 1, lock2 = 0xFF, relay1 = 0xFF, relay2 = 0xFF, relay3 = 0xFF, orderId = orderId) + + /** + * 构建开锁2指令(右门) + * @param orderId 订单号,可选 + */ + fun buildOpenLock2Cmd(orderId: String = ""): String = + buildUnlockCmd(lock1 = 0xFF, lock2 = 1, relay1 = 0xFF, relay2 = 0xFF, relay3 = 0xFF, orderId = orderId) + + /** + * 构建秤置零指令 + * 协议:CMD=04 FLAG=01 [秤号1字节] + * + * @param scaleIndex 秤号,从1开始 + */ + fun buildScaleZeroCmd(scaleIndex: Int): String = + "${HEADER_HEX}0401%02X${FOOTER_HEX}".format(scaleIndex and 0xFF) + + /** + * 构建秤标定指令 + * 协议:CMD=06 FLAG=01 [秤号1字节] [砝码值4字节小端序] + * + * @param scaleIndex 秤号,从1开始 + * @param weightGrams 砝码重量(克),如10kg砝码传入10000 + */ + fun buildScaleCalibrateCmd(scaleIndex: Int, weightGrams: Int): String { + // 砝码值转小端序4字节(BCD编码:克数按十进制写入十六进制位) + val weightHex = "%08d".format(weightGrams) // BCD:十进制值直接作为十六进制字符串 + val leHex = weightHex.chunked(2).reversed().joinToString("") + return "${HEADER_HEX}0601%02X${leHex}${FOOTER_HEX}".format(scaleIndex and 0xFF) + } + + /** + * 构建温控器控制指令 + * 协议:CMD=0F FLAG=01 [操作编码1字节] [设定值2字节] + * + * @param opCode 操作编码(参考温控器说明书) + * @param setValue 设定值 + */ + fun buildTempCtrlCmd(opCode: Int, setValue: Int): String = + "${HEADER_HEX}0F01%02X%04X${FOOTER_HEX}".format(opCode and 0xFF, setValue and 0xFFFF) + + /** + * 构建临时参数设置指令 + * 协议:CMD=11 FLAG=01 [参数编码1字节] [设定值1字节] + * + * @param paramCode 参数编码(1=关门语音触发条件 2=未关门语音提示 3=锁常开设置) + * @param value 设定值 + */ + fun buildTempParamSetCmd(paramCode: Int, value: Int): String = + "${HEADER_HEX}1101%02X%02X${FOOTER_HEX}".format(paramCode and 0xFF, value and 0xFF) + + // ---------------------------------------------------------------- + // 资源释放 + // ---------------------------------------------------------------- + + /** + * 释放所有资源:清空回调列表、发送函数及帧缓冲 + * 通常在 Activity/Fragment 销毁或不再使用时调用 + */ + fun release() { + heartbeatListeners.clear() + statusListeners.clear() + lockListeners.clear() + cardListeners.clear() + operationListeners.clear() + timeSyncListeners.clear() + positionListeners.clear() + tempReportListeners.clear() + activateListeners.clear() + rawListeners.clear() + logListeners.clear() + sendAction = null + activateMap = emptyMap() + currentDeviceId = "" + parser.reset() + } + + // ---------------------------------------------------------------- + // 内部命令分发与自动应答 + // ---------------------------------------------------------------- + + private fun dispatch(frame: ScaleFrame, rawHex: String) { + when (frame.cmd) { + CMD_ACTIVATE -> handleActivate(frame, rawHex) + CMD_HEARTBEAT, + CMD_HEARTBEAT_STORE -> handleHeartbeat(frame, rawHex) + CMD_UNLOCK -> handleLockFeedback(frame, rawHex) + CMD_GET_STATUS -> handleStatus(frame, rawHex) + CMD_CARD_UPLOAD -> handleCardUpload(frame, rawHex) + CMD_OPERATION_RECORD -> handleOperationRecord(frame, rawHex) + CMD_TIME_SYNC -> handleTimeSync(frame, rawHex) + CMD_POSITION_REPORT -> handlePositionReport(frame, rawHex) + CMD_TEMP_REPORT -> handleTempReport(frame, rawHex) + else -> { + rawListeners[frame.cmd]?.forEach { it(frame) } + log("收到未处理命令:0x%02X,终端ID:${frame.terminalId},原始数据:$rawHex".format(frame.cmd)) + } + } + } + + /** + * 处理终端激活(CMD=0x00) + * 若 activateMap 中存在当前 deviceId 对应的激活码,则自动应答; + * 否则仍回调 onActivate,由业务方自行处理 + */ + private fun handleActivate(frame: ScaleFrame, rawHex: String) { + log("收到[终端激活]指令,终端ID:${frame.terminalId},固件版本:${frame.firmwareVersion},原始数据:$rawHex") + val activeCmd = activateMap[currentDeviceId] + if (!activeCmd.isNullOrBlank()) { + sendCmd(activeCmd) + log("激活码自动应答:$activeCmd") + } + activateListeners.forEach { it(frame) } + rawListeners[frame.cmd]?.forEach { it(frame) } + } + + /** + * 处理心跳(CMD=0x01 / 0x81) + * 自动应答:[心跳间隔] [上锁时间] [设备固件版本5字节] + */ + private fun handleHeartbeat(frame: ScaleFrame, rawHex: String) { + val firmwareHex = frame.firmwareVersion.toAsciiHex() + val resp = "${HEADER_HEX}0102%02X%02X${firmwareHex}${FOOTER_HEX}".format( + heartbeatInterval and 0xFF, + lockTimeout and 0xFF + ) + sendCmd(resp) + + val data = parser.parseHeartbeat(frame.rawBody) + if (data != null) { + heartbeatListeners.forEach { it(frame, data) } + } + rawListeners[frame.cmd]?.forEach { it(frame) } + log("收到[心跳]指令,终端ID:${frame.terminalId},秤数量:${data?.scaleCount ?: 0},原始数据:$rawHex") + } + + /** + * 处理开锁反馈(CMD=0x02,终端发起,关门后上报) + * 自动应答:[锁号00] [终端ID 15字节] [固件版本 5字节] + */ + private fun handleLockFeedback(frame: ScaleFrame, rawHex: String) { + val terminalIdHex = frame.terminalId.toAsciiHex() + val firmwareHex = frame.firmwareVersion.toAsciiHex() + val resp = "${HEADER_HEX}020200${terminalIdHex}${firmwareHex}${FOOTER_HEX}" + sendCmd(resp) + lockListeners.forEach { it(frame) } + rawListeners[frame.cmd]?.forEach { it(frame) } + log("收到[开锁反馈]指令,终端ID:${frame.terminalId},原始数据:$rawHex") + } + + /** + * 处理获取状态响应(CMD=0x03,终端响应) + * 无需应答,直接解析并分发 + */ + private fun handleStatus(frame: ScaleFrame, rawHex: String) { + val data = parser.parseStatus(frame.rawBody) + if (data != null) { + statusListeners.forEach { it(frame, data) } + } + rawListeners[frame.cmd]?.forEach { it(frame) } + log("收到[获取状态]响应,终端ID:${frame.terminalId},秤数量:${data?.scaleCount ?: 0},原始数据:$rawHex") + } + + /** + * 处理卡号上发(CMD=0x05,终端发起) + * 自动应答:成功 0x03 + */ + private fun handleCardUpload(frame: ScaleFrame, rawHex: String) { + val resp = "${HEADER_HEX}050203${FOOTER_HEX}" + sendCmd(resp) + cardListeners.forEach { it(frame) } + rawListeners[frame.cmd]?.forEach { it(frame) } + log("收到[卡号上发]指令,终端ID:${frame.terminalId},原始数据:$rawHex") + } + + /** + * 处理操作记录上传(CMD=0x0B,终端发起) + * 自动应答:成功 0x03 + */ + private fun handleOperationRecord(frame: ScaleFrame, rawHex: String) { + val resp = "${HEADER_HEX}0B0203${FOOTER_HEX}" + sendCmd(resp) + operationListeners.forEach { it(frame) } + rawListeners[frame.cmd]?.forEach { it(frame) } + log("收到[操作记录上传]指令,终端ID:${frame.terminalId},原始数据:$rawHex") + } + + /** + * 处理对时请求(CMD=0x0C,终端发起,仅以太网版本) + * 自动应答:当前 Unix 时间戳(含时区偏移),小端序4字节 + */ + private fun handleTimeSync(frame: ScaleFrame, rawHex: String) { + val nowMs = System.currentTimeMillis() + val timeSec = nowMs / 1000 + TimeZone.getDefault().getOffset(nowMs) / 1000 + // 取低32位,转为小端序4字节十六进制 + val timeHex = "%08X".format(timeSec.toInt()) + .chunked(2).reversed().joinToString("") + val resp = "${HEADER_HEX}0C02${timeHex}${FOOTER_HEX}" + sendCmd(resp) + timeSyncListeners.forEach { it(frame) } + rawListeners[frame.cmd]?.forEach { it(frame) } + log("收到[对时]请求,终端ID:${frame.terminalId},时间戳:${timeSec},应答:$resp") + } + + /** + * 处理终端位置上报(CMD=0x0E,终端发起,仅4G版本) + * 自动应答:保留字节 0x00 + */ + private fun handlePositionReport(frame: ScaleFrame, rawHex: String) { + val resp = "${HEADER_HEX}0E0200${FOOTER_HEX}" + sendCmd(resp) + positionListeners.forEach { it(frame) } + rawListeners[frame.cmd]?.forEach { it(frame) } + log("收到[终端位置上报]指令,终端ID:${frame.terminalId},原始数据:$rawHex") + } + + /** + * 处理温控信息上报(CMD=0x10,终端发起) + * 自动应答:保留字节 0x00 + */ + private fun handleTempReport(frame: ScaleFrame, rawHex: String) { + val resp = "${HEADER_HEX}100200${FOOTER_HEX}" + sendCmd(resp) + tempReportListeners.forEach { it(frame) } + rawListeners[frame.cmd]?.forEach { it(frame) } + log("收到[温控信息上报]指令,终端ID:${frame.terminalId},原始数据:$rawHex") + } + + // ---------------------------------------------------------------- + // 私有工具 + // ---------------------------------------------------------------- + + private fun log(message: String) { + logListeners.forEach { it(message) } + } + + /** + * 将 ASCII 字符串转为十六进制字符串,用于指令构造 + * 例:"V2.10" → "56322E3130" + */ + private fun String.toAsciiHex(): String = + toByteArray(Charsets.US_ASCII).joinToString("") { "%02X".format(it) } +} diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleProtocolConstants.kt b/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleProtocolConstants.kt new file mode 100644 index 0000000..f32d3f4 --- /dev/null +++ b/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleProtocolConstants.kt @@ -0,0 +1,121 @@ +package com.shuwei.intelligent.shelves.serial + +/** + * 称重控制板接口协议常量 + * 统一管理协议头尾、所有命令字节及帧结构偏移量 + * 设计为独立常量对象,不依赖任何业务类,可复制到其他项目直接使用 + */ +object ScaleProtocolConstants { + + // ---------------------------------------------------------------- + // 协议头尾 + // ---------------------------------------------------------------- + + /** 协议头字节数组 */ + val HEADER: ByteArray = byteArrayOf(0xD6.toByte(), 0xDA.toByte(), 0xDE.toByte(), 0xDB.toByte()) + + /** 协议头十六进制字符串 */ + const val HEADER_HEX: String = "D6DADEDB" + + /** 协议尾字节数组 */ + val FOOTER: ByteArray = byteArrayOf(0xFF.toByte(), 0xFF.toByte()) + + /** 协议尾十六进制字符串 */ + const val FOOTER_HEX: String = "FFFF" + + // ---------------------------------------------------------------- + // 命令字节(cmd 字段,1字节) + // 发起方说明:终端=秤控制板主动上报;服务端=Android端主动发送 + // ---------------------------------------------------------------- + + /** 0x00 终端激活(终端发起) */ + const val CMD_ACTIVATE: Byte = 0x00 + + /** 0x01 心跳(终端发起) */ + const val CMD_HEARTBEAT: Byte = 0x01 + + /** 0x81 心跳(终端发起,需存储串口屏显示信息) */ + const val CMD_HEARTBEAT_STORE: Byte = 0x81.toByte() + + /** 0x02 开锁(服务端发起) */ + const val CMD_UNLOCK: Byte = 0x02 + + /** 0x03 获取状态(服务端发起) */ + const val CMD_GET_STATUS: Byte = 0x03 + + /** 0x04 秤置零(服务端发起) */ + const val CMD_SCALE_ZERO: Byte = 0x04 + + /** 0x05 卡号上发(终端发起) */ + const val CMD_CARD_UPLOAD: Byte = 0x05 + + /** 0x06 秤标定(服务端发起) */ + const val CMD_SCALE_CALIBRATE: Byte = 0x06 + + /** 0x07 价签设置(服务端发起) */ + const val CMD_PRICE_TAG_SET: Byte = 0x07 + + /** 0x08 串口屏(服务端发起) */ + const val CMD_SERIAL_SCREEN: Byte = 0x08 + + /** 0x09 语音播报(服务端发起) */ + const val CMD_VOICE_BROADCAST: Byte = 0x09 + + /** 0x0A 价签(第二块串口屏/透传)设置(服务端发起) */ + const val CMD_PRICE_TAG_SET2: Byte = 0x0A + + /** 0x0B 操作记录上传(终端发起) */ + const val CMD_OPERATION_RECORD: Byte = 0x0B + + /** 0x0C 对时(终端发起) */ + const val CMD_TIME_SYNC: Byte = 0x0C + + /** 0x0E 终端位置上报(终端发起) */ + const val CMD_POSITION_REPORT: Byte = 0x0E + + /** 0x0F 温控器控制(服务端发起) */ + const val CMD_TEMP_CTRL: Byte = 0x0F + + /** 0x10 温控信息上报(终端发起) */ + const val CMD_TEMP_REPORT: Byte = 0x10 + + /** 0x11 临时参数设置(服务端发起) */ + const val CMD_TEMP_PARAM_SET: Byte = 0x11 + + // ---------------------------------------------------------------- + // 帧结构固定偏移量(单位:字节) + // ---------------------------------------------------------------- + + /** 协议头长度 */ + const val HEADER_LEN: Int = 4 + + /** 命令字段长度 */ + const val CMD_LEN: Int = 1 + + /** 标志字段长度 */ + const val FLAG_LEN: Int = 1 + + /** 数据体起始偏移(协议头 + 命令 + 标志) */ + const val BODY_OFFSET: Int = HEADER_LEN + CMD_LEN + FLAG_LEN + + /** 协议尾长度 */ + const val FOOTER_LEN: Int = 2 + + /** 单台秤重量字节数 */ + const val BYTES_PER_WEIGHT: Int = 4 + + /** 物联卡号字节数 */ + const val SIM_CARD_NO_LEN: Int = 20 + + /** 固定数据体:终端ID字节数 */ + const val TERMINAL_ID_LEN: Int = 15 + + /** 固定数据体:固件版本字节数 */ + const val FIRMWARE_VERSION_LEN: Int = 5 + + /** 固定数据体:命令次数字节数 */ + const val CMD_COUNT_LEN: Int = 1 + + /** 固定数据体总长度(终端ID + 固件版本 + 命令次数) */ + const val FIXED_BODY_LEN: Int = TERMINAL_ID_LEN + FIRMWARE_VERSION_LEN + CMD_COUNT_LEN +} diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleWeight.kt b/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleWeight.kt new file mode 100644 index 0000000..20bdccb --- /dev/null +++ b/app/src/main/java/com/shuwei/intelligent/shelves/serial/ScaleWeight.kt @@ -0,0 +1,15 @@ +package com.shuwei.intelligent.shelves.serial + +/** + * 单台秤的重量数据 + * + * @param index 秤的编号,从1开始 + * @param grams 重量,单位克,负数表示去皮/负重 + */ +data class ScaleWeight( + val index: Int, + val grams: Int +) { + /** 重量转换为千克,保留3位小数 */ + val kg: Double get() = grams / 1000.0 +} diff --git a/app/src/main/java/com/shuwei/intelligent/shelves/serial/StatusData.kt b/app/src/main/java/com/shuwei/intelligent/shelves/serial/StatusData.kt new file mode 100644 index 0000000..7818c48 --- /dev/null +++ b/app/src/main/java/com/shuwei/intelligent/shelves/serial/StatusData.kt @@ -0,0 +1,22 @@ +package com.shuwei.intelligent.shelves.serial + +/** + * 获取设备状态数据(命令 0x03,服务端发起后终端响应) + * + * @param lock1Lock 锁1锁状态:0-关 1-开 + * @param lock1Door 锁1门状态:0-关 1-开 + * @param lock2Lock 锁2锁状态:0-关 1-开 + * @param lock2Door 锁2门状态:0-关 1-开 + * @param scaleCount 秤的数量 + * @param weights 各台秤的重量列表,索引从1开始 + * @param temperature 温度值(原始字节,单位由温控器决定) + */ +data class StatusData( + val lock1Lock: Int, + val lock1Door: Int, + val lock2Lock: Int, + val lock2Door: Int, + val scaleCount: Int, + val weights: List, + val temperature: Int +) diff --git a/app/src/test/java/com/shuwei/intelligent/shelves/serial/ScaleFrameParserTest.kt b/app/src/test/java/com/shuwei/intelligent/shelves/serial/ScaleFrameParserTest.kt new file mode 100644 index 0000000..c57f8f1 --- /dev/null +++ b/app/src/test/java/com/shuwei/intelligent/shelves/serial/ScaleFrameParserTest.kt @@ -0,0 +1,475 @@ +package com.shuwei.intelligent.shelves.serial + +import org.junit.Assert.* +import org.junit.Before +import org.junit.Test + +/** + * ScaleFrameParser 单元测试 + * + * 测试数据来源:秤心跳数据.md 中的实际抓包数据 + * 关键验证点:重量使用 BCD 解码(而非十六进制),与旧代码存在差异 + */ +class ScaleFrameParserTest { + + private lateinit var parser: ScaleFrameParser + + // ---------------------------------------------------------------- + // 测试数据常量(来自 秤心跳数据.md) + // ---------------------------------------------------------------- + + /** 旧设备(12台秤)心跳帧1 */ + private val OLD_HEARTBEAT_1 = + "D6DADEDB01010C0000000008000000020000800100008000000000010000800500008001000080030000800200008099180080721800800000000000000000000000000000000000000000010101015037414645333633333334333731373056322E313007FFFF" + + /** 旧设备(12台秤)心跳帧2 */ + private val OLD_HEARTBEAT_2 = + "D6DADEDB01010C0900000027170000122500007511000001000000090000001100000012000000430000000800008000150080591500800000000000000000000000000000000000000000010100005031323136334238423134303233303456322E313112FFFF" + + /** 新设备(24台秤)心跳帧1 */ + private val NEW_HEARTBEAT_1 = + "D6DADEDB0101189322000000000000053300001534000079230000611100000000000007000080030000000300000004000080010000000100008003000000180600004214008083130080741200800115008066130080501400800411008033120080631600800000000000000000000000000000000000000000010101015031463137334238423134303233303456322E313130FFFF" + + /** 旧设备(12台秤)获取状态响应 */ + private val OLD_STATUS = + "D6DADEDB0302010100000C1100000027170000122500007711000001000000110000001300000012000000430000001000008000150080441500805031323136334238423134303233303456322E313113FFFF" + + /** 新设备(24台秤)获取状态响应 */ + private val NEW_STATUS = + "D6DADEDB030201010101181422000037110000783100009033000054000080100000000100000028240000070000000100008006000080030000801806000009000000461100004014008081130080721200800115008064130080501400809810008033120080651600805031463137334238423134303233303456322E31314AFFFF" + + @Before + fun setUp() { + parser = ScaleFrameParser() + } + + // ================================================================ + // 一、重量 BCD 解析测试 + // ================================================================ + + /** + * 协议文档示例:13 10 00 00 = 1.013KG = 1013g + * 旧代码(hex):0x1013 = 4115g ← 错误 + * 新代码(BCD):"00001013".toLong() = 1013g ← 正确 + */ + @Test + fun testWeight_protocolExample_1013g() { + val bytes = byteArrayOf(0x13, 0x10, 0x00, 0x00) + val result = parser.parseWeightBytes(bytes, 0) + assertEquals("协议示例 1.013KG 解析错误", 1013, result) + } + + /** + * 协议文档示例:13 01 02 00 = 20.113KG = 20113g + * 旧代码(hex):0x20113 = 131347... 越界 ← 错误 + * 新代码(BCD):"00020113".toLong() = 20113g ← 正确 + */ + @Test + fun testWeight_protocolExample_20113g() { + val bytes = byteArrayOf(0x13, 0x01, 0x02, 0x00) + val result = parser.parseWeightBytes(bytes, 0) + assertEquals("协议示例 20.113KG 解析错误", 20113, result) + } + + /** + * 协议文档示例:13 10 00 80 = -1.013KG = -1013g(负数,最高位为1) + */ + @Test + fun testWeight_protocolExample_negative_1013g() { + val bytes = byteArrayOf(0x13, 0x10, 0x00, 0x80.toByte()) + val result = parser.parseWeightBytes(bytes, 0) + assertEquals("协议示例 -1.013KG 解析错误", -1013, result) + } + + /** 零重量 */ + @Test + fun testWeight_zero() { + val bytes = byteArrayOf(0x00, 0x00, 0x00, 0x00) + assertEquals(0, parser.parseWeightBytes(bytes, 0)) + } + + /** + * 实际心跳数据:08 00 00 00 = 8g(正数,小值时 BCD 与 hex 相同) + */ + @Test + fun testWeight_actual_8g() { + val bytes = byteArrayOf(0x08, 0x00, 0x00, 0x00) + assertEquals(8, parser.parseWeightBytes(bytes, 0)) + } + + /** + * 实际心跳数据:02 00 00 80 = -2g(负数小值) + */ + @Test + fun testWeight_actual_negative_2g() { + val bytes = byteArrayOf(0x02, 0x00, 0x00, 0x80.toByte()) + assertEquals(-2, parser.parseWeightBytes(bytes, 0)) + } + + /** + * 实际心跳数据:99 18 00 80 = -1899g + * 旧代码(hex):-0x1899 = -6297g ← 错误(差3倍多) + * 新代码(BCD):-1899g ← 正确(约1.9KG货物) + */ + @Test + fun testWeight_actual_negative_1899g() { + val bytes = byteArrayOf(0x99.toByte(), 0x18, 0x00, 0x80.toByte()) + val result = parser.parseWeightBytes(bytes, 0) + assertEquals("心跳数据 -1899g 解析错误,旧代码会给出 -6297g", -1899, result) + } + + /** + * 实际心跳数据:72 18 00 80 = -1872g + * 旧代码(hex):-0x1872 = -6258g ← 错误 + * 新代码(BCD):-1872g ← 正确 + */ + @Test + fun testWeight_actual_negative_1872g() { + val bytes = byteArrayOf(0x72, 0x18, 0x00, 0x80.toByte()) + assertEquals(-1872, parser.parseWeightBytes(bytes, 0)) + } + + /** + * 实际状态数据:27 17 00 00 = 1727g + * 旧代码(hex):0x1727 = 5927g ← 错误(3.4倍) + * 新代码(BCD):1727g ← 正确(约1.7KG货物,合理) + */ + @Test + fun testWeight_actual_1727g() { + val bytes = byteArrayOf(0x27, 0x17, 0x00, 0x00) + val result = parser.parseWeightBytes(bytes, 0) + assertEquals("状态数据 1727g 解析错误,旧代码会给出 5927g", 1727, result) + } + + /** + * 实际状态数据:12 25 00 00 = 2512g + * 旧代码(hex):0x2512 = 9490g ← 错误 + * 新代码(BCD):2512g ← 正确 + */ + @Test + fun testWeight_actual_2512g() { + val bytes = byteArrayOf(0x12, 0x25, 0x00, 0x00) + assertEquals(2512, parser.parseWeightBytes(bytes, 0)) + } + + /** 验证 offset 参数:从字节数组中间某位置解析 */ + @Test + fun testWeight_withOffset() { + val bytes = byteArrayOf( + 0x00, 0x00, // 前缀,不参与解析 + 0x13, 0x10, 0x00, 0x00 // 1013g,从 offset=2 解析 + ) + assertEquals(1013, parser.parseWeightBytes(bytes, 2)) + } + + // ================================================================ + // 二、帧结构解析测试(parseFrame) + // ================================================================ + + @Test + fun testParseFrame_oldHeartbeat1_basicFields() { + val frame = parser.parseFrame(OLD_HEARTBEAT_1) + assertNotNull("帧解析不应返回 null", frame) + frame!! + assertEquals("CMD 应为 0x01(心跳)", 0x01.toByte(), frame.cmd) + assertEquals("FLAG 应为 0x01(终端发起)", 0x01.toByte(), frame.flag) + } + + @Test + fun testParseFrame_oldHeartbeat1_fixedBody() { + val frame = parser.parseFrame(OLD_HEARTBEAT_1)!! + // 37414645333633333334333731373056322E313007FFFF 前固定数据体 + // 终端ID: 37 41 46 45 33 36 33 33 33 34 33 37 31 37 30 → "7AFE36333437170" + assertEquals("终端ID长度应为15", 15, frame.terminalId.length) + assertEquals("终端ID解析错误", "7AFE36333437170", frame.terminalId) + // 固件版本: 56 32 2E 31 30 → "V2.10" + assertEquals("固件版本解析错误", "V2.10", frame.firmwareVersion) + assertEquals("命令次数解析错误", 7, frame.cmdCount) + } + + @Test + fun testParseFrame_oldHeartbeat2_fixedBody() { + val frame = parser.parseFrame(OLD_HEARTBEAT_2)!! + // 终端ID: 50 31 32 31 36 33 42 38 42 31 34 30 32 33 30 → "P12163B8B140230" + assertEquals("终端ID解析错误", "12163B8B1402304", frame.terminalId) + assertEquals("固件版本解析错误", "V2.11", frame.firmwareVersion) + assertEquals("命令次数解析错误", 18, frame.cmdCount) + } + + @Test + fun testParseFrame_newHeartbeat1_fixedBody() { + val frame = parser.parseFrame(NEW_HEARTBEAT_1)!! + // 终端ID: 50 31 46 31 37 33 42 38 42 31 34 30 32 33 30 → "P1F173B8B140230" + assertEquals("新设备终端ID解析错误", "1F173B8B1402304", frame.terminalId) + assertEquals("新设备固件版本解析错误", "V2.11", frame.firmwareVersion) + assertEquals("新设备命令次数解析错误", 48, frame.cmdCount) + } + + @Test + fun testParseFrame_invalidData_returnsNull() { + assertNull("空字符串应返回 null", parser.parseFrame("")) + assertNull("过短数据应返回 null", parser.parseFrame("D6DADEDB0101FFFF")) + assertNull("无效协议头应返回 null", parser.parseFrame("AABBCCDD0101FFFF")) + } + + // ================================================================ + // 三、心跳数据解析测试(parseHeartbeat) + // ================================================================ + + @Test + fun testHeartbeat_oldDevice_scaleCount() { + val frame = parser.parseFrame(OLD_HEARTBEAT_1)!! + val data = parser.parseHeartbeat(frame.rawBody) + assertNotNull("心跳数据不应为 null", data) + assertEquals("旧设备秤数量应为12", 12, data!!.scaleCount) + } + + @Test + fun testHeartbeat_oldDevice_weights() { + val frame = parser.parseFrame(OLD_HEARTBEAT_1)!! + val data = parser.parseHeartbeat(frame.rawBody)!! + val weights = data.weights + + assertEquals("秤列表大小应与秤数量一致", 12, weights.size) + + // 秤1:00000000 → 0g + assertEquals("秤1重量", 0, weights[0].grams) + assertEquals("秤1编号", 1, weights[0].index) + + // 秤2:08000000 → 8g + assertEquals("秤2重量", 8, weights[1].grams) + + // 秤3:02000080 → -2g(负数) + assertEquals("秤3重量(去皮负值)", -2, weights[2].grams) + + // 秤4:01000080 → -1g + assertEquals("秤4重量", -1, weights[3].grams) + + // 秤5:00000000 → 0g + assertEquals("秤5重量", 0, weights[4].grams) + + // 秤7:05000080 → -5g + assertEquals("秤7重量", -5, weights[6].grams) + + // 秤11:99180080 → -1899g(BCD;旧代码 hex 会得到 -6297g) + assertEquals("秤11重量(BCD:-1899g,hex错误值:-6297g)", -1899, weights[10].grams) + + // 秤12:72180080 → -1872g(BCD;旧代码 hex 会得到 -6258g) + assertEquals("秤12重量(BCD:-1872g,hex错误值:-6258g)", -1872, weights[11].grams) + } + + @Test + fun testHeartbeat_oldDevice_lockStates() { + val frame = parser.parseFrame(OLD_HEARTBEAT_1)!! + val data = parser.parseHeartbeat(frame.rawBody)!! + assertEquals("锁1门状态应为开(1)", 1, data.lock1Door) + assertEquals("锁1锁状态应为开(1)", 1, data.lock1Lock) + assertEquals("锁2门状态应为开(1)", 1, data.lock2Door) + assertEquals("锁2锁状态应为开(1)", 1, data.lock2Lock) + } + + @Test + fun testHeartbeat_oldDevice_temperature() { + val frame = parser.parseFrame(OLD_HEARTBEAT_1)!! + val data = parser.parseHeartbeat(frame.rawBody)!! + // 温度字节 0x50 = 80 + assertEquals("温度字节应为 80(0x50)", 80, data.temperature) + } + + @Test + fun testHeartbeat_newDevice_scaleCount() { + val frame = parser.parseFrame(NEW_HEARTBEAT_1)!! + val data = parser.parseHeartbeat(frame.rawBody)!! + assertEquals("新设备秤数量应为24", 24, data.scaleCount) + assertEquals("秤列表大小应为24", 24, data.weights.size) + } + + @Test + fun testHeartbeat_newDevice_weight1() { + val frame = parser.parseFrame(NEW_HEARTBEAT_1)!! + val data = parser.parseHeartbeat(frame.rawBody)!! + // 秤1:93220000 → big-endian "00002293" → BCD 2293g + assertEquals("新设备秤1重量(BCD:2293g,hex错误值:8851g)", 2293, data.weights[0].grams) + } + + @Test + fun testHeartbeat_newDevice_weight3() { + val frame = parser.parseFrame(NEW_HEARTBEAT_1)!! + val data = parser.parseHeartbeat(frame.rawBody)!! + // 秤3:05330000 → big-endian "00003305" → BCD 3305g + assertEquals("新设备秤3重量(BCD:3305g,hex错误值:13061g)", 3305, data.weights[2].grams) + } + + @Test + fun testHeartbeat_weightKg() { + val weight = ScaleWeight(index = 1, grams = 1013) + assertEquals("kg 转换错误", 1.013, weight.kg, 0.0001) + val negWeight = ScaleWeight(index = 2, grams = -1899) + assertEquals("负重量 kg 转换错误", -1.899, negWeight.kg, 0.0001) + } + + // ================================================================ + // 四、获取状态数据解析测试(parseStatus) + // ================================================================ + + @Test + fun testStatus_oldDevice_lockStates() { + val frame = parser.parseFrame(OLD_STATUS)!! + assertEquals("CMD 应为 0x03(获取状态)", 0x03.toByte(), frame.cmd) + val data = parser.parseStatus(frame.rawBody)!! + assertEquals("锁1锁状态", 1, data.lock1Lock) + assertEquals("锁1门状态", 1, data.lock1Door) + assertEquals("锁2锁状态", 0, data.lock2Lock) + assertEquals("锁2门状态", 0, data.lock2Door) + } + + @Test + fun testStatus_oldDevice_scaleCount() { + val frame = parser.parseFrame(OLD_STATUS)!! + val data = parser.parseStatus(frame.rawBody)!! + assertEquals("旧设备状态秤数量应为12", 12, data.scaleCount) + } + + @Test + fun testStatus_oldDevice_weights() { + val frame = parser.parseFrame(OLD_STATUS)!! + val data = parser.parseStatus(frame.rawBody)!! + val weights = data.weights + + // 秤1:11000000 → big-endian "00000011" → BCD 11g(hex也是17g,差异小但仍不同) + assertEquals("状态秤1重量(BCD:11g,hex:17g)", 11, weights[0].grams) + + // 秤2:27170000 → big-endian "00001727" → BCD 1727g(hex:5927g,差异巨大) + assertEquals("状态秤2重量(BCD:1727g,hex错误值:5927g)", 1727, weights[1].grams) + + // 秤3:12250000 → BCD 2512g(hex:9490g) + assertEquals("状态秤3重量(BCD:2512g,hex错误值:9490g)", 2512, weights[2].grams) + + // 秤4:77110000 → BCD 1177g(hex:4471g) + assertEquals("状态秤4重量(BCD:1177g,hex错误值:4471g)", 1177, weights[3].grams) + + // 秤5:01000000 → 1g + assertEquals("状态秤5重量", 1, weights[4].grams) + + // 秤10:10000080 → -10g(负数) + assertEquals("状态秤10重量(去皮负值)", -10, weights[9].grams) + + // 秤11:00150080 → big-endian "80001500",清符号位 "00001500" → BCD -1500g + assertEquals("状态秤11重量(BCD:-1500g,hex:-5376g)", -1500, weights[10].grams) + + // 秤12:44150080 → "00001544" → BCD -1544g + assertEquals("状态秤12重量(BCD:-1544g,hex:-5444g)", -1544, weights[11].grams) + } + + @Test + fun testStatus_newDevice_scaleCount() { + val frame = parser.parseFrame(NEW_STATUS)!! + val data = parser.parseStatus(frame.rawBody)!! + assertEquals("新设备状态秤数量应为24", 24, data.scaleCount) + } + + @Test + fun testStatus_newDevice_weight1() { + val frame = parser.parseFrame(NEW_STATUS)!! + val data = parser.parseStatus(frame.rawBody)!! + // 秤1:14220000 → big-endian "00002214" → BCD 2214g + assertEquals("新设备状态秤1重量(BCD:2214g)", 2214, data.weights[0].grams) + } + + // ================================================================ + // 五、分片拼装测试(appendData) + // ================================================================ + + @Test + fun testAppendData_completeFrame_returnedImmediately() { + val result = parser.appendData(OLD_HEARTBEAT_1) + assertNotNull("完整帧应直接返回", result) + assertEquals("返回的帧内容应完整", OLD_HEARTBEAT_1, result) + } + + @Test + fun testAppendData_twoFragments() { + // 将完整帧从中间切分为两段 + val mid = OLD_HEARTBEAT_1.length / 2 + val part1 = OLD_HEARTBEAT_1.substring(0, mid) + val part2 = OLD_HEARTBEAT_1.substring(mid) + + // 第一段(含帧头,不含帧尾)→ 应返回 null + val result1 = parser.appendData(part1) + assertNull("第一分片不应返回完整帧", result1) + + // 第二段(含帧尾,不含帧头)→ 应拼装完成并返回完整帧 + val result2 = parser.appendData(part2) + assertNotNull("第二分片拼装后应返回完整帧", result2) + assertEquals("拼装后帧内容应与原始数据一致", OLD_HEARTBEAT_1, result2) + } + + @Test + fun testAppendData_threeFragments() { + // 将完整帧切成三段 + val len = OLD_HEARTBEAT_1.length + val part1 = OLD_HEARTBEAT_1.substring(0, len / 3) + val part2 = OLD_HEARTBEAT_1.substring(len / 3, len * 2 / 3) + val part3 = OLD_HEARTBEAT_1.substring(len * 2 / 3) + + assertNull("第1段不应返回完整帧", parser.appendData(part1)) + assertNull("第2段不应返回完整帧", parser.appendData(part2)) + val result = parser.appendData(part3) + assertNotNull("第3段拼装后应返回完整帧", result) + assertEquals("三段拼装结果应与原始数据一致", OLD_HEARTBEAT_1, result) + } + + @Test + fun testAppendData_reset_clearsBuffer() { + val mid = OLD_HEARTBEAT_1.length / 2 + // 先追加第一段(写入缓冲) + parser.appendData(OLD_HEARTBEAT_1.substring(0, mid)) + // 重置后再追加完整帧,应正常返回 + parser.reset() + val result = parser.appendData(OLD_HEARTBEAT_1) + assertNotNull("reset 后追加完整帧应正常返回", result) + } + + @Test + fun testAppendData_newFrameAfterComplete() { + // 模拟连续两帧数据,第二帧紧跟在第一帧末尾 + val twoFrames = OLD_HEARTBEAT_1 + OLD_HEARTBEAT_2 + // 包含帧头和帧尾,应只返回第一帧 + val result = parser.appendData(twoFrames) + assertNotNull("连续两帧中应能解析出完整帧", result) + assertTrue("应返回以协议头开头的帧", result!!.startsWith("D6DADEDB")) + assertTrue("应返回以协议尾结尾的帧", result.endsWith("FFFF")) + } + + // ================================================================ + // 六、端到端集成测试(appendData + parseFrame + parseHeartbeat) + // ================================================================ + + @Test + fun testEndToEnd_oldHeartbeat_fragmentedThenParse() { + val mid = OLD_HEARTBEAT_1.length / 2 + parser.appendData(OLD_HEARTBEAT_1.substring(0, mid)) + val frameHex = parser.appendData(OLD_HEARTBEAT_1.substring(mid))!! + + val frame = parser.parseFrame(frameHex)!! + val data = parser.parseHeartbeat(frame.rawBody)!! + + assertEquals(0x01.toByte(), frame.cmd) + assertEquals(12, data.scaleCount) + assertEquals(8, data.weights[1].grams) // 秤2: 8g + assertEquals(-1899, data.weights[10].grams) // 秤11: -1899g + assertEquals("7AFE36333437170", frame.terminalId) + } + + @Test + fun testEndToEnd_newHeartbeat_parseComplete() { + val frameHex = parser.appendData(NEW_HEARTBEAT_1)!! + val frame = parser.parseFrame(frameHex)!! + val data = parser.parseHeartbeat(frame.rawBody)!! + + assertEquals(24, data.scaleCount) + assertEquals(2293, data.weights[0].grams) // 秤1: 2293g + assertEquals("1F173B8B1402304", frame.terminalId) + assertEquals("V2.11", frame.firmwareVersion) + } +} diff --git a/秤心跳数据.md b/秤心跳数据.md new file mode 100644 index 0000000..7d9943a --- /dev/null +++ b/秤心跳数据.md @@ -0,0 +1,74 @@ +协议头 :4 字节 +命令 :1 字节 +标志 :1 字节 +数据体 :不同命令不固定,详细见下方 +协议尾 :2字节 + + +协议头 :0xD6 0xDA 0xDE 0xDB +命令: +◼ 0x00:终端激活(终端发起) +◼ 0x01:心跳(终端发起) +◼ 0x81:心跳(终端发起,当终端发送此命令时需要服务端存储串口屏显示信息) +◼ 0x02:开锁(服务端发起) +◼ 0x03:获取状态(服务端发起) +◼ 0x04:秤置零(服务端发起) +◼ 0x06:秤标定(服务端发起) +◼ 0x05:卡号上发(终端发起) +◼ 0x07:价签设置(服务端发起) +◼ 0x08:串口屏(服务端发起) +◼ 0x09:语音播报(服务端发起) +◼ 0x0A:价签(第二块串口屏/透传)设置(服务端发起) +◼ 0x0B:操作记录上传(终端发起) +◼ 0x0C:对时(终端发起) +◼ 0x0E:终端位置上报(终端发起) +◼ 0x0F:温控器控制(服务端发起) +◼ 0x10:温控信息上报(终端发起) +◼ 0x11:临时参数设置(服务端发起) + +固定数据体 :(终端ID :15 字节,固件版本 :5字节,命令次数 :1字节) + +0x01心跳终端发起数据体内容格式: + 秤数量 :1 字节 + N个秤重量数据 :N x 4字节 + 物联卡号 :20 字节 + 锁1门状态 :1 字节 + 锁1锁状态 :1 字节 + 锁2门状态 :1 字节 + 锁2锁状态 :1 字节 + 温度 :1 字节 + 固定数据体 :(终端ID :15 字节,固件版本 :5字节,命令次数 :1字节) + + +0x03获取状态服务端响应数据体内容格式: + 锁1锁状态 :1 字节 + 锁1门状态 :1 字节 + 锁2锁状态 :1 字节 + 锁2门状态 :1 字节 + 秤数量 :1 字节 + N个秤重量数据 :N x 4字节 + 温度 :1 字节 + 固定数据体 :(终端ID :15 字节,固件版本 :5字节,命令次数 :1字节) + +示例数据见下方---------------------------- + +旧设备10台秤心跳数据: +D6DADEDB01010C0000000008000000020000800100008000000000010000800500008001000080030000800200008099180080721800800000000000000000000000000000000000000000010101015037414645333633333334333731373056322E313007FFFF + +D6DADEDB01010C0900000027170000122500007511000001000000090000001100000012000000430000000800008000150080591500800000000000000000000000000000000000000000010100005031323136334238423134303233303456322E313112FFFF + +新设备15台秤心跳数据: +D6DADEDB0101189322000000000000053300001534000079230000611100000000000007000080030000000300000004000080010000000100008003000000180600004214008083130080741200800115008066130080501400800411008033120080631600800000000000000000000000000000000000000000010101015031463137334238423134303233303456322E313130FFFF + +D6DADEDB0101181422000037110000823100009233000054000080100000000100000030240000050000000300008002000080050000802006000007000000441100004014008081130080721200800315008064130080521400809610008033120080631600800000000000000000000000000000000000000000010101015031463137334238423134303233303456322E313147FFFF + +D6DADEDB0101180635000075190000842800000100008014000080060000800100008004000080050000801500008007000000080000800700008003000000050000008118008054180080231800801018008059170080221800809418008075320080761900800000000000000000000000000000000000000000010101015033453137334238423134303233303456322E313139FFFF + + +旧设备10台秤获取状态数据: +D6DADEDB0302010100000C1100000027170000122500007711000001000000110000001300000012000000430000001000008000150080441500805031323136334238423134303233303456322E313113FFFF + +新设备15台秤获取状态数据: +D6DADEDB030201010101180635000077190000842800000100008014000080040000800100008004000080050000801500008007000000080000800900008005000000030000008118008054180080231800801018008059170080221800809418008079320080761900805033453137334238423134303233303456322E31313CFFFF + +D6DADEDB030201010101181422000037110000783100009033000054000080100000000100000028240000070000000100008006000080030000801806000009000000461100004014008081130080721200800115008064130080501400809810008033120080651600805031463137334238423134303233303456322E31314AFFFF \ No newline at end of file diff --git a/称重控制板接口协议.pdf b/称重控制板接口协议.pdf new file mode 100644 index 0000000000000000000000000000000000000000..13306493c488d258aa9e4f575b47a276549b920f GIT binary patch literal 301797 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

(49#0K7YOUx9U$Ecd<>tvOm&`-qBDY_fkqv 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

Mj4&L!Mx`Bb$F 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

KzyXA^N`{fr9t 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

vd?G>(t#~j*b+wwn&Jn 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 z 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%0AWJbxCH2W@NLJ#W~bowq` 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