Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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()));
                }
            }
        }