Skip to content

Test VHL file and VHL command parameters

If you're a developer using the VHL macro command set, you can test the VHL file in your configuration right on your computer with BALTECH ID-engine Explorer.

This test is helpful in 2 ways:

  • You verify that the VHL file is correct.
  • You verify the memory location parameters you'll later need to run the commands VHL.Read and VHL.Write in your application.

For this how-to, we'll use VHL.Read as an example.

To test the VHL file with the VHL.Read command:

  1. Connect a test reader to your computer.

    I have an Ethernet reader.

    Connecting an Ethernet reader works when the reader is unconfigured or required permissions are granted in PKI Authentication and Encryption settings.

  2. Configure the test reader with your draft configuration containing the VHL file.

  3. Open BALTECH ID-engine Explorer.

  4. At the bottom left, click Test VHL File.

    Screenshot: Button "Test VHL File" in BALTECH ID-engine Explorer

  5. Place a test project card on the reader.

  6. Click Select Card.

    • Reselect = False selects the next card in the field. If there's only 1 card in the field and you've already selected it, you'll get an error.
    • Reselect = True ignores everything since you last clicked Select Card and starts all over again.

    Learn more about the VHL.Select command and reselect options.

    If you use VHL & Autoread, this step will later be performed autonomously by the reader.

    You'll see the UID and card type read by the reader.

    Screenshot: Test VHL tab in BALTECH ID-engine Explorer showing the UID and type of a test card

  7. If you've added more than 1 VHL file, select the one you want to test from the drop-down.

  8. Specify the memory location you want to read.

    This can be any subsection of the memory location defined in your VHL file. To do so, specify the Address of First Byte and Number of Bytes.

    These will later be the Adr and Len parameters for the VHL.Read command. To check which section of the memory location you need to access, you can analyze the card structure of certain card types.

    What exactly do I need to specify here?

    Card type What you've specified in the VHL file What you can specify during testing
    ISO 15693 Number of blocks and their size
    Example
    - 5 blocks
    - 4 bytes per block
    Any range of bytes within the combined block size (in this case 20 bytes)
    Examples
    - First byte 4 with number of bytes <= 16
    - First byte 10 with number of bytes <=10
    LEGIC Segment and address range
    Example
    - Segment: 5
    - Start byte: 0
    - Length: 6
    Any subrange within this address range
    Examples
    - First byte 1 with number of bytes <= 5
    - First byte 2 with number of bytes <= 4
    MIFARE Classic Sector Any range of bytes within this sector.
    Bytes are numbered consecutively across blocks. Trailer blocks and block 0 will be omitted, i.e. the following block order is used: 1,2,4,5,6,8, etc. (0,3,7, etc. are omitted)
  9. Click Read.

  10. The data read from the card is shown in the right section of the window.

    This test output may differ from the output in your host system

    In ID-engine Explorer, the number read from the card is always displayed in ASCII decimal encoding. Your host system may use a different encoding. In this case, please order a custom host interface component that convert the number accordingly and keep in mind that the output in ID-engine Explorer won't match the output in your host system (learn more).

    Screenshot: Test VHL tab in BALTECH ID-engine Explorer showing the example read results

  11. To keep editing the VHL file, close the Test VHL File dialog, make your changes in ConfigEditor, and transfer the updated configuration to the reader. Then you can retest the VHL file in ID-engine Explorer.

Title