/// <inheritdoc/> public override void Write(ReadOnlySpan <byte> buffer) { ushort byteSent; var ftStatus = FtFunction.FT4222_I2CMaster_Write(_ftHandle, (ushort)_settings.DeviceAddress, in MemoryMarshal.GetReference(buffer), (ushort)buffer.Length, out byteSent); if (ftStatus != FtStatus.Ok) { throw new IOException($"{nameof(Write)} failed to write, error: {ftStatus}"); } }
internal void Write(int deviceAddress, ReadOnlySpan <byte> buffer) { if (deviceAddress < 0 || deviceAddress > ushort.MaxValue) { throw new ArgumentOutOfRangeException(nameof(deviceAddress)); } if (buffer.Length > ushort.MaxValue) { throw new ArgumentOutOfRangeException(nameof(buffer), $"Buffer is too large. Maximum length is {ushort.MaxValue}."); } ushort bytesSent; var ftStatus = FtFunction.FT4222_I2CMaster_Write(_ftHandle, (ushort)deviceAddress, in MemoryMarshal.GetReference(buffer), (ushort)buffer.Length, out bytesSent); if (ftStatus != FtStatus.Ok) { throw new IOException($"{nameof(Write)} failed to write, error: {ftStatus}"); } }