public ConverterStatus(CommonStatus commonStatus, DateTime date, float fwVersion, int seriennr, ushort gKlasse) { this.CommonStatus = commonStatus; this.Date = date; this.FWVersion = fwVersion; this.Seriennr = seriennr; this.Geraeteklasse = gKlasse; this.dcmStatus = null; this.typeStatus = null; }
private ConverterStatus?ExtractFile31() { if (this.fileRawData.Length < 15) { return(null); } for (int i = 0; i < this.fileRawData.Length; i += 4) { Array.Reverse(this.fileRawData, i, 4); } if (this.fileRawData[13] != 31) { return(null); } DateTime date = DateTime.MinValue; try { date = new DateTime(((int)this.fileRawData[3] << 8) + (int)this.fileRawData[2], (int)this.fileRawData[1], (int)this.fileRawData[0], (int)this.fileRawData[4], (int)this.fileRawData[5], (int)this.fileRawData[6]); } catch (ArgumentOutOfRangeException) { return(null); } float fwVersion = (float)(((int)this.fileRawData[8] << 8) + (int)this.fileRawData[7]) / 100f; int num = ((int)this.fileRawData[10] << 8) + (int)this.fileRawData[9]; ushort gKlasse = (ushort)(((int)this.fileRawData[12] << 8) + (int)this.fileRawData[11]); CommonStatus? commonStatus = null; ITypeStatus typeStatus = null; IList <DcmStatus> list = new List <DcmStatus>(); int num2 = 15; while (this.fileRawData.Length > num2 + 3) { int num3 = (int)this.fileRawData[num2]; int num4 = ((int)this.fileRawData[num2 + 2] << 8) + (int)this.fileRawData[num2 + 1]; num2 += 3; if (this.fileRawData.Length >= num2 + num4) { switch (num3) { case 1: if (commonStatus.HasValue) { return(null); } commonStatus = new CommonStatus?(this.ReadCommonBlock(num2)); break; case 2: if (typeStatus != null) { return(null); } typeStatus = ReadSP50Block(num2); break; case 3: if (typeStatus != null) { return(null); } typeStatus = ReadSP300Block(num2); break; case 4: { if (num4 == 14) { num4 = 15; } DcmStatus?dcmStatus = new DcmStatus?(this.ReadDcmBlock(num2)); if (dcmStatus.HasValue) { list.Add(dcmStatus.Value); } break; } case 5: if (typeStatus != null) { return(null); } typeStatus = this.ReadSP120Block(num2); break; default: break; } } else { } num2 += num4; } if (!commonStatus.HasValue) { return(null); } return(new ConverterStatus?(new ConverterStatus(commonStatus.Value, date, fwVersion, num, gKlasse) { TypeStatus = typeStatus, DcmStatus = list })); }