IRONSOFTWAREHOME
IRONBARCODE KULLANARAK

C# USB Barkod Tarayıcı: Tam Bir Tarama Uygulaması Oluşturun

Curtis Chau
Curtis Chau
Updated: 28 Haziran 2026

USB barkod tarayıcılar, C# uygulamalarına standart klavye giriş aygıtları olarak bağlanır ve taranan verileri bir Enter tuş vuruşunun ardından yazılmış karakterler olarak gönderir. Bu HID klavye kama davranışı, entegrasyonu basit hale getirir -- uygulamanızın metin girişi alması için özel bir sürücü veya SDK gerekmez. IronBarcode, bu ham girdiyi formatları doğrulamak, yapılandırılmış verileri çıkarmak ve yanıt barkodları oluşturmak için işler ve basit bir tarama olayını envanter yönetimi, perakende satış noktası ve lojistik takip sistemleri için eksiksiz bir veri hattına dönüştürür.

Perakende, depolama ve üretim operasyonlarının tümü, doğru ve hızlı barkod taramaya dayanır. Bir geliştirici, bir USB tarayıcıyı bir Windows Forms veya WPF uygulamasına bağladığında, tarayıcı klavye ile aynı şekilde davranır -- veriler bir TextBox'a gelir ve Enter tuşuna basıldığında tam bir barkod alındığını bildirir. Mesele veriyi yakalamakta değildir; doğru işlemede yatmaktadır. IronBarcode'un barkod doğrulaması biçim bütünlüğünü kontrol eder, parti numaraları veya GS1 uygulama tanımlayıcıları gibi alanları çıkarır ve bir yanıt olarak hemen yeni bir barkod oluşturabilir.

Bu kılavuz, üretime hazır bir C# USB barkod tarayıcı uygulamasını adım adım oluşturmaya yönlendirir. Kütüphaneyi yükleyeceksiniz, tarayıcı girdisini yakalayacaksınız, barkod formatlarını doğrulayacaksınız, yanıt etiketleri oluşturacaksınız ve yüksek hacimli bir kuytu tabanlı işlemci toplayacaksınız. Her bölüm, uygun olduğunda üst düzey ifadelerle .NET 10'u hedefleyen eksiksiz ve çalıştırılabilir kod içerir.

USB Barkod Tarayıcılar C# İle Nasıl Çalışır?

HID Klavye Kama Modu Entegrasyonu Neden Basitleştirir?

Çoğu USB barkod tarayıcı, varsayılan olarak HID klavye kama modunda yapılandırılarak gelir. Bir tanesini bir Windows makinesine taktığınızda, işletim sistemi bunu hem bir USB depolama aygıtı (konfigürasyon için) hem de bir klavye (veri girişi için) olarak kaydeder. Bir barkod tarandığında, cihaz, çözümlenmiş barkod değerini tuş vuruşlarına çevirir ve odaklı herhangi bir uygulama penceresine gönderir, sonunda bir taşıma dönüşü ekleyerek.

C# geliştiricisi açısından, bu, satıcı SDK'larına, COM kütüphanelerine veya özel USB API'lerine ihtiyaç duyulmadığı anlamına gelir. Girdiyi yakalamak için bir KeyDown işleyicisi olan standart bir TextBox yeterlidir. Ana entegrasyon zorluğu, tarayıcı girdisini gerçek klavye yazımından ayırt etmektir. Tarayıcılar genellikle tüm karakterleri çok kısa bir patlama süresinde iletir - genellikle 50 milisaniyenin altında - oysa insan yazımı tuş vuruşlarını yüzlerce milisaniye boyunca yayar. Bu patlamanın zamanlaması, yanlışlıkla yapılan tuş vuruşlarını filtrelemek için güvenilir bir yoldur.

Profesyonel dereceli tarayıcılar ayrıca seri (RS-232 veya sanal COM port) ve doğrudan USB HID modlarını destekler, bu da ön ek/son ek karakterleri ve tarama tetikleyicileri üzerinde daha fazla kontrol sağlar. Aşağıdaki arayüz deseni her iki durumu da ele alır:

