The E2000 uses the TMP
(Telecom MessageTech Protocol) legacy paging
packet technology which is loosely based on TNPP (Telelocator Network
Paging Protocol). It is a superset of this protocol
using packets for replies rather than single characters and expands on the
block request functions to create a paging packet.
In this document the process which generates and
transmits the TMP packet to the E2000 hardware is called the TMP Sender.
There are
several types of packets for transmission (TMP sender to the E2000) . Each
has a specific purpose. The E2000 only recognises the following types.
-
Page Request
This is the paging message packet
-
Sync
The E200 treats this the same as a ENQ packet
-
ENQ
This is an enquiry packet.
The ENQ is sent regularly in the
absence of paging packets. The E2000 sends an ACK packet back so the
TMP Sender knows the E2000 is operational.
The reply packets (E2000 to TMP sender)
-
ACK
This is the acknowledgement of the paging message packet.
-
NAK
This is the negative reply. It indicates the CRC was incorrect for the
packet and to retransmit.
-
CAN
The E2000 send this when the buffers are full or it is unable to process
the packet.
The TMP Sender is responsible for
correctly formatting the TMP packet. The packet should be tested for control
characters especially in the message content. Any misplaced control
characters will result in a poor CRC value if it conflicts with the TMP
packet protocol.
The E2000
reads in the packet and tests the CRC value. The header is stored and
returned in the response. The E2000 does not care what is contained in the
header, it can be any printable character. The port runs in simplex mode
only, that is it will only accept a single packet at a time for processing.
At 9600 baud the packets are responded to in tens of milliseconds. For these
reasons the header is superfluous however it is maintained to keep the TMP
Sender generic.
Large messages
where the pager message content exceeds 160 characters are assigned to an
internal BigBuffer which will contain just 2 positions for both baud rates.
Normal messages are assigned to the normal queue of
48 positions for both baud rates. If the
buffers are full the TMP packets responses are CANed. The TMP Sender should
continue to send packets at the normal rate. As a single buffer position
becomes available the packet will be ACKed. In this case the buffers would
always be full as the positions are immediately filled as the messages are
generated and sent to the radio networks.
The E2000 examines the page request
packet for anomalies in a number of fields. If there is a field with invalid
data the packet is normally ACKed back to the TMP Sender and then is ignored
internally. The ACK is sent back as there is unfortunately no other command
available to indicate a bad field. The bad fields are indentified in the
logging from the E2000.
The
following fields are tested;
Priority
The E2000 uses the port number to
determine the priority of the message. Ports B are normal and ports D are
priority. The priority field in the TMP packet is ignored.
Port Mask
In the Hutchison configuration
packets for either radio network can be sent down the same port.
This
is the only mechanism for delivering messages to the different networks F1
and F2 from the same port.
The E2000 checks the first
character of the port mask for the values 8
and 4. A 8 indicates F1 in the
Hutchison configuration and 4 is F2. The E2000 is hard coded to one of
these values and this value can be checked in the PPEViewer. The second
character in the the mask is ignored.
The E2000 passes the packet to the
other system out port E if the port mask value is not correct for the system.
In addition if the port is the priority port then the packet header is
changed to indicate the message is also a priority message. The header
is destroyed in the process of sending the packet to the other system.
As the packet is not intended for the system that received the message,
it does not send a response back to the TMP Sender. It will store the header so if the other system responds then
the header for the response from the other system is replaced and then it is forwarded
back to the TMP Sender
from the original system.
The
TMP Sender will get a delayed response as the packet has been rerouted.
In general this delay is in the hundreds of milliseconds.
Baud Rate
The E2000 checks the Baud Rate
indication for F (1200) or
P (512) and if it is neither then the
packet is ACKed and then deleted from the QUEUE process.
Capcode
The E2000 converts the capcode
to a long integer using the atol(); function. If the function can not
convert the string to long integer, or the value is less than
8 or the value is greater than
2000000 then the packet is ACKed and
then deleted from the QUEUE process.
Function
The E2000 strips the last 4 bits
from this field then subtracts 1 leaving the result as 0 to 15. In the
POCSAG generation only the LSB 3 bits are used 0-3.
PagerType
Pager type is initially checked
for a T which if valid will place
the message in a separate Tone buffer otherwise the E2000 stores the
pager type field in the queue. When the POCSAG generation functions
start the field is tested and if not A
or N then the message is deleted
from the queue and a log entry is made.