ZebraScannerWrapperCSharp 1.0.0

dotnet add package ZebraScannerWrapperCSharp --version 1.0.0
                    
NuGet\Install-Package ZebraScannerWrapperCSharp -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ZebraScannerWrapperCSharp" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ZebraScannerWrapperCSharp" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="ZebraScannerWrapperCSharp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ZebraScannerWrapperCSharp --version 1.0.0
                    
#r "nuget: ZebraScannerWrapperCSharp, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ZebraScannerWrapperCSharp@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ZebraScannerWrapperCSharp&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=ZebraScannerWrapperCSharp&version=1.0.0
                    
Install as a Cake Tool

Zebra Scanner Wrapper For C# .NET CORE 8

This C# class libary is built around the zebra core scanner driver which is avaliable as a COM object from: https://techdocs.zebra.com/dcs/scanners/sdk-windows/about/

Demonstration app: image

This wrapper provides the following:

  • Object abstractions of the xml based C API.
  • Custom LED mangement indicating whether a scanner is enabled or disabled.
  • Centralised management of all connected scanners included nested scanners.
  • Live scale weight support for scales (implemented with polling).
  • Event based callbacks for PNP, barcodes, scale weight.

Supported Scanner Commands:

  • Enable / Disable
  • SetLEDColor
  • PlayBeep
  • Pull / Release Trigger
  • Reboot Scanner
  • Aim On / Off
  • Scale Zero
  • Scale Reset
  • Scale Weight

Tested with:

  • Zebra MP7001
  • Zebra DS4608
  • Zebra MS4717

Basic Setup:

//Create the manager, this will need to be accessed wherever you need to call commands to the manager or scanners
_manager = new ScannerManager(ScannerManager.DefaultSupportedScannerTypes, true, true);

//Register any events that you would like to recieve, you can add many different callbacks for different areas of your application.
//can be removed by calling UnRegister*CallbackName*(function)
_manager.RegisterPNPCallback(RecievePnp);                             //RecievePnp(PNPData pnpData)
_manager.RegisterBarcodeCallback(RecieveScan);                        //RecieveScan(ScanData scanData) 
_manager.RegisterWeightCallback(RecieveWeightLive);                   //RecieveWeightLive(WeightData weight)
_manager.RegisterLiveWeightStatusCallback(RecieveLiveWeightStatus);   //RecieveLiveWeightStatus(bool enabled)

Events will only report the parent scanner if using a nested scanner setup. e.g. MP7001 → DS4608 if the DS was the one to scan the Core Scanner API will return MP7001.

Using Scanners

  Scanner scan = _manager.GetScannerBySerialNumber("*SerialNumber*");
  //OR
  Scanner scan = _manager.GetScannerByModelNumber("*ModelNumber*");
  //Or get one from the list of scanners by calling _manager.GetScanners();

  ScannerResponse resp = scan.SetEnabled(true);
  //OR
  ScannerResponse resp = _manager.SetEnabledScanner(scan, true);
  //OR for all scanners
  List<ScannerResponse> responses = _manager.SetEnabledAllScanners(true);

Checking Scanner Responses

  //all responses can be found at https://techdocs.zebra.com/dcs/scanners/sdk-windows/appendix/ 
  if(resp.Response == ScannerStatus.SUCCESS)
  {
    
  }
  //resp.Scanner provides the scanner this response came from if going through a list of responses. 

Get Scale Weight

  ScannerResponse response = scan.GetScaleWeight();
    if (response.Response == ScannerStatus.SUCCESS)
    {
      WeightData? data = (WeightData?)response.ResponseData;
      if (data != null)
      {
        Console.WriteLine(data.Weight + data.WeightUnit.ToString());
      }
    }

Command List

Opcode Command on Scanner Command on Manager Command for All
6000 SetLEDColor(LEDColor col) SetLEDColorScanner(Scanner scan, LEDColor col) SetLEDColorAllScanners(LEDColor col)
6000 PlayBeep(BeepType beepType) PlayBeepScanner(Scanner scan, BeepType beepType) PlayBeepAllScanners(BeepType beepType)
2014 / 2013 SetEnabled(bool enabled) SetEnabledScanner(Scanner scan, bool enabled) SetEnabledAllScanners(bool enabled)
2011 PullTrigger() PullTriggerScanner(Scanner scan) PullAllTriggerScanner()
2012 ReleaseTrigger() ReleaseTriggerScanner(Scanner scan) ReleaseTriggerAllScanners()
2019 Reboot() RebootScanner(Scanner scan) RebootAllScanners()
2003 AimOn() AimOnScanner(Scanner scan) AimOnAllScanners()
2002 AimOff() AimOffScanner(Scanner scan) AimOffAllScanners()
7002 ScaleZero() ScaleZeroScanner(Scanner scan) ScaleZeroAllScanners()
7015 ScaleReset() ScaleResetScanner(Scanner scan) ScaleResetAllScanners()
7000 GetScaleWeight() GetScaleWeightScanner(Scanner scan) GetScaleWeightAllScanners()
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 275 11/1/2024