diff --git a/source/AbstractIO.AdafruitMotorShieldV2/AbstractIO.AdafruitMotorShieldV2.nfproj b/source/AbstractIO.AdafruitMotorShieldV2/AbstractIO.AdafruitMotorShieldV2.nfproj index adaa364..d03377c 100644 --- a/source/AbstractIO.AdafruitMotorShieldV2/AbstractIO.AdafruitMotorShieldV2.nfproj +++ b/source/AbstractIO.AdafruitMotorShieldV2/AbstractIO.AdafruitMotorShieldV2.nfproj @@ -59,7 +59,7 @@ True True - + ..\packages\nanoFramework.Windows.Devices.Pwm.1.5.1\lib\Windows.Devices.Pwm.dll True True diff --git a/source/AbstractIO.AdafruitMotorShieldV2/Pca9685PwmController.cs b/source/AbstractIO.AdafruitMotorShieldV2/Pca9685PwmController.cs index a4fd798..08ce96e 100644 --- a/source/AbstractIO.AdafruitMotorShieldV2/Pca9685PwmController.cs +++ b/source/AbstractIO.AdafruitMotorShieldV2/Pca9685PwmController.cs @@ -182,7 +182,12 @@ private void WriteRegister(byte registerOffset, byte data) byte[] writeBuffer = { registerOffset, data }; lock (AbstractIO.GlobalLockObjects.I2cLockObject) { - _i2cDevice.Write(writeBuffer); + var operationResult = _i2cDevice.WritePartial(writeBuffer); + if(operationResult.Status != I2cTransferStatus.FullTransfer) + { + // TODO + // handle error + } } } @@ -202,7 +207,12 @@ private void WriteConsecutiveRegisters(byte startRegisterOffset, params byte[] v } lock (AbstractIO.GlobalLockObjects.I2cLockObject) { - _i2cDevice.Write(writeBuffer); + var operationResult = _i2cDevice.WritePartial(writeBuffer); + if (operationResult.Status != I2cTransferStatus.FullTransfer) + { + // TODO + // handle error + } } } @@ -272,8 +282,19 @@ private byte ReadRegister(byte registerOffset) var readBuffer = new byte[1]; lock (AbstractIO.GlobalLockObjects.I2cLockObject) { - _i2cDevice.Write(writeBuffer); - _i2cDevice.Read(readBuffer); + var operationResult = _i2cDevice.WritePartial(writeBuffer); + if (operationResult.Status != I2cTransferStatus.FullTransfer) + { + // TODO + // handle error + } + + operationResult = _i2cDevice.ReadPartial(readBuffer); + if (operationResult.Status != I2cTransferStatus.FullTransfer) + { + // TODO + // handle error + } } return readBuffer[0]; } diff --git a/source/AbstractIO.Netduino3/AbstractIO.Netduino3.nfproj b/source/AbstractIO.Netduino3/AbstractIO.Netduino3.nfproj index b8a4037..504bb20 100644 --- a/source/AbstractIO.Netduino3/AbstractIO.Netduino3.nfproj +++ b/source/AbstractIO.Netduino3/AbstractIO.Netduino3.nfproj @@ -54,7 +54,7 @@ True True - + ..\packages\nanoFramework.Windows.Devices.Pwm.1.5.1\lib\Windows.Devices.Pwm.dll True True