Ich möchte eine serielle Schnittstelle ständig lesen und die Ausgabe in einem Textfeld in meiner Windows 10 Universal App (C#). Ich fand diesen Code aus dem MS serielle Probe von https://github.com/ms-iot/samples/tree/develop/SerialSample/CS:Wie kann ich ständig die serielle Schnittstelle in Windows 10 Universal (C#) lesen
private async void Listen()
{
try
{
if (serialPort != null)
{
dataReaderObject = new DataReader(serialPort.InputStream);
while (true)
{
await ReadAsync(ReadCancellationTokenSource.Token);
}
}
}
catch (Exception ex)
{
if (ex.GetType().Name == "TaskCanceledException")
{
CloseDevice();
}
}
finally
{
if (dataReaderObject != null)
{
dataReaderObject.DetachStream();
dataReaderObject = null;
}
}
}
private async Task ReadAsync(CancellationToken cancellationToken)
{
Task<UInt32> loadAsyncTask;
uint ReadBufferLength = 1024;
cancellationToken.ThrowIfCancellationRequested();
dataReaderObject.InputStreamOptions = InputStreamOptions.Partial;
loadAsyncTask = dataReaderObject.LoadAsync(ReadBufferLength).AsTask(cancellationToken);
UInt32 bytesRead = await loadAsyncTask;
if (bytesRead > 0)
{
reciveTextBox.Text = dataReaderObject.ReadString(bytesRead);
}
}
aber wenn ich die Hören() aufrufen Funktion mit einem Tastenklick, einige Male liest den Port manchmal nicht.
Bitte geben Sie eine Lösung, die ständig die serielle Schnittstelle lesen und geben Sie die Ausgabe in das Textfeld ein.
Der vollständige Code von MainPage.xaml.cs ist hier: http://pastebin.com/dmsTUBmT
Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. – Marusyk