VHL & Autoread
This mode covers the same use case as the standard VHL implementation. We recommend it if:
- You're implementing an Ethernet application as a server.
- You've used Autoread via BRP so far and want to implement
a more complex logic now, e.g. read large data volumes, write data, or set up complex
Note that in this case, your project settings will become more complex.
What is VHL?
VHL stands for Very High Level card access. It's a set of simplistic, card-type-independent commands (learn more).
What is Autoread?
The reader scans for cards and reads them autonomously (learn more).
How it works
- The reader runs in Autoread mode to perform basic tasks autonomously, e.g. poll for cards or give feedback to the card holder.
- Once the reader has detected a card, it reads the card's number and buffers it in an internal queue.
- The reader pauses Autoread and waits for the host to retrieve the number from the queue, run VHL and/or other I/O commands. (If the host is implemented as an Ethernet server, this step requires the reader to open a connection first.)
- When done, the host reenables Autoread.
- USB HID (recommended with the SDK)
- USB virtual COM port (recommended when not using the SDK, required for RDP)
- Ethernet (client and server)
Configure the reader
To prepare readers for access from your application, create a configuration for the readers. Alternatively, you can order a configuration from us.
- A Windows computer with BALTECH ToolSuitecall_made installed
- A test reader you can connect to your computer.
If the productive reader type doesn't provide a USB connection, we recommend you use an ID-engine ZB to create and test the configuration.
Add device settings to enable the host protocol and (as an option) define autonomous feedback to the card holder (e.g. LED and beeper).
Add project settings to enable Autoread mode on the reader.
- As part of the project settings, add a VHL file. Here, you specify card-type-specific information you'll later refer to when running VHL commands.
- Test the Autoread project settings.
- Test the VHL file. This step also helps you verify the parameters you'll later need to run VHL commands.
- To set up an encrypted channel, add security settings (for more details, see our encryption overview).
- Transfer your draft configuration to the test reader to later test your application.
- Ethernet only: If you want to assign a static IP address, create a separate IP configuration. Otherwise, readers will obtain an IP address dynamically via DHCP.
Set up SDK
The easiest way to use VHL is the BALTECH SDK, available for Windows, macOS, and Linux.
Alternative for unsupported platforms
To set up the SDK:
- Downloadcall_made the SDK from our website.
- Get familiar with its components. We recommend you get started by trying out the app notes.
- Integrate the SDK into your application.
- Set up a protocol stack to be able to run commands.
- Run AR.Setmodecall_made with Mode = EnableOnce (0x02). This ensures that the reader pauses Autoread mode as soon as it has detected a card, so you can perform operations.
- Run AR.GetMessagecall_made to poll the reader for a detected card and its number.
Run the VHL command(s)call_made required for your operations. Here are the most important ones:
Start from 1. again to reenable Autoread mode.
Reader hardware control
There are various commands to control the reader hardware. You can control reader feedback (e.g. LED and beeper), reboot the reader, check its firmware version, etc.
That's it for the development part. The next steps are as follows:
- Finalize your configuration
- Create a ConfigCard in case the readers are difficult to connect via USB.
- Install the readers and deploy the configuration.
Does someone else take over configuration management?
If someone else needs to adapt your configuration for various projects (e.g. exchange encryption keys), then please give them the finalized configuration in BALCFG format. They can then derive and edit a copy of it. When documenting what they need to change, you may want to reuse some of the how-tos you find here.
Troubleshooting & support
Got stuck somewhere along the way? Don't worry, we'll help you troubleshoot: