コード例 #1
0
        private bool WriteFloat(I2cEncoderAddress address, float value)
        {
            var buffer = new byte[5];

            buffer[0] = (byte)address;
            if (value != (float)0.0)
            {
                var bufferReverse = BitConverter.GetBytes(value);
                buffer[1] = bufferReverse[3];
                buffer[2] = bufferReverse[2];
                buffer[3] = bufferReverse[1];
                buffer[4] = bufferReverse[0];
            }

            var result = _i2cEncoder.WritePartial(buffer);

            if (result.Status == I2cTransferStatus.FullTransfer)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #2
0
        public int Read8(I2cEncoderAddress address)
        {
            var bAddress = new byte[1];

            bAddress[0] = (byte)address;

            var buffer = new byte[1];

            var result = _i2cEncoder.WriteReadPartial(bAddress, buffer);

            return((int)buffer[0]);
        }
コード例 #3
0
        public bool Write8(I2cEncoderAddress address, int value)
        {
            var buffer = new byte[2];

            buffer[0] = (byte)address;
            buffer[1] = (byte)value;

            var result = _i2cEncoder.WritePartial(buffer);

            if (result.Status == I2cTransferStatus.FullTransfer)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #4
0
        public int Read16(I2cEncoderAddress address)
        {
            var bAddress = new byte[1];

            bAddress[0] = (byte)address;

            var buffer = new byte[2];

            var result = _i2cEncoder.WriteReadPartial(bAddress, buffer);

            var bufferInt = 0;

            if (buffer[0] != 0 || buffer[1] != 0)
            {
                var bufferReverse = new Byte[2];
                bufferReverse[0] = buffer[1];
                bufferReverse[1] = buffer[0];
                bufferInt        = BitConverter.ToInt16(bufferReverse, 0);
            }

            return(bufferInt);
        }
コード例 #5
0
        public float ReadFloat(I2cEncoderAddress address)
        {
            var bAddress = new byte[1];

            bAddress[0] = (byte)address;

            var buffer = new byte[4];

            var result = _i2cEncoder.WriteReadPartial(bAddress, buffer);

            float bufferFloat = 0;

            if (buffer[0] != 0 || buffer[1] != 0 || buffer[2] != 0 || buffer[3] != 0)
            {
                var bufferReverse = new Byte[4];
                bufferReverse[0] = buffer[3];
                bufferReverse[1] = buffer[2];
                bufferReverse[2] = buffer[1];
                bufferReverse[3] = buffer[0];
                bufferFloat      = (float)BitConverter.ToSingle(bufferReverse, 0);
            }

            return(bufferFloat);
        }