diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JCommunicationModuleAttribute.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTCommunicationModuleAttribute.java similarity index 85% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/JCommunicationModuleAttribute.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTCommunicationModuleAttribute.java index d4363c6ec..836d6c7c0 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JCommunicationModuleAttribute.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTCommunicationModuleAttribute.java @@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; * JT 通信模块属性 */ @Schema(description = "JT通信模块属性") -public class JCommunicationModuleAttribute { +public class JTCommunicationModuleAttribute { private boolean gprs ; private boolean cdma ; @@ -17,7 +17,7 @@ public class JCommunicationModuleAttribute { private boolean other ; - public static JCommunicationModuleAttribute getInstance(short content) { + public static JTCommunicationModuleAttribute getInstance(short content) { boolean gprs = (content & 1) == 1; boolean cdma = (content >>> 1 & 1) == 1; boolean tdScdma = (content >>> 2 & 1) == 1; @@ -25,10 +25,10 @@ public class JCommunicationModuleAttribute { boolean cdma2000 = (content >>> 4 & 1) == 1; boolean tdLte = (content >>> 5 & 1) == 1; boolean other = (content >>> 7 & 1) == 1; - return new JCommunicationModuleAttribute(gprs, cdma, tdScdma, wcdma, cdma2000, tdLte, other); + return new JTCommunicationModuleAttribute(gprs, cdma, tdScdma, wcdma, cdma2000, tdLte, other); } - public JCommunicationModuleAttribute(boolean gprs, boolean cdma, boolean tdScdma, boolean wcdma, boolean cdma2000, boolean tdLte, boolean other) { + public JTCommunicationModuleAttribute(boolean gprs, boolean cdma, boolean tdScdma, boolean wcdma, boolean cdma2000, boolean tdLte, boolean other) { this.gprs = gprs; this.cdma = cdma; this.tdScdma = tdScdma; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JConfirmationAlarmMessageType.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTConfirmationAlarmMessageType.java similarity index 98% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/JConfirmationAlarmMessageType.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTConfirmationAlarmMessageType.java index d85b3cd4c..27ca0facd 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JConfirmationAlarmMessageType.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTConfirmationAlarmMessageType.java @@ -3,7 +3,7 @@ package com.genersoft.iot.vmp.jt1078.bean; import io.swagger.v3.oas.annotations.media.Schema; @Schema(description = "人工确认报警类型") -public class JConfirmationAlarmMessageType { +public class JTConfirmationAlarmMessageType { @Schema(description = "确认紧急报警") private boolean urgent; @Schema(description = "确认危险预警") diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceAttribute.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceAttribute.java index d4b89ca17..af80ec6e9 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceAttribute.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceAttribute.java @@ -1,10 +1,5 @@ package com.genersoft.iot.vmp.jt1078.bean; -import com.genersoft.iot.vmp.jt1078.bean.common.ConfigAttribute; -import com.genersoft.iot.vmp.jt1078.bean.config.CameraTimer; -import com.genersoft.iot.vmp.jt1078.bean.config.CollisionAlarmParams; -import com.genersoft.iot.vmp.jt1078.bean.config.GnssPositioningMode; -import com.genersoft.iot.vmp.jt1078.bean.config.IllegalDrivingPeriods; import io.swagger.v3.oas.annotations.media.Schema; /** @@ -35,10 +30,10 @@ public class JTDeviceAttribute { private String firmwareVersion ; @Schema(description = "GNSS 模块属性") - private JGnssAttribute gnssAttribute ; + private JTGnssAttribute gnssAttribute ; @Schema(description = "通信模块属性") - private JCommunicationModuleAttribute communicationModuleAttribute ; + private JTCommunicationModuleAttribute communicationModuleAttribute ; public JTDeviceType getType() { return type; @@ -96,19 +91,19 @@ public class JTDeviceAttribute { this.firmwareVersion = firmwareVersion; } - public JGnssAttribute getGnssAttribute() { + public JTGnssAttribute getGnssAttribute() { return gnssAttribute; } - public void setGnssAttribute(JGnssAttribute gnssAttribute) { + public void setGnssAttribute(JTGnssAttribute gnssAttribute) { this.gnssAttribute = gnssAttribute; } - public JCommunicationModuleAttribute getCommunicationModuleAttribute() { + public JTCommunicationModuleAttribute getCommunicationModuleAttribute() { return communicationModuleAttribute; } - public void setCommunicationModuleAttribute(JCommunicationModuleAttribute communicationModuleAttribute) { + public void setCommunicationModuleAttribute(JTCommunicationModuleAttribute communicationModuleAttribute) { this.communicationModuleAttribute = communicationModuleAttribute; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceConfig.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceConfig.java index ab6737bc7..502b3d49d 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceConfig.java @@ -116,7 +116,7 @@ public class JTDeviceConfig { private Integer fenceRadius; @ConfigAttribute(id = 0x32, type="IllegalDrivingPeriods", description = "违规行驶时段范围 ,精确到分") - private IllegalDrivingPeriods illegalDrivingPeriods; + private JTIllegalDrivingPeriods illegalDrivingPeriods; @ConfigAttribute(id = 0x40, type="String", description = "监控平台电话号码") private String platformPhoneNumber; @@ -188,13 +188,13 @@ public class JTDeviceConfig { private Integer drowsyDrivingWarningDifference; @ConfigAttribute(id = 0x5d, type="CollisionAlarmParams", description = "碰撞报警参数设置") - private CollisionAlarmParams collisionAlarmParams; + private JTCollisionAlarmParams collisionAlarmParams; @ConfigAttribute(id = 0x5e, type="Integer", description = "侧翻报警参数设置:侧翻角度,单位为度,默认为30") private Integer rolloverAlarm; @ConfigAttribute(id = 0x64, type="CameraTimer", description = "定时拍照控制") - private CameraTimer cameraTimer; + private JTCameraTimer cameraTimer; @ConfigAttribute(id = 0x70, type="Long", description = "图像/视频质量 设置范围为1~10 1表示最优质量") private Long qualityForVideo; @@ -212,25 +212,25 @@ public class JTDeviceConfig { private Long chroma; @ConfigAttribute(id = 0x75, type="VideoParam", description = "音视频参数设置") - private VideoParam videoParam; + private JTVideoParam videoParam; @ConfigAttribute(id = 0x76, type="ChannelListParam", description = "音视频通道列表设置") - private ChannelListParam channelListParam; + private JTChannelListParam channelListParam; @ConfigAttribute(id = 0x77, type="ChannelParam", description = "音视频通道列表设置") - private ChannelParam channelParam; + private JTChannelParam channelParam; @ConfigAttribute(id = 0x79, type="AlarmRecordingParam", description = "特殊报警录像参数设置") - private AlarmRecordingParam alarmRecordingParam; + private JTAlarmRecordingParam alarmRecordingParam; @ConfigAttribute(id = 0x7a, type="VideoAlarmBit", description = "视频相关报警屏蔽字") - private VideoAlarmBit videoAlarmBit; + private JTVideoAlarmBit videoAlarmBit; @ConfigAttribute(id = 0x7b, type="AnalyzeAlarmParam", description = "图像分析报警参数设置") - private AnalyzeAlarmParam analyzeAlarmParam; + private JTAnalyzeAlarmParam analyzeAlarmParam; @ConfigAttribute(id = 0x7c, type="AwakenParam", description = "终端休眠唤醒模式设置") - private AwakenParam awakenParam; + private JTAwakenParam awakenParam; @ConfigAttribute(id = 0x80, type="Long", description = "车辆里程表读数,单位'1/10km") private Long mileage; @@ -248,7 +248,7 @@ public class JTDeviceConfig { private Short licensePlateColor; @ConfigAttribute(id = 0x90, type="Short", description = "GNSS定位模式") - private GnssPositioningMode gnssPositioningMode; + private JTGnssPositioningMode gnssPositioningMode; @ConfigAttribute(id = 0x91, type="Short", description = "GNSS 波特率,定义如下: 0: 4800, 1:9600, 2:19200, 3:38400, 4:57600, 5:115200") private Short gnssBaudRate; @@ -289,11 +289,11 @@ public class JTDeviceConfig { private Integer canUploadIntervalForChannel2; - public AnalyzeAlarmParam getAnalyzeAlarmParam() { + public JTAnalyzeAlarmParam getAnalyzeAlarmParam() { return analyzeAlarmParam; } - public void setAnalyzeAlarmParam(AnalyzeAlarmParam analyzeAlarmParam) { + public void setAnalyzeAlarmParam(JTAnalyzeAlarmParam analyzeAlarmParam) { this.analyzeAlarmParam = analyzeAlarmParam; } @@ -577,11 +577,11 @@ public class JTDeviceConfig { this.fenceRadius = fenceRadius; } - public IllegalDrivingPeriods getIllegalDrivingPeriods() { + public JTIllegalDrivingPeriods getIllegalDrivingPeriods() { return illegalDrivingPeriods; } - public void setIllegalDrivingPeriods(IllegalDrivingPeriods illegalDrivingPeriods) { + public void setIllegalDrivingPeriods(JTIllegalDrivingPeriods illegalDrivingPeriods) { this.illegalDrivingPeriods = illegalDrivingPeriods; } @@ -769,11 +769,11 @@ public class JTDeviceConfig { this.drowsyDrivingWarningDifference = drowsyDrivingWarningDifference; } - public CollisionAlarmParams getCollisionAlarmParams() { + public JTCollisionAlarmParams getCollisionAlarmParams() { return collisionAlarmParams; } - public void setCollisionAlarmParams(CollisionAlarmParams collisionAlarmParams) { + public void setCollisionAlarmParams(JTCollisionAlarmParams collisionAlarmParams) { this.collisionAlarmParams = collisionAlarmParams; } @@ -785,11 +785,11 @@ public class JTDeviceConfig { this.rolloverAlarm = rolloverAlarm; } - public CameraTimer getCameraTimer() { + public JTCameraTimer getCameraTimer() { return cameraTimer; } - public void setCameraTimer(CameraTimer cameraTimer) { + public void setCameraTimer(JTCameraTimer cameraTimer) { this.cameraTimer = cameraTimer; } @@ -873,11 +873,11 @@ public class JTDeviceConfig { this.licensePlateColor = licensePlateColor; } - public GnssPositioningMode getGnssPositioningMode() { + public JTGnssPositioningMode getGnssPositioningMode() { return gnssPositioningMode; } - public void setGnssPositioningMode(GnssPositioningMode gnssPositioningMode) { + public void setGnssPositioningMode(JTGnssPositioningMode gnssPositioningMode) { this.gnssPositioningMode = gnssPositioningMode; } @@ -953,46 +953,55 @@ public class JTDeviceConfig { this.canUploadIntervalForChannel2 = canUploadIntervalForChannel2; } - public VideoParam getVideoParam() { + public JTVideoParam getVideoParam() { return videoParam; } - public void setVideoParam(VideoParam videoParam) { + public void setVideoParam(JTVideoParam videoParam) { this.videoParam = videoParam; } - public ChannelListParam getChannelListParam() { + public JTChannelListParam getChannelListParam() { return channelListParam; } - public void setChannelListParam(ChannelListParam channelListParam) { + public void setChannelListParam(JTChannelListParam channelListParam) { this.channelListParam = channelListParam; } - public ChannelParam getChannelParam() { + public JTChannelParam getChannelParam() { return channelParam; } - public void setChannelParam(ChannelParam channelParam) { + public void setChannelParam(JTChannelParam channelParam) { this.channelParam = channelParam; } - public AlarmRecordingParam getAlarmRecordingParam() { + public JTAlarmRecordingParam getAlarmRecordingParam() { return alarmRecordingParam; } - public void setAlarmRecordingParam(AlarmRecordingParam alarmRecordingParam) { + public void setAlarmRecordingParam(JTAlarmRecordingParam alarmRecordingParam) { this.alarmRecordingParam = alarmRecordingParam; } - public VideoAlarmBit getVideoAlarmBit() { + public JTVideoAlarmBit getVideoAlarmBit() { return videoAlarmBit; } - public void setVideoAlarmBit(VideoAlarmBit videoAlarmBit) { + public void setVideoAlarmBit(JTVideoAlarmBit videoAlarmBit) { this.videoAlarmBit = videoAlarmBit; } + + public JTAwakenParam getAwakenParam() { + return awakenParam; + } + + public void setAwakenParam(JTAwakenParam awakenParam) { + this.awakenParam = awakenParam; + } + @Override public String toString() { return "JTDeviceConfig{" + diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceConnectionControl.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceConnectionControl.java index 167873c6a..d06aa4399 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceConnectionControl.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTDeviceConnectionControl.java @@ -1,10 +1,5 @@ package com.genersoft.iot.vmp.jt1078.bean; -import com.genersoft.iot.vmp.jt1078.bean.common.ConfigAttribute; -import com.genersoft.iot.vmp.jt1078.bean.config.CameraTimer; -import com.genersoft.iot.vmp.jt1078.bean.config.CollisionAlarmParams; -import com.genersoft.iot.vmp.jt1078.bean.config.GnssPositioningMode; -import com.genersoft.iot.vmp.jt1078.bean.config.IllegalDrivingPeriods; import io.swagger.v3.oas.annotations.media.Schema; /** diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JGnssAttribute.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTGnssAttribute.java similarity index 85% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/JGnssAttribute.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTGnssAttribute.java index a6ef53a72..e128d65bd 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JGnssAttribute.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTGnssAttribute.java @@ -6,7 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; * JT GNSS 模块属性 */ @Schema(description = "JTGNSS 模块属性") -public class JGnssAttribute { +public class JTGnssAttribute { private boolean gps; @@ -16,15 +16,15 @@ public class JGnssAttribute { private boolean gaLiLeo; - public static JGnssAttribute getInstance(short content) { + public static JTGnssAttribute getInstance(short content) { boolean gps = (content & 1) == 1; boolean beidou = (content >>> 1 & 1) == 1; boolean glonass = (content >>> 2 & 1) == 1; boolean gaLiLeo = (content >>> 3 & 1) == 1; - return new JGnssAttribute(gps, beidou, glonass, gaLiLeo); + return new JTGnssAttribute(gps, beidou, glonass, gaLiLeo); } - public JGnssAttribute(boolean gps, boolean beidou, boolean glonass, boolean gaLiLeo) { + public JTGnssAttribute(boolean gps, boolean beidou, boolean glonass, boolean gaLiLeo) { this.gps = gps; this.beidou = beidou; this.glonass = glonass; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTMediaAttribute.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTMediaAttribute.java new file mode 100644 index 000000000..4fc8dfbec --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/JTMediaAttribute.java @@ -0,0 +1,197 @@ +package com.genersoft.iot.vmp.jt1078.bean; + +import com.genersoft.iot.vmp.jt1078.bean.config.JTDeviceSubConfig; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + +/** + * 终端上传音视频属性 + */ +public class JTMediaAttribute implements JTDeviceSubConfig { + + /** + * 输入音频编码方式: + * 1 G. 721 + * 2 G. 722 + * 3 G. 723 + * 4 G. 728 + * 5 G. 729 + * 6 G. 711A + * 7 G. 711U + * 8 G. 726 + * 9 G. 729A + * 10 DVI4 3 + * 11 DVI4 4 + * 12 DVI4 8K + * 13 DVI4 16K + * 14 LPC + * 15 S16BE STEREO + * 16 S16BE MONO + * 17 MPEGAUDIO + * 18 LPCM + * 19 AAC + * 20 WMA9STD + * 21 HEAAC + * 22 PCM VOICE + * 23 PCM AUDIO + * 24 AACLC + * 25 MP3 + * 26 ADPCMA + * 27 MP4AUDIO + * 28 AMR + */ + private int audioEncoder; + + /** + * 输入音频声道数 + */ + private int audioChannels; + + /** + * 输入音频采样率: + * 0:8 kHz; + * 1:22. 05 kHz; + * 2:44. 1 kHz; + * 3:48 kHz + */ + private int audioSamplingRate; + + /** + * 输入音频采样位数: + * 0:8 位; + * 1:16 位; + * 2:32 位 + */ + private int audioSamplingBits; + + /** + * 音频帧长度: 范围 1 ~ 4 294 967 295 + */ + private int audioFrameLength; + + /** + * 是否支持音频输出: + * 0:不支持;1:支持 + */ + private int audioOutputEnable; + + /** + * 视频编码方式: + * 98 H. 264 + * 99 H. 265 + * 100 AVS + * 101 SVAC + */ + private int videoEncoder; + + /** + * 终端支持的最大音频物理通道数量: + */ + private int audioChannelMax; + + /** + * 终端支持的最大视频物理通道数量: + */ + private int videoChannelMax; + + public int getAudioEncoder() { + return audioEncoder; + } + + public void setAudioEncoder(int audioEncoder) { + this.audioEncoder = audioEncoder; + } + + public int getAudioChannels() { + return audioChannels; + } + + public void setAudioChannels(int audioChannels) { + this.audioChannels = audioChannels; + } + + public int getAudioSamplingRate() { + return audioSamplingRate; + } + + public void setAudioSamplingRate(int audioSamplingRate) { + this.audioSamplingRate = audioSamplingRate; + } + + public int getAudioFrameLength() { + return audioFrameLength; + } + + public void setAudioFrameLength(int audioFrameLength) { + this.audioFrameLength = audioFrameLength; + } + + public int getAudioOutputEnable() { + return audioOutputEnable; + } + + public void setAudioOutputEnable(int audioOutputEnable) { + this.audioOutputEnable = audioOutputEnable; + } + + public int getVideoEncoder() { + return videoEncoder; + } + + public void setVideoEncoder(int videoEncoder) { + this.videoEncoder = videoEncoder; + } + + public int getAudioChannelMax() { + return audioChannelMax; + } + + public void setAudioChannelMax(int audioChannelMax) { + this.audioChannelMax = audioChannelMax; + } + + public int getVideoChannelMax() { + return videoChannelMax; + } + + public void setVideoChannelMax(int videoChannelMax) { + this.videoChannelMax = videoChannelMax; + } + + public int getAudioSamplingBits() { + return audioSamplingBits; + } + + public void setAudioSamplingBits(int audioSamplingBits) { + this.audioSamplingBits = audioSamplingBits; + } + + @Override + public ByteBuf encode() { + ByteBuf byteBuf = Unpooled.buffer(); + byteBuf.writeByte(audioEncoder); + byteBuf.writeByte(audioChannels); + byteBuf.writeByte(audioSamplingRate); + byteBuf.writeByte(audioSamplingBits); + byteBuf.writeShort(audioFrameLength); + byteBuf.writeByte(audioOutputEnable); + byteBuf.writeByte(videoEncoder); + byteBuf.writeByte(audioChannelMax); + byteBuf.writeByte(videoChannelMax); + return byteBuf; + } + + public static JTMediaAttribute decode(ByteBuf byteBuf) { + JTMediaAttribute jtMediaAttribute = new JTMediaAttribute(); + jtMediaAttribute.setAudioEncoder(byteBuf.readUnsignedByte()); + jtMediaAttribute.setAudioChannels(byteBuf.readUnsignedByte()); + jtMediaAttribute.setAudioSamplingRate(byteBuf.readUnsignedByte()); + jtMediaAttribute.setAudioSamplingBits(byteBuf.readUnsignedByte()); + jtMediaAttribute.setAudioFrameLength(byteBuf.readUnsignedShort()); + jtMediaAttribute.setAudioOutputEnable(byteBuf.readUnsignedByte()); + jtMediaAttribute.setVideoEncoder(byteBuf.readUnsignedByte()); + jtMediaAttribute.setAudioChannelMax(byteBuf.readUnsignedByte()); + jtMediaAttribute.setVideoChannelMax(byteBuf.readUnsignedByte()); + return jtMediaAttribute; + } +} diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/AwakenParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/AwakenParam.java deleted file mode 100644 index 6f84e2945..000000000 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/AwakenParam.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.genersoft.iot.vmp.jt1078.bean.config; - -import io.netty.buffer.ByteBuf; - -public class AwakenParam implements JTDeviceSubConfig{ - - @Override - public ByteBuf encode() { - return null; - } -} diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/AlarmRecordingParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAlarmRecordingParam.java similarity index 88% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/AlarmRecordingParam.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAlarmRecordingParam.java index d2dcb07dd..136881cc8 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/AlarmRecordingParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAlarmRecordingParam.java @@ -6,7 +6,7 @@ import io.netty.buffer.Unpooled; /** * 特殊报警录像参数 */ -public class AlarmRecordingParam implements JTDeviceSubConfig{ +public class JTAlarmRecordingParam implements JTDeviceSubConfig{ /** * 特殊报警录像存储阈值, 分比,取值 特殊报警录像占用主存储器存储阈值百 1 ~ 99,默认值为 20 @@ -56,8 +56,8 @@ public class AlarmRecordingParam implements JTDeviceSubConfig{ return byteBuf; } - public static AlarmRecordingParam decode(ByteBuf byteBuf) { - AlarmRecordingParam alarmRecordingParam = new AlarmRecordingParam(); + public static JTAlarmRecordingParam decode(ByteBuf byteBuf) { + JTAlarmRecordingParam alarmRecordingParam = new JTAlarmRecordingParam(); alarmRecordingParam.setStorageLimit(byteBuf.readUnsignedByte()); alarmRecordingParam.setDuration(byteBuf.readUnsignedByte()); alarmRecordingParam.setStartTime(byteBuf.readUnsignedByte()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAloneChanel.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAloneChanel.java index aafda5584..8c1385230 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAloneChanel.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAloneChanel.java @@ -91,7 +91,7 @@ public class JTAloneChanel implements JTDeviceSubConfig{ /** * 字幕叠加设置 */ - private OSDConfig osd; + private JTOSDConfig osd; public int getLogicChannelId() { return logicChannelId; @@ -181,11 +181,11 @@ public class JTAloneChanel implements JTDeviceSubConfig{ this.storageStreamCodeRate = storageStreamCodeRate; } - public OSDConfig getOsd() { + public JTOSDConfig getOsd() { return osd; } - public void setOsd(OSDConfig osd) { + public void setOsd(JTOSDConfig osd) { this.osd = osd; } @@ -222,7 +222,7 @@ public class JTAloneChanel implements JTDeviceSubConfig{ jtAloneChanel.setStorageStreamIInterval(buf.readUnsignedShort()); jtAloneChanel.setStorageStreamFrameRate(buf.readByte()); jtAloneChanel.setStorageStreamCodeRate(buf.readUnsignedInt()); - jtAloneChanel.setOsd(OSDConfig.decode(buf)); + jtAloneChanel.setOsd(JTOSDConfig.decode(buf)); return null; } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/AnalyzeAlarmParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAnalyzeAlarmParam.java similarity index 84% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/AnalyzeAlarmParam.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAnalyzeAlarmParam.java index 090b2c587..a1acc62ea 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/AnalyzeAlarmParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAnalyzeAlarmParam.java @@ -6,7 +6,7 @@ import io.netty.buffer.Unpooled; /** * 视频分析报警参数 */ -public class AnalyzeAlarmParam implements JTDeviceSubConfig{ +public class JTAnalyzeAlarmParam implements JTDeviceSubConfig{ /** * 车辆核载人数 @@ -44,8 +44,8 @@ public class AnalyzeAlarmParam implements JTDeviceSubConfig{ return byteBuf; } - public static AnalyzeAlarmParam decode(ByteBuf byteBuf) { - AnalyzeAlarmParam analyzeAlarmParam = new AnalyzeAlarmParam(); + public static JTAnalyzeAlarmParam decode(ByteBuf byteBuf) { + JTAnalyzeAlarmParam analyzeAlarmParam = new JTAnalyzeAlarmParam(); analyzeAlarmParam.setNumberForPeople(byteBuf.readUnsignedByte()); analyzeAlarmParam.setFatigueThreshold(byteBuf.readUnsignedByte()); return analyzeAlarmParam; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAwakenParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAwakenParam.java new file mode 100644 index 000000000..10d352a6a --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTAwakenParam.java @@ -0,0 +1,466 @@ +package com.genersoft.iot.vmp.jt1078.bean.config; + +import com.genersoft.iot.vmp.jt1078.util.BCDUtil; +import io.netty.buffer.ByteBuf; +import io.netty.buffer.Unpooled; + +/** + * 终端休眠唤醒模式设置 + */ +public class JTAwakenParam implements JTDeviceSubConfig{ + + /** + * 休眠唤醒模式-条件唤醒 + */ + private boolean wakeUpModeByCondition; + + /** + * 休眠唤醒模式-定时唤醒 + */ + private boolean wakeUpModeByTime; + + /** + * 休眠唤醒模式-手动唤醒 + */ + private boolean wakeUpModeByManual; + + /** + * 唤醒条件类型-紧急报警 + */ + private boolean wakeUpConditionsByAlarm; + + /** + * 唤醒条件类型-碰撞侧翻报警 + */ + private boolean wakeUpConditionsByRollover; + + /** + * 唤醒条件类型-车辆开门 + */ + private boolean wakeUpConditionsByOpenTheDoor; + + /** + * 定时唤醒日设置-周一 + */ + private boolean awakeningDayForMonday; + + /** + * 定时唤醒日设置-周二 + */ + private boolean awakeningDayForTuesday; + + /** + * 定时唤醒日设置-周三 + */ + private boolean awakeningDayForWednesday; + + /** + * 定时唤醒日设置-周四 + */ + private boolean awakeningDayForThursday; + + /** + * 定时唤醒日设置-周五 + */ + private boolean awakeningDayForFriday; + + /** + * 定时唤醒日设置-周六 + */ + private boolean awakeningDayForSaturday; + + /** + * 定时唤醒日设置-周日 + */ + private boolean awakeningDayForSunday; + + /** + * 日定时唤醒-启用时间段1 + */ + private boolean time1Enable; + + /** + * 日定时唤醒-时间段1开始时间 + */ + private String time1StartTime; + + /** + * 日定时唤醒-时间段1结束时间 + */ + private String time1EndTime; + + /** + * 日定时唤醒-启用时间段2 + */ + private boolean time2Enable; + + /** + * 日定时唤醒-时间段2开始时间 + */ + private String time2StartTime; + + /** + * 日定时唤醒-时间段2结束时间 + */ + private String time2EndTime; + + /** + * 日定时唤醒-启用时间段3 + */ + private boolean time3Enable; + + /** + * 日定时唤醒-时间段3开始时间 + */ + private String time3StartTime; + + /** + * 日定时唤醒-时间段3结束时间 + */ + private String time3EndTime; + + /** + * 日定时唤醒-启用时间段4 + */ + private boolean time4Enable; + + /** + * 日定时唤醒-时间段4开始时间 + */ + private String time4StartTime; + + /** + * 日定时唤醒-时间段4结束时间 + */ + private String time4EndTime; + + public boolean isWakeUpModeByCondition() { + return wakeUpModeByCondition; + } + + public void setWakeUpModeByCondition(boolean wakeUpModeByCondition) { + this.wakeUpModeByCondition = wakeUpModeByCondition; + } + + public boolean isWakeUpModeByTime() { + return wakeUpModeByTime; + } + + public void setWakeUpModeByTime(boolean wakeUpModeByTime) { + this.wakeUpModeByTime = wakeUpModeByTime; + } + + public boolean isWakeUpModeByManual() { + return wakeUpModeByManual; + } + + public void setWakeUpModeByManual(boolean wakeUpModeByManual) { + this.wakeUpModeByManual = wakeUpModeByManual; + } + + public boolean isWakeUpConditionsByAlarm() { + return wakeUpConditionsByAlarm; + } + + public void setWakeUpConditionsByAlarm(boolean wakeUpConditionsByAlarm) { + this.wakeUpConditionsByAlarm = wakeUpConditionsByAlarm; + } + + public boolean isWakeUpConditionsByRollover() { + return wakeUpConditionsByRollover; + } + + public void setWakeUpConditionsByRollover(boolean wakeUpConditionsByRollover) { + this.wakeUpConditionsByRollover = wakeUpConditionsByRollover; + } + + public boolean isWakeUpConditionsByOpenTheDoor() { + return wakeUpConditionsByOpenTheDoor; + } + + public void setWakeUpConditionsByOpenTheDoor(boolean wakeUpConditionsByOpenTheDoor) { + this.wakeUpConditionsByOpenTheDoor = wakeUpConditionsByOpenTheDoor; + } + + public boolean isAwakeningDayForMonday() { + return awakeningDayForMonday; + } + + public void setAwakeningDayForMonday(boolean awakeningDayForMonday) { + this.awakeningDayForMonday = awakeningDayForMonday; + } + + public boolean isAwakeningDayForTuesday() { + return awakeningDayForTuesday; + } + + public void setAwakeningDayForTuesday(boolean awakeningDayForTuesday) { + this.awakeningDayForTuesday = awakeningDayForTuesday; + } + + public boolean isAwakeningDayForWednesday() { + return awakeningDayForWednesday; + } + + public void setAwakeningDayForWednesday(boolean awakeningDayForWednesday) { + this.awakeningDayForWednesday = awakeningDayForWednesday; + } + + public boolean isAwakeningDayForThursday() { + return awakeningDayForThursday; + } + + public void setAwakeningDayForThursday(boolean awakeningDayForThursday) { + this.awakeningDayForThursday = awakeningDayForThursday; + } + + public boolean isAwakeningDayForFriday() { + return awakeningDayForFriday; + } + + public void setAwakeningDayForFriday(boolean awakeningDayForFriday) { + this.awakeningDayForFriday = awakeningDayForFriday; + } + + public boolean isAwakeningDayForSaturday() { + return awakeningDayForSaturday; + } + + public void setAwakeningDayForSaturday(boolean awakeningDayForSaturday) { + this.awakeningDayForSaturday = awakeningDayForSaturday; + } + + public boolean isAwakeningDayForSunday() { + return awakeningDayForSunday; + } + + public void setAwakeningDayForSunday(boolean awakeningDayForSunday) { + this.awakeningDayForSunday = awakeningDayForSunday; + } + + public boolean isTime1Enable() { + return time1Enable; + } + + public void setTime1Enable(boolean time1Enable) { + this.time1Enable = time1Enable; + } + + public String getTime1StartTime() { + return time1StartTime; + } + + public void setTime1StartTime(String time1StartTime) { + this.time1StartTime = time1StartTime; + } + + public String getTime1EndTime() { + return time1EndTime; + } + + public void setTime1EndTime(String time1EndTime) { + this.time1EndTime = time1EndTime; + } + + public boolean isTime2Enable() { + return time2Enable; + } + + public void setTime2Enable(boolean time2Enable) { + this.time2Enable = time2Enable; + } + + public String getTime2StartTime() { + return time2StartTime; + } + + public void setTime2StartTime(String time2StartTime) { + this.time2StartTime = time2StartTime; + } + + public String getTime2EndTime() { + return time2EndTime; + } + + public void setTime2EndTime(String time2EndTime) { + this.time2EndTime = time2EndTime; + } + + public boolean isTime3Enable() { + return time3Enable; + } + + public void setTime3Enable(boolean time3Enable) { + this.time3Enable = time3Enable; + } + + public String getTime3StartTime() { + return time3StartTime; + } + + public void setTime3StartTime(String time3StartTime) { + this.time3StartTime = time3StartTime; + } + + public String getTime3EndTime() { + return time3EndTime; + } + + public void setTime3EndTime(String time3EndTime) { + this.time3EndTime = time3EndTime; + } + + public boolean isTime4Enable() { + return time4Enable; + } + + public void setTime4Enable(boolean time4Enable) { + this.time4Enable = time4Enable; + } + + public String getTime4StartTime() { + return time4StartTime; + } + + public void setTime4StartTime(String time4StartTime) { + this.time4StartTime = time4StartTime; + } + + public String getTime4EndTime() { + return time4EndTime; + } + + public void setTime4EndTime(String time4EndTime) { + this.time4EndTime = time4EndTime; + } + + @Override + public ByteBuf encode() { + ByteBuf byteBuf = Unpooled.buffer(); + byte wakeUpTypeByte = 0; + byte wakeUpConditionsByte = 0; + byte wakeDayByte = 0; + if (wakeUpModeByCondition) { + wakeUpTypeByte = (byte)(wakeUpTypeByte | 1); + } + if (wakeUpModeByTime) { + wakeUpTypeByte = (byte)(wakeUpTypeByte | (1 << 1)); + } + if (wakeUpModeByManual) { + wakeUpTypeByte = (byte)(wakeUpTypeByte | (1 << 2)); + } + byteBuf.writeByte(wakeUpTypeByte); + if (wakeUpConditionsByAlarm) { + wakeUpConditionsByte = (byte)(wakeUpConditionsByte | 1); + } + if (wakeUpConditionsByRollover) { + wakeUpConditionsByte = (byte)(wakeUpConditionsByte | (1 << 1)); + } + if (wakeUpConditionsByOpenTheDoor) { + wakeUpConditionsByte = (byte)(wakeUpConditionsByte | (1 << 2)); + } + byteBuf.writeByte(wakeUpConditionsByte); + if (awakeningDayForMonday) { + wakeDayByte = (byte)(wakeDayByte | 1); + } + if (awakeningDayForTuesday) { + wakeDayByte = (byte)(wakeDayByte | (1 << 1)); + } + if (awakeningDayForWednesday) { + wakeDayByte = (byte)(wakeDayByte | (1 << 2)); + } + if (awakeningDayForThursday) { + wakeDayByte = (byte)(wakeDayByte | (1 << 3)); + } + if (awakeningDayForFriday) { + wakeDayByte = (byte)(wakeDayByte | (1 << 4)); + } + if (awakeningDayForSaturday) { + wakeDayByte = (byte)(wakeDayByte | (1 << 5)); + } + if (awakeningDayForSunday) { + wakeDayByte = (byte)(wakeDayByte | (1 << 6)); + } + byteBuf.writeByte(wakeDayByte); + byte enableByte = 0; + if (time1Enable) { + enableByte = (byte)(enableByte | 1); + } + if (time2Enable) { + enableByte = (byte)(enableByte | (1 << 1)); + } + if (time3Enable) { + enableByte = (byte)(enableByte | (1 << 2)); + } + if (time4Enable) { + enableByte = (byte)(enableByte | (1 << 3)); + } + byteBuf.writeByte(enableByte); + byteBuf.writeBytes(transportTime(time1StartTime)); + byteBuf.writeBytes(transportTime(time1EndTime)); + byteBuf.writeBytes(transportTime(time2StartTime)); + byteBuf.writeBytes(transportTime(time2EndTime)); + byteBuf.writeBytes(transportTime(time3StartTime)); + byteBuf.writeBytes(transportTime(time3EndTime)); + byteBuf.writeBytes(transportTime(time4StartTime)); + byteBuf.writeBytes(transportTime(time4EndTime)); + return byteBuf; + } + + private byte[] transportTime(String time) { + return BCDUtil.strToBcd(time.replace(":", "")); + } + + public static JTAwakenParam decode(ByteBuf byteBuf) { + JTAwakenParam awakenParam = new JTAwakenParam(); + short wakeUpTypeByte = byteBuf.readUnsignedByte(); + awakenParam.wakeUpModeByCondition = ((wakeUpTypeByte & 1) == 1); + awakenParam.wakeUpModeByTime = ((wakeUpTypeByte >>> 1 & 1) == 1); + awakenParam.wakeUpModeByManual = ((wakeUpTypeByte >>> 2 & 1) == 1); + + short wakeUpConditionsByte = byteBuf.readUnsignedByte(); + awakenParam.wakeUpConditionsByAlarm = ((wakeUpConditionsByte & 1) == 1); + awakenParam.wakeUpConditionsByRollover = ((wakeUpConditionsByte >>> 1 & 1) == 1); + awakenParam.wakeUpConditionsByOpenTheDoor = ((wakeUpConditionsByte >>> 2 & 1) == 1); + + short wakeDayByte = byteBuf.readUnsignedByte(); + awakenParam.awakeningDayForMonday = ((wakeDayByte & 1) == 1); + awakenParam.awakeningDayForTuesday = ((wakeDayByte >>> 1 & 1) == 1); + awakenParam.awakeningDayForWednesday = ((wakeDayByte >>> 2 & 1) == 1); + awakenParam.awakeningDayForThursday = ((wakeDayByte >>> 3 & 1) == 1); + awakenParam.awakeningDayForFriday = ((wakeDayByte >>> 4 & 1) == 1); + awakenParam.awakeningDayForSaturday = ((wakeDayByte >>> 5 & 1) == 1); + awakenParam.awakeningDayForSunday = ((wakeDayByte >>> 6 & 1) == 1); + short enableByte = byteBuf.readUnsignedByte(); + awakenParam.time1Enable = ((enableByte & 1) == 1); + awakenParam.time2Enable = ((enableByte >>> 1 & 1) == 1); + awakenParam.time3Enable = ((enableByte >>> 2 & 1) == 1); + awakenParam.time4Enable = ((enableByte >>> 3 & 1) == 1); + byte[] timeBytes = new byte[2]; + byteBuf.readBytes(timeBytes); + awakenParam.time1StartTime = transportTime(timeBytes); + byteBuf.readBytes(timeBytes); + awakenParam.time1EndTime = transportTime(timeBytes); + + byteBuf.readBytes(timeBytes); + awakenParam.time2StartTime = transportTime(timeBytes); + byteBuf.readBytes(timeBytes); + awakenParam.time2EndTime = transportTime(timeBytes); + + byteBuf.readBytes(timeBytes); + awakenParam.time3StartTime = transportTime(timeBytes); + byteBuf.readBytes(timeBytes); + awakenParam.time3EndTime = transportTime(timeBytes); + + byteBuf.readBytes(timeBytes); + awakenParam.time4StartTime = transportTime(timeBytes); + byteBuf.readBytes(timeBytes); + awakenParam.time4EndTime = transportTime(timeBytes); + return awakenParam; + } + + private static String transportTime(byte[] timeBytes) { + String time1Str = BCDUtil.transform(timeBytes); + return time1Str.replace(time1Str.substring(0, 2), time1Str.substring(0, 2) + ":"); + } +} diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/CameraTimer.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTCameraTimer.java similarity index 98% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/CameraTimer.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTCameraTimer.java index 4c74e8d06..0b97af088 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/CameraTimer.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTCameraTimer.java @@ -6,7 +6,7 @@ import io.netty.buffer.Unpooled; /** * 定时拍照控制 */ -public class CameraTimer implements JTDeviceSubConfig{ +public class JTCameraTimer implements JTDeviceSubConfig{ /** * 摄像通道1 定时拍照开关标志 */ diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/ChannelListParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTChannelListParam.java similarity index 91% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/ChannelListParam.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTChannelListParam.java index a13d18d82..da0c73194 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/ChannelListParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTChannelListParam.java @@ -9,7 +9,7 @@ import java.util.List; /** * 音视频通道列表设置 */ -public class ChannelListParam implements JTDeviceSubConfig{ +public class JTChannelListParam implements JTDeviceSubConfig{ /** * 音视频通道总数 @@ -73,8 +73,8 @@ public class ChannelListParam implements JTDeviceSubConfig{ return byteBuf; } - public static ChannelListParam decode(ByteBuf byteBuf) { - ChannelListParam channelListParam = new ChannelListParam(); + public static JTChannelListParam decode(ByteBuf byteBuf) { + JTChannelListParam channelListParam = new JTChannelListParam(); channelListParam.setVideoAndAudioCount(byteBuf.readUnsignedByte()); channelListParam.setAudioCount(byteBuf.readUnsignedByte()); channelListParam.setVideoCount(byteBuf.readUnsignedByte()); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/ChannelParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTChannelParam.java similarity index 87% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/ChannelParam.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTChannelParam.java index 92d4dcd90..66b63ce05 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/ChannelParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTChannelParam.java @@ -9,7 +9,7 @@ import java.util.List; /** * 单独视频通道参数设置 */ -public class ChannelParam implements JTDeviceSubConfig { +public class JTChannelParam implements JTDeviceSubConfig { /** * 单独通道视频参数设置列表 @@ -34,8 +34,8 @@ public class ChannelParam implements JTDeviceSubConfig { return byteBuf; } - public static ChannelParam decode(ByteBuf byteBuf) { - ChannelParam channelParam = new ChannelParam(); + public static JTChannelParam decode(ByteBuf byteBuf) { + JTChannelParam channelParam = new JTChannelParam(); int length = byteBuf.readUnsignedByte(); List jtAloneChanelList = new ArrayList<>(length); for (int i = 0; i < length; i++) { diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/CollisionAlarmParams.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTCollisionAlarmParams.java similarity index 94% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/CollisionAlarmParams.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTCollisionAlarmParams.java index 2f1787eb5..c7e0c171d 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/CollisionAlarmParams.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTCollisionAlarmParams.java @@ -6,7 +6,7 @@ import io.netty.buffer.Unpooled; /** * 碰撞报警参数设置 */ -public class CollisionAlarmParams implements JTDeviceSubConfig{ +public class JTCollisionAlarmParams implements JTDeviceSubConfig{ /** * 碰撞时间 单位为毫秒(ms) diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTDeviceSubConfig.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTDeviceSubConfig.java index 7c5f5ad14..96d301512 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTDeviceSubConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTDeviceSubConfig.java @@ -4,5 +4,4 @@ import io.netty.buffer.ByteBuf; public interface JTDeviceSubConfig { ByteBuf encode(); - } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/GnssPositioningMode.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTGnssPositioningMode.java similarity index 96% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/GnssPositioningMode.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTGnssPositioningMode.java index b8ce04b9c..b6539a749 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/GnssPositioningMode.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTGnssPositioningMode.java @@ -6,7 +6,7 @@ import io.netty.buffer.Unpooled; /** * GNSS 定位模式 */ -public class GnssPositioningMode implements JTDeviceSubConfig{ +public class JTGnssPositioningMode implements JTDeviceSubConfig{ /** * GPS 定位 true: 开启, false: 关闭 diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/IllegalDrivingPeriods.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTIllegalDrivingPeriods.java similarity index 94% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/IllegalDrivingPeriods.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTIllegalDrivingPeriods.java index b3207dbf0..ad2250328 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/IllegalDrivingPeriods.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTIllegalDrivingPeriods.java @@ -6,7 +6,7 @@ import io.netty.buffer.Unpooled; /** * 违规行驶时段范围 ,精确到分 */ -public class IllegalDrivingPeriods implements JTDeviceSubConfig{ +public class JTIllegalDrivingPeriods implements JTDeviceSubConfig{ /** * 违规行驶时段-开始时间 HH:mm */ diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/OSDConfig.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTOSDConfig.java similarity index 95% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/OSDConfig.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTOSDConfig.java index 8187e262b..9d1ce8622 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/OSDConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTOSDConfig.java @@ -6,7 +6,7 @@ import io.netty.buffer.Unpooled; /** * OSD字幕叠加设置 */ -public class OSDConfig { +public class JTOSDConfig { /** * 日期和时间 @@ -129,8 +129,8 @@ public class OSDConfig { } - public static OSDConfig decode(ByteBuf buf) { - OSDConfig config = new OSDConfig(); + public static JTOSDConfig decode(ByteBuf buf) { + JTOSDConfig config = new JTOSDConfig(); int content = buf.readUnsignedShort(); config.setTime((content & 1) == 1); config.setLicensePlate((content >>> 1 & 1) == 1); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/VideoAlarmBit.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTVideoAlarmBit.java similarity index 95% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/VideoAlarmBit.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTVideoAlarmBit.java index ada8514bd..27a52b347 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/VideoAlarmBit.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTVideoAlarmBit.java @@ -6,7 +6,7 @@ import io.netty.buffer.Unpooled; /** * 视频报警标志位 */ -public class VideoAlarmBit implements JTDeviceSubConfig{ +public class JTVideoAlarmBit implements JTDeviceSubConfig{ /** * 视频信号丢失报警 @@ -125,8 +125,8 @@ public class VideoAlarmBit implements JTDeviceSubConfig{ return byteBuf; } - public static VideoAlarmBit decode(ByteBuf byteBuf) { - VideoAlarmBit videoAlarmBit = new VideoAlarmBit(); + public static JTVideoAlarmBit decode(ByteBuf byteBuf) { + JTVideoAlarmBit videoAlarmBit = new JTVideoAlarmBit(); byte content = byteBuf.readByte(); videoAlarmBit.setLossSignal((content & 1) == 1); videoAlarmBit.setOcclusionSignal((content >>> 1 & 1) == 1); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/VideoParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTVideoParam.java similarity index 94% rename from src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/VideoParam.java rename to src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTVideoParam.java index 0d27ca6ae..941dda03b 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/VideoParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/bean/config/JTVideoParam.java @@ -6,7 +6,7 @@ import io.netty.buffer.Unpooled; /** * 违规行驶时段范围 ,精确到分 */ -public class VideoParam implements JTDeviceSubConfig{ +public class JTVideoParam implements JTDeviceSubConfig{ /** * 实时流编码模式 * 0:CBR( 固定码率) ; @@ -85,7 +85,7 @@ public class VideoParam implements JTDeviceSubConfig{ /** * 字幕叠加设置 */ - private OSDConfig osd; + private JTOSDConfig osd; /** * 是否启用音频输出, 0:不启用;1:启用 @@ -173,11 +173,11 @@ public class VideoParam implements JTDeviceSubConfig{ this.storageStreamCodeRate = storageStreamCodeRate; } - public OSDConfig getOsd() { + public JTOSDConfig getOsd() { return osd; } - public void setOsd(OSDConfig osd) { + public void setOsd(JTOSDConfig osd) { this.osd = osd; } @@ -208,8 +208,8 @@ public class VideoParam implements JTDeviceSubConfig{ return byteBuf; } - public static VideoParam decode(ByteBuf buf) { - VideoParam videoParam = new VideoParam(); + public static JTVideoParam decode(ByteBuf buf) { + JTVideoParam videoParam = new JTVideoParam(); videoParam.setLiveStreamCodeRateType(buf.readByte()); videoParam.setLiveStreamResolving(buf.readByte()); videoParam.setLiveStreamIInterval(buf.readUnsignedShort()); @@ -221,7 +221,7 @@ public class VideoParam implements JTDeviceSubConfig{ videoParam.setStorageStreamIInterval(buf.readUnsignedShort()); videoParam.setStorageStreamFrameRate(buf.readByte()); videoParam.setStorageStreamCodeRate(buf.readUnsignedInt()); - videoParam.setOsd(OSDConfig.decode(buf)); + videoParam.setOsd(JTOSDConfig.decode(buf)); videoParam.setAudioEnable(buf.readByte()); return null; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/cmd/JT1078Template.java b/src/main/java/com/genersoft/iot/vmp/jt1078/cmd/JT1078Template.java index 7cb18ff11..1c6b87c04 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/cmd/JT1078Template.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/cmd/JT1078Template.java @@ -45,6 +45,7 @@ public class JT1078Template { private static final String H8803 = "8803"; private static final String H8804 = "8804"; private static final String H8805 = "8805"; + private static final String H9003 = "9003"; private static final String H9101 = "9101"; private static final String H9102 = "9102"; private static final String H9201 = "9201"; @@ -69,6 +70,7 @@ public class JT1078Template { private static final String H0801 = "0801"; private static final String H0802 = "0802"; private static final String H0805 = "0805"; + private static final String H1003 = "1003"; private static final String H1205 = "1205"; /** @@ -630,4 +632,15 @@ public class JT1078Template { .build(); return SessionManager.INSTANCE.request(cmd, timeOut); } + + public Object queryMediaAttribute(String devId, J9003 j9003, int timeOut) { + Cmd cmd = new Cmd.Builder() + .setDevId(devId) + .setPackageNo(randomInt()) + .setMsgId(H9003) + .setRespId(H1003) + .setRs(j9003) + .build(); + return SessionManager.INSTANCE.request(cmd, timeOut); + } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java index 65c6548be..89868af05 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/JT1078Controller.java @@ -905,5 +905,14 @@ public class JT1078Controller { } service.record(deviceId, 0, time, save, samplingRate); } + + @Operation(summary = "1078-查询终端音视频属性", security = @SecurityRequirement(name = JwtUtils.HEADER)) + @Parameter(name = "deviceId", description = "设备国标编号", required = true) + @GetMapping("/media/attribute") + public JTMediaAttribute queryMediaAttribute(HttpServletRequest request, + @Parameter(required = true) String deviceId + ) { + return service.queryMediaAttribute(deviceId); + } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConfirmationAlarmMessageParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConfirmationAlarmMessageParam.java index 8f3ad35f8..3d470a8e1 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConfirmationAlarmMessageParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/ConfirmationAlarmMessageParam.java @@ -1,6 +1,6 @@ package com.genersoft.iot.vmp.jt1078.controller.bean; -import com.genersoft.iot.vmp.jt1078.bean.JConfirmationAlarmMessageType; +import com.genersoft.iot.vmp.jt1078.bean.JTConfirmationAlarmMessageType; import io.swagger.v3.oas.annotations.media.Schema; /** @@ -14,7 +14,7 @@ public class ConfirmationAlarmMessageParam { @Schema(description = "报警消息流水号") private int alarmPackageNo; @Schema(description = "人工确认报警类型") - private JConfirmationAlarmMessageType alarmMessageType; + private JTConfirmationAlarmMessageType alarmMessageType; public String getDeviceId() { return deviceId; @@ -24,11 +24,11 @@ public class ConfirmationAlarmMessageParam { this.deviceId = deviceId; } - public JConfirmationAlarmMessageType getAlarmMessageType() { + public JTConfirmationAlarmMessageType getAlarmMessageType() { return alarmMessageType; } - public void setAlarmMessageType(JConfirmationAlarmMessageType alarmMessageType) { + public void setAlarmMessageType(JTConfirmationAlarmMessageType alarmMessageType) { this.alarmMessageType = alarmMessageType; } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/TextMessageParam.java b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/TextMessageParam.java index f155c8c3a..f48c6efe9 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/TextMessageParam.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/controller/bean/TextMessageParam.java @@ -1,6 +1,5 @@ package com.genersoft.iot.vmp.jt1078.controller.bean; -import com.genersoft.iot.vmp.jt1078.bean.JConfirmationAlarmMessageType; import com.genersoft.iot.vmp.jt1078.bean.JTTextSign; import io.swagger.v3.oas.annotations.media.Schema; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0104.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0104.java index 2d1c58455..7c12adda5 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0104.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0104.java @@ -1,8 +1,6 @@ package com.genersoft.iot.vmp.jt1078.proc.request; -import com.alibaba.fastjson2.JSON; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; -import com.genersoft.iot.vmp.jt1078.bean.JTDevice; import com.genersoft.iot.vmp.jt1078.bean.JTDeviceConfig; import com.genersoft.iot.vmp.jt1078.bean.common.ConfigAttribute; import com.genersoft.iot.vmp.jt1078.bean.config.*; @@ -13,9 +11,7 @@ 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 org.apache.commons.lang3.StringUtils; -import org.apache.poi.util.StringUtil; import org.springframework.context.ApplicationEvent; import java.lang.reflect.Field; @@ -81,25 +77,25 @@ public class J0104 extends Re { methodForShort.invoke(deviceConfig, buf.readUnsignedByte()); continue; case "IllegalDrivingPeriods": - IllegalDrivingPeriods illegalDrivingPeriods = new IllegalDrivingPeriods(); + JTIllegalDrivingPeriods illegalDrivingPeriods = new JTIllegalDrivingPeriods(); int startHour = buf.readUnsignedByte(); int startMinute = buf.readUnsignedByte(); int stopHour = buf.readUnsignedByte(); int stopMinute = buf.readUnsignedByte(); illegalDrivingPeriods.setStartTime(startHour + ":" + startMinute); illegalDrivingPeriods.setEndTime(stopHour + ":" + stopMinute); - Method methodForIllegalDrivingPeriods = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), IllegalDrivingPeriods.class); + Method methodForIllegalDrivingPeriods = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTIllegalDrivingPeriods.class); methodForIllegalDrivingPeriods.invoke(deviceConfig, illegalDrivingPeriods); continue; case "CollisionAlarmParams": - CollisionAlarmParams collisionAlarmParams = new CollisionAlarmParams(); + JTCollisionAlarmParams collisionAlarmParams = new JTCollisionAlarmParams(); collisionAlarmParams.setCollisionAlarmTime(buf.readUnsignedByte()); collisionAlarmParams.setCollisionAcceleration(buf.readUnsignedByte()); - Method methodForCollisionAlarmParams = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), CollisionAlarmParams.class); + Method methodForCollisionAlarmParams = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTCollisionAlarmParams.class); methodForCollisionAlarmParams.invoke(deviceConfig, collisionAlarmParams); continue; case "CameraTimer": - CameraTimer cameraTimer = new CameraTimer(); + JTCameraTimer cameraTimer = new JTCameraTimer(); long cameraTimerContent = buf.readUnsignedInt(); cameraTimer.setSwitchForChannel1((cameraTimerContent & 1) == 1); cameraTimer.setSwitchForChannel2((cameraTimerContent >>> 1 & 1) == 1); @@ -113,48 +109,53 @@ public class J0104 extends Re { cameraTimer.setStorageFlagsForChannel5((cameraTimerContent >>> 11 & 1) == 1); cameraTimer.setTimeUnit((cameraTimerContent >>> 15 & 1) == 1); cameraTimer.setTimeInterval((int)cameraTimerContent >>> 16); - Method methodForCameraTimer = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), CameraTimer.class); + Method methodForCameraTimer = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTCameraTimer.class); methodForCameraTimer.invoke(deviceConfig, cameraTimer); continue; case "GnssPositioningMode": - GnssPositioningMode gnssPositioningMode = new GnssPositioningMode(); + JTGnssPositioningMode gnssPositioningMode = new JTGnssPositioningMode(); short gnssPositioningModeContent = buf.readUnsignedByte(); gnssPositioningMode.setGps((gnssPositioningModeContent& 1) == 1); gnssPositioningMode.setBeidou((gnssPositioningModeContent >>> 1 & 1) == 1); gnssPositioningMode.setGlonass((gnssPositioningModeContent >>> 2 & 1) == 1); gnssPositioningMode.setGaLiLeo((gnssPositioningModeContent >>> 3 & 1) == 1); - Method methodForGnssPositioningMode = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), GnssPositioningMode.class); + Method methodForGnssPositioningMode = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTGnssPositioningMode.class); methodForGnssPositioningMode.invoke(deviceConfig, gnssPositioningMode); continue; case "VideoParam": - VideoParam videoParam = VideoParam.decode(buf); - Method methodForVideoParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), VideoParam.class); + JTVideoParam videoParam = JTVideoParam.decode(buf); + Method methodForVideoParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTVideoParam.class); methodForVideoParam.invoke(deviceConfig, videoParam); continue; case "ChannelListParam": - ChannelListParam channelListParam = ChannelListParam.decode(buf); - Method methodForChannelListParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), ChannelListParam.class); + JTChannelListParam channelListParam = JTChannelListParam.decode(buf); + Method methodForChannelListParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTChannelListParam.class); methodForChannelListParam.invoke(deviceConfig, channelListParam); case "ChannelParam": - ChannelParam channelParam = ChannelParam.decode(buf); - Method methodForChannelParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), ChannelParam.class); + JTChannelParam channelParam = JTChannelParam.decode(buf); + Method methodForChannelParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTChannelParam.class); methodForChannelParam.invoke(deviceConfig, channelParam); continue; case "alarmRecordingParam": - AlarmRecordingParam alarmRecordingParam = AlarmRecordingParam.decode(buf); - Method methodForAlarmRecordingParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), AlarmRecordingParam.class); + JTAlarmRecordingParam alarmRecordingParam = JTAlarmRecordingParam.decode(buf); + Method methodForAlarmRecordingParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTAlarmRecordingParam.class); methodForAlarmRecordingParam.invoke(deviceConfig, alarmRecordingParam); continue; case "VideoAlarmBit": - VideoAlarmBit videoAlarmBit = VideoAlarmBit.decode(buf); - Method methodForVideoAlarmBit = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), VideoAlarmBit.class); + JTVideoAlarmBit videoAlarmBit = JTVideoAlarmBit.decode(buf); + Method methodForVideoAlarmBit = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTVideoAlarmBit.class); methodForVideoAlarmBit.invoke(deviceConfig, videoAlarmBit); continue; case "AnalyzeAlarmParam": - AnalyzeAlarmParam analyzeAlarmParam = AnalyzeAlarmParam.decode(buf); - Method methodForAnalyzeAlarmParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), AnalyzeAlarmParam.class); + JTAnalyzeAlarmParam analyzeAlarmParam = JTAnalyzeAlarmParam.decode(buf); + Method methodForAnalyzeAlarmParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTAnalyzeAlarmParam.class); methodForAnalyzeAlarmParam.invoke(deviceConfig, analyzeAlarmParam); continue; + case "AwakenParam": + JTAwakenParam awakenParamParam = JTAwakenParam.decode(buf); + Method methodForAwakenParam = deviceConfig.getClass().getDeclaredMethod("set" + StringUtils.capitalize(field.getName()), JTAwakenParam.class); + methodForAwakenParam.invoke(deviceConfig, awakenParamParam); + continue; default: System.err.println(field.getGenericType().getTypeName()); continue; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0107.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0107.java index 60b7f2e2b..9c14ccb14 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0107.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0107.java @@ -2,12 +2,6 @@ package com.genersoft.iot.vmp.jt1078.proc.request; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; import com.genersoft.iot.vmp.jt1078.bean.*; -import com.genersoft.iot.vmp.jt1078.bean.common.ConfigAttribute; -import com.genersoft.iot.vmp.jt1078.bean.config.CameraTimer; -import com.genersoft.iot.vmp.jt1078.bean.config.CollisionAlarmParams; -import com.genersoft.iot.vmp.jt1078.bean.config.GnssPositioningMode; -import com.genersoft.iot.vmp.jt1078.bean.config.IllegalDrivingPeriods; -import com.genersoft.iot.vmp.jt1078.controller.JT1078Controller; 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; @@ -16,20 +10,11 @@ import com.genersoft.iot.vmp.jt1078.session.Session; import com.genersoft.iot.vmp.jt1078.session.SessionManager; import com.genersoft.iot.vmp.jt1078.util.BCDUtil; import io.netty.buffer.ByteBuf; -import io.netty.buffer.ByteBufUtil; -import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationEvent; -import java.io.UnsupportedEncodingException; -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; import java.nio.charset.Charset; -import java.util.HashMap; -import java.util.List; -import java.util.Map; /** * 查询终端属性应答 @@ -72,8 +57,8 @@ public class J0107 extends Re { int firmwareVersionLength = buf.readUnsignedByte(); deviceAttribute.setFirmwareVersion(buf.readCharSequence(firmwareVersionLength, Charset.forName("GBK")).toString().trim()); - deviceAttribute.setGnssAttribute(JGnssAttribute.getInstance(buf.readUnsignedByte())); - deviceAttribute.setCommunicationModuleAttribute(JCommunicationModuleAttribute.getInstance(buf.readUnsignedByte())); + deviceAttribute.setGnssAttribute(JTGnssAttribute.getInstance(buf.readUnsignedByte())); + deviceAttribute.setCommunicationModuleAttribute(JTCommunicationModuleAttribute.getInstance(buf.readUnsignedByte())); SessionManager.INSTANCE.response(header.getTerminalId(), "0107", null, deviceAttribute); return null; diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1003.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1003.java new file mode 100644 index 000000000..681b4e390 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J1003.java @@ -0,0 +1,43 @@ +package com.genersoft.iot.vmp.jt1078.proc.request; + +import com.genersoft.iot.vmp.jt1078.annotation.MsgId; +import com.genersoft.iot.vmp.jt1078.bean.JTMediaAttribute; +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 org.springframework.context.ApplicationEvent; + +/** + * 终端上传音视频属性 + * + */ +@MsgId(id = "1003") +public class J1003 extends Re { + + JTMediaAttribute mediaAttribute; + + @Override + protected Rs decode0(ByteBuf buf, Header header, Session session) { + mediaAttribute = JTMediaAttribute.decode(buf); + SessionManager.INSTANCE.response(header.getTerminalId(), "1003", null, mediaAttribute); + return null; + } + + @Override + protected Rs handler(Header header, Session session, Ijt1078Service service) { + J8001 j8001 = new J8001(); + j8001.setRespNo(header.getSn()); + j8001.setRespId(header.getMsgId()); + j8001.setResult(J8001.SUCCESS); + return j8001; + } + + @Override + public ApplicationEvent getEvent() { + return null; + } +} diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8103.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8103.java index feaff82e5..8ddb62e35 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8103.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8103.java @@ -95,6 +95,7 @@ public class J8103 extends Rs { case "AlarmShielding": case "VideoAlarmBit": case "AnalyzeAlarmParam": + case "AwakenParam": field.setAccessible(true); JTDeviceSubConfig subConfig = (JTDeviceSubConfig)field.get(config); ByteBuf bytesForIllegalDrivingPeriods = subConfig.encode(); diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8203.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8203.java index 71ebc4346..38940247e 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8203.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J8203.java @@ -1,10 +1,9 @@ package com.genersoft.iot.vmp.jt1078.proc.response; import com.genersoft.iot.vmp.jt1078.annotation.MsgId; -import com.genersoft.iot.vmp.jt1078.bean.JConfirmationAlarmMessageType; +import com.genersoft.iot.vmp.jt1078.bean.JTConfirmationAlarmMessageType; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; -import io.swagger.v3.oas.annotations.media.Schema; /** * 人工确认报警消息 @@ -19,7 +18,7 @@ public class J8203 extends Rs { /** * 人工确认报警类型 */ - private JConfirmationAlarmMessageType alarmMessageType; + private JTConfirmationAlarmMessageType alarmMessageType; @Override public ByteBuf encode() { @@ -39,11 +38,11 @@ public class J8203 extends Rs { this.alarmPackageNo = alarmPackageNo; } - public JConfirmationAlarmMessageType getAlarmMessageType() { + public JTConfirmationAlarmMessageType getAlarmMessageType() { return alarmMessageType; } - public void setAlarmMessageType(JConfirmationAlarmMessageType alarmMessageType) { + public void setAlarmMessageType(JTConfirmationAlarmMessageType alarmMessageType) { this.alarmMessageType = alarmMessageType; } } diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J9003.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J9003.java new file mode 100644 index 000000000..c44cf8386 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/response/J9003.java @@ -0,0 +1,19 @@ +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 = "9003") +public class J9003 extends Rs { + + @Override + public ByteBuf encode() { + ByteBuf buffer = Unpooled.buffer(); + return buffer; + } + +} diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java b/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java index 4d34a1a5d..4056896cd 100644 --- a/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/service/Ijt1078Service.java @@ -4,7 +4,6 @@ import com.genersoft.iot.vmp.common.GeneralCallback; import com.genersoft.iot.vmp.common.StreamInfo; import com.genersoft.iot.vmp.jt1078.bean.*; import com.genersoft.iot.vmp.jt1078.proc.request.J1205; -import com.genersoft.iot.vmp.vmanager.bean.WVPResult; import com.github.pagehelper.PageInfo; import java.util.List; @@ -58,7 +57,7 @@ public interface Ijt1078Service { void tempPositionTrackingControl(String deviceId, Integer timeInterval, Long validityPeriod); - void confirmationAlarmMessage(String deviceId, int alarmPackageNo, JConfirmationAlarmMessageType alarmMessageType); + void confirmationAlarmMessage(String deviceId, int alarmPackageNo, JTConfirmationAlarmMessageType alarmMessageType); int linkDetection(String deviceId); @@ -105,4 +104,6 @@ public interface Ijt1078Service { void record(String deviceId, int command, Integer time, Integer save, Integer samplingRate); void uploadMediaDataForSingle(String deviceId, Long mediaId, Integer delete); + + JTMediaAttribute queryMediaAttribute(String deviceId); } 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 8ac9c9ae5..435cb1203 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 @@ -561,7 +561,7 @@ public class jt1078ServiceImpl implements Ijt1078Service { } @Override - public void confirmationAlarmMessage(String deviceId, int alarmPackageNo, JConfirmationAlarmMessageType alarmMessageType) { + public void confirmationAlarmMessage(String deviceId, int alarmPackageNo, JTConfirmationAlarmMessageType alarmMessageType) { J8203 j8203 = new J8203(); j8203.setAlarmMessageType(alarmMessageType); j8203.setAlarmPackageNo(alarmPackageNo); @@ -744,4 +744,10 @@ public class jt1078ServiceImpl implements Ijt1078Service { j8805.setDelete(delete); jt1078Template.uploadMediaDataForSingle(deviceId, j8805, 10); } + + @Override + public JTMediaAttribute queryMediaAttribute(String deviceId) { + J9003 j9003 = new J9003(); + return (JTMediaAttribute)jt1078Template.queryMediaAttribute(deviceId, j9003, 300); + } }