From 29802ccdeda9461a03ac318d3ec143f1418d9b18 Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Wed, 16 Jul 2025 18:22:33 +0800 Subject: [PATCH] =?UTF-8?q?[1078]=20=E5=A2=9E=E5=8A=A0=E6=96=87=E6=9C=AC?= =?UTF-8?q?=E4=B8=8B=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/jt1078/bean/JTTextSign.java | 40 ++---- .../vmp/jt1078/codec/decode/Jt808Decoder.java | 2 +- .../vmp/jt1078/codec/encode/Jt808Encoder.java | 2 +- .../iot/vmp/jt1078/proc/response/J8300.java | 28 +---- .../service/impl/jt1078ServiceImpl.java | 7 +- web/src/api/jtDevice.js | 7 ++ web/src/store/modules/jtDevice.js | 12 +- web/src/views/jtDevice/dialog/testMsg.vue | 118 ++++++++++++++++++ web/src/views/jtDevice/list.vue | 11 +- 9 files changed, 165 insertions(+), 62 deletions(-) create mode 100755 web/src/views/jtDevice/dialog/testMsg.vue diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTTextSign.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTTextSign.java index 577c78430..4bbcaf426 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTTextSign.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTTextSign.java @@ -1,10 +1,12 @@ package com.genersoft.iot.vmp.jt1078.bean; import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; /** * 文本信息标志 */ +@Data @Schema(description = "文本信息标志") public class JTTextSign { @@ -14,6 +16,9 @@ public class JTTextSign { @Schema(description = "1终端显示器显示") private boolean terminalDisplay; + @Schema(description = "1广告屏显示") + private boolean adScreen; + @Schema(description = "1终端 TTS 播读") private boolean tts; @@ -29,41 +34,12 @@ public class JTTextSign { if (tts) { byteSign |= (0x1 << 3); } + if (adScreen) { + byteSign |= (0x1 << 4); + } if (source) { byteSign |= (0x1 << 5); } return byteSign; } - - public int getType() { - return type; - } - - public void setType(int type) { - this.type = type; - } - - public boolean isTerminalDisplay() { - return terminalDisplay; - } - - public void setTerminalDisplay(boolean terminalDisplay) { - this.terminalDisplay = terminalDisplay; - } - - public boolean isTts() { - return tts; - } - - public void setTts(boolean tts) { - this.tts = tts; - } - - public boolean isSource() { - return source; - } - - public void setSource(boolean source) { - this.source = source; - } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/Jt808Decoder.java b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/Jt808Decoder.java index d05cedce8..c8d3f1a23 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/Jt808Decoder.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/decode/Jt808Decoder.java @@ -45,7 +45,7 @@ public class Jt808Decoder extends ByteToMessageDecoder { protected void decode(ChannelHandlerContext ctx, ByteBuf in, List out) throws Exception { in.retain(); Session session = ctx.channel().attr(Session.KEY).get(); - log.info("> {} hex: 7e{}7e", session, ByteBufUtil.hexDump(in)); + log.debug("> {} hex: 7e{}7e", session, ByteBufUtil.hexDump(in)); try { // 按照部标定义执行校验和转义 ByteBuf buf = unEscapeAndCheck(in); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/encode/Jt808Encoder.java b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/encode/Jt808Encoder.java index 949177db6..6868f642a 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/encode/Jt808Encoder.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/encode/Jt808Encoder.java @@ -26,7 +26,7 @@ public class Jt808Encoder extends MessageToByteEncoder { List encodeList = Jt808EncoderCmd.encode(msg, session, session.nextSerialNo()); if(encodeList!=null && !encodeList.isEmpty()){ for (ByteBuf byteBuf : encodeList) { - log.info("< {} hex:{}", session, ByteBufUtil.hexDump(byteBuf)); + log.debug("< {} hex:{}", session, ByteBufUtil.hexDump(byteBuf)); out.writeBytes(byteBuf); } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8300.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8300.java index 1994c2bdf..59e3e6ed7 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8300.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8300.java @@ -4,12 +4,16 @@ import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.bean.JTTextSign; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; +import lombok.Data; +import lombok.EqualsAndHashCode; import java.nio.charset.Charset; /** * 文本信息下发 */ +@EqualsAndHashCode(callSuper = true) +@Data @MsgId(id = "8300") public class J8300 extends Rs { @@ -36,28 +40,4 @@ public class J8300 extends Rs { buffer.writeCharSequence(content, Charset.forName("GBK")); return buffer; } - - public JTTextSign getSign() { - return sign; - } - - public void setSign(JTTextSign sign) { - this.sign = sign; - } - - public int getTextType() { - return textType; - } - - public void setTextType(int textType) { - this.textType = textType; - } - - public String getContent() { - return content; - } - - public void setContent(String content) { - this.content = content; - } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java index 278ed82e9..b355263b5 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/impl/jt1078ServiceImpl.java @@ -385,7 +385,12 @@ public class jt1078ServiceImpl implements Ijt1078Service { @Override public int linkDetection(String phoneNumber) { J8204 j8204 = new J8204(); - return (int) jt1078Template.linkDetection(phoneNumber, j8204, 6); + Object result = jt1078Template.linkDetection(phoneNumber, j8204, 6); + if (result == null) { + return 1; + }else { + return (int) result; + } } @Override diff --git a/web/src/api/jtDevice.js b/web/src/api/jtDevice.js index 0d6ffb286..a4dc83c22 100644 --- a/web/src/api/jtDevice.js +++ b/web/src/api/jtDevice.js @@ -255,5 +255,12 @@ export function queryPosition(phoneNumber) { } }) } +export function sendTextMessage(data) { + return request({ + method: 'post', + url: `/api/jt1078/text-msg`, + data: data + }) +} diff --git a/web/src/store/modules/jtDevice.js b/web/src/store/modules/jtDevice.js index ed4e3554d..8c3380d1c 100644 --- a/web/src/store/modules/jtDevice.js +++ b/web/src/store/modules/jtDevice.js @@ -5,7 +5,7 @@ import { play, ptz, queryAttribute, queryChannels, queryConfig, queryDeviceById, - queryDevices, queryPosition, queryRecordList, setConfig, startPlayback, + queryDevices, queryPosition, queryRecordList, sendTextMessage, setConfig, startPlayback, stopPlay, stopPlayback, update, updateChannel, wiper } from '@/api/jtDevice' @@ -240,6 +240,16 @@ const actions = { reject(error) }) }) + }, + sendTextMessage({ commit }, data) { + return new Promise((resolve, reject) => { + sendTextMessage(data).then(response => { + const { data } = response + resolve(data) + }).catch(error => { + reject(error) + }) + }) } } diff --git a/web/src/views/jtDevice/dialog/testMsg.vue b/web/src/views/jtDevice/dialog/testMsg.vue new file mode 100755 index 000000000..b53c82a49 --- /dev/null +++ b/web/src/views/jtDevice/dialog/testMsg.vue @@ -0,0 +1,118 @@ + + + diff --git a/web/src/views/jtDevice/list.vue b/web/src/views/jtDevice/list.vue index 7f900e9a4..3b5a1eb7d 100755 --- a/web/src/views/jtDevice/list.vue +++ b/web/src/views/jtDevice/list.vue @@ -112,7 +112,7 @@ 位置信息 - 文本信息 + 文本下发 电话回拨 @@ -148,6 +148,7 @@ + @@ -156,11 +157,12 @@ import deviceEdit from './edit.vue' import configInfo from '../dialog/configInfo.vue' import attribute from './dialog/attribute.vue' import position from './dialog/position.vue' +import testMsg from './dialog/testMsg.vue' export default { name: 'App', components: { - deviceEdit, configInfo, attribute, position + deviceEdit, configInfo, attribute, position, testMsg }, data() { return { @@ -267,6 +269,8 @@ export default { this.linkDetection(itemData) } else if (command === 'position') { this.queryPosition(itemData) + } else if (command === 'textMsg') { + this.sendTextMsg(itemData) } else { this.$message.info('尚不支持') } @@ -290,6 +294,9 @@ export default { this.$refs.position.openDialog(data) }) }, + sendTextMsg: function(itemData) { + this.$refs.testMsg.openDialog(itemData) + }, linkDetection: function(itemData) { this.$store.dispatch('jtDevice/linkDetection', itemData.phoneNumber) .then((data) => {