protected override void InternalConverter(RmtpDataFrame pDataFrame, object pParameter) { var index = 0; IType = pDataFrame.Data[index]; index += 1; FscanSegment = BitConverter.ToInt16(pDataFrame.Data, index); index += sizeof(short); StartFrequency = BitConverter.ToInt64(pDataFrame.Data, index); index += sizeof(Int64); EndFrequency = BitConverter.ToInt64(pDataFrame.Data, index); index += sizeof(Int64); Step = BitConverter.ToInt64(pDataFrame.Data, index); index += sizeof(Int64); Points = BitConverter.ToInt32(pDataFrame.Data, index); index += sizeof(int); Antennafactors = BitConverter.ToInt32(pDataFrame.Data, index); index += sizeof(int); FscanTypeCount = BitConverter.ToInt16(pDataFrame.Data, index); index += sizeof(short); for (var i = 0; ; i++) { var freq = (StartFrequency + i * Step) / 1000; // 转成kHz if (freq > (EndFrequency / 1000)) { break; } if (!Freqs.Contains(freq)) { Freqs.Add(freq); } } for (var i = 0; i < FscanTypeCount; i++) { var name = Encoding.UTF8.GetString(pDataFrame.Data, index, 16).TrimEnd('$').TrimEnd('\0'); index += 16; var value = BitConverter.ToSingle(pDataFrame.Data, index); index += sizeof(float); var unit = Encoding.UTF8.GetString(pDataFrame.Data, index, 10).TrimEnd('$').TrimEnd('\0'); index += 10; ScanTypes.Add(new Tuple <string, long, string, int>(name, (long)value, unit, i)); } }
protected override void InternalConverter(RmtpDataFrame pDataFrame, object pParameter) { var index = 0; IType = pDataFrame.Data[index]; index += 1; Antennafactors = BitConverter.ToInt32(pDataFrame.Data, index); index += sizeof(int); MscanTypeCount = BitConverter.ToInt16(pDataFrame.Data, index); index += sizeof(short); MscanPoint = BitConverter.ToInt16(pDataFrame.Data, index); index += sizeof(short); Freqs.Clear(); for (var i = 0; i < MscanPoint; i++) { Freqs.Add(BitConverter.ToInt64(pDataFrame.Data, index) / 1000000d); // 转成 MHz index += sizeof(Int64); } for (var i = 0; i < MscanTypeCount; i++) { var name = Encoding.UTF8.GetString(pDataFrame.Data, index, 16).TrimEnd('$').TrimEnd('\0'); index += 16; var value = BitConverter.ToSingle(pDataFrame.Data, index); index += 4; var unit = Encoding.UTF8.GetString(pDataFrame.Data, index, 10).TrimEnd('$').TrimEnd('\0'); index += 10; ScanTypes.Add(new Tuple <string, long, string, int>(name, (long)value, unit, i)); } }
public override bool IngestValue(string sVal) { if (null == sVal) { Nulls++; sVal = "{NULL}"; } else if ("" == sVal) { Empties++; } else if (string.IsNullOrWhiteSpace(sVal)) { Blanks++; } if (!Freqs.ContainsKey(sVal)) { Freqs.Add(sVal, 0); } Freqs[sVal]++; Count++; return(true); }