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); }
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); }