public void OnBarcodeScanned(BarcodeCapture barcodeCapture, BarcodeCaptureSession session, IFrameData frameData) { var barcode = session?.NewlyRecognizedBarcodes.FirstOrDefault(); if (barcode == null || string.IsNullOrEmpty(barcode.Data)) { return; } // Stop recognizing barcodes for as long as we are displaying the result. There won't be any new // results until the capture mode is enabled again. Note that disabling the capture mode does // not stop the camera, the camera continues to stream frames until it is turned off. this.barcodeCapture.Enabled = false; // If you are not disabling barcode capture here and want to continue scanning, consider // setting the codeDuplicateFilter when creating the barcode capture settings to around 500 // or even -1 if you do not want codes to be scanned more than once. // Get the human readable name of the symbology and assemble the result to be shown. string symbology = SymbologyDescription.Create(barcode.Symbology).ReadableName; string result = string.Format("Scanned {0} ({1})", barcode.Data, symbology); this.ShowResult(result); // Dispose the frame when you have finished processing it. If the frame is not properly disposed, // different issues could arise, e.g. a frozen, non-responsive, or "severely stuttering" video feed. frameData.Dispose(); }
public void OnBarcodeScanned(BarcodeCapture barcodeCapture, BarcodeCaptureSession session, IFrameData frameData) { if (!session.NewlyRecognizedBarcodes.Any()) { return; } Barcode barcode = session.NewlyRecognizedBarcodes[0]; // Stop recognizing barcodes for as long as we are displaying the result. There won't be any new results until // the capture mode is enabled again. Note that disabling the capture mode does not stop the camera, the camera // continues to stream frames until it is turned off. barcodeCapture.Enabled = false; // If you are not disabling barcode capture here and want to continue scanning, consider // setting the codeDuplicateFilter when creating the barcode capture settings to around 500 // or even -1 if you do not want codes to be scanned more than once. // Get the human readable name of the symbology and assemble the result to be shown. using (SymbologyDescription description = SymbologyDescription.Create(barcode.Symbology)) { string result = "Scanned: " + barcode.Data + " (" + description.ReadableName + ")"; RunOnUiThread(() => ShowResults(result)); } }
public void OnSessionUpdated(BarcodeTracking barcodeCapture, BarcodeTrackingSession session, IFrameData frameData) { lock (this.scanResults) { foreach (var trackedBarcode in session.AddedTrackedBarcodes) { this.scanResults.Add(new ScanResult { Data = trackedBarcode.Barcode.Data, Symbology = SymbologyDescription.Create(trackedBarcode.Barcode.Symbology).ReadableName }); } } }
public void OnBarcodeScanned(BarcodeCapture barcodeCapture, BarcodeCaptureSession session, IFrameData frameData) { if (session.NewlyRecognizedBarcodes.Any()) { if (!this.ContinuousScanningEnabled) { this.PauseScanning(); } Barcode barcode = session.NewlyRecognizedBarcodes[0]; using SymbologyDescription description = SymbologyDescription.Create(barcode.Symbology); this.listener?.ShowDialog(description.ReadableName, barcode.Data, barcode.SymbolCount); } }
public void OnBarcodeScanned(BarcodeCapture barcodeCapture, BarcodeCaptureSession session, IFrameData frameData) { if (session.NewlyRecognizedBarcodes.Count == 0) { return; } var barcode = session.NewlyRecognizedBarcodes[0]; // If the code scanned doesn't start with "09:", we will just ignore it and continue // scanning. if (barcode.Data?.StartsWith("09:") == false) { // We temporarily change the brush, used to highlight recognized barcodes, to a // transparent brush. this.overlay.Brush = Brush.TransparentBrush; return; } // If the code is recognized, we want to make sure to use a brush to highlight // the code. this.overlay.Brush = this.highlightingBrush; // We also want to emit a feedback (vibration and, if enabled, sound). this.feedback.Emit(); // Stop recognizing barcodes for as long as we are displaying the result. There won't be any new // results until the capture mode is enabled again. Note that disabling the capture mode does // not stop the camera, the camera continues to stream frames until it is turned off. this.barcodeCapture.Enabled = false; // If you are not disabling barcode capture here and want to continue scanning, consider // setting the codeDuplicateFilter when creating the barcode capture settings to around 500 // or even -1 if you do not want codes to be scanned more than once. // Get the human readable name of the symbology and assemble the result to be shown. string symbology = SymbologyDescription.Create(barcode.Symbology).ReadableName; string result = string.Format("Scanned {0} ({1})", barcode.Data, symbology); this.ShowResult(result); // Dispose the frame when you have finished processing it. If the frame is not properly disposed, // different issues could arise, e.g. a frozen, non-responsive, or "severely stuttering" video feed. frameData.Dispose(); }
public void OnBarcodeScanned(BarcodeCapture barcodeCapture, BarcodeCaptureSession session, IFrameData data) { if (session.NewlyRecognizedBarcodes.Count == 0) { return; } var barcode = session.NewlyRecognizedBarcodes[0]; // If the code scanned doesn't start with "09:", we will just ignore it and continue // scanning. if (barcode.Data?.StartsWith("09:") == false) { // We temporarily change the brush, used to highlight recognized barcodes, to a // transparent brush. overlay.Brush = Brush.TransparentBrush; return; } // If the code is recognized, we want to make sure to use a brush to highlight the code. overlay.Brush = this.highlightingBrush; // We also want to emit a feedback (vibration and, if enabled, sound). feedback.Emit(); // Stop recognizing barcodes for as long as we are displaying the result. There won't be any // new results until the capture mode is enabled again. Note that disabling the capture mode // does not stop the camera, the camera continues to stream frames until it is turned off. barcodeCapture.Enabled = false; // If you are not disabling barcode capture here and want to continue scanning, consider // setting the codeDuplicateFilter when creating the barcode capture settings to around 500 // or even -1 if you do not want codes to be scanned more than once. // Get the human readable name of the symbology and assemble the result to be shown. using (var description = SymbologyDescription.Create(barcode.Symbology)) { var result = "Scanned: " + barcode.Data + " (" + description.ReadableName + ")"; RunOnUiThread(() => ShowResult(result)); } }
public void ShowDialog(Barcode barcode) { string compositeType = string.Empty; string data = barcode.Data; if (!string.IsNullOrEmpty(barcode.AddOnData)) { data += " " + barcode.AddOnData; } if (!string.IsNullOrEmpty(barcode.CompositeData)) { data += " " + barcode.CompositeData; compositeType = this.StringFromCompositeFlag(barcode.CompositeFlag); } using SymbologyDescription description = SymbologyDescription.Create(barcode.Symbology); string symbology = description.ReadableName; int symbolCount = barcode.SymbolCount; string text; if (string.IsNullOrEmpty(compositeType)) { string textFormat = this.RequireContext().GetString(Resource.String.result_parametrised); text = string.Format(textFormat, symbology, data, symbolCount); } else { string textFormat = this.RequireContext().GetString(Resource.String.cc_result_parametrised); text = string.Format(textFormat, compositeType, symbology, data, symbolCount); } if (this.viewModel.ContinuousScanningEnabled) { this.Activity.RunOnUiThread(() => this.ShowDialogForContinuousScanning(text)); } else { this.Activity.RunOnUiThread(() => this.ShowDialogForOneShotScanning(text)); } }
public static string ReadableName(this Symbology symbology) => SymbologyDescription.Create(symbology).ReadableName;
public SymbologySettingsDataSource(IDataSourceListener dataSourceListener, SymbologySettings symbologySettings) { this.DataSourceListener = dataSourceListener; this.symbologySettings = symbologySettings; this.symbologyDescription = SymbologyDescription.Create(symbologySettings.Symbology); }
public ScanResult(Barcode barcode) { using var symbologyDescription = SymbologyDescription.Create(barcode.Symbology); ReadableName = symbologyDescription.ReadableName; Data = barcode.Data; }