RACE RESULT Decoder TCP/IP

Hosts use a text-based protocol to communicate with RACE RESULT 4000/5000 Series System's decoders via TCP/IP on port 3601 or via RS232 using a USB-COM-port adapter. By default the RACE RESULT Decoder acts as server, but since protocol version 1.5 a client mode is also available. The default approach for getting passings is pull-based. Since version 1.5 the decoder can automatically push passings to the host as they appear, too.

Quick start/brief example

The following example assumes that you’ve successfully established a connection to the Decoder. You can establish a connection either with your own software or, for testing purposes, using a Telnet client like the one that Windows offers or PuTTY.  For the remainder of the document, the following symbols are used:

← denotes commands that you send
→ responses from the decoder.
<CrLf> are the carriage return and line feed characters which needs to be added after every command. (Note: A telnet client will do this automatically when you press the enter key.)

For a complete description of a specific command refer to its individual section.


First set the protocol version to the latest version available at the time you are doing your implementation. That way you can use all available features. The newest protocol version might not be available if the decoder’s firmware is not up to date. Note: Newer (upcoming) firmware versions will always support older protocol versions.

← SETPROTOCOL;2.0<CrLf>
→ SETPROTOCOL;2.0<CrLf>


After start up, the decoder is in Test Mode and will not store passings. To switch to operation mode:

← STARTOPERATION<CrLf>
→ STARTOPERATION;OK;0000-00-00;00:00:00.000<CrLf>


Now passings are saved and the time is running on the decoder. You can query the current time using:

← GETTIME<CrLf>
→ GETTIME;0000-00-00;00:02:12.942<CrLf>

 
To check the current number of passings:

← PASSINGS<CrLf>
→ PASSINGS;1<CrLf>


This assumes that you have generated a passing on the decoder using a transponder or a marker detection.
To fetch that passing, simply send the number 1:

← 1<CrLf>
→ 1;592;0000-00-00;12:30:12.322;888;4;-52.778000;38cd1c;0;;;;;;;;D-4476<CrLf>
  <CrLf>

Note: You can query multiple passings by calling X:C where X is the first passing that should be returned and C is the max. number of passings that the call will return.

Instead of only querying the current time, you can request extended status information:

← GETSTATUS<CrLf>
→ GETSTATUS;0000-00-00;00:02:39.942;1;11111111;1;50;1;49.721,8.254939;1;0;;;;;;;1;0<CrLf>


You will most probably call the PASSINGS, GETTIME and GETSTATUS periodically and fetch new passings as soon as PASSINGS reports them. After your event has finished you can stop the operation mode so no new passings will be saved when the decoder detects transponders:

← STOPOPERATION<CrLf>
→ STOPOPERATION;OK<CrLf>

Basic commands

Get Protocol Version

In order to get protocol version information, the host sends

GETPROTOCOL<CrLf>

The decoder responds with:

GETPROTOCOL;<CurrentVersion>;<MinSupportedVersion>;<MaxSupportedVersion>

Where

<CurrentVersion>

current protocol version this connection uses for its communication

<MinSupportedVersion>

minimal protocol version supported by this device

<MaxSupportedVersion>

maximal protocol version supported by this device

Protocol version

Available since protocol version 1.1

Example

← GETPROTOCOL<CrLf>
→ GETPROTOCOL;1.1;1.0;1.1<CrLf>

Set Protocol Version

To set protocol version used for this connection, the host sends

SETPROTOCOL;[<=]2.3<Version><CrLf> 

where <Version> is the protocol version number. The version described in this document is 2.0.

Since protocol version 2.3 an optional <= can be specified to set the protocol version to the max. available version that is not greater than the given version.

 

The decoder responds with:

SETPROTOCOL;<VersionOrStatus>[;MinVersion;MaxVersion]2.3

Where <VersionOrStatus> is:

ERROR

if the request could not be parsed

UNKNOWN_VERSION

if the requested version is unknown/not available

<Version>

otherwise

and MinVersion and MaxVersion are the minimal respectively maximal supported protocol version.

Protocol version

Available since protocol version 1.1

Example

← SETPROTOCOL;1.4<CrLf>
→ SETPROTOCOL;1.4<CrLf>

Passing Record

