private static async System.Threading.Tasks.Task Console_Execute_IdentifyAsync(DocInterfaceControl _docIntControl) { m_LastTagID = null; //First make sure DocInterfaceControl is initialized if (_docIntControl != null) { if (_docIntControl.IsInitialized) { try { DateTime startTime = DateTime.UtcNow; //Call Identify and show result var tagScanInfo = await _docIntControl.IdentifyAsync(); TimeSpan processSpan = DateTime.UtcNow - startTime; if (tagScanInfo != null) { Console.WriteLine(""); Console.WriteLine("IdentifyResult:"); Console.WriteLine(tagScanInfo.ToString()); Console.WriteLine(string.Format("(Duration: {0})", processSpan)); //TagScanInfo can be either HfScanResultInfo (for HF scan) or UhfScanResultInfo (for UHF scan). // check type to obtain TagID and save it into global variable to be used by ReadBytes/WriteBytes if (tagScanInfo is HfScanResultInfo) { m_LastTagID = (tagScanInfo as HfScanResultInfo).TagID; } if (tagScanInfo is UhfScanResultInfo) { //For UHF more than one TAG can be found at once. For demo purposes select first TagID var uhfScan = (tagScanInfo as UhfScanResultInfo); if (uhfScan != null) { if (uhfScan.TagInfoList.Count > 0) { m_LastTagID = uhfScan.TagInfoList[0].UII.UII; } } } } else { //Update result in UI Console.WriteLine(string.Format("Result: FAIL. Duration: {0}", processSpan)); } } catch { Console.WriteLine("Exception"); } } else { Console.WriteLine("DocInterfaceControl not initialized!"); } } }
private async void Button_Identify_ClickAsync(object sender, RoutedEventArgs e) { //Identify --> Search for transponders comboBox_TagID.IsEnabled = false; comboBox_TagID.Items.Clear(); if (m_DocInterface != null) { if (m_DocInterface.IsInitialized) { DateTime startTime = DateTime.UtcNow; //This function blocks & searches for a default time of 1 second (optional parameter) try { textBox_ThreadLog.Text += "\n = IdentifyAsync =\n"; textBox_ThreadLog.ScrollToEnd(); var identifyResult = await m_DocInterface.IdentifyAsync(); TimeSpan processSpan = DateTime.UtcNow - startTime; if (identifyResult != null) { if (identifyResult is HfScanResultInfo) { HfScanResultInfo hfResult = identifyResult as HfScanResultInfo; //Update result in UI comboBox_TagID.Items.Add(BitConverter.ToString(hfResult.TagID)); //Select first ID to be used in ReadBytes/WriteBytes comboBox_TagID.SelectedIndex = 0; string toLog = string.Format("Result: OK. Duration: {0}\n", processSpan); toLog += "- HF ScanResult -\n"; toLog += string.Format("\t{0}", BitConverter.ToString(hfResult.TagID)); toLog += "\n"; textBox_ThreadLog.Text += toLog; textBox_ThreadLog.ScrollToEnd(); } if (identifyResult is UhfScanResultInfo) { UhfScanResultInfo uhfResult = identifyResult as UhfScanResultInfo; //Update result in UI foreach (var tsi in uhfResult.TagInfoList) { comboBox_TagID.Items.Add(BitConverter.ToString(tsi.UII.UII)); } //Select first UII to be used in ReadBytes/WriteBytes comboBox_TagID.SelectedIndex = 0; if (comboBox_TagID.Items.Count > 1) { comboBox_TagID.IsEnabled = true; } string toLog = string.Format("Result: OK. Duration: {0}\n", processSpan); toLog += "- UHF ScanResult -\n"; toLog += " Ant\tUII-Bytes\n"; foreach (var tsi in uhfResult.TagInfoList) { toLog += string.Format(" {0}\t{1}\n", tsi.AntennaNumber, BitConverter.ToString(tsi.UII.UII)); } textBox_ThreadLog.Text += toLog; textBox_ThreadLog.ScrollToEnd(); } } else { //Update result in UI textBox_ThreadLog.Text += string.Format("Result: FAIL. Duration: {0}\n", processSpan); textBox_ThreadLog.ScrollToEnd(); } } catch (Exception ex) { TimeSpan processSpan = DateTime.UtcNow - startTime; textBox_ThreadLog.Text += string.Format("Result: Exception. Duration: {0}\n", processSpan); textBox_ThreadLog.ScrollToEnd(); System.Diagnostics.Debug.WriteLine(ex.ToString()); } } } }