public ICollection <CompleteRadioInfo> ListComplete() { var info = new NativeDefinitions.RadioInfo(); var ptr = Marshal.AllocHGlobal(info.bLength); var structSize = 0; var count = G313Api.G3GetRadioList2(ptr, info.bLength, ref structSize); if (info.bLength != structSize) { throw new InvalidOperationException("info size mismatch"); } Marshal.PtrToStructure(ptr, info); Marshal.FreeHGlobal(ptr); return(count > 1 ? ListCompleteBig((int)count, structSize) : new[] { new CompleteRadioInfo(info) }); }
internal CompleteRadioInfo(NativeDefinitions.RadioInfo info) { Serial = info.szSerNum; Name = info.szProdName; MinFrequency = info.dwMinFreq; MaxFrequency = info.dwMaxFreq; BandFilterCount = info.bNumBands; BandFrequency = info.dwBandFreq; LocalOscillatorOffset = info.dwLOfreq; VcoCount = info.bNumVcos; VcoFrequncy = info.dwVcoFreq; VcoDividers = info.wVcoDiv; VcoSelectBits = info.bVcoBits; ReferenceClock1 = info.dwRefClk1; ReferenceClock2 = info.dwRefClk2; DacOnIf1 = info.IF1DAC; RawAgcStart = info.iAGCstart; RawAgcMiddle = info.iAGCmid; RawAgcEnd = info.iAGCend; DropLevel = info.iDropLevel; RssiTop = info.iRSSItop; RssiReference = info.iRSSIref; }