public interface IScannerInput
{
    event EventHandler<string> BarcodeScanned;
    void StartListening();
    void StopListening();
}

public class KeyboardWedgeScanner : IScannerInput
{
    public event EventHandler<string> BarcodeScanned;
    private readonly TextBox _inputBox;
    private readonly System.Windows.Forms.Timer _burstTimer;
    private readonly System.Text.StringBuilder _buffer = new();

    public KeyboardWedgeScanner(TextBox inputBox)
    {
        _inputBox = inputBox;
        _burstTimer = new System.Windows.Forms.Timer { Interval = 80 };
        _burstTimer.Tick += OnBurstTimeout;
        _inputBox.KeyPress += OnKeyPress;
    }

    private void OnKeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Enter)
        {
            _burstTimer.Stop();
            string value = _buffer.ToString().Trim();
            _buffer.Clear();
            if (value.Length > 0)
                BarcodeScanned?.Invoke(this, value);
        }
        else
        {
            _buffer.Append(e.KeyChar);
            _burstTimer.Stop();
            _burstTimer.Start();
        }
        e.Handled = true;
    }

    private void OnBurstTimeout(object sender, EventArgs e)
    {
        _burstTimer.Stop();
        _buffer.Clear(); // incomplete burst -- discard
    }

    public void StartListening() => _inputBox.Focus();
    public void StopListening() => _inputBox.Enabled = false;
}

public class SerialPortScanner : IScannerInput
{
    public event EventHandler<string> BarcodeScanned;
    private readonly System.IO.Ports.SerialPort _port;

    public SerialPortScanner(string portName, int baudRate = 9600)
    {
        _port = new System.IO.Ports.SerialPort(portName, baudRate);
        _port.DataReceived += OnDataReceived;
    }

    private void OnDataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
    {
        string data = _port.ReadLine().Trim();
        if (data.Length > 0)
            BarcodeScanned?.Invoke(this, data);
    }

    public void StartListening() => _port.Open();
    public void StopListening() => _port.Close();
}

Klavyedeki kama uygulamasının patlama zamanlayıcısı kritik bir detaydır. Her tuş vuruşunda sıfırlanır ve karakterler gelmeyi durdurursa tetiklenir - yani yavaşça yazan gerçek klavye kullanıcılarının eksik girdileri, bir barkod taraması gibi muamele edileceğine atılmış olur.

Birden Fazla Tarayıcı Markasını Nasıl Ele Alırsınız?

Kurumsal ortamlar, genellikle aynı katta Honeywell, Zebra (eski isimleriyle Symbol/Motorola) ve Datalogic tarayıcıları çalıştırır. Her satıcının kendi varsayılan terminal karakteri, baud oranı ve ön ek/son ek gelenekleri vardır. Bir konfigürasyon modeli uygulamanızı esnek tutar:

public class ScannerConfiguration
{
    public string ScannerType { get; set; } = "KeyboardWedge";
    public string PortName { get; set; } = "COM3";
    public int BaudRate { get; set; } = 9600;
    public string Terminator { get; set; } = "\r\n";
    public bool EnableBeep { get; set; } = true;
    public Dictionary<string, string> BrandSettings { get; set; } = new();

    public static ScannerConfiguration GetHoneywellConfig() => new()
    {
        ScannerType = "Serial",
        BaudRate = 115200,
        BrandSettings = new Dictionary<string, string>
        {
            { "Prefix", "STX" },
            { "Suffix", "ETX" },
            { "TriggerMode", "Manual" }
        }
    };

    public static ScannerConfiguration GetZebraConfig() => new()
    {
        ScannerType = "KeyboardWedge",
        BrandSettings = new Dictionary<string, string>
        {
            { "ScanMode", "Continuous" },
            { "BeepVolume", "High" }
        }
    };
}

Bu konfigürasyonları bir ayarlar dosyasında veya veritabanında depolamak, depo çalışanlarının tarayıcı modellerini yeniden dağıtım gerektirmeden değiştirmelerini sağlar. ScannerType alanı, başlangıçta hangi IScannerInput uygulamasının oluşturulacağını belirler.

