public override bool WritePage(int addr, byte[] buffer) { #if !NUSBIO2 var v = this._i2c.Send16BitsAddressAndBuffer(addr, buffer.Length, buffer); // EEPROM need a wait time after a write operation if (this._waitTimeAfterWriteOperation > 0) { Thread.Sleep(this._waitTimeAfterWriteOperation); } return(v); #else var outBuffer = new List <byte>() { (byte)(addr >> 8), (byte)(addr & 0xFF) }; outBuffer.AddRange(buffer); var r = Nusbio2NAL.I2C_Helper_Write(base.DeviceId, outBuffer.ToArray()) == 1; if (this._waitTimeAfterWriteOperation > 0) { System.Threading.Thread.Sleep(this._waitTimeAfterWriteOperation); } return(true); #endif }
public override EEPROM_BUFFER ReadPage(int addr, int len = EEPROM_BASE_CLASS.DEFAULT_PAGE_SIZE) { var r = new EEPROM_BUFFER(len); #if NUSBIO2 var inBuffer = new List <byte>() { (byte)(addr >> 8), (byte)(addr & 0xFF) }; r.Buffer = new byte[len]; // Must pre allocate the buffer for now r.Succeeded = Nusbio2NAL.I2C_Helper_WriteRead(base.DeviceId, inBuffer.ToArray(), r.Buffer) == 1; return(r); #else #if OPTIMIZE_I2C_CALL // This method is faster because the I2C write and read operations are // combined in one USB buffer r.Succeeded = this._i2c.Send16BitsAddressAndReadBuffer(addr, len, r.Buffer); #else // Slower method because we have one USB operation for the I2C write // and one USB operation for the I2C read // The transfer of the data per say is the same var tmpArray = new byte[2]; if (this._i2c.WriteBuffer(new byte[2] { (byte)(addr >> 8), (byte)(addr & 0xFF) })) { r.Succeeded = this._i2c.ReadBuffer(len, r.Buffer); } #endif #endif return(r); }
bool Ii2cOut.i2c_WriteBuffer(byte[] buffer) { var b = new List <byte>() { (byte)this.DeviceId }; b.AddRange(buffer); return(Nusbio2NAL.I2C_Helper_Write(this.DeviceId, b.ToArray()) == 1); }
bool Ii2cOut.i2c_WriteReadBuffer(byte[] writeBuffer, byte[] readBuffer) { #if NUSBIO2 var r = Nusbio2NAL.I2C_Helper_WriteRead(this.DeviceID, writeBuffer, readBuffer) == 1; return(r); #else if (this._i2c.WriteBuffer(writeBuffer)) { return(this._i2c.ReadBuffer(readBuffer.Length, readBuffer)); } else { return(false); } #endif }
public SPIResult SpiTransfer(List <byte> bytes, bool select = true, bool optimizeDataLine = false) { #if NUSBIO2 var r = new SPIResult(); var tmpReadBuffer = new byte[bytes.Count]; var ok = Nusbio2NAL.SPI_Helper_SingleReadWrite(bytes.ToArray(), tmpReadBuffer, bytes.Count); if (ok) { r.Buffer = tmpReadBuffer.ToList(); r.Succeeded = true; } return(r); #else return(this._spi.Transfer(bytes, select, optimizeDataLine)); #endif }
private SPIResult SpiTransfer(List <byte> buffer, bool writeRead) { #if NUSBIO2 var r = new SPIResult(); if (writeRead) { var tmpReadBuffer = new byte[buffer.Count]; var ok = Nusbio2NAL.SPI_Helper_SingleReadWrite(buffer.ToArray(), tmpReadBuffer, buffer.Count); if (ok) { r.Buffer = tmpReadBuffer.ToList(); r.Succeeded = true; } } else { r.Succeeded = Nusbio2NAL.SPI_Helper_Write(buffer.ToArray(), buffer.Count); } return(r); #else return(this._spi.Transfer(buffer)); #endif }
//MadeInTheUSB.Components.Interface.Ii2cOut bool Ii2cOut.i2c_Send1ByteCommand(byte c) { return(Nusbio2NAL.I2C_Helper_Write1Byte(this.DeviceId, c) == 1); }
bool Ii2cOut.i2c_WriteBuffer(byte[] buffer) { return(Nusbio2NAL.I2C_Helper_Write(this.DeviceId, buffer.ToArray()) == 1); }