Each poll returns a block of transactions with a maximum length of 255 bytes. Only complete transactions are transmitted and the oldest are transmitted first. In the buffered mode, once transactions are transmitted, they remain in the file until the terminal receives an ACK from the terminal controller.
The transactions are flushed and transmitted from the file sequentially as each ACK is received. When there are no more stored transactions, the terminal responds to the last poll with a NAK.
=> STX, addr, addr, ETXTerminal Response:
Error <= NAK No data <= NAK OK data <= STX, data, CS1, CS2, ETX Download of files needed <= DC1Note:
Refer to "File 9&mdash.Transaction Queue File" for the format of the returned transaction data.Terminal Controller reply if data received:
Error => NAK (hold data for next poll) Recv OK => ACK (release data buffer)Non-Polled Ethernet
The terminal controller/server uses commanda A1X and A0X polling for informing terminals that they are allowed to send transactions at will (unsolicited transactions). A1X enables unsolicited transactions, while A0X disables them. When enabled, the terminals will send transactions from the currently polled file (transaction queue). Priority is given to interactive transactions, otherwise, the oldest transaction is sent. The number of transactions to be sent in response to a poll is defined by the last CMD 8 received by the terminal.Each block of transactions has a maximum length of 255 bytes. Only complete transactions are transmitted and the oldest are transmitted first. In the buffered mode, once transactions are transmitted, they remain in the file until the terminal receives an command K (transaction release) from the terminal controller/server.
The transactions are flushed and transmitted from the file sequentially as each command K is received. When there are no more stored transactions, the terminal will stop sending data. If the Timer A timeout occurs before a command K is received, the same transaction block is sent again. The 7526 maintains a 'transaction flow control' flag to keep track of whether or not it is allowed to send transactions to the controller. The don't-send-me-transactions command (CMD A0X) is used by the controller to turn this flag off. When a terminal is first powered on, the flag defaults to the off state. However, an I-am-here message (DC2 character) is sent to the controller letting it know that the terminal is now alive. At this time, the controller can choose to send to the terminal a you-can-now-send-me-transactions command (CMD A1X) which will turn on the terminal's transaction flow control flag.
If the terminal sends a transaction even when the controller does not want it, the controller should send to the terminal the CMD A0X followed by a NAK for the transaction. The NAK indicates the controller did not or could not receive the transaction properly and that the terminal should send it again 'later'.
'Later' is when the controller sends a CMD A1X to the terminal. Whenever the 7526 receives this command it will send whatever transaction is first in its queue. If the controller receives that transaction successfully, it may respond with an ACK to the terminal. This ACK, however, is not sufficient to release the transaction from the terminal's queue. (The 7526 in Ethernet mode actually ignores ACK and NAK characters, and relies solely on the CMD K release or the host communications timeout to determine when to release or resend a transaction). The 7526 will wait for a CMD K release before it will discard the transaction. The ACK sent by the controller merely indicates that the transaction's checksum was valid and that the controller is now accepting transactions. The CMD K is used when the controller has successfully stored the transaction (e.g. in the DCC/2 logfile).
When the terminal receives a valid CMD K (the sequence number matches that of the first transaction in the queue) the first transaction is discarded and an ACK is sent to the controller to indicate the release was successful. If more transactions are in the queue, the next one is immediately sent to the controller.
This process repeats in this manner until all transactions have been sent to the controller. If new transactions are generated before the queue is emptied, they are simply added to the end of the queue. In the case where a new transaction is generated and the queue is empty, the terminal will immediately send the transaction to the controller - provided its transaction flow control flag is on.
If the terminal has just sent a transaction to the controller and that transaction has not yet been released, and then the terminal receives an A0X command followed some time later by an A1X command with no transaction release in between, the same transaction is sent to the controller again when the A1X command is received.
If, however, a transaction release command is received after the A0X is received but before the A1X, then the transaction is released from the terminal. When the A1X is received, that released transaction will not be resent because it no longer exists. In this instance, the next transaction sent to the controller is the next one in the queue following the one that was just released - if there are any.
A 7526 operating with an Ethernet controller/server connection will send a DC2 character each time it powers up to let the controller/server know that it is now active. It will do this no matter what the unsolicited transaction status may be.