Ich habe Serialport-Klasse in meiner früheren Desktop-Anwendung verwendet, wo ich folgendes Verfahren wurde unter Verwendung von Antwort von SerialportWas entspricht in der Windows 10 App serialPort.ReadExisting()?
var response = serialPort.ReadExisting();
Jetzt in derselben Sache zu lesen Windows-10 App folgende Methode
public static async Task<string> ReadAsync(CancellationToken cancellationToken,DataReader dataReaderObject)
{
string response = string.Empty;
try
{
var flag = false;
Task<UInt32> loadAsyncTask;
uint readBufferLength = 1024;
cancellationToken.ThrowIfCancellationRequested();
dataReaderObject.InputStreamOptions = InputStreamOptions.Partial;
loadAsyncTask = dataReaderObject.LoadAsync(readBufferLength).AsTask();
UInt32 bytesRead = await loadAsyncTask;
if (bytesRead > 0)
{
byte[] bytes = new byte[bytesRead];
dataReaderObject.ReadBytes(bytes);
//response = Encoding.ASCII.GetString(bytes);
// response = Convert.ToString(bytes);
response= ASCIIEncoding.ASCII.GetString(bytes);
}
}
catch (Exception ex)
{
response = string.Empty;
}
return response;
}
Ich bin die Umsetzung
Aber, sieht aus, als ob ich Antwort in unterschiedlichem Kodierungsformat bekomme. Als ich beide Antworten in Notepad ++ kopiert habe, habe ich folgenden Unterschied gefunden:
Was läuft hier falsch? Was entspricht in der Windows 10 App serialPort.ReadExisting()?
Es wäre hilfreich, wenn Sie Legacy-SerialPort-Code einfügen können. Welche Bytes senden Sie? – Jackie