MoveCursor Command List Timeout

Specifies in seconds how long Host Integrator should wait for a move cursor command list to execute. If this setting is exceeded, an error is issued. The default is 5 seconds. After a command list is executed, this setting reflects the time allowed for the host to move the cursor. This setting is useful when connecting to a character mode host.

To configure this setting:

    1. On the Settings menu, click View Settings to open the View Settings dialog box.
    2. Under Host Integrator settings, expand the Entity Design tree and select MoveCursor Command List Timeout.
    3. Under Setting details, specify how long (in seconds) to wait for a move cursor command list to execute before an error appears.

Example Scenario:

The following scenario explains how to determine when to define a move cursor command list timeout:

  1. If both forward and backward cursor movements are defined, estimate the correct direction based on the offset of the current cursor position versus the desired location.

  2. For the first direction (for example, assume forward), do the following:
    a) Issue the command list to move the cursor forward using the MoveCursor or TransmitTerminalKey command, then
    b) Wait for one of the following:
    (1) the cursor to move to any defined tabstop that is different from the location where the command list was issued, or
    (2) a move cursor timeout, which is an indication that the host is finished and Host Integrator is not going to reach a new valid tabstop.
     
  3. Process the result
    a) If the location is where you want the cursor to be, stop.
    b) If the result of the move cursor was another tabstop, but it is not the one that you want, perform step 2 again.
    c) If the result of the move cursor was a timeout, reverse direction and repeat steps 2 and 3b until you get another timeout OR you get condition 3a.

Under normal processing conditions, the move cursor timeout is what allows Host Integrator to reverse direction; therefore, if the estimate to move forward or backward was incorrect due to the layout of the screen, moving forward actually would mean moving to a lesser offset. This timeout also prevents Host Integrator from waiting if there is actually an error in host processing.

If you are never going to utilize the ability to reverse the direction of the cursor movement (for example, from forward to backward), and/or you are willing to let an error condition or need to reverse direction take longer to discover, you can increase this timeout value. This provides a longer period for the host to move to the next tabstop. This can be necessary for hosts that can take longer than 1 second to move between valid tabstops. Also, if you are moving the cursor in the context of an operation, the operation interrupts the cursor movement if the operation timeout expires first.

To diagnose a problem, use the Configure Internal Trace dialog box. Expand the Model node and select the Cursor movement box. Enabling this trace point causes Host Integrator to write out trace information during cursor movements. The trace explains when Host Integrator has been asked to move to a particular tabstop, when it tries to advance to the next tabstop and what direction it is going, when it issues the request for a move cursor command list or operation, when it starts waiting for a new tabstop to become current, when it arrives at a tabstop (whether or not it is the particular one you want), and when it times out. The combination of these trace points, the host datastream trace nodes, and the normal time stamping mechanism should clearly reveal what happens during one of these failure conditions. You can enable the Entity Traversal and the Attributes trace nodes to help scope what sections of the trace to examine as needed.

Tips: As an alternative mechanism for hosts, map a move cursor operation as an "underfill" operation on each attribute, and then wait for the desired cursor location (either static or defined by another attribute) in the "after write" operation. This assumes that the host automatically moves to the next attribute when an attribute is completely filled. This also works best with the caching mechanism and UpdateAttribute(s) to write the data.

If you get to condition 3c twice, Host Integrator reports a failure. If you get there once and only one direction for the cursor movement has been defined, Host Integrator reports a failure. Finally, if Host Integrator detects that it has circled back to a certain tabstop , Host Integrator reports a failure.