Exemplo n.º 1
0
        public Configuration(ILoggerFactoryAdapter loggerFactoryAdapter, ICommandProcessor commandProcessor, IRegisterContainer registerContainer)
        {
            _logger            = loggerFactoryAdapter.GetLogger(GetType());
            _commandProcessor  = commandProcessor;
            _registerContainer = registerContainer;
            _payloadWidth      = Constants.MaxPayloadWidth;

            // Attempt to set DataRate to 250Kbps to determine if this is a plus model
            DataRates oldDataRate = DataRate;

            DataRate     = DataRates.DataRate250Kbps;
            _isPlusModel = DataRate == DataRates.DataRate250Kbps;
            DataRate     = oldDataRate;
        }
Exemplo n.º 2
0
        public bool SetDataRate(DataRates dataRate)
        {
            bool success = false;
            byte setup   = ReadRegister(Constants.RF_SETUP);

            // HIGH and LOW '00' is 1Mbs - our default
            _isWideBand = false;
            setup      &= (byte)(~(_BV(Constants.RF_DR_LOW) | _BV(Constants.RF_DR_HIGH)));
            if (dataRate == DataRates.DataRate250Kbps)
            {
                // Must set the RF_DR_LOW to 1; RF_DR_HIGH (used to be RF_DR) is already 0
                // Making it '10'.
                _isWideBand = false;
                setup      |= _BV(Constants.RF_DR_LOW);
            }
            else
            {
                // Set 2Mbs, RF_DR (RF_DR_HIGH) is set 1
                // Making it '01'
                if (dataRate == DataRates.DataRate2Mbps)
                {
                    _isWideBand = true;
                    setup      |= _BV(Constants.RF_DR_HIGH);
                }
                else
                {
                    // 1Mbs
                    _isWideBand = false;
                }
            }
            WriteRegister(Constants.RF_SETUP, setup);

            // Verify Results
            if (ReadRegister(Constants.RF_SETUP) == setup)
            {
                success = true;
            }
            else
            {
                _isWideBand = false;
            }

            return(success);
        }
Exemplo n.º 3
0
        public DataRates GetDataRate()
        {
            DataRates dataRate = DataRates.DataRate250Kbps;
            byte      setup    = (byte)(ReadRegister(Constants.RF_SETUP) & (1 << Constants.RF_DR_LOW | 1 << Constants.RF_DR_HIGH));

            if (setup == _BV(Constants.RF_DR_LOW))
            {
                dataRate = DataRates.DataRate250Kbps;
            }
            else if (setup == _BV(Constants.RF_DR_HIGH))
            {
                dataRate = DataRates.DataRate2Mbps;
            }
            else
            {
                dataRate = DataRates.DataRate1Mbps;
            }
            return(dataRate);
        }
Exemplo n.º 4
0
 public void setDataRate(DataRates enumVal)
 {
     dataRate = (int)enumVal;
 }
 public static string GetName(this DataRates dataRate)
 {
     return(DataRates[(int)dataRate]);
 }
Exemplo n.º 6
0
        public bool SetDataRate(DataRates dataRate)
        {
            bool success = false;
            byte setup = ReadRegister(Constants.RF_SETUP);
            // HIGH and LOW '00' is 1Mbs - our default
            _isWideBand = false;
            setup &= (byte)(~(BitValue(Constants.RF_DR_LOW) | BitValue(Constants.RF_DR_HIGH)));
            if (dataRate == DataRates.DataRate250Kbps)
            {
                // Must set the RF_DR_LOW to 1; RF_DR_HIGH (used to be RF_DR) is already 0
                // Making it '10'.
                _isWideBand = false;
                setup |= BitValue(Constants.RF_DR_LOW);
            }
            else
            {
                // Set 2Mbs, RF_DR (RF_DR_HIGH) is set 1
                // Making it '01'
                if (dataRate == DataRates.DataRate2Mbps)
                {
                    _isWideBand = true;
                    setup |= BitValue(Constants.RF_DR_HIGH);
                }
                else
                {
                    // 1Mbs
                    _isWideBand = false;
                }
            }
            WriteRegister(Constants.RF_SETUP, setup);

            // Verify Results
            if (ReadRegister(Constants.RF_SETUP) == setup)
                success = true;
            else
                _isWideBand = false;

            return success;
        }