Since protocol version 1.6:
<PassingNo>;<Bib/TranspCode>;<Date>;<Time>;[<EventID>];<Hits>;<MaxRSSI>;
<InternalData>;<IsActive>;[<Channel>];[<LoopID>];[<LoopOnly>];[<WakeupCounter>];
[<Battery>];[<Temperature>];[<InternalActiveData>];<BoxName>;<FileNumber>;[<MaxRSSIAntenna>];<BoxId><CrLf>

Older versions:
<PassingNo>;<Bib/TranspCode>;<Date>;<Time>;<EventID>;<Hits>;<MaxRSSI>
[;<InternalData>];<IsActive>[;<Channel>;<LoopID>;<LoopOnly>;<WakeupCounter>;<Battery>;<Temperature>;<InternalActiveData>]<CrLf>

 

Item Description Since protocol version

<PassingNo>

Passings record number, starting at 1 for the first passing.

1.0

<Bib/TranspCode>

Bib number of the transponder. (Since protocol version 1.2: Or transponder code in case of multi use tags or Active transponders.)

1.0/1.2

<Date>

Format: yyyy-MM-dd
If GPS is used, date of the detection, otherwise 0000-00-00 or 0000-00-01 after 24 hours and so on.

1.0

<Time>

Time of the detection, format: hh:mm:ss.kkk

1.0

<EventID>

ID of the bib set. The combination of <Bib> and <EventID> is unique for all RACE RESULT Bib Transponders ever produced.
In case of multi use tags <EventID> is 0 or empty.

1.0

<Hits>

Number of times the tag was detected.

1.0

<MaxRSSI>

Maximum RSSI value found while determining <Time>.
(Maximum value for passive detection is 25-1 = 31; for RSSI of active detection see here).

1.1

[<InternalData>]

This field is only used for internal purposes and is optional.

1.1

<IsActive>

1 if this passing is from an active transponder

1.4

[<Channel>]

Channel ID (1..8)

1.4

[<LoopID>]

Loop ID (1..8)

1.4

[<LoopOnly>]

1, if this detection was generated in Store Mode.

1.4

[<WakeupCounter>]

Overall wakeup counter of the transponder (new transponders start at 10000).

1.4

[<Battery>]

Battery level in Volts.

1.4

[<Temperature>]

Temperature in degrees Celsius.   

1.4

[<InternalActiveData>]

Data transmission details. One byte. Lowest three bits: channel busy counter (number of times, the passing could not be transmitted because the transponder could not access the channel). Next three bits: no ACK counter (number of times the passing was transmitted, but no acknowledgement was received.) Seventh bit: 1, if this passing could not be transmitted at all in a previous attempt (="stored passing", old passing), 0 otherwise. Highest bit: 1, if the transponder woke up from deep sleep because of the passing, 0 otherwise.

Hint: You can check if a passing is a stored passing using
[InternalData] & 0x40 == 0x40 (the seventh bit is set)
8 7 6 5 4 3 2 1
DS ST No ACK Channel busy

1.4

<BoxName>

Name of the decoder. Defaults to the Device ID.

1.6

<FileNumber>

File number of the file to which this passing belongs. 2.5
[<MaxRSSIAntenna>] Antenna number (1..8) which meassured the highest RSSI value. Empty for active. 2.6
<BoxId> Device ID 2.6

Note: Each individual passing record ends with <CrLf>.

Impulse Marker

Markers generated via the Decoder have always HITS=1 and RSSI=0. When using Active, the LoopID and Channel can be used to determine the source of the marker.

Get Single Passing

In order to receive a certain passing, the host sends the passing number followed by <CrLf>, e.g.

1423<CrLf>

The decoder responds with the passing record followed by <CrLf>. Therefore, the answer will end with <CrLf><CrLf>.

Examples

Single Use Tag:        

1423;999;0000-00-00;12:30:45.492;888;4;-65.430000;c23fef;0;;;;;;;;D-4476<CrLf><CrLf>


Multi Use Tag:

1424;AAAA-0001;0000-00-00;12:30:45.492;0;4;-65.430000;160ca2;0;;;;;;;;D-4476<CrLf><CrLf>


Active [Pro]:

1;ZZZZZ52;0000-00-00;00:00:01.434;0;19;9;f2d3ef;1;0;0;10240;2.97;26.60;0;D-4476<CrLf><CrLf>


In case the requested passing number does not exist, the decoder responds with:

ONLY <N><CrLf>

where <N> is the number of passings available.

Get Multi Passing

In order to receive several passings, the host sends

<S>:<C><CrLf>

where <S> is the passing number of the first passing to be sent and <C> is the number of passings to be sent.

