Exemplo n.º 1
0
        protected override void InternalConverter(RmtpDataFrame pDataFrame, object pParameter)
        {
            var index = 0;

            ScanCount = BitConverter.ToInt32(pDataFrame.Data, index);
            index    += sizeof(int);

            ItuResultTypeCount = BitConverter.ToInt16(pDataFrame.Data, index);
            index += sizeof(short);

            ItuResultCount = BitConverter.ToInt32(pDataFrame.Data, index);
            index         += sizeof(int);

            Values.Clear();
            ScanValues.Clear();
            for (var i = 0; i < ScanCount; i++)
            {
                if (pDataFrame.Data.Length <= index + 4)
                {
                    break;
                }
                var key = BitConverter.ToInt32(pDataFrame.Data, index);
                index += sizeof(int);

                if (pDataFrame.Data.Length < index + 2)
                {
                    break;
                }
                var value = BitConverter.ToInt16(pDataFrame.Data, index);
                index += sizeof(short);

                Values.Add(value);
                ScanValues[key] = (short)(value / 100);
            }

            for (var i = 0; i < ItuResultCount; i++)
            {
                var freqNo = BitConverter.ToInt32(pDataFrame.Data, index);
                index += sizeof(int);

                var lst = new List <Tuple <short, double> >();
                for (var j = 0; j < ItuResultTypeCount; j++)
                {
                    var typeNo = BitConverter.ToInt16(pDataFrame.Data, index);
                    index += sizeof(short);

                    var dataValue = BitConverter.ToSingle(pDataFrame.Data, index);
                    index += sizeof(float);
                    lst.Add(new Tuple <short, double>(typeNo, dataValue));
                }
                FreqValues[freqNo] = lst;
            }
        }
Exemplo n.º 2
0
        protected override void InternalConverter(RmtpDataFrame pDataFrame, object pParameter)
        {
            try
            {
                var    index = 0;
                double milliseconds;
                long   lastTime;

                ScanCount = BitConverter.ToInt32(pDataFrame.Data, index);
                index    += sizeof(int);

                if (ConfigurationManager.AppSettings["FscanSignalShold"].Equals("1"))
                {
                    SignalCount = BitConverter.ToInt32(pDataFrame.Data, index);
                    index      += sizeof(int);
                }

                ItuResultTypeCount = BitConverter.ToInt16(pDataFrame.Data, index);
                index += sizeof(short);

                ItuResultCount = BitConverter.ToInt32(pDataFrame.Data, index);
                index         += sizeof(int);

                if (ConfigurationManager.AppSettings["FscanSignalShold"].Equals("1"))
                {
                    SpectrumType = (MeasureDataType)BitConverter.ToInt16(pDataFrame.Data, index);
                    index       += 2;
                }

                if (ScanCount > 0)
                {
                    var sequency = BitConverter.ToInt32(pDataFrame.Data, index);
                    index += sizeof(int);
                    for (var i = 0; i < ScanCount; i++)
                    {
                        var value = BitConverter.ToInt16(pDataFrame.Data, index);
                        index += sizeof(short);

                        ScanValues.Add(new Tuple <int, short>(sequency += 1, (short)(value / 100)));
                        Values.Add((short)(value / 100));
                    }
                }

                for (var i = 0; i < ItuResultCount; i++)
                {
                    var freqNo = BitConverter.ToInt32(pDataFrame.Data, index);
                    index += sizeof(int);
                    var lst = new List <Tuple <short, float> >();
                    for (var j = 0; j < ItuResultTypeCount; j++)
                    {
                        var typeNo = BitConverter.ToInt16(pDataFrame.Data, index);
                        index += sizeof(short);

                        var value = BitConverter.ToSingle(pDataFrame.Data, index);
                        index += sizeof(float);

                        lst.Add(new Tuple <short, float>(typeNo, value));
                    }

                    FreqValues.Add(freqNo, lst);
                }

                if (ConfigurationManager.AppSettings["FscanSignalShold"].Equals("1"))
                {
                    for (int i = 0; i < SignalCount; i++)
                    {
                        var item = new SignalStatisticsItem();
                        item.SignalId          = BitConverter.ToInt32(pDataFrame.Data, index);
                        item.Frequency         = BitConverter.ToDouble(pDataFrame.Data, index += 4);
                        item.CurrentFrequency  = BitConverter.ToDouble(pDataFrame.Data, index += 8);
                        item.CurrentBandwidth  = BitConverter.ToDouble(pDataFrame.Data, index += 8);
                        item.Bandwidth         = BitConverter.ToDouble(pDataFrame.Data, index += 8);
                        item.InterceptedNumber = BitConverter.ToInt64(pDataFrame.Data, index += 8);
                        item.Duration          = BitConverter.ToInt64(pDataFrame.Data, index += 8);
                        lastTime     = BitConverter.ToInt64(pDataFrame.Data, index += 8);
                        milliseconds = WMonitorUtile.DateTime1970Milliseconds + lastTime;
                        var ts = TimeSpan.FromMilliseconds(milliseconds);
                        item.LastTime      = new DateTime(ts.Ticks);
                        item.FirstTime     = item.LastTime;
                        item.OccupancyRate = BitConverter.ToSingle(pDataFrame.Data, index += 8);
                        item.Density       = BitConverter.ToSingle(pDataFrame.Data, index += 4);
                        item.CustomValue   = BitConverter.ToSingle(pDataFrame.Data, index += 4);
                        item.Level         = BitConverter.ToInt16(pDataFrame.Data, index += 4);
                        item.FieldStrength = BitConverter.ToInt16(pDataFrame.Data, index += 2);
                        _signalStatisticsItems.Add(item);
                        index += 2;
                    }
                }
            }
            catch (Exception ex)
            {
                return;
            }
        }