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.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.session.Session; import com.genersoft.iot.vmp.jt1078.session.SessionManager; import io.netty.buffer.ByteBuf; import io.netty.buffer.ByteBufUtil; import java.util.ArrayList; import java.util.List; /** * 终端上传音视频资源列表 * * @author QingtaiJiang * @date 2023/4/28 10:36 * @email qingtaij@163.com */ @MsgId(id = "1205") public class J1205 extends Re { Integer respNo; private List recordList = new ArrayList(); @Override protected Rs decode0(ByteBuf buf, Header header, Session session) { respNo = buf.readUnsignedShort(); long size = buf.readUnsignedInt(); for (int i = 0; i < size; i++) { JRecordItem item = new JRecordItem(); item.setChannelId(buf.readUnsignedByte()); item.setStartTime(ByteBufUtil.hexDump(buf.readSlice(6))); item.setEndTime(ByteBufUtil.hexDump(buf.readSlice(6))); item.setWarn(buf.readLong()); item.setMediaType(buf.readUnsignedByte()); item.setStreamType(buf.readUnsignedByte()); item.setStorageType(buf.readUnsignedByte()); item.setSize(buf.readUnsignedInt()); recordList.add(item); } return null; } @Override protected Rs handler(Header header, Session session) { SessionManager.INSTANCE.response(header.getDevId(), "1205", (long) respNo, JSON.toJSONString(this)); J8001 j8001 = new J8001(); j8001.setRespNo(header.getSn()); j8001.setRespId(header.getMsgId()); j8001.setResult(J8001.SUCCESS); return j8001; } public Integer getRespNo() { return respNo; } public void setRespNo(Integer respNo) { this.respNo = respNo; } public List getRecordList() { return recordList; } public void setRecordList(List recordList) { this.recordList = recordList; } public static class JRecordItem { // 逻辑通道号 private int channelId; // 开始时间 private String startTime; // 结束时间 private String endTime; // 报警标志 private long warn; // 音视频资源类型 private int mediaType; // 码流类型 private int streamType = 1; // 存储器类型 private int storageType; // 文件大小 private long size; public int getChannelId() { return channelId; } public void setChannelId(int channelId) { this.channelId = channelId; } public String getStartTime() { return startTime; } public void setStartTime(String startTime) { this.startTime = startTime; } public String getEndTime() { return endTime; } public void setEndTime(String endTime) { this.endTime = endTime; } public long getWarn() { return warn; } public void setWarn(long warn) { this.warn = warn; } public int getMediaType() { return mediaType; } public void setMediaType(int mediaType) { this.mediaType = mediaType; } public int getStreamType() { return streamType; } public void setStreamType(int streamType) { this.streamType = streamType; } public int getStorageType() { return storageType; } public void setStorageType(int storageType) { this.storageType = storageType; } public long getSize() { return size; } public void setSize(long size) { this.size = size; } @Override public String toString() { return "JRecordItem{" + "channelId=" + channelId + ", startTime='" + startTime + '\'' + ", endTime='" + endTime + '\'' + ", warn=" + warn + ", mediaType=" + mediaType + ", streamType=" + streamType + ", storageType=" + storageType + ", size=" + size + '}'; } } @Override public String toString() { return "J1205{" + "respNo=" + respNo + ", recordList=" + recordList + '}'; } }