3.2.5.1.5 Client Command Time-out Parameter

Clients are required to report the maximum amount of time that commands take to execute so that the host knows when to safely time-out and retry commands. To balance simplicity and flexibility, clients can report two types of time-outs. The client command time-out parameter value must begin with a Default Command Time-out which applies to all commands which do not have a Specific Command Time-out. Clients can optionally report one or more Specific Command Time-outs which apply only to specific commands.

Since the Get Client Info Command (GetClientInfo) is used to learn the command time-outs, there is no way to customize the time-out duration of the GetClientInfo command. The GetClientInfo command has a fixed time-out of one second.

Parameter Details

Client Command Time-out Parameter Details

Parameter Type Code

0x03

Parameter Length

(3 Bytes per time-out) x Number of Time-outs Reported

Parameter Value

<DefaultCmdTimeOutCode><DefaultCommandTimeOut>[<cmdCode_1><uint16_t SpecificCommandTimeOut_1>]…[<cmdCode_N><SpecificCommandTimeOut_N>]

       DefaultCmdTimeOutCode

uint8_t: 0x00

       DefaultCommandTimeOut

uint16_t: The default time-out applied to all commands which don’t have a specific command time-out

       cmdCode_x

uint8_t: The command code of a specific command that is being assigned a unique time-out value

       SpecificCommandTimeOut_x

uint16_t: A time-out which applies specifically to the command identified by the preceding cmdCode_x

Time-out Units and Calculation

  • DefaultCommandTimeOut and SpecificCommandTimeOut_x are uint16_t values.
  • The LSB of each of these parameters is 0.1s.
  • The minimum time-out is 0.1 seconds.
  • The maximum time-out is 65,535 x 0.1 s = 6,553.5 seconds = 109.225 minutes.
  • TimeOutInSeconds = TimeOutParameterValue x (0.1 Seconds / LSB).
  • TimeOutParameterValue = TimeOutInSeconds / (0.1 Seconds / LSB).

Parameter Examples

The following figures show examples of how to create the Client Command Time-out Parameter for two different scenarios.

The first example shows the simplest case where only the Default Time-out is provided. This time-out applies to all commands.

Figure 3-2. Example 1: One Second Default Time-out Response

The second example shows how to use a specific command time-out to modify the time-out of a command. It shows a ten second time-out that applies only to the GetImageState command. The Default Command Time-out of one second applies to all other commands.

Figure 3-3. Example 2: One Second Default Time-out and Ten Second GetImageState Time-out