1078-数据下行透传+数据上行透传 + 数据压缩上报 + 平台 RSA公钥 + 终端 RSA公钥

This commit is contained in:
648540858
2024-05-20 00:04:04 +08:00
parent 2f1ebca335
commit e085258d74
5 changed files with 286 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
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.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;
import io.netty.buffer.Unpooled;
import org.springframework.context.ApplicationEvent;
/**
* 数据上行透传
*/
@MsgId(id = "0900")
public class J0900 extends Re {
/**
* 透传消息类型, 0x00: GNSS 模块详细定位数据, 0X0B: 道路运输证 IC卡信息, 0X41: 串口1 透传, 0X42: 串口2 透传, 0XF0 ~ 0XFF: 用户自定义透传
*/
private Integer type;
/**
* 透传消息内容
*/
private byte[] content;
@Override
protected Rs decode0(ByteBuf buf, Header header, Session session) {
type = (int)buf.readUnsignedByte();
byte[] content = new byte[buf.readableBytes()];
buf.readBytes(content);
return null;
}
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId());
return null;
}
@Override
public ApplicationEvent getEvent() {
return null;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public byte[] getContent() {
return content;
}
public void setContent(byte[] content) {
this.content = content;
}
}

View File

@@ -0,0 +1,64 @@
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.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;
/**
* 数据压缩上报
*/
@MsgId(id = "0901")
public class J0901 extends Re {
/**
* 平台 RSA公钥{e ,n}中的 e
*/
private Long e;
/**
* RSA公钥{e ,n}中的 n
*/
private byte[] n;
@Override
protected Rs decode0(ByteBuf buf, Header header, Session session) {
e = buf.readUnsignedInt();
byte[] content = new byte[buf.readableBytes()];
buf.readBytes(content);
return null;
}
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId());
return null;
}
@Override
public ApplicationEvent getEvent() {
return null;
}
public Long getE() {
return e;
}
public void setE(Long e) {
this.e = e;
}
public byte[] getN() {
return n;
}
public void setN(byte[] n) {
this.n = n;
}
}

View File

@@ -0,0 +1,64 @@
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.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;
/**
* 终端 RSA公钥
*/
@MsgId(id = "0900")
public class J0A00 extends Re {
/**
* 透传消息类型, 0x00: GNSS 模块详细定位数据, 0X0B: 道路运输证 IC卡信息, 0X41: 串口1 透传, 0X42: 串口2 透传, 0XF0 ~ 0XFF: 用户自定义透传
*/
private Integer type;
/**
* 透传消息内容
*/
private byte[] content;
@Override
protected Rs decode0(ByteBuf buf, Header header, Session session) {
type = (int)buf.readUnsignedByte();
byte[] content = new byte[buf.readableBytes()];
buf.readBytes(content);
return null;
}
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId());
return null;
}
@Override
public ApplicationEvent getEvent() {
return null;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public byte[] getContent() {
return content;
}
public void setContent(byte[] content) {
this.content = content;
}
}

View File

@@ -0,0 +1,46 @@
package com.genersoft.iot.vmp.jt1078.proc.response;
import com.genersoft.iot.vmp.jt1078.annotation.MsgId;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
/**
* 数据下行透传
*/
@MsgId(id = "8900")
public class J8900 extends Rs {
/**
* 透传消息类型, 0x00: GNSS 模块详细定位数据, 0X0B: 道路运输证 IC卡信息, 0X41: 串口1 透传, 0X42: 串口2 透传, 0XF0 ~ 0XFF: 用户自定义透传
*/
private Integer type;
/**
* 透传消息内容
*/
private byte[] content;
@Override
public ByteBuf encode() {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeByte(type);
byteBuf.writeBytes(content);
return byteBuf;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public byte[] getContent() {
return content;
}
public void setContent(byte[] content) {
this.content = content;
}
}

View File

@@ -0,0 +1,46 @@
package com.genersoft.iot.vmp.jt1078.proc.response;
import com.genersoft.iot.vmp.jt1078.annotation.MsgId;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
/**
* 平台 RSA公钥
*/
@MsgId(id = "8A00")
public class J8A00 extends Rs {
/**
* 平台 RSA公钥{e ,n}中的 e
*/
private Long e;
/**
* RSA公钥{e ,n}中的 n
*/
private byte[] n;
@Override
public ByteBuf encode() {
ByteBuf byteBuf = Unpooled.buffer();
byteBuf.writeInt((int) (e & 0xffffffffL));
byteBuf.writeBytes(n);
return byteBuf;
}
public Long getE() {
return e;
}
public void setE(Long e) {
this.e = e;
}
public byte[] getN() {
return n;
}
public void setN(byte[] n) {
this.n = n;
}
}