Execution modes

There are 3 modes in which you can execute a command:

  • Standard mode: Execute once
  • Continuous mode: Execute repeatedly until successful
  • Repeat mode: Execute repeatedly, even after success, until aborted by the host

Standard mode

In standard mode, the command is executed once. The process is as follows:

  1. The host sends a command frame with ExecutionMode = 0.
  2. The reader executes the command.
  3. The reader sends a response frame to the host, no matter if execution was successful or not. The response frame is sent after execution or, at the latest, after a command-specific timeout (see respective page in commands reference call_made).

    Failed execution is indicated by the Failure and StatusCode fields.

BRP command and response frames sent in standard mode

Continuous mode

In continuous mode, the command is executed repeatedly until execution was successful. The process is as follows:

Invoke a command

  1. The host sends a command frame with ExecutionMode = 2.
  2. The reader executes the command repeatedly until execution is successful. Upon successful execution, the reader sends a response frame with the requested data and Phase = 2 to indicate the end of the command execution loop.
  3. If execution hasn't been successful within 50 ms after the reader has received the command frame, the reader sends a CmdWork status frame. This is to inform the host that the reader is still trying to execute the command successfully.
  4. As an option, you can configure the reader to periodically send additional CmdWork status frames until successful command execution. To do so, adjust the configuration value CmdWorkInterval (see Configuration referencecall_made > your protocol > Value CmdWorkInterval).

By default, CmdWorkInterval is set to indefinite, so the reader sends no additional CmdWork status frames after the first one.

BRP command and response frames sent in continuous mode

Abort a command loop before successful execution

  1. The host sends an arbitrary (e.g. invalid) frame or a single byte.
  2. The reader ignores the transmitted data.
  3. After the command-specific timeout (see respective page in commands reference call_made), the reader aborts the command execution loop.
  4. The reader sends a final response frame to the host with Phase = 2 to indicate the end of the execution loop.

    The response frame contains a StatusCode for the last execution attempt.

BRP command and response frames when continuous mode is interrupted

Repeat mode

In repeat mode, the command is executed repeatedly as in continuous mode. However, the loop continues after successful execution and only stops when aborted by the host. The process is as follows:

Invoke a command

  1. The host sends a command frame with ExecutionMode = 1.
  2. The reader executes the command repeatedly until the host aborts the execution loop. This means that the host will receive an infinite number of response frames.
  3. The time gap between 2 response frames is defined by the configuration value RepeatModeMinDelay (see Configuration referencecall_made > your protocol > Value RepeatModeMinDelay). By default, it's 100 ms.
  4. As long as execution hasn't been successful, the reader sends 1 or more status frames. This works in the same way as in continuous mode.

BRP command and response frames sent in repeat mode

Abort a command

This works exactly as in continuous mode. The reader sends a final response frame with Phase = 1.

BRP command and response frames when repeat mode is interrupted