0% found this document useful (0 votes)
9 views88 pages

MTB-00001-06 TP9400 API Protocal Manual

The document is the API Protocol Manual for TM9400 P25 Mobile Radios and TP9400 P25 Portable Radios, detailing technical specifications, compatibility, and operational guidelines. It includes sections on serial ports, programming, command modes, and environmental considerations for disposal and compliance with regulations. The manual emphasizes the intellectual property rights of Tait International Limited and provides contact information for inquiries.

Uploaded by

vilasrasal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views88 pages

MTB-00001-06 TP9400 API Protocal Manual

The document is the API Protocol Manual for TM9400 P25 Mobile Radios and TP9400 P25 Portable Radios, detailing technical specifications, compatibility, and operational guidelines. It includes sections on serial ports, programming, command modes, and environmental considerations for disposal and compliance with regulations. The manual emphasizes the intellectual property rights of Tait International Limited and provides contact information for inquiries.

Uploaded by

vilasrasal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 88

TM9400 P25 Mobile Radios

TP9400 P25 Portable Radios


API Protocol Manual

MTB-00001-06 · Issue 6 · August 2019


Contact Information 350332, US15/387026 Div., US29/614639, US62/
713910, US62/729478, US62/730107, US62/767041,
Tait Communications US62/781642, US62/778238, US9794940 Div. no 1,
Corporate Head Office
US20150085799, US20160044572, US20160057051,
Tait International Limited US20170142646, US20170055267 Div. no 2,
P.O. Box 1645 US20180006844, US640974, US640977, US698339,
Christchurch US702666, US7758996, US8902804, US9107231,
New Zealand US9504034, US9559967.
For the address and telephone number of regional This product may also be made under license under one
offices, refer to our website: www.taitradio.com or more of the following patents:
- US7203207, AU2004246135, CA2527142,
Copyright and Trademarks GB2418107, HK1082608, MY134526, US8306071
- US7339917, AU2004246136, CA2526926,
All information contained in this document is the
GB2418812, MY134217
property of Tait International Limited. All rights
- US7499441, AU2005262626, CA2570441,
reserved. This document may not, in whole or in part,
GB2430333, JP4690397, NZ551231, KR100869043,
be copied, photocopied, reproduced, translated, stored,
RU2351080, BRP10512052, MXPA06015241
or reduced to any electronic medium or machine-
- US 7200129, AU2005226531, CA2558551,
readable form, without prior written permission from
CN1930809, GB2429378, JP4351720, BRP10508671,
Tait International Limited.
NZ549124, KR848483, RU2321952
The word TAIT and the TAIT logo are trademarks of
Tait International Limited.
Environmental Considerations
All trade names referenced are the service mark,
trademark or registered trademark of the respective Tait International Limited is an
manufacturers. environmentally responsible company
which supports waste minimization,
material recovery and restrictions in the
Disclaimer use of hazardous materials.
There are no warranties extended or granted by this The European Union’s Waste Electrical and Electronic
document. Tait International Limited accepts no Equipment (WEEE) Directive requires that this
responsibility for damage arising from use of the product be disposed of separately from the general
information contained in the document or of the waste stream when its service life is over. For more
equipment and software it describes. It is the information about how to dispose of your unwanted
responsibility of the user to ensure that use of such Tait product, visit the Tait WEEE website at
information, equipment and software complies with the www.taitradio.com/weee. Please be environmentally
laws, rules and regulations of the applicable responsible and dispose through the original supplier,
jurisdictions. or contact Tait International Limited.
Tait International Limited also complies with the
Enquiries and Comments Restriction of the Use of Certain Hazardous Substances
If you have any enquiries regarding this document, or in Electrical and Electronic Equipment (RoHS)
any comments, suggestions and notifications of errors, Directive in the European Union.
please contact your regional Tait office. In China, we comply with the Measures for
Administration of the Pollution Control of Electronic
Updates of Manual and Equipment Information Products. We will comply with
environmental requirements in other markets as they
In the interests of improving the performance, are introduced.
reliability or servicing of the equipment, Tait
International Limited reserves the right to update the
equipment or this document or both without
prior notice.

Intellectual Property Rights


This product may be protected by one or more patents
or designs of Tait International Limited together with
their international equivalents, pending patent or
design applications, and registered trade marks:
NZ409837, NZ409838, NZ415277, NZ415278,
NZ508806, NZ530819, NZ534475, NZ547713,
NZ577009, NZ579051, NZ579364, NZ586889,
NZ610563, NZ615954, NZ700387, NZ708662,
NZ710766, NZ711325 , NZ726313, NZ733434,
NZ593887, AU2015215962, AU339127, AU339391,
AU2016259281, AU2016902579, AU2017204526,
EU000915475-0001, EU000915475-0002,
GB1518031.8, GB1710543.8, GB2532863, US14/
834609 Div. no 1, US15/346518 Div.no 2, US15/

2 TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
Contents

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

TM9400/TP9400 API Protocol Manual Contents 3


© Tait International Limited August 2019
1.10.3 GET_SDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.10.4 MODEL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.10.5 PROGRESS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.10.6 RADIO_SERIAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.10.7 RADIO_VERSIONS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.10.8 RING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
1.10.9 LOCATION_SERVICES_RESPONSES. . . . . . . . . . . . . . . . . . . . . . . 48
1.10.10 TRANSACTION OK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

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

4 Contents TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.8.13 Transmitter Output Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.8.14 Set Bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
2.8.15 Query Radio Pulse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
2.8.16 Set Radio Unit ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.8.17 Set Talkgroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.8.18 Set P25 Modulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.8.19 Receive NAC Value. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.8.20 Transmit NAC Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.8.21 P25 Signal and Position Reporting Commands. . . . . . . . . . . . . . . . . . 75
2.8.22 P25 Protocol Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
2.8.23 Exit CCR Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
2.9 Unsolicited Messages from the Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.9.1 Summary and Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.9.2 PTT Exceeds Max Transmit Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
2.9.3 Selcall Decode Sequence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
2.9.4 Notify Buffer Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

Tait General Software Licence Agreement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

TM9400/TP9400 API Protocol Manual Contents 5


© Tait International Limited August 2019
Preface

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.

This alert is used to highlight significant information that may be


required to ensure procedures are performed correctly, or draw your
attention to ways of doing things that can improve your efficiency or
effectiveness.

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.

6 Preface TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
Publication Record

Issue Publication Date Description

6 August 2019 Minor updates throughout


Updated “Messages from the Radio” section for clarity

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

4 November 2015 Changed lower limit of Group ID in DIAL from 0 to 1


Removed reference to unsupported PTYPE 1D (SDM Auto Acknowledge)
from PROGRESS message
Added references to Selcall (now supported)

3 May 2015 Removed unsupported PTYPE 1D (SDM Auto Acknowledge) from


PROGRESS message

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.

1 May 2013 First issue

TM9400/TP9400 API Protocol Manual Preface 7


© Tait International Limited August 2019
Abbreviations

Abbreviation Description

APCO Association of Public Safety Communications Officials


API Application Programming Interface
ASCII American Standard Code for Information Interchange
AVL Automatic Vehicle Location
CCDI Computer Controlled Data Interface
CCR Computer Controlled Radio
CDP Conventional Data Protocol. A Tait over-air protocol.
CKR Common Key Reference
CRC Cyclic Redundancy Check
CTCSS Continuous Tone Coded Squelch System
CTS Clear to Send
DCE Data Circuit-Terminating Equipment
DCS Data Carrier System
DTE Data Terminal Equipment
DTMF Dual Tone Multi-Frequency
FFSK Fast Frequency Shift Keying
GPIO General Purpose Input/Output
IPN Internal Part Number
LED Light-Emitting Diode
MSD Most Significant Digit
NAC Network Access Code
NMEA National Marine Electronics Association standard.
Combined electrical and data specification for
communication between marine electronics and GPS
receivers.
P25 Project 25
PC Personal Computer
PTT Press To Talk
RMC Recommended Minimum sentence C. NMEA GPS
message type for the minimum recommended transmit/
GPS data.
RTS Request to Send (ready to receive)
RU Radio Unit
Rx Receive
RXD Receive Data
SDM Short Data Message
TIA Telecommunications Industry Association
Tx Transmit
TXD Transmit Data
UART Universal Asynchronous Receiver-Transmitter
XON Transmitter On
XOFF Transmitter Off

8 Preface TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1 CCDI

The Computer Controlled Data Interface (CCDI) protocol is a Tait


proprietary command protocol embedded in the TM9400 and TP9400
radios, and used for communicating with the radio via asynchronous serial
ports and over-air.

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

Two modes of operation are available:


■ Command mode
■ Transparent mode

When in Command mode, commands and response messages are passed


between the PC and the radio using the CCDI protocol. The baud rate is set
to 2400, 4800, 9600, 14400, 19200, 28800, 38400 or 115200 baud, using
the programming application.

When in Transparent mode, communication between the PC and the radio


is set to 2400, 4800, 9600, 14400, 19200, 28800, 38400 or 115200 baud,
using the programming 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.

CCDI operation is not guaranteed in P25 Phase 2.

The radio programming application used should be the latest released


version for both the TM9400 and TP9400 radios. Refer to the
Tait websitewww.taitradio.com for the latest versions of programming
application.

TM9400/TP9400 API Protocol Manual CCDI 9


© Tait International Limited August 2019
1.2 Serial Ports
Mobile Three physical ports are available for CCDI asynchronous serial
communication with the radio. The microphone and auxiliary ports are
accessed externally, and the internal options connector is internal to the
radio.

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.

For more information on these connectors, refer to the service manual.

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.

For more information on the accessory connector, refer to the service


manual.

10 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.2.1 Data Characteristics

Serial port Standard


Comments
Parameter min. typ. max. units
Baud rate: 2400, 4800, 9600, 14400, bit/s All UART parameters
19200, 28800, 38400, 115200 are fixed and common
Data bits: 8 to all UARTs except for
Start bit: 1 the baud rate which is
Stop bit: 1 configurable and
Parity: None different for different
modes/applications
Flow control: None
Software (XON/XOFF)
Hardware (RTS/CTS) Requires two GPIO
lines to be programmed
as flow control

1.2.2 Logic Level Compatibility


The following table show the compatibility of the radio’s digital I/O used
for CCDI with common industry logic standards.

Digital Input Logic standard input compatibility and tolerance


Compatibility and Digital Input
Tolerance Line 3.3V CMOS 5V CMOS 5V TTL RS-232
AUX_RXD Yes Yes Yes Yes
IOP_RXD Yes Yes Yes No1
CH_RXD Yes Yes Yes Yes
MIC_RXD
PRG_RXD
ACC_RXD Yes Yes Yes Yes
(portable)
1. Level compatible but not tolerant. Inputs can be made RS-232 tolerant by using 3.3kΩ
series resistance inserted at the radio end.

Digital Output Logic standard input compatibility and tolerance


Compatibility Digital Output
Line 3.3V CMOS 5V CMOS 5V TTL RS-232
AUX_TXD Yes No Yes No
IOP_TXD Yes No1 Yes No
CH_TXD Yes No Yes No
MIC_TXD
PRG_TXD
ACC_TXD Yes No No No
(portable)
1. These outputs can be made 5V CMOS compatible using a 3.3kΩ pull-up resistor to 5V
that is provided by the device being driven.

TM9400/TP9400 API Protocol Manual CCDI 11


© Tait International Limited August 2019
1.2.3 GPS Port
The GPS receiver/antenna is also connected to an asynchronous serial port
and must be different to the CCDI UART Port. The GPS receiver/antenna
is set in the Tait Radio API form, GPS tab of the programming application
and can be set to Aux (mobile radio), Acc (portable radio) or Internal
Options.
If set to Aux, the GPS receiver will send NMEA messages to the radio via
the AUX_RXD line on the auxiliary connector.
If set to Internal Options, the GPS receiver will send NMEA messages to
the radio via the IOP_RXD line on the internal options connector.

1.3 Before Operating