IronBarcode Nasıl Yüklenir Bir C# Projesine?

IronBarcode'u NuGet ile Eklemek İçin En Hızlı Yol Nedir?

Visual Studio'da Paket Yöneticisi Konsolunu açın ve şu komutu çalıştırın:

PM > Install-Package BarCode

Alternatif olarak, .NET CLI'yi kullanın:

dotnet add package BarCode

Her iki komut da NuGet.org'dan mevcut sürümü çeker ve derlemeye bağlı referansı proje dosyanıza ekler. Kütüphane, .NET Framework 4.6.2'den .NET 10'a kadar, herhangi bir ek uyumluluk katmanı olmadan .NET Standard 2.0'ı hedefler.

Yükledikten sonra, herhangi bir IronBarcode yöntemini çağırmadan önce lisans anahtarınızı ayarlayın. Geliştirme ve değerlendirme için, ücretsiz bir deneme anahtarı, IronBarcode lisanslama sayfasından mevcuttur:

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";

Kapsüllü dağıtımlar için, IronBarcode, Docker ile Linux üzerinde çalışır ve bulut işlevlerinde, AWS Lambda ve Azure Functions desteklerini sunar.

Taradığınız Barkodları IronBarcode ile Nasıl Doğrularsınız?

Format Doğrulaması İçin Doğru Yaklaşım Hangisidir?

IronBarcode, 30'dan fazla barkod simgolojisini destekler, Kod 128, EAN-13, Kod 39, QR kodları ve Data Matrix dahil. USB tarayıcı uygulamaları için, doğrulama deseni, taranan dizeyi bir barkod resmi olarak yeniden şifreler ve derhal dekoder aracılığıyla geri okur. Bu, dizinin beyan edilen format için geçerli bir değer olduğunu doğrular:

public class BarcodeValidator
{
    public async Task<ValidationResult> ValidateAsync(string scannedText, BarcodeEncoding preferredFormat = BarcodeEncoding.Code128)
    {
        var result = new ValidationResult { RawInput = scannedText };

        try
        {
            var barcode = BarcodeWriter.CreateBarcode(scannedText, preferredFormat);
            var readResults = await BarcodeReader.ReadAsync(barcode.ToBitmap());

            if (readResults.Any())
            {
                var first = readResults.First();
                result.IsValid = true;
                result.Format = first.BarcodeType;
                result.Value = first.Value;
                result.Confidence = first.Confidence;
            }
            else
            {
                result.IsValid = false;
                result.Error = "No barcode could be decoded from the scanned input.";
            }
        }
        catch (Exception ex)
        {
            result.IsValid = false;
            result.Error = ex.Message;
        }

        return result;
    }
}

public record ValidationResult
{
    public string RawInput { get; init; } = "";
    public bool IsValid { get; set; }
    public BarcodeEncoding Format { get; set; }
    public string Value { get; set; } = "";
    public float Confidence { get; set; }
    public string Error { get; set; } = "";
}

Tedarik zinciri uygulamalarında kullanılan GS1-128 barkodları için, taranan dizi, uygulama tanımlayıcı öneklerini parantez içinde içerir, örneğin GTIN için (01) ve son kullanma tarihi için (17). IronBarcode, BarcodeEncoding.GS1_128 belirttiğinizde bu uygulama tanımlayıcılarını otomatik olarak işler.

Geliştiriciler Hangi EAN-13 Checksum Mantığını Uygulamalıdır?

Perakende satış noktası uygulamaları genellikle bir değer fiyat araması yapmadan önce EAN-13 kontrol hanelerini bağımsız olarak doğrulamalıdır. EAN-13 için Luhn tarzı kontrol hattı, ilk 12 basamak boyunca 1 ve 3 ağırlıklarını değiştirir:

public static bool ValidateEan13Checksum(string value)
{
    if (value.Length != 13 || !value.All(char.IsDigit))
        return false;

    int sum = 0;
    for (int i = 0; i < 12; i++)
    {
        int digit = value[i] - '0';
        sum += (i % 2 == 0) ? digit : digit * 3;
    }

    int expectedCheck = (10 - (sum % 10)) % 10;
    return expectedCheck == (value[12] - '0');
}

Bu saf mantıksal kontrol, yüksek hacimli bir perakende ortamında her taramada yuvarlak yol görüntü oluşturma maliyetini önlemek için şifrelemeden önce çalışır. GS1 spesifikasyonu na göre, kontrol hanesi algoritması, önde gelen sıfırı düşürdüğünüzde UPC-A (12 basamak) için aynıdır.

Taranan Girdiden Yanıt Barkodlarını Nasıl Oluşturursunuz?

Bir Uygulama Bir Taramanın Ardından Ne Zaman Yeni Barkodlar Oluşturmalıdır?

Depo teslim alma biriminin ortak bir deseni "tara ve yeniden etiketle" iş akışıdır: Gelen bir ürün bir tedarikçi barkodu taşır (genellikle EAN-13 veya ITF-14) ve depo yönetim sistemi, kendi konum ve parti kodlarıyla bir içsel Kod 128 etiketi yazdırmalıdır. IronBarcode'un oluşturma yetenekleri bunu birkaç satırda halleder:

public class InventoryLabelGenerator
{
    private readonly string _outputDirectory;

    public InventoryLabelGenerator(string outputDirectory)
    {
        _outputDirectory = outputDirectory;
        Directory.CreateDirectory(_outputDirectory);
    }

    public async Task<string> GenerateLabelAsync(string internalCode, string locationCode)
    {
        string fullCode = $"{internalCode}|{locationCode}|{DateTime.UtcNow:yyyyMMdd}";

        // Primary Code 128 label for scanners
        var linearBarcode = BarcodeWriter.CreateBarcode(fullCode, BarcodeEncoding.Code128);
        linearBarcode.ResizeTo(500, 140);
        linearBarcode.SetMargins(12);
        linearBarcode.AddAnnotationTextAboveBarcode(fullCode);
        linearBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Black);

        // QR code companion for mobile apps
        var qrCode = BarcodeWriter.CreateQrCode(fullCode);
        qrCode.ResizeTo(200, 200);
        qrCode.SetMargins(8);

        string timestamp = DateTime.UtcNow.ToString("yyyyMMddHHmmss");
        string pngPath = Path.Combine(_outputDirectory, $"{internalCode}_{timestamp}.png");
        string pdfPath = Path.Combine(_outputDirectory, $"{internalCode}_{timestamp}.pdf");

        await Task.Run(() =>
        {
            linearBarcode.SaveAsPng(pngPath);
            linearBarcode.SaveAsPdf(pdfPath);
        });

        return pngPath;
    }
}

PDF olarak kaydetme, bir paylaşımlı ağ üzerinden PDF girdi kabul eden etiket yazıcıları için özellikle yararlıdır. Ayrıca SVG olarak dışa aktarabilir ve vektör kalitesinde termal etiket çıktısı için veya bir bayt akışı olarak dışa aktarabilir ve doğrudan bir etiket yazıcı API'sine gönderebilirsiniz.

IronBarcode, kapsamlı stil özelleştirme dahil olmak üzere özel renkler, kenar boşluğu ayarlamaları, insan tarafından okunabilir metin yer arayüzleri ve QR kodları için marka işaretli mobil etiketler için logo yerleştirme destekler.

