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