User`s guide

4: ADCCP NRM Operations
DC 900-1317J 93
4.2 User Application Design Criteria
This section describes criteria to be considered when designing an application. It is
important that you take the time necessary to familiarize yourself with these issues to
ensure that your application functions as intended. Failure to properly consider all of
the information presented in this section may result in decreased performance or may
prevent your proposed design from working at all.
4.2.1 Non-blocking I/O
Note
An application using non-blocking I/O should always have a
dlRead request pending.
During the normal exchange of data between a local station and a remote station on an
ADCCP link, the user’s application sends data by writing a packet to the ICP. When the
remote station receives the data, the ICP informs the sender that the data was received.
The ICP communicates this feedback (or acknowledgment) in the form of
DLI_PROT_RESP_NORMAL_ACK packets. For the user’s application to see this feedback (when
using non-blocking I/O), it must issue a
dlRead. This is true even if the localAck DLI
configuration parameter is set to “yes.” In this case, the DLI intercepts the
DLI_PROT_RESP_NORMAL_ACK packets (and reissues a dlRead request); the client application
never receives the acknowledgment packets but still must have a
dlRead request pend-
ing.
The receipt of packets is predictable; they are solicited by the users application when it
sends
DLI_PROT_SEND_NORM_DATA packets to the ICP. However, the ICP also sends unso-
licited packets to the client (such as
DLI_PROT_RECV_DATA and
DLI_PROT_RECV_LINK_EXCEPTION packets). To ensure that the user’s application sees all of
these packets (and the DLI intercepts the
DLI_PROT_RESP_NORMAL_ACK packets), there
must always be a
dlRead request pending.