示例#1
0
        public static SysInt Parse(byte[] data, int offset)
        {
            if (data == null || data.Length < 0xFF + offset)
            {
                return(null);
            }

            var result = new SysInt();

            DateTime curdate;
            var      dateTimeString = string.Format("{0}.{1}.{2} {3}:00:00",
                                                    ConvertHelper.BinDecToInt(data[offset + 1]), //day
                                                    ConvertHelper.BinDecToInt(data[offset + 2]), //mon
                                                    ConvertHelper.BinDecToInt(data[offset + 3]), //yr
                                                    ConvertHelper.BinDecToInt(data[offset + 0])  //hr
                                                    );

            DateTime.TryParse(dateTimeString, out curdate);
            result.date = curdate;

            result.Trab.Value[0] = BitConverter.ToInt32(ConvertHelper.GetReversed(data, offset + 0x68, 4), 0);

            for (var sysch = 0; sysch < 4; sysch++)
            {
                result.IntV.Value[sysch] =
                    BitConverter.ToSingle(ConvertHelper.GetReversed(data, offset + 0x08 + sysch * 4, 4), 0) +
                    BitConverter.ToInt32(ConvertHelper.GetReversed(data, offset + 0x38 + sysch * 4, 4), 0);
                result.IntM.Value[sysch] =
                    BitConverter.ToSingle(ConvertHelper.GetReversed(data, offset + 0x18 + sysch * 4, 4), 0) +
                    BitConverter.ToInt32(ConvertHelper.GetReversed(data, offset + 0x48 + sysch * 4, 4), 0);
                result.IntQ.Value[sysch] =
                    BitConverter.ToSingle(ConvertHelper.GetReversed(data, offset + 0x28 + sysch * 4, 4), 0) +
                    BitConverter.ToInt32(ConvertHelper.GetReversed(data, offset + 0x58 + sysch * 4, 4), 0);

                result.Tnar.Value[sysch] = BitConverter.ToInt32(ConvertHelper.GetReversed(data, offset + 0x6c + sysch * 4, 4), 0);
                //result.Tmin.Value[sysch] = BitConverter.ToInt32(GetReversed(data, offset + 0x7c + sysch * 4, 4), 0);
                //result.Tmax.Value[sysch] = BitConverter.ToInt32(GetReversed(data, offset + 0x8c + sysch * 4, 4), 0);
                //result.Tdt.Value[sysch] = BitConverter.ToInt32(GetReversed(data, offset + 0x9c + sysch * 4, 4), 0);
                //result.Ttn.Value[sysch] = BitConverter.ToInt32(GetReversed(data, offset + 0xac + sysch * 4, 4), 0);

                result.Rshv.Value[sysch] = BitConverter.ToInt32(ConvertHelper.GetReversed(data, offset + 0xec + sysch * 4, 4), 0);

                for (int i = 0; i < 3; i++)
                {
                    result.T.Value[sysch * 3 + i] = (double)(BitConverter.ToInt16(ConvertHelper.GetReversed(data, offset + 0xc8 + (sysch * 3 + i) * 2, 2), 0)) / 100;
                    result.P.Value[sysch * 3 + i] = (double)(data[offset + 0xe0 + (sysch * 3 + i)]) / 100;
                }
            }

            return(result);
        }
示例#2
0
        public static T2K Parse(byte[] data, int offset)
        {
            if (data == null || data.Length < 0x2FF + offset)
            {
                return(null);
            }

            var result = new T2K();

            result.Systems = data[offset + 0];
            for (int i = 0; i < 12; i++)
            {
                result.Type_g[i] = (TypeG)data[offset + 0x01 + i];
                result.Type_t[i] = (TypeT)data[offset + 0x0c + i];
            }
            result.Net_num = BitConverter.ToInt32(ConvertHelper.GetReversed(data, offset + 0x78, 4), 0);
            result.Number  = BitConverter.ToInt32(ConvertHelper.GetReversed(data, offset + 0x7c, 4), 0);

            for (int i = 0; i < 4; i++)
            {
                result.Diam[i]       = BitConverter.ToInt16(ConvertHelper.GetReversed(data, offset + 0xc4 + i * 2, 2), 0);
                result.G_max[i]      = BitConverter.ToSingle(ConvertHelper.GetReversed(data, offset + 0xcc + i * 4, 4), 0);
                result.G_pcnt_max[i] = data[offset + 0xdc + i];
                result.G_pcnt_min[i] = data[offset + 0xe0 + i];
            }

            for (int i = 0; i < 2; i++)
            {
                result.F_max[i]  = BitConverter.ToSingle(ConvertHelper.GetReversed(data, offset + 0xe4 + i * 4, 4), 0);
                result.Weight[i] = BitConverter.ToSingle(ConvertHelper.GetReversed(data, offset + 0xec + i * 4, 4), 0);//??? 74? EC?
            }

            result.SysInt_copy = SysInt.Parse(data, offset + 0x200);
            for (int i = 0; i < 4; i++)
            {
                result.SysConN[i] = SysCon.Parse(data, offset + 0x600 + i * 0x20);
            }

            return(result);
        }