From dc38df6288214c4a4f2b40ddc3b3df89d7b44a84 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Wed, 13 Mar 2024 00:04:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E4=BB=8E=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E6=9F=A5=E8=AF=A2=E6=B3=A8=E5=86=8C=E7=9A=84=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=98=AF=E5=90=A6=E5=90=88=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/jt1078/bean/JTDevice.java | 98 +++++++++++++++++++ .../vmp/jt1078/codec/decode/Jt808Decoder.java | 7 +- .../iot/vmp/jt1078/codec/netty/TcpServer.java | 7 +- .../config/JT1078AutoConfiguration.java | 6 +- .../iot/vmp/jt1078/event/RegisterEvent.java | 72 ++------------ .../iot/vmp/jt1078/proc/request/J0001.java | 3 +- .../iot/vmp/jt1078/proc/request/J0002.java | 3 +- .../iot/vmp/jt1078/proc/request/J0004.java | 3 +- .../iot/vmp/jt1078/proc/request/J0100.java | 54 ++++------ .../iot/vmp/jt1078/proc/request/J0102.java | 3 +- .../iot/vmp/jt1078/proc/request/J0200.java | 3 +- .../iot/vmp/jt1078/proc/request/J1205.java | 3 +- .../iot/vmp/jt1078/proc/request/Re.java | 7 +- .../iot/vmp/jt1078/proc/response/J8100.java | 7 ++ .../iot/vmp/jt1078/JT1078ServerTest.java | 2 +- 15 files changed, 163 insertions(+), 115 deletions(-) create mode 100644 src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDevice.java diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDevice.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDevice.java new file mode 100644 index 000000000..4fa7f6288 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDevice.java @@ -0,0 +1,98 @@ +package com.genersoft.iot.vmp.jt1078.bean; + +/** + * JT 设备 + */ +public class JTDevice { + + /** + * 省域ID + */ + private int provinceId; + + /** + * 市县域ID + */ + private int cityId; + + /** + * 制造商ID + */ + private String makerId; + + /** + * 终端型号 + */ + private String deviceModel; + + /** + * 终端ID + */ + private String deviceId; + + /** + * 车牌颜色 + */ + private int plateColor; + + /** + * 车牌 + */ + private String plateNo; + + public int getProvinceId() { + return provinceId; + } + + public void setProvinceId(int provinceId) { + this.provinceId = provinceId; + } + + public int getCityId() { + return cityId; + } + + public void setCityId(int cityId) { + this.cityId = cityId; + } + + public String getMakerId() { + return makerId; + } + + public void setMakerId(String makerId) { + this.makerId = makerId; + } + + public String getDeviceModel() { + return deviceModel; + } + + public void setDeviceModel(String deviceModel) { + this.deviceModel = deviceModel; + } + + public String getDeviceId() { + return deviceId; + } + + public void setDeviceId(String deviceId) { + this.deviceId = deviceId; + } + + public int getPlateColor() { + return plateColor; + } + + public void setPlateColor(int plateColor) { + this.plateColor = plateColor; + } + + public String getPlateNo() { + return plateNo; + } + + public void setPlateNo(String plateNo) { + this.plateNo = plateNo; + } +} 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 8f6517c58..5512edaa0 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 @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.factory.CodecFactory; import com.genersoft.iot.vmp.jt1078.proc.request.Re; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufUtil; @@ -28,9 +29,11 @@ public class Jt808Decoder extends ByteToMessageDecoder { private final static Logger log = LoggerFactory.getLogger(Jt808Decoder.class); private ApplicationEventPublisher applicationEventPublisher = null; + private Ijt1078Service service = null; - public Jt808Decoder(ApplicationEventPublisher applicationEventPublisher) { + public Jt808Decoder(ApplicationEventPublisher applicationEventPublisher, Ijt1078Service service ) { this.applicationEventPublisher = applicationEventPublisher; + this.service = service; } @Override @@ -58,7 +61,7 @@ public class Jt808Decoder extends ByteToMessageDecoder { log.error("get msgId is null {}", header.getMsgId()); return; } - Rs decode = handler.decode(buf, header, session); + Rs decode = handler.decode(buf, header, session, service); ApplicationEvent applicationEvent = handler.getEvent(); if (applicationEvent != null) { applicationEventPublisher.publishEvent(applicationEvent); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/netty/TcpServer.java b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/netty/TcpServer.java index 30f161286..52ba75afc 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/codec/netty/TcpServer.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/codec/netty/TcpServer.java @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.jt1078.codec.decode.Jt808Decoder; import com.genersoft.iot.vmp.jt1078.codec.encode.Jt808Encoder; import com.genersoft.iot.vmp.jt1078.codec.encode.Jt808EncoderCmd; import com.genersoft.iot.vmp.jt1078.proc.factory.CodecFactory; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; @@ -37,12 +38,14 @@ public class TcpServer { private EventLoopGroup bossGroup = null; private EventLoopGroup workerGroup = null; private ApplicationEventPublisher applicationEventPublisher = null; + private Ijt1078Service service = null; private final ByteBuf DECODER_JT808 = Unpooled.wrappedBuffer(new byte[]{0x7e}); - public TcpServer(Integer port, ApplicationEventPublisher applicationEventPublisher) { + public TcpServer(Integer port, ApplicationEventPublisher applicationEventPublisher, Ijt1078Service service) { this.port = port; this.applicationEventPublisher = applicationEventPublisher; + this.service = service; } private void startTcpServer() { @@ -63,7 +66,7 @@ public class TcpServer { channel.pipeline() .addLast(new IdleStateHandler(10, 0, 0, TimeUnit.MINUTES)) .addLast(new DelimiterBasedFrameDecoder(1024 * 2, DECODER_JT808)) - .addLast(new Jt808Decoder(applicationEventPublisher)) + .addLast(new Jt808Decoder(applicationEventPublisher, service)) .addLast(new Jt808Encoder()) .addLast(new Jt808EncoderCmd()) .addLast(new Jt808Handler()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/config/JT1078AutoConfiguration.java b/src/main/java/com/genersoft/iot/vmp/jt1078/config/JT1078AutoConfiguration.java index 07b1dc249..9b1117d75 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/config/JT1078AutoConfiguration.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/config/JT1078AutoConfiguration.java @@ -2,6 +2,7 @@ package com.genersoft.iot.vmp.jt1078.config; import com.genersoft.iot.vmp.jt1078.cmd.JT1078Template; import com.genersoft.iot.vmp.jt1078.codec.netty.TcpServer; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -23,9 +24,12 @@ public class JT1078AutoConfiguration { @Autowired private ApplicationEventPublisher applicationEventPublisher; + @Autowired + private Ijt1078Service service; + @Bean(initMethod = "start", destroyMethod = "stop") public TcpServer jt1078Server(@Value("${jt1078.port}") Integer port) { - return new TcpServer(port, applicationEventPublisher); + return new TcpServer(port, applicationEventPublisher, service); } @Bean diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/event/RegisterEvent.java b/src/main/java/com/genersoft/iot/vmp/jt1078/event/RegisterEvent.java index ef637962e..0535d49d6 100755 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/event/RegisterEvent.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/event/RegisterEvent.java @@ -1,6 +1,7 @@ package com.genersoft.iot.vmp.jt1078.event; import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm; +import com.genersoft.iot.vmp.jt1078.bean.JTDevice; import org.springframework.context.ApplicationEvent; /** @@ -18,74 +19,13 @@ public class RegisterEvent extends ApplicationEvent { } - private int provinceId; + private JTDevice device; - private int cityId; - - private String makerId; - - private String deviceModel; - - private String deviceId; - - private int plateColor; - - private String plateNo; - - - public int getProvinceId() { - return provinceId; + public JTDevice getDevice() { + return device; } - public void setProvinceId(int provinceId) { - this.provinceId = provinceId; - } - - public int getCityId() { - return cityId; - } - - public void setCityId(int cityId) { - this.cityId = cityId; - } - - public String getMakerId() { - return makerId; - } - - public void setMakerId(String makerId) { - this.makerId = makerId; - } - - public String getDeviceModel() { - return deviceModel; - } - - public void setDeviceModel(String deviceModel) { - this.deviceModel = deviceModel; - } - - public String getDeviceId() { - return deviceId; - } - - public void setDeviceId(String deviceId) { - this.deviceId = deviceId; - } - - public int getPlateColor() { - return plateColor; - } - - public void setPlateColor(int plateColor) { - this.plateColor = plateColor; - } - - public String getPlateNo() { - return plateNo; - } - - public void setPlateNo(String plateNo) { - this.plateNo = plateNo; + public void setDevice(JTDevice device) { + this.device = device; } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0001.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0001.java index 7f59af2e6..2ffcdc020 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0001.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0001.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import com.genersoft.iot.vmp.jt1078.session.SessionManager; import io.netty.buffer.ByteBuf; @@ -32,7 +33,7 @@ public class J0001 extends Re { } @Override - protected Rs handler(Header header, Session session) { + protected Rs handler(Header header, Session session, Ijt1078Service service) { SessionManager.INSTANCE.response(header.getDevId(), "0001", (long) respNo, JSON.toJSONString(this)); return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0002.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0002.java index 409345af6..e83cceef5 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0002.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0002.java @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.J8001; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import io.netty.buffer.ByteBuf; import org.springframework.context.ApplicationEvent; @@ -23,7 +24,7 @@ public class J0002 extends Re { } @Override - protected Rs handler(Header header, Session session) { + protected Rs handler(Header header, Session session, Ijt1078Service service) { J8001 j8001 = new J8001(); j8001.setRespNo(header.getSn()); j8001.setRespId(header.getMsgId()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0004.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0004.java index 62bac34c0..3db25ce01 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0004.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0004.java @@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.jt1078.proc.request; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import io.netty.buffer.ByteBuf; import org.springframework.context.ApplicationEvent; @@ -22,7 +23,7 @@ public class J0004 extends Re { } @Override - protected Rs handler(Header header, Session session) { + protected Rs handler(Header header, Session session, Ijt1078Service service) { return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0100.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0100.java index d3058017e..ba89416f6 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0100.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0100.java @@ -1,10 +1,12 @@ package com.genersoft.iot.vmp.jt1078.proc.request; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; +import com.genersoft.iot.vmp.jt1078.bean.JTDevice; import com.genersoft.iot.vmp.jt1078.event.RegisterEvent; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.J8100; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import io.netty.buffer.ByteBuf; import org.springframework.context.ApplicationEvent; @@ -21,67 +23,56 @@ import java.io.UnsupportedEncodingException; @MsgId(id = "0100") public class J0100 extends Re { - private int provinceId; - - private int cityId; - - private String makerId; - - private String deviceModel; - - private String deviceId; - - private int plateColor; - - private String plateNo; + private JTDevice device; @Override protected Rs decode0(ByteBuf buf, Header header, Session session) { Short version = header.getVersion(); - provinceId = buf.readUnsignedShort(); + device = new JTDevice(); + device.setProvinceId(buf.readUnsignedShort()); if (version >= 1) { - cityId = buf.readUnsignedShort(); + device.setCityId(buf.readUnsignedShort()); // decode as 2019 byte[] bytes11 = new byte[11]; buf.readBytes(bytes11); - makerId = new String(bytes11).trim(); + device.setMakerId(new String(bytes11).trim()); byte[] bytes30 = new byte[30]; buf.readBytes(bytes30); - deviceModel = new String(bytes30).trim(); + device.setDeviceModel(new String(bytes30).trim()); buf.readBytes(bytes30); - deviceId = new String(bytes30).trim(); + device.setDeviceId(new String(bytes30).trim()); - plateColor = buf.readByte(); + device.setPlateColor(buf.readByte()); byte[] plateColorBytes = new byte[buf.readableBytes()]; buf.readBytes(plateColorBytes); try { - plateNo = new String(plateColorBytes, "GBK").trim(); + device.setPlateNo(new String(plateColorBytes, "GBK").trim()); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } } else { // decode as 2013 - cityId = buf.readUnsignedShort(); + device.setCityId(buf.readUnsignedShort()); // decode as 2019 byte[] bytes5 = new byte[5]; buf.readBytes(bytes5); - makerId = new String(bytes5).trim(); + device.setMakerId(new String(bytes5).trim()); byte[] bytes20 = new byte[20]; buf.readBytes(bytes20); - deviceModel = new String(bytes20).trim(); + device.setDeviceModel(new String(bytes20).trim()); byte[] bytes7 = new byte[7]; buf.readBytes(bytes7); - deviceId = new String(bytes7).trim(); + device.setDeviceId(new String(bytes7).trim()); - plateColor = buf.readByte(); + device.setPlateColor(buf.readByte()); byte[] plateColorBytes = new byte[buf.readableBytes()]; buf.readBytes(plateColorBytes); try { - plateNo = new String(plateColorBytes, "GBK").trim(); + device.setPlateNo(new String(plateColorBytes, "GBK").trim()); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } @@ -90,7 +81,8 @@ public class J0100 extends Re { } @Override - protected Rs handler(Header header, Session session) { + protected Rs handler(Header header, Session session, Ijt1078Service service) { + // TODO 从数据库判断这个设备是否合法 J8100 j8100 = new J8100(); j8100.setRespNo(header.getSn()); j8100.setResult(J8100.SUCCESS); @@ -101,13 +93,7 @@ public class J0100 extends Re { @Override public ApplicationEvent getEvent() { RegisterEvent registerEvent = new RegisterEvent(this); - registerEvent.setProvinceId(provinceId); - registerEvent.setCityId(cityId); - registerEvent.setDeviceId(deviceId); - registerEvent.setDeviceModel(deviceModel); - registerEvent.setMakerId(makerId); - registerEvent.setPlateColor(plateColor); - registerEvent.setPlateNo(plateNo); + registerEvent.setDevice(device); return registerEvent; } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0102.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0102.java index c7e1fbc29..8510dd71d 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0102.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0102.java @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.J8001; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import io.netty.buffer.ByteBuf; import org.springframework.context.ApplicationEvent; @@ -26,7 +27,7 @@ public class J0102 extends Re { } @Override - protected Rs handler(Header header, Session session) { + protected Rs handler(Header header, Session session, Ijt1078Service service) { J8001 j8001 = new J8001(); j8001.setRespNo(header.getSn()); j8001.setRespId(header.getMsgId()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0200.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0200.java index 2dfe3b53b..2152be875 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0200.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0200.java @@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.J8001; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import io.netty.buffer.ByteBuf; import org.springframework.context.ApplicationEvent; @@ -23,7 +24,7 @@ public class J0200 extends Re { } @Override - protected Rs handler(Header header, Session session) { + protected Rs handler(Header header, Session session, Ijt1078Service service) { J8001 j8001 = new J8001(); j8001.setRespNo(header.getSn()); j8001.setRespId(header.getMsgId()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1205.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1205.java index 45405fc03..43ee086a4 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1205.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1205.java @@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.J8001; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import com.genersoft.iot.vmp.jt1078.session.SessionManager; import io.netty.buffer.ByteBuf; @@ -49,7 +50,7 @@ public class J1205 extends Re { } @Override - protected Rs handler(Header header, Session session) { + protected Rs handler(Header header, Session session, Ijt1078Service service) { SessionManager.INSTANCE.response(header.getDevId(), "1205", (long) respNo, JSON.toJSONString(this)); J8001 j8001 = new J8001(); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/Re.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/Re.java index d45b0ae4a..e2dfaef07 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/Re.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/Re.java @@ -2,6 +2,7 @@ package com.genersoft.iot.vmp.jt1078.proc.request; import com.genersoft.iot.vmp.jt1078.proc.Header; import com.genersoft.iot.vmp.jt1078.proc.response.Rs; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; import com.genersoft.iot.vmp.jt1078.session.Session; import io.netty.buffer.ByteBuf; import org.slf4j.Logger; @@ -19,14 +20,14 @@ public abstract class Re { protected abstract Rs decode0(ByteBuf buf, Header header, Session session); - protected abstract Rs handler(Header header, Session session); + protected abstract Rs handler(Header header, Session session, Ijt1078Service service); - public Rs decode(ByteBuf buf, Header header, Session session) { + public Rs decode(ByteBuf buf, Header header, Session session, Ijt1078Service service) { if (session != null && !StringUtils.hasLength(session.getDevId())) { session.register(header.getDevId(), (int) header.getVersion(), header); } Rs rs = decode0(buf, header, session); - Rs rsHand = handler(header, session); + Rs rsHand = handler(header, session, service); if (rs == null && rsHand != null) { rs = rsHand; } else if (rs != null && rsHand != null) { diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8100.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8100.java index 48a9c95e6..16b457abb 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8100.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8100.java @@ -12,6 +12,13 @@ import io.netty.util.CharsetUtil; */ @MsgId(id = "8100") public class J8100 extends Rs { + /** + * 0 成功 + * 1 车辆已被注册 + * 2 数据库中无该车辆 + * 2 终端已被注册 + * 2 数据库中无该终端 + */ public static final Integer SUCCESS = 0; Integer respNo; diff --git a/src/test/java/com/genersoft/iot/vmp/jt1078/JT1078ServerTest.java b/src/test/java/com/genersoft/iot/vmp/jt1078/JT1078ServerTest.java index f7cfb5ea7..dbc352b45 100644 --- a/src/test/java/com/genersoft/iot/vmp/jt1078/JT1078ServerTest.java +++ b/src/test/java/com/genersoft/iot/vmp/jt1078/JT1078ServerTest.java @@ -20,7 +20,7 @@ public class JT1078ServerTest { public static void main(String[] args) { System.out.println("Starting jt1078 server..."); - TcpServer tcpServer = new TcpServer(21078, null); + TcpServer tcpServer = new TcpServer(21078, null, null); tcpServer.start(); System.out.println("Start jt1078 server success!");