private async void Send(string text) { _serialPort.Write(text); ReceivedText += await _serialPort.ReadAsync() + Environment.NewLine; SendText = string.Empty; }
private void StartListening() { var buffer = new byte[256]; Task.Run(async() => { while (_serialPort != null && _isActive) { try { var bytesRead = await _serialPort.ReadAsync(buffer, 0, 256, _cancellationTokenSource.Token); if (bytesRead > 0) { var outputBuffer = buffer.Take(bytesRead); _receiveQueue.Enqueue(outputBuffer.ToArray()); _receiveSignal.Set(); } } catch (TaskCanceledException) { /* nop */ } } }); }
private async void StartListening() { _running = true; var buffer = new byte[4096]; //https://mavlink.io/en/guide/serialization.html //https://mavlink.io/en/protocol/overview.html //TODO: Move to a service class while (_running) { var readCount = await _serialPort.ReadAsync(buffer, 0, buffer.Length); _dispatcherServices.Invoke(() => { BytesReceived += readCount; }); if (readCount > 0) { _messageParser.HandleBuffer(buffer, readCount); } } }