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 3bfcfcf5b..3be424e55 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 @@ -12,17 +12,12 @@ import io.netty.buffer.CompositeByteBuf; import io.netty.buffer.UnpooledByteBufAllocator; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.ByteToMessageDecoder; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import lombok.extern.slf4j.Slf4j; import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationEventPublisher; -import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; /** * @author QingtaiJiang @@ -93,6 +88,8 @@ public class Jt808Decoder extends ByteToMessageDecoder { } + + /** * 转义与验证校验码 * diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0003.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0003.java index f32a4cb05..fa3221c5e 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0003.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0003.java @@ -1,13 +1,13 @@ 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.DeviceUpdateEvent; 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; -import io.netty.buffer.ByteBufUtil; import lombok.Getter; import lombok.extern.slf4j.Slf4j; import org.springframework.context.ApplicationEvent; @@ -20,27 +20,30 @@ import org.springframework.context.ApplicationEvent; @MsgId(id = "0003") public class J0003 extends Re { - int respNo; - String respId; - int result; + private JTDevice deviceForUpdate; @Override protected Rs decode0(ByteBuf buf, Header header, Session session) { - respNo = buf.readUnsignedShort(); - respId = ByteBufUtil.hexDump(buf.readSlice(2)); - result = buf.readUnsignedByte(); log.info("[JT-注销] 设备: {}", header.getPhoneNumber()); return null; } @Override protected Rs handler(Header header, Session session, Ijt1078Service service) { - SessionManager.INSTANCE.response(header.getPhoneNumber(), "0001", (long) respNo, result); +// SessionManager.INSTANCE.response(header.getPhoneNumber(), "0001", (long) respNo, result); + JTDevice device = service.getDevice(header.getPhoneNumber()); + if (device != null && device.isStatus()) { + deviceForUpdate = device; + deviceForUpdate.setStatus(false); + service.updateDevice(device); + } return null; } @Override public ApplicationEvent getEvent() { - return null; + DeviceUpdateEvent registerEvent = new DeviceUpdateEvent(this); + registerEvent.setDevice(deviceForUpdate); + return registerEvent; } }