MTB-00001-06 TP9400 API Protocal Manual
MTB-00001-06 TP9400 API Protocal Manual
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Scope of Manual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Alert Notices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Associated Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Publication Record . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1 CCDI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1 Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Serial Ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.1 Data Characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
1.2.2 Logic Level Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
1.2.3 GPS Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 Before Operating . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 CCDI Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6.1 XON/XOFF Software Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.6.2 Hardware Flow Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7 CCDI Transparent Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7.1 Entering Transparent Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7.2 Exiting Transparent Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7.3 Transparent Mode Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.8 Command Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.8.1 Entering Command Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.8.2 CCDI Command Prompt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.8.3 CCDI Command Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.8.4 Restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.8.5 Calculating the CCDI [CHECKSUM] . . . . . . . . . . . . . . . . . . . . . . . . 18
1.9 Commands to the Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.9.1 CANCEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.9.2 DIAGNOSTICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.9.3 DIAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.9.4 FUNCTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.9.5 GO_TO_CHANNEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.9.6 LOCATION_SERVICES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.9.7 QUERY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.9.8 SEND_SDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.9.9 TRANSPARENT (FFSK and P25) . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.10 Messages from the Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.10.1 ENCRYPTION_CKR_LIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.10.2 ERROR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2 CCR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.1.1 Configurable Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.1.2 Potential Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.2 Programmable Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.2.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.3 Command Protocol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.4 Command Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.4.1 Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.4.2 Calculating [CHECKSUM] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5 CCR Mode Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.1 Entering CCR Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.2 CCR/CCDI Mode Independence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.3 CCR Mode Activated. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.4 CCR Mode Busy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.5 Blocked Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.5.6 CCR Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.5.7 CCR Response Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.5.8 Exiting CCR Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.6 CCR Positive Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.7 CCR Negative Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.7.1 Invalid CCR Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.7.2 Validation Checksum Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.7.3 Invalid Validation Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.7.4 Validation Parameter Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.7.5 Radio Busy Message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.7.6 Command Not Accepted Message. . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
2.8 CCR Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.8.1 Summary and Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.8.2 Go to Receive Frequency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.8.3 Load Transmit Frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.8.4 Set Volume Level. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.8.5 Receive CTCSS Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.8.6 Transmit CTCSS Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.8.7 Receive DCS Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.8.8 Transmit DCS Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.8.9 Encode Selcall Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.8.10 Set Selcall Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.8.11 Set ANI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.8.12 Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Scope of Manual
This manual contains reference information about the Tait Radio API and
the P25 Protocol API for TM9400 and TP9400 radios.
The Tait Radio API consists of CCDI (version 3.06 or later) and CCR. To
enable the Tait Radio API, the TMAS060 SFE is required for mobile radios
and the TPAS060 SFE is required for portable radios.
The P25 Protocol API adds additional commands to CCR (see “P25 Signal
and Position Reporting Commands” on page 75, and “P25 Protocol
Commands” on page 77). To enable the P25 Protocol API, the TMAS061
SFE is required for mobile radios and the TPAS061 SFE is required for
portable radios.
The CCDI and CCR features described in this manual are not available
for use in the TM9435, TP9435 or TP9440 radios.
Alert Notices
Please follow exactly any instruction that appears in the text as an alert.
An alert provides necessary safety information as well as instruction in the
proper use of the product. This manual uses the following types of alert:
This alert is used to warn about the risk of data loss or corrup-
tion.
Associated Documentation
Technical notes are published from time to time to describe applications for
Tait products, to provide technical details not included in manuals, and to
offer solutions for any problems that arise.
Technical notes are available in PDF format from the Tait support website.
Consult your regional Tait office for more information.
5 October 2016 Added PTYPE 2E (Talker ID), 38 (Audio output change), 39 (Mic audio
change), and 3A (Call terminated) to PROGRESS messages
Corrected LOCATION_SERVICES_RESPONSES
2 December 2014 Corrected serial port information (baud rates, PPP port, GPS port)
Corrected references to programming application
Added [SIZE] and [CHECKSUM] to DIAGNOSTICS command
Added subfunction 7 (set transmit power level) to FUNCTION.
Added P25 Phase 2 information.
Abbreviation Description
The radio is the DCE and is connected directly to the DTE, usually a PC,
via the serial port.
PC PC
Terminal serial port serial port Terminal
Application Application
The over-air data rate for FFSK is 1200 or 2400 bit/s. The maximum over-
the-air-rate for the P25 air-interface is 4.3 kbit/s.
1.1 Compatibility
This manual describes CCDI version 3.06 and later.
Heavy use of the microphone port for data transmissions can inter-
rupt the control head and radio torso communications, causing
radio failures. It is recommended to use the microphone port for
testing only and to use the Auxiliary or Internal Options port for
deployment.
Only one of these ports can be used for CCDI transmission and reception
at any time. The port is selected in the Tait Radio API form, Port Setup tab
of the programming application. Select “Mic”, “Aux”, “Internal Options”
or “PPP”.
■ Microphone: The radio will transmit and receive data via the MIC_TXD
and MIC_RXD lines.
■ Auxiliary: The radio will transmit and receive data via the AUX_TXD
and AUX_RXD lines.
■ Internal options: The radio will transmit and receive data via the
IOP_TXD and IOP_RXD lines. This connector is used to fit an internal
options board into the radio.
■ PPP: The radio will transmit and receive data via the PPP protocol layer.
Portable Only the accessory connector is available for CCDI asynchronous serial
communication with the radio. The port is selected in the Tait Radio API
form, Port Setup tab of the programming application. Select “Acc” or
“PPP”.
■ Accessories: The radio will transmit and receive data via the
ACC_TXD and ACC_RXD lines.
■ PPP: The radio will transmit and receive data via the PPP protocol layer.
1.4 Limitations
Some data applications require extended transmission times. This
may be for larger file transfers or for real-time telemetry informa-
tion. This may put undue stress on the radio transmitter and care
must be taken to control transmission times using flow control.
Refer to “Hardware Flow Control” on page 13.
1.5 Programming
For information on the parameters of the programming application, refer to
the Help of the programming application.
Flow control should only be needed when the amount of data to send is
larger than the radio’s buffer (600 bytes).
The XOFF character is sent when there is less than 35 bytes of empty space
in the buffer.
The XON character is sent when XOFF had previously been sent and there
is now less than 10 bytes of data in the buffer.
RTS The RTS line has been implemented as a “Ready to Receive” line as per
RS-232-E.
When the RTS line is inactive the radio will not output any serial data.
It will buffer any data and output it when the line is activated.
The RTS line does not stop the radio from receiving data across the
air so leaving this line inactive for any length of time could cause the
buffer to overflow and for data to be lost.
CTS The CTS line is deactivated when there is less than 35 bytes of empty space
in the buffer.
The CTS line is activated when the CTS line had previously been
deactivated and there is now less than 10 bytes of data in the buffer.
If the radio default is set to Transparent mode at power on, the default
escape character is “+”.
Transparent Mode Transparent mode data is packetized into data blocks before it is sent over-
Packetization air. The start and stop bits are removed and a header is sent at the start of
each data block.
time...
flow flow
data block 1 data block n
control control
lead-in delay lead-out delay
HEADER
Lead-In HEADER FFSK data block . . . . CRC HEADER FFSK data CRC Lead-Out
Delay 6 bytes max 46 bytes 2 bytes 6 bytes block 2 bytes Delay
max 46 bytes
P25 Air-Interface The P25 air-interface data transmission format can be confirmed or
Format unconfirmed. For more information, refer to TIA-102.BAAA.
Effective Over-Air The effective over-the-air data rate is lower than the set data rate.
Data Rate
For more information, refer to Technical Note TN-855-AN TM8000 and
TB7100 Data Modem Facilities.
Lead-In Delay The lead-in delay begins after the transmitter key-up time. It gives the
receiver(s) at the other end time to open before data is sent.
When data is detected at the radio’s input buffer, the following occurs:
■ The transmitter keys up.
■ A carrier is sent from the transmitter. When the carrier reaches its full
potential, the lead-in delay begins.
■ If the receiving base station is set to Repeater mode, the carrier is
This sequence is repeated with as many base stations as are in the chain.
The optimum length of the lead-in delay should be set keeping in mind the
number of base stations that need to be activated before any data is sent.
The lead-in delay must also allow for subaudible signaling decoding, if it
is enabled, when used in conjunction with FFSK data.
1.8.4 Restrictions
■ All characters in a message are printable ASCII.
■ Where numeric values are represented in ASCII hex notation (two
characters per byte), characters A to F are upper case.
■ The minimum length of a command packet is 5 characters. For example
q002F is the QUERY command where [SIZE] = 00 as there is no
[PARAMETERS] field required.
■ The maximum length of the [PARAMETERS] field is 255 characters.
The maximum length of the command packet is therefore 260
characters.
2. Retain bits 0 to 7, discarding any higher order bits resulting from the
summation.
4. Convert the binary number into two ASCII hex digits, MSD first.
Example s0D050800TESTHi!DA
2. Retain bits 0 to 7, discarding any higher order bits resulting from the
summation.
26h
3. Form the two’s complement of the remainder.
26h = 0010 0110
two’s complement = 1101 1010
4. Convert the binary number into two ASCII hex digits, MSD first.
1101 1010 = DA
Checksum Software A software application is available from Tait Technical Support which will
Application calculate the checksum for any given command and parameters.
In all cases, if a command is received without error by the radio and all
parameters are valid, the command is executed.
[CANCEL_TYPE] Function
0 Cancel Call
(cancel call) In conventional mode, Cancel can do the following:
■ clear down a call
■ cancel deferred calling
■ take the radio out of emergency operation if in
Emergency Tx/Rx cycles by resetting the radio
In trunked mode, Cancel can do the following:
■ act as though the front panel ‘Cancel’ key has been
pressed.
1.9.2 DIAGNOSTICS
The DIAGNOSTICS command provides access to report and control
diagnostic information from within the radio (what, when, & why).
The diagnostic commands can only be issued when CCDI Diagnostic
Mode has been enabled in the radio (f03061A0). If Diagnostic Mode has
been disabled, these commands will be ignored.
[DTYPE] [NUMBER_STR]
4 subscriber unit ID (1 to 16777214)
(P25 individual call)
5 Group ID (1 to 65535)
(P25 group call)
6 [SERVICE TYPE],[TARGET],[PARAMETER]1
(P25 services) [SERVICE TYPE] [TARGET] [PARAMETER]
1 = Call alert SUID (decimal)
2 = Radio check SUID (decimal)
3 = Radio inhibit SUID (decimal)
4 = Radio uninhibit SUID (decimal)
5 = RUM SUID (decimal) Tx time (0 to 20)
6 = Message SUID (decimal) Message number (1 to 16)
7 = Status query SUID (decimal)
8 = Status update SUID (decimal) Status number (1 to 16)
9 = Emergency alarm SUID (decimal)
1. [PARAMETER] is only added if needed
The DIAL command initiates the calling process only. The call may
take some time to get through, especially if the channel is busy or the
system heavily loaded. The receiver will return a prompt as soon as the
DIAL command is accepted, but the PC may have to wait for a PROG-
RESS message advising successful call set-up before proceeding.
After power on, this parameter value is defaulted to “Enable All User
Controls”.
2. The “Receiver audio mute control” function will request or cancel its
request for a “CCDI mute” of the RU. This mute request will affect
the mute state of the RU and can only be overwritten by the “Squelch
Override” of the RU.
After power on, this parameter value is set depending on 'Ignore Subau-
dible Signaling' option value.
Character Function
0 Send current position
1 Acknowledge emergency
2 Poll radio for location
3 Consolidated location logs
Character Function
0 Individual call ID
2 Broadcast call
3 As defined in radio database
8 1 MS Unit ID
(known terminal
identifiers) 7 IP address
Example s0B0A00008001<0x00>21
This message polls GPS information from radio
00008001 to the dispatch address, with 20ms
lead-in delay through current channel.
s130A00008001<0x08>1234567883
This message polls GPS information from radio
00008001 to the address 12345678, with 20ms
lead-in delay through current channel.
[MODE] Function
Examples t01zB1 a command requesting that the radio be put into Transparent
mode. The escape character specified here is “z”
(ASCII code = $7A).
t02z080 enter FFSK transparent mode, with the escape character set to
‘z’.
GET_SDM s Get original format SDM data (used to poll Analog conventional
GPS information) Digital conventional
0 01 Unsupported Command
(Transaction Unsupported command errors can arise when the PC
Error) expects a later version of CCDI than is attached and
attempts to use a command which is not recognized by
the radio.
02 Checksum Error
A checksum error indicates that the checksum
calculated by the radio did not match the one received in
the command packet.
03 Parameter Error
Parameter errors encompass values out of range or
missing fields.
06 Command Error
The command has not been accepted as the radio is not
configured to accept this command or execution of the
command will interfere with current radio operation.
Example: An SDM was sent but SDMs are not enabled
in the programming application.
1 Fatal system error - contact your regional Tait office
(System
Error)
Example e03003A5 This message indicates that the parameters of the currently
received message are incorrect.
Examples s002D This message indicates that the radio has no SDM data
available.
Character Function
1 Conventional radio
5 P25 radio
6 DMR radio
Notes ■ The value of [VERSION] = 01.01 is reserved for the first release of
CCDI firmware implementing the command protocol described in this
document. Subsequent enhancements and major upgrades will
increment this number accordingly. Note this may not be the current
value.
■ An example of the MODEL response message would be:
The PROGRESS message advises the PC of the radio status when some
significant change of state in the radio occurs (typically during call
processing). PROGRESS messages are not sent by the radio while the radio
is in Transparent mode.
Notes
10. The RADIO REVIVED (18) progress message indicates that the RU
has been revived.
Example n08190011898D This message indicates that the RU has serial number
19001189.
1.10.7 RADIO_VERSIONS
Solicited.
01 Software Version
02 Database Versions
03 FPGA Version
Example v1200TMAB12-H500_010115
This message indicates that the RU has a model name of
TMAB12-H500_0101.
The RING message advises the PC that an incoming call has been received.
Character Function
0 Selcall
1 Undefined
2 Type 99
4 P25 call
■ The RING type is a four character string qualifying the type of call
received.
4 SDM received
[TYPE4] 0 Services
1 Call alert
2 Radio check
3 Radio inhibit
4 Radio uninhibit
6 Message
7 Status query
8 Status update
A P25 acknowledgement
■ [STATUS] is a two digit string representing the received status for status
calls. If a [STATUS] value is not received, then [STATUS] will be “FF”.
■ [CALLER_ID] is a caller’s ID which is optional and of variable length.
If the ID is different to the radio’s ID, the destination ID is placed in
front of the caller ID, separated by a “-”. This required Selcall output to
be enabled using the FUNCTION command. Refer to “FUNCTION” on
page 23, [FUNCTION]=0, [SUBFUNCTION]=3.
On P25 conventional, the [Caller_ID] is the "<Receivers P25 ID
(decimal)>-<Senders P25 ID (decimal)>-".
Location service responses are given for all received locations. It is valid
for analog and digital conventional RUs.
Character Function
0 Normal priority
1 Emergency/Priority
2 Voice attached
■ [ID] is an 8-digit field containing the ID of the radio that this location
belongs to. ID is a decimal number.
■ [LOCATION_TYPE] is a single character representing the type of
location that is contained in the [LOCATION] parameter:
Character Function
0 Default
1 Location logging
Example l500000012340$GPRMC,214744,A,3507.1250,S,04418.8890,E,005.0,31
8.0,270710,000.0,E*6007
An NMEA string received with normal priority from the radio ID
1234.
l501167772140$GPRMC,214744,A,3507.1250,S,04418.8890,E,005.0,31
8.0,270710,000.0,E*60ED
An NMEA string received with emergency priority from the radio
ID 16777214.
1.10.10 TRANSACTION OK
The Transaction OK response is a single ASCII full stop character (2Eh).
This message is sent when the radio receives a command from the PC and
confirms that the command has been received.
2.1 Introduction
Overview This section provides details of the Computer-Controlled Radio (CCR)
protocol. It describes the radio to Data Terminal Equipment (DTE)
protocol. This is an advanced radio control feature.
All serial ports on the radio support CCR (Microphone, Auxiliary and
Internal Options).
The CCR mode is a sub-mode of CCDI. Entry into CCR is via a CCDI
command (“f0200D8”). Once, in CCR mode the radio will accept serial
CCR commands and will no longer process CCDI commands.
Benefits Most of the radio functionality can be controlled by the external device
operating over a serial communications link. This allows system
integrators to develop their own intelligent control device. They can
develop complex solutions with a low cost RF platform.
In essence, a radio which has access to all the channels in its operating
range could be made. The limit is no longer in the mobile but in the external
intelligence driving it. A wider range of methods can be employed to alter
or modify the way the radio is controlled by the user; a step forward in
control evolution.
Channel information:
■ Tx/Rx frequencies
■ Tx & Rx CTCSS/DCS frequencies
■ Tx power level
■ Channel bandwidth
■ Radio unit ID
■ Talkgroup
■ P25 modulation
■ Receive NAC value
■ Transmit NAC value
Other features:
■ Audio volume level
■ Enable/disable monitor
■ Signal strength
■ P25 Protocol API
2.2.1 Requirements
Parameter Value
Baud rate 2400, 4800, 9600, 14400, or 19200, 28800, 38400
or 115200
Number of data bits 8
Parity None
Number of stop bits 1
The radio will, upon entry to CCR, inherit programmable parameters from
the channel that was active when CCR was entered. Modifications while in
CCR mode to channel/network characteristics will be compared to this
baseline. All CCR changes are temporary, nothing is saved to the database,
therefore they are lost on power cycling.
All CCR mode message packets take the following general form:
[IDENT][SIZE][PARAMETERS][CHECKSUM]<CR>
Where:
Parameter Value
[IDENT] is the message identifier. Identifiers are single ASCII
characters which categorise the message type
[SIZE] is the number of characters which make up the
[PARAMETERS] field. [SIZE] is an 8-bit number expressed in
ASCII-hex notation (two characters)
[PARAMETERS] is an optional field, depending upon the command. Parameter
values are generally character strings unless explicitly stated
otherwise. Parameter type is dependent upon the command -
there is no explicit type definition.
[CHECKSUM] is an 8-bit checksum of the [IDENT], [SIZE] and
[PARAMETERS] fields. It is expressed in ASCII-hex notation
(two characters)
<CR> is the packet terminator. It is the ASCII “carriage return”
character (0Dh).
2. Retain bits 0...7, discarding any higher order bits resulting from the
summation.
4. Convert the binary number into two ASCII-hex digits, MSD first.
6. Retain bits 0 to 7, discarding any higher order bits resulting from the
summation.
26h
8. Convert the binary number into two ASCII hex digits, MSD first.
1101 1010 = DA
CCR mode is entered from CCDI with the function zero command,
“f0200D8”. This command is described in the CCDI specifications.
CCDI and CCR are independent from each other in that commands and
responses for either command interpreter can only be processed in its own
mode. There are, for instance, no CCDI progress messages when the radio
is in CCR mode.
The radio sends the string “M01R00” to the DTE when CCR mode is
activated.
It is possible to program an output line for busy detect status in CCR mode.
CCR mode denies the following functions (that are available in user mode)
and indicates them as invalid if they are attempted from a front panel or
programmable input:
■ Channel selection
■ Scanning
■ Emergency
■ SDM (No GPS)
■ User mode calls:
■ No call setups with the front panel controls, programmable I/O or
PTT
■ No selcall alerting for identities defined in the database
CCR is intended for headless radio units. Third parties can, upon
integration, add their own implementations for things like scanning and
selcall alerts.
When a radio is reset or when CCR returns to CCDI and the channel is
changed, nothing is saved from the current CCR session to the next power
up. Third party devices can check that the radio is alive with the pulse
command and “reprogram” it when a power outage has been detected.
The receive frequency in CCR mode can be changed at least every 20ms.
When exiting CCR mode, the radio reboots. For more information, refer to
“Exit CCR Mode” on page 80.
Response +ssxcc
Where:
Parameter Value
+ ASCII ‘+’ character indicates that the command was accepted
ss ASCII hex number ss is the size of the ack (always “01”)
x echoes back the command identity, the first letter (R, T, A, B, S,
M…)
cc ASCII hex number cc is the checksum
Effect An ACK response is sent back when a command has been accepted, the
radio does not wait until the command has been executed. The ACK may
be delayed, in some cases, but usually it is sent back immediately.
Response -ssrrxcc
Where:
Parameter Value
- ASCII ‘–’ character indicates that the command was rejected
ss ASCII hex number ss is the number of characters for parameters
rr indicates the reason for rejecting the command as follows:
■ ‘02’ Checksum error
■ ‘01’ Invalid command
■ ‘03’ Parameter error in command
■ ‘05’ Radio is busy
■ ‘06’ Command is not accepted
x echoes back the command identity, but only if the checksum in the
command was correct
cc ASCII hex number cc is the checksum
Effect The implementation exits the validation as soon as an error has been struck
- it will not check the parameters if the command does not pass the
checksum test.
If the input string does not have the correct checksum, a checksum error is
immediately reported and no further checks are done.
If the input string passes the checksum test but the identity contained is not
a recognised CCR command, an invalid command is reported.
If the input string passes the general message format but not the command
specific tests, a parameter error is sent. For details on validation rules see
the specific commands.
■ data length check
■ range check on message data
■ correct sequence of commands
If the input string passes both the general and command specific validation
criteria, it is processed only if the following conditions are true:
■ Radio is not in transmitting state
■ Radio is not busy processing the last sent command
The radio rejects the commands and returns the busy error code in these
instances.
Some commands trigger sequence errors if they are sent when the radio
cannot process the command, for example:
■ Radio is attempting to use a selcall command when there is no selcall
configuration defined.
This error is, for instance, sent if a selcall command is received, but the
CCR channel is not activated with a network using selcall signaling.
The messages in the following table are sent from the DTE to the RU.
Description On receipt of this command, the radio checks the format and does a range
check on the frequency. If it is valid, the radio sends an ACK response and
then initialises the synthesizer with the new frequency. One should allow
20ms for the synthesizer to settle at the new frequency. If the command is
invalid, a NAK response will be sent and the receiver will remain at the last
selected frequency. If the radio is transmitting then a NAK response will
also be sent.
Command Rssxxxxxxxxxcc
Where:
Parameter Value
R ASCII letter R denotes the go to Receive frequency
ss ASCII hex number ss is the number of characters for parameters
(“08” or “09”)
xxxxxxxxx ASCII number xxxxxxxxx is the receive frequency, as follows:
■ Minimum is a number representing the bottom of the radio
model frequency band
■ Maximum is a number representing the top of the radio model
frequency band
cc ASCII hex number cc is the checksum
Effect This command has immediate effect with the receiver retuning to this
channel. If the synthesizer is out of lock then a NAK response will be sent.
Description On receipt of this command, the radio checks the format and does a range
check on the frequency. If it is valid, the radio sends an ACK response. If
the command is invalid, a NAK response will be sent and the transmit
frequency will not change. If the radio is transmitting then a NAK response
will also be sent.
The radio may restrict the transmitter output power depending on the
transmit frequency, in accordance with regulatory requirements.
Command Tssxxxxxxxxxcc
Parameter Value
T ASCII letter T denotes the Load Transmit Frequency command
ss ASCII hex number ss is the number of characters for parameters
“08” or “09”)
xxxxxxxxx ASCII number xxxxxxxxx is the transmit frequency, as follows:
■ Minimum is a number representing the bottom of the radio
model frequency band
■ Maximum is a number representing the top of the radio model
frequency band
cc ASCII hex number cc is the checksum
Effect This command loads the transmit frequency into a memory location for use
when the PTT or Selcall encoder is next active. The radio will not transmit
if the synthesizer is out of lock.
Description This command sets the volume level for received audio. If the index
number is out of range the radio does not act on the command and sends a
NAK (range error) back.
Command J03xxxcc
Where:
Parameter Value
J ASCII letter J denotes the Set Volume Level command
03 ASCII hex number 03 is the number of characters for parameters
xxx ASCII number xxx is a volume level value in the range of 0 to 255
(255 is the maximum)
cc ASCII hex number cc is the checksum
If there is a volume knob on the radio there is no guarantee that the value
set with this command will be the volume. The radio will use the level last
set with any control.
Description This command disables (if xxxx=0), or enables (if xxxx>0), Rx CTCSS.
If enabled, the audio mute is opened only when a given subaudible CTCSS
tone is being received (otherwise the audio mute is closed). If disabled,
Command A04xxxxcc
Where:
Parameter Value
A ASCII letter A denotes the Receive CTCSS Value load command
04 ASCII hex number 04 is the number of characters for parameters
xxxx ASCII number xxxx is a receive subaudible frequency in 0.1Hz.
The valid range is 67Hz to 254.1 Hz.
cc ASCII hex number cc is the checksum
Effect This command has immediate effect and closes the mute to signals without
a valid CTCSS tone if enabled, or opens the mute on disabling CTCSS
muting.
Description This command disables (if xxxx=0) or enables (if xxxx>0), Tx CTCSS.
If enabled, a CTCSS tone is transmitted whenever the radio is transmitting
audio. If the reference number is out of range, the radio does not act on the
command and sends a NAK (range error) back to the radio. If the radio is
already transmitting then a NAK response will also be sent.
Command Bssxxxcc
Where:
Parameter Value
B ASCII letter B denotes the transmit CTCSS value to be sent on
transmit
04 ASCII hex number 04 is the number of characters for parameters
xxxx ASCII number xxxx is a transmit CTCSS frequency in 0.1Hz. The
valid range is 67Hz to 254.1 Hz.
cc ASCII hex number cc is the checksum
Effect On receipt of the request the radio stores the CTCSS tone to generate. The
radio will then generate the tone at the next PTT or Selcall encode activity.
Description This command sets the Receive DCS code. If the code is not recognized as
an octal, the radio does not act on the command and sends a NAK (range
error) back. Sending “000” will disable the Receive DCS filter.
Command C03xxxcc
Where:
Parameter Value
C ASCII letter C denotes the Receive DCS Value load command
03 ASCII hex number 03 is the number of characters for parameters
xxx ASCII number xxx represents a DCS code
cc ASCII hex number cc is the checksum
Effect This command has immediate effect and closes the mute to signals without
a valid DCS tone.
Description This command sets the Transmit DCS code. If the code is not recognized
as an octal, the radio does not act on the command and sends a NAK (range
error) back. Sending “000” will disable the Transmit DCS filter.
Command D03xxxcc
Where:
Parameter Value
D ASCII letter D denotes the transmit DCS value to be sent on
transmit
03 ASCII hex number 03 is the number of characters for parameters
xxx ASCII number xxx represents a DCS code
cc ASCII hex number cc is the checksum
Effect This command loads the value into memory ready for the next PTT or
Selcall encode activity.
Description This command turns the transmitter on and sends the Selcall string
following a short delay (network 1 lead-in delay). If the number of tones is
incorrect the command is rejected (NAK-format error).
Command Sssx...xcc
Where:
Parameter Value
S ASCII letter S denotes the Transmit Selcall tone sequence
ss ASCII hex number ss is the number of characters for parameters
x...x ASCII number x...x is the tone sequence. Minimum is 2 tones and
maximum is 33.
cc ASCII hex number cc is the checksum
The Set Selcall Parameter command (see below) allows the user to change
the Selcall parameter defaults.
Effect This command has immediate effect, provided that the receiver and
transmitter frequency values have been initialised and the radio is not
transmitting at the time (PTT active causes busy error)
Description This command allows the user to modify the Selcall default parameters
(tone set to use, tone period, number of tones in Tx sequence and number
of tones in Rx sequence). If any of the command parameters are out of
range, a NAK (range error) will be sent back to the control head.
Command I03tplcc
Where:
Effect The Selcall modem is immediately re-initialised with the new decode
parameter map. These new parameters are applied for the next Selcall
decode/encode sequence.
CCR default parameters are those loaded from the network associated to
the selected channel when the radio enters CCR mode. This includes selcall
parameters like ‘lead in delay’, which it is not possible to alter in CCR
mode.
Description This command disables or enables ANI. It configures what ANI sequence
is to be sent and when the ANI sequence is to be sent. If p is not ‘0’, the
tone sequence gets stored.
If the number of tones (xx...xx) does not match the currently configured
length, then the command is rejected (NAK- format error). It is also
rejected if p is out of range (range error).
Command Nsspx...xcc
Where:
Parameter Value
N ASCII letter N denotes the Automatic Number Identification
command
ss ASCII hex number ss is the number of characters for parameters
p denotes the ANI position with regard to PTT presses. Valid values
are:
■ ’0’ disables ANI (in this case the tone sequence x...x is not
required)
■ ’1’ leading ANI (ANI is sent soon after PTT is pressed)
■ ’2’ trailing ANI (ANI is sent when PTT is released)
■ ’3’ combination of 1 and 2
x...x is the 5 to 8 tone sequence. It is optional if p is set to 0.
cc ASCII hex number cc is the checksum
Effect If enabled, the ANI tones get stored and any subsequent use of the PTT
button activates ANI.
Description This command is the same as the monitor function available on the function
keys in normal user mode. When it is active, it overrides any active
subaudible signaling filters. The squelch mute is not overridden.
Command M01xcc
Where:
Parameter Value
M ASCII letter M indicates it is a monitor command
01 ASCII hex number 01 is the number of characters for parameters
x is the mute state wanted, as follows:
■ ’D’ for disable mute (monitor)
■ ’E’ for enable mute
cc ASCII hex number cc is the checksum
Effect Immediate.
Description The transmitter output power is set to the value selected. If the index is
incorrect the command is rejected (NAK-format error).
The radio may restrict the transmitter output power depending on the
programmed transmit frequency, in accordance with regulatory require-
ments.
Command P01xcc
Parameter Value
P ASCII letter P indicates it is a power command
01 ASCII hex number 01 is the number of characters for parameters
x is an index to transmit power level, as follows:
■ ‘1’ very low power
■ ‘2’ low power
■ ‘3’ medium power
■ ‘4’ high power
cc ASCII hex number cc is the checksum
Effect The modified power level takes effect on the next Tx activity.
If there is a front panel key or programmable input with low power con-
figured, there is no guarantee that the value set with this command will
represent the effective output power. The radio will use the state last set
with any control.
Description This command sets the operating transmit/receive bandwidth. If the index
number is out of range, the radio does not act on the command and sends a
NAK (range error) back.
The radio may reject the bandwidth command due to the current trans-
mit frequency in accordance with regulatory requirements.
Command Hssxcc
Where:
Parameter Value
H ASCII letter denotes the Set Bandwith command
01 ASCII hex number 01 is the number of characters for parameters
x is the Bandwith Index, as follows:
■ ‘1’ narrowband
■ ‘2’ mediumband
■ ‘3’ wideband (may be restricted due to FCC narrowbanding
regulations)
cc ASCII hex number cc is the checksum
Description The purpose of this command is to give the user a way to “ping” the radio.
The radio pulse command allows you to check that the radio is still
responding. The control device may use the radio pulse command every ten
seconds in the absence of other activity.
Only use if the active channel is analog or P25 conventional. Do not use
otherwise.
Command Q01PFE
Where:
Parameter Value
Q ASCII letter Q indicates it is a query command as opposed to a
set-up command
01 ASCII hex number 01 is the number of characters for parameters
P ASCII letter P indicates it is the radio pulse command
FE ASCII hex number FE is the checksum
Description The radio will configure the P25 radio ID. If the RU ID is out of range, the
radio will not act on the command and will send back a NAK (range error).
The channel must be a digital channel.
Only use if the active channel is P25 conventional, P25 Phase 1 trunking
or P25 Phase 2 trunking. In case of trunking the subscriber unit does not
need to re-register and it is usually used to filter incoming TSBKs and
for outgoing transmissions.
Command U08Axxxxxxxcc
Where
Parameter Value
U ASCII letter U indicates it is a P25 command
08 ASCII hex number 08 is the number of characters for parameters
A ASCII letter A indicates that this is the command to set the radio
unit ID
xxxxxxx ASCII number xxxxxxxx (7 digits) is the new decimal radio unit ID.
Example: 0000001
cc ASCII hex number cc is the checksum
Description The radio will configure the talkgroup associated with the current channel.
If the talkgroup number is out of range the radio will not act on the
command and sends a NAK (range error) back. The channel has to be a
digital channel.
Only use if the active channel is P25 conventional, P25 Phase 1 trunking
or P25 Phase 2 trunking.The subscriber unit will re-affiliate.
Command U06Bxxxxxcc
Where
Parameter Value
U ASCII letter U indicates it is a P25 command
06 ASCII hex number 06 is the number of characters for parameters
B ASCII letter B indicates that this is the command to set the P25
talkgroup
xxxxx ASCII number xxxxx (5 digits) is the new decimal talkgroup
number. Example: 64000
cc ASCII hex number cc is the checksum
Description The radio will configure the receive modulation used on the current
channel. If the index number is out of range the radio will not act on the
command and sends a NAK (range error) back. The channel has to be a
digital channel (F_CCR_COMMAND_NOT_ACCEPTED_MSG).
Use only when the active channel is P25 conventional or P25 Phase 1
trunking.
Command U02Cxcc
Where
Parameter Value
U ASCII letter U indicates it is a P25 command
02 ASCII hex number 02 is the number of characters for parameters
C ASCII letter C indicates that this is the command to set the P25
modulation
x ASCII number x, where
1 = C4FM, 2 = CQPSK, 3 = Wide, 4 = TSM NB
cc ASCII hex number cc is the checksum
Description The radio will configure the receive NAC used on the current channel. If
the NAC value is out of range the radio will not act on the command and
sends a NAK (range error) back. The channel has to be a digital channel.
Use only if the active channel is P25 conventional, P25 Phase 1 trunking
or P25 Phase 2 trunking, but it is strongly recommended not to use in
trunking mode.
Command U04Dxxxcc
Where
Parameter Value
U ASCII letter U indicates it is a P25 command
04 ASCII hex number 04 is the number of characters for parameters
D ASCII letter c indicates that this is the command to receive the
NAC value
xxx ASCII number xxx represents the hexadecimal NAC value
cc ASCII hex number cc is the checksum
Effect Immediate.
Description The radio will configure the transmit NAC used on the current channel.
If the NAC value is out of range the radio will not act on the command and
sends a NAK (range error) back. The channel has to be a digital channel.
Use only if the active channel is P25 conventional, P25 Phase 1 trunking
or P25 Phase 2 trunking, but it is strongly recommended not to use in
trunking mode.
Command U04Exxxcc
Where
Parameter Value
U ASCII letter U indicates it is a P25 command
04 ASCII hex number 04 is the number of characters for parameters
E ASCII letter c indicates that this is the command to transmit the
NAC value
xxx ASCII number xxx represents the hexadecimal NAC value
cc ASCII hex number cc is the checksum
Description This command is only available if the “P25 Protocol API” SFE has been
enabled on the radio.
This command allows you to report RSSI, BER, QoS and GPS location
information.
Use only if the active channel is P25 conventional, P25 Phase 1 trunking
or P25 Phase 2 trunking.
Command UssYxttttcc
Where
Parameter Value
U ASCII letter U indicates it is a P25 command
ss ASCII hex number ss is the number of characters for parameters
E ASCII letter Y indicates that this is the signal strength interface
command
x ASCII number x means 0-disable reporting, 1-enable reporting
tttt ASCII number tttt - optional argument, specifies the reporting
interval in milliseconds in hexadecimal (min = 500ms, default
1000ms), ignored when x=0. If reporting is already enabled the
timer is restarted and set to the new interval (or default if not
specified).
cc ASCII hex number cc is the checksum
Response Once enabled the radio will send a positive acknowledgment and it will
begin reporting at the specified interval the RSSI, BER, QoS and current
position in the following format:
+ssUY<1-valid><4-rssi><4-ber><4-qos><4-lat-deg><4-lat-min>
<4-lat-decimal><2-lat-ref><4-lon-deg><4-lon-min><4-lat-decimal>
<2-long-ref>cc.
Where
Effect Immediate
Description This command is only available if the “P25 Protocol API” SFE has been
enabled on the radio.
This command allows you to initiate P25 standard test tones, get radio
information, send custom TSBKs and LDU1s, and report and set various
P25 settings.
The test tones (1011Hz and cal) are sent with default parameters
(NAC=293, radio ID=1, talkgroup=1), regardless of the channel’s set-
ting.
Command UssZ?x...xcc
Where
Parameter Value
U ASCII letter U indicates it is a P25 command
ss ASCII hex number ss is the number of characters for parameters
Z ASCII letter c indicates that this is a P25 protocol command
? ASCII character? indicates the command identifier (see “List of
commands”)
x...x ASCII characters x...x are variable-length parameters
cc ASCII hex number cc is the checksum
Where
Parameter Value
rr ASCII hex number rr is the reason code
cc ASCII hex number cc is the checksum
+ssUZ?x…xcc
Where
Parameter Value
+ ASCI character – indicates a positive response
ss ASCII hex number ss is the number of characters for parameters
(including identifier)
UZ? ASCI characters UZ? link the response to the command, with ?
indicating the command identifier (see “List of commands”)
x...x ASCII characters x...x are variable-length parameters
cc ASCII hex number cc is the checksum
List of commands
Effect Yes
Description The radio initiates a software reset (same as for “^”), and exits CCR mode.
Command E005B
Where:
Parameter Value
E ASCII letter E indicates it is an exit command
00 ASCII hex number 00 indicates that there are no parameters
5B ASCII hex number 5B is the checksum
Description The radio uses this response to advise the control head that PTT is about to
timeout.
For control heads with user interfaces, the warning threshold is the duration
timer configured for the network minus 10s.
Response Msspcc
Where:
Parameter Value
M ASCII letter M denotes the message
ss ASCII hex number ss is the number of parameters (always “01”)
P ASCII letter P denotes a PTT being applied that has exceeded the
default transmit timer warning threshold
cc ASCII hex number cc is the checksum
Effect Whenever the radio reaches its maximum transmit period the radio will
inform the control head. After a further short delay the radio will turn off
the transmitter.
Description The radio sends this message every time the decoder tone buffer is emptied,
in accordance with the notification criteria set by the “I” command. See
“Set Selcall Parameters” on page 65 and “Selcall Decode Sequence” on page
82.
The sequences received are represented with the tones from the toneset.
Repeat tones and gaps will be forwarded as is.
Response Vssx...xcc
Where:
Parameter Value
V ASCII letter V denotes the Selcall decode message
ss ASCII hex number ss is the number of parameters
x...x are the tones decoded within the time window specified by the
notify parameters as follows:
■ ASCII digits 0 to 9
■ Special tones are represented with ASCII letters A to F
■ Gap. A gap in CCR is equal to the tone period set by the Selcall
Parameter command
cc ASCII hex number cc is the checksum
Effect When the radio receives the given Selcall sequence the radio sends the
decoded sequence to the DTE.
Description The number of tones to notify, set by the selcall parameter command, allow
the user to define the size of the decode tone buffer. This buffer sets the
maximum time period that the radio will decode and log tones before
reporting to the user, when continuously receiving valid selcall tones. The
timer is calculated as follows:
Tmax = (N x P) + P
Where:
Parameter Value
Tmax Notify buffer maximum time
N Number of tones
P Tone period
The buffer timer is started after at least one valid tone has been detected.
If a radio in CCR receives a speech call it is very likely that the user will
see this response with garbage decode sequences (1 or 2 tones) if the filter
is removed.
The additional tone period added to the buffer time allows the radio to
detect and report if a gap was present or not after the sequence detected.
This Software License Agreement ("Agree- processes or, provision of information services.
ment") is between you (“Licensee”) and Tait “Licensee” means any individual or entity that
International Limited (“Tait"). has accepted the terms of this License.
By using any of the Software items embedded “Open Source Software” means software
and pre-loaded in the related Tait Designated with freely obtainable source code and license
Product, included on CD, downloaded from the for modification, or permission for free distribu-
Tait website, or provided in any other form, you tion.
agree to be bound by the terms of this Agree- “Open Source Software License” means the
ment. If you do not agree to the terms of this terms or conditions under which the Open
Agreement, do not install or use any of the Soft- Source Software is licensed.
ware. If you install or use any of the Software, “Person” means any individual, partnership,
that will be deemed to be acceptance of the corporation, association, joint stock company,
terms of this Agreement. trust, joint venture, limited liability company,
For good and valuable consideration, the parties governmental authority, sole proprietorship, or
agree as follows: other form of legal entity recognized by a gov-
Section 1 DEFINITIONS ernmental authority.
“Confidential Information” means all or any “Security Vulnerability” means any flaw or
information supplied to or received by Licensee weakness in system security procedures, design,
from Tait, whether before or after installation or implementation, or internal controls that if exer-
use and whether directly or indirectly pertaining cised (accidentally triggered or intentionally
to the Software and Documentation supplied by exploited) could result in a security breach such
Tait, including without limitation all informa- that data is compromised, manipulated, or sto-
tion relating to the Designated Products, hard- len, or a system is damaged.
ware, software; copyright, design registrations, “Software” (i) means proprietary software in
trademarks; operations, processes, and related executable code format, and adaptations, transla-
business affairs of Tait; and including any other tions, de-compilations, disassemblies, emula-
goods or property supplied by Tait to Licensee tions, or derivative works of such software; (ii)
pursuant to the terms of this Agreement. means any modifications, new versions and new
“Designated Products” means products pro- releases of the software provided by Tait; (iii)
vided by Tait to Licensee with which or for means any upgrades, enhancements or other
which the Software and Documentation is functions or features to the Software provided by
licensed for use. Tait; and (iv) may contain one or more items of
“Documentation” means product and soft- software owned by a third-party supplier. The
ware documentation that specifies technical and term "Software" includes the applicable “Soft-
performance features and capabilities; user, oper- ware Key” and does not include any third-party
ation, and training manuals for the Software; and software provided under separate license or not
all physical or electronic media upon which such licensable under the terms of this Agreement.
information is provided. “Source Code” means software expressed in
“Executable Code” means Software in a form human readable language necessary for under-
that can be run in a computer and typically refers standing, maintaining, modifying, correcting,
to machine language, which is comprised of and enhancing any software referred to in this
native instructions the computer carries out in Agreement and includes all states of that software
hardware. Executable code may also refer to pro- prior to its compilation into an executable pro-
grams written in interpreted languages that gramme.
require additional software to actually execute. “Software Key” means a code or key that is
“Intellectual Property Rights” and “Intel- supplied by Tait to access, enable and use the
lectual Property” mean the following or their Software or certain functions or features of the
substantial equivalents or counterparts, recog- Software.
nized by or through action before any govern- “Tait” means Tait International Limited and
mental authority in any jurisdiction throughout includes its Affiliates.
the world and including, but not limited to all Section 2 SCOPE
rights in patents, patent applications, inventions, This Agreement contains the terms and condi-
copyrights, trademarks, trade secrets, trade tions of the license Tait is providing to Licensee,
names, and other proprietary rights in or relating and of Licensee’s use of the Software and Docu-
to the Software and Documentation; including mentation. Tait and Licensee enter into this
any adaptations, corrections, de-compilations, Agreement in connection with Tait delivery of
disassemblies, emulations, enhancements fixes, certain proprietary Software and/or products
modifications, translations and updates to or containing embedded or pre-loaded proprietary
derivative works from, the Software or Docu- Software.
mentation, whether made by Tait or another Section 3 GRANT OF LICENSE
party, or any improvements that result from Tait 3.1. Subject to the provisions of this Agreement