Example (to request passings 1 through to 3)

← 1:3<CrLf>
→ 1;592;0000-00-00;12:30:12.322;888;4;-52.778000;38cd1c;0;;;;;;;;D-4476<CrLf>
  2;294;0000-00-00;12:30:14.991;888;3;-50.451000;a2233f;0;;;;;;;;D-4476<CrLf>
  3;823;0000-00-00;12:30:18.322;312;12;-45.321000;5aabc8;0;;;;;;;;D-4476<CrLf>
  <CrLf>

In case that <S> is greater than the total number of passings available, the decoder responds with:

→ ONLY <N><CrLf>

where <N> is the number of passings available.

In case that <S> is less than the total number of passings available, but <S>+<C>-1 is greater than or equal to the total number of passings, the decoder sends only <N>-<S>+1 passings. Example (for requesting passings 1 to 3, but only 2 passings are available on the device):

← 1:3<CrLf>
→ 1;592;0000-00-00;12:30:12.322;888;4;-52.778000;38cd1c;0;;;;;;;;D-4476<CrLf>
  2;294;0000-00-00;12:30:14.991;888;3;-50.451000;a2233f;0;;;;;;;;D-4476<CrLf>
  <CrLf>

Number of Passings

In order to receive the number of passings, the host sends

PASSINGS<CrLf>

The decoder responds with the following format:

PASSINGS;<N>;<FileNumber><CrLf>

Where

    Since Protocol Version

<N>

Current number of passings 1.0

<FileNumber>

Current file number that is used to save the passings

2.9

Example

← PASSINGS<CrLf>
→ PASSINGS;159;17<CrLf>

Get Time

To receive the current date and time of the decoder, the host sends

GETTIME<CrLf>

The decoder responds with

GETTIME;yyyy-MM-dd;hh:mm:ss.kkk<CrLf>

Example

← GETTIME<CrLf>
→ GETTIME;0000-00-00;12:43:29.942<CrLf>

Set Time

To set the current date and time of the decoder the host sends

SETTIME;yyyy-MM-dd;hh:mm:ss.kkk<CrLf>

This operation can only be done in Test Mode.
The decoder responds with

SETTIME;<Result><CrLf>

Where <Result> is:
•    date and time with the format yyyy-MM-dd;hh:mm:ss.kkk, if the time was set successfully,
•    ERROR, if an error occurred while parsing the request,
•    OPERATIONMODE, if the Decoder is in Operation Mode.

Example

← SETTIME;0000-00-00;12:43:29.942<CrLf>
→ SETTIME;0000-00-00;12:43:29.942<CrLf>

Set Start Time

To set the start date and time of the decoder the host sends

SETSTARTTIME;yyyy-mmMM-dd;hh:nnmm:ss.kkk<CrLf>

This operation can only be done in Test Mode.
The decoder responds in the following format with:

SETSTARTTIME;<Result><CrLf>

Where <Result> is:

  • date and time with the format yyyy-MM-dd;hh:nnmm:ss.kkk, if the time was set successfully,
  • ERROR, if an error occurred while parsing the request,
  • OPERATIONMODE, if the decoder is in Ooperation Mmode.

Example

← SETSTARTTIME;0000-00-00;12:43:29.942<CrLf>
→ SETSTARTTIME;0000-00-00;12:43:29.942<CrLf>

Set GPS Time

To set the current date and time of the Decoder, the host sends

SETGPSTIME[[[;<AllowEstimatedTime>];<Timeout>];<InBackground>]<CrLf>

Where

    Since Protocol Version

<AllowEstimatedTime>

If set to 1, after <Timeout> is reached, an estimated time of day will be set. 1.4

<Timeout>

Timeout in seconds. Defaults to 30.

2.4

<InBackground> Set time in background and return immediatly. 2.9

This operation can only be executed in Test Mode.

The decoder responds with

SETGPSTIME;<Result><CrLf>

Where <Result> is:

  • date and time with the format yyyy-MM-dd;hh:mm:ss.kkk[;TimeIsEstimated], if the time was set successfully (where TimeIsEstimated is either 1 or 0 and is only available for protocol version >= 2.4),

  • NOSATELITES, if their is no receiption (or accessing the GPS module is blocked),
  • ERROR, if an error occurred while parsing the request,
  • OPERATIONMODE, if the decoder is in operation mode,
  • BACKGROUND, if the request is executed in background.

Example

