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.
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.