Ejemplo n.º 1
0
        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 */ }
                }
            });
        }
Ejemplo n.º 3
0
        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);
                }
            }
        }