Before using CCDI, the following is useful to check.
■ The radio must be correctly programmed for use with the CCDI
protocol.
■ At power on, the radio will select its default channel. To change the
channel, select the channel using the normal radio interface or using the
CCDI Go_To_Channel command. Refer to “GO_TO_CHANNEL” on
page 27.
■ The radio will power on into the mode selected in the ‘Powerup State’
field in the Tait Radio API form, DTE/DCE Operation tab of the
programming application.
■ Power, Tx and Rx LED indicators are helpful for establishing proper
operation.
■ Data flow is controlled either by the customer’s embedded computer
system or by a PC running a data-sending application such as
Hyperterminal.

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.

12 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.6 CCDI Flow Control
Flow control is a method of controlling the data so that a faster DTE-DCE
baud rate can be used to that of the over the air baud rate. This allows the
radio (DCE) to inform the DTE that its buffer is becoming full and that the
DTE needs to wait before sending more data to the radio.

Flow control should only be needed when the amount of data to send is
larger than the radio’s buffer (600 bytes).

Available options: None, Hardware, or Software

1.6.1 XON/XOFF Software Flow Control


When the serial communications are set-up for software flow control, the
radio will use pre-programmed bytes for XOFF and XON.

When using XON/XOFF software handshaking, the data stream (or


the data file) must not include the programmed XON and XOFF
characters. It is recommended that only ASCII text be used with
software flow control.

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.

1.6.2 Hardware Flow Control


When the serial communications are set-up for hardware flow control, two
of the programmable I/O lines are enabled for RTS and CTS. Hardware
flow control is not available for the mic port.

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.

TM9400/TP9400 API Protocol Manual CCDI 13


© Tait International Limited August 2019
1.7 CCDI Transparent Mode
In Transparent mode, the radio acts as a modem, automatically transmitting
in FFSK or P25 common-air interface format the serial data received from
the PC. In this mode, the baud rate between the PC (DTE) and the radio
(DCE) can be set to either 2400, 4800, 9600, 14400, 19200, 28800, 38400
or 115200 baud using the programming application. The over-air data rate
is 1200 or 2400 bps for FFSK data, and 4.3 kbit/s for P25 data. The serial
data input buffer is 600 bytes, to adequately cope with the data flow.

Communication in Transparent mode is free-format, with the protocol


determined entirely by the PC and the modem. It is transparent to the
CCDI, allowing the PC to send and receive data without passing through
the CCDI. CTCSS and DCS subaudible signaling is available in FFSK
Transparent mode only.

1.7.1 Entering Transparent Mode


Transparent mode can be set as the default mode at power on by selecting
FFSK or P25 common-air interface Transparent Mode in the ‘Powerup
State’ field in the programming application. Refer to “Programming” on
page 12.

You can change to Transparent mode while operating in Command mode


by sending a TRANSPARENT command to the radio. Example: t01zB1
sends a TRANSPARENT command, requesting that the radio be put into
Transparent mode. The escape character specified here is “z” (ASCII code
= $7A). Once acknowledged, any further data is linked directly to the radio
in Transparent mode.

If the radio default is set to Transparent mode at power on, the default
escape character is “+”.

1.7.2 Exiting Transparent Mode


To change to Command mode while operating in Transparent mode, send
the escape sequence consisting of a 2 second idle time, followed by three
escape characters (sent within 2 seconds), followed by a further 2 second
idle time i.e. [2 second idle] +++ [2 second idle]. The default escape
character is “+”.

14 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.7.3 Transparent Mode Format

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.

air-interface data out over-air air-interface data out


air-interface data in no flow control air-interface data in
processing... processing...
serial data out serial data out
data data
serial data in serial data in
RS-232 RS-232
PC PC

time...

flow flow
data block 1 data block n
control control
lead-in delay lead-out delay

FFSK Transmission The Transparent Mode transmission format is as follows:


Format
Singe Data Block:

Lead-In preamble sync size FFSK data CRC Lead-Out


Delay 2 bytes 2 bytes 2 bytes block 2 bytes Delay
max 46 bytes

HEADER

Multiple Data Blocks:

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

TM9400/TP9400 API Protocol Manual CCDI 15


© Tait International Limited August 2019
detected and Rx Gate becomes active (opens), which in turn makes the
PTT line active.
■ The active PTT line keys up the transmitter.

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 Command Mode


Command mode uses the Tait proprietary Computer Controlled Data
Interface (CCDI), a command protocol embedded in the radio firmware.
It is accessed using the serial port lines from the PC. In this mode, the baud
rate between the computer equipment (DTE) and the radio (DCE) can be
set to either 2400, 4800, 9600, 14400, 19200, 28800, 38400 or 115200 baud
using the programming application

In Command mode, the PC sends command sequences to the radio and


waits for a prompt before beginning the next transaction. Some commands
require the radio to send a CCDI message in response. Messages sent to the
radio will always be responded to by the prompt.

Unsolicited messages such as PROGRESS or ERROR messages are sent


by the radio if there is a significant change in its state that the PC should be
aware of. When errors are detected, an unsolicited ERROR message is sent
by the radio to the PC. The radio does not expect a response from the DTE.

1.8.1 Entering Command Mode


Command mode can be set as the default mode at power on by selecting
‘Command Mode’ in the ‘Powerup State’ field in the programming
application.

To change to Command mode while operating in Transparent mode, send


the escape sequence consisting of a 2 second idle time, followed by three
escape characters (sent within 2 seconds), followed by a further 2 second
idle time i.e. [2 second idle] +++ [2 second idle]. The default escape
character is “+”.

1.8.2 CCDI Command Prompt


After entering Command mode, the radio sends a “.” character to the PC
which is displayed as a command prompt. The command prompt indicates
that the radio is ready for another command. The prompt is also sent after
the radio has sent a message.

16 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.8.3 CCDI Command Format
All CCDI message packets take the general form:

[IDENT] [SIZE] [PARAMETERS] [CHECKSUM] <CR>


■ [IDENT] = The message identifier. Identifiers are single ASCII
characters (lower-case alphabetical) which categorise the message type.
■ [SIZE] = The number of characters which make up the
[PARAMETERS] field. [SIZE] is an 8-bit number expressed in ASCII
hex notation (two characters).
■ [PARAMETERS] = An optional field, depending upon the command.
Parameter values are generally character strings unless explicitly stated
otherwise. Parameter type is dependent upon the command, and often
has multiple parts.
■ [CHECKSUM] = An 8-bit checksum of the [IDENT], [SIZE] and
[PARAMETERS] fields. Expressed in two character ASCII hex
notation.
■ <CR> = The carriage return (0Dh) packet terminator.

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.

TM9400/TP9400 API Protocol Manual CCDI 17


© Tait International Limited August 2019
1.8.5 Calculating the CCDI [CHECKSUM]
[CHECKSUM] is calculated by applying the following algorithm:

1. Take the modulo-2 sum of all message bytes preceding


[CHECKSUM].

2. Retain bits 0 to 7, discarding any higher order bits resulting from the
summation.

3. Form the two’s complement of the remainder.

4. Convert the binary number into two ASCII hex digits, MSD first.

Example s0D050800TESTHi!DA

1. Take the modulo-2 sum of all message bytes preceding


[CHECKSUM].
■ s = 73h, 0 = 30h, D = 44h etc. therefore the modulo-2 sum is:
73 + 30 + 44 + 30 + 35 + 30 + 38 + 30 + 30 + 54 + 45 + 53 + 54
+ 48 + 69 + 21 = 426h

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.

Please contact Technical Support (refer to “Contact Information” on


page 2).

18 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.9 Commands to the Radio
The following commands are available to send from the PC to control the
radio.

CCDI operation is not guaranteed in P25 Phase 2.

Command Character Function Valid in Mode


CANCEL c Cancel current activities Analog conventional
P25 conventional
P25 trunked
DIAGNOSTICS1 w P25 diagnostics P25 conventional
P25 trunked
DIAL2 d Initiate a conventional call Analog conventional
P25 conventional
P25 trunked
FUNCTION1 f Implement RU function Analog conventional
P25 conventional
P25 trunked
GO_TO_CHANNEL2 g Tune to conventional channel Analog conventional
P25 conventional
P25 trunked
LOCATION_SERVICES l (lower- Send location, poll another radio for its Analog conventional
2
case L) location, or acknowledge an emergency call. P25 conventional
QUERY1 q Query RU Model, data parameters, software Analog conventional
versions, etc. Query SDM. P25 conventional
P25 trunked
SEND_SDM2 s Request RU to send an SDM. Analog conventional
P25 conventional
TRANSPARENT (FFSK t Switch to Transparent mode (FFSK [analog Analog conventional
and P25)1 conventional] or P25 [digital]) P25 conventional
P25 trunked
1. Not fully supported in P25 Phase 2.
2. Not supported in P25 Phase 2.

In all cases, if a command is received without error by the radio and all
parameters are valid, the command is executed.

The prompt character ‘.’ is returned to the PC immediately after receiving


a command, to signify that another may begin. If an error arises, the PC is
notified with an appropriate ERROR response.

TM9400/TP9400 API Protocol Manual CCDI 19


© Tait International Limited August 2019
1.9.1 CANCEL
The CANCEL command tells the PC to abort the current action that the
radio is performing.

Format c [SIZE] [PARAMETERS] [CANCEL_TYPE] [CHECKSUM]


■ ‘c’ is sent as a single ASCII character and represents the CANCEL
command.
■ [CANCEL_TYPE] is a single ASCII character representing the
canceling type.

