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