← SETGPSTIME<CrLf>
→ SETGPSTIME;2012-02-27;12:43:29.942<CrLf>

Get Status

In order to receive some general status information of the decoder, the host sends

GETSTATUS<CrLf>

The Decoder responds in the following format:

GETSTATUS;<Date>;<Time>;<HasPower>;<Antennas>;<IsInOperationMode>;<FileNumber>;<GPSHasFix>;<Latitude>,<Longitude>;
<ReaderIsHealthy>;<BatteryCharge>;<BoardTemperature>;<ReaderTemperature>;<UHFFrequency>;<ActiveExtConnected>;
[<Channel>];[<LoopID>];[<LoopPower>];[<LoopConnected>];[<LoopUnderPower>];<TimeIsRunning>;<TimeSource>;
<ScheduledStandbyEnabled>;<IsInStandby>;<ErrorFlags>;[<External12Volt>]<CrLf>

Where

    Since Protocol Version

<Date>

Current date of the decoder, format: yyyy-MM-dd

1.0

<Time>

Current time of the decoder, format: hh:mm:ss.kkk

1.0

<HasPower>

1 if the decoder has power via its Schuko AC power socket, 0 otherwise

1.0

<Antennas>

A sequence of 8 antenna status indicators of the UHF unit. Each one is 1 if an antenna is connected, 0 otherwise. Eg. 00011001

1.0

<IsInTimingMode>

1 if the decoder is in Operation Mode, 0 otherwise

1.0

<FileNumber>

Current file number that is used to save the passings

1.0

<GPSHasFix>

1 if device has a GPS satellite fix, 0 otherwise

1.0

<Latitude>

If the device has a GPS fix, the latitude of the device. Hemispheres indicated by +/- (prior 1.7 by N/S). Prior 1.7: Divide by 100 to get the real coordinate.

1.0

<Longitude>

If the device has a GPS fix, the longitude of the device. Hemispheres indicated by +/- (prior 1.7 by E/W). Prior 1.7: Divide by 100 to get the real coordinate.

1.0

<ReaderIsHealthy>

1, if the internal UHF module is in normal condition, 0 otherwise

1.0

<BatteryCharge>

Battery charge in percent

1.0

<BoardTemperature>

Main board temperature in degrees Celsius. Only valid if no Active Extension is connected. 

1.0

<ReaderTemperature>

Temperature of the UHF module in degrees Celsius. Only valid when there is not an Active Extension connected to the Feature Port.

1.0

<UHFFrequency>

Currently selected frequency number. EU: 0 if frequency is set to Auto, 1=A, 2=B; JP: 0-3; All other regions: 0

1.0

<ActiveExtConnected>

1, if an Active Extension is connected

1.4

[<Channel>]

Selected channel (1 -> 8)

1.4

[<LoopID>]

Selected loop ID (1. -> 8)

1.4

[<LoopPower>]

Selected loop power (0% -> 100%)

1.4

[<LoopConnected>]

1, if a loop is connected

1.4

[<LoopUnderPower>]

1, if the loop has reached its "Loop Limit"

1.4

<TimeIsRunning>

0 if there is a static time and the decoder is not in timing mode. 1 otherwise.

2.0

<TimeSource>

One of:
0:    Time was set manually
1:    Time was set by GPS
2:    Time was set by GPS, but time is only estimated due to bad reception.

2.0
<ScheduledStandbyEnabled> 1, if scheduled standby is enabled. 2.5
<IsInStandby> 1, if decoder is currently in standby. 2.5
<ErrorFlags>

0, if everything is OK. Otherwise bitmask with the following meaning:

Bit Meaning
1 UHF module reports an error
16 Active loop error
32 Active loop limit
64 Active connection lost
256 GPS time sync error
512 GPS communication error warning
1024 Active time sync error
3.1
[<External12Volt>] Mainboard revision >= 1.3 meassured voltage of the external battery port. Empty for revision < 1.3. 3.2

Example without Active Extension:

← GETSTATUS<CrLf>
→ GETSTATUS;0000-00-00;12:43:29.942;1;11111111;1;50;1;49.721,8.254939;1;0;;;;;;;1;0;0;0;0;13.23<CrLf>


With an Active Extension connected: 

← GETSTATUS<CrLf>
→ GETSTATUS;0000-00-00;12:43:29.942;1;11111111;1;50;1;49.721,8.254939;1;1;2;3;20%;1;0;1;0;0;0;0;13.23<CrLf>

 

