public SpecificSymbologyViewModel(string symbologyIdentifier) { symbologyIdentifier.RequireNotNullOrWhiteSpace(nameof(symbologyIdentifier)); this.symbologyDescription = SymbologyDescription.ForIdentifier(symbologyIdentifier); this.symbology = this.symbologyDescription.Symbology; }
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. SymbologyDescription description = new SymbologyDescription(barcode.Symbology); string result = "Scanned: " + barcode.Data + " (" + description.ReadableName + ")"; if (MessageService == null) { MessageService = DependencyService.Get <IMessageService>(); } MessageService.ShowAsync(result, () => barcodeCapture.Enabled = true); }
public IEnumerable <SymbologySettingsItem> GetItems() { return(SymbologyDescription.All().Select(description => { return new SymbologySettingsItem(description, this.settingsManager.IsSymbologyEnabled(description.Symbology)); })); }
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 async Task EnableAllSymbologies(bool enabled) { foreach (SymbologyDescription description in SymbologyDescription.All()) { this.BarcodeCaptureSettings.EnableSymbology(description.Symbology, enabled); } await this.ApplyBarcodeCaptureSettingsAsync(); }
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 OnBarcodeScanned(BarcodeCapture barcodeCapture, BarcodeCaptureSession session, IFrameData frameData) { if (!session.NewlyRecognizedBarcodes.Any()) { return; } Barcode 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) { this.RejectedCode?.Invoke(this, EventArgs.Empty); return; } this.AcceptedCode?.Invoke(this, EventArgs.Empty); // 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. 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. SymbologyDescription description = new SymbologyDescription(barcode.Symbology); string result = "Scanned: " + barcode.Data + " (" + description.ReadableName + ")"; if (MessageService == null) { MessageService = DependencyService.Get <IMessageService>(); } MessageService.ShowAsync(result, () => barcodeCapture.Enabled = true); }
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 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. string symbology = SymbologyDescription.Create(barcode.Symbology).ReadableName; string result = "Scanned: " + barcode.Data + " (" + symbology + ")"; RunOnUiThread(() => ShowResults(result)); }
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 bool IsSymbologyEnabled(string symbologyIdentifier) { Symbology symbology = SymbologyDescription.ForIdentifier(symbologyIdentifier).Symbology; return(this.IsSymbologyEnabled(symbology)); }
public SymbologySettingsItem(SymbologyDescription symbologyDescription, bool enabled) { this.SymbologyDescription = symbologyDescription.RequireNotNull(nameof(symbologyDescription)); this.Enabled = enabled; }
public ScanResult(Barcode barcode) { using var symbologyDescription = SymbologyDescription.Create(barcode.Symbology); ReadableName = symbologyDescription.ReadableName; Data = barcode.Data; }