Data request commands

This section lists valid commands to send over a Command Interface, either a virtual COM port or serial port, using a program such as TeraTerm or PuTTY-nd for instance. You may also want to use commands in Remote management commands and Dynamic configuration commands.

Note: When OSDP Secure mode is enabled on a particular Command Interface, ?b is the only valid data request command.

These commands request data stored in the VTAP reader without changing it in any way.

Note: End any command sent with a <CR> or <LF>, but not both.

A <setting> refers to any of those listed in config.txt settings .

%<setting>
Definition:

Request the current value of any setting that could be included in the config.txt file.

API level: 0
Options:

Multiple settings can be requested in a single line command, by separating each setting with the | character.
Using % on its own will return all current settings.

Example value: %TagLED
?b
Definition:

Reads VTAP boot information including core firmware version, API level and unique serial number.

API level: 0
Options:

Returns the BOOT.TXT data.
If OSDP is enabled on the port requesting this data (using OSDP interface settings) the data returned will also include 'OSDP:Enabled OSDP address: <OSDP_address_on_requesting_interface>' at the end.
If an OSDP Secure Channel is being enforced on the port requesting this data it will return 'OSDP:Enabled,SecureOnly OSDP address: <OSDP_address_on_requesting_interface>'

Example value: ?b
?events
Definition:

Polls for any events (such as configuration change) that have happened in the VTAP reader since it was last polled for events.

API level: 0
Options:

A 32-bit hex number supplied with the command is a bit mask to select only certain events be reported. The default without a bit mask is to report all events (equivalent to using bit mask ffffffff).

00000001 is returned by the command if the configuration has been updated (bit 0 set) since last poll.
00000004 is returned by the command if a reboot has taken place (bit 2 set) since last poll.
After reporting an event it is cleared.
If the bit mask used prevents the reporting of any event, it will remain pending for a subsequent poll.

Example value: ?events 00000001
?getserial
Definition:

Retrieve VTAP reader serial number, which appears in BOOT.TXT as 'VTAP label'.

API level: 0
Options:

Will return the serial number (VTAP label), or <NO SERIAL> if a serial number has not been set.

Example value: ?getserial
?h
Definition:

Retrieve public key hash information for the VTAP ECC keyslots, which can be used to work out which private keys have been loaded. The public key hash is the first 4 bytes of the 32 byte SHA-256 hash over the 32 byte ECC public key.

API level: 0
Options:

The block of public key hash data returned by the command is a 32 byte string.
The returned string starts with A5.
The public key data for the 6 key slots follows in order, 1 through 6.
Each key slot is described by a 1 byte flag (00=key slot empty, 01=key slot in use) then the 4 byte public key hash for that slot.
After all 6 keys the returned string ends with 5A.

Example value: ?h
New from v2.2.7.0
?info
Definition:

Reads VTAP reader status information included in the BOOT.TXT file, including core firmware version, API level and unique serial number, equivalent to the ?b command, but the data is returned as a JSON blob. (For VTAP PRO readers additional information is also included from the VTAP connectivity firmware, equivalent to the ?vcb command. )

API level: 5
Options:

Returns the BOOT.TXT data and additional data from the VTAP connectivity firmware, if any.

The returned JSON string runs across multiple lines and terminates with OK. An example is shown below, from a VTAP100‑PAC‑485 reader:

Copy
{
  "Product": "VTAP100",
  "BootTime": "1970/01/01 00:00:00",
  "Firmware": "2.2.6.2",
  "Storage": "Dataflash",
  "Status": 0,
  "Hardware": "5.01",
  "Expansion": "VTAP100485LF-V1",
  "COMPortEnabled": true,
  "NCI": "0471125005-8C00",
  "HardwareID": "563230-0971BECA8676E452ADCDD8CA419635C8",
  "SerialNumber": "CC900000",
  "APILevel": 5,
  "AppKeysUsed": "12-4-6---",
  "KeySlotsUsed": "--3-56",
  "HWLocked": false,
  "SWLocked": false,
  "OSDP": {
           "Enabled": false,
           "SecureOnly": false,
           "Address": 0
    }
}
OK

Note: 'Serial number' from BOOT.TXT is labelled "HardwareID" in the JSON string, and 'VTAP label' from BOOT.TXT is labelled "SerialNumber". Other labels follow the BOOT.TXT names without spaces.

Example value: ?info
?r
Definition:

Reads last NFC pass, card/tag data.
The tap data will be sent as long as it was read within the last InvalidDataCacheMS period and the request comes from an interface with a ...Source setting that permits this type of data to be sent over that interface.
Up to three serial interfaces can request and receive this cached data for a single tap, at different times, up to the InvalidDataCacheMS period. The data will not be overwritten by a more recent tap until all potential interfaces have read the tap data or the InvalidDataCacheMS period is reached. [Note: On hardware VTAP100 v4 or earlier, there is only one cache, so there is a greater risk that the data could be overwritten by a more recent tap before it has been read over all interfaces].

API level: 0
Options:

This is only used in passive mode (selected with ?p)

This command will only return pass/tag data where the ...Source setting for the interface requesting the data permits it.

Example value: ?r
?t
Definition:

Returns the type of the most recent cached NFC pass, card/tag read as a single character (as long as it was received inside the last InvalidDataCacheMS period) over the COM port.

API level: 0
Options:

Qualifiers instruct the VTAP to send an indicator of the type of NFC pass, card/tag data over a particular interface.

?t COM sends that NFC pass, card/tag data over COM port. (This is the default for ?t when an interface is not specified.

Returned values are pass types

(For a ClosedPass type explainer - click here)

Pass type character

Pass type is a single character to describe the source of a received pass payload, which may be an Apple VAS pass or Google ST pass, a particular type of NFC card, or other source such as a barcode scanner. The values that returned are:

A - Apple VAS pass
G - Google ST pass
0 - MIFARE card/tag
2 - NFC type 2 card/tag
4 - NFC type 4 card/tag
6 - NFC type 5 card/tag
E - Card emulation
Q - Scanner input
X - Apple Wallet Access iPhone
W - Apple Wallet Access Watch

Example value: ?t COM
?temp
Definition:

Returns the internal temperature of the VTAP.

API level: 0
Options:

Returns a Celsius value as reported by the processor.

Example value: ?temp
?type
Definition:

Returns the type of the most recent cached NFC pass, card/tag read as a single character (as long as it was received inside the last InvalidDataCacheMS period) over the COM port or serial port, in passive mode.

API level: 0
Options:

Returned values are pass types

(For a ClosedPass type explainer - click here)

Pass type character

Pass type is a single character to describe the source of a received pass payload, which may be an Apple VAS pass or Google ST pass, a particular type of NFC card, or other source such as a barcode scanner. The values that returned are:

A - Apple VAS pass
G - Google ST pass
0 - MIFARE card/tag
2 - NFC type 2 card/tag
4 - NFC type 4 card/tag
6 - NFC type 5 card/tag
E - Card emulation
Q - Scanner input
X - Apple Wallet Access iPhone
W - Apple Wallet Access Watch

For Apple of Google passes the pass type is followed by VAS merchant ID/Smart Tap collector ID index and the key slot in use. In other cases -- follows the type.

Example value: ?type
?uid
Definition:

Reads last card/tag UID. (Up to 16 characters in hex format).

API level: 4
Options:

This is only used in passive mode (selected with ?p)

Example value: ?uid