Windows Forms uygulama arayüzü, IronBarcode'un çift barkod oluşturma yeteneklerini gösteriyor. Arayüz, envanter sayısı 'INV-20250917-helloworld' için bir Kod 128 lineer barkod ve bir QR kodunun başarıyla oluşturulduğunu gösterir. Üstteki giriş alanı, kullanıcıların özel envanter kodları girmesine izin verir, 'Oluştur' düğmesi barkodları oluşturmak için basılır. Başarılı işlem 'Öğe başarıyla işlendi - Üretilen Etiketler' mesajı operasyonun tamamlandığını onaylar. Kod 128 barkodu, birincil envanter izleme formatı olarak, QR kodu ise mobil uyumlu bir alternatif olarak etiketlenmiştir. Uygulama, profesyonel bir gri arka plan kullanır ve nasıl net bir görsel hiyerarşi sağlandığını gösterir. IronBarcode, geliştiricilere eksiksiz envanter yönetimi için çok formatlı barkod oluşturma sistemleri oluşturma yeteneği sağlar.

Nasıl Tam Yüksek Hacimli Tarama Uygulaması İnşa Edilir?

Üretim Kuyruk Tabınlı Bir Uygulama Nasıl Görünür?

Dakikada düzinelerce tarama işleyen uygulamalar için, kullanıcı arayüzü iş parçacığını üzerindeki basit senkron işleyici darboğaz haline gelir. Aşağıdaki desen, tarama yakalamayı bir ConcurrentQueue<t> ve bir arka plan işleme döngüsü kullanarak işlemden ayırır. IronBarcode'ın async API'si UI'yi engellemeden doğrulamayı yönetir:

using IronBarCode;
using System.Collections.Concurrent;

public partial class HighVolumeScanner : Form
{
    private readonly ConcurrentQueue<(string Data, DateTime Timestamp)> _scanQueue = new();
    private readonly SemaphoreSlim _semaphore;
    private readonly CancellationTokenSource _cts = new();
    private IScannerInput _scanner;

    public HighVolumeScanner()
    {
        InitializeComponent();
        IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY";
        _semaphore = new SemaphoreSlim(Environment.ProcessorCount);
        InitializeScanner();
        _ = RunProcessingLoopAsync();
    }

    private void InitializeScanner()
    {
        _scanner = System.IO.Ports.SerialPort.GetPortNames().Any()
            ? new SerialPortScanner("COM3", 115200)
            : new KeyboardWedgeScanner(txtScannerInput);

        _scanner.BarcodeScanned += (_, barcode) =>
            _scanQueue.Enqueue((barcode, DateTime.UtcNow));

        _scanner.StartListening();
    }

    private async Task RunProcessingLoopAsync()
    {
        while (!_cts.Token.IsCancellationRequested)
        {
            if (_scanQueue.TryDequeue(out var scan))
            {
                await _semaphore.WaitAsync(_cts.Token);
                _ = Task.Run(async () =>
                {
                    try { await ProcessScanAsync(scan.Data, scan.Timestamp); }
                    finally { _semaphore.Release(); }
                }, _cts.Token);
            }
            else
            {
                await Task.Delay(10, _cts.Token);
            }
        }
    }

    private async Task ProcessScanAsync(string rawData, DateTime scanTime)
    {
        var options = new BarcodeReaderOptions
        {
            Speed = ReadingSpeed.Dengeli,
            ExpectMultipleBarcodes = false,
            ExpectBarcodeTypes = BarcodeEncoding.Code128 | BarcodeEncoding.QRCode,
            MaxParallelThreads = 1
        };

        var testBarcode = BarcodeWriter.CreateBarcode(rawData, BarcodeEncoding.Code128);
        var results = await BarcodeReader.ReadAsync(testBarcode.ToBitmap(), options);

        if (results.Any())
        {
            var item = results.First();
            BeginInvoke(() => UpdateInventoryDisplay(item.Value, scanTime));
        }
        else
        {
            BeginInvoke(() => LogRejectedScan(rawData, scanTime));
        }
    }

    protected override void OnFormClosing(FormClosingEventArgs e)
    {
        _cts.Cancel();
        _scanner.StopListening();
        base.OnFormClosing(e);
    }
}

SemaphoreSlim, eşzamanlı doğrulama görevlerini mantıksal işlemci sayısıyla sınırlar ve dalgalı tarama olayları sırasında kontrolsüz iş parçacığı oluşturulmasını engeller. BeginInvoke çağrıları, UI güncellemelerini ana iş parçacığına güvenli bir şekilde yeniden yönlendirir.

Farklı Tarama Hacimleri İçin Performansı Nasıl Ayarlarsınız?

BarcodeReaderOptions.Speed özelliği ReadingSpeed.Faster, ReadingSpeed.Balanced ve ReadingSpeed.Detailed kabul eder. Dizgi değerinin zaten bilindiği USB tarayıcı girişi için, Balanced uygundur -- kod çözücü yalnızca formatı doğrulamalı, bir görüntüde barkod bulmamalıdır. IronBarcode'un okuma hızı belgelerine göre, Faster modu bazı bozulma düzeltme algoritmalarını atlar, bu temiz tarayıcı çıktısı için güvenlidir ancak görüntü tabanlı senaryolarda zarar görmüş barkodları kaçırabilir.

Aşağıdaki tablo, her hız modunun ne zaman kullanılacağını özetlemektedir:

IronBarcode okuma hızı modları ve uygun kullanım durumları
Hız ModuEn İyi İçinTakas
Daha hızlıTemiz USB tarayıcı girişi, yüksek hacimli aktarımKötü hasarlı veya eğik barkodları kaçırabilir
DengeliKarışık girdi - USB tarayıcı artı görüntü içe aktarımlarıOrta CPU kullanımı, iyi doğruluk
DetaylıHasarlı etiketler, düşük kontrast baskı, PDF içe aktarımlarıDaha yüksek CPU kullanımı, en yavaş çıktı

Ayrıca görüntüleri veya PDF'leri USB tarayıcı girdisiyle birlikte işleyen uygulamalar için IronBarcode, PDF belgelerinden barkod okuyabilir ve aynı API yüzeyini kullanarak çok sayfalı TIFF dosyaları okuyabilir.

Profesyonel Windows Forms barkod tarayıcı uygulaması, IronBarcode'un gerçek zamanlı envanter izleme yeteneklerini gösteriyor. Arayüz, sofistike koyu mavi başlığa sahip temiz iki panel tasarımı içerir. Sol panel, dört başarılı taranmış envanter öğesi (INV-001'den INV-004'e) ile kesin zaman damgaları ve tarama durum göstergeleri içeren bir tarama geçmiş listesi gösterir. Her öğe, barkod türü ve güven düzeyi gibi ayrıntılı meta verileri içerir. Sağ panel, 'Öğeler: 4' ifadesini profesyonel stil ve uygun kenar boşluklarıyla gösteren dinamik bir şekilde oluşturulmuş özet barkodu gösterir. Envanter yönetimi için tam aksiyon düğmeleri, 'Listeyi Temizle', 'Verileri Dışa Aktar' ve 'Etiketleri Yazdır' içerir. Durum çubuğu 'Tarayıcı: Bağlı | Modu: Kesintisiz | Son Tarama: 2 saniye önce', uygulamanın gerçek zamanlı izleme yeteneklerini ve üretime hazır kurumsal profesyonel tasarımını gösteriyor. IronBarcode, üretim envanter sistemleri için etkinleştirir.

Tarayıcı Uygulamalarında Kenar Durumları ve Hataları Nasıl Ele Alırsınız?

Geliştiricilerin Hangi Hata Modlarını Tahmin Etmeli?

USB tarayıcı uygulamaları tahmin edilebilir şekillerde başarısız olur. En yaygın sorunlar ve bunların önlemleri şunlardır:

Tarayıcı bağlantısı kesilmesi -- Bir USB tarayıcı çekildiğinde, klavye kama TextBox sanal klavyesini kaybeder. En basit önlem, periyodik bir zamanlayıcı olup, _inputBox.Focused kontrol eder ve tarayıcı hala bağlı HID cihazları listesinde ise yeniden odaklar. Seri tarayıcılar için, SerialPort.GetPortNames() yeniden bağlanmayı algılar.