[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 Delete all queued received SDM messages. If there is no


(delete SDM) valid SDM data, it will do nothing. Valid in analog
conventional mode only.

3 Return to the idle display.

Examples c0100C Cancels the existing call.


c003D Also cancels the existing call.
c0110B Deletes the currently held SDMs.

Notes ■ If no [CANCEL_TYPE] is sent, then the CANCEL command will


default to CANCEL_TYPE = 0.

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.

Format “w” [SIZE] [FUNCTION] [SUBFUNCTION] [QUALIFIER]


[CHECKSUM]
■ [FUNCTION] is a two-character number (00-99) representing the
required function category.
■ [SUBFUNCTION] is a two-character number (00-99) representing the
required sub-function category within the [FUNCTION] category.

20 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
■ [QUALIFIER] is a character string representing the action to be taken.
The meaning of [QUALIFIER] is dependent upon the value of
[FUNCTION] and [SUBFUNCTION]. This is a variable length string
and may contain multiple pieces of information.

[FUNCTION] [SUBFUNCTION] [QUALIFIER]

00 (radio 00 (transmit 1011 test tone)1 0 (disables transmission)


diagnostics) 1 (enables transmission)

01 (transmit 1011 test tone with 0 (disables transmission)


5% BER)1 1 (enables transmission)

02 (display frequencies of None


current
channel. Output format:
TxRx:xxx.xxxxxx:yyy.yyyyyy,
where:
xxx.xxxxxx = transmit frequency
yyy.yyyyyy = receive frequency)

03 (display RSSI, BER, ABCDDDD, where


estimated error percentage from ■ A is 0 or 1.
vocoder FEC) 0 disables the RSSI output.
Output format: D:xxx:y.y:zz, 1 enables the RSSI output.
where:
■ B is 0 or 1.
xxx = RSSI in –dBm or 000 if
0 disables the BER output.
RSSI is disabled,
1 enables the BER output.
y.y= the BER in% or 0.0 if
disabled, ■ C is 0 or 1.
zz= the estimated error 0 disables the estimated error percentage
percentage from the vocoder output.
FEC in% or 00 if disabled. 1 enables the estimated error percentage
output.
■ DDDD is four ASCII hex characters
representing the time interval in 100
milliseconds to output the RSSI values. This is
not used if A, B, and C are 0.
If any output is enabled, progress message
should be enabled.
1. Not supported in P25 Phase 2.

Other Useful f03041A2 Enables output of progress messages.


Commands
f03040A3 Disables output of progress messages.

f03061A0 Enables CCDI Diagnostic Mode.

f03060A1 Disables CCDI Diagnostic Mode.

TM9400/TP9400 API Protocol Manual CCDI 21


© Tait International Limited August 2019
1.9.3 DIAL
The DIAL command allows access to the full conventional mode dialing
capability of the radio.

Format d [SIZE] [DTYPE] [NUMBER_STR] [CHECKSUM]


■ ‘d’ is sent as a single ASCII character and represents the DIAL
command.
■ [DTYPE] is a single ASCII character representing the type of dialing
required.
■ [NUMBER_STR] represents the dialled sequence. The range of
allowed characters depends upon the value of [DTYPE].

[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.

Examples d0601234507 Initiate Selcall dialing of the number 1 2 3 4 5


d0611234506 Initiate DTMF dialing of the number 1 2 3 4 5

d06431258FF Initiates a call to radio ID 31258 (decimal)


d0861,312589E Sends a call alert to radio ID 31258 (decimal)
d0A66,31258,331 Sends a message of the value 3 to radio ID 31258
(decimal)
d0B68,31258,15FB Sends a status of value 15 to radio ID 31258
(decimal)

22 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.9.4 FUNCTION
The FUNCTION command provides access to various hardware and
miscellaneous functions.

Format f [SIZE] [FUNCTION] [SUBFUNCTION] [QUALIFIER]


[CHECKSUM]
■ ‘f’ is sent as a single ASCII character and represents the FUNCTION
command.
■ [FUNCTION] is a single ASCII characters representing the required
function category.
■ [SUBFUNCTION] is up to two ASCII characters and is used to extend
the range of the [FUNCTION] parameter.
■ [QUALIFIER] is an ASCII character string representing the action to be
taken, depending on the value of [FUNCTION] and
[SUBFUNCTION].

[FUNCTION] [SUBFUNCTION] [QUALIFIER] Action


0 0 none Switch to CCR mode.
(functions)
1 0 Disable CCDI volume control.
1 Enable CCDI volume control (refer to
SUBFUNCTION=2).
2 0-25 Set volume level. 0=off, 1-25=loudness.
4 0 Disable PROGRESS output messages.
1 Enable PROGRESS output messages.
2 Enable KEYPRESS progress messages.
3 Disable KEYPRESS progress messages (default).
4 Disable NAC output messages.
5 Enable NAC output messages.
5 0 Disable channel PROGRESS output messages
(default).
1 Enable channel PROGRESS output messages
(unsolicited).
Refer to “PROGRESS” on page 39, [PTYPE] = 21
User Initiated Channel Change.
2 Report current channel (solicited).
6 0 Enable diagnostic mode.
1 Disable diagnostic mode.
7 0 Set the radios transmit power to 'OFF'
1 Set the radios transmit power to 'V. Low'
2 Set the radios transmit power to 'Low'
3 Set the radios transmit power to 'Medium'
4 Set the radios transmit power to 'High'
9 Reset the radios transmit power to level configured in
the programming application

TM9400/TP9400 API Protocol Manual CCDI 23


© Tait International Limited August 2019
[FUNCTION] [SUBFUNCTION] [QUALIFIER] Action
1 0 0 Disable SDM output on reception.
(SDM control) 1 Enable SDM output on reception, QUERY command
not required.
1 0 Disable SDM caller ID encode.
1 Enable SDM caller ID encode. The caller ID is sent as
a separate SDM before sending the SDM itself.
2 0 Disable SDM caller ID decode.
1 Enable SDM caller ID decode. The caller ID SDM is
decoded before the incoming SDM.
2 none 0 Activate non-stealth emergency mode.
(emergency 1 Activate stealth emergency mode.
mode control)
2 De-activate emergency mode
3 Send Duress ACK
3 none 00x - 16x The first two bytes specify the hexadecimal number
(simulate key of the key. See “PROGRESS” on page 39 for the list
presses) of key numbers.
xx0 - xx9 The third byte specifies the duration of the key press.
0=constantly OFF 1-8=x/8 seconds on, 9=constantly
ON.
4 none 0 Disable all user controls, display and indicators.The
(user radio indicates “CCDI BUSY”.
controls) 1 Disable user input only. Display and indicators still
operational. Any attempted user input will result in the
invalid keypress tone.
2 Enable all user controls except when CCDI
commands are being processed. During this time the
radio indicates “CCDI BUSY”.
Set as default at power on.
5 none 0 Cancel CCDI request for Rx audio mute.
(Rx audio 1 Mute Rx audio. Can only be overridden by Squelch
mute control) Override. Conventional mode only.
7 none 0 Deactivate validation of CTCSS and DCS subaudible
(subaudible signaling. Incoming data will be processed regardless
signaling) of the subaudible signaling.
The default radio setting at power on depends on the
‘Ignore DCS/CTCSS’ option set in the Tait Radio API
form, RF Modems tab of the programming
application.
1 Activate validation of CTCSS and DCS subaudible
signaling. Incoming FFSK data will only be processed
if the subaudible signaling matches.
Only effective if current channel is programmed for
subaudible signaling.
Conventional or traffic channel mode only.
8 none 0 Deactivate monitor function.
(monitor) 1 Activate monitor function. Conventional mode only.

24 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
[FUNCTION] [SUBFUNCTION] [QUALIFIER] Action
9 none 0 Forces radio into a Rx state.
(Rx/Tx) Conventional or traffic channel mode only.
1 Forces radio into a Tx state. Note that the Rx CCDI
command is required to take the radio out of Tx mode
when this mode is activated. The Tx will not terminate
on expiry of the Tx timer.
Conventional or traffic channel mode only.
A (encryption) 0 0 Deactivate encryption.
1 Activate encryption.
1 none List CKR/names.
2 1 to 65535 Change encryption key.
C 0 0 to 65535 Change talkgroup (0=no talkgroup).
(talkgroup)
D 0 0 to 63 Change SAP.
(setup P25 1 0-16777215 Change destination address.
data packets) 0=no destination address
1-16777215=enhanced addressing
2 0 to 1 Change type.
0=unconfirmed data transmission
1=confirmed data transmission

Examples f0241D3 a command to disable user input command.


f0250D3 a command to mute the receiver audio.
f0271D0 a command to validate subaudible signaling.
f0281CF a command to activate Monitor function.
f0291CE a command to activate the transmitter.
f0290CF a command to deactivate the transmitter following an
“activate transmitter” command.
f0200D8 enter CCR Mode.
f03011A5 enable volume control.
f03010A6 disable volume control.
f03020A5 set volume level off.
f030719F set radio transmit power level to ‘very low’.
f0402256D set volume level to the maximum of ‘25’.
f03025A0 set volume level to ‘5’.
f03041A2 enable progress message output.
f03040A3 disable progress message output.
f03051A1 enable channel progress message.
f03A0195 activate P25 encryption.
f04C04857 change P25 talkgroup to 48 (hex 30).

TM9400/TP9400 API Protocol Manual CCDI 25


© Tait International Limited August 2019
Notes 1. The “User controls” function allows the DTE to selectively disable
the front panel controls of the RU. Three states are defined:
■ Disable All User Controls. This disables all user inputs and all
indicators including the display. The RU will indicate “CCDI
BUSY”.
■ Disable User Input Only. This disables all user inputs but the
display and other indicators will be enabled for user information.
Any attempt at user input will result in the invalid keypress tone
being sounded.
■ Enable All User Controls. This enables the RU to be used
normally except when the CCDI is processing a message.
When the CCDI is processing a message, the RU will activate its
“CCDI busy” indicator. When processing is complete, the RU
will be returned to its normal state.

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.

3. The “Subaudible signaling validity control” function will activate or


deactivate validation of subaudible signaling, i.e. CTCSS or DCS
when CCDI is receiving FFSK data. If the current channel is not
programmed with any subaudible signaling, then FFSK data is
always received regardless of the validation state.

After power on, this parameter value is set depending on 'Ignore Subau-
dible Signaling' option value.

If the channel is digital, this parameter will be ignored.

4. The “Monitor control” function will activate or deactivate


monitoring of the RU in conventional mode. If this message is
received on a traffic channel in trunked mode, then a parameter error
message will be sent to DTE.

5. The “Tx/Rx control” function will change the RU into Tx or Rx


state. When Tx state is initiated via the CCDI it must be terminated
by issuing the Rx control CCDI command, i.e. Unlike regular PTT
operation, CCDI Tx will not terminate upon expiry of the Tx Timer.

If the channel is analog, this parameter will be ignored.

6. Enable Key Action Progress Messages (Function 0, Subfunction 4,


PARAM1 = 2) will only enable a subset of all possible combinations
of keys and press types.

26 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.9.5 GO_TO_CHANNEL
The GO_TO_CHANNEL command tells the radio to change to another
channel. The specified channel can be assigned to a scan/vote group in the
radio.

Format g [SIZE] [ZONE] [CHANNEL_NO] [CHECKSUM]


■ ‘g’ is sent as a single ASCII character and represents the
GO_TO_CHANNEL command.
■ [ZONE] (optional) is a two-character string representing the new zone.
When [ZONE] is omitted, the radio stays in the current zone.
■ [CHANNEL_NO] is a maximum of four characters representing the
new channel number. The range of allowed characters is 0 to 9. and must
be a valid channel for the radio. If used with the [ZONE] parameter, this
will always be a four-character string.

If the radio is using a scan/vote group when it receives this command, it


will retune to the specified channel.

If the radio is in emergency mode then no channel change will occur,


and a ‘not ready’ error message is returned.

Examples g0223D2 go to channel 23.


g0414995E go to channel 1499.

g060100120F go to zone 1, channel 12.

TM9400/TP9400 API Protocol Manual CCDI 27


© Tait International Limited August 2019
1.9.6 LOCATION_SERVICES
The location services command allows the request to send the current
location to a specified ID, acknowledge an emergency call or poll another
radio for its location.

Format l [SIZE] [LOCATION_TYPE] [ID_TYPE] [ID] [CHECKSUM]


■ [LOCATION_TYPE] is a single character representing the type of
location service being requested.

Character Function
0 Send current position
1 Acknowledge emergency
2 Poll radio for location
3 Consolidated location logs

■ [ID_TYPE] is a single character representing the call type.

Character Function
0 Individual call ID
2 Broadcast call
3 As defined in radio database

■ [ID] is a variable length field with a maximum length of eight. The


individual or group call ID. The ID is a decimal number.

If the location type is to acknowledge an emergency or to poll a radio


for its location then the ID type must be an individual call ID.

If location type is consolidated then the ID type must be an individual


call ID. ID set to local returns any logs stored in the local radio, other-
wise the radio attempts to extract logs from remote radio.

Examples: l0600123404 Sends the current position to an individual radio with


the ID of 1234.
l0601432103 Sends the current position to the group ID 4321.
l030309E Sends the current position to radio defined in the
database.
l0610123403 Sends an emergency acknowledgement to the radio
with the ID of 1234.
l0620123402 Sends a message to the radio with ID 1234 requesting
that it return its location.
l073086810c3 Requests any stored consolidated logs from radio
86810.

28 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.9.7 QUERY
The QUERY command requests information from the radio.

Format q [SIZE] [QUERY_TYPE] [DATA] [CHECKSUM]


■ ‘q’ is sent as a single ASCII character and represents the QUERY
command.
■ [QUERY_TYPE] is a single ASCII character representing the query
type required.
■ [DATA] is a number with up to three-digits which identifies the CCTM
command which is sent.

[QUERY_TYPE] [DATA] Function

0 none Query the radio model and CCDI version.


(model and CCDI Data is returned as a MODEL message.
version)

1 none The buffered SDM data is returned to the PC as


(query SDM) a GET_SDM message. The SDM buffer is then
cleared. Available in conventional mode only.

3 none Query the radio version information. The data is


(version) returned to the PC as a RADIO_VERSION
message. Refer to “RADIO_VERSIONS” on
page 45.

4 none Query the serial number. Refer to


(serial number) “RADIO_SERIAL” on page 45.

5 047 PA temperature. Returned to the PC as a


(CCTM query) CCTM_QUERY_RESULT message.

063 Averaged RSSI level. Returned to the PC as a


CCTM_QUERY_RESULT message.

064 Raw RSSI level. Returned to the PC as a


CCTM_QUERY_RESULT message.

318 Forward power. Returned to the PC as a


CCTM_QUERY_RESULT message.
319 Reverse power. Returned to the PC as a
CCTM_QUERY_RESULT message.

6 none Query GPS. GPS data is returned packetized


(GPS query) as though the queried radio is a polling radio.

8 1 MS Unit ID
(known terminal
identifiers) 7 IP address

d none Returns the current radio personality mode,


(radio mode) including the conventional/trunked mode, the
analog/digital mode, and the signal scheme.

If no [QUERY_TYPE] is sent, then the QUERY command will default


to [QUERY_TYPE] = 0.

TM9400/TP9400 API Protocol Manual CCDI 29


© Tait International Limited August 2019
Examples q010FE a command requesting a MODEL message.

q002F also a command requesting a MODEL message.

q011FD a command requesting the GET_SDM message.

q013FB query the software version.

q01dCA query the radio mode.

q0281c4 query the MS Unit ID

q0287BE query the IP address

Notes 1. When [QUERY_TYPE] = 0, data is returned to the DTE as a


MODEL message.

2. When [QUERY_TYPE] = 3, the data is returned to the DTE as a


RADIO_VERSION message.
3. When [QUERY_TYPE] = 4, the data is returned to the DTE as a
RADIO_SERIAL message.

4. When [QUERY_TYPE] = 5, the data is returned to the DTE as a


CCTM_QUERY_RESULT message.

5. When [QUERY_TYPE] = 6, the radio will return the GPS info


packaged as it would be if this was the polling radio.

6. When [QUERY_TYPE] = d, the response parameters are:


[PARA1] 0d (Query Code)
[PARA2] ‘T’ (Trunked)
[PARA2] ‘C’ (Conventional)
[PARA3] 0 (Undefined)
[PARA3] 1 (Analog)
[PARA3] 2 (Digital)
[PARA3] 3 (Dual Mode)
[PARA3] 4 (Repeater)
[PARA4] 0 (SELCALL)
[PARA4] 1 (NO_SIGNALLING_SCHEME/UNDEFINED)
[PARA4] 3 (DTMF)
[PARA4] 2 (T99)
[PARA4] 6 (MDC1200)
[PARA4] 4 (P25/APCO)
[PARA4] 5 (DMR)

30 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.9.8 SEND_SDM
The SEND_SDM command requests the radio to send a fixed format
ASCII Short Data Message (SDM). An SDM can be received when the
radio is in Command and Transparent modes. This command is used to poll
GPS information.

Format s [SIZE] [LEAD_IN_DELAY] [DATA_MESSAGE_ID] [MESSAGE]


[CHECKSUM]
■ [LEAD_IN_DELAY] is two ASCII hex characters representing the
delay after the radio transmitter keys-up and the start of data
transmission. The range is 00 to FFh.
The actual delay is calculated by multiplying the number by 20 ms. This
corresponds to a Lead-In Delay between 00 ms and 5.1 seconds, in steps
of 20 ms. A minimum of at least 20 ms of Lead-In Delay is required for
the radio.
■ [DATA_MESSAGE_ID] is an 8-character string representing the SDM
data identity of the radio to which the SDM is being sent. It can be any
alphanumeric characters. “*” is the wildcard for any character. e.g.
12**5678. The first four bytes are generally the fleet identity, the
second four the radio identity.
When a radio receives a SDM message, the data identity is checked
against the ‘Radio Identity’ field set in the Location Services, Report
Formats form, Tait SDM Format tab. Refer to “Programming” on
page 12. If the data identity matches, the received SDM data is stored
and the radio sends a response. If the data identity does not match then
the SDM data is ignored.
■ [MESSAGE] contains either
■ a single hex value of 0x00 if the return address of the SDM is the
dispatch address
■ the hex value 0x08 followed by an 8-character address if the
return address of the SDM is a different address

For more information on using SEND_SDM to poll GPS information,


including a full description of the returned message, refer to TN-856.

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.

TM9400/TP9400 API Protocol Manual CCDI 31


© Tait International Limited August 2019
1.9.9 TRANSPARENT (FFSK and P25)
The TRANSPARENT command changes the radio to Transparent mode
and sends the escape character required to change it back to Command
mode. Refer to “CCDI Transparent Mode” on page 14 for details about
Transparent mode.

Format t [SIZE] [ESC_CHAR] [MODE] [CHECKSUM]


■ ‘t’ is sent as a single ASCII character and represents the
TRANSPARENT command.
■ [ESC_CHAR] is a single ASCII character representing the escape
character. The escape sequence is three consecutive escape characters
sent within two seconds, with two seconds of idle time each side. When
the escape sequence is sent to the radio, it is forced into Command
mode. See “Entering Transparent Mode” on page 14 for details.
■ [MODE] is a single ASCII character representing the modulation
scheme. If [MODE] is left blank then the modulation scheme is
assumed to be FFSK.

[MODE] Function

0 The radio will use FFSK modulation when in transparent


(FFSK mode) mode.

H The radio will use P25 air interface modulation when in


(P25 mode) transparent mode.

When data is transmitted in Transparent mode it has the lead-in delay


set in the Tait Radio API form, RF Modems tab of the programming
application.

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’.

t02yH69 enter P25 transparent mode, with the escape character


set to ‘y’.

32 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.10 Messages from the Radio
The following messages are sent from the radio to the PC. Some are
solicited by commands from the PC, while others are unsolicited and are
sent because of changes within the radio.

Message Character Function Valid in mode

ENCRYPTION_CKR_LIST k Response for a function A, 1 Digital conventional


Digital trunked

ERROR e Transaction failure or other error condition Analog conventional


Digital conventional
Digital trunked

GET_SDM s Get original format SDM data (used to poll Analog conventional
GPS information) Digital conventional

MODEL m Identify RU type Analog conventional


Digital conventional
Digital trunked

PROGRESS p Call progress report Analog conventional


Digital conventional
Digital trunked

RADIO_SERIAL n RU serial number Analog conventional


Digital conventional
Digital trunked

RADIO_VERSIONS v Version numbers of software components Analog conventional


Digital conventional
Digital trunked

RING r Incoming call alert Analog conventional


Digital conventional
Digital trunked

LOCATION_SERVICES_ l (lower- Response to a location request Analog conventional


RESPONSES case L) Digital conventional

TRANSACTION OK . Transaction processed OK Analog conventional


Digital conventional
Digital trunking

The prompt character ‘.’ is returned to the PC immediately after receiving


a command to signify that another may begin. If the command initiates a
return message, then when the return message has been sent the radio sends
another prompt.

If the radio sends an unsolicited message, it sends a prompt after the


message.

TM9400/TP9400 API Protocol Manual CCDI 33


© Tait International Limited August 2019
1.10.1 ENCRYPTION_CKR_LIST
Solicited from FUNCTION A 1 (Encryption List CKR/Names)
(f02A1C6).

The ENCRYPTION_CKR_LIST response lists all CKR containing an


encryption key and the name of the key.

Format k [SIZE] [PTYPE] [PARA1] [PARA2] [CHECKSUM]


■ ‘k’ is sent as a single ASCII character and represents the
ENCRYPTION_CKR_LIST_RESPONSE response.
■ [PTYPE] is a single-digit character (hexadecimal value) indicating
either the start or end of the response, or some encryption key
information.

[PTYPE] [PARA1] [PARA2]

0 (start of the response) None None

1 (key info) CKR (5 digits, 00001-65535) Variable string length

F (end of the response) 0 = No error None


1 = No key
2 = Busy

Examples k01004 Start of response

k0A100001Key1A8 CKR 00001 with name of “Key1”

k0A185258Key2A8 CKR 85258 with name of “Key2”

k02F0BD End of response

34 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.10.2 ERROR
Solicited and unsolicited.
The ERROR message advises the PC that the radio has detected an error
condition and cannot proceed with the current transaction. In some cases,
an exception condition in the radio may cause an ERROR message to be
sent to the PC independently of any control transactions. This is a system
error, which is an unsolicited message.

Format e [SIZE] [ETYPE] [ERRNUM] [CHECKSUM]


■ ‘e’ is sent as a single ASCII character and represents the ERROR
response.
■ [ETYPE] is a single character representing the error category.

■ [ERRNUM] is two ASCII hex characters which identify the specific


error condition.

[ETYPE] [ERRNUM] Error

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.

05 Radio Not Ready Error


Radio not ready error occurs when another new
message is receiving from PC even before a prompt
character “.” is sent from radio.

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.

TM9400/TP9400 API Protocol Manual CCDI 35


© Tait International Limited August 2019
1.10.3 GET_SDM
Solicited.

The GET_SDM message is sent to the PC in response to a QUERY


command. It sends the SDM data buffered by the radio. This command is
used to poll GPS information.

Format s [SIZE] [SDM_DATA] [CHECKSUM]


■ ‘s’ is sent as a single ASCII character and represents the GET_SDM
command.
■ [SDM_DATA] is a optional string of up to 32 character.

If no [SDM_DATA] is sent, then the GET_SDM command will default


to [SDM_DATA] = 0.
If there is buffered SDM data in the radio, the SDM data will be sent to
the PC.

For more information on using SEND_SDM to poll GPS information,


including a full description of the returned message, refer to TN-856.

Examples s002D This message indicates that the radio has no SDM data
available.

36 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.10.4 MODEL
Solicited.

The MODEL message is sent to the PC in response to a QUERY 0 (model)


command (q010FE). It identifies the type of radio and the version of CCDI
software operating in the radio.

Format m [SIZE] [RUTYPE] [RUMODEL] [RUTIER] [VERSION]


[CHECKSUM]
■ ‘m’ is sent as a single ASCII character and represents the MODEL
response.
■ [RUTYPE] is a single character representing the type of radio.

Character Function

1 Conventional radio

2 Reserved for Trunked radio

3 North American Signaling Conventional radio

4 Analog conventional/trunked radio

5 P25 radio

6 DMR radio

■ [RUMODEL] is a single character representing the model of the radio.


and [RUTIER] is a single character representing the tier of the radio.

RUTYPE RUMODEL RUTIER Description


1 Conventional
1 1 Conventional Portable
1 1 1 Conventional Portable, Tait Orca Elan
1 1 2 Conventional Portable, Tait Orca Excel
1 1 3 Conventional Portable, Tait Orca
Eclipse
1 1 4 Conventional Portable, Tait Orca 5010
1 1 6 Conventional Portable, Tait Orca 5020
1 1 7 Conventional Portable, Tait Radio
Modem
1 1 8 Conventional Portable, Tait Orca 5015
1 2 Reserved for Conventional Mobile, Tait
Orca
1 3 Conventional Mobile
1 3 1 Conventional Mobile, TM8105/TM8115
1 3 2 Conventional Mobile, TM8110
1 4 1 Conventional Portable, TP8115
1 4 2 Conventional Portable, TP8120
1 4 3 Conventional Portable, TP8110
2 Reserved for Trunked Radio

TM9400/TP9400 API Protocol Manual CCDI 37


© Tait International Limited August 2019
RUTYPE RUMODEL RUTIER Description
3 North American Signaling Conventional
Radio
3 1 NA Sig. Conv. Portable
3 1 4 NA Sig. Conv. Portable, Tait Orca 5011
3 1 6 NA Sig. Conv. Portable, Tait Orca 5021
4 Dual Mode Radio
4 1 Dual Mode Radio, Portable
4 2 Dual Mode Radio, Mobile
4 2 1 Dual Mode Radio, Mobile, TM8200
5 P25 Digital
5 1 P25 Digital Mobile
5 1 1 P25 Digital Mobile, TM9100
5 2 P25 Digital Portable
5 2 1 P25 Digital Portable, TP9100
5 3 P25 Digital Mobile Phase 2-capable
5 3 1 P25 Digital Mobile Phase 2-capable,
TM9400
5 3 2 P25 Digital Mobile / MPT hybrid
TM9480
5 4 P25 Digital Portable Phase 2-capable
5 4 1 P25 Digital Portable Phase 2-capable,
TP9400
5 4 2 P25 Digital Portable / MPT hybrid
TP9480
6 DMR Digital
6 1 DMR Digital Mobile
6 1 1 DMR Digital Mobile, TM9300
6 2 DMR Digital Portable
6 2 1 DMR Digital Portable, TP9300

■ [VERSION] is the CCDI software version. A character string, in the


format of XX.XX, identifying the capabilities of the radio operating in
CCDI mode.

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:

m0811100.01A9 This message indicates that the RU is a Conventional


Portable Tait Orca Elan radio and the CCDI software
version is 00.01.

38 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.10.5 PROGRESS
Unsolicited.

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.

Format p [SIZE] [PTYPE] [PARA1] [PARA2] [CHECKSUM]


■ ‘p’ is sent as a single ASCII character and represents the PROGRESS
response.
■ [PTYPE] is two ASCII hex characters which identify the progress
message category.
■ [PARA2] is appended if [PTYPE] is 21, 22, 23.

[PTYPE] [PARA1] Function


00 none Call Answered
A Type 99 call has been answered. This message will be sent when the call has
been answered either by the PC or manually by the user.
02 none Tx Inhibited
Transmission has been inhibited. This message will be sent whenever transmission
is requested but is inhibited.
03 none Emergency Mode Initiated
The radio has been put into emergency mode. This message will be sent when the
radio’s emergency mode switch is activated.
04 none Emergency Mode Terminated
The radio is no longer in emergency mode. This message will be sent when the
radio receives a “reset” to take it out of emergency mode. The reset can be a
Remote Monitor Reset (enabled in programming application), a power off and on,
or a CANCEL command.
05 none Receiver Busy
The receiver has detected an RF signal on the current channel. This message will
be sent when the current channel becomes busy.
06 none Receiver Not Busy
The receiver no longer detects an RF signal on the current channel. This message
will be sent when the current channel becomes not busy.
07 none PTT Mic Activated
The PTT has been pressed. This message will be sent whenever the PTT is
pressed in an attempt to transmit.
08 none PTT Mic Deactivated
The PTT has been released. This message will be sent whenever the PTT is
released after attempting to transmit.
17 none Radio Stunned
18 none Radio Revived
19 none FFSK Data Received
Indicates to that the radio has received valid FFSK data in Command mode, and
will be sent to the PC when Transparent mode is next entered.
Note that if FFSK data is received in Transparent mode, it will be sent directly to the
PC without sending this progress message.

TM9400/TP9400 API Protocol Manual CCDI 39


© Tait International Limited August 2019
[PTYPE] [PARA1] Function
1E SDM GPS Data Received
1 Data received.
1F Radio Restarted
Indicates when the radio has been restarted.
0 Radio will restart in Command mode.
1 Radio will restart in FFSK Transparent mode.
3 Radio will restart in P25 Transparent mode.
20 none Single In-band Tone Received
21 User Initiated Channel Change
Indicates the details of the current channel
[PARA2] is a fixed length field of 6-digits which indicate zone (2 digits) and the
channel or scan/vote group ID (4 digits).
0 Single channel.
1 Scan/vote group of channels.
2 A channel captured within a scan/vote group.
3 Temporary channel e.g. one used for GPS.
9 The channel is not available or invalid.

40 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
[PTYPE] [PARA1] Function
23 Keycode
Indicates key actions
[PARA2]: 0 = key down action, 1 = key up action, 2 = short keypress, 3 = long
keypress
00 PTT
01 Hookswitch
02 On/Off key
03 Up key
04 Down key
05 Function key 1
06 Function key 2
07 Function key 3
08 Function key 4
09 Function key 5
0A Function key 6
0B Zero key
0C One key
0D Two key
0E Three key
0F Four key
10 Five key
11 Six key
12 Seven key
13 Eight key
14 Nine key
15 Star key (*)
16 Hash key (#)
1E Softkey left
1F Softkey right
25 Duress ACK received
26 Radio Status updated
1 Ignition sense. [PARA2] 0 = off, 1= on.
3 Current terminal status. [PARA2] = updated status value
27 Radio repeater status changed

TM9400/TP9400 API Protocol Manual CCDI 41


© Tait International Limited August 2019
[PTYPE] [PARA1] Function
2C Location Report Triggered
0 Emergency
1 Startup
2 Channel/Network change
3 Fix lost
4 Periodic
5 Stationary
6 Distance
7 Speed
8 Course
9 Altitude
10 Auto request
11 Shutdown
12 Status
13 Radio check
2E Talker ID
[PARA2]: Talker ID (variable length)
0 Selcall
4 P25 call
6 MDC1200
30 NAC being decoded while receiving
[PARA2] is the decoded NAC.
0 Not the NAC programmed for this channel.
1 Valid NAC.
31 Channel Name
0 Channel name not found/invalid. [PARA2] 0 = channel name not found/invalid
1 Channel name valid. [PARA2] = <string>, channel name (limited to 20 characters)
38 Audio output change
[PARA2] (arranged in descending priority (so the actively playing type is first):
r = receive audio
m = mic audio
s = side tone
c = confidence tone
e = external audio
May be empty if there is no output content. Off by default, must be enabled by the
corresponding FUNCTION 0, SUBTYPE 4 for progress configuration.
39 Mic audio change
Indicates when the microphone audio is actually being used, e.g. excludes lead-in
and lead-out signalling. Off by default, must be enabled by the corresponding
FUNCTION 0, SUBTYPE 4 for progress configuration.
0 Fist mic audio available
1 Fist mic audio not available
3A Call terminated (always p023ABA)

42 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
Example p0202CC This message sends the progress message to say that Tx has
been inhibited.

p052300036 keypress message: PTT has been pressed.

p052300135 keypress message: PTT has been released.

p05230622E keypress message: FnKey 2, short press actioned

p052303033 keypress message: UP key, pressed

p0238C3 audio output progress: no active output audio

p0438crEC audio output progress: confidence tone and receive


audio present, confidence tone active

p062c0002F3 location trigger startup

p062c0010F4 location trigger periodic

Notes

1. The CALL ANSWERED (00) progress message indicates that a


standard Selcall or Type 99 call has been answered. This message
will be sent when the call has been answered either by the DTE or
manually by the user.

2. The TX INHIBITED (02) progress message indicates that


transmission has been inhibited. This message will be sent whenever
transmission is requested but is inhibited.

3. The EMERGENCY MODE INITIATED (03) progress message


indicates that the RU has been put into emergency mode. This
message will be sent when the RU emergency mode switch is
activated.

4. The EMERGENCY MODE TERMINATED (04) progress message


indicates that the RU is no longer in emergency mode. This message
will be sent when the RU receives a “reset” to take it out of
emergency mode.

5. The RECEIVER BUSY (05) progress message indicates that the


receiver has detected RF signal on the current channel. This message
will be sent when the current channel becomes busy. This message
can be controlled by the Transparent mode message filter.

6. The RECEIVER NOT BUSY (06) progress message indicates that


the receiver no longer detects RF signal on the current channel. This
message will be sent when the current channel becomes not busy.
This message can be controlled by the Transparent mode message
filter.

TM9400/TP9400 API Protocol Manual CCDI 43


© Tait International Limited August 2019
7. The PTT MIC ACTIVATED (07) progress message indicates that
the PTT has been pressed. This message will be sent whenever the
PTT is pressed in an attempt to transmit.

8. The PTT MIC DEACTIVATED (08) progress message indicates that


the PTT has been released. This message will be sent whenever the
PTT is released after attempting to transmit.
9. The RADIO STUNNED (17) progress message indicates that the
RU has been stunned.

10. The RADIO REVIVED (18) progress message indicates that the RU
has been revived.

11. The FFSK DATA RECEIVED (19) progress message indicates to


DTE that the RU has received a valid FFSK data in Command mode.
The buffered FFSK data will be sent to the DTE when Transparent
mode is next invoked. Note that if FFSK data has received in
Transparent mode, it will be sent directly to the DTE without
sending this progress message.

12. The USER INITIATED CHANNEL CHANGE progress message


indicates the details of the current channel. [PARA1] indicates
information about the channel: whether it is a single channel, a scan/
vote group of channels, a channel captured by the RU within a scan/
vote group, a temporary channel (e.g. one used for GPS polling) or
it may indicate that the channel is invalid or not available. [PARA2]
is a variable length field up to 4 which indicates the channel or scan/
vote group ID, or a fixed length of 6 where it indicates the zone and
the channel or scan/vote group ID.
13. The following Key Action progress messages are supported:
■ PTT - key down, key up
■ Hook Switch - key down, key up
■ On/Off Key - long keypress
■ UP / DOWN - key down
■ Function Keys - Short and Long keypress (provided there is an
action programmed on this key)
■ Left / Right Soft Key - key down

44 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
1.10.6 RADIO_SERIAL
Solicited.

The RADIO_SERIAL message is sent to the PC in response to a QUERY 4


(serial number) command. It conveys the serial number of the radio.

Format n [SIZE] [SERIAL_NUMBER] [CHECKSUM]


■ ‘n’ is sent as a single ASCII character and represents the
RADIO_SERIAL response.
■ [SERIAL_NUMBER] is a string identifying the serial number in the
radio.

Example n08190011898D This message indicates that the RU has serial number
19001189.

1.10.7 RADIO_VERSIONS
Solicited.

The RADIO_VERSION message is sent to the PC in response to a


QUERY 3 (version) command. It conveys the versions of the various
software and hardware components in the radio.

Format v [SIZE] [RECORD NUMBER] [VERSION] [CHECKSUM]


■ ‘v’ is sent as a single ASCII character and represents the VERSION
response
■ [RECORD NUMBER] is two ASCII characters identifying the record
number.
■ [VERSION] is a variable length string identifying the version number
of each hardware and software component in the radio. Multiple
RADIO_VERSION messages are returned in response to a QUERY
command. The messages can be distinguished using the record number.

Record Number Radio


00 Model Name

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.

TM9400/TP9400 API Protocol Manual CCDI 45


© Tait International Limited August 2019
1.10.8 RING
Unsolicited.

The RING message advises the PC that an incoming call has been received.

Format r [SIZE] [RCATEGORY] [TYPE1] [TYPE2] [TYPE3] [TYPE4]


[STATUS] [CALLER_ID] [CHECKSUM]
■ ‘r’ is sent as a single ASCII character representing the RING command.

■ [RCATEGORY] is a single character representing the category of the


incoming call.

Character Function

0 Selcall

1 Undefined

2 Type 99

4 P25 call

~ Continuation (second and last fragment) of the last RING message


because the data didn't fit in one CCDI message

■ The RING type is a four character string qualifying the type of call
received.

Type Character Function

[TYPE1] 0 Voice Call received

2 Status Call received

3 Interrogation Call received

4 SDM received

7 P25 service call received

[TYPE2] 0 Normal Priority Call received

1 Emergency Priority Call received


[TYPE3] 0 Individual Call received

1 Group Call received

2 Super Group call received

3 Unknown call received

[TYPE4] 0 Services

1 Call alert

2 Radio check

3 Radio inhibit

4 Radio uninhibit

5 Radio Unit Monitor (RUM)

46 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
Type Character Function

6 Message

7 Status query

8 Status update

9 Emergency alarm request

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)>-".

By checking [SIZE] in the RING message, the PC will be able to know


if the whole [CALLER_ID] part is missed or not.

Example r0D40000FF007A1A50 Received a P25 individual call from radio ID


007A1A (Hex) with no status

r0D40010FF007A1A4F Received a P25 group call from radio ID


007A1A (Hex) with no status

r0D4700602007A1A6D Received a P25 service call from radio ID


007A1A (Hex) with a message value of 2

r0D4700802007A1A6B Received a P25 service call from radio ID


007A1A (Hex) with a status update value of 2

r0714000FFA6 This message indicates that the received call is


an SDM call.

TM9400/TP9400 API Protocol Manual CCDI 47


© Tait International Limited August 2019
1.10.9 LOCATION_SERVICES_RESPONSES
Unsolicited

Location service responses are given for all received locations. It is valid
for analog and digital conventional RUs.

Format l [SIZE] [CALL_TYPE] [ID] [LOCATION_TYPE] [LOCATION]


[CHECKSUM]
■ ‘l’ is sent as a single ASCII character representing a location response.
■ [CALL_TYPE] is a single character representing the call priority:

Character Function

0 Normal priority

1 Emergency/Priority

2 Voice attached

3 Automatic update from radio

■ [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

3 Local radio report

■ [LOCATION] is a variable length free format string that is dependant


on the specified [LOCATION_TYPE].

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.

48 CCDI TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
TM9400/TP9400 API Protocol Manual CCDI 49
© Tait International Limited August 2019
2 CCR

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.

CCR operation is not guaranteed in P25 Phase 2.

The CCR protocol provides a means of temporarily reprogramming a


channel from some form of DTE via a serial interface (PC, AVL
application, Telemetry Application, MDT).

In CCR mode, the radio no longer uses a non-volatile database. A number


of radio parameters are uploaded and changed during run-time from an
external application. In this way, the external application provides the non-
volatile data storage.

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.

The TM9400 and TP9400 series of radios support USER, CCDI


Transparent and CCR modes of operation.

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.

50 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.1.1 Configurable Parameters

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

The unit can accept or send Selcall in:


■ All the international tone formats
■ Between 2 and 8 tones per sequence.
■ Tone durations from 20 - 100ms
■ ANI leading/trailing sequence

Other features:
■ Audio volume level
■ Enable/disable monitor
■ Signal strength
■ P25 Protocol API

2.1.2 Potential Applications


■ Complex conventional radio units (multi-system)
■ MDT controlled radio
■ Remote off-air monitoring
■ System integration
■ Self healing RF networks
■ Rapid deployment - inter operability
■ Hybrid solutions

TM9400/TP9400 API Protocol Manual CCR 51


© Tait International Limited August 2019
2.2 Programmable Parameters
CCR depends on the same programmable parameters as those used to
configure CCDI command mode.

2.2.1 Requirements

The following needs to be enabled as a minimum:


■ Enable CCDI
■ Enable a serial port for communications (Auxiliary, Mic or Internal
Options connector) as follows:

The serial port is capable of driving only a limited cable length.


For more information on the serial port, refer to the service manual.

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

Radio operation while in CCR mode also requires, as a minimum, the


following to be defined:
■ Enable at least one channel
■ Enable at least one PTT & microphone for voice

For selcall commands it is also necessary to enable at least one network


using selcall signaling, as follows:
■ Enable network to be selcall

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.

2.3 Command Protocol


The DTE is connected to the RU via a serial link. Command and response
messages are generated between the DTE and the RU.

52 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.4 Command Description
This section details the standard messages.

2.4.1 Message Format

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).

General characteristics of the message format worth noting are as follows:


■ All characters in a message are printable ASCII
■ Where numeric values are represented in ASCII-hex notation (two
characters per byte), digits A...F are upper case
■ The minimum length of a command packet is 5 characters; i.e. when
[SIZE] = 00. For example, E005B is the EXIT command which is 5
characters.
■ The maximum length of the [PARAMETERS] field is 32 characters, so
that the maximum length of the command packet is therefore
37 ([SIZE]=“20”) characters

TM9400/TP9400 API Protocol Manual CCR 53


© Tait International Limited August 2019
2.4.2 Calculating [CHECKSUM]

[CHECKSUM] is calculated by applying the following algorithm:

1. Take the modulo-2 sum of all message bytes preceding


[CHECKSUM].

2. Retain bits 0...7, discarding any higher order bits resulting from the
summation.

3. Form the two's complement of the remainder.

4. Convert the binary number into two ASCII-hex digits, MSD first.

Checksum Example s0D050800TESTHi!DA

5. Take the modulo-2 sum of all message bytes preceding


[CHECKSUM].
■ s = 73h, 0 = 30h, D = 44h etc. therefore the modulo-2 sum is:
73 + 30 + 44 + 30 + 35 + 30 + 38 + 30 + 30 + 54 + 45 + 53 + 54 +
48 + 69 + 21 = 426h

6. Retain bits 0 to 7, discarding any higher order bits resulting from the
summation.
26h

7. Form the two’s complement of the remainder.


26h = 0010 0110
two’s complement = 1101 1010

8. Convert the binary number into two ASCII hex digits, MSD first.
1101 1010 = DA

54 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.5 CCR Mode Commands

2.5.1 Entering CCR Mode

CCR mode is entered from CCDI with the function zero command,
“f0200D8”. This command is described in the CCDI specifications.

Entry to CCR mode will be denied if the radio is busy scanning,


transmitting or processing emergency mode activities. CCR mode is not,
however, blocked when the radio is stunned; CCR can run in this state.

2.5.2 CCR/CCDI Mode Independence

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.

2.5.3 CCR Mode Activated

The radio sends the string “M01R00” to the DTE when CCR mode is
activated.

2.5.4 CCR Mode Busy

It is possible to program an output line for busy detect status in CCR mode.

2.5.5 Blocked Functions

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.

TM9400/TP9400 API Protocol Manual CCR 55


© Tait International Limited August 2019
PTT initiated functionality will only be suppressed, not indicated, nota-
bly, PTT call setup.

2.5.6 CCR Persistence

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.

2.5.7 CCR Response Time

The receive frequency in CCR mode can be changed at least every 20ms.

2.5.8 Exiting CCR Mode

When exiting CCR mode, the radio reboots. For more information, refer to
“Exit CCR Mode” on page 80.

2.6 CCR Positive Acknowledgements


The radio validates the received strings since the last command on the
serial port versus the CCR protocol when it sees an instance of the
terminating character <CR>. It returns either a positive or negative
acknowledgement. The positive acknowledgement has the following
format.

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.

56 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.7 CCR Negative Acknowledgements
The radio validates the received strings since the last command on the
serial port versus the CCR protocol when it sees an instance of the
terminating character <CR>. It returns either a positive or negative
acknowledgement. The negative acknowledgements are as follows.

2.7.1 Invalid CCR Command

If a string does not conform to the protocol, or there is something else


inhibiting its execution, it is rejected and a negative acknowledgement is
sent to the user. The negative acknowledgement has the following format.

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

A command is only ever rejected with one error code.

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.

2.7.2 Validation Checksum Error

If the input string does not have the correct checksum, a checksum error is
immediately reported and no further checks are done.

TM9400/TP9400 API Protocol Manual CCR 57


© Tait International Limited August 2019
2.7.3 Invalid Validation Command

If the input string passes the checksum test but the identity contained is not
a recognised CCR command, an invalid command is reported.

2.7.4 Validation Parameter Error

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

2.7.5 Radio Busy Message

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.

2.7.6 Command Not Accepted Message

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.

58 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.8 CCR Commands

2.8.1 Summary and Examples

The messages in the following table are sent from the DTE to the RU.

Message Cmd Function


Rssxxxxxxxxxcc R Go to Receive Frequency1
Tssxxxxxxxxxcc T Load Transmit Frequency1
Hssxcc H Set Bandwidth2
Jssxxxcc J Set Volume Level3
Assxxxxcc A Receive CTCSS Value4
Bssxxxxcc B Transmit CTCSS Value4
Cssxxxxcc C Receive DCS Value4
Dssxxxxcc D Transmit DCS Value4
Sssxxxxxcc S Encode Selcall Sequence
Isstplcc I Set Selcall Parameters
M01xcc M Monitor1
Nsspxxxxxcc N Set ANI4
Pssxcc P Transmitter Output Power3
Qssxcc Q Query Radio Pulse5
U08Axxxxxxxcc U08A Set Radio Unit ID6
U06Bxxxxxcc U06B Set Talkgroup7
U02Cxcc U02C Set P25 Modulation8
U04Dxxxcc U04D Receive NAC Value9
U04Exxxcc U04E Transmit NAC Value9
UssYxxxxxcc U...Y P25 Signal and Position
Reporting Commands10
UssZ...cc U...Z P25 Protocol Commands11
Esscc E Exit CCR Mode3
1. Useful only if the active channel is analog or P25 conventional.
2. Recommended only when the active channel is analog or P25 Phase 1 conven-
tional.
3. Available in all modes.
4. Only use if the active channel is analog.
5. Only use if the active channel is analog or P25 conventional. Do not use otherwise.
6. 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-reg-
ister and it is usually used to filter incoming TSBKs and for outgoing transmissions.
7. Only use if the active channel is P25 conventional, P25 Phase 1 trunking or P25
Phase 2 trunking.The subscriber unit will re-affiliate.
8. Use only when the active channel is P25 conventional or P25 Phase 1 trunking.
9. 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.
10.Use only if the active channel is P25 conventional, P25 Phase 1 trunking or P25
Phase 2 trunking.
11.Available in P25 Phase 1 conventional only.

TM9400/TP9400 API Protocol Manual CCR 59


© Tait International Limited August 2019
In all cases, if the command is received without error by the RU and all the
parameters are valid, the command will be executed and the prompt will be
returned to the DTE. If an error arises, the DTE will be notified with an
appropriate response.

Examples f0200D8 Enter ccr from ccdi


E005B Exit - same effect as “^”

R0945320000087 Set Rx frequency to 453.2MHz


T0945320000085 Set Tx frequency to 453.2MHz
Q01PFE Pulse command, returns “P” when minimum config
exists

P0111E Set power to Very Low


P0141B Set power to High
H01324 Set bandwidth to Wide
H01126 Set bandwidth to Narrow

A0406708E Set Rx ctcss to 67Hz


A0400009B Set Rx ctcss to 0Hz
B0406708D Set Tx ctcss to 67Hz
B0400009A Set Tx ctcss to 0Hz
C03023C5 Set Rx DCS to 023
C03000CA Disable Rx DCS
D03023C4 Set Tx DCS to 023
D03000C9 Disable Tx DCS

S051234549 Dial 12345


I03015BE Select toneset 0, ccir, 20ms tones and 5 tones notify
N04112387 Set ANI to leading and tones 123

M01D0E Monitor “on”


M01E0D Monitor “off”

J03000C3 Volume level 0 (range is 0-255)


J03104BE Volume level 104 (range is 0-255)
U08A0000053AA Change radio unit ID to 53
U06B0517006 Change talkgroup to 5170
U02C3D3 Change receive modulation to wide pulse
U04DAD549 Change receive NAC to AD5 (hex)
U04E29364 Change transmit NAC to 293 (hex)

60 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.8.2 Go to Receive Frequency

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.

Useful only if the active channel is analog or P25 conventional.

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.

2.8.3 Load Transmit Frequency

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.

The radio may restrict the transmitter bandwidth to narrowband depend-


ing on the transmit frequency, in accordance with regulatory require-
ments.

Useful only if the active channel is analog or P25 conventional.

Command Tssxxxxxxxxxcc

TM9400/TP9400 API Protocol Manual CCR 61


© Tait International Limited August 2019
Where:

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.

2.8.4 Set Volume Level

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.

Available in all modes.

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

Effect This command has immediate effect.

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.

2.8.5 Receive CTCSS Value

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,

62 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
muting on CTCSS is disabled. If the frequency is out of range, the radio
does not act on the command and sends a NAK (range error) back.

Only use if the active channel is analog.

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.

2.8.6 Transmit CTCSS Value

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.

Only use if the active channel is analog.

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.

TM9400/TP9400 API Protocol Manual CCR 63


© Tait International Limited August 2019
2.8.7 Receive DCS Value

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.

Only use if the active channel is analog.

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.

2.8.8 Transmit DCS Value

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.

Only use if the active channel is analog.

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.

64 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.8.9 Encode Selcall Sequence

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)

2.8.10 Set Selcall Parameters

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:

TM9400/TP9400 API Protocol Manual CCR 65


© Tait International Limited August 2019
Parameter Value
I the ASCII letter I denotes the Set Selcall Parameter command
03 ASCII hex number 03 is the number of characters for parameters
t specifies the Tone Set to use. This can be one of the following:
■ ’0’ CCIR
■ ’1’ EIA
■ ’2’ EEA
■ ’3’ ZVEI-I
■ ’4’ ZVEI-II
■ ’5’ ZVEI-III
■ ’6’ PZVEI
■ ’7’ NATEL
■ ’8’ DZVEI
p specifies the Tone Period to use. This can be one of the following:
■ ’1’ 20ms
■ ’2’ 33ms
■ ’3’ 40ms
■ ’4’ 50ms
■ ’5’ 60ms
■ ’6’ 70ms
■ ’7’ 100ms
l sets the decode buffer time and message filter as defined in
“Selcall Decode Sequence” on page 82.
cc ASCII hex number cc is the checksum

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.

66 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.8.11 Set ANI

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.

Only use if the active channel is analog.

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.

TM9400/TP9400 API Protocol Manual CCR 67


© Tait International Limited August 2019
2.8.12 Monitor

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.

Useful only if the active channel is analog or P25 conventional.

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.

If there is a front panel key or programmable input with monitor


configured, there is no guarantee that the value set with this command will
represent the monitor state. The radio will use the state last set with any
control.

2.8.13 Transmitter Output Power

Description The transmitter output power is set to the value selected. If the index is
incorrect the command is rejected (NAK-format error).

Available in all modes.

The radio may restrict the transmitter output power depending on the
programmed transmit frequency, in accordance with regulatory require-
ments.

Command P01xcc

68 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
Where:

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.

2.8.14 Set Bandwidth

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.

Recommended only when the active channel is analog or P25 Phase 1


conventional.

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

Effect This command has immediate effect.

TM9400/TP9400 API Protocol Manual CCR 69


© Tait International Limited August 2019
2.8.15 Query Radio Pulse

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

Response The radio will send back one of two responses:


■ QssPcc - if the radio has got its minimum configuration, which typically
consists of having received a ‘set receive frequency’ command.
■ QssDcc - is returned if the radio has loaded its default set-up and has not
yet received a ‘set receive frequency’ command.

Effect These commands invoke an immediate reply.

70 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.8.16 Set Radio Unit ID

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

Effect This command is immediate. The radio will reset.

TM9400/TP9400 API Protocol Manual CCR 71


© Tait International Limited August 2019
2.8.17 Set Talkgroup

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

Effect This command is immediate.

72 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.8.18 Set P25 Modulation

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

ASCII hex numbers CC is the checksum.

Effect On next PTT.

TM9400/TP9400 API Protocol Manual CCR 73


© Tait International Limited August 2019
2.8.19 Receive NAC Value

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.

2.8.20 Transmit NAC Value

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

Effect On next PTT.

74 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.8.21 P25 Signal and Position Reporting Commands

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

TM9400/TP9400 API Protocol Manual CCR 75


© Tait International Limited August 2019
Parameter Value
+ ASCII character + indicates a positive response
ss ASCII hex number ss is the number of characters for parameters
UY ASCII letters UI indicate that this message is a response to the
U...Y command (rather than other P25 messages)
valid ASCII hex number specifying the state of the GPS data, 0-no
data, 1-new valid data, 2-old valid data, 3-invalid data or error
retrieving data
rssi ASCII hex number specifying the current rssi value. Subtract
supplied hex value from FFFF and convert to decimal, then
divide by ten and multiply by -1 to get real value.
ber ASCII hex number indicating the current bit error rate (based on
1011Hz test tone for Phase 1 and 1031Hz test tone for Phase
2). Divide by 100 to get Percentage.
qos ASCII hex number indicating the quality of service estimate.
Divide by 100 to get Percentage.
lat and long Degrees, minutes and fractions of minutes indicating current
position. If valid=0 or valid=3 all zeros will be reported. If GPS is
not enabled in the database, the command will succeed but valid
will be zero and the position data will be zero.
lat and long ref ASCII hex number representing the compass point reference.
■ ‘4E’=N(orth)
■ ‘53’=S(outh)
■ ‘45’=E(ast)
■ ‘57’=W(est)
cc ASCII hex number cc is the checksum

Effect Immediate

Examples U02Y0C0 Disables reporting.

U06Y102EECF Enables reporting every 750ms.

76 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.8.22 P25 Protocol Commands

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.

Available in P25 Phase 1 conventional only.

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

Response All commands return a positive or negative response:

Positive response: +01U1F

Negative response: –03rrUcc, e.g. if the API SFE is not enabled.

Where

Parameter Value
rr ASCII hex number rr is the reason code
cc ASCII hex number cc is the checksum

TM9400/TP9400 API Protocol Manual CCR 77


© Tait International Limited August 2019
Commands that return data return it in the format:

+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

Command ID Parameter Return format


Toggle test mode A 0 - Disable <4-SFE mask>
1 - Enable <8-serial number>
<8-radio time>
<5-API version>
with
P25 Conventional ............................ 0x0001
Admin Serviced ............................... 0x0002
P25 OTAR ....................................... 0x0004
P25 Trunking ................................... 0x0008
P25 Packet Data.............................. 0x0010
P25 Des Encryption and keyloading 0x0020
P25 Aes Encryption ......................... 0x0040
P25 Radio API ................................. 0x0080
P25 Radio API_P25CAI................... 0x0100
This command also disables Tx timeout and allows command processing
while the radio is busy.
The API version is in the format MM.mm, where MM is the major version,
and mm is the minor version. MM will be incremented when the protocol
changes such that backwards compatibility will be broken (e.g. if existing
command changes arguments). mm will be incremented when a change
does not break compatibility (e.g. if a new command is added). An
application should require a specific major version but only a minimum
minor version.
Select modulation B 0 - Analog
mode 1 - P25
2 - Analog dual-mode
(conventional/trunked)
Toggle P25 progress C 0 - Enable Progress message (hex):
messages 1 - Disable <8-time><4-message number><1-Rx/Tx>
<3-nac><2-duid><x-block data>
Message number is a 16-bit field that
increments each block.
x can be determined from the duid Rx/Tx
0 = Rx, 1 = Tx
Select test tone D 0 - Clear
1 - 1011Hz
2 - Cal
3 - Silence

78 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
Command ID Parameter Return format
Get info about the radio E <no arg> <8-TxFreq><8-RxFreq><2-TxPower>
<2-Bandwidth><2-Volume><2-Channel
type>
(most of these settings are set in normal
CCR mode)
■ Power: 0-Off, 1-Very Low, 2-Low,
3-Medium, 4-High
■ Bandwidth: 0-Narrow Voice, 1-Med Voice,
2-Wide Voice
■ Channel type: 0-Unknown, 1-Analog,
2-P25
Get/set P25 settings F <no arg> - <arg> and return format (hex):
Get P25 settings <3-txNac><3-rxNac><4-tgTalkgroup>
<arg> - <8-tgAddress><8-srcAddress><2-txMfid>
Set P25 settings <4-txLsd><2-txAlgId><4-txKeyId>
<2-txCallType>
■ CallType: 0-unknown, 1-Group, 2-
Individual
Send custom TSBK G <arg> 24 characters in hex
which make up the TSBK
Send custom LDU1 H <arg> 22 characters in hex
which make up the LDU1
Start control channel I <no arg> stop control
channel (go back to voice)
<arg> 21 characters in hex in
the format:
<5-WACN><3-System Id>
<2-LRA><2-RF Subsys Id>
<2-Site Id><1-Channel Id>
<3-Channel #><2-SSC>
<1-A>
Encryption command J <no arg> -Lists encryption <no arg> returns:
keys <2-#><2-keySetId><2-algId><4-CKR>
0 - Clear key and disable <4-keyId><1-enabled>
encryption ■ algId: 81-DES, 84-AES
CKR - Select key which
matches CKR and enable
encryption
Toggle transmission K 0 - Stop transmission
1 - Start transmission
Advanced P25 call L <arg> - 17 characters in the
parameters format:
<4-Preamble Length (ms)>
<4-Number of LDU1/LDU2
blocks to send>
<4-initial terminators>
<4-end terminators>
<1-start block>
The first four arguments
when set to 0xFFFF will
reset to default behavior.
Start block: 0-VHDR
(default), 1-LDU1, 2-LDU2
Toggle Go to traffic M 0 - Don’t follow channel
channel (trunking only) 1 - Follow channels (default)

TM9400/TP9400 API Protocol Manual CCR 79


© Tait International Limited August 2019
Command ID Parameter Return format
Get radio version info N 0 – Serial Number <1-Argument> <?-Requested information>
1 – Software Version
2 – Boot Loader Version
3 – FPGA Version
4 – Hardware Version
Mute radio O 0 – Relax mute control
1 – Force mute

Effect Yes

Examples U03ZA17C Enables test mode.

U03ZB17B Selects P25 transmission mode.

U02ZEAA Gets info about the radio.

U02ZIA6 Stops the control channel.

U03ZN36D Gets FPGA version of the radio.

2.8.23 Exit CCR Mode

Description The radio initiates a software reset (same as for “^”), and exits CCR mode.

Available in all modes.

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

Effect This command is immediate. The radio will reset.

80 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
2.9 Unsolicited Messages from the Radio

2.9.1 Summary and Examples

The following messages may be returned to the DTE without user


intervention.

Message Cmd Function


Vssx...xcc V Selcall decode sequence
Msspcc MP Ptt exceeds max transmit limit
Mssrcc MR CCR initialised

Examples: V0612345-18 Sequence 12345 detected

V065E5E5-EE Sequence 55555 detected (E is repeat tone in this case)

M01P02 Transmit timeout warning (10s before inhibit)

M01R00 CCR mode entered

2.9.2 PTT Exceeds Max Transmit Limit

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.

TM9400/TP9400 API Protocol Manual CCR 81


© Tait International Limited August 2019
2.9.3 Selcall Decode Sequence

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.

2.9.4 Notify Buffer Size

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.

The buffer timer is reset if a gap is detected prior to expiry.

82 CCR TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
The notify parameter also sets a filter that allows the user to suppress
decode sequences from being reported if they consist of less than the
selected number of tones in a continuous sequence, as follows:
■ If the decode buffer contains less than the selected number of tones
when it is reset the contents shall be discarded.

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.

TM9400/TP9400 API Protocol Manual CCR 83


© Tait International Limited August 2019
84 CCR TM9400/TP9400 API Protocol Manual
© Tait International Limited August 2019
Tait General Software Licence Agreement

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

TM9400/TP9400 API Protocol Manual Tait General Software Licence Agreement 85


© Tait International Limited August 2019
and the payment of applicable license fees, Tait domain; (vi) remove, or in any way alter or
grants to Licensee a personal, limited, non-trans- obscure any copyright notice or other notice of
ferable (except as permitted in Section 7), and Tait or third-party licensor’s proprietary rights;
non-exclusive license to use the Software in exe- (vii) provide, copy, transmit, disclose, divulge or
cutable code form, and the Documentation, make the Software or Documentation available
solely in connection with Licensee's use of the to, or permit the use of the Software by, any third
Designated Products for the useful life of the party or on any machine except as expressly
Designated Products. This Agreement does not authorized by this Agreement; or (viii) use, or
grant any rights to source code. permit the use of, the Software in a manner that
3.2. The Licensee acknowledges that one or would result in the production of a copy of the
more Software Keys may be required from Tait Software by any means whatsoever other than
for the Software or certain functions or features what is permitted in this Agreement. Licensee
of the Software. The Licensee may only access, may make one copy of the Software to be used
enable and use such Software or functions or fea- solely for archival, back-up, or disaster recovery
tures of the Software with Software Keys issued purposes; provided that Licensee may not oper-
by Tait. Tait may provide the Licensee with a ate that copy of the Software at the same time as
Software Key for the Software or certain func- the original Software is being operated. Licensee
tions or features of the Software agreed to by the may make as many copies of the Documentation
parties as part of this Agreement. The Software as it may reasonably require for the internal use
Key may control the functions or features of the of the Software.
Software licensed in accordance with this Agree- 4.3. Unless otherwise authorized by Tait in writ-
ment. The Licensee’s license to the Software Key ing, Licensee will not, and will not enable or
is limited to a license to use the Software Key allow any third party to: (i) install a copy of the
only to access, enable and use the Software or Software on more than one unit of a Designated
certain functions or features of the Software that Product; or (ii) copy or transfer Software
Tait has agreed to provide to the Licensee and installed on one unit of a Designated Product to
only in accordance with the Documentation. any other device. Licensee may temporarily
3.3. If the Software licensed under this Agree- transfer Software installed on a Designated Prod-
ment contains or is derived from Open Source uct to another device if the Designated Product
Software, the terms and conditions governing is inoperable or malfunctioning. Temporary
the use of such Open Source Software are in the transfer of the Software to another device must
Open Source Software Licenses of the copyright be discontinued when the original Designated
owner and not in this Agreement. If there is a Product is returned to operation and the Soft-
conflict between the terms and conditions of this ware must be removed from the other device.
Agreement and the terms and conditions of the 4.4. Licensee will maintain, during the term of
any applicable Open Source Software Licenses, this Agreement and for a period of two years
the terms and conditions of the Open Source thereafter, accurate records relating to this license
Software Licenses will take precedence. For grant to verify compliance with this Agreement.
information about Open Source Components Tait, or a third party nominated by Tait, may
contained in Tait products and the related Open inspect Licensee’s premises, books and records,
Source licenses, see: upon reasonable prior notice to Licensee, during
https://www.taitradio.com/opensource Licensee’s normal business hours and subject to
Section 4 LIMITATIONS ON USE Licensee's facility and security regulations. Tait is
4.1. Licensee may use the Software only for responsible for the payment of all expenses and
Licensee's internal business purposes and only in costs of the inspection, provided that Licensee
accordance with the Documentation. Any other shall indemnify Tait for all costs (including audit
use of the Software is strictly prohibited. With- costs and legal costs on a solicitor client basis) if
out limiting the general nature of these restric- Licensee has breached the terms of this Agree-
tions, Licensee will not make the Software avail- ment. Any information obtained by Tait during
able for use by third parties on a "time sharing," the course of the inspection will be kept in strict
"application service provider," "service bureau" confidence by Tait and used solely for the pur-
basis, or for any other similar commercial rental pose of verifying Licensee's compliance with the
or sharing arrangement. terms of this Agreement.
4.2. Licensee will not, and will not directly or Section 5 OWNERSHIP AND TITLE
indirectly allow or enable any third party to: (i) Tait, its licensors, and its suppliers retain all of
reverse engineer, disassemble, extract compo- their Intellectual Property Rights in and to the
nents, decompile, reprogram, or otherwise Software and Documentation, in any form. No
reduce the Software or any portion thereof to a rights are granted to Licensee under this Agree-
human perceptible form or otherwise attempt to ment by implication, estoppel or otherwise,
recreate the source code; (ii) modify, adapt, cre- except for those rights which are expressly
ate derivative works of, or merge the Software; granted to Licensee in this Agreement. All Intel-
(iii) copy, reproduce, distribute, lend, or lease the lectual Property developed, originated, or pre-
Software or Documentation to any third party; pared by Tait in connection with providing the
(iv) grant any sublicense or other rights in the Software, Designated Products, Documentation,
Software or Documentation to any third party; or related services, remains vested exclusively in
(v) take any action that would cause the Software Tait, and Licensee will not have any shared
or Documentation to be placed in the public development or other Intellectual Property

86 Tait General Software Licence Agreement TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019
Rights. 7.2. In the case of a value-added reseller or dis-
Section 6 LIMITED WARRANTY; tributor of Tait Designated Products, the consent
DISCLAIMER OF WARRANTY referred to in Section 7.1 may be contained in a
6.1. The commencement date and the term of Tait Reseller or Tait Distributor Agreement.
the Software warranty will be a period of one (1) 7.3. If the Designated Products are Tait vehicle-
year from Tait shipment of the Software. If mounted mobile products or hand-carried por-
Licensee is not in breach of any obligations table radio products and Licensee transfers own-
under this Agreement, Tait warrants that the ership of the Tait mobile or portable radio prod-
unmodified Software, when used properly and in ucts to a third party, Licensee may assign its right
accordance with the Documentation and this to use the Software which is embedded in or fur-
Agreement, will be free from a reproducible nished for use with the radio products and the
defect that eliminates the functionality or suc- related Documentation; provided that Licensee
cessful operation of a feature critical to the pri- transfers all copies of the Software and Docu-
mary functionality or successful operation of the mentation to the transferee.
Software. Whether a defect has occurred will be 7.4. 7.4.For the avoidance of any doubt, Section
determined solely by Tait. Tait does not warrant 7.3 excludes TaitNet Infrastructure, or the prod-
that Licensee’s use of the Software or the Desig- ucts listed at any time under network products at:
nated Products will be uninterrupted, error-free, http://www.taitradio.com.
completely free of Security Vulnerabilities, or 7.5. If Licensee, as a contractor or subcontractor
that the Software or the Designated Products will (integrator), is purchasing Tait Designated Prod-
meet Licensee’s particular requirements. Tait ucts and licensing Software not for its own inter-
makes no representations or warranties with nal use but for end use only by a Customer, the
respect to any third-party software included in Licensee may transfer such Software, but only if
the Software. a) Licensee transfers all copies of such Software
6.2 Tait sole obligation to Licensee, and and the related Documentation to the transferee
Licensee’s exclusive remedy under this warranty, and b) Licensee has first obtained from its Cus-
is to use reasonable efforts to remedy any mate- tomer (and, if Licensee is acting as a subcontrac-
rial Software defect covered by this warranty. tor, from the interim transferee(s) and from the
These efforts will involve either replacing the ultimate end user sub license) an enforceable
media or attempting to correct significant, sublicense agreement that prohibits any other
demonstrable program or documentation errors transfer and that contains restrictions substan-
or Security Vulnerabilities. If Tait cannot correct tially identical to the terms set forth in this Soft-
the defect within a reasonable time, then at Tait ware License Agreement. Except as stated in the
option, Tait will replace the defective Software foregoing, Licensee and any transferee(s) autho-
with functionally equivalent Software, license to rised by this Section may not otherwise transfer
Licensee substitute Software which will accom- or make available any Tait Software to any third
plish the same objective, or terminate the license party nor permit any party to do so. Licensee
and refund Licensee’s paid license fee. If Tait will, on request, make available evidence reason-
investigation of the perceived defect reveals that ably satisfactory to Tait demonstrating compli-
no such defect in fact exists, Tait may recover its ance with all the foregoing.
costs in respect of such investigation from Section 8 TERM AND TERMINATION
Licensee. 8.1. Licensee’s right to use the Software and
6.3. Tait disclaims any and all other warranties Documentation will commence when the Des-
relating to the Software or Documentation other ignated Products are supplied by Tait to Licensee
than the express warranties set forth in this Sec- and will continue for the life of the Designated
tion 6. Warranties in Section 6 are in lieu of all Products with which or for which the Software
other warranties whether express or implied, oral and Documentation are supplied, unless
or written, and including without limitation any Licensee breaches this Agreement, in which case
and all implied warranties of condition, title, this Agreement and Licensee's right to use the
non-infringement, merchantability, or fitness for Software and Documentation may be terminated
a particular purpose or use by Licensee (whether immediately upon notice by Tait.
Tait knows, has reason to know, has been advised 8.2. Within thirty (30) days after termination of
of, or is otherwise aware of any such purpose or this Agreement, Licensee must certify in writing
use), whether arising by law, by reason of custom to Tait that all copies of the Software have been
or usage of trade, or by course of dealing. In removed or deleted from the Designated Prod-
addition, Tait disclaims any warranty to any per- ucts and that all copies of the Software and Doc-
son other than Licensee with respect to the Soft- umentation have been returned to Tait or
ware or Documentation. destroyed by Licensee and are no longer in use by
Section 7 TRANSFERS Licensee.
7.1. Licensee will not transfer the Software or 8.3. Licensee acknowledges that Tait made a
Documentation to any third party without spe- considerable investment of resources in the
cific prior written consent from Tait. Tait may development, marketing, and distribution of the
withhold such consent or at its own discretion Software and Documentation and that Licensee's
make the consent conditional upon the trans- breach of this Agreement will result in irrepara-
feree paying applicable license fees and agreeing ble harm to Tait for which monetary damages
to be bound by this Agreement. would be inadequate. If Licensee breaches this
Agreement, Tait may terminate this Agreement

