Skip to content

SDK components

The SDK consists of the following components:

  • BRP Communication Library (BRP Lib)
  • BALTECH API
  • Legacy wrapper (for applications using the SDK predecessor "BRPDriver")
Diagram of BALTECH SDK components: BRP Lib, BALTECH API, and BrpDriver

BRP Communication Library (BRP Lib)

BRP Lib is a shared library with C functions that provide an easy-to-use transport layer for BRP commands to BALTECH readers. It handles all the low-level I/O operations and provides BRP-specific abstractions for the interfaces. This makes communication with a BALTECH reader or switching between different protocols (USB, RS-232/UART, etc.) a breeze.

As BRP Lib is a shared library (i.e. provided as a DLL file on Windows):

  • You can use it regardless of your programming language.
  • You can easily upgrade/replace it without touching your executable. This is especially the case as we guarantee a backward-compatible API as long as the major version doesn't change. This can be a big plus you need to incorporate a bug fix made in BRP Lib, but your developer isn't available.

Reference manuals

BALTECH API

BALTECH API is based on BRP Lib and provides wrapper functions in C for all BRP commands. This means it saves you a lot of work when dealing with command codes, parameter encoding, return value decoding, and timeouts. Furthermore, the header file provides definitions for all constants and data structures required in host-reader communication.

BALTECH API is available for C/C++ only.

No backward compatibility guaranteed

As the names of constants, data structures, and functions might change, we do not guarantee backward compatibility (in contrary to BRP Lib and the reader protocol at the binary level). This means using the BALTECH API of a newer SDK version might require small adaptions in your code base.

Mechanisms to mitigate incompatibilities

To mitigate this possible incompatibilities between BALTECH API versions, BALTECH API is a static library which is included in the application during compilation. This tight coupling guarantees that your application always relies on the BALTECH API version it used during development. When changing the static library version, you have to recompile. This will fail if there's an incompatibility between the new version and your code base. Thus, the compiler prevents you from combining your code with incompatible versions.

All incompatible changes are also documented in the SDK changeLog.

Reference manual

Independent upgrades

BRP Lib can be upgraded more easily than BALTECH API. That's why it's possible to upgrade BRP Lib (even at runtime, e.g. in case of a crucial bug), but still use the old statically linked BALTECH API. Thus you might work with two different versions at the same time:

  • brp_get_version() for BRP Communication Library
  • brp_baltech_api_version() for BALTECH API

Legacy wrapper for BRPDriver.dll

This is a wrapper around brp_lib.dll. You can use it as a drop-in replacement for the SDK's deprecated predecessor 2014_brp_driver_dll in existing projects.

Please don't use the wrapper for new projects or when reworking existing ones.

Learn how to implement the legacy wrapper.

Title