Dynamic commands

These commands are used to make dynamic changes in VTAP reader behaviour. They are not saved in the config.txt, so they can be used to make frequent changes in the VTAP reader settings without degrading the flash memory. There are a wide range of dynamic commands, some of the most common are listed below. The full list of possible commands is provided in Dynamic configuration commands.

  • Change the current mode of the VTAP reader to active or passive, using ?a and ?p respectively.

  • Power cycle the VTAP reader using ?reboot. (An alternative to saving reboot in a command.txt file).

  • Lock the VTAP reader configuration with a password using ?l (for example ?l APa55w0rd) and unlock with ?u (for example ?u APa55w0rd).

  • Consume any newly added keys into secure storage, from the file system on your VTAP reader, using ?keyload

  • Enable or disable card emulation mode using ?cardmode (for example ?cardmode 1 to enable card emulation mode), and set the card emulation data using ?card <type><:lang>,<data> (for example ?card text,Hello world). For more details refer to VTAP Application Notes on NFC tag emulation.

  • Send a message from one VTAP reader interface to another, such as from RS-232 (Serial) to RS-485 (Serial2), or from RS-485 (Serial2) to USB COM (ComPort). This can be done using the >interface:type:message command. This feature could be used when integrating the VTAP reader into your custom software or script development including actions such as:

    • Trigger an operation on another connected device (through the chosen interface) when your VTAP reader reads an appropriate pass.

    • Send a particular message based on the <type> of pass, card or tag read by the VTAP reader, where your application requires different operation according to the type of pass, card or tag.

    • Copy the pass payload to another interface when in passive mode, since using ?r on any interface will remove the cached payload from the VTAP reader.

    • Send an emulated NFC pass or card UID, during testing, to see if the device connected on a particular interface reacts as required.

    Sending a message from one interface to another is only allowed if the receiving interface has the appropriate bit set (0x02) in its ...Source setting. The default value for all ...Source settings is =A5 which does not include 0x02. This ensures that the feature must be explicitly enabled when required. Refer to SerialSource values for help with this. To discriminate between a genuine pass data read from the VTAP reader and an interface message coming from the ‘source’ interface you could use a dummy pass type in the interface message.

    Example: Send >interface:type:message command from serial RS-232 to serial2 RS-485

    Copy
    >t:a:Pass received!

    This command sent on the serial interface, will send a message 'Pass received!' as an Apple VAS pass (a) to the device connected to the VTAP reader over the serial2 RS-485 interface (t).

  • Toggle the NFC field of the VTAP reader on or off using ?NFC 0 to turn off, or ?NFC 1 to turn on, in order to reduce power consumption.

  • Dynamically change the active VAS or ST pass data group, using ?VASPasses <slot> or ?STPasses <slot> respectively.

    Example: Choose a different active VAS or ST pass

    Copy
    ?VASPasses 3 ; enable the Apple VAS pass VAS3
                 ; (if present in config.txt)

    ?STPasses 4  ; enable the Google Smart Tap pass ST4
                 ; (if present in config.txt)
  • Drive LEDs on the VTAP reader without saving a pattern in config.txt using ?LEDR <value>,<on time>,<off time>,<repeat#>. If you are using a VTAP50 v2, you can also trigger sequences using ?LEDR 0000:seq.<name>@<target filename>. The target file must be a .ini file. Multiple files describing complex LED patterns and sequences can be saved in the VTAP reader file system, and any one of those triggered using ?LEDR.

    Example: Drive LEDs dynamically with ?LEDR command

    Copy
    ?LEDR FF0000,10,50,3 ; flash red 3 times for 100ms on and 50ms off.

    ?LEDR 000000:seq.test@led.ini ; trigger the sequence seq.test saved
                                  ; in led.ini in the VTAP reader file system.

    Refer to Control LED and buzzer feedback for instructions on creating LED patterns and sequences. If you are using VTAP50 with external LEDs, there are specific VTAP Application Notes with detailed instructions.

  • Drive the buzzer using the command ?BEEPR <on time>,<off time>,<repeat#>[,<frequency>][:<section_name>@<text_file> for beep sequence]. For single a beep, use ?BEEPR <on time>.

    Example: Drive LEDs dynamically with ?LEDR command

    Copy
    ?BEEPR 200,100,2 ; beep the buzzer twice,
                     ; each time 200ms on and 100ms off.

    ?BEEPR 100 will beep the buzzer once for 100ms.