Belirsiz barkod formatları -- Bazı ürünler, birden fazla simgolojide geçerli olan barkodları taşır. Örneğin, 12 basamaklı bir dizi hem geçerli bir UPC-A hem de geçerli bir Code 128'dir. ExpectBarcodeTypes belirtmek BarcodeReaderOptions içinde kod çözücüyü beklenen formatlarınıza sınırlar ve belirsizliği ortadan kaldırır. IronBarcode sorun giderme kılavuzu, formata özgü tanıma ipuçlarını kapsar.

Geçersiz format istisnaları -- BarcodeWriter.CreateBarcode seçili kodlama kurallarını ihlal eden bir dizi alırsa (örneğin, yalnızca sayısal EAN-13 alanında alfabetik karakterler) bir IronBarCode.Exceptions.InvalidBarcodeException fırlatır. Tekrarlama çağrısını bir try-catch içinde sararak sadece dize doğrulama yoluna geri dönülür ve uygulamanın çalışması sağlanır.

Tuş vuruşu zamanlama çarpışmaları -- Aynı TextBox'a operatörlerin manuel olarak yazdığı ortamlarda, daha önce açıklanan patlama zamanlayıcısı yaklaşımı birincil savunmadır. İkincil bir koruma, minimum uzunluktur: Çoğu gerçek barkod en az 8 karakterdir, bu nedenle bundan daha kısa dizeler klavye girişi gibi muamele görebilir.

System.IO.Ports.SerialPort ile ilgili Microsoft .NET belgelendirmesi, özellikle ReadTimeout ve WriteTimeout ayarları çevresinde, seri tarayıcı bağlantı sorunlarını giderirken yararlıdır. Perakende düzenlemelerine uyum sağlamak için GS1 Genel Spesifikasyonları, her uygulama tanımlayıcısı için geçerli değer aralıklarını tanımlar.

Uygulamayı Mobil ve Web Platformlarına Nasıl Genişletirsiniz?

Yukarıda gösterilen tarayıcı arayüzü deseni -- IScannerInput ile BarcodeScanned olay -- donanımı işleme mantığından soyutlar. Uygulamalar arasındaki geçiş aynı doğrulama ve üretim kodunun farklı platformlarda çalışmasına imkan tanır:

  • .NET MAUI, mobil alım istasyonları olarak kullanılan Android ve iOS tabletler için kamera tabanlı tarayıcı uygulaması sağlar
  • Blazor Server, tarayıcı tabanlı taramayı, JavaScript kamera erişimi ile aynı BarcodeScanned etkinliğine besleme ile destekler.
  • Android ve iOS yerel uygulamaları, mobil geliştiriciler için arka planda aynı IronBarcode dekoder ile kamera tarama yeteneği sağlar

Buluta özgü mimariler için, doğrulama ve etiket üretim adımları kuyruğundaki ileti tetiklemeleriyle çalışan Azure İşlevleri gibi hale gelebilir, masaüstü uygulaması sadece tarayıcı giriş kapısı olarak çalışır. Bu ayrım, etiket basma mantığının uyum denetimleri için merkezileştirilmesi gerektiğinde özellikle yararlıdır.

Sonraki Adımlarınız Neler?

IronBarcode ile USB barkod tarayıcı uygulaması oluşturmak, klavye kama girdisini patlama zamanlaması algılamayla yakalamak, taranan değeri IronBarcode'un dekoderi aracılığıyla doğrulamak, gerekli formatta yanıt etiketler oluşturmak ve eşzamanlı bir kuyruğa sahip yüksek tarama hacimli işlemlerle dört somut aşama içerir. Her aşama bağımsızdır ve izole olarak test edilebilir.

Buradan, uygulamayı toplu işlem senaryoları için çoklu barkod okuması, görüntü bazlı girdiler için kırpılmış alan iyileştirmesi veya eski depo ekipmanları için MSI barkod desteği ile genişletmeyi düşünün. IronBarcode belgeleri, tüm desteklenen formatları ve gelişmiş okuyucu yapılandırma seçeneklerini kapsar.

Ücretsiz bir denemeye başlayın, geliştirme lisans anahtarı alarak IronBarcode'u tarama uygulamanıza entegre etmeye başlayın.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez