/// <summary> /// Event Handler for Start Scan Button Click. /// Sets up the barcode scanner to be ready to receive the data events from the scan. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void ScenarioStartScanButton_Click(object sender, RoutedEventArgs e) { ScenarioStartScanButton.IsEnabled = false; rootPage.NotifyUser("Acquiring barcode scanner object.", NotifyType.StatusMessage); // create the barcode scanner. scanner = await DeviceHelpers.GetFirstBarcodeScannerAsync(); if (scanner != null) { // after successful creation, list supported symbologies IReadOnlyList <uint> supportedSymbologies = await scanner.GetSupportedSymbologiesAsync(); foreach (uint symbology in supportedSymbologies) { listOfSymbologies.Add(new SymbologyListEntry(symbology)); } // Claim the scanner for exclusive use and enable it so raises DataReceived events. claimedScanner = await scanner.ClaimScannerAsync(); if (claimedScanner != null) { // It is always a good idea to have a release device requested event handler. // If this event is not handled, then another app can claim ownership of the barcode scanner. claimedScanner.ReleaseDeviceRequested += claimedScanner_ReleaseDeviceRequested; // after successfully claiming, attach the datareceived event handler. claimedScanner.DataReceived += claimedScanner_DataReceived; // Ask the platform to decode the data by default. When this is set, the platform // will decode the raw data from the barcode scanner and include in the // BarcodeScannerReport.ScanDataLabel and ScanDataType in the DataReceived event. claimedScanner.IsDecodeDataEnabled = true; // Enable the scanner so it raises DataReceived events. // Do this after adding the DataReceived event handler. await claimedScanner.EnableAsync(); // reset the button state ScenarioEndScanButton.IsEnabled = true; SetActiveSymbologiesButton.IsEnabled = true; rootPage.NotifyUser("Ready to scan. Device ID: " + claimedScanner.DeviceId, NotifyType.StatusMessage); } else { scanner.Dispose(); scanner = null; ScenarioStartScanButton.IsEnabled = true; rootPage.NotifyUser("Claim barcode scanner failed.", NotifyType.ErrorMessage); } } else { ScenarioStartScanButton.IsEnabled = true; rootPage.NotifyUser("Barcode scanner not found. Please connect a barcode scanner.", NotifyType.ErrorMessage); } }
/// <summary> /// Event Handler for Start Scan Button Click. /// Sets up the barcode scanner to be ready to receive the data events from the scan. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void ScenarioStartScanButton_Click(object sender, RoutedEventArgs e) { ScenarioStartScanButton.IsEnabled = false; rootPage.NotifyUser("Acquiring barcode scanner object.", NotifyType.StatusMessage); // create the barcode scanner. scanner = await DeviceHelpers.GetFirstBarcodeScannerAsync(); if (scanner != null) { // claim the scanner for exclusive use and enable it so that data received events are received. claimedScanner = await scanner.ClaimScannerAsync(); if (claimedScanner != null) { // It is always a good idea to have a release device requested event handler. If this event is not handled, there are chances of another app can // claim ownership of the barcode scanner. claimedScanner.ReleaseDeviceRequested += claimedScanner_ReleaseDeviceRequested; // after successfully claiming, attach the datareceived event handler. claimedScanner.DataReceived += claimedScanner_DataReceived; // Ask the API to decode the data by default. By setting this, API will decode the raw data from the barcode scanner and // send the ScanDataLabel and ScanDataType in the DataReceived event claimedScanner.IsDecodeDataEnabled = true; // enable the scanner. // Note: If the scanner is not enabled (i.e. EnableAsync not called), attaching the event handler will not be any useful because the API will not fire the event // if the claimedScanner has not been Enabled await claimedScanner.EnableAsync(); // after successful claim, list supported symbologies IReadOnlyList <uint> supportedSymbologies = await scanner.GetSupportedSymbologiesAsync(); foreach (uint symbology in supportedSymbologies) { listOfSymbologies.Add(new SymbologyListEntry(symbology)); } // reset the button state ScenarioEndScanButton.IsEnabled = true; rootPage.NotifyUser("Ready to scan. Device ID: " + claimedScanner.DeviceId, NotifyType.StatusMessage); } else { scanner.Dispose(); scanner = null; ScenarioStartScanButton.IsEnabled = true; rootPage.NotifyUser("Claim barcode scanner failed.", NotifyType.ErrorMessage); } } else { ScenarioStartScanButton.IsEnabled = true; rootPage.NotifyUser("Barcode scanner not found. Please connect a barcode scanner.", NotifyType.ErrorMessage); } }