Note that for protocol versions < 2.0, if no Active Extension is connected, the command won't return the fields (and semi colons) after <ActiveExtConnected>.

Get Mode

To check if the Decoder is in Operation Mode, the host sends

GETMODE<CrLf>

The decoder responds with:
In Operation Mode:

GETMODE;OPERATION<CrLf>

Otherwise:

GETMODE;TEST<CrLf>

Example

← GETMODE<CrLf>
→ GETMODE;OPERATION<CrLf>

Start Operation Mode

To switch the Decoder into Operation Mode, the host sends

STARTOPERATION<CrLf>

The decoder responds with:

STARTOPERATION;OK[;<Date>;<Time>]13<CrLf>

if the Decoder was switched into Operation Mode, with

STARTOPERATION;OPERATIONMODE[;<Date>;<Time>]13<CrLf>

if the Decoder already was in Operation Mode.

Where

<Date>

Date at which the decoder was successfully put into operation mode, format: yyyy-MM-dd. Since protocol version 1.3.

<Time>

Time at which the decoder was successfully put into operation mode, format: hh:mm:ss.kkk. Since protocol version 1.3.

Example

← STARTOPERATION<CrLf>
→ STARTOPERATION;OK;0000-00-00;00:10:00.000<CrLf>

Stop Operation Mode

To switch the decoder into Test Mode, the host sends

STOPOPERATION<CrLf>

The decoder responds with:
If the operation mode was stopped:

STOPOPERATION;OK<CrLf>

If the decoder already was in Test Mode:

STOPOPERATION;TESTMODE<CrLf>

Example

← STOPOPERATION<CrLf>
→ STOPOPERATION;OK<CrLf>

Advanced commands

Ping

If the hosts sends a

PING<CrLf> 

operation, the decoder responds with

PING;PONG<CrLf>

You can use this to keep a connection alive.

Protocol version

Available since protocol version 1.5

Example

← PING<CrLf>
→ PING;PONG<CrLf>

Start Upload

To enable passings and status upload of the decoder, the host sends

STARTUPLOAD<CrLf>

The decoder responds with

STARTUPLOAD;<Result>[;<Error>]<CrLf>

Where:

<Result>

OK if upload was enabled successfully, ERROR otherwise.

[<Error>]

NOSIM  Connection type 2G/3G is selected but no SIM card is found.
CANCELLED User cancelled the connection attempt.
OTHER Unspecified error occurred.

Protocol version

Available since protocol version 1.9

Example

← STARTUPLOAD<CrLf>
→ STARTUPLOAD;OK<CrLf>

Stop Upload

To stop upload, the host sends

STOPUPLOAD<CrLf>

The decoder responds with

STOPUPLOAD;OK<CrLf>

Protocol version

Available since protocol version 1.9

Example

← STOPUPLOAD<CrLf>
→ STOPUPLOAD;OK<CrLf>

Push Mode

In order to enable the push mode, the host sends

SETPUSHPASSINGS;<Enable>;<PushExisting><CrLf>

Push mode is disabled per default. Passings will be pushed in the current connection only. New passings will be pushed until push mode is disabled by calling SETPUSHPASSINGS;0 or the connection is reset or breaks.

Where

<Enable>

1 if the decoder should push passings. 0 to disable the feature.

<PushExisting>

1 if the decoder should push all existing passings of the current file, 0 to send no existing passings.
Since protocol version 1.9, you can also specify an arbitrary index from which the Decoder should start pushing passings.

If the operation was successful, the decoder responds with:

SETPUSHPASSINGS;<Enable>;<PushExisting><CrLf>    

If the parameters are incorrect:

SETPUSHPASSINGS;ERROR<CrLf>

Protocol version

Available since protocol version 1.5

Example

← SETPUSHPASSINGS;1;0<CrLf>
→ SETPUSHPASSINGS;1;0<CrLf>

[... some time later, a passing occurs]
→ #P;1;592;0000-00-00;12:30:12.322;888;4;-52.778000;38cd1c;0;;;;;;;;D-4476<CrLf>

[... some time later, another passing occurs]
→ #P;2;294;0000-00-00;12:30:14.991;888;3;-50.451000;a2233f;0;;;;;;;;D-4476<CrLf>

Push Prewarns

When using the active extension, the system can push prewarns, too. To enable them, the host sends

SETPUSHPREWARNS;1<CrLf>

To disable them:

SETPUSHPREWARNS;0<CrLf>

Prewarns will be pushed in the current connection only.

If the operation was successful, the decoder responds with:

SETPUSHPREWARNS;<Enable><CrLf>

If the parameters are incorrect:

SETPUSHPREWARNS;ERROR<CrLf>

Protocol version

Available since protocol version 1.5

Example

← SETPUSHPREWARNS;1<CrLf>
→ SETPUSHPREWARNS;1<CrLf>

[... some time later, an Active Transponder is passing over the Active Loop]
→ #W;KCBKM93<CrLf>

Enable/Disable Host if the system acts as client

Instead of a host connecting to the Decoder, the decoder can initiate a connection to a host, too. To enable a connection to a previously configured host (compare Settings -> Client Mode), the host sends

ENABLEHOST;<HostNum><CrLf> 

To disable a previously configured host, the host sends

DISABLEHOST;<HostNum>[;<permanently>]<CrLf>

Where <HostNum> is the index of the host to enable (1 ->10). 
0 as <HostNum> is also available since the availability of protocol version 2.7. If the current connection is a client mode connection, this will disable the host which is associated with the current connection. If 0 is given, the <permanently> parameter is also available. You can set it to 1 to disable auto start for this host.

If the host connection could be enabled, the decoder responds with:

ENABLEHOST;<HostNum><CrLf>       

Where <HostNum> is the actual host index. (actual host index and given host index will differ if you pass 0 as <HostNum>). If the selected host is not configured or the index is out of range:

ENABLEHOST;ERROR<CrLf>        

Note that after a successful call, it does not mean that the connection is already established. It just means that the configuration seems to be valid and the Decoder will try to connect to the host.

The decoder responds accordingly to a DISABLEHOST call, too. 

Protocol version

Available since protocol version 1.5

Example

← ENABLEHOST;1<CrLf>
→ ENABLEHOST;1<CrLf>

Getting the status of accessible active boxes

To query the status of the connected Active Extension and the Loop Boxes that are using the same channel,

GETACTIVESTATUS<CrLf> 

can be sent to the decoder. The decoder responds with:

GETACTIVESTATUS;[<DecoderId>,<IsActiveExtension>,<Channel>,<LoopID>,<LoopPower>,<LoopConnected>,<LoopUnderPower>,
<OnBattery>,[<RemainingHours>],[<SupplyVoltage>],<NoiseAvg>,<NoisePeak>,<TransponderLqi>,<TransponderEd>,
<BeaconLqi>,<BeaconEd>,<Mode>,<BeaconIndex>,<BeaconTimestamp>,<ChannelSwitchingMode>]1..<Count><CrLf>

Where

Parameter Description Since protocol version

<DecoderId>

ID of the Active Extension or Loop Box.

1.5

<IsActiveExtension>

1, if this box is the directly connected Active Extension, 0 if it is another device.

1.5

<Channel>

Selected channel (1 -> 8)

1.5

<LoopID>

Selected loop ID (1 -> 8)

1.5

<LoopPower>

Selected loop power (0% -> 100%)

1.5

<LoopConnected>

1, if a loop is connected

1.5

<LoopUnderPower>

1, if the loop limit has been reached

1.5

<OnBattery>

1, if the loop box runs on battery

1.5

<RemainingHours>

Remaining run time in hours, if running on battery

1.5

<SupplyVoltage>

Supplied Voltage to the decoder, if not running on battery

1.5

<NoiseAvg>

Average noise on current 2.4 GHz channel

1.8

<NoisePeak>

Peak noise on current 2.4 GHz channel

1.8

<TransponderLqi> Do not use. 2.3
<TransponderEd>

Signal strength of transponder data packet measured at the receiver. RSSI [dBm] = TransponderEd-90

2.3
<BeaconLqi>

Do not use.

2.3
<BeaconEd>

Signal strength of beacon data packet measured at the receiver. RSSI [dBm] = TransponderEd-90

2.3
<Mode>
0 Active Extension
2 Store Mode
3 Repeat Mode
4 Repeat & Impulse Mode
2.3
<BeaconIndex>

All active boxes send out one beacon per second. BeaconIndex is increased by one every time a beacon is sent. 

2.3
<BeaconTimestamp>

TimeStamp when the beacon was received.

2.3
<ChannelSwitchingMode> AUTO, OFF, FORCE or UNKNOWN (UNKNOWN for all but the directly connected Active Extension.) 2.3

If no active extension is found it will respond with:

GETACTIVESTATUS;ERROR<CrLf> 

Protocol version

Available since protocol version 1.5

New File

To create a new file without stopping and restarting operation mode, the host sends

NEWFILE<CrLf>

If the decoder runs in operation mode and a new file was created the decoder responds with

NEWFILE;OK;<FileNo><CrLf>

where <FileNo> represents the file number of the newly created file.

If it is in test mode and no new file was created the decoder responds with:

NEWFILE;TESTMODE<CrLf>

Protocol version

Available since protocol version 2.0

Get File Info

To get info about a specific passings file, the host sends

GETFILEINFO;<FileNo><CrLf>

Where

<FileNo>

File number of this file entry

The decoder responds with

GETFILEINFO;<PassingsCount>;[<Date>];[<Time>]<CrLf>

if the file is existing. With

GETFILEINFO;ERROR<CrLf>

if the requested file could not be found.

Where

<PassingsCount>

Number of passings in this file entry

<Date>

Modification date of this file entry (format yyyy-mm-dd, current system timezone), if known.

<Time>

Modification time of this file entry (format hh:mm:ss, current system timezone), if known.

Protocol version

Available since protocol version 2.6

List Files

 

To list all current passing files, the host sends

LISTFILES<CrLf>

The decoder responds with

LISTFILES;<FileCount>[;<FileNo>,<PassingsCount>,[<Date>],[<Time>]]

Where

<FileCount>

Number of file entries that follow

<FileNo>

File number of this file entry

<PassingsCount>

Number of passings in this file entry

<Date>

Modification date of this file entry (format yyyy-mm-dd, current system timezone), if known.

<Time>

Modification time of this file entry (format hh:mm:ss, current system timezone), if known.

Protocol version

Available since protocol version 2.0

Clear Files

To clear all current files and move them to an archive directory, the host sends

CLEARFILES<CrLf>

If the decoder is in test mode and all files were archived the decoder responds with:

CLEARFILES;OK;<FileNo><CrLf>

If it is in operation mode and no files were archived the decoder responds with:

CLEARFILES;OPERATIONMODE<CrLf>

Protocol version

Available since protocol version 2.0

Get File

To get the content of a (non-archived) passings file, the host sends

GETFILE;<FileNo>[;<S>[:<C>]]<CrLf>

Where

<FileNo>

File number of requested passings file.

<S>

Start index into passings file

<C>

Number of passings to transfer. (If omitted only a single passing is returned.)

 If both <S> and <C> are omitted, the whole file is returned.

If the given file number is invalid the decoder will respond with.

GETFILE;ERROR<CrLf>

If the request is successful the decoder responds with:

GETFILE;<FileNo><CrLf>
<PassingsData>

For further information refer to Get Single Passing, Get Multi Passing and Passing record sections. Note: passing records are sent in the currently active protocol version. Random access into passing records is possible but not recommended, since implementation is optimized for sequential access.

Protocol version

Available since protocol version 2.0

Get Firmware Version

In order to get the firmware version that is currently active, the host sends

GETFIRMWAREVERSION<CrLf>

The decoder responds with:

GETFIRMWAREVERSION;<Version>

Where <Version> is the current firmware version that is installed on the system.

Protocol version

This command was introduced in protocol version 1.9.

Example

GETFIRMWAREVERSION<CrLf>

Decoder responds with

GETFIRMWAREVERSION;1.94<CrLf>

Setting and getting config parameters

In order to get/set a config parameter, the host can use these commands:

GETCONFIG;<GROUP>;<SETTING>[;PARAMETERS]<CrLf>
SETCONFIG;<GROUP>;<SETTING>;<PARAMETERS><CrLf> 

Valid <GROUP>s are:

GENERAL

various general settings

NETWORK

network settings

DETECTION

detection menu settings

ACTIVE

configuration regarding the active extension

CLIENTMODE

client mode settings

UPLOAD

configuration of the upload functionality

If the decoder cannot parse the parameters or the parameters are invalid, it responds with

SETCONFIG;<GROUP>;<SETTING>;ERROR

Protocol version

Available since protocol version 1.5

Getting internal decoder time

In order to get the current internal decoder time in the configured timezone, a client calls:

GETSYSTIME<CrLf>

The decoder responds with: 

GETSYSTIME;<Date>;<Time>;<Offset><CrLf>

Where

<Date>Date. Format: YYYY-MM-DD.

