static async void MainAsync() { Console.WriteLine(".NETCore Console"); Console.WriteLine("SampleThreads_C#"); Console.WriteLine("--------------------"); Console.WriteLine("Library Version: " + iIDReaderLibrary.Version.LibraryVersion); //Get SpcInterfaceControl instance SpcInterfaceControl spcIntControl = Console_InitializeSpcInterfaceControl(); if (spcIntControl != null) { //SpcInterfaceControl is initialized Console.WriteLine(""); Console.Write("Waiting for Heartbeat..."); var heartbeat = await spcIntControl.GetHeartbeatAsync(); if (heartbeat != null) { Console.WriteLine(""); Console.WriteLine("Detected Reader:"); ShowHeartbeat(heartbeat); } //Reader info obtained --> execute functions using menu Console.WriteLine(""); while (await Console_ExecuteAndContinueAsync(spcIntControl)) { Thread.Sleep(500); } spcIntControl.Terminate(); Console.WriteLine(""); Console.Write("EXITING in 5"); Thread.Sleep(1000); Console.Write(", 4"); Thread.Sleep(1000); Console.Write(", 3"); Thread.Sleep(1000); Console.Write(", 2"); Thread.Sleep(1000); Console.Write(", 1"); Thread.Sleep(1000); } m_Completed = true; }
private async void Button_GetHeartbeatAsync_ClickAsync(object sender, RoutedEventArgs e) { m_CancellationTokenSource.Cancel(); AddLoggingText("Waiting asynchronously for Heartbeat..."); var heartbeat = await m_SpcInterface.GetHeartbeatAsync(m_CancellationTokenSource.Token); if (heartbeat != null) { AddLoggingText(string.Format("Heartbeat received: {0}, {1}", heartbeat.ReaderID, heartbeat.BatteryStatus)); Dispatcher.Invoke(() => { textBlock_ReaderID.Text = heartbeat.ReaderID.ToString(); textBlock_Battery.Text = heartbeat.BatteryStatus.ToString(); if (((SolidColorBrush)border_Result.Background).Color != Colors.Transparent) { border_Result.Background = new SolidColorBrush(Colors.Transparent); } }); } }
private static async System.Threading.Tasks.Task <bool> Console_ExecuteAndContinueAsync(SpcInterfaceControl _spcIntControl) { //Main Console MENU Console.WriteLine(""); Console.WriteLine("--------------------"); Console.WriteLine(" Console MENU"); Console.WriteLine("--------------------"); Console.WriteLine("0 - Get Last HEARTBEAT"); Console.WriteLine("1 - Get HEARTBEAT asynchronously"); Console.WriteLine("2 - Get Last RawData"); Console.WriteLine("3 - Get RawData asynchronously"); Console.WriteLine("4 - Send READ request"); Console.WriteLine("5 - Send WRITE request"); Console.WriteLine("X - EXIT"); Console.Write("Selection (confirm with ENTER): "); string operationNumTxt = Console.ReadLine(); switch (operationNumTxt) { case "0": Console.WriteLine("\tGet Last HEARTBEAT"); var lastHb = _spcIntControl.Heartbeat; if (lastHb != null) { ShowHeartbeat(lastHb); } break; case "1": Console.WriteLine("\tGet HEARTBEAT asynchronously"); var hbAsync = await _spcIntControl.GetHeartbeatAsync(); if (hbAsync != null) { ShowHeartbeat(hbAsync); } break; case "2": Console.WriteLine("\tGet Last RawData"); var lastRawData = _spcIntControl.DataReceived; if (lastRawData != null) { DecodeReceivedText(lastRawData.Data); } break; case "3": Console.WriteLine("\tGet RawData asynchronously"); var rawDataAsync = await _spcIntControl.GetDataReceivedAsync(); if (rawDataAsync != null) { DecodeReceivedText(rawDataAsync.Data); } break; case "4": Console.WriteLine("\tSend READ request"); SendReadRequest(_spcIntControl); break; case "5": Console.WriteLine("\tSend WRITE request"); SendWriteRequest(_spcIntControl); break; case "X": case "x": return(false); default: break; } Thread.Sleep(500); return(true); }