SDK components
The SDK consists of the following components:
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 within the same major version. This can be a big plus if you need to incorporate a bug fix made in BRP Lib, but your developer isn't available.
Reference manuals
Wrapper functions
This convenience layer is based on BRP Lib and provides wrapper functions 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.
The wrapper functions are a static library which is included in the application during compilation.
Wrapper functions are available for C, C++ and Python.
Backward compatibility
As of SDK v4.0.0, wrapper functions are stable — backward compatibility is guaranteed within the same major version. (BRP lib has always been stable.)
In earlier SDK versions, using wrapper functions from a newer version may require minor adjustments to your code. Incompatibilities will become apparent when recompiling after switching the static library version. If incompatible, compilation will fail — ensuring your code isn’t combined with an unsupported version.
All incompatible changes are also documented in the SDK changeLog.
Reference manual
Independent upgrades
BRP Lib can be upgraded more easily than the wrapper functions. 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 wrapper functions. Thus, you might work with 2 different versions at the same time:
brp_get_version()for BRP Communication Librarybrp_baltech_api_version()for the wrapper functions
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.