TM9400/TP9400 API Protocol Manual Tait General Software Licence Agreement 87


© Tait International Limited August 2019
and be entitled to all available remedies at law or withstanding the foregoing, any licensor or sup-
in equity including immediate injunctive relief plier of third-party software included in the Soft-
and repossession of all non-embedded Software ware will be a direct and intended third-party
and associated Documentation. Licensee shall beneficiary of this Agreement.
pay all Tait costs (on an indemnity basis) for the 11.6. SURVIVAL. Sections 4, 5, 6.3, 7, 8, 9, 10,
enforcement of the terms of this Agreement. and 11 survive the termination of this Agree-
Section 9 CONFIDENTIALITY ment.
Licensee acknowledges that the Software and 11.7. ORDER OF PRECEDENCE. In the
Documentation contain proprietary and Confi- event of inconsistencies between this Agreement
dential Information valuable to Tait and are Tait and any other Agreement between the parties,
trade secrets, and Licensee agrees to respect the the parties agree that, with respect to the specific
confidentiality of the information contained in subject matter of this Agreement, this Agree-
the Software and Documentation. ment prevails.
Section 10 LIMITATION OF LIABILITY 11.8 SECURITY. Tait uses reasonable means in
the design and writing of its own Software and
10.1. In no circumstances shall Tait be under any the acquisition of third-party Software in order
liability to Licensee, or any other person whatso- to limit Security Vulnerabilities. While no soft-
ever, whether in Tort (including negligence), ware can be guaranteed to be free from Security
Contract (except as expressly provided in this Vulnerabilities, if a Security Vulnerability is dis-
Agreement), Equity, under any Statute, or other- covered, Tait will take the steps specified in Sec-
wise at law for any losses or damages whether tion 6 of this Agreement.
general, special, exemplary, punitive, direct, 11.9 EXPORT. Licensee will not transfer,
indirect, or consequential arising out of or in directly or indirectly, any Designated Product,
connection with any use or inability of using the Documentation or Software furnished hereun-
Software. der or the direct product of such Documentation
10.2. Licensee’s sole remedy against Tait will be or Software to any country for which New Zea-
limited to breach of contract and Tait sole and land or any other applicable country requires an
total liability for any such claim shall be limited export license or other governmental approval
at the option of Tait to the repair or replacement without first obtaining such license or approval.
of the Software or the refund of the purchase 11.10 SEVERABILITY. In the event that any
price of the Software. part or parts of this Agreement shall be held ille-
Section 11 GENERAL gal or null and void by any court or administra-
11.1. COPYRIGHT NOTICES. The existence tive body of competent jurisdiction, such deter-
of a copyright notice on the Software will not be mination shall not affect the remaining terms
construed as an admission or presumption of which shall remain in full force and effect as if
publication of the Software or public disclosure such part or parts held to be illegal or void had
of any trade secrets associated with the Software. not been included in this Agreement. Tait may
11.2. COMPLIANCE WITH LAWS. Licensee replace the invalid or unenforceable provision
acknowledges that the Software may be subject with a valid and enforceable provision that
to the laws and regulations of the jurisdiction achieves the original intent and economic effect
covering the supply of the Designated Products of this Agreement.
and will comply with all applicable laws and reg- 11.11 CONSUMER GUARANTEES.
ulations, including export laws and regulations, Licensee acknowledges that the licenses supplied
of that country. in terms of this agreement are supplied to
11.3. ASSIGNMENTS AND SUBCON- Licensee in business, and that the guarantees and
TRACTING. Tait may assign its rights or sub- other provisions of prevailing consumer protec-
contract its obligations under this Agreement, or tion legislation shall not apply.
encumber or sell its rights in any Software, with- 11.12 WHOLE AGREEMENT. Licensee
out prior notice to, or consent of, Licensee. acknowledges that it has read this Agreement,
11.4. GOVERNING LAW. This Agreement understands it and agrees to be bound by its
shall be subject to and construed in accordance terms and conditions. Licensee also agrees that,
with New Zealand law and disputes between the subject only to the express terms of any other
parties concerning the provisions hereof shall be agreement between Tait and Licensee to the
determined by the New Zealand Courts of Law. contrary, this is the complete and exclusive state-
Provided however Tait may at its election bring ment of the Agreement between it and Tait in
proceedings for breach of the terms hereof or for relation to the Software. This Agreement super-
the enforcement of any judgment in relation to a sedes any proposal or prior agreement, oral or
breach of the terms hereof in any jurisdiction written, and any other communications between
Tait considers fit for the purpose of ensuring Licensee and Tait relating to the Software and
compliance with the terms hereof or obtaining the Designated Products.
relief for breach of the terms hereof.
11.5. THIRD-PARTY BENEFICIARIES.
This Agreement is entered into solely for the
benefit of Tait and Licensee. No third party has
the right to make any claim or assert any right
under this Agreement, and no third party is
deemed a beneficiary of this Agreement. Not-

88 Tait General Software Licence Agreement TM9400/TP9400 API Protocol Manual


© Tait International Limited August 2019

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy