public async Task <PipeWriteResult> WriteAsync(PipeWriteParameters parameters, CancellationToken cancellation) { var data = await parameters.Buffer.ToArrayAsync(); Write(data, 0, data.Length); return(new PipeWriteResult(WriteStatus.DONE, data.Length)); }
public async Task <PipeWriteResult> WriteAsync(PipeWriteParameters parameters, CancellationToken cancellation) { await ThreadingUtils.ContinueAtThreadPull(); var buffer = parameters.Buffer.ToArray(); _port.Write(buffer, 0, buffer.Length); return(new PipeWriteResult(WriteStatus.DONE, buffer.Length)); }
public async Task <PipeWriteResult> WriteAsync(PipeWriteParameters parameters, CancellationToken cancellation) { await ThreadingUtils.ContinueAtThreadPull(cancellation); var buffer = parameters.Buffer.ToArray(); uint bytesWritten = 0; var status = _ftdi.Write(parameters.Buffer.ToArray(), buffer.Length.ToUInt32(), ref bytesWritten); if (status != FT_STATUS.FT_OK) { return(new PipeWriteResult(WriteStatus.UNKNOWN_ERROR)); } else { if (bytesWritten != buffer.Length) { return(new PipeWriteResult(WriteStatus.PATIALLY_DONE, bytesWritten.ToInt32())); } else { return(new PipeWriteResult(WriteStatus.DONE, bytesWritten.ToInt32())); } } }