<Time>

Time. Format: HH:MM:SS.mmm

<Offset>

UTC offset. Format: +/-hh:mm

Protocol version

Available since protocol version 2.3

Example

GETSYSTIME<CrLf>

Decoder responds with

GETSYSTIME;2017-12-22;11:35:15.214;+01:00<CrLf>


Getting internal decoder start time

In order to get the internal decoder time in the configured timezone when the operation mode was started, a client calls:

GETSTARTSYSTIME<CrLf>

The decoder responds with: 

GETSTARTSYSTIME;<Date>;<Time>;<Offset><CrLf>

when in operation mode, with

GETSTARTSYSTIME;TESTMODE<CrLf>

when in test mode.

Where

<Date>Date. Format: YYYY-MM-DD.

<Time>

Time. Format: HH:MM:SS.mmm

<Offset>

UTC offset. Format: +/-hh:mm

Protocol version

Available since protocol version 2.3

Example

GETSTARTSYSTIME<CrLf>

Decoder responds with

GETSTARTSYSTIME;2017-12-22;11:31:12.213;+01:00<CrLf>


Get UHF info

You can upgrade the Firmware by calling

GETUHFINFO<CrLf>

The decoder responds with: 

GETUHFINFO;Region[;FrequencyIndex,Caption]0..<Count-1><CrLf>

Where

<Region>

Is the configured UHF region. Empty if unavailable.

<FrequencyIndex> Index of the availbale frequency setting. Use this to set the frequency.
<Caption> Caption of that frequency setting.

Protocol version

Available since protocol version 2.8

Get interfaces

You can get information about the available network interfaces and their connecivity by calling

GETINTERFACES<CrLf>

The decoder responds with: 

GETINTERFACES[;Name,IsCurrentInterface,Status]0..<Count-1><CrLf>

Where

<Name>

Name of the interface.

<IsCurrentInterface> 1, if this is the interface that is used for this connection, 0 otherwise.
<Status>
  • 0: Local gateway accassible + Internet not accassible
  • 1: Local gateway accassible
  • 2: Internet accassible
  • 3: Local gateway + Internet accassible

Protocol version

Available since protocol version 2.9

Attachments

Valid time zones (Version 1.9)

Pacific/Midway, America/Adak, Etc/GMT+10, Pacific/Marquesas, Pacific/Gambier, America/Anchorage, America/Ensenada, Etc/GMT+8, America/Los_Angeles, America/Denver, America/Chihuahua, America/Dawson_Creek, America/Belize, America/Cancun, Chile/EasterIsland, America/Chicago, America/New_York, America/Havana, America/Bogota, America/Caracas, America/Santiago, America/La_Paz, Atlantic/Stanley, America/Campo_Grande, America/Goose_Bay, America/Glace_Bay, America/St_Johns, America/Araguaina, America/Montevideo, America/Miquelon, America/Godthab, America/Argentina/Buenos_Aires, America/Sao_Paulo, America/Noronha, Atlantic/Cape_Verde, Atlantic/Azores, Europe/Belfast, Europe/Dublin, Europe/Lisbon, Europe/London, Africa/Abidjan*, Europe/Amsterdam, Europe/Belgrade, Europe/Brussels, Africa/Algiers, Africa/Windhoek, Asia/Beirut, Africa/Cairo, Asia/Gaza, Africa/Blantyre, Asia/Jerusalem, Europe/Minsk, Asia/Damascus, Europe/Moscow, Africa/Addis_Ababa, Asia/Tehran, Asia/Dubai, Asia/Yerevan, Asia/Kabul, Asia/Yekaterinburg, Asia/Tashkent, Asia/Kolkata, Asia/Katmandu, Asia/Dhaka, Asia/Novosibirsk, Asia/Rangoon, Asia/Bangkok, Asia/Krasnoyarsk, Asia/Hong_Kong, Asia/Irkutsk, Australia/Perth, Australia/Eucla, Asia/Tokyo, Asia/Seoul, Asia/Yakutsk, Australia/Adelaide, Australia/Darwin, Australia/Brisbane, Australia/Hobart, Asia/Vladivostok, Australia/Lord_Howe, Etc/GMT-11, Asia/Magadan, Pacific/Norfolk, Asia/Anadyr, Pacific/Auckland, Etc/GMT-12, Pacific/Chatham, Pacific/Tongatapu, Pacific/Kiritimati

*This timezone matches UTC