The SDK consists of the following components:
- BRP Communication Library (BRP Lib)
- BALTECH API
- Legacy wrapper (for applications using the SDK predecessor "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, 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.
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.
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.