252301 Issue 2.0.pdf - 第50页
GEM Manual for DEK Printers Capabilities I ssue 2.0 June 9th, 2011 page 50 of 156 5.12.2 Spooling State Model There are two major states of spooling : SPOOL I NACTI VE and SPOOL ACTIVE. SPOOL ACTIVE has two components: S…

GEM Manual for DEK Printers Capabilities
Issue 2.0 June 9th, 2011 page 49 of 156
5.12 Spooling
In the event that a communication failure occurs the DEK printer is capable of spooling messages into
non-volatile storage. These messages can be recovered for transmission when the communications link
is restored.
5.12.1 Definitions
MaxSpoolTransmit: An equipment constant containing the maximum number of messages that the
equipment will transmit from the spool in response to an S6F23 "Transmit Spooled Messages" request.
If MaxSpoolTransmit is set to zero, no limit is placed on the messages sent from the spool. Multi-block
inquire/grant messages are not counted in this total.
OverWriteSpool: An equipment constant used to indicate to the equipment whether to overwrite data
in the spool area or to discard further messages whenever the spool area limits are exceeded.
Send Queue: Refers to the queue into which equipment generated SECS messages are placed in
preparation for transmission to the host.
Spool: The spool is an area of non-volatile storage in which the equipment stores certain messages that
cannot be delivered to the host (when the equipment is in the NOT COMMUNICATING substate of
COMMUNICATIONS ENABLED).
SpoolCountActual: A status variable used to keep a count of the messages actually stored in the
equipment's spool area. Multi-block inquire/grant messages are not spooled and not included in this
count.
SpoolCountTotal: A status variable used to keep a count of the total number of primary messages
directed to the spool, regardless of whether placed or currently retained in the spool. Multi-block
inquire/grant messages are not spooled and not included in this count.
SpoolFullTime: A status variable containing the timestamp when the spool last became full. If the
spool was not filled during the last spooling period, this will contain a time value prior to the current
SpoolStartTime.
SpoolStartTime: A status variable containing the timestamp from when spooling was last activated.

GEM Manual for DEK Printers Capabilities
Issue 2.0 June 9th, 2011 page 50 of 156
5.12.2 Spooling State Model
There are two major states of spooling: SPOOL INACTIVE and SPOOL ACTIVE. SPOOL ACTIVE
has two components: SPOOL UNLOAD and SPOOL LOAD. These are each broken into substates.
The POWER OFF and POWER ON parent states are common to all equipment subsystems. They are
shown here to illustrate the retention of spooling context during a power down situation.
NOTE: Disabling SECS communications does not affect the current spooling state since no messages
are generated until communications are subsequently enabled. Spooling is effectively frozen in this
case.
POWER OFF - The printer has lost power for any reason.
POWER ON - The printer is powered up.
SPOOL INACTIVE - This is the normal operating mode. No spooling occurs. The spool area is
empty. Primary SECS-II messages are transmitted normally.
SPOOL ACTIVE - All primary SECS-II messages ready for sending and for which spooling is
enabled (see S2F43) are directed to the spool area. All other primary messages, except Stream 1, are
discarded. The printer will attempt to send any secondary messages that are generated and discard these
messages should the attempt to send fail.
State Diagram:
SPOOL OUTPUT
PURGE
SPOOL
TRANSMIT
SPOOL
NO SPOOL
OUTPUT
SPOOL
NOT FULL
SPOOL
FULL
SPOOL
INACTIVE
POWER
OFF
POWER ON
SPOOL UNLOAD
SPOOL LOAD
7
8
3
1
2
4
5
6
SPOOL ACTIVE
Once communications are established, the host must initiate the spool unload sequence to restore full
functionality. Since the printer will deliver secondary messages, the host may inquire for information
or send commands as needed.
GEM Manual for DEK Printers Capabilities
Issue 2.0 June 9th, 2011 page 51 of 156
The SPOOL ACTIVE state has two AND states: SPOOL LOAD and SPOOL UNLOAD. This means
that they operate independently, though sharing data and some state change stimuli.
SPOOL LOAD - The SPOOL LOAD component enters messages into the spool area. It is divided into
two substates: SPOOL NOT FULL and SPOOL FULL. SPOOL NOT FULL is the default entry
substate of the parent state SPOOL LOAD.
SPOOL NOT FULL - As primary SECS-II messages are directed to the spool area, the printer will
write the SECS-II message to the end of the spool. Status variables SpoolCountTotal and
SpoolCountActual will be incremented each time a message is placed in the spool area.
SPOOL FULL - In this state, all of the allocated spooling area is filled. Choice of the following
options will be controlled by the setting of the equipment constant "OverWriteSpool." The first
message to be dealt with is that which could not be fitted into the spool prior to the transition from
SPOOL NOT FULL.
OverWriteSpool is True: The printer will delete as many of the "oldest" SECS-II messages
contained in the spool area necessary to make space for the new message and then add the
message to the spool area. The status variable SpoolCountTotal will be incremented whenever
a message is put in the spool area. The status variable SpoolCountActual will be adjusted to
keep an accurate count of the number of messages contained in the spool area.
OverWriteSpool is False: Any subsequent primary messages will be discarded. When a
message is discarded, SpoolCountTotal is incremented.
SPOOL UNLOAD - The SPOOL UNLOAD component of SPOOLACTIVE deals with movement of
messages out of the spool. It has an active substate (SPOOL OUTPUT) and a passive substate (NO
SPOOL OUTPUT). NO SPOOL OUTPUT is the default entry substate, since the printer is NOT
COMMUNICATING at the time spooling is initiated. When communications between printer and host
are restored, there is an opportunity for the host to recover spooled messages. No action is taken until
the host initiates the spool output process via the S6F23 (Request Spooled Data). The host has the
option to either receive the spooled messages (see substate TRANSMIT SPOOL) or discard all
messages in the spool (see substate PURGE SPOOL).
NO SPOOL OUTPUT - In this state, no messages are removed from the spool.
SPOOL OUTPUT - This state controls the removal of messages from the spool. Its substates are
TRANSMIT SPOOL and PURGE SPOOL.
TRANSMIT SPOOL - The host elects to receive all messages contained in the spool area. The printer
will keep track of the oldest message within the spool area. When communications are re-established
with the host and transmission of the spool area is started, the oldest message will be the first to be
transmitted, then the next oldest message, etc. There is no prioritisation of messages to be sent from the
spool. As each spooled message is successfully transmitted to the host, it is removed from the spool
area upon successful completion of the transaction. SpoolCountActual is decremented as each message
is removed from the spool. The printer will transmit messages only from the spool area until all
spooled messages have been completely transmitted to the host.
Flow control of the spool transmit process is achieved in two ways.
First, only one open transaction on the printer is allowed during spool unload. Thus, if a
message requires a reply, the printer will wait for that reply before transmitting the next
message. Messages that require no reply will be transmitted sequentially.