예제 #1
0
        public JT809_0x9101 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_0x9101 jT809_0X9101 = new JT809_0x9101();

            jT809_0X9101.DynamicInfoTotal = reader.ReadUInt32();
            jT809_0X9101.StartTime        = reader.ReadUInt64();
            jT809_0X9101.EndTime          = reader.ReadUInt64();
            return(jT809_0X9101);
        }
예제 #2
0
        public JT809_JT1078_0x1900_Record Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_JT1078_0x1900_Record value = new JT809_JT1078_0x1900_Record();

            value.ChannelId  = reader.ReadByte();
            value.StartTime  = reader.ReadUTCDateTime();
            value.EndTime    = reader.ReadUTCDateTime();
            value.AlarmType  = reader.ReadUInt64();
            value.AVItemType = reader.ReadByte();
            value.StreamType = reader.ReadByte();
            value.MemType    = reader.ReadByte();
            value.FileSize   = reader.ReadUInt32();
            return(value);
        }
        public JT809_JT1078_0x9900_0x9902 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_JT1078_0x9900_0x9902 value = new JT809_JT1078_0x9900_0x9902();

            value.ChannelId     = reader.ReadByte();
            value.StartTime     = reader.ReadUTCDateTime();
            value.EndTime       = reader.ReadUTCDateTime();
            value.AlarmType     = reader.ReadUInt64();
            value.AVItemType    = reader.ReadByte();
            value.StreamType    = reader.ReadByte();
            value.MemType       = reader.ReadByte();
            value.AuthorizeCode = reader.ReadString(64);
            value.GnssData      = reader.ReadArray(36).ToArray();
            return(value);
        }
예제 #4
0
        public JT809_JT1078_0x9900_0x9902 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_JT1078_0x9900_0x9902 jT808_JT1078_0x9900_0x9902 = new JT809_JT1078_0x9900_0x9902();

            jT808_JT1078_0x9900_0x9902.ChannelId = reader.ReadByte();
#warning 此处时间8个字节,暂使用utc时间代替
            jT808_JT1078_0x9900_0x9902.StartTime     = reader.ReadUTCDateTime();
            jT808_JT1078_0x9900_0x9902.EndTime       = reader.ReadUTCDateTime();
            jT808_JT1078_0x9900_0x9902.AlarmType     = reader.ReadUInt64();
            jT808_JT1078_0x9900_0x9902.AVItemType    = reader.ReadByte();
            jT808_JT1078_0x9900_0x9902.StreamType    = reader.ReadByte();
            jT808_JT1078_0x9900_0x9902.MemType       = reader.ReadByte();
            jT808_JT1078_0x9900_0x9902.AuthorizeCode = reader.ReadArray(64).ToArray();
            jT808_JT1078_0x9900_0x9902.GnssData      = reader.ReadArray(36).ToArray();
            return(jT808_JT1078_0x9900_0x9902);
        }
        public JT809_JT1078_0x9B00_0x9B01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
        {
            JT809_JT1078_0x9B00_0x9B01 jT808_JT1078_0x9B00_0x9B01 = new JT809_JT1078_0x9B00_0x9B01();

            jT808_JT1078_0x9B00_0x9B01.ChannelId     = reader.ReadByte();
            jT808_JT1078_0x9B00_0x9B01.StartTime     = reader.ReadUTCDateTime();
            jT808_JT1078_0x9B00_0x9B01.EndTime       = reader.ReadUTCDateTime();
            jT808_JT1078_0x9B00_0x9B01.AlarmType     = reader.ReadUInt64();
            jT808_JT1078_0x9B00_0x9B01.AVItemType    = reader.ReadByte();
            jT808_JT1078_0x9B00_0x9B01.StreamType    = reader.ReadByte();
            jT808_JT1078_0x9B00_0x9B01.MemType       = reader.ReadByte();
            jT808_JT1078_0x9B00_0x9B01.FileSize      = reader.ReadUInt32();
            jT808_JT1078_0x9B00_0x9B01.AuthorizeCode = reader.ReadArray(64).ToArray();
            jT808_JT1078_0x9B00_0x9B01.GnssData      = reader.ReadArray(36).ToArray();
            return(jT808_JT1078_0x9B00_0x9B01);
        }
예제 #6
0
        public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
        {
            JT809_JT1078_0x1900_Record value = new JT809_JT1078_0x1900_Record();

            value.ChannelId = reader.ReadByte();
            writer.WriteString($"[{value.ChannelId.ReadNumber()}]逻辑通道号", LogicalChannelNoDisplay(value.ChannelId));
            var virtualHex = reader.ReadVirtualArray(8);

            value.StartTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]开始时间", value.StartTime);
            virtualHex    = reader.ReadVirtualArray(8);
            value.EndTime = reader.ReadUTCDateTime();
            writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]结束时间", value.StartTime);
            value.AlarmType = reader.ReadUInt64();
            writer.WriteNumber($"[{value.AlarmType.ReadNumber()}]报警标志物", value.AlarmType);
            value.AVItemType = reader.ReadByte();
            writer.WriteString($"[{value.AVItemType.ReadNumber()}]音视频资源类型", AVResourceTypeDisplay(value.AVItemType));
            value.StreamType = reader.ReadByte();
            writer.WriteString($"[{value.StreamType.ReadNumber()}]码流类型", StreamTypeDisplay(value.StreamType));
            value.MemType = reader.ReadByte();
            writer.WriteString($"[{value.MemType.ReadNumber()}]存储器类型", MemoryTypeDisplay(value.MemType));
            value.FileSize = reader.ReadUInt32();
            writer.WriteNumber($"[{value.FileSize.ReadNumber()}]文件大小(B)", value.FileSize);
            string LogicalChannelNoDisplay(byte LogicalChannelNo)
            {
                switch (LogicalChannelNo)
                {
                case 1:
                    return("驾驶员");

                case 2:
                    return("车辆正前方");

                case 3:
                    return("车前门");

                case 4:
                    return("车厢前部");

                case 5:
                    return("车厢后部");

                case 7:
                    return("行李舱");

                case 8:
                    return("车辆左侧");

                case 9:
                    return("车辆右侧");

                case 10:
                    return("车辆正后方");

                case 11:
                    return("车厢中部");

                case 12:
                    return("车中门");

                case 13:
                    return("驾驶席车门");

                case 33:
                    return("驾驶员");

                case 36:
                    return("车厢前部");

                case 37:
                    return("车厢后部");

                default:
                    return("预留");
                }
            }

            string AVResourceTypeDisplay(byte AVResourceType)
            {
                switch (AVResourceType)
                {
                case 0:
                    return("音视频");

                case 1:
                    return("音频");

                case 2:
                    return("视频");

                default:
                    break;
                }
                return("未知");
            }

            string StreamTypeDisplay(byte StreamType)
            {
                switch (StreamType)
                {
                case 1:
                    return("主码流");

                case 2:
                    return("子码流");

                default:
                    return("未知");
                }
            }

            string MemoryTypeDisplay(byte MemoryType)
            {
                switch (MemoryType)
                {
                case 1:
                    return("主存储器");

                case 2:
                    return("灾备存储器");

                default:
                    return("未知");
                }
            }
        }