2016-02-20 4 views
0

Я сейчас читаю Serial Communication в Win10. Я использую этот подход:Win10 UWP C#: переменные доступа образуют другой класс/вид

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); 


} 

В основном это прекрасно работает, если я хочу написать весь код в один вид. Но мне нужно получить доступ к «rxbytes» -array для обработки входящих данных.

Один из вариантов:

this.AppFrame.Navigate(typeof(page2), rxbytes); 

Это подход дает мне шесть пустых байтов на 2-й странице. Метод getter и setter также не является опцией, поскольку переменная не является статической.

Есть ли другие варианты?

ответ

0

есть некоторые варианты.

Вы можете сохранить все данные в хранилище своего приложения после этого, вам просто нужно получить все сохраненные данные.

https://msdn.microsoft.com/library/windows/apps/windows.storage.applicationdata.localsettings.aspx

Другой способ создает статический класс, где вы можете сохранить в собственности данные и получить данные во втором представлении.

Смежные вопросы