diff --git a/viewsh-module-iot/viewsh-module-iot-gateway/src/main/java/com/viewsh/module/iot/gateway/codec/jt808/IotJt808DeviceMessageCodec.java b/viewsh-module-iot/viewsh-module-iot-gateway/src/main/java/com/viewsh/module/iot/gateway/codec/jt808/IotJt808DeviceMessageCodec.java index 5129ae3..e01c9fd 100644 --- a/viewsh-module-iot/viewsh-module-iot-gateway/src/main/java/com/viewsh/module/iot/gateway/codec/jt808/IotJt808DeviceMessageCodec.java +++ b/viewsh-module-iot/viewsh-module-iot-gateway/src/main/java/com/viewsh/module/iot/gateway/codec/jt808/IotJt808DeviceMessageCodec.java @@ -443,12 +443,20 @@ public class IotJt808DeviceMessageCodec implements IotDeviceMessageCodec { case "TTS" -> { // 语音播报服务 -> JT808 文本信息下发 (0x8300) String ttsText = (String) serviceParams.getOrDefault("tts_text", ""); - int ttsFlag = ((Number) serviceParams.getOrDefault("tts_flag", 4)).intValue(); // 默认 4-TTS 播读 - - log.info("[encodeServiceInvoke][TTS 语音播报] phone={}, flag={}, text={}", phone, ttsFlag, ttsText); + int ttsFlag = ((Number) serviceParams.getOrDefault("tts_flag", 0x08)).intValue(); + log.info("[encodeServiceInvoke][TTS 语音播报] phone={}, flag=0x{}, text={}", + phone, Integer.toHexString(ttsFlag), ttsText); yield encoder.encodeTextInfoDown(phone, (byte) ttsFlag, ttsText, flowId); } + case "instruction_config" -> { + // 服务指令配置 -> JT808 文本信息下发 (0x8300), 静默执行 + // 异步调用,设备收到后解析指令,修改参数,回复 0x0001,但不发声 + String config = (String) serviceParams.getOrDefault("config", ""); + log.info("[encodeServiceInvoke][服务指令配置] phone={}, config={}", phone, config); + yield encoder.encodeTextInfoDown(phone, (byte) 0x01, config, flowId); + } + case "locationQuery" -> { // 位置查询服务 -> JT808 位置信息查询 (0x8201) log.info("[encodeServiceInvoke][位置查询] phone={}", phone);