Example #1
0
 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;
 }
Example #2
0
        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
            }));
        }