Exemple #1
0
 internal void Read(UnipiI2CDevice i2CDevice, byte[] statusBuffer)
 {
     lock (_busLock)
     {
         _logger.LogDebug(this, "Read " + string.Join("-", statusBuffer) + " to device " + i2CDevice);
         var device = GetDevice(i2CDevice);
         device?.Read(statusBuffer);
     }
 }
Exemple #2
0
 internal void Write(UnipiI2CDevice i2CDevice, byte[] buffer)
 {
     lock (_busLock)
     {
         _logger.LogDebug(this, "Write " + string.Join("-", buffer) + " to device " + i2CDevice);
         var device = GetDevice(i2CDevice);
         device?.Write(buffer);
     }
 }
Exemple #3
0
        internal I2cDevice GetDevice(UnipiI2CDevice device)
        {
            lock (_busLock)
            {
                I2cDevice i2CDevice;
                if (_devices.TryGetValue(device, out i2CDevice))
                {
                    return(i2CDevice);
                }

                _logger.LogError(this, "Device " + device + " not found! ");
                return(null);
            }
        }
Exemple #4
0
        internal void WriteRegister(UnipiI2CDevice device, byte registerAddress, byte registerValue)
        {
            lock (_busLock)
            {
                _logger.LogDebug(this, "Write RegisterNumber " + registerAddress + " value " + registerValue);

                var dependingDevice = GetDevice(device);

                if (dependingDevice == null)
                {
                    return;
                }

                var i2CWriteBuffer = new[] { registerAddress, registerValue };

                dependingDevice.Write(i2CWriteBuffer);
            }
        }
Exemple #5
0
        internal byte?ReadRegister(UnipiI2CDevice device, byte registerAddress)
        {
            lock (_busLock)
            {
                _logger.LogDebug(this, "Read RegisterNumber " + registerAddress);

                var dependingDevice = GetDevice(device);

                if (dependingDevice == null)
                {
                    return(null);
                }

                var i2CWriteBuffer = new[] { registerAddress };

                var i2CReadBuffer = new[] { registerAddress };

                dependingDevice.WriteRead(i2CWriteBuffer, i2CReadBuffer);

                return(i2CReadBuffer[0]);
            }
        }