Esempio n. 1
0
        /// <summary>
        /// Set Transmission Power
        /// </summary>
        /// <param name="pga"></param>
        public void SetRFGAIN(RFGAIN rfgain)
        {
            byte[] buff = new byte[1];

            int reg1, reg2, reg10;

            sensor.WriteRead(new byte[] { 0x01 }, buff);
            reg1 = buff[0];
            sensor.WriteRead(new byte[] { 0x02 }, buff);
            reg2 = buff[0];
            sensor.WriteRead(new byte[] { 0x13 }, buff);
            reg10 = buff[0];

            int rfgainVal = (int)rfgain & 0x0F;

            reg1 = (reg1 & 0x3F) | (rfgainVal << 6);

            if ((rfgainVal & 0x04) > 0)
            {
                reg10 |= 0x80;
            }
            else
            {
                reg10 &= ~0x80;
            }

            if ((rfgainVal & 0x08) > 0)
            {
                reg2 |= 0x40;
            }
            else
            {
                reg2 &= ~0x40;
            }

            if ((int)rfgain >= 8)
            {
                sensor.Write(new byte[] { 0x0E, 0x10 });
            }

            sensor.Write(new byte[] { 0x01, (byte)reg1 });
            sensor.Write(new byte[] { 0x02, (byte)reg2 });
            sensor.Write(new byte[] { 0x13, (byte)reg10 });
        }
Esempio n. 2
0
        /// <summary>
        /// Initialize KT0803L
        /// </summary>
        /// <param name="mhz">FM Channel ( Range from 70Mhz to 108Mhz )</param>
        /// <param name="country">Region</param>
        /// <param name="rfgain">Transmission Power</param>
        /// <param name="pga">PGA ( Programmable Gain Amplifier ) Gain</param>
        public async Task InitializeAsync(double mhz, Country country = Country.CHINA, RFGAIN rfgain = RFGAIN.RFGAIN_98_9dBuV, PGA pga = PGA.PGA_0dB)
        {
            var settings = new I2cConnectionSettings(KT_ADDR);

            settings.BusSpeed = I2cBusSpeed.StandardMode;

            var controller = await I2cController.GetDefaultAsync();

            sensor = controller.GetDevice(settings);

            SetChannel(mhz);
            SetRFGAIN(rfgain);
            SetPGA(pga);
            SetPHTCNST(country);
        }