我目前正在阅读Win10中的串行通信。我使用这种方法:
https://ms-iot.github.io/content/en-US/win10/samples/SerialSample.htm
但是,我现在想要从另一个视图访问SerialInput流。 (除了MainPage)。
public byte[] rxbytes = new byte[06];
...
private async Task ReadAsync(CancellationToken cancellationToken)
{
Task<UInt32> loadAsyncTask;
uint ReadBufferLength = 24;
// If task cancellation was requested, comply
cancellationToken.ThrowIfCancellationRequested();
// Set InputStreamOptions to complete the asynchronous read operation when one or more bytes is available
dataReaderObject.InputStreamOptions = InputStreamOptions.Partial;
// Create a task object to wait for data on the serialPort.InputStream
loadAsyncTask = dataReaderObject.LoadAsync(ReadBufferLength).AsTask(cancellationToken);
// Launch the task and wait
UInt32 bytesRead = await loadAsyncTask;
rxbytes= new byte[bytesRead];
dataReaderObject.ReadBytes(rxbytes);
}
如果我想将所有代码写入一个视图,这基本上是完美的。但我需要访问&#34; rxbytes&#34; -array才能处理传入的数据。
一种选择是:
this.AppFrame.Navigate(typeof(page2), rxbytes);
这种方法在第二页上给了我六个空字节。 getter和setter方法也不是一个选项,因为变量不是静态的。
还有其他选择吗?
答案 0 :(得分:0)
有一些选择。
您可以将所有数据保存在应用程序的存储空间中,之后您只需要获取所有已保存的数据。
https://msdn.microsoft.com/library/windows/apps/windows.storage.applicationdata.localsettings.aspx
另一种方法是创建一个静态类,您可以在属性中保存数据并在第二个视图中获取数据。