コード例 #1
0
        private short ReadShort(byte registerAddress)
        {
            // write register address
            I2CBus.GetInstance().Write(_slaveConfig, new byte[] { registerAddress }, TransactionTimeout);

            // get MSB and LSB result
            byte[] inputData = new byte[2];
            I2CBus.GetInstance().Read(_slaveConfig, inputData, TransactionTimeout);

            return((short)((inputData[0] << 8) | inputData[1]));
        }
コード例 #2
0
        /// <summary>
        /// Write operation to the BlinkM.
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        public int Write(Command.BaseCommand command)
        {
            I2CBus bus      = I2CBus.GetInstance();
            int    retValue = bus.Write(this._I2CConfig, command.GetSendBytes(), I2CTimeout);

            if (command.WaitMillis > 0)
            {
                Thread.Sleep(command.WaitMillis);
            }

            return(retValue);
        }
コード例 #3
0
        private long ReadUncompensatedPressure()
        {
            // write register address
            I2CBus.GetInstance().Write(_slaveConfig, new byte[2] {
                0xF4, (byte)(0x34 + (_oversamplingSetting << 6))
            }, TransactionTimeout);

            // insert pressure waittime using oversampling setting as index.
            Thread.Sleep(_pressureWaitTime[_oversamplingSetting]);

            // get MSB and LSB result
            byte[] inputData = new byte[3];
            I2CBus.GetInstance().ReadRegister(_slaveConfig, 0xF6, inputData, TransactionTimeout);

            return(((inputData[0] << 16) | (inputData[1] << 8) | (inputData[2])) >> (8 - _oversamplingSetting));
        }
コード例 #4
0
        private long ReadUncompensatedTemperature()
        {
            // write register address
            I2CBus.GetInstance().Write(_slaveConfig, new byte[2] {
                0xF4, 0x2E
            }, TransactionTimeout);

            // Required as per datasheet.
            Thread.Sleep(5);

            // write register address
            I2CBus.GetInstance().Write(_slaveConfig, new byte[] { 0xF6 }, TransactionTimeout);

            // get MSB and LSB result
            byte[] inputData = new byte[2];
            I2CBus.GetInstance().Read(_slaveConfig, inputData, TransactionTimeout);

            return((inputData[0] << 8) | inputData[1]);
        }
コード例 #5
0
 public NetDuinoPlus2(TcpConnectionManager manager)
 {
     TwiBus            = I2CBus.GetInstance();
     ConnectionManager = manager;
 }