Professional Documents
Culture Documents
MOD-14-1723
Issue 1
COMMERCIAL IN CONFIDENCE
NOTICE
All rights reserved. This document may not be reproduced in any form either in part or in
whole without the prior written consent of Sepura plc, nor may it be edited, duplicated or
distributed using electronic systems.
This document and the product it describes are considered protected by copyright according
to the applicable laws.
The information in this document is subject to change without notice. This document is
intended for Sepura plc‟s customers and/or other parties only for the purposes of the
agreement or arrangement under which this document is submitted.
The document has been prepared to be used by professional and properly trained personnel
and the customer and/or other party assumes full responsibility when using it. Sepura Plc
welcomes customer and/or other party comments as part of the process of continuous
development and improvement of the documentation.
The information or statements given in this document concerning the suitability, capacity, or
performance of the mentioned hardware or software products cannot be considered binding
but shall be defined in the agreement or arrangement made between Sepura plc and the
customer and/or other party.
However, Sepura plc has made all reasonable efforts to ensure that the instructions contained
in the document are adequate and free of material errors and omissions. Sepura plc will, if
necessary, explain issues which may not be covered by this document.
Sepura plc‟s liability for any errors in this document is limited to the documentary correction of
errors. Sepura plc WILL NOT BE RESPONSIBLE IN ANY EVENT FOR ERRORS IN THIS
DOCUMENT OR FOR ANY DAMAGES, INCIDENTAL OR CONSEQUENTIAL, (INCLUDING
MONETARY LOSSES), that might arise from the use of this document or the information in it.
Other product names mentioned in this document may be trademarks of their respective
companies, and they are mentioned for identification purposes only.
Copyright © Sepura plc 2014. All rights reserved.
Contact Details
Sepura plc
Radio House
St Andrew‟s Road
Cambridge CB4 1GR
United Kingdom
Web : www.sepura.com
Tel: +44 (0)1223 876000
Fax: +44 (0)1223 879000
ISSUE HISTORY
Version Date Change
REFERENCES
Reference Title
CONVENTIONS
Convention Description
Caution icon. Indicates actions or processes that require caution from the user
All numbers, unless explicitly stated otherwise will be in decimal notation (i.e.
23
Base 10).
0x23 All numbers with „0x‟ preceding them will be in Hexadecimal (i.e. Base 16)
Table of Contents
1 INTRODUCTION ....................................................................................... 7
1.1 What are Short Data Applications? .............................................................................. 8
2.16 Data Types - Use of MESSAGE DEFN Char Size and STRING LIST Type ............ 57
2.16.1 STRING LIST Types - Used by UI, Check Values and Delimiters .............................................................. 57
2.16.2 Encoding STRING LIST Or UI Values Into A Message .............................................................................. 58
3 LICENSING ............................................................................................. 65
4.5 Stage 3: Model incoming message structures, for checking and for displaying .. 74
6 GLOSSARY ............................................................................................. 88
INTENDED AUDIENCE
This User Guide is aimed at Application Developers and for use as a training support tool.
1 INTRODUCTION
Short Data Applications have been introduced to support the growth of SDS based protocols
interfacing with back end data systems (usually located in or beyond the SwMI). The
protocols carry data in an efficient format which although suited for low speed links (namely
the air interface) are not conducive to being readily readable and / or writable by a human
user. Short Data Applications provide a presentation layer on top of the SDS messages which
will allow users to read and write SDS messages in a clear and concise manner.
An example use of Short Data Applications would be to access a police vehicle database.
Screens would be accessed to logon and then enter details for the vehicle of interest. The
returned information would be displayed in a user readable form.
Before Short Data Applications the contents of messages were defined by what could be
entered using the terminal's UI, restricting it to visible characters (plus the space). With the
growth of SDS based protocols the use of non-printable characters within the message
protocol, for use as identifiers, binary data and field delimiters (depending upon each
message protocol definition), means that the organisation will want to use human un-readable
messages. In addition to this, messages are being designed to be space efficient, addressing
the need to use on a low bandwidth connection.
The purpose of Short Data Applications is two fold:
1. It allows the user to enter data and allow the terminal to translate the data into the
final SDS message. A Definition (in the form of tables) maps the data entered into
the fields to the raw SDS message. Some data will not be entered by the user and
will be transparent to them. By linking the Definition to the raw SDS message
structure, the presentation of the data to the user can be independent of the order
and format of the data in the final SDS message.
2. It allows the structured presentation of incoming SDS messages. An incoming
message will be identified as belonging to a given Form and this form will be used to
present all or some of the data contained in the SDS Message. The form will also be
able to re-order and label the information it presents making the readability of
incoming messages much simpler.
The fundamental point of Short Data Applications is to make the sending and receipt of
complex SDS message an effortless and user friendly task.
In addition Short Data Applications may be configured to be triggered by terminal functionality
and process a sequence of actions.
This Design Guide will:
introduce required concepts and features;
introduce the various Definition parts (Definition Tables);
o including how they define displayed forms;
o and how they check incoming messages.
explain how a message may be analysed and broken down (when received) or built
up (for sending);
show a worked example of a simple Short Data Application.
FORM FIELD
CHECK VALUE
FIELD STRING LIST
MESSAGE DEFN
LIST
Similarly the Family / Protocol information table (containing the family / protocol name)
references the Form table (Form information, its name for example) and the 'Fields on the
Form' table (Form Field information, positioning for example). Both of the referenced
tables will themselves reference other tables for further information. In fact the Form table
will get the Name information by referencing the table of strings.
In this way data is not duplicated, can be accessed by any other table and is logically
grouped. There is only one table for each type of data, shared by all Families.
See the end of Chapter 2 (in section Definition Tables and Links) for figures showing
tables, their data and their linkage.
Short Data Applications allow a non technical user to enter text via the terminal‟s UI using
form based Text Input and then allow the terminal to translate that text into a (potentially)
more compact form for transfer over the air.
The sequence of operations and Definition requirements are as follows:
Allow selection, from a Radio Settings card, of a configured Family (Protocol) and
then selection of the required Form;
Navigate the form and fill in the required information in the designated fields. The
Definition contains all information relating to field types, placement and size,
navigation order, etc. including whether fields are mandatory and/or have associated
validation rules;
By selecting Send (customised fields or the green telephone key), using the
associated message definition, construct an SDS Message from fixed and Form
information and send it to the configured (or user selected) address;
In addition, the message contents may be cached and used to fill in fields when this
form is next selected and may have other actions associated with it.
When a terminal receives an incoming SDS message it will check the message to determine
whether it needs to be presented to the user by means of a form. In addition, the receipt of a
recognised message may generate other actions, an alert for example.
If an incoming SDS Message fails the message check process and the message type (PID) is
recognised by the terminal Inbox, it is put in the Inbox, an icon is displayed and an alert raised
if so configured. From there it can be read, deleted and stored in the Message Store. These
messages are saved over a power off / power on cycle.
If an incoming SDS Message passes the message check process it is put in the Inbox
together with its associated Form ID, an icon is displayed and an alert raised if so configured.
From there it can be read and deleted. It is configurable, within the Definition (Form -
Attribute) whether these messages are saved over a power off / power on cycle. If so
configured by the Definition, a sequence of actions is initiated.
2.1 Introduction
This chapter will introduce each of the Definition Tables in turn. For each it will detail the table
elements and how they might be used. It will detail which elements link to (use) other tables
and which are linked from (used by) other tables.
The chapter concludes with a diagram showing how all the tables are linked to each other.
This chapter is very factual and will be further explained by a worked example in a later
chapter.
Table information is accessed, from other tables, either by position or by ID, as defined by
each individual table.
By position: A reference to this type of table, for example STRING LIST as above,
would be of the form STRING LIST 2, indicating a link to the second parameter set, in
this case '8 Bit Text' and 'Password:'. A single parameter set is involved.
By ID: A reference to this type of table, typically having an ID as the first column, would
be of the form CHECK VALUE 3, indicating a link to ALL the parameter sets that have an
ID of 3. In the example below this would link to the third, fourth and fifth rows. The
indicated parameter sets are then usually processed in turn, in the order they appear in
the table. Multiple or single parameter sets are involved.
ID Field ID Value
1 1 5 17
2 1 6 18
3 3 7 17
CHECK VALUE 4 3 11 18
5 3 10 21
6 7 8 17
7 7 9 18
In this table a reference is being made to the FIELD table (by position) using the
indicated Field ID.
FORM
LIST
FORM FIELD
ACTION
MESSAGE CHECK
STRING LIST
EVENT CHECK
Example
An example ACTION table:
ID Function ID Parameter List ID Name
1 2 Send SDS Message 2 0
2 3 Send SDS Message 3 0
ACTION
3 4 Generate Alert 4 0
4 4 Display Immediate 0 0
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
The first ACTION table entry defines a 'Send SDS Message' function. It gets its parameters
from the ID = 2 entries in the LIST table. The first is a Message ID and references the first
MESSAGE parameter set. The address is obtained from the first parameter set in the
ADDRESS table.
The second ACTION table entry defines a similar function apart from using the second
MESSAGE parameter set.
The third action entry defines a pair of functions (referenced by the same ID):
to generate an alert, in fact the tenth Alert (as indicated in the LIST table);
and to display the message immediately. No parameters are required and LIST table is
not involved.
No context keys have been configured.
Further information on Name:
Name is only supported in terminals that support context keys;
Only one Name will be supported for each Action ID and this must be associated with
the first action of an 'Action ID block' (Actions with the same Action ID);
If a Name is not configured then the context key will not be labelled and there will be no
action if it is pressed.
This function must only be invoked once for any given Action ID and must also be the
last function in the list of functions for any given Action ID
resultant contents of the destination field is not accessible by other lists of Action
functions;
The Format String function only updates the destination field and does not update the
display. The destination field contents are only displayed if saved using a subsequent
Save To Permanent Cache function and then the Form containing the destination Field
ID is (re)loaded. This behaviour is true only if the Save To Permanent Cache function is
called within the same Action function List as the Format String function;
The Destination ID may be obtained from a Field ID referenced via LIST. The
referenced field must be defined as Unicode 16 bit. The maximum field length is 255
characters;
The Format ID may be obtained from a Field ID referenced via LIST. The referenced
field must be defined as Unicode 16 bit. The referenced field supports fixed strings and
the formatting characters '%s' which reference, in turn, Source IDs;
For example 'Attending Scene: %s' would concatenate the text 'Attending Scene: ' with
the contents of the first referenced Source ID.
The Source ID may optionally be obtained from a Field ID referenced via LIST. It / they
(there can be a maximum of thirteen Source IDs referenced) are used as the source
string data for its respective '%s'. The format of the Source ID string data may be 7 bit, 8
bit or 16 bit Unicode) text.
Persistence may be obtained from a Field ID referenced via LIST. The following values
are supported with the specified functionality. Any non-supported values are treated as
value „0‟.
„0‟ – The string written to DestinationID persists for the duration of the action function
sequence currently being executed.
„1‟ - The string written to DestinationID persists for the duration the radio remains
powered. i.e. Saves the result to permanent cache.
„2‟ - The string written to DestinationID persists until overwritten, even over a power
cycle. i.e. Saves the result to permanent cache and restores it to permanent cache
following a power cycle.
The following example demonstrates the effect of the Format String function. Using the
following Field ID contents:
Field ID Content Notes
3 ID: %s%s - %s The formatting string
4 001 Numeric data
5 ABC Text data
6 Failed Status
After the Format String (2, 3, 5, 4, 6) function has been processed leaves the following
in Field ID 2 (replacing the original contents):
Field ID Content Notes
2 ID: ABC001 - Failed The formatted string
The application developer should be careful in the choice of alerts in order not
to cause confusion with alerts already in use in the terminal.
2.2.6 No Action ()
This function performs no action;
Valid as a FORM, FORM FIELD, MESSAGE CHECK or EVENT CHECK function;
Its main use is preventing the operation of any Actions associated with the parent form,
when the field is in focus.
function does not reference a valid value, i.e '4400' or „4430‟, then the terminal will treat
this function as if it were the No Action function;
It is recommended that the Reset Property function with Property ID 18
(Radio_Stat_Direct) or 19 (Radio _Stat_Ready) is used in place of this function.
To guarantee correct SDA operation each SDA Action List must contain no
more than one Soft Key Function.
MESSAGE ADDRESS
LIST
Example
An example ADDRESS table:
Value Attribute
Dial String Dial Mode
ADDRESS 1 209906 Mode #1 Fixed Individual Address
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
A single address is defined for this Definition. It is a Fixed Individual Address.
Notes
Setting a Fixed Group Address Attribute with no Dial String will send the message to the
currently selected group.
This table may also be referenced from STRING LIST.
FIELD
STRING LIST
Example
An example CHECK VALUE table:
ID Field ID Value
1 1 PID 17
2 1 Source ISSI 18
3 1 10 19
4 2 PID 17
5 2 Source ISSI 18
6 2 10 20
CHECK VALUE 7 3 PID 17
8 3 Source ISSI 18
9 3 10 21
10 7 PID 17
11 7 Source ISSI 18
12 7 11 22
13 7 10 23
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
Notes
The Message Completeness Field ID is set as the SDS message is received, as follows:
If all parts of a Long SDS message (or a single SDS message) have been received it will
have a value of '1' representing 'Complete'.
If one or more parts of a Long SDS message have not been received it will have a value
of '0' representing 'Incomplete'.
In order to support more complex message checking the following are allowed as STRING
LIST values:
ANY - The comparison will always be successful if the field in question is present in the
message, regardless of the content of the field;
NON-ZERO - The comparison is applied to Binary and Numerical fields and will succeed
providing the field is present in the message and it has a value whose content does not
comprise of all zero bits;
Ranges of values - The comparison is applied to numerical field types and allows the
comparison to check against a list of values or range of non negative integer values,
including zero.
For example, it could have the following value string: 0, 4, 6, 91-110, 0x35.
Example
An example EVENT CHECK table:
Trigger Action
Event
Control ID
1 Power On - TMO Trigger Once 33
EVENT
Registration - ITSI Always 34
CHECK 2
Attach Trigger
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
The first EVENT CHECK table entry defines that whenever the terminal powers on in TMO
actions with ID 33 will be triggered once.
The second EVENT CHECK table entry defines that actions with ID 34 will be triggered
whenever (Always Trigger) the terminal successfully completes a Registration with ITSI
Attach.
The ACTION table shows that for the first event (Action ID = 33) an SDS Message is sent and
an Alert raised. For the second event (Action ID = 34) an Alert is raised.
Notes
An Event must only appear once in the EVENT CHECK table. Further occurrences are not
searched for if a first occurrence fails to trigger an action.
Event triggered SDAs are executed in the order they are triggered. They are queued until the
radio is able to process them. Reasons for queuing include waiting for the start up procedure
to complete and a form still being displayed from a previous SDA. If the queue, which has a
size of three, is full, any new events are discarded.
Event triggered SDAs have pre-emptive Form display priority over SDS triggered SDAs i.e.
the SDS triggered Form is closed as if the user had navigated away.
FORM FIELD
CHECK VALUE
FIELD STRING LIST
MESSAGE DEFN
LIST
Example
An example FIELD table:
NM LM
Max
Default Default Attributes
Length
String String
1 1 1 1 Fixed Text
2 0 0 140 Data Input, Secure
3 0 0 1 Fixed Text
4 0 0 140 Data Input
5 Fixed Text,
6 7 1
Underline
6 8 8 1 Fixed Text
7 9 9 1 Fixed Text
FIELD 8 10 10 1 Fixed Text
9 Fixed Text,
11 12 1
Underline
10 Fixed Text, Reverse
13 13 1
Video
11 Fixed Text, Reverse
14 14 1
Video
12 Fixed Text,
15 16 1
Underline
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
The first definition indicates a field with default text, the same in normal and large modes, set
by the first and second entries in STRING LIST. Its length is set to an arbitrary value (in this
case '1') as it is not a 'Data Input' field.
The next three definitions do not have default text. The first and last are allowed to be 140
characters in length as they are 'Data Input' fields. The first of the three, when displayed will
be a 'Secure' field.
The fifth field definition uses different default strings, a situation that can arise to cope with the
restricted number of characters that can be displayed in large mode.
Notes
A default string may be set to populate an editable field as a starting point.
Attributes:
Fixed Text, indicates that the field cannot be edited (used as a caption for example)
Data Input, indicates that the field can be edited when displayed on a form;
Reverse Video, allowing some information, when displayed, to stand out from other
information;
Secure, indicates that when the field is displayed, its contents are represented as a '*'
replacing each actual character;
Underline, as an alternative to Reverse Video, allowing some information, when
displayed, to stand out from other information;
Numerical, restricts input to the numbers 0 to 9 only. The field will be left aligned. This
attribute only restricts character entry; the field itself may be populated with any
characters as a result of a default or from data in a referenced SDS message.
When secure data is cached it has an associated lifetime. This defines the time, from when
the form containing the secure data is closed, that expires the data has to be re-entered. The
timeout is controlled by the terminal parameter [Secure Field Timeout] and ranges form zero
(do not cache) to 30 minutes.
There are special FIELDs which require no definition. They are referenced by name, being:
Message Completeness (of long SDS message);
OPTA;
Message Source ISSI (previously numbered 253);
Message PID (previously numbered 254).
Attributes are overridden if the field has an associated action (in FORM FIELD). The field will
be displayed as a 'button' (two line outline).
LIST ACTION
Example
An example FORM table:
Message Action
Name Attributes
ID ID
1 29 1 2 Saving Disabled, Caching Enabled
2 30 2 3 Saving Disabled, Caching Enabled
FORM
3 0 3 0 Saving Disabled, Caching Enabled
4 0 4 0 Saving Disabled, Caching Enabled
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
This FORM definition indicates that there will be four forms, two of which have no name
(name not required here as the form is only displayed as a result of an incoming message).
The second form will:
th
have a name taken from the 30 STRING LIST parameter set;
nd
use the information in the SDS Message as directed by the 2 parameter set in the
MESSAGE table;
when sent process the actions in the ACTION table that have an ID of '3';
and the form will not be saved if in the Inbox (when powered down) and may be
populated from cached data.
Notes
It is recommended that all forms do reference a name. It is essential for a form to have a
name if it is the basis of an outgoing message.
A form action will not be triggered if the currently selected field itself has an associated action.
If Action ID is set to '0', it will be necessary to attach the required action to a displayed and
selectable field.
The Cache: The cache is updated, when a message is sent when no actions are associated
with a form (or a field on a form) or by use of the 'Save To Permanent Cache' function. It
saves all fields on a Form. If 'Caching Enabled' is set the cache is used as a potential source
of data for this form. Data is sourced in the following order (if they exist / are enabled): from
the SDS Message, from the permanent cache, from defaults.
Note that cached secure data has an associated lifetime after which it is deleted and has to
be re-entered.
Name Description
ID A reference to the Form on which this field will be displayed. See below
for further information.
Field ID A reference to a specific (by position) parameter set in the FIELD table,
defining further parameters related to the field to be displayed
Action ID 0 - The action(s) are defined by the form (FORM - Action ID) and not
by this field, when the green telephone key is pressed
1-255 - This value is used to obtain a list of action(s) by finding all
entries in ACTION that match this value. These are processed in
turn when the green send key is pressed
XN 1-128
This is the „x‟ co-ordinate of the top left corner of this field, defined
in pixels, when in Normal mode
YN 1-65535 - This is the „y‟ co-ordinate of the top left corner of this field,
defined in pixels, when in Normal mode
WN 1-128
This is the width of this field, defined in pixels, when in Normal
mode
HN 1-6 for 3000 Series & 8200 Series, 1-7 for 8000/8100 Series
This is the height of this field, defined in terms of „lines of text‟,
when in Normal mode
XL 1-128
This is the „x‟ co-ordinate of the top left corner of this field, defined
in pixels, when in Large mode
YL 1-65535 - This is the „y‟ co-ordinate of the top left corner of this field,
defined in pixels, when in Large mode
WL 1-128
This is the width of this field, defined in pixels, when in Large mode
HL 1-4 - This is the height of this field, defined in terms of „lines of text‟,
when in Large mode
Navigation Order 0 - The field is not navigable
1-255 - This field is navigable. The order of the field 'tabbing' will be
numerical with the lowest number being selected first.
Completion Defines whether it is mandatory for this field to be filled in.
Mandatory The Completion Mandatory may take the following values:
Completion Optional
Completion Mandatory
Local Validation 0 - Local validation of this field not required
Rules ID 1-255 - This value is used to obtain a list of validation rule(s) by finding
all entries in VR LIST that match this value. These are processed in
turn when the user navigates away from the field or when the green
send key is pressed
FIELD
ACTION
FORM FORM FIELD
VR LIST
STRING LIST
Example
An example FORM FIELD table:
Action
Field
Order
Nav.
ID XN YN WN HN XL YL WL HL
ID
ID
6 2 13 0 5 5 116 1 5 5 116 1 0
7 2 15 0 5 20 55 1 5 25 116 1 0
8 2 7 0 65 20 55 1 5 43 116 1 1
9 2 16 0 5 35 55 1 5 61 116 1 0
10 2 8 0 65 35 55 1 5 79 116 1 2
FORM FIELD 11 3 17 0 5 5 116 1 5 5 116 1 0
12 3 18 0 5 20 116 1 5 25 116 1 0
13 3 10 0 5 35 116 1 5 45 116 1 1
14 4 17 0 5 5 116 1 5 5 116 1 0
15 4 10 0 5 20 116 1 5 25 116 1 1
16 4 11 0 5 35 116 1 5 45 116 1 2
. . . more columns:
Completion
Validation
Validation
Message ID
Mandatory
Rules ID
Local
Local
Help
ID
6 2 Completion Optional 0 0
7 2 Completion Optional 0 0
8 2 Completion Optional 0 0
9 2 Completion Optional 0 0
10 2 Completion Optional 0 0
FORM FIELD 11 3 Completion Optional 0 0
12 3 Completion Optional 0 0
13 3 Completion Mandatory 21 50
14 4 Completion Optional 0 0
15 4 Completion Optional 0 0
16 4 Completion Optional 0 0
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
The table above shows the definitions for three forms (as indicated by IDs 2, 3 and 4). Form 3
has three fields (Field IDs 10, 17 and 18), two of which are 'not navigable' (as they are a label
and a prompt text).
In addition Field ID 10 is
defined as mandatory (must be filled in)
when filled in validation rules from VR LIST which match the Local Validation Rules
ID (21) apply
th
local validation is supported by help text from the 50 entry in STRING LIST
No actions are defined and the form will be sent, assuming mandatory and validation tests
pass, when on any navigable field, by pressing the green telephone key.
When the form is displayed, the first field with focus will be the one with the lowest (non zero)
number, for example Field ID 7 for Form 2.
Notes
The UI layout uses a virtual screen which is then scaled to the physical pixels of the product
screen.
The width of the virtual screen is 128 pixels and form designs should ensure that the 'x'
coordinates and widths are set accordingly.
Similarly the height of the virtual screen is 64 pixels and form designs should ensure that the
'y' coordinates and heights are set accordingly.
If the whole of the width of a field cannot be displayed, it is not shown at all.
'y' coordinates are zero at the top of screen, and increase down the screen.
See Chapter 3 for further layout information.
For each Form Field - ID number, the Navigation Order value must either be zero or have a
unique non-zero number.
The maximum number of fields on any form is 20.
Mandatory completion fields are indicated by an icon (which is still displayed when the field is
filled in).
A field that has failed local validation rules is indicated by an icon. The icon is cleared when
the contents pass validation. Only fields where the user has entered data are validated.
Name Description
ID Lookup reference
Entry Type Indicates the type of data in Entry below.
Unsigned Integer
Address ID
Field ID
Form ID
Message ID
Entry Either a 32 bit unsigned integer value (Entry Type = Unsigned Integer)
or a byte reference ID to act as a lookup value to a table
Multiple parameter sets are referenced, by ID.
ADDRESS
PROTOCOL
FIELD
ACTION LIST
FORM
MESSAGE
Example
An example LIST table:
ID Entry Type Entry
1 1 Message ID 1
2 1 Address ID 1
3 2 Form ID 11
LIST
4 2 Form ID 22
5 3 Message ID 2
6 3 Address ID 1
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
This table could be used by a PROTOCOL table lookup to find which forms to offer on the
display. As an example, the PROTOCOL - FORM LIST ID could be '2' which would match
with the third and fourth entries. This would return these two parameter sets indicating that
the related forms are Form 11 and Form 22 (FORM information is indexed by position in the
table).
Similarly a request with ID equal to 3 (from an ACTION table) would in this case return
information relating to a message and its address. In the example table above a reference to
the second message definition (in the MESSAGE table) and the first address definition (in the
ADDRESS table) would be returned.
FORM
ADDRESS
MESSAGE DEFN
LIST
Example
An example MESSAGE table:
Address Message
PID Character Set
ID Defn ID
1 130 Latin ISO 8859-1 (8 bit) 1 4
2 130 Latin ISO 8859-1 (8 bit) 1 2
MESSAGE
3 130 Latin ISO 8859-1 (8 bit) 1 3
4 130 Latin ISO 8859-1 (8 bit) 1 1
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
There are four messages being dealt with in this Definition.
If the messages were sent, they would be sent:
Using a PID 130 (text message) header;
With a character set identifier before the payload;
With a payload as defined by the Message Defn ID (i.e. for the first message, using
the parameter sets in MESSAGE DEFN that have an ID of '4');
To an address defined in the ADDRESS table, in this case all messages being sent to
the first address definition in the ADDRESS table.
Notes
When Character Set is set to 'Customised Encoding Scheme' the 8 bit character set to use is
defined by terminal parameter [Text Coding Scheme 1].
For incoming messages with a PID of 2, 9, 132, 137, or 138, i.e text messages, the SDA
expects a coding scheme byte in the message. Other incoming messages should not contain
a coding scheme byte.
MESSAGE
FORM
MESSAGE CHECK
CHECK VALUE
ACTION
Example
An example MESSAGE CHECK table:
Message ID Form ID Check Value ID Action ID
1 3 3 1 0
2 4 4 2 0
MESSAGE CHECK
3 4 3 3 0
4 4 4 4 0
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
The check takes each row above in turn. So, firstly the incoming SDS Message is
deconstructed using the information in the third parameter set of the MESSAGE table. The
CHECK VALUE table parameter sets that have an ID of '1' are then compared to the
indicated parts of the message (see CHECK VALUE section for more information).
If any check fails the procedure moves on to the next line of this table (until the end of the
table), deconstructing the messages according to the Message ID and checking for a match
using the Check Value ID referenced information.
If a match is found (all checks in CHECK VALUE pass) then
the message is associated with the indicated FORM table (for subsequent display
purposes for example)
it is placed in the Message Inbox with its associated Form ID
and the actions indicated by the Action ID (referencing the ACTION table) are initiated.
Notes
Either a Form ID and / or an Action ID must be specified.
The incoming SDS Message is checked using each parameter set, in turn, until a match is
made. If no match is achieved the message is placed in the Message Inbox with no
associated Form.
Length Multiplier This defines the number of bits in each value defined in the Length
value:
Bits
Nibble (4 bits)
7-Bit (7 bits)
Byte (8 bits)
Word (16 bits)
Depends Upon This field references a Field ID defined in a previous entry in this
message definition table.
A value of zero means that this field is Not Conditional.
If it is non zero, it may be used for:
If the Type is set to 'Type 1: Variable Length' the indicated field
returns the Length (which is then multiplied by the Length
Multiplier value);
If the Type is set to 'Delimited' the delimiter will be the first 8 bits
of the indicated field (or first 7 bits for a 7 bit Character Size);
Otherwise, the indicated field is tested against the Depend Value
value to determine if this field 'exists' in the SDS Message.
Depend Value This is a reference to the STRING LIST table (by position) where the
string value used when handling conditional fields in this MESSAGE
DEFN entry.
If the „Depend Value‟ is set to a value of zero this means there is no
string value associated with this MESSAGE DEFN entry.
Delimiter Value This is only valid when the Type is set to „Delimited'.
It is a reference to a STRING LIST entry (by position) used to hold
the delimiting value for this field. The actual field value matched
depends on the STRING LIST Type - see 2.14 Data Types
Multiple parameter sets are referenced, by ID.
FIELD
MESSAGE MESSAGE DEFN
STRING LIST
Example
An example MESSAGE DEFN table:
ID
Character
ID Type
Field
Alignment
. . . more columns:
Multiplier
Character
Delimiter
Depends
Length
Depend
Value
Value
Size
Upon
ID Length
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
The first message definition, the parameter set where ID = 10, shows the message
consisting of four fields as follows:
1. A Delimited field, bit and right aligned, ISO 8859-1 encoded, with the delimiter defined
th
in the 11 parameter set of STRING LIST;
2. A Type 1: Fixed Length field, byte and right aligned, ISO 8859-1 encoded, with a
length of 256 bits;
3. As 2. but with a length of 96 bits;
th
4. As 1. but with the delimiter defined in the 24 parameter set.
Representing:
Field: 1 2 3 4
Description: A string and 32 characters 12 A string and
a delimiter characters a delimiter
Example: Start# abc . . . xyz ' test' End*
Note: Quotes only shown to indicate embedded spaces, they are not part of the string.
Note: The rest of the message is ignored and not used.
The second message definition, the parameter set where ID = 11, is similar to the first apart
from using different delimiter sources and the fourth field being Binary data.
The third message definition, the parameter set where ID =12, defines the following
message structure:
Field: 1 2 3 4
Description: A string # Length of A string Number
(delimiter) next string (16 bits)
(8 bits)
Example: Immediate # 10 'Location: ' 0x1234
Note: Quotes only shown to indicate spaces, they are not part of the string.
Consisting of 4 fields as follows:
1. A Delimited field, bit and right aligned, ISO 8859-1 encoded, with the delimiter defined
th
in the 13 parameter set of STRING LIST (in this case a '#');
2. A Type 1: Fixed Length field, byte and right aligned, with a length of 8 bits;
3. A Type 1: Variable Length field, byte and left aligned, with a length which is obtained
from Field 28 (includes a final space character in the example);
4. A Type 1: Fixed Length field, byte and right aligned, with a length of 16 bits (1 word).
Notes
The order of parameter sets in the table defines the order in the SDS Message. That is the
first entry represents the MSB in the message and the last the LSB in the message.
The link between the field on a form and the field in a message is achieved by them sharing
the same ID referencing the FIELD table.
Field ID:
When set to 'OPTA':
If an OPTA is not supported by the product the field generates a zero length string.
The Length and Length Multiplier should be set to that required by the OPTA,
otherwise the OPTA will be truncated or padded.
An OPTA is padded by the terminal parameter [Unused OPTA Character 7-bit
Mapping] if its Character Size is set to 'GSM 7-Bit', otherwise it is padded with 0xFF
('8-bit') or 0x00FF ('16bit'). 'Binary' and 'Numerical' Character Sizes are not supported
for OPTA.
Character Size cannot be set to 'Binary' or 'Numerical'
Systems that support OPTA typically require the first field of every message to be an
OPTA.
When set to 'Message Completeness':
A value '1' indicating 'Complete' is used for a new message.
If the message being sent is based on a received message the value will reflect the
received state of that message, a value of '1' if it was a single message or if all its
parts were received, a value of '0' if one or more of its parts were not received.
The field will be padded by zero bits if Character Size is Binary or Numerical and by
the equivalent value that represents the character for zero for all other Character
Sizes.
Types:
Type 1: Fixed Length, the length is specified in the definition;
Type 1: Variable Length, the length is defined in the SDS Message and is accessed
using the Depends Upon parameter;
Type 2, fields are preceded by a presence bit, and if present are of fixed length;
Delimited, the field continues until the designated (Delimiter Value) value. If the
Delimiter Value is zero then the field continues to the end of the message.
Character Alignment:
Type 2 data will be right aligned, Type 1 data may be right or left aligned;
If required the data will be padded with zeros (Null characters), or truncated.
Padding will be added at the start of the string if the field is right aligned or at the end of
the string if it is left aligned.
Fields that are to be GSM 7-bit encoded will be padded with a <CR> (00011012) first,
before padding with <SP>s (01000002). The first padding character will be a <CR>.
Other padding characters will be <SP> characters. For example 'Hello' when padded to 9
characters, left aligned, becomes 'Hello<CR><SP><SP><SP>'.
Fields will be truncated from the left if the field is right aligned and from the right if it is left
aligned.
The Character Size parameter defines how the field value is encoded into the message (and
vice versa). See Appendix B for information on how 7 Bit Text is packed into whole octets.
Note that if consecutive fields or fields and delimiters both use 7-bit encoding and are not
byte aligned, they are packed as if they are joined together into a single field. Otherwise
the fields are packed individually according to their encoding type. The fields are aligned
(as above) before they are joined.
The 'Customised Encoding Scheme' setting allows the mapping of the 8 bit data in the
message to 16 bit values for presentation on the terminal UI and in reverse for translating
data entered via the UI for encoding into the field. The mapping is defined in terminal
parameter [Transcoding Table 1]. Where a mapping is not possible the space character will
be used.
The length of a message element is obtained from the product of the Length value and the
Length Multiplier value. For example if Length is '10' and Length Multiplier is 'Byte'
(indicating 8 bits) then the actual length in the SDS Message is 80 bits.
For GSM 7-bit encoded data this 'Length x Length Multiplier' is the length of the original
text data i.e. it is in multiples of seven. It will be rounded down to a multiple of 7 if set
incorrectly. The original text data (after packing if required) are encoded into a string of
bytes as described in Appendix B.
The Delimiter Value value is ignored if this field is conditional (i.e. Depends Upon is non
zero).
Example
An example PROTOCOL table:
Name Form List ID
1 74 21
PROTOCOL
2 108 1
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
th
This example indicates that there will be two Families. Their names are given by the 74 and
th
108 entries in STRING LIST.
The Form List ID will reference the LIST table, which will have one or more entries with this
value. It will return a form number for each of these matches. This returned form number will
be used to access the FORM table which contains (by referencing STRING LIST) the form
names for each family.
Notes
Families will be displayed in this order on the tabs of the SDA card.
Each tab, when selected, will display a list of selectable forms.
FORM FIELD
CHECK VALUE
FIELD
MESSAGE DEFN
STRING LIST
FORM
PROTOCOL
ACTION
VR LIST
Example
An example STRING LIST table:
Type Value
1 8 Bit Text User ID:
2 8 Bit Text Password:
3 8 Bit Text Current Pwd
4 8 Bit Text New Pwd
5 8 Bit Text PIN:
6 8 Bit Text Current PIN:
7 8 Bit Text New PIN:
8 8 Bit Text FAILURE
9 8 Bit Text SUCCESS
STRING LIST 10 Numerical 130
11 Numerical 1,2,5
12 8 Bit Text #
13 Binary 0x0800
14 Binary 0x02
15 Binary 0x2300
16 Binary 0x0a
17 8 Bit Text Login
18 8 Bit Text PIN Change
19 8 Bit Text ANY
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
Items to note are:
For the Type = '8 Bit Text' rows - Any characters may be used;
In row 11 - The use of a range (for use by CHECK VALUE), indicating 1 or 2 or 5;
In row 12 - This item probably represents a delimiter string;
In row 14 - This may be an indication to use the second parameter set in the ADDRESS
table
In row 16 - The hexadecimal format must be used but will accept upper and lower case;
In row 19 - The pre-defined check value (see CHECK VALUE Notes).
Notes
Do not put addresses in this table, just the 'reference' to the ADDRESS table (by position).
Example
An example VR LIST table:
Entry ID Rule ID Rule Parameters ID
1 1 Date ddmmyy 0
VR LIST 2 2 Check Length 29
3 2 Alpha Only 0
The first two columns only exist to aid readability and are not needed in the table within the
Terminal and Radio Manager.
The VR LIST table above shows the definitions for two validation rules (as indicated by Entry
ID 1 and 2), each applied to a different FORM FIELD.
The first validation rule checks for a correctly entered date format.
The second validation rule checks that the entered data is both alpha text only and has a
length between 3 and 8 characters.
Notes
The Alpha Only validation rule considers the following Unicode characters to be valid:
0x0020 (Space)
0x0041 to 0x005A (Standard upper case)
0x0061 to 0x007A (Standard lower case)
0x00C0 to 0x00D6 (European characters)
0x00D8 to 0x00F6 (European characters)
0x00F8 to 0x00FF (European characters)
0x011E to 0x011F (Turkish characters)
0x0130 to 0x0131 (Turkish characters)
0x0150 to 0x0151 (Hungarian characters)
0x015E to 0x015F (Turkish characters)
0x0170 to 0x0171 (Hungarian characters)
0x0370 to 0x03FF (Greek characters)
0x0400 to 0x04FF (Cyrillic characters)
0x0600 to 06FF (Arabic characters)
0x20AC (Euro character)
0xFE70 to 0xFEFF (Arabic characters)
The Alphanumeric validation rule adds the following to the Alpha Only list:
0x0030 to 0x0039 (Numbers)
The following applies when more than one validation rule is applied to a field (i.e. multiple
Entry IDs have the same value):
The rule order is not important
The results of all rules of the same type are OR'd together to form true or false
results (allowing validations such as the field is between 10 and 20 OR between 50
and 60)
The results of all same type rules are AND'd together with the results of individual
rules
The resulting true or false is used to report validity
2.16 Data Types - Use of MESSAGE DEFN Char Size and STRING LIST
Type
Information presented on the UI may come directly from the STRING LIST table or may be
part of a message defined by a MESSAGE DEFN table. As explained below, how that data is
actually displayed depends on the source definition - Char Size for MESSAGE DEFN data,
Type for STRING LIST data.
Information encoded into a message, either from a STRING LIST or from the UI, will be
encoded using the Char Size parameter within the MESSAGE DEFN table.
2.16.1 STRING LIST Types - Used by UI, Check Values and Delimiters
The Types of Values in the STRING LIST tables may be 16 bit text, 8 bit text, 7 bit text,
Numeric or Binary.
16 bit text values are stored as Unicode strings and the others as 8 bit ASCII strings, with
Numeric being a base-10 value and Binary a hex value.
The following apply depending on where the STRING LIST value is being used:
On the UI
When displayed on the UI they will be displayed as defined.
As a Check Value
The actual value matched depends on the Type value in the STRING LIST table for that
entry. For example if the value is set to "130", depending on the Type set in STRING LIST,
this will match with the following values in the message:
Type Matches With
16 Bit Text 0x003100330030
8 Bit Text 0x313330
Numeric 0x82
Binary 0x130
0xB1190C
7 Bit Text (see Appendix B for conversion
rules)
As a Delimiter
The use of the delimiter referenced by the MESSAGE DEFN table also uses the STRING
LIST Type to define the value of the delimiter, as Check Value example above.
Numeric
The data will be treated as if it represents a numerical value in base 10, as follows:
Field Data Message Data (Hex)
“0x1234” 0x0
“1234” 0x4d2
“12abc” 0x0
“1382378863” 0x52656D6F
“4123456789” 0xF5C6F515
“4321456789” 0x0
“-45” 0x0
“Fred” 0x0
Note that the data will be treated as if it were zero if:
no value has been entered;
it contains invalid values;
32
it is out of range (0 to 2 - 1 incl.).
Binary
The data will be treated as if it represents a series of bytes represented in hex format, as
follows:
7 Bit Text
The data will be treated as if it represents a series of 7 bit ASCII strings, as follows:
Field Data Message Data (Hex)
“0x1234” 0x307C4C36A301
“1234” 0x31D98C06
“12abc” 0x3159583C06
“RJ5äù” 0x52656D6F00
“seventy” 0xF3B2BDECA6E71B
see Appendix B for conversion rules
Note that if the data is actually a 16 or 8 bit character it will have its most significant bits
stripped off and may become meaningless.
Numeric
The value of the field is considered to be a base 10 number and will be presented as such,
as follows:
Message Data (Hex) Field Data
0x4d2 “1234”
0x12abc “76476”
0x101943295 “26489493”
0xF5C6F515 “4123456789”
0x52656D6F “1382378863”
0x0 “0”
Note that only the least significant 32 bits will be taken into account and where no value is
present it will be treated as the value zero.
Binary
The value of the field will be presented as a right aligned hex string, as follows:
Message Data (Hex) Field Data
0x0 “0x0”
0x1234 “0x1234”
0x1234 “0x1234”
0x12abc “0x12abc”
0x52656D6F “0x52656D6F”
0xD68CC2E0B300C0C1003A “0xD68CC2E0B300C0C1003A
AC01B514AC00 AC01B514AC00”
7 Bit Text
The value of the field will be presented as a series of 7 bit ASCII characters, as follows:
Message Data (Hex) Field Data
0x31D98C06 “1234”
0x52656D6F00 “RJ5äù”
0xF3B2BDECA6E71B “seventy”
see Appendix B for conversion rules
Note that the above examples assume that the Message Data fits exactly into the field (or in
the case of 7 bit data is padded to the octet boundary by zeros).
The Character Alignment parameter, with larger fields, will have the effect of padding the
indicated end of the data with zeros (or in the case of 7 bit data, a <CR> and then zeros).
PROTOCOL
Name STRING LIST
Form List ID
MESSAGE CHECK
LIST FORM
Name
Message ID MESSAGE
FORM_FIELD Action ID
Attribute
ID
Field ID FIELD
Action ID
XN, YN, WN, HN
XL, YL, WL, HL VR LIST
Navigation Order
Completion Mandatory
Local Validation Rules ID
ACTION
Local Validation Help Message ID
EVENT CHECK ID
Event Function ID
Trigger Control Parameter List ID LIST
Action ID Name
MESSAGE CHECK
STRING LIST
CHECK VALUE
ID
Field ID FIELD
Value
STRING LIST
Type
FORM FIELD VR LIST FIELD
Value
Entry ID (ID) MESSAGE DEFN
Rule ID (Rule) FORM
Rule Parameters ID
PROTOCOL
ACTION
PROTOCOL FORM FIELD
ACTION LIST
ID ADDRESS
Entry Type
FIELD
Entry
FORM
Or MESSAGE
LIST ADDRESS
Value
FORM FIELD
MESSAGE Attribute
CHECK VALUE
PID
Character Set LIST
Address ID
Message Defn ID MESSAGE DEFN
ID
Field ID FIELD
Type Normal Default String ID STRING LIST
Character Alignment Large Default String ID
Character Size Max Length
Length Attributes
Length Multiplier
Depends Upon
Depend Value STRING LIST
Delimiter Value
3 LICENSING
The following functionality is only available when the radio is licensed by a Sepura Premium
Application Pack license:
Set Property action, see 2.2.13
Reset Property action, see 2.2.8
Soft Key Function action, see 2.2.13
Format String action, see 2.2.4
Event Triggers using the Event Check table, see 2.5
Completion Mandatory, see 2.8
Local validation, see 2.8 & 2.15
If a radio is not licensed and the customised SDA contains any of the above licensable
functionality the radio behaves as follows (as if no SDA is customised):
Incoming SDS messages are not matched and no forms, actions, etc. are triggered;
Event Triggers are ignored;
The SDA Template Card is blank;
4 WORKED EXAMPLE
4.1 Introduction:
In order to define a Short Data Application, the tables described in Chapter 2 need to be filled
in. Not all tables will be required in all designs, for example there may be no incoming checks
required.
The essential requirements are an understanding of the SDS Message structure and likely
contents coupled with an understanding of the operational requirements.
We will now work through an example in stages:
Introducing the scenario, followed by;
Stage 1: the definition of the outgoing SDS Messages;
Stage 2: selecting a form and the definition of the form contents;
Stage 3: the definition of the incoming SDS Messages;
Stage 4: the definition of the matching process to associate an incoming SDS Message to
a form;
Stage 5: the definition of that forms layout and content.
Note that this example does not use any local validation.
A system is in use in an airport. The SDS protocol allows the users to enter a flight number
which is sent to a fixed address. The status of that flight is then returned to the user from that
address. Further updates may be sent as the status changes.
All text is in 8 bit ASCII encoding.
All messages use PID 232.
The address is 123789
Message 3
Name: Response
Structure: #RESP#<flight number>#<status code>#<details>#
Notes: The possible <status code> values, a binary byte, are:
1 = 'On Time'
2 = 'Delayed'
3 = 'Boarding'
4 = 'Cancelled'
5 = 'Landed'
When the flight is 'Boarding' the message must be given special attributes to
highlight the urgency of this status.
The <flight number> and <details> fields are alphanumeric printable ASCII
free form text.
Using MESSAGE, MESSAGE DEFN, FIELD, ADDRESS and STRING LIST tables
The following values are likely to be required and are declared in the STRING LIST table:
Type Value
1 8 Bit Text #REQ#
STRING LIST
2 8 Bit Text #
Where the Type is 8 bit ASCII strings (for both) and the second STRING LIST item will be
used as the delimiter '#'.
The MESSAGE DEFN table could be as follows, defining the four message parts:
Field
Character
ID
ID Type
Alignment
. . . more columns:
Multiplier
Character
Delimiter
Depends
Length
Length
Depend
Value
Value
Size
Upon
ID
The Field IDs refer to the numbered entries in the FIELD table (by position).
The first row defines a fixed length, 5 byte, byte aligned, left justified message field (the
'#REQ#').
The other three rows define the three delimited, byte aligned, left justified message fields.
When entering the data into Radio Manager, the FIELD table must be filled in first
before those Field IDs can be used in the MESSAGE DEFN table.
Using FORM, FORM FIELD, FIELD, LIST, PROTOCOL and STRING LIST tables
And be selected from the SDA card with a Family name of 'Flights' ('FL' on the tab) and a
Form name of 'Request'
Note: Flight Number has been made the first field as it is likely that the User Name and
Password will be cached, see FORM table definition.
Design Notes:
The usable virtual screen width, taking into account the scroll bar, is:
121 pixels
In normal mode this is enough for typically 25 characters, and 15 in large mode.
The virtual screen height is:
64 pixels
The coordinates define the text position (top left hand corner), boxes, if required, are then
drawn around them.
A single height text box is:
13 pixels high in normal mode, and 18 in large mode
A double height text box is:
22 pixels high in normal mode, and 33 in large mode
Boxes around action fields (a navigable field with an associated action, a button for example)
and reverse video fields are drawn outside the text boxes making them larger.
It is recommended that x and y coordinates are no less than 5 and that the most right
definition (x plus width) is 121 or less. For boxes with actions (buttons) these should be 6 and
120 respectively.
A field is only displayed if the whole of that field (or the entire first line for a multi-line field) can
be displayed.
Using the definition above, the PROTOCOL (Family) table would be:
Name Form List ID
PROTOCOL 1 3 1
Indicating one Protocol family (Flights) which references the first parameter set in LIST.
It is now possible to extend the STRING LIST table with more strings:
Type Value
3 8 Bit Text Flights
4 8 Bit Text Request
5 8 Bit Text Request Flight Info
6 8 Bit Text Flight Num:
STRING LIST
7 8 Bit Text User Name:
8 8 Bit Text Password:
9 8 Bit Text Flight Number:
10 8 Bit Text Request
Once the form can be seen on the real screen it may be necessary to alter some of these
strings, in particular to shorten some in order to have longer editable fields.
A LIST table is now defined that links the Protocol - Form List ID to the yet be defined FORM
table.
ID Entry Type Entry
LIST 1 1 Form ID 1
This definition links the incoming ID (from PROTOCOL) with a FORM entry (Entry Type of
'Form ID') indicating to use the first parameter set in the FORM table.
If we were to adopt the approach of separating the request and the login, then:
There would be no change to the PROTOCOL table;
We would need to modify the STRING LIST to reflect the definition change (add
'Login' for example)
And add an entry in the LIST table (shown below), linking ID 1, via Entry Type = 'Form
ID', to a new Entry, 4 for example, indicating a fourth FORM definition.
ID Entry Type Entry
LIST 2 1 Form ID 4
The order in a LIST table defines the order the Forms are displayed on screen when
selecting a form.
If we were to adopt the approach of separating the request and the login, then:
There would be two entries in the FORM table, one for Request (as above) and one
for Login (shown below);
The Login would:
o share the same Message ID;
o point to an ACTION table entry defining the action to be 'Save To Permanent
Cache', i.e. the data is not sent, only stored;
o and enable caching.
Message Action
Name Attributes
ID ID
Saving Disabled &
FORM 2 34 1 2
Caching Enabled
Each of the items on the form is defined in the FIELD table, the new ones being:
NM LM
Max
Default Default Attributes
Length
String String
Fixed Text,
5 5 10 1
Underline
FIELD 6 6 9 1 Fixed Text
7 7 7 1 Fixed Text
8 8 8 1 Fixed Text
The editable fields already exist in the FIELD table, having been entered from the MESSAGE
DEFN stage above.
These four items are the fixed text titles and labels.
In some cases the normal and large mode strings are the same (same string reference
number) and in some cases different, reflecting the space restrictions.
The first definition above relates to the page title and has an underline attribute.
And the fields are referenced from the FORM FIELD table, together with layout information:
Action
Field
Order
Nav.
ID XN YN WN HN XL YL WL HL
ID
ID
1 1 5 0 20 5 90 1 25 5 80 1 0
2 1 6 0 5 20 42 1 5 25 116 1 0
3 1 4 0 50 20 70 1 5 45 116 1 1
FORM FIELD 4 1 7 0 5 35 42 1 5 70 116 1 0
5 1 2 0 50 35 70 1 5 90 116 1 2
6 1 8 0 5 50 42 1 5 115 116 1 0
7 1 3 0 50 50 70 1 5 135 116 1 3
This table defines, in this order, the title, flight name label, flight name data, user name label,
user name data, password label and password data.
The common ID indicates they are all part of the same Form, i.e. the first form.
The related fields are referenced by ID (to the position in the FIELD table).
None of the fields require specific actions.
The positioning data, at this stage, is a best guess based on the guidelines above (design
notes) and will be fine tuned when the form is tested.
The Navigation Order indicates that some fields (being used as titles / labels for example) are
not navigable (set to '0') and also indicates the order in which Up and Down will select the
others. The lowest non zero numbered field will be the first field to have focus when the form
is first displayed.
Three extra columns, not shown, define the following:
Completion Mandatory
Local Validation Rules ID
Local Validation Help Message ID
Local validation is not part of this example so all entries in these columns are zero.
When entering fields into FORM FIELD it is advisable to put the field being used as a
label field in the preceding 'slot' of the associated edit / display field, in order to assist
the display scrolling process in keeping them together.
When entering the data into Radio Manager, the FIELD table must be filled in first
before those Field IDs can be used in the FORM FIELD table.
4.5 Stage 3: Model incoming message structures, for checking and for
displaying
The check mechanisms will use these fields, in conjunction with the PID and Source ISSI, to
identify these messages (see Stage 4).
The expression of these messages as forms will also use these fields, together with fixed
strings (see Stage 5).
The following values are likely to be required and are declared in the STRING LIST table:
Type Value
11 8 Bit Text #ERROR#
STRING LIST
12 8 Bit text #RESP#
Where the Type is 8 bit ASCII strings and the strings will be used as part of the check
process.
The MESSAGE DEFN table is extended to include the two new message definitions:
Field
Character
ID
ID Type
Alignment
. . . more columns:
Multiplier
Character
Delimiter
Depends
Length
Length
Depend
Value
Value
Size
Upon
ID
The Field IDs refer to the new entries in the FIELD table defining the actual field parameters:
where Field ID 9 is the #ERROR#, 10 is <error code>#, 11 is <error text>#, 12 is
#RESP#, 13 is <flight number>, 14 is <status code> and 15 is <details>.
A new Field ID has been allocated to the incoming <flight number> to ensure it does not
share data with the outgoing <flight number>. In some situations it may be advantageous for
incoming and outgoing data to share a Field ID.
Other parameters are set similar to the preceding MESSAGE DEFN table except that the two
numbers (<error code> and <status code>) are defined as 'Numeric'.
No specific attributes are set at this stage. If required, they will be set in this table at the form
design stage (see Stage 5).
As all fields are not 'Data Input' fields, their lengths have been set to an arbitrary non zero
value. Enough space will be allocated, on demand, as the fields are filled from the message.
When entering the data into Radio Manager, the FIELD table must be filled in first
before those Field IDs can be used in the MESSAGE DEFN table.
Using MESSAGE CHECK, CHECK VALUE, STRING LIST, ACTION and LIST
tables
It is now necessary to consider the check processes required for the two incoming messages.
Taking into account the requirement to display the incoming message information, the
following check procedure will be adopted:
For the Error message:
A match is declared:
If the PID is correct;
and if the Source-ISSI is correct;
and if the first field is '#ERROR#';
and if the third field exists;
and if the second field is:
o a '1' (in which case associate the message to a form that displays the text
equivalent of the error code);
o or a '2' (in which case associate the message to a form that displays the text
equivalent of the error code).
This is defined as two checks.
The MESSAGE CHECK table therefore contains the following seven check start points:
Message ID Form ID Check Value ID Action ID
1 2 2 1 0
2 2 3 2 0
3 3 4 3 0
MESSAGE CHECK 4 3 5 4 0
5 3 6 5 1
6 3 7 6 0
7 3 8 7 0
The second row defines that the incoming message will be deconstructed using the second
MESSAGE table entry and the check sequence defined in the parameter sets of the CHECK
VALUE table where the ID equals 2. A successful match would associate this message with
the third form definition and no actions.
Other rows define similar checks with row 5 initiating an action definition if a match is found.
When entering the data into Radio Manager, the FIELD table must be filled in first
before those Field IDs can be used in the CHECK VALUE table.
Additional entries in STRING LIST are required to support the above, as follows:
Type Value
13 Numeric 232
14 Numeric 1
15 8 Bit Text ANY
16 Numeric 1
STRING LIST
17 Numeric 2
18 Numeric 3
19 Numeric 4
20 Numeric 5
These values represent the PID, the Source-ISSI address (reference to the ADDRESS table),
the ANY value (for the field presence check) and the values against which the <error code>
and <status code> are checked.
A similar approach could be adopted for the incoming Response messages (where the
<status code> is 1, 2, 4 or 5) with an even greater saving but at the expense of
readability. The required STRING LIST comparison value would be '1, 2, 4, 5'.
It may also be desirable for an incoming Error message to beep. This would be achieved
by an entry in the Action ID column of the MESSAGE CHECK table, either leading to the
existing Alert function or a new one.
The Error message incoming forms could look as follows (when shown full screen):
Where 'Unknown Username / Pwd' could be 'Unknown Flight Number' depending on the
<error code>.
The Response message incoming forms could look as follows (when shown full screen):
Where 'On Time' could be other texts depending on the <status code>, and would be
displayed in reverse video if Status Code = 'Boarding'.
See Stage 2 - Design Notes for specific layout information.
Care needs to be taken to ensure that the design is satisfactory when shown in the
tabbed Inbox, in particular in Large Mode when only the first two lines can be seen.
From the above the STRING LIST table can be extended with the following:
Type Value
21 8 Bit Text Flight Request Info
22 8 Bit Text Flight Info
23 8 Bit Text ERROR
24 8 Bit Text Unknown Username / Pwd
25 8 Bit Text Username / Pwd
26 8 Bit Text Unknown Flight Number
STRING LIST
27 8 Bit Text Flight Number
28 8 Bit Text On Time
29 8 Bit Text Delayed
30 8 Bit Text Boarding
31 8 Bit Text Cancelled
32 8 Bit Text Landed
A FORM table is required to define the seven forms outlined above, and referenced (by
position) from MESSAGE CHECK as forms 2 to 8:
Name Message ID Action ID Attributes
2 0 2 0 Saving & Caching Disabled
3 0 2 0 Saving & Caching Disabled
4 0 3 0 Saving & Caching Disabled
FORM 5 0 3 0 Saving & Caching Disabled
6 0 3 0 Saving & Caching Disabled
7 0 3 0 Saving & Caching Disabled
8 0 3 0 Saving & Caching Disabled
Each form is linked to the appropriate MESSAGE table parameter set (by the Message ID) in
order to obtain the message definition, has no actions and is not saved when the terminal is
powered off.
In this example the message definition is the same as the message check message definition.
It may be required to check against one message definition but display that message using
another definition. The table above would allow that situation to be defined.
New displayable items need to be defined in the FIELD table, essentially in this example the
fixed texts:
NM LM
Max
Default Default Attributes
Length
String String
Fixed Text,
16 21 22 1
Underline
Fixed Text, Reverse
17 23 23 1
Video
18 24 25 1 Fixed Text
19 28 28 1 Fixed Text
FIELD
20 29 29 1 Fixed Text
Fixed Text, Reverse
21 30 30 1
Video
22 31 31 1 Fixed Text
23 32 32 1 Fixed Text
24 26 27 1 Fixed Text
Where the referenced strings are in the STRING LIST table and are displayed with the
indicated attributes.
Finally the FORM FIELD table, referencing the fields for each form, defining the layout:
Action
Field
Order
Nav.
ID XN YN WN HN XL YL WL HL
ID
ID
8 2 16 0 20 5 90 1 25 5 80 1 0
9 2 17 0 40 20 40 1 30 25 60 1 0
10 2 18 0 5 35 116 1 5 45 116 1 0
11 2 11 0 5 50 116 3 5 65 116 3 1
12 3 16 0 20 5 90 1 25 5 80 1 0
13 3 17 0 40 20 40 1 30 25 60 1 0
14 3 24 0 5 35 116 1 5 45 116 1 0
15 3 11 0 5 50 116 3 5 65 116 3 1
16 4 16 0 20 5 90 1 25 5 80 1 0
17 4 6 0 5 20 42 1 10 70 10 1 0
18 4 13 0 50 20 65 1 5 20 116 1 1
FORM FIELD 19 4 19 0 50 35 65 1 5 40 116 1 0
20 4 15 0 5 50 116 3 5 65 116 3 2
5
6
7
36 8 16 0 20 5 90 1 25 5 80 1 0
37 8 6 0 5 20 42 1 10 70 10 1 0
38 8 13 0 50 20 65 1 5 20 116 1 1
39 8 23 0 50 35 65 1 5 40 116 1 0
40 8 15 0 5 50 116 3 5 65 116 3 2
This table defines the contents of the seven forms.
For the first two groups (IDs 2 and 3), the Error message forms, the contents of each group
are (in this order): the title, the ERROR text, the <error code> equivalent text and the <error
text>.
For the next five groups (IDs 3 to 8, sets 5, 6 and 7 not shown), the Response message
forms, the contents of each group are (in this order): the title, the Flight Number label (normal
mode only), the <flight number>, the <status code> equivalent text and the <details>.
The definition of the sets where the ID is 5, 6 or 7 is identical to the ID sets above and below,
except that the <status code> equivalent text is defined by Field IDs 20, 21 and 22
respectively.
Note that the Flight Number label (see row 17 for example) has been hidden in large mode by
placing it under the <details> definition (see row 20).
As before, no actions are required and the positioning data is provisional until the forms can
be tested.
If actions were required, they would be defined in the ACTIONS and LIST tables.
As before local validation is not required and the contents of those columns (not shown) are
zero.
When entering the data into Radio Manager, the FIELD table must be filled in first
before those Field IDs can be used in the FORM FIELD table.
Variation
If the approach described in Stage 4 - Variants were adopted, then only three forms would
be needed here, one for the incoming Error message, one for the incoming Response
message when the <status code> is 'Boarding' and one for other incoming Response
messages.
Other action functions could also be used to, for example:
Display the flight number on the top line of the display under certain
circumstances;
Delete the messages after they have been read / displayed;
Create further forms or response forms that could be navigated to.
4.8 Conclusion
To extend the above example, for example to add further protocols / families, follow the
procedure outlined above for each addition. Each addition can then be tested in isolation
making the process of identifying problems easier. With experience it may be time saving to
attempt the definition in one pass.
ID driven tables do not have to start at one and any byte values may be used, in any
order.
5 TERMINAL CONSIDERATIONS
For terminal operation refer to the Terminal User Guide.
The following terminal operation design issues should be noted:
The UI design layout uses a virtual screen of 128 wide by 64 high. This screen is
mapped to the product physical screen when in use.
Large mode and normal mode displays will need independent form designs (strings,
sizes, positioning, etc.) but will share a common navigation order.
When in Large mode it may be necessary to bring important information to the top
line as only that line can usually be seen when navigating the Inbox. A second line
can be seen if placed close below the first.
6 GLOSSARY
Term Description
ETSI European Telecommunications Standards Institute
OPTA Operational Tactical Address
PID Protocol Identifier
SDA Short Data Applications
SDS Short Data Services
SwMI Switching and Management Infrastructure
TETRA Terrestrial Trunked Radio
Note that when packing, if the last byte is to be padded with seven '0's then it is padded with a
<CR> (00011012) instead.