Wavenet Technology BM28001 Wireless OEM Modem Module User Manual BOOMER

Wavenet Technology Pty Ltd. Wireless OEM Modem Module BOOMER

ex9 manual

Download: Wavenet Technology BM28001 Wireless OEM Modem Module User Manual BOOMER
Mirror Download [FCC.gov]Wavenet Technology BM28001 Wireless OEM Modem Module User Manual BOOMER
Document ID270861
Application IDt+rZ6qyRrcst1AFN9oHVRw==
Document Descriptionex9 manual
Short Term ConfidentialNo
Permanent ConfidentialNo
SupercedeNo
Document TypeUser Manual
Display FormatAdobe Acrobat PDF - pdf
Filesize141.73kB (1771586 bits)
Date Submitted2002-09-17 00:00:00
Date Available2002-12-02 00:00:00
Creation Date2002-09-11 10:58:43
Producing SoftwareAcrobat PDFWriter 4.0 for Windows
Document Lastmod2002-09-18 12:58:58
Document TitleBOOMER.PDF
Document CreatorMicrosoft Word
Document Author: ArtB

Consulting * Research * Training *Certification Testing Since 1981
FCC ID: PQS-BM28001
Exhibit 9
User’s Manual
August 2002
APREL Project No.: WVTB-Boomer II Modem-3922-1
Boomer II
OEM Modem
User Manual
and
Integrator’s Guide
August 2002
© Wavenet Technology Pty Ltd
ACN 079 965 003
Publication No. BM210012WT11 (11 September 2002)
Published August 2002
This publication is copyright and no part may be reproduced or copied without the prior consent of:
Wavenet Technology Pty Ltd.
140 Burswood Rd
Burswood, 6100
Western Australia
Telephone:
Facsimile:
E-mail:
Web Site:
+61 8 9262 0200
+61 8 9355 5622
wavenet@wavenet.com.au
www.wavenet.com.au
This manual is intended to be used for the operation of Wavenet Technology equipment. Performance
figures quoted are typical values and subject to normal manufacturing and service tolerances.
Wavenet Technology Pty Ltd reserves the right to alter, without notice, the equipment, software or
specification to meet technological advancement.
Microsoft, Windows and the Windows logo are registered trademarks or trademarks of Microsoft
Corporation in the United States and other countries. Other product and company names herein may be
the trademarks of their respective owners.
Whilst every precaution has been taken in the preparation of this document, neither Wavenet
Technology Pty Ltd nor any of its representatives shall have any liability to any person or entity with
respect to any liability, loss or damage caused or alleged to be caused directly or indirectly by the
information contained in this book.
Published by Wavenet Technology Pty Ltd.
This device has not been authorized as required by the rules of the Federal Communications
Commission (FCC). This device is not, and may not be, offered for sale or lease, or sold or leased
within the USA, until authorization is obtained.
This product contains a transmitter approved under the FCC rules.
800MHz Modem FCC ID: PQS-BM28001
900MHz Modem FCC ID: PQS-BM29001
This device complies with Part 15 of the FCC rules.
Operation is subject to the following two conditions:
(1) This device may not cause harmful interference, and
(2) This device must accept any interference received including interference that may cause undesired
operation.
Boomer II User Manual & Integrator’s Guide __________________________________________________Contents
Contents
Introduction...................................................................................................................7
Applications ..............................................................................................................8
Compliance Statement ...........................................................................................9
Information for Your Safety................................................................................. 10
Host Requirements............................................................................................... 11
Installation.................................................................................................................. 13
Mounting the Boomer II OEM Modem to Your Device ................................... 14
Connecting the Data Interface Port ................................................................... 15
Pin Descriptions ................................................................................................ 15
Serial Communications Interface................................................................... 16
Status Input / Output lines............................................................................... 17
LED Interface .................................................................................................... 17
Connecting & Positioning the Antenna ............................................................. 20
Positioning ......................................................................................................... 20
Supplying Power................................................................................................... 21
Batteries............................................................................................................. 21
Plug-in Supplies................................................................................................ 21
Automotive Supplies ........................................................................................ 22
Environmental Considerations ....................................................................... 22
Test Jig....................................................................................................................... 23
Features ................................................................................................................. 23
Exploring the Boomer II Test Jig........................................................................ 24
Initial Calibration ................................................................................................... 27
Set Up..................................................................................................................... 28
RSUSER................................................................................................................ 30
Operations ......................................................................................................... 30
Using RSUSER................................................................................................. 31
Hot Key Descriptions........................................................................................ 31
Reprogramming Modems................................................................................ 35
Software Development Kit....................................................................................... 37
Native Control Language Application Programmer’s Interface..................... 38
Implementation.................................................................................................. 38
Logical Architecture.......................................................................................... 39
Application Interface......................................................................................... 41
Standard Context Routing Application Programmer’s Interface ................... 58
Implementation.................................................................................................. 59
SCR Structures ................................................................................................. 59
BM210012WT09
Wavenet Technology
Contents _________________________________________________ Boomer II User Manual & Integrator’s Guide
SCR Functions .................................................................................................. 64
Application Development......................................................................................... 77
Roaming Issues .................................................................................................... 78
Roaming Requirements................................................................................... 78
Inbound SDU Failures ..................................................................................... 80
Outbound SDU Failure .................................................................................... 81
Loss of Network Contact ................................................................................. 81
Power Management ............................................................................................. 82
PowerSave Mode ............................................................................................. 82
Inactivity Time-Out............................................................................................ 82
On/Off upon User Demand ............................................................................. 83
Radio On/Off on Application Command........................................................ 83
Battery Life Considerations ............................................................................. 83
PowerSave Protocol......................................................................................... 83
Wireless Data Systems Considerations............................................................ 84
Application Efficiency....................................................................................... 85
Large Message Transfer ................................................................................. 85
Message Transit Time ..................................................................................... 85
Message Routing and Migration ............................................................................ 88
Message Routing.............................................................................................. 88
Network Link Layers......................................................................................... 89
Standard Context Routing (SCR)....................................................................... 90
SCR Message Types ....................................................................................... 91
Highlights of SCR Differences........................................................................ 91
SCR Header Charts ............................................................................................. 95
Host Request Message Header Fields ......................................................... 96
Host Confirmation Message Header Fields ................................................. 98
Mobile Information Message Header Fields...............................................100
DataTAC Messaging (DM)................................................................................102
DM Message Types .......................................................................................102
Highlights of DM Differences ........................................................................102
DM Header Charts..............................................................................................103
Message Generate Header Fields...............................................................103
Receive Header Fields ..................................................................................105
Host Messaging (HM)........................................................................................107
Other Development Issues ...............................................................................107
Localizing an Application...............................................................................107
Testing an Application...................................................................................108
Appendix A - NCL Interface ..................................................................................110
Generic NCL (Native Mode)..............................................................................110
Wavenet Technology
BM210012WT09
Boomer II User Manual & Integrator’s Guide __________________________________________________Contents
Command SDUs (CMND, ASCII A).....................................................110
Event Report SDUs (EVENT, ASCII B) ..............................................113
Response Status SDUs (RESP, ASCII C) .........................................114
Wavenet specific NCL Extensions ...................................................................116
GET STATUS COMMANDS:................................................................116
Generic set RPM Configuration command (WN_SET_PARAM):...121
Generic get RPM Configuration command (WN_GET_PARAM): ..123
NCL Label Values...................................................................................124
SAR Routine Function .......................................................................................125
SAR Algorithm.....................................................................................................126
Appendix B - Sample Programs...........................................................................127
Client Application................................................................................................127
Server Application ..............................................................................................130
Initialisation and Login ...................................................................................131
Appendix C - Wavenet Application Loader.........................................................133
Updating Application Loader Software on Your Modem ..............................133
Troubleshooting ..................................................................................................135
Appendix D - Numeric Conversion Chart ...........................................................137
Appendix G - Specifications..................................................................................139
BM210012WT09
Wavenet Technology
Contents _________________________________________________ Boomer II User Manual & Integrator’s Guide
Wavenet Technology
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________________________Introduction
Introduction
The Boomer II OEM Modem is a radio packet modem, intended for
use on the Motorola DataTAC 4000 SFR and DataTAC 5000 MFR
data communication networks.
It is primarily designed to be integrated into customer equipment as an
OEM modem. There are two versions available, an 800MHz version (A
band) and a 900MHz version (B band).
The modem interfaces to the equipment’s controller by using the data
interface port. The protocol supported over this link is Native Control
Language (NCL).
Although the modem has embedded software, it has no built in
application software. All application software must be separately
installed and run from the device to which the modem is connected.
A Software Development Kit (SDK) is available and described later in
this manual to assist this process.
A picture of the Boomer II OEM Modem is shown below.
RF Connector
LED
Window
Data Interface Port
This manual contains the following sections:
Section 1: General product information.
Section 2: Installation Guide.
Section 3: Test Jig and Boomer II Evaluation Guide.
Section 4: Software Development Kit Guide for the modem interface
(NCL) and the network host interface (SCR).
Section 5: Client Application Guide.
Section 6: Message Routing Guide.
BM210012WT09
Wavenet Technology
Introduction _______________________________________________ Boomer II User Manual & Integrator’s Guide
Features
The Boomer II OEM modem is approximately the size of a credit card
and just 9mm thick. The modem is easily connected to many other
devices and can be incorporated into a variety of package formats. The
modem has a TTL serial port.
The Boomer II OEM Modem has the following features:
Serial communications interface port (TTL level)
running an NCL protocol
Indicator lights shows the status of the network coverage and
power supply
Four configurable digital input/output lines for external
control/monitoring
Software configurable RF calibration adjustments to suit
specific networks
High sensitivity reception
Small footprint and low profile design
Low-voltage and low standby current consumption for battery
based products
Auto-wake up of host on incoming messages
Roaming capabilities as used in DataTAC system
Modem is always online using the DataTAC network
Easy to install, service and update
Applications
Suitable devices in which the Boomer II OEM Modem can be used
include the following applications:
Meter Reading
The modem can be used to read billing information from intelligent
electrical meters and basic disc meters. Data is transmitted wirelessly
through a radio network to billing computers.
EFTPOS
The modem can perform handshaking and complete verification of all
data transmitted through the wireless network.
Vending Machines
Vending machines can also utilise radio data technology. Many
machines already transmit usage and refill requirements to company
head offices via standard telephone lines. Radio modems allow vending
machines to be placed in areas with poor access to telecommunications
infrastructure, providing a cost-effective alternative to installing new
telephone lines. On refilling, only the required refills will be
Wavenet Technology
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________________________Introduction
despatched to the required sites maximising truck carrying capacity and
consequently efficiency.
Fire Alarm Detection
Conventional telephone wire connections are slow to dial out and can
burn before the emergency call can be placed. Laws in many states and
countries require businesses to have an on-line dial out fire alarm
system. The Boomer II OEM Modem offers a real solution to this
problem.
Parking, Buses and Ticketing
Ticketing machines are being be converted to cashless operation. The
Boomer II OEM Modem is the best alternative to facilitate the
introduction of this cashless technology.
Compliance Statement
This device has not been authorized as required by the rules of the Federal
Communications Commission (FCC). This device is not, and may not be, offered
for sale or lease, or sold or leased within the USA, until authorization is obtained.
The Boomer II modem is supplied as an OEM Modem Module for
integration into a customer specific product. This combined product
will have it’s own antenna, RF cable and unique FCC ID. This
combined product will require its own testing by an FCC testing house
and submission to the FCC for approval.
This equipment generates, uses and can radiate radio frequency energy
and, if not installed and used in accordance with the manufacturer’s
instructions, may cause interference harmful to radio communications.
There is no guarantee however, that interference will not occur in a
particular installation. If this equipment does cause harmful
interference to radio or television reception, which can be determined
by turning the equipment off and on, the user is encouraged to try to
correct the interference by one or more of the following measures:
Reorient or relocate the receiving antenna.
Increase the separation between the equipment and receiver.
Connect the equipment into an outlet on a circuit different from
that to which the receiver is connected.
Consult your supplier or an experienced radio/TV technician
for assistance.
Warning : Changes or modifications to this unit not expressly
approved by the party responsible for compliance could void the user’s
authority to operate this equipment.
BM210012WT09
Wavenet Technology
Introduction _______________________________________________ Boomer II User Manual & Integrator’s Guide
Information for Your Safety
Please read these safety instructions and the operation instructions
provided in this manual before operating the Boomer II OEM Modem.
Safe Use
Switch the modem off in areas where radio devices are forbidden, or
when it may cause interference or danger. For example, fuel depots
(fuel storage and distribution areas), chemical plants, locations in
which hazardous or combustible gases may be present and where
blasting operations are in progress.
Do not use the modem in an aircraft. Such use may affect aircraft
instrumentation, communication and performance and may be illegal.
Be aware that the modem may interfere with the functionality of
inadequately protected medical devices, including pacemakers.
Additionally, the effect of the radio signals from the modem on other
electronic systems, including those in your car (such as electronic fuelinjection systems, electronic anti-skid braking systems, and electronic
cruise-control systems) may affect the operation of these systems,
which should be verified before use in the applications
Do not place the modem on an unstable surface. It may fall and damage
the equipment.
Never push objects of any kind into the modem through openings as
they may short out parts that could result in a fire or electrical shock.
Never spill liquid of any kind on the modem. Do not use the modem
near water (for example near a bathtub or sink, in a wet basement, near
a swimming pool etc.). The modem should be situated away from heat
sources.
Disconnect the modem from the power source before cleaning. Do not
use liquid or aerosol cleaners. Use a damp cloth to clean the unit.
Disconnect the modem from the power source and contact your
supplier if:
Liquid has been spilled or objects have fallen onto the modem.
It has been exposed to rain or water.
It has been dropped or damaged in any way.
It does not operate normally by following the instructions
contained in this manual.
It exhibits a distinct change in performance.
Failure to observe all these instructions will void the limited warranty.
Wavenet Technology
10
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________________________Introduction
Host Requirements
The minimum system requirements of the host interface PC in order to
utilise the Software Development Kit (SDK) are:
BM210012WT09
Intel compatible Pentium computer or higher
Windows 95 or later
16MB RAM (memory) minimum, 32MB recommended
1MB available hard disk space
9-pin serial Port using a 16550 UART
3.5-inch Disk Drive
CD-ROM drive
11
Wavenet Technology
Introduction _______________________________________________ Boomer II User Manual & Integrator’s Guide
Wavenet Technology
12
BM210012WT09
Boomer II User Manual & Integrator’s Guide _________________________________________________Installation
Installation
This section will help you to successfully integrate the Boomer II OEM
Modem into your custom application. Before using your modem you
must:
Mount the Boomer II OEM Modem to your device
Connect the Data Interface Port
Connect and position the antenna
Supply power
A picture of the Boomer II OEM Modem is shown below.
RF Connector
LED
Window
Data Interface Port
The modem has the following interfaces:
Data Interface Port
30-way connector
LED Window
Power
LED
Green, flashes when scanning
On, when locked
Off, when the modem is off
Receive
LED
Green, flashes when receiving
Transmit
LED
Red, flashes when transmitting
RF Connector
BM210012WT09
MMCX female socket
13
Wavenet Technology
Installation ________________________________________________ Boomer II User Manual & Integrator’s Guide
Mounting the Boomer II OEM Modem to Your Device
The Boomer II OEM Modem has an M2 Mounting Bolt hole in each
corner, which should be used to bolt the modem onto an appropriate
surface. The mounting hole pattern is four holes in a 60mm X 46mm X
42mm trapezoid, with each hole to suit an M2 (2.0mm) bolt. Refer to
the following diagram.
52
70
Hole diameter:
4 x 2.30mm
Fixing screw size:
M2
Top View
Side View
Mounting Details
The mating surface should be flat and ensure a rigid mounting for the
modem to minimise the transmission of vibration to the unit.
There should be an adequate supply of airflow to ensure the modem’s
temperature limits are not exceeded.
Wavenet Technology
14
BM210012WT09
Boomer II User Manual & Integrator’s Guide _________________________________________________Installation
Connecting the Data Interface Port
There are two connectors to interface the Boomer II OEM Modem with
your device.
RF Connector (described in the next section), and
Data Interface Port
The data interface port is used to interface the modem to a serial
computing device and a power supply. The power supply requirements
are described in the next section.
A flat 30-way Flexible Printed Circuit (FPC) cable 0.3mm thick with
1mm centreline spacing is used between the Boomer II OEM Modem’s
data interface port and your device.
The asynchronous serial interface on the Boomer II OEM Modem
operates at 3V and can be controlled by a wide variety of
microcontrollers and microprocessors. The modem can be connected
directly to a microcontroller or through a universal asynchronous
receiver/transmitter (UART) to a microprocessor data bus.
If the modem is to be connected directly to a PC or other RS232
device, an interface must be provided to convert the signal voltage to
the higher values required by an RS232 device.
Data Interface Pin Descriptions
Pin
BM210012WT09
Signal
Description
DCD
Data Carrier Detect
RXD
Receive Data
TXD
Transmit Data
DTR
Data transmit ready
GND
Ground
DSR
Data Set Ready
RTS
Request to Send
CTS
Clear to Send
RI
Ring Indicator
10
HCRESET
Modem Reset
11
TEST PIN
Not connected
12
HOSTPWR_ON
Modem Power on/off
13
LED0_MSGWTG
Message Waiting
14
LED1_INRANGE
In Range
15
LED2_LOWBAT
Low Battery
16
SS0/RXD2
Status Signal 0
17
SS1/TXD2
Status Signal 1
18
SS2
Status Signal 2
15
Wavenet Technology
Installation ________________________________________________ Boomer II User Manual & Integrator’s Guide
19
SS3
Status Signal 3
20
HOST 3.8V
Supply Voltage (3.4 – 4.2V)
21
HOST3.8V
Supply Voltage (3.4 – 4.2V)
22
HOST 3.8V
Supply Voltage (3.4 – 4.2V)
23
HOST3.8V
Supply Voltage (3.4 – 4.2V)
24
TEST-PIN
Not connected
25
HOST GND
Ground
26
HOST GND
Ground
27
HOST GND
Ground
28
HOST GND
Ground
29
TEST-PIN
Not connected
30
TEST-PIN
Not connected
Serial Communications Interface
The modem communicates with the controller using the Data Interface
Port connection interface. The protocol supported over this link is the
Native Control Language (NCL). The data format for NCL is: 8 data
bits, no parity, 1 stop bit.
The serial interface lines (RXD, TXD, DCD, DTR, DSR, RTS, CTS,
RI) are TTL compatible. They are fitted with a 33Ù series resistor and
clamp diode to the internal supply line for protection. The electrical
interface capability of these signals is as follows:
Input Voltage Range
0 – 3.3V or 0 - 5V
Output Voltage Range 0 - 3.3V
Current Source/Sink
± 3mA (maximum)
The operation and active condition of these lines is summarized below.
Serial Communications Interface Definitions
Wavenet Technology
J1
Pin #
Signal
Description
Signal
Active State
DCD
Data Carrier Detect
Output
Low when modem in-range
RXD
Receive Data
Output
Low when active
TXD
Transmit Data
Input
Low when active
DTR
Data transmit ready
Input
Low when ready
DSR
Data set ready
Output
Low when ready
RTS
Request to send
CTS
Clear to send
Output
High when modem requires
data throttling
RI
Ring indicator
Output
Pulses Low when messages
are waiting
16
Input
High when host requires data
throttling
BM210012WT09
Boomer II User Manual & Integrator’s Guide _________________________________________________Installation
Status Input / Output lines
Note: Not currently supported but may be added in future releases.
The status lines (SS0 to SS3) may be software configured for bidirectional operation. Each line has a 33Ù series resistor and clamp
diode to the internal supply line for protection. The electrical interface
capability and function of these signals are as follows:
Input Voltage Range
0 – 3.3V or 0 - 5V
Output Voltage Level
0 - 3.3V
Current Source/Sink
± 3mA (maximum)
The operation and active condition of these lines is summarized below.
Status Input/Output Interface Definitions
J1
Pin #
Signal
Description
Signal
16
SS0
Status Signal
Input/ Output
User configurable (future option)
17
SS1
Status Signal
Input/ Output
User configurable (future option)
18
SS2
Status Signal
Input/ Output
User configurable (future option)
19
SS3
Status Signal
Input/ Output
User configurable (future option)
Active State
LED Interface
The modem provides three on-board indicators (LEDs), for diagnostic
monitoring purposes as well as three modem controllable LED outputs
through the Data Interface Connector.
On-Board LED Indicators
The on-board LEDs are visible through a small window in the case of
the modem. In order of sequence (from left to right when viewing the
modem facing the data interface connector) the LEDs are as follows:
Power
LED
Transmit
BM210012WT09
Green flashes when power normal and scanning for
channel
On
when power normal and locked on channel
Off
when the modem is off
Red
flashes when data is transmitted
17
Wavenet Technology
Installation ________________________________________________ Boomer II User Manual & Integrator’s Guide
LED
Receive
LED
Wavenet Technology
Green flashes when data is received
18
BM210012WT09
Boomer II User Manual & Integrator’s Guide _________________________________________________Installation
LED Output Lines
In addition to the on-board LEDs there are three signal lines (Low
Battery, Message Waiting, In-range), which are controllable by the
modem for connection to an external LED. Each line has a 33Ù series
resistor and clamp diode to the internal supply line for protection. It is
recommended a series resistor be used with the external LED to limit
current accordingly. The electrical interface capability and function of
these signals are as follows:
Output Voltage Level
0 – 3.3V
Current Source/Sink
± 3mA (maximum)
The operation and active condition of these lines is summarized below.
LED Interface Definitions
J1
Pin #
Signal
13
14
15
Description
Signal
Active State
LED 0_ MSGWTG
Message
waiting
Output
Low when message waiting
LED 1_ INRANGE
In range
Output
Low when modem in-range
LED 2_ LOWBAT
Low battery
Output
Low when battery is less than
3.5V,
High when battery is greater
than 3.6V
Low Battery
The Low Battery signal is held active low whenever the supply voltage
drops below an acceptable level (less than 3.5V) and deactivated when
the voltage level becomes acceptable again (greater than 3.6V). The
transitions will occur at the same time as the low battery event occurs
(or would occur if the event was activated). Note that in the case of a
very fast transition between voltages, it may take up to 20 seconds for
the modem to confirm a change in battery status.
Message Waiting
The Message waiting signal is held active low whenever there is at
least one message waiting in the inbound buffers to finish being sent to
the network, or at least one complete message in the outbound buffers
which hasn’t been sent to the local device.
In-Range
The In Range signal is held active low whenever the modem is in
range. It tracks the function of the Data Carrier Detect (DCD) signal.
BM210012WT09
19
Wavenet Technology
Installation ________________________________________________ Boomer II User Manual & Integrator’s Guide
Connecting & Positioning the Antenna
The Boomer II OEM Modem provides an MMCX RF connector
interface located at the top of the unit, to attach to the antenna cable.
The antenna does not plug directly into the modem but uses an antenna
cable to interface between your device and the modem.
The antenna cable should be a low loss, 50Ω impedance and have a
MMCX plug that can mate with the modem’s MMCX socket
(82MMCX-S50-0-2). It is recommended that a Huber+Suhner
connector be used to connect to the modem as below;
11 MMCX
Straight Connector
16 MMCX
Right Angle Connector
If an extension cable is required to the antenna, it should be low loss, as
short as possible and an impedance of 50 ohms. Proper matching
connectors should be used, as each connector introduces a return loss
and reduces performance.
The minimum requirements for the antenna used with the Boomer II
OEM Modem are:
Impedance:
50Ω
Centre Frequency:
833MHz ± 5MHz
Frequencies of operation:
806 to 825MHz (transmit)
851 to 870MHz (receive)
Acceptable return loss:
VSWR < 1.5 or RL < -14dB (recommended)
VSWR < 2.0 or RL < -10dB (minimum)
The power output of the Boomer II OEM Modem is nominally 1.8W at
the antenna port. The antenna gain or loss will affect this value.
Positioning
Positioning the antenna will affect the gain provided by the antenna.
The antenna should be orientated so that it provides vertical
polarisation as the DataTAC network is based on vertically polarised
radio-frequency transmission.
The antenna should be located as far from the active electronics of the
computing device as possible. Typically, a metal case of a computing
device and its internal components may attenuate the signal in certain
directions. This is undesirable as the sensitivity and transmit
performance of the Boomer II would be reduced. However, careful use
of metal used for the ground plane for an antenna can improve the
antenna gain and the coverage area for the system.
If your device is designed to sit on a surface, the antenna should be
positioned as far from the bottom of the device as possible. This is to
Wavenet Technology
20
BM210012WT09
Boomer II User Manual & Integrator’s Guide _________________________________________________Installation
reduce the radio frequency reflections if the device is placed on a metal
surface.
If your device is hand held or is worn next to the body, the antenna
should be positioned to radiate away from the body.
Supplying Power
The Boomer II OEM Modem must be provided with a clean power
source capable of delivering bursts of high current.
The modem draws its power in bursts. The power required changes
rapidly depending on whether the modem is transmitting, receiving or
on standby.
The power supply requirements are:
Voltage:
3.8V (3.4 to 4.2V range)
Transmitter:
1.7A
Receiver:
85mA
Transmit Duration:
32ms (minimum)
1s (maximum)
Off current consumption:
< 100µA
Power Supply Ripple:
< 15mV peak to peak
Batteries
The Boomer II OEM Modem may be powered by batteries if used with
a handheld device.
Nickel cadmium (NiCad) batteries may be used for devices requiring
wide temperature ranges. Nickel metal hydride (NiMH) and lithium ion
(Li+) batteries may also be used for devices utilised above 0ºC.
Specifications for these batteries should be obtained from the
manufacturer.
The selected battery must be able to meet the Boomer II power
requirements as mentioned previously.
Plug-in Supplies
A mains plug-in supply must be designed to ensure that voltage spikes,
lightening and other power fluctuations cannot damage the Boomer II.
Transient voltage protection zener diodes or other spike arrestor
circuits may be added to keep the inputs within the power requirements
mentioned previously. These should have a value of 20V and be placed
on the supply side of the regulator circuit.
BM210012WT09
21
Wavenet Technology
Installation ________________________________________________ Boomer II User Manual & Integrator’s Guide
Automotive Supplies
Extra protection is required from an automotive supply to protect the
Boomer II OEM Modem from power fluctuations when used in an
automobile.
The electrical transient conditions (e.g. battery jump start), may
damage the modem if not adequately clamped and filtered.
Environmental Considerations
The environmental requirements of the Boomer II OEM Modem are as
follows:
Operating Temperature:
-30° to +60°C
Storage Temperature:
-40° to +70°C
You should ensure these limits are not exceeded in the intended
application.
Wavenet Technology
22
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________________________Test Jig
Test Jig
The Boomer II Test Jig provides RS-232 serial interface ports between
a PC and the modem. It is designed to enable you to quickly interface
the Boomer II to a standard PC (through a COM port) or a terminal
device with an RS-232 serial port.
The test jig acts as a temporary host for the modem and provides access
points to the radio’s communication port, allowing you to monitor
activity with a logic probe, multimeter or oscilloscope.
Features
All Input/Output Lines configurable by jumpers and/or
accessible through parallel FPC connector.
On-board dual RS232 Serial Communication interface ports
with DB9 connectors
Through the SPY MODEM connector, you can monitor the data
transmitted from the modem (RX, DSR, and CTS).
Through the PORT 2/SPY PC connector, you can monitor the
data transmitted from the PC (TX, RTS and DTR), or talk to the
second serial port of the modem. You can make this choice by
putting all five jumper links on the right or left side of the RDW
header connector near the port.
Switches and LED indicators on SS0 - SS3 modem I/O lines.
On-board voltage regulator for Boomer II OEM supply rail.
On-board LEDs for three external signals:
Low battery
Message waiting
In range
BM210012WT09
On-board antenna matching network allowing conversion from
MMCX to SMA connectors.
23
Wavenet Technology
Test Jig __________________________________________________ Boomer II User Manual & Integrator’s Guide
Exploring the Boomer II Test Jig
The test jig comprises the following components:
DC Jack
Input Supply
On/Off
Switch
3 RDW
Header
connector
VCC
test pin
3.15A Fuse
5X20mm
Port 2 / SPY PC Interface
DB9 Connector
8-way
DIP switch
SPY Modem Interface
DB9 Connector
ADJ VCC
52-pin header connector
Ground
test pin
Host PC Interface
DB9 Connector
Audio In
BNC Connector
Audio Out
BNC Connector
Parallel 30-pin FPC Connector
For signal access
Boomer II
On-board
LED indicators
Lower 30-pin FPC Connector
For connection to modem
SMA
Antenna
socket
SMA
Modem
socket
On / Off switch
Switches the power to the test jig on or off.
DC Jack
Provides power to the test jig. (3.8V)
DIP Switch
8-way DIP switch used to configure the test jig.
The following table shows the DIP switch configuration.
Dip
Switch #
Signal
On
PA7
Always leave this switch in the OFF position
OFF
OSC OFF
Always leave this switch in the ON position
ON
SS3
3V
10k Pul ldown to GND
OFF
SS2
3V
10k Pull down to GND
OFF
SS1
3V
10k Pull down to GND
OFF
SS0
3V
10k Pull down to GND
OFF
H-P-ON
Turn the modem off
Turn the modem on
OFF
RESET
Keep modem reset
Keep modem in working status
OFF
Wavenet Technology
Off
24
Default
Position
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________________________Test Jig
Port 2 / SPY PC
Connector
DB9 connector used for two purposes depending
upon the settings of the jumper switches located
just behind the connector on the PCB. If the
jumpers are used to connect the centre column to
the right hand outer column (TX, RTS etc), then
the port acts as a spy connection for the data
between the PC and the modem via the PC
connector.
An analyser program such as “spy.exe” can be
used to view the data.
SPY Modem
Connector
DB9 connector, used to spy on the RS-232 data
sent by the modem to the DTE (using DSR, RX,
CTS and GND signals).
An analyser program such as “spy.exe” can be
used to view the data. A communication program
such as “HyperTerminal” can be of limited use if
the data spied upon contains a lot of alphanumeric ASCII characters.
Host PC Connector DB9 connector, used to connect serial port 1
(of 2) of the modem to the DTE. The default
values for this RS-232 connection is 9600bps, 8
bits, no parity, 1 stop bit.
This port can also be used to download new
modem software to the Boomer II.
Parallel FPC
Connector
30-way FPC (Flexible Printed Circuit) connector
used for signal access.
Lower FPC
Connector
30-way FPC (Flexible Printed Circuit) connector
used to connect the Boomer II to the test jig.
Modem Connector
Used to connect the Boomer II’s antenna socket
to the antenna connector.
Antenna Connector Used to connect the external antenna.
LEDs
There are eight LEDs used to indicate the
following:
Power
Low Battery
In Range
Message Waiting
SS0
SS1
SS2
SS3
BM210012WT09
25
Wavenet Technology
Test Jig __________________________________________________ Boomer II User Manual & Integrator’s Guide
Audio Out
Connector for monitoring an audio output. Used
to monitor baseband signal, BIT Error Rate
(requires a PER test jig), receiver and
demodulation.
Warning : Must use a high impedance monitor,
100kÙ.
Audio In
Connector for monitoring an audio input. Used to
monitor modulation and transmission.
Warning : Must use a high impedance monitor,
100kÙ.
3 RDW
Header
connector
3 RDW
Header
connector
3 RDW Header
Connector
Connectors used for jumpers (supplied).
For Port 2 use, all the jumpers are positioned
from the centre column to the left hand column.
For Spy PC use, all the jumpers are positioned
from the centre column to the right hand column.
52-pin Header
Connector
Connector used for jumpers (supplied).
All the jumpers are connected as default.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Wavenet Technology
DCD
RX
TX
DTR
GND
DSR
RTS
CTS
RI
RESET
H-P-ON
MSGWTG
INRANGE
LOWBAT
SSO/RX2
SS1/TX2
SS2/CTS2
SS3/RTS2
3.8V
3.8V
3.8V
3.8V
GND
GND
GND
GND
26
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________________________Test Jig
Initial Calibration
Without connecting a Boomer II OEM Modem to the Test Jig, initially
check the calibration of the on-board voltage regulator. (This regulator
supplies the RS232 converter and other on-board circuitry only. It does
not supply power to the modem).
1. Connect the centre pin of the DC jack to the +3.8V power
supply with 2A capability and the external pin to the ground.
2. Adjust the trimpot marked ADJ VCC to make sure the voltage
on the test pin next to the ADJ VCC is 3.3V.
3. Keep all of the switches on the dipswitch in the off position
(except DIP switch 2) for normal modem operation.
BM210012WT09
27
Wavenet Technology
Test Jig __________________________________________________ Boomer II User Manual & Integrator’s Guide
Set Up
With the power off,
1. Connect the Boomer II OEM modem to the lower FPC
connector on the test jig using a 30-way FPC cable.
Use the following procedure to insert the cable into the FPC
connector.
a. Lift up the lock lever of the FPC connector by flipping it
up with the nail of your thumb or index finger.
Lock Lever
b. Ensure that the cable is inline with the connector and
insert the FPC cable into the connector with the
conducting surface of the cable facing downwards.
FPC conductor side
c. Press down the lock lever.
Note: If the cable has been partially inserted, or out of
alignment, the lock lever will not engage. Should this
occur, remove the cable (see below) and repeat steps
a-c.
Wavenet Technology
28
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________________________Test Jig
Use the following procedure to remove the cable from the FPC
connector.
a. Lift up the lock lever of the FPC connector by flipping it
up with the nail of your thumb or index finger.
Lock Lever
b. Remove the cable after the lock is released.
2. Install an antenna to the modem. Use either the on-board SMA
connection and an adapter cable between the modem MMCX
connector and the test jig, or directly to the modem itself.
3. Connect the PC to the DB9 connector marked “PC” using a
standard serial cable.
4. Switch the power supply on.
5. Select the DIP switch labelled H-P-ON to the ON position.
The Power LED on the modem should illuminate.
You are now ready to communicate with the modem using the
PC as a host.
The modem should be able to talk to the PC by using Wavenet
RSUSER software, or other NCL protocol software.
BM210012WT09
29
Wavenet Technology
Test Jig __________________________________________________ Boomer II User Manual & Integrator’s Guide
RSUSER
The Radio Service Utility software (RSUSER ) enables a user to
exercise and configure Wavenet Modems. This software runs in a DOS
window under Windows 95, 98, NT, or 2000.
RSUSER interfaces with the Boomer II OEM Modem via a PC’s
communications port and the Test Jig’s PC port using an RS-232 cable
with DB9 connectors.
RSUSER is issued with the following files:
RSUSER.EXE
The executable
RSTEST.DEF
Definition file for scripts
RSUSER.INI
Initialisation file. Created by RSUSER.EXE
RPM.LOG
Log file. Created by RSUSER.EXE.
Refer to Appendix E for the NCL command list.
Operations
The following screen is displayed on start up or whenever the Help Hot
Key  is pressed.
*********RSUSER.M V2.xx HELP**********
NCL COMMANDS
- enable receive
_ - Get RPM status
@ - disable receive
- enable transmit
& - Get Next Msg
# - disable transmit
SEND MESSAGES (blocks composed of ...)
- Text ' '-'z'var length
, for short text
- random bytes var length % for short random
- Dotting ('U's) message
> for canned message
- sequential text var length
MISCELLANEOUS
F5 - Change COM regs [4,3F8]
Alt'b' - Change baud rate [9600]
F11 -Toggle dumping of data bytes of incoming NCL
F9 - Activate packet loopbacks
F10 - Configure loopback timing
CONFIG PROGRAMMING
Alt3 - Program home area
Alt6 - Program Group LLIs
Alt5 - Program Channels
Alt C -Read params from modem
Left/Right arrow - send XOFF/XON. Alt X/Z - rts off/on
Alt S/A - dtr off/on
Alt w - Batt. status Alt d - Radio status
F1 - Source LLI [90100001]
F2 - Destination LLI [90100001]
F3 - Sys Address[A1010A]
F4 - Compile NCL Msg
ESC - QUIT program
F6 - Auto sync LLIs and home area
Type '?' to get back to this help screen
RSUSER allows operators to exercise the modem via Native NCL
Commands (and Vendor Specific Commands), hot keys or an input
line. Common user commands such as enabling the modems receiver
and transmitter are included in the Hot Key list. Native NCL
commands can be issued from the F4 Hot key. A log file RPM.log is
automatically started for a new session of RSUSER. To save a session,
exit RSUSER and rename the RPM.log file.
Wavenet Technology
30
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________________________Test Jig
Using RSUSER
1. Supply power to the modem (e.g. via the test jig), switch it on
and plug the modem into the communications port of the
computer. (Refer to the modem’s user or test jig documentation
for cabling and connection instructions).
2. Execute RSUSER.EXE
3. Check that the communication port settings displayed are
correct under the Miscellaneous Heading.
4. If the communications port settings are incorrect, press ,
enter new settings, and exit from RSUSER by pressing
 and return to step 2.
5. Press the <_> key (the underline) to see if you receive a
response from the modem. If not, there may be a problem with
the connection or communication settings. Reset the modem,
exit from RSUSER, check all connections and return to step 1.
6. Use RSUSER as required and when finished, press 
to exit.
When first run, RSUSER.EXE creates a file RSUSER.INI in the
current directory, which saves the last used options (communications
configuration) of RSUSER.EXE. These options will be used next time
RSUSER is executed.
Hot Key Descriptions
 +<3>
Home Area Programming
Press  and <3> keys together to program the home area into the
modem's non-volatile memory. You will be asked to enter the home
area (e.g. C20101), and then press . You will see three
“CMND…..ILLEGAL BYTE” lines, followed by three “SUCCESS”
lines. This is normal. You must reset the modem ( 66 )
before the changes will take effect. If you do not receive the
“SUCCESS” responses, then reset the modem, reset RSUSER, and try
again.
 + <5>
Static Channel Programming
This allows you to change the static channel list in the modem's nonvolatile memory. You will be prompted to enter the channel list.
Type each channel individually, as per the example. You must type the
four hexadecimal digits of the channel (e.g. 25ED), followed by a
space, and then four hexadecimal digits for the channel attributes
(0401). (Refer to the DataTac RD-LAP manual for channel designators
and channel attribute descriptions.)
BM210012WT09
31
Wavenet Technology
Test Jig __________________________________________________ Boomer II User Manual & Integrator’s Guide
You should see two “CMND…..ILLEGAL BYTE” lines, followed by
two “SUCCESS” lines. This is normal. You must reset the modem
( 66 ) before the changes will take effect. If you do not
receive the “SUCCESS” responses, reset the modem, reset RSUSER,
and try again.
 + <6>
Group LLI Programming
This allows you to program up to 16 group LLIs into the non-volatile
memory of the modem. You will be prompted for each LLI
individually. When finished, press  when prompted for the
next LLI.
You should see two “CMND…..ILLEGAL BYTE” lines, followed by
two “SUCCESS” lines. This is normal. You must reset the modem
( 66 ) before the changes will take effect. If you do not
receive the “SUCCESS” responses, then reset the modem, reset
RSUSER, and try again.
 + 
Read Config Parameters
This option reads the current configuration from the modem, and
reports on it. The configuration includes the LLI, Serial #, home area,
channels, group LLIs and some redundant data.
 + 
Get Radio Status
This option sends a command to the modem requesting the current
radio status of the modem. The response contains information on the
current RSSI level, signal quality, current channel, base Id and several
other data.
 +  Get Battery Status
This option sends a command to the modem requesting the current
status of the battery power. The response contains the voltage level of
the battery as an absolute voltage and as an estimated percentage of
capacity.
 Set Source LLI
This option tells RSUSER which LLI should be listed as the source
LLI on all packets which are sent by RSUSER using the "SEND
MESSAGES" options. This setting will be saved in the RSUSER.INI
initialisation file. There is no need to reset the modem or RSUSER
after this option.
Wavenet Technology
32
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________________________Test Jig
 Set Destination LLI
Similar to the above option, but sets the destination LLI for messages
sent by the "SEND MESSAGES" options.
 Automatically Set SRC/Dest LLIs And Home Area
Automatically queries the modem for its LLI and home area, and sets
the above two options with that LLI for loopback tests, and the next
option with that home area address. This is easier than typing the LLI
for both source and destination options, and the destination address.
 SYS Address
This option sets the default destination area for messages sent with the
"Send Messages" option. This value is saved in the initialisation file.
 Compile NCL Message, or Send NCL Script
This option allows you to send any NCL command to the modem. For
example, by pressing , typing "4z" and then pressing 
will cause a command SDU to be sent to the modem asking for the
static channel table. To enter a non-ASCII value, use the form \7C
where the backslash indicates that the next two characters are to be
treated as a hexadecimal byte value (in this case 7C). This option is
only useful if you have a copy of the NCL specification to translate
commands into byte values.
RSUSER is also able to send commands taken from the definition file
rstest.def. This file contains a list of “scripts”, which contain
predefined commands. The comments in the sample rstest.def file
describe how to format the scripts in the file.
To send a script, press , and then type the script name prefixed by
the "=" (equals) sign.
For example, to run the "enablerx" script, press , and type
"=enablerx", followed by .
 Change Com Port Parameters
This option allows you to change the communications port settings
which RSUSER uses to communicate with the modem. You will be
asked for the port address and port IRQ. You will be given examples
for the common four PC com ports.
Note: You must exit from and restart RSUSER before these settings will
take effect.
BM210012WT09
33
Wavenet Technology
Test Jig __________________________________________________ Boomer II User Manual & Integrator’s Guide
 +  Change Baud Rate
This option changes the baud rate the RSUSER program uses. You will
be asked for the baud rate you wish to change to. Valid baud rates are
300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 or 115200.
The change will take effect immediately. The baud rate is not preserved
on exit from RSUSER. It defaults back to 9600 on next invocation.
 Toggle Dumping Of NCL Data Bytes
Incoming NCL responses/events from the modem are translated and
displayed on screen by default. The actual data bytes making up the
packet may be optionally displayed. Press  to toggle this option.
< _ > Get Status Block
This option sends a status request command to the modem. It is a short
cut, rather than using the above F4 option and typing the ASCII
characters.
<(>
Receiver On / < @ > Receiver Off
This option sends a command to the modem to switch the receiver on
or off.
<)>
Transmitter On
/ < # > Transmitter Off
This option sends a command to the modem to switch the transmitter
on or off.
Send Messages Options
These varying options send messages to the modem to be sent to the
network. They each have a source and destination LLI and destination
area as set by F1, F2 and F3 respectively. The contents of the message
vary depending on the particular option. Some options are of fixed
length, and some ask you for the desired length. They are mainly selfexplanatory.
< > > Canned message.
You will be asked for a file name. The contents of this file will be used
as the contents of the data portion of the SDU.
<,>
A random sequence of binary numbers will form the data portion of the
message. Its length is approximately 20 characters.
Wavenet Technology
34
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________________________Test Jig
<<>
A sequential sequence of ASCII characters will form the data portion
of the message. You will be prompted for the length of the data portion
of the message. A number from 1 to 2010 is allowed.
Message Loopback Options
The F9 and F10 commands, together with the above “send message”
commands can be used to set up some automatic message sending and
loopback tests. When in loopback mode, RSUSER will cause a
message to be sent out for a definable amount of time (called “time
between”) after every time one is received from the network (or we
obtain a fail response to a send). The sent message will be the same
mode and length as the last message sent by a “send messages”
command above. We also send another packet if we don’t receive a
failure response, or a network packet within a definable time (called
“timeout”).

Toggles automatic packet sending (loopback mode) on and off.

Sets the timing parameters “time between” and “timeout”. These values
will be reset back to defaults (0 and 60 seconds respectively) whenever
RSUSER is executed.
For throughput tests where the network is bouncing back packets, the
values of 0 and 60 is recommended.
For throughput tests where the network doesn’t bounce back packets,
the values of 5 and 5 are recommended. This will send a packet every
five seconds (which allows time for retries etc.)
Reprogramming Modems
A self-extracting loader program is supplied for every software
upgrade. Refer to Appendix C - Wavenet Application Loader on page
133.
BM210012WT09
35
Wavenet Technology
Test Jig __________________________________________________ Boomer II User Manual & Integrator’s Guide
Wavenet Technology
36
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Software Development Kit
DataTAC networks allow wireless communication and are installed in
many different countries around the world. The Wavenet Software
Development Kit (SDK), has been developed to facilitate development
of applications for these networks by providing a simple program
interface for communicating with the network devices.
The SDK supports the following network types:
DataTAC ® 4000 networks
DataTAC ® 5000 networks
DataTAC ® 6000 networks
The SDK is made up of two major components:
Native Control Language Application Programmer's Interface
(NCL API)
Standard Context Routing Application Programmer's Interface
(SCR API)
The NCL API is the wireless client component of the SDK. It provides
routines for sending and receiving data using an NCL compliant Radio
Packet Modem (RPM).
The SCR API is the server component of the SDK. It provides routines
for encoding and decoding of SCR protocol messages and is used for
communicating with the network switch or radio network gateway
(RNG).
BM210012WT09
37
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
Native Control Language Application Programmer’s
Interface
The Native Control Language Application Programmer's Interface
(NCL API) is the client component of the WAPI. The NCL API
provides routines for sending and receiving data messages through the
DataTAC wireless network, using a radio packet modem (RPM). It also
allows the client application to control configuration parameters of the
RPM and to retrieve status information from the RPM.
Implementation
The NCL API is implemented as a DLL library of written in C++ for
windows using Microsoft~ Visual C++ Version 6.0.
The NCL API communicates with PC or Pocket PC applications based
on the following model. The NCL API is supplied as a Virtual Device
Driver (VDD) for a PC (Win 98 or better) or a Pocket PC (Win CE
Version 3.0 or better). Multiple applications can access the RPM via
NCL encoded messages.
Layer 6 (Presentation)
Layer 5 (Session)
Level 4 (Transport )
MSMQ
Layer 3 (Network)
MSMQ IN 1
TX Queue
MSMQ IN N
Message Router & NCL Interpreter
Layer 2 (Data)
)))Link)
Serial Port Drivers
Layer 1 (Physical)
Serial Port to modem
Wavenet NCL API Model
Wavenet Technology
38
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Logical Architecture
The following table lists the required functionality for the API per
layer. The code forms a DLL, with only a subset of functions available
for third party developers.
LAYER NAME
CONTENT
FUNCTION
7.
APPLICATION
Application specific data.
Applications are to initialize a RX MSMQ (Microsoft
Message Queuing system) queue and open a session
with the VDD by passing the RX queue handler.
6.
PRESENTATION LAYER
Unused
5.
SESSION LAYER
Unused
4.
TRANSPORT LAYER
Unused
3.
NETWORK LAYER
MSMQ is run as a device driver on the Pocket PC
and is run from power up (ie Non-suspend mode).
The VDD will post events (RCV messages etc) to all
application RX queues enabled for that event.
Responses to application requests will be posted to
the calling application RX queue.
Router
The VDD process TX requests via a FIFO queue to
the NCL Interpreter. The Host base routing or Peerto-Peer routing SDU formatting is contained in the
NCL interpreter.
2.
DATA LINK LAYER
NCL Interpreter &
Extender port – Serial
Driver.
1.
PHYSICAL / BIT TRANSFER
LAYER
Extender Port to RPM.
Application NCL API function requests are processed
via a FIFO queue. RPM responses or received data is
tagged and encoded for the router as required Also
the UART DLL that handles the extender port UART
to modem communications resides in the link layer
modules..
9600, 8, 1, N on serial port and a wakeup line.
Wavenet’s current NCL API protocol stack is implemented with the
hierarchical structure. All DLLs including MSMQ files are included in
the install cabinet files for the VDD.
Router
The PC or PPC loads MSMQ as a device driver. Applications using the
modem must open a session with VDD by calling ‘VDDOpen()’ which
will create a private Receive MSMQ queue for the instance of the
application (client). The name of this private queue will be sent to the
serial port server (VDD) along with an open session request. The port
server will in turn create a private MSMQ queue to receive data from
the client. All Modem Events and response messages to be
communicated between the VDD and the application will be via the
receive queues. Transmit function requests from the applications
(clients) are queued by the VDD and are processed as a FIFO buffer by
the NCL interpreter. On Wakeup the VDD will be activated, if any
applications receive queues are open the RX event will be posted to
those queues. If no receive queues are active, the VDD will buffer the
RX events and start up the registered on_wakeup applications. After
BM210012WT09
39
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
the applications have successfully opened a VDD session the VDD will
pass the RX events to those applications.
Wavenet Technology
40
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
NCL Interpreter
The NCL Interpreter strips NCL API function calls from application
messages, queue the calls and execute the calls on a FIFO basis.
Received messages will be queued and matched against an appropriate
request (if not an event), and passed to the router with the
corresponding tags.
Link Layer
The RPM communicates with a PC via a standard communications port
and a user supplied RS232 to CMOS level device. For the Pocket PC
(PPC) the RPM communicates via the PPC extender port UART. The
PPC performs an auto detect and wakeup when an attached modem
receives some data and the PPC is in suspend mode.
Application Interface
Opening a Session
Applications are required to first open a session with the VDD by
calling the API function ‘VDDOpen()’. All other API functions will
return an error unless an open session with the VDD was established.
If successful this operation will result in the creation of two MSMQ
queues for use by the client. One MSMQ will be used to send messages
from the VDD to the client and the other for messages from the client
to the VDD. Note that the client does not deal with MSMQ queues
directly because all operations are wrapped in API calls.
Prototype:
int VDDOpen(void)
Description:
Opens a session with the VDD.
Input:
Ø
none
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
BM210012WT09
41
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
Close Session
Applications can call this function to close its session with the VDD.
An application should call this function before it terminates if a session
was earlier established with the VDD. The reason for this is to ensure
that all created MSMQ queues for the client are deleted. This will
prevent irrelevant/outdated messages from being posted to inactive
MSMQ queues.
Prototype:
int VDDClose(void);
Description:
Close a session with the VDD.
Input:
Ø
None
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
Send Data to a Radio Host
Applications can call this function to send data to a radio host. The
Host ID will automatically be inserted into the data header of the SDU
for message routing purposes.
Prototype:
int nclSendData(word *usSduTag, byte *szHostId, byte ucIdLen, byte
*ucData, int iDatLen, bool bResend);
Response:
The VDD will track the response with the Host ID and SDU tag will
post the response to the corresponding RX queue for that session. The
application is responsible for reading and processing the response on
the RX queue. By calling ‘nclReceiveData()’.
Description:
Send application data to the radio host identified by the host ID.
Wavenet Technology
42
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Input:
Ø
usSduTag
Pointer to a word where the SDU tag can be stored
Ø
szHostId
Pointer to a buffer specifying the Host identity. The Host ID is
typically 3 bytes in length for DataTac systems. The NCL API will
truncate Host ID’s longer than NCL_MAX_UH_LEN (63) bytes in
length.
Ø
ucIdLen
Total length of the session ID
Ø
ucData
Pointer to the data to be sent
Ø
iDatLen
Length of the data to be sent
Ø
bResend
Resend flag must be set to false, except if the packet of data is
being re-sent due to a failure of the previous send. Setting the
flag to true prevents the possibility of receiving duplicate packets
at the server application. This flag cannot be used for resending
data prior to the previous packet.
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
×
usSduTag
Pointer to a word containing a reference of the corresponding
SDU tag which was generated by the NCL API for this command
to the RPM.
Receive Data From RPM
Applications can call this function to obtain data sent from the RPM.
This applies to both event and response type data from the RPM. Note
this is the only way to obtain response data originating from the RPM
as a result of issuing commands to it by means of other API functions
described in this document. The return code of all API functions
issuing commands to the modem only provides feedback about the
posted command. It does not guarantee delivery to the RPM. It is thus
imperative for applications to use ‘nclReceiveData()’ to obtain
feedback directly from the RPM on commands sent to it. Responses to
commands are asynchronous meaning multiple commands can be
issued to the RPM before the application needs to look at all the
responses. This is the reason why every command provides the
application with a copy of the unique SDU tag generated for the
command. Every response message contains the same SDU tag of its
associated command. The VDD uses the SDU tag to route response
messages to the originating application (client). The
‘nclReceiveData()’ function provides the SDU tag of the response
message. Applications can use these tags to tie up responses with
previously sent commands. One notable exception exist when the SDU
tag is equal to 65535 (FFFF hexadecimal). Only event messages
contain an SDU tag equal to 65535. The received event/ response
messages will be represented as an array of bytes which must be typed
cast to a structure identified by returned structure ID.
BM210012WT09
43
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
The RCV_MSG_NOTIFICATION event will be handled by the VDD,
which will read the messages from the RPM and pass the messages to
all clients with open sessions.
Other Event types shall be posted to all clients with open sessions
registered for that event. If no applications are registered for that event
the event will be disabled in the modem.
Prototype:
int nclReceiveData(DWORD dwTimeOut, BYTE *ucStructId, WORD
*usSduTag, int *iBufLen, BYTE *ucBuf);
Description:
Receive messages from the RPM.
Input:
Ø
dwTimeOut
The time (in milliseconds) to wait for the next message. Use 0 to
return immediately or FFFFFFFF (hexadecimal) to hang on
indefinitely for a message. The calling thread will be suspended
until a message arrive or the time-out period has elapsed,
whichever occurs first.
Ø
ucStructId
Pointer to a byte where the structure ID can be stored.
Ø
usSduTag
Pointer to a word where the SDU tag can be stored
Ø
iBufLen
Pointer to a integer specifying the total size of ucBuf.
Ø
ucBuf
Pointer to the buffer (of size iBufLen) where receive data can be
placed
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
×
ucStructId
This value identifies the structure of the data in ucBuf. See the
following paragraphs for details.
×
usSduTag
Pointer to a word containing a reference of the corresponding
SDU tag which was generated by the NCL API for this command
to the RPM.
×
iBufLen
Size (in bytes) of the data in ucBuf. Note: Buffer lengths of 0 is
possible – rely solely on the return value in such cases
×
ucBuf
Pointer to buffer containing the received data
Wavenet Technology
44
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
/*** Define types for retrieving data from the RPM ***/
typedef unsigned char
typedef unsigned short
BYTE;
WORD;
/*Parameter Structure IDs - Do not alter sequence*/
enum
NCLNone_ID = 0,
NCLEvent_ID,
NCLProdId_ID,
NCLVersion_ID,
NCLRpmId_ID,
NCLConfigBlock_ID,
NCLStatusBlock_ID,
NCLChanBlock_ID,
NCLGroupLlis_ID,
NCLChannelTable_ID,
NCLWaveSettings_ID,
NCLWaveRadio_ID,
NCLWaveGen_ID,
NCLByte_ID,
NCLByte2_ID,
NCLWord_ID,
NCLMsg_ID,
NCLRaw_ID
/*additional structure IDs to be added here including vendor specific types */
};
/* Use 1 byte alignment for the following structures */
#pragma pack(1)
/* Product ID structure */
typedef struct NCLProdId
BYTE hw_platform;
BYTE rf_protocol;
BYTE ncl_compliance;
BYTE release_level;
}NCLProdId;
/* NCL version structure */
typedef struct NCLVersion
char
major[2];
char
minor[2];
}NCLVersion;
/* RPM ID structure */
typedef struct NCLRpmId
BYTE
b_val[4];
}NCLRpmId;
/* Config block structure */
typedef struct NCLConfigBlock
BM210012WT09
45
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
NCLProdId
NCLVersion
NCLRpmId
WORD
WORD
}NCLConfigBlock;
/* Status block structure */
typedef struct NCLStatusBlock
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
WORD
WORD
WORD
}NCLStatusBlock;
/* Channel block structure */
typedef struct NCLChanBlock
BYTE
WORD
BYTE
BYTE
BYTE
}NCLChanBlock;
prod_id;
sw_version;
rpm_id;
reserved;
max_data_size;
rx_status;
tx_status;
antenna;
radio_in_range;
flow_control;
rcv_mode;
event_states;
ob_msg_count;
ib_msg_count;
radio_channel;
radio_in_range;
radio_channel;
attribute;
protocol;
rssi;
#define MAX_GROUP_LLIS
#define LLI_BYTE_WIDTH
#define NCL_NUM_CHANNELS 64
/* Group LLIs array */
typedef struct NCLGroupLlis
BYTE lli[MAX_GROUP_LLIS][LLI_BYTE_WIDTH];
BYTE num;
}NCLGroupLlis;
/* Channel Table */
typedef struct NCLChannelTable
WORD
BYTE
num;
}NCLChannelTable;
channel[NCL_NUM_CHANNELS];
/* Vendor Spesific: Wavenet Get Settings*/
typedef struct NCLWaveSettings {
BYTE
LLI[4];
BYTE
SerNum[16];
} NCLWaveSettings;
/* Vendor Spesific: Wavenet Get Radio Settings*/
Wavenet Technology
46
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
typedef struct NCLWaveRadio {
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
BYTE
} NCLWaveRadio;
rssi[2];
reserved1;
reserved2;
reserved3;
reserved4;
reserved5;
reserved6;
reserved7;
reserved8;
frequency[4];
channel[2];
base_id;
/* Vendor Spesific: Wavenet Generic*/
typedef struct NCLWaveGen {
BYTE
byte[100];
} NCLWaveGen;
/* NCL status information structure */
typedef union NCLStatus
NCLProdId
prod_id;
BYTE
vendor_id;
NCLVersion
sw_version;
NCLRpmId
rpm_id;
BYTE
rpm_vid[2];
NCLGroupLlis
rpm_gid;
WORD
max_data_size;
BYTE
rx_status;
BYTE
tx_status;
BYTE
antenna;
BYTE
radio_in_range;
WORD
ob_msg_count;
WORD
ib_msg_count;
BYTE
flow_control;
BYTE
rcv_mode;
BYTE
event_states;
WORD
radio_channel;
NCLChannelTable
chan_table;
NCLChannelTable
dchan_table;
NCLConfigBlockconfig_block;
NCLStatusBlock status_block;
NCLChanBlock
chan_block;
BYTE
bat_level;
NCLWaveSettings
wave_set;
NCLWaveRadio
wave_radio;
NCLWaveGen
wave_generic;
}NCLStatus;
/* Event Type */
typedef struct NCLEventType
BYTE etype;
/* NCL_RCV_MSG_DATA
/* NCL_MSG_NOTIFICATION
/* NCL_TX_EVENT
/* NCL_RX_EVENT
/* NCL_HW_EVENT
BM210012WT09
47
'A'
‘B’
'C'
'D'
'E'
Received message data
*/
Received Message notification */
Transmitter event
*/
Receiver event
*/
Hardware event
*/
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
/* NCL_RCV_ERR_EVENT
/* NCL_CONTROL_EVENT
'F'
'G'
Unreceivable Message Event
Control Event
*/
*/
BYTE EventCode;
/* NCL_MSG_NOTIFICATION_LEN N- Number of buffered msgs to be read */
/* NCL_TX_EVENT_KEYED
‘1’
Transmitter keyed
*/
/* NCL_TX_EVENT_DEKEYED ‘2’
Transmitter dekeyed
*/
/* NCL_RX_EVENT_INRANGE ‘1’
RF in range
*/
/* NCL_RX_EVENT_OUTRANGE ‘2’
RF out of range
*/
/* NCL_RX_EVENT_PSENAB ‘3’
Power Save enabled
*/
/* NCL_RX_EVENT_PSDISAB ‘4’
Power Save disabled
*/
/* NCL_HW_EVENT_STEST
‘1’
Self Test Failed
*/
/* NCL_HW_EVENT_LBATT
‘2’
Low battery
*/
/* NCL_HW_EVENT_MFULL
‘3’
Memory Full
*/
/* NCL_HW_EVENT_BATOK
‘4’
Battery Level OK
*/
/* NCL_HW_EVENT_MEMOK ‘5’
Memory Ok
*/
/* NCL_HW_EVENT_MEMOK ‘6’
Device shutdown is imminent
*/
/* NCL_RCV_ERR_EVENT_RTD ‘1’
ACK required PDU received but TX
disabled */
/* NCL_CONTROL_EVENT_C ‘1’
RPM / DTE connected
*/
}NCLEventType;
/* RCV_MSG_Data */
#define NCL_MAX_DATA_SIZE
#define NCL_MAX_UH_LEN
63
2048
/* max length of user header */
typedef struct NCLMsg
BYTE
is_message; /* If FALSE, only len and buf components are valid. */
BYTE
sessionID[NCL_MAX_UH_LEN + 1]; /* NULL terminated */
BYTE
msg_type; /* Used by NCL_DATATAC_5000 networks */
WORD
len;
BYTE
buf[NCL_MAX_DATA_SIZE];
} NCLMsg;
/* End of 1 byte alignment */
#pragma pack()
Wavenet Technology
48
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Get RPM Status Information
The application can call this function to obtain status information about
the RPM. The following types of status information can be obtained:
Status Request (non vendor
specific)
Response Structure
Description
NCL_R_CONFIG_BLOCK
NCLConfigBlock
Get RPM configuration block
NCL_R_STATUS_BLOCK
NCLStatusBlock
Get RPM status block
NCL_R_PROD_ID
NCLProdId
Get RPM product ID
NCL_R_SW_VERSION
NCLVersion
Get software version number
NCL_R_RPM_ID
NCLRpmId
Get RPM address
NCL_R_RPM_VID
NCLStatus.rpm_vid[2]
Get RPM VID address (MDC)
NCL_R_MAX_DATA_SIZE
NCLStatus.max_data_size
Get SDU data limit
NCL_R_RCV_MODE
NCLStatus.rcv_mode
Get mode of notification to
DTE for received SDUs.
NCL_R_RX_STATUS
NCLStatus.rx_status
Get receiver enable status
NCL_R_TX_STATUS
NCLStatus.tx_status
Get transmitter enable status
NCL_R_ANTENNA
NCLStatus.antenna
Get antenna selection status
NCL_R_RADIO_IN_RANGE
NCLStatus.radio_in_range
Get radio in range status
NCL_R_OB_MSG_COUNT
NCLStatus.ob_msg_count
Get count of outbound
messages queued
NCL_R_IB_MSG_COUNT
NCLStatus.ib_msg_count
Get count of inbound
NCL_R_FLOW_CONTROL
NCLStatus.flow_control
Get flow control status
NCL_R_EVENT_STATES
NCLStatus.event_states
Get current event reporting
(enable/disable) state
NCL_R_RADIO_CHANNEL
NCLStatus.radio_channel
Get current radio channel
NCL_R_CHAN_TABLE
NCLChannelTable
Read radio channel table
NCL_R_CHAN_BLOCK
NCLChanBlock
Read the channel block
NCL_R_BAT_LEVEL
NCLStatus.bat_level
Read the battery level
NCL_R_RPM_GID
NCLGroupLlis
Get RPM group IDs
NCL_R_VENDOR_ID
NCLStatus.vendor_id
Get vendor identification
NCL_R_DCHAN_TABLE
NCLChannelTable
Read the D-channel table
NCL_R_RF_STATISTICS
Specific to RF protocol used:
RD-LAP [F] or MDC [G]
Read the RF statistics
Status Request (Wavenet
Technology specific)
Response Structure
Description
WN_GET_STATUS_RADIO
NCLWaveRadio
Get RPM Radio Status
WN_GET_STATUS_BATTERY
NCLWaveGen
Get RPM Battery Status
WN_GET_STATUS_ONTIME
NCLWaveGen
Get RPM on-time status
WN_GET_STATUS_CONFIG
NCLWaveGen
Get RPM configuration status
BM210012WT09
49
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
Prototype:
int nclGetStatus (word *usSduTag, byte ucVendor, byte ucType, byte
ucRequest);
Description:
Command the RPM to send the requested status information.
Input:
Ø
usSduTag
Pointer to a word where the SDU tag can be stored
Ø
ucVendor
Vendor identifier. Use:
NCL_NO_VEND = 0 if not vendor specific or
NCL_VEND_WAVENET = ’F’ for Wavenet Technology specific
requests
Ø
ucType
The type of status information to retrieve from the RPM (Used by
Vendor specific requests). Set to zero for non-vendor requests or
WN_GET_STATUS = ‘?’ for Wavenet Technology specific
requests
Ø
ucRequest
The requested status information, as listed in one of the
appropriate tables above, to retrieve from the RPM.
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
×
usSduTag
Pointer to a word containing a reference of the corresponding
SDU tag which was generated by the NCL API for this command
to the RPM.
The response is posted to the corresponding RX queue associated with
the VDD session ID. If the session ID is not recognized all active RX
queues will be posted the response.
Set Configuration ITEMS Within the RPM
By default the modem will have the receiver and transmitter enabled
and the RX notification event enabled. Modem Configuration items via
NCL are TBA and will be restricted to service personnel.
Wavenet Technology
50
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Reset RPM
The application can call this function to reset the RPM. There are
several different levels of RPM reset commands that may be issued to
the RPM, as listed below:
Reset Level
Description
NCL_RESET_INBOUND
Flush the Inbound queue
NCL_RESET_OUTBOUND
Flush the Outbound queue
NCL_RESET_BOTH
Flush both the Inbound and Outbound queues
NCL_RESET_WARM
Warm start: flush queues, default Native settings, remain in
Native mode
NCL_RESET_TRANS
Not Supported
NCL_RESET_FULL
Full reset: Power-on reset
NCL_RESET_NCL
Reset NCL interpreter
NCL_RESET_OFF
Power off the RPM
Prototype:
int nclResetRPM (word *usSduTag, byte ucResetLevel);
Description:
Command the RPM to perform a specified level reset
Input:
Ø
usSduTag
Pointer to a word where the SDU tag can be stored
Ø
ucResetLevel
The level of the Reset as listed in the above table
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
×
usSduTag
Pointer to a word containing a reference of the corresponding
SDU tag which was generated by the NCL API for this command
to the RPM.
The response is posted to the corresponding RX queue associated with
the VDD session ID. If the session ID is not recognized all active RX
queues will be posted the response.
BM210012WT09
51
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
Register Event Callback Function
Since the RX events will be posted to private Receive MSMQ queues
the VDD is not required to support callback functions. Applications
can call the API function ‘nclReceiveData()’, to wait on response and
event messages from the RPM on their on account. The API function
‘nclReceiveData()’ will return within the time-out period specified, so
applications will not be hung-up indefinitely.
Enable / Disable Events
The application can call this function to enable or disable individual
event types being reported by the RPM. By default, only the Receive
Message Data event is enabled (NCL_RCV_MSG_DATA). All other
event types for an application are disabled unless they have been
specifically enabled / disabled using this function. The
NCL_RCV_MSG_NOTIF event is handled by the VDD, which will
post the received messages to all active RX queues (that have
NCL_RCV_MSG_DATA enabled) using the NCLRXDataID structure
type.
Prototype:
int nclSetEvent (word *usSduTag, byte ucType, byte ucSetting);
Description:
Enable / Disable event reporting by the RPM for the specified event
type.
Input:
Ø
iSessionID
VDD session ID
Ø
usSduTag
Pointer to a word where the SDU tag can be stored
Ø
ucType
The type of event to enable/disable:
NCL_RCV_MSG_DATA
(Received message data)
NCL_TX_EVENT (Physical-level transmitter event)
NCL_RX_EVENT (Physical-level receiver event)
NCL_HW_EVENT (Hardware event)
NCL_RCV_ERR (Un-receivable message event)
NCL_CONTROL (Control event)
NCL_VEND_EVENT (Vendor specific event)
Ø
ucSetting
Wavenet Technology
NCL_DISABLE
(Disable event reporting)
NCL_ENABLE
(Enable event reporting)
52
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
×
usSduTag
Pointer to a word containing a reference of the corresponding
SDU tag which was generated by the NCL API for this command
to the RPM.
Get Error Description
The application can call this function to obtain a string representation
for a specified error code.
Error Code
Value
Description
NCL_ERR_NONE
No error has occurred
NCL_ERR_SESSION_IS_CLOSED
-1
NCL API: Session has not been opened
NCL_ERR_SESSION_IS_OPEN
-2
NCL API: Session is already open
NCL_ERR_ENCODE
-3
NCL API: NCL Frame encoding error
NCL_ERR_DECODE
-4
NCL API: NCL Frame decoding error
NCL_ERR_PARAM
-5
NCL API: Invalid parameter passed
NCL_ERR_TIMEOUT
-6
NCL API: Time-out elapsed waiting for response
NCL_ERR_MSMQ_OPEN
-7
NCL API: An error occurred opening a MSMQ
NCL_ERR_MSMQ_CLOSE
-8
NCL API: An error occurred closing a MSMQ
NCL_ERR_MSMQ_SEND
-9
NCL API: An error occurred sending a MSMQ
NCL_ERR_MSMQ_RECEIVE
-10
NCL API: An error occurred receiving a MSMQ
NCL_ERR_MSMQ_CREATE
-11
NCL API: An error occurred creating a MSMQ
NCL_ERR_MSMQ_DELETE
-12
NCL API: An error occurred deleting a MSMQ
NCL_ERR_MSMQ_NAME
-13
NCL API: An error occurred searching for a MSMQ
NCL_ERR_MAX_CLIENTS
-14
NCL API: Maximum number of supported clients
reached
NCL_ERR_INVALID
'b'
NCL Syntax error: Invalid options
NCL_ERR_TOO_LONG
'c'
NCL Syntax error: Data too long
NCL_ERR_ES_NAME
'd'
NCL Syntax error: Invalid name
NCL_ERR_NO_RESPONSE
'A'
Execution error: No response from network
NCL_ERR_NO_ACK
'B'
Execution error: Negative ACK received
NCL_ERR_HOST_DOWN
'C'
Execution error: Host down
NCL_ERR_NOT_REGISTERED
'D'
Execution error: RPM not registered
NCL_ERR_LOW_BATTERY
'E'
Execution error: Low battery - can't transmit
NCL_ERR_IBQ_FULL
'F'
Execution error: RPM inbound queue full
NCL_ERR_TX_DISABLED
'G'
Execution error: Radio transmitter disabled
NCL_ERR_BUSY
'H'
Execution error: Resource unavailable
NCL_ERR_NOT_AVAILABLE
'I'
Execution error: Unimplemented services
NCL_ERR_HW_ERROR
'J'
Execution error: Generic
NCL_ERR_INVALID_MODE
'K'
Execution error: Invalid mode of operation
NCL_ERR_NO_MESSAGES
'L'
Execution error: No outbound messages available
BM210012WT09
53
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
Error Code
Value
Description
NCL_ERR_MSGS_PENDING
'M'
Execution error: Pending inbound messages
NCL_ERR_SW_ERROR
'N'
Execution error: Software error has been
encountered
NCL_ERR_OUT_OF_RANGE
'O’
Execution error: Cannot send data when out of
range
NCL_ERR_PACKET_ERROR
'Z'
Execution error: SDU data corruption detected
Error Not Listed
All other
values
Unknown error
Prototype:
char * nclGetErrorDescription (int iErrorCode);
Description:
Return a pointer to a character string describing the specified error
code.
Input:
Ø
iErrorCode
Integer specifying the error code for which a string description is
required.
Output:
×
WCHAR *
Pointer to a NULL terminated wide character (Unicode) string
describing the error
Register Wakeup Application
By default the VDD is executed on wakeup. In addition an application
can register to be executed on wakeup via the VDD. On wakeup the
VDD will post any Received data to the current active queues. If there
are no active queues the VDD will execute the Registered applications.
Once an application has initiated a successful VDD session (i.e. via
‘VDDOpen ()’ ) the VDD will post the Received data to the
applications RX queue. A timeout (Wktm = 10 seconds) will be used to
hold the data for an application to initialize and commence a VDD
session before the data is discarded. The default application will be the
Modem Information application as supplied as a sample application
with the VDD.
Prototype:
int nclRegWakeupApp (WCHAR *usAppName, WORD
usWakeupReason);
Wavenet Technology
54
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Description:
Register an application for wakeup when specified events occur.
Input:
Ø
usAppName
Ø
usWakeupReason
Pointer to a buffer specifying the full path name (Null terminated)
of the application to execute on a wakeup.
Logical OR the required reasons for wakeup from the following
values (exclude unwanted reasons):
WAKE_MODEM_INSERTION – Wakeup application when
modem is attached
WAKE_MESSAGE_RECEIVED – Wakeup application when a
message is received but no client applications are running
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
Deregister Wakeup Application
The application can call this function to deregister an application that
was previously registered to wakeup.
Prototype:
int nclDeregWakeupApp (WCHAR *usAppName);
Description:
Deregister a wakeup application.
Input:
Ø
usAppName
Pointer to a buffer specifying the full path name (Null terminated)
of the application to execute on a wakeup.
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
BM210012WT09
55
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
Switch RPM On/Off
The application can call this function to switch the RPM on or off.
Prototype:
int nclSwitchRPMPower (word usSetting);
Description:
Switch the RPM power to the desired setting.
Input:
Ø
usSetting
If this value is zero, the RPM should power down else it should
power up
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
Send Generic NCL Command To RPM
The application can call this function to send application specific
commands to the RPM.
Prototype:
int nclSendGenericCommand (WORD *usSduTag, BYTE ucLength, BYTE
*ucParam);
Description:
Send an NCL command to the RPM of which the payload contents consist of
data from the specified buffer.
Input:
Ø
usSduTag
Pointer to a word where the SDU tag can be stored
Ø
ucLength
Pointer to a byte specifying the total size of ucParam.
Ø
ucParam
Pointer to the buffer (of size ucLength) containing the data to be
send to the RPM
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
Wavenet Technology
56
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Get Software Version
The application can call this function obtain the software version of the
server application or the VDD DLL.
Prototype:
int VDDgetVersion (WORD* usVersion);
Description:
Obtain the software version of the specified software entity.
Input:
Ø
usVersion
Set this value to zero to request the VDD DLL version or to any
other value to request the server application version
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value specifies the error type
×
usVersion
BM210012WT09
The upper 8 bits contain the major version and the lower 8 bits
contain the minor software version if the return value is zero
57
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
Standard Context Routing Application Programmer’s
Interface
The Standard Context Routing Application Programmer's Interface
(SCR API) is the server component of the SDK. The SCR API
provides routines for encoding and decoding SCR messages for
communication with the DataTAC ® network switch or radio network
gateway (RNG). Decoded SCR messages are stored in structures
defined to represent SCR messages. Encoded messages are stored in
memory buffers.
To encode a message, an application will first set up a structure
representing the desired SCR message. This structure is then passed to
the encoding function, scr_Encode(), which encodes the message into a
memory buffer. The application can then send this encoded message to
the DataTAC network switch or RNG.
To decode an SCR message received from the network switch, the
application passes the received message buffer to the decode routine,
scr_Decode(), which decodes the message into a structure containing
the data from the message.
Routines are also provided to convert some of the message codes into
English language descriptions of the code.
The SCR API does not contain routines for reading the SCR messages
from the message switch interface or for sending encoded SCR
messages to the message switch. The connection to the message switch
is normally via an X.25 connection or a TCP/IP connection.
When you are using an X.25 connection to the network switch or RNG,
communication will be via an X.25 card. You will need to get an X.25
and appropriate drivers for this card. To develop your own application,
you will also need the developer's kit for your X.25 card. The sample
application has been written to use an EICON X.25 card. To run over
an X.25 connection, the sample application requires an EICON X.25
card, plus EICON WAN Services driver software. To modify and
compile the sample application, or to write your own application, you
will also need the EICON X.25 Development Tools for Win 32.
Contact EICON Technology (www.eicon.com) for more information
on these products.
When you are using a TCP/IP connection to the network switch or
RNG, communication will be via some form of TCP/IP link. This may
be via an Ethernet card or through a modem connection running SLIP
or PPP. The appropriate drivers will need to be configured for the
Ethernet card, and TCP/IP will need to be configured as a network
protocol. Contact your hardware supplier for more details on
configuring the TCPm connection. To communicate through the
TCP/IP connection, the sample application uses the standard Winsock
interface provided with the Microsoft Windows operating system. Most
Wavenet Technology
58
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Windows compilers come with a standard developer's kit to interface to
the Winsock routines.
Implementation
The SCR API is implemented as a library of routines written in ANSI
C and compiled for Windows NT using the Microsoft Visual C++
compiler. All default project settings were used to compile the .lib file.
SCR Structures
The SCR API makes use of several important structures to store the
SCR messages. The main structure is the SCRMsg structure. This
structure is a union of structures, each of which represents a single
message type in the SCR protocol.
The SCRMsg structure is shown here. The msg_type field indicates
which element of the union is valid. The appropriate value for the
msg_type field is shown in the comments.
BM210012WT09
59
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
/* The SCR Message data structure. */
typedef struct SCRMsg {
int msg_type;
union{
SCRhrr r;
SCRar
ar;
SCRlr
lr;
SCRhc
hc;
SCRac
ac;
SCRlc
lc;
SCRmi
mi;
SCRci
ci;
SCRdi
di;
SCRrs
rs;
SCRrr
rr;
SCRib
ib;
SCRob
ob;
SCRab
ab;
SCRreqstat
reqstat;
SCR_REQ_STAT*/
SCRstatrsp
statrsp;
SCR_STAT_RSP*/
SCRtonet
tonet;
SCR_TO_NET*/
SCRfromnet
fromnet;
SCR_FROM_NET*/
SCRack
ack;
} u;
} SCRMsg;
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type:
SCR_HR*/
SCR_AR*/
SCR_LR*/
SCR_HC*/
SCR_AC*/
SCR_LC*/
SCR_MI*/
SCR_CI*/
SCR_DI*/
SCR_RS*/
SCR_RR*/
SCR_IB*/
SCR_OB*/
SCR_AB*/
/*msg_type:
/*msg_type:
/*msg_type:
/*msg_type: SCR_ACK*/
Definitions for all SCR message structures can be found in the file
scrapi.h. (SCR SDK)
Network Independent Messages
The SCR API provides several network independent message types.
These message types represent basic functions within the SCR protocol
that are applicable to all DataTAC network types. The SCR API
encodes and decodes these message types as the appropriate message
for the correct network type, as given in the call to the scr_Init()
function.
It is recommended that you use these network independent message
types wherever possible, to enhance the portability of the code between
different DataTAC network versions.
The three network independent message types are listed here:
SCR_FROM_NET
Generic From Network message. This is used
for receiving data from a wireless device.
Depending on the network setting, this
corresponds to either a Basic Outbound (OB)
message for DataTAC 4000 networks, or a
Message Indication (MI) for DataTAC 5000 or
6000 networks.
SCR_TO_NET
Generic To Network message. This is used for
sending data to a wireless device. Depending on
the network setting, this will be encoded as
either a Basic Inbound (IB) message for
Wavenet Technology
60
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
DataTAC 4000 networks, or a Host Request
(HR) message for DataTAC 5000 or 6000
networks.
SCR_ACK
Generic Acknowledgment message. This is
used to receive an acknowledgment for data
sent to a wireless device.
SCR_TO_NET messages may be passed to scr_Encode(), and they will
be encoded as the appropriate message type for the current network, as
set in the call to scr_Init(). When a received packet is decoded using
scr_Decode(), it converts the received packet to an SCRMsg structure.
The received messages are decoded for the current network type, and
stored in the SCRMsg structure as their actual message type. However,
the definition of the generic From Network message structure,
SCRfromnet, is exactly the same as both the Message Indication (MI)
message structure, SCRmi, and the Basic Outbound (OB) message
structure, SCRob. Because of this, the decoded message structure may
be interpreted as any of these structures. Similarly, the message type
values SCR_FROM_NET, SCR_MI, and SCR_OB are defined to be
the same value.
Also, the message types SCRack, SCRhc, and SCRab are all the same,
and the message-type constants SCR_ACK, SCR_HC, and SCR_AB
are all the same, and so may be interpreted interchangeably.
Coupled with the interchangeable use of the message structures
SCRack, SCRhc, and SCRab is the function scr_NakReasonText(). The
response code field within the SCRack structure is network specific,
but the scr_NakReasonText() function will interpret the response code
appropriately for the network type specified to scr_Init() and will return
a text description of the error code, or a NULL pointer if the code
represents successful delivery.
Network Specific Messages
The SCR API defines network specific message structures for each of
the network specific SCR message types. These messages apply only to
particular versions of the DataTAC network.
When a message is passed to the scr_Encode() routine, and that
message is not valid for the specified network type, it is encoded as the
corresponding message type for the network version specified to
scr_Init() wherever possible. For example, if scr_Init() is used to set the
network type to DataTAC 5000, and an SCR_IB message is passed to
scr_Encode(), it will be encoded as a Host Request (HR) message.
Also, due to the same structure definitions and equivalent message type
constants being used across all network types for the From Network
(OB and MI) and Acknowledgment (AB and HC) messages, the
decoded structures may be interpreted as network specific structures,
and this will still work on other network types. For example, if
scr_Init() is used to set the network type to DataTAC 5000, and a
SCR_MI message is received from the network and decoded, this
BM210012WT09
61
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
decoded structure may be interpreted as an SCR_OB structure with no
side effects.
DataTAC® 4000 Network Messages
The following message types are specific to the DataTAC 4000
network:
SCR_OB
Basic Outbound message for receiving data from a
wireless device
SCR_IB
Basic Inbound message for sending data to a wireless
device
SCR_AB
Basic Acknowledgment of data sent to a wireless device
DataTAC® 5000 Network Messages
The following message types are extended SCR messages that are only
used on the DataTAC 5000 network.
SCR_LR
Loopback Request
SCR_LC
Loopback Confirmation (response to LR)
SCR_CI
Connect Indication
SCR_DI
Disconnect Indication
SCR_AR
Activity Request
SCR_AC
Activity Confirmation (response to AR)
SCR_RS
Receiver Suspend
SCR_RR
Receiver Resume
DataTAC® 5000 and DataTAC® 6000 Network Messages
The following message types are common to the DataTAC 5000 and
6000 networks:
SCR_MI
Message Indication message for receiving data from a
wireless device.
SCR_HR
Host Request message for sending data to a wireless
device
SCR_HC
Host Confirmation for acknowledgment of data sent to a
wireless device
Wavenet Technology
62
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Data Header
All data messages (MI, HR, OB, IB, TO_NET, FROM_NET) contain a
data header field. This field is used to route messages to the correct
server from client RPM devices. The data header is also sometimes
referred to as the session, and this is reflected in some of the NCL API
function parameters. For example, the szHostId parameter in
nclSendData and in the data header for the nclReceiveData functions.
This data header is represented in the SDK as a NULL terminated
string.
Refer to section Message Routing and Migration sub section SCR
Header charts on page x for the formatting of the header fields. How
the use of the Data Header field varies between the network types is
described below.
For DataTAC 4000 and 6000 networks, a host slot is used to route data
from the wireless client to the correct server. RPM devices can be
configured with up to five host slots, each routed to a different server
application. When the client application sends a message, the data
header is used to specify which host slot to send on, and hence which
server application the data will be sent to. The host slot is represented
by a single ASCII digit from 1 to 5. This digit must be given as the last
character of the data header. For example, a data header of I would
route the information on host slot 1, whereas a data header of TE3
would route the data on host slot 3.
For the DataTAC 5000 network, a 2-character session ID is used for
routing data from the wireless client to the correct server. RPM devices
may be configured with many sessions, each routed to different server
applications. The session ID is made up of any two characters from A
to Z or 0 to 9. When a client application sends data to a server
application, it must set the first two characters of the data header to the
session number. For example, a data header of Al routes data on
session A1, and a data header of TEI routes data on session TE.
To simplify porting of applications between different network types,
the use 3-character data headers, such as TEI. Using a data header of
this format, DataTAC 4000 and 6000 networks look only at the last
character of the data header and route on host slot 1, while a DataTAC
5000 network will look at the first two characters and route on session
TE. This allows the same data header to be used on all network types.
It is recommended that the data header is also set for messages from
server to client. This is not critical for routing messages back to the
client, but it is useful for the client to know on which session or host
slot (and therefore from which host) the data came.
BM210012WT09
63
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
SCR Functions
scr_Init()
Prototype:
int scr_Init(byte l_network_type);
Description:
This routine initialises the library and sets the network type being usedDataTAC ® 4000, 5000, or 6000. The network type affects the encoding
and decoding of messages by validating that the message type is
applicable to this network type. This network type is also used to
correctly encode/decode the network independent message types
SCR_FROM_NET, SCR_TO_NET, and SCR_ACK.
Note: This function must be called before any other SCR API functions.
The operation of all other functions depends on the network type given
to this function.
Input:
Ø
l_network_type
The network type to be used.
Valid values are:
SCR_DATATAC_4000 SCR_DATATAC_5000
SCR_DATATAC_6000
Output:
×
Return value = 0
Operation was successful
×
Return value
Operation failed. Value SCR_ERROR is returned to indicate an
error
Example
#include 
main()
int lrc;
lrc = scr_Init(SCR_DATATAC_4000);
if (lrc == SCR_ERROR) {
exit(0);
/* perform other SCR operations */
. . .
Wavenet Technology
64
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
scr_Encode()
Prototype:
int scr_Encode(byte *l_buf, SCRMsg *l_msg)
Description
This routine encodes a SCRMsg structure into an SCR encoded data
buffer. This routine transparently converts and encodes IB, OB, AB,
HC, HR, and MI messages for the correct network type. For example,
if scr_Init() has been used to set the network type to DataTAC 4000,
and an MI message is passed to scr_Encode(), it will be encoded as an
OB message.
Input:
Ø
*l_buf
The buffer for the encoded message to be returned in. When
calling this function, this parameter must point to an allocated
buffer of at least SCR_MAX_LEN bytes. The encoded message
is returned as a binary array. It is not a NULL terminated string.
Ø
*l_msg
An SCRMsg structure representing the message to be encoded.
For a description of the SCRMsg structure, refer to "SCR
Structures.
Output:
×
Return value = 0
Operation was successful and the encoded message is returned
in l_buf.
×
Return value
Operation failed. Value SCR_ERROR is returned to indicate an
error
BM210012WT09
65
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
Example
#include 
SCRMsg lmsg;
byte ldata[200];
byte lbuffer[SCR_MAX_LEN];
*/
int llen;
*/
/* SCR message struct */
/* data to send to host */
/* buffer for encoded SCR msg
/* length of encoded SCR msg
strcpy((char *)ldata, "Hello world")
/* initialize message structure */
lmsg.msg_type = SCR_TO_NET;
/* send data to client
device */
lmsg.u.tonet.lli = 0xEE021234;
/* set device LLI to
send to */
lmsg.u.tonet.ack = SCR_TONET_ACK_NONE; /* no
acknowledgment
*/
lmsg.u.tonet.data_header = “BB1”;
/* Note: On a DataTAC 4000 or 6000 network,
this message */
/* will be routed on host slot 1. On a
DataTAC 5000 */
/* network, the message will be routed on
session 'BB. '*/
/* See Section “Data Header” for further
details. */
lmsg.u.tonet.data.data = ldata;
lmsg.u.tonet.data.len = strlen(ldata);
llen = scr_Encode(lbuffer, &lmsg);
if (llen != SCR_ERROR) {
/* send encoded message to network */
x25_send(. . . [buffer, lien, . . .)
else {
/* report an error */
. . .
Wavenet Technology
66
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
scr_Decode()
Prototype:
int scr_Decode(int l_len, byte *l_buf, SCRMsg *l_msg)
Description
This routine is used to decode an SCR message from a received buffer
and produce an SCRMsg structure representing the received message.
When this routine returns successfully, some memory may have been
allocated within the SCRMsg structure. scr_FreeDecoding() should
always be called after a successful scr_Decode() to free any memory
that may have been allocated. When scr_Decode() returns
SCR_ERROR or 0, scr_FreeDecoding() should not be called.
Input:
Ø
l_len
The length of the data contained in l_buf.
Ø
*l_buf
The buffer containing received SCR data
Ø
*l_msg
The decoded SCRMsg is returned is l_msg. When calling this
function, this parameter must point to an allocated SCRMsg
structure. Refer to "SCR Structures".
Output:
×
Return value = 0
Operation was successful but the buffer contains only a partial
SCR message in l_msg.
×
Return value < 0
Operation failed. Value SCR_ERROR is returned to indicate an
error
×
Return value > 0
Operation was successful .and the decoded message is returned
in l_msg.
BM210012WT09
67
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
Example
#include 
*/
*/
*/
*/
SCRMsg lmsg;
/* SCR message struct
byte
lbuffer[SCR_MAX_LEN];/*buffer for received SCR msg
int
llen;
/* length of received SCR msg
int
lused;
/* return code from scr_Decode
/* receive data into lbuffer */
llen = x25recv( . . . lbuffer, .
.);
lused = scr_Decode(llen, lbuffer, &lmsg);
if (lused > 0) {
/* process message */
Wavenet Technology
scr_FreeDecoding(lmsg);
/* free decoded message */
else if (lused == 0) {
/* incomplete message received */
else {
/* report an.error */
. . .
68
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
scr_FreeDecoding()
Prototype:
void scr_FreeDecoding(SCRMsg *l_msg)
Description
This routine is used to free any memory allocated inside an SCRMsg
structure by a successful call to scr_Decode(). All calls to scr_Decode()
that return a successfully decoded SCR message (the return value is a
positive value) must be followed by a call to scr_FreeDecoding(), after
the caller has fully processed the decoded message. If
scr_FreeDecoding() is not called, memory leaks will occur.
Note: The SCRMsg structure itself is not freed. Only allocated memory
within this structure is freed. After scr_FreeDecoding() has been
called, all pointers within the SCRMsg structure will be invalid.
Input:
Ø
*l_msg
The SCRMsg structure to have its internal memory allocations
freed. Note that the SCRMsg structure itself is not freed.
Output: None
Example
Refer to the example for the function scr_Decode() on the previous
page.
BM210012WT09
69
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
scr_EncodeLogin()
Prototype:
int scr_EncodeLogin(byte *l_buf, char *l_hostid, char *l_passwd)
Description
For DataTAC® 5000 Networks Only. This function is used to encode
the RNG login packet that is sent to the RNG when the connection is
first established.
Input:
Ø
*l_buf
The buffer for the encoded login packet to be returned in. When
calling this function, this parameter must point to an allocated
buffer of at least SCR_MAX_LEN bytes.
Ø
*l_hostid
The DataTAC host login or host id
Ø
*l_passwd
The DataTAC host password
Output:
×
Return value = 0
Operation failed. The Network Type is not set to DataTAC 5000.
×
Return value < 0
Operation failed. Value SCR_ERROR is returned to indicate an
error
×
Return value > 0
Operation was successful and the number of bytes is returned in
l_buf.
Example
#include 
byte
lbuffer[SCR_MAX_LEN]; /*buffer for SCR login
packet*/
int
llen;
/*length of SCR login packet*/
x25call( .
. );
/*make the connection to the RNG*/
llen = scr_EncodeLogin(buffer, 'LOGIN', 'PASSWORD');
if (llen == SCR_ERROR) {
/*report an error*/
. . .
else if (llen > 0) { /*for non-DataTAC 5000 networks,'/
/*llen will be zero, so we do not
*/
/*need to send the login message.
*/
*/
/* For DataTAC S000, send encoded login message to RNG
x25_send(. . . [buffer, lien, . . .)
Wavenet Technology
70
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
BM210012WT09
71
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
scr_Print()
Prototype:
void scr_Print(FILE *l_fp, SCRMsg *lmsg)
Description
This routine prints an ASCII representation of the SCR message
structure to the given file. This is intended to be used for debugging or
tracing purposes.
Input:
Ø
*l_fp
The file pointer to write the message details to.
Ø
*l_msg
The message structure to print.
Output: None
Example
#include 
SCRMsg lmsg;
FILE *lfp;
/* SCR message struct */
/* file to dump message to */
/* receive a message and decode it into lmsg */
lfp = fopen(“debug.trc”, "a");
if (lfp != (FILE *)NULL) {
fprintf(lfp, “\nReceived the following
message:\n");
scr_Print(lfp, &lmsg);
fclose(lfp);
Wavenet Technology
/* process message */
. . .
72
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
Sample Output
The output from the scr_Print() function shows the message type,
followed by all the appropriate fields from the message structure.
Shown here are several examples of possible output from the
scr_Print() function:
FROM_NET Message
The FROM_NET message is printed as an OB message for a DataTAC
4000 network.
*** OB message ***
LLI 80051234
Data header - BB1
Data –
0 54 68 69 73 20 69 73 20 73 6F 6D 65 20 64 61 74 This is some
10 61 2E
data.
For DataTAC 5000 and DataTAC 6000 networks, a FROM_NET
message is printed as an MI message.
*** MI message ***
LLI 80051234
Data header - BB1
Data –
0 54 68 69 73 20 69 73 20 73 6F 6D 65 20 64 61 74 This is some
10 61 2E
data.
TO_NET Message
*** TO_NET message ***
LLI 87654321
Save bytes – AA
Acknowledgment - SCR_TONET_ACK_REMOTE
Data header - BB1
Data –
0 54 68 69 73 20 69 73 20 73 6F 6D 65 20 64 61 74 This is some
10 61 2E
data.
ACK Message
For DataTAC 5000 or DataTAC 6000 networks, an ACK message is
printed as an HC message.
*** HC message ***
LLI 87654321
Save bytes – AA
Response - 78 - MT out of range or powered off
For the DataTAC 4000 network, an ACK message is printed as an AB
message.
*** AB message ***
LLI 87654321
Save bytes – AA
Response - 78 - No response from wireless device
BM210012WT09
73
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
scr_NakReasonText()
Prototype:
char *scr_NakReasonText(char *l_reason_code)
Description
This routine converts a response code from an HC or AB message into
a text string describing that code. The returned pointer is a pointer to a
static text string within the library. This string must not be overwritten
or freed. This string pointer will stay valid for the duration of the
program's execution. The text strings correspond to the text given in
the DataTAC 5000 System Host Application Programmer's Manual.
This routine can also be used to perform a network independent test for
successful delivery by checking for a NULL return value from this
function.
Input:
Ø
*l_reason code
The response code from the Ack/AB/HC message.
Output:
×
Return NULL
Operation successful delivery of the message.
×
Return !NULL
Operation failed. Value a char pointer to a text string buffer
containing an English description for the meaning of the given
response code.
Example
#include 
SCRMsg lmsg;
char *lreason;
/* SCR message struct */
/* reason code string */
/* receive a message and decode it into lmsg */
if (lmsg.msg_type == SCR_ACK) {
lreason =
scr_NakReasonText(lmsg.u.ack.response_code)
Wavenet Technology
if (lreason == (char *)NULL) {
printf(“Successful delivery of message\n”);
else {
printf(“Failed delivery to LLI %08X reason ‘%s'\n", lmsg.u.ack.lli, lreason);
74
BM210012WT09
Boomer II User Manual & Integrator’s Guide ____________________________________________ SDK – SCR API
scr_ACReasonText()
Prototype:
char *scr_ACReasonText(char *I_reason_code)
Description
For the DataTAC 5000 Network Only.
This routine converts a reason code from an Activity Confirmation
(AC) message into a text string describing that code. The returned
pointer is a pointer to a static text string within the library. This string
must not be overwritten or freed. This string pointer stays valid for the
duration of the program's execution. The text strings correspond to the
text given in the DataTAC 5000 System Host Application
Programmer's Manual.
Input:
Ø
*l_reason code
The reason code from the AC message
Output:
×
Return !NULL
Operation successful. Value a char pointer to a text string buffer
containing an English description for the meaning of the given
response code.
×
Return NULL
Operation failed.
Example
#include 
SCRMsg lmsg;
char *lreason;
/* SCR message struct */
/* reason code string */
/* receive a message and decode it into lmsg */
BM210012WT09
if (lmsg.msg_type == SCR_AC) {
lreason = scr_ACReasonText(lmsg.u.ac.reason_code);
if (lreason != (char *)NULL) {
printf(“Activity Confirmation LLI %08X reason '%s'\n”, lmsg.u.ac.lli, lreason);
75
Wavenet Technology
SDK - SCR API ____________________________________________ Boomer II User Manual & Integrator’s Guide
scr_DIReasonText()
Prototype:
char *scr_DIReasonText(char *l_reason_code)
Description
For DataTAC 5000 Dynamic Routed Sessions Only
This routine converts a reason code from a Disconnect Indication (DI)
message into a text string describing that code. The returned pointer is
a pointer to a static text string within the library. This string must not
be overwritten or freed. This string pointer stays valid for the duration
of the program's execution. The text strings correspond to the text
given in the DataTAC 5000 System Host Application Programmer's
Manual.
Input:
Ø
*l_reason code
The reason code from the DI message
Output:
×
Return !NULL
Operation successful. Value a char pointer to a text string buffer
containing an English description for the meaning of the given
response code.
×
Return NULL
Operation failed.
Example
#include 
SCRMsg lmsg;
*/
char *lreason;
*/
/* SCR message struct
/* reason code string
/* receive a message and decode it into lmsg */
Wavenet Technology
if (lmsg.msg_type == SCR_DI) {
lreason = scr_DIReasonText(lmsg.u.di.reason_code);
if (lreason != (char *)NULL) {
printf(“Disconnection - LLI %08X – reason
'%s'\n”, lmag.u.di.lli, lreason);
76
BM210012WT09
Boomer II User Manual & Integrator’s Guide _____________________________________ Application Development
Application Development
This section provides comments and advice that can help you develop
successful wireless enabled applications for DataTAC systems.
Application development for NCL-compliant wireless modem devices
is a two-part process.
The first step sets up the interface between the device host and
the wireless modem. In this step you must consider the
interactions with the wireless modem, as established by the
NCL 1.2 reference specification and the vendor specific
extensions.
The second step involves addressing message routing
information to identify the message destination within the
DataTAC network.
Use the following suggestions to help you develop wireless enabled
applications.
Use PowerSave mode of operation to extend battery life and
operational time for the user. We recommend that the
application does not modify this mode dynamically.
Use the Confirmed mode of operation to perform the following
functions:
BM210012WT09
•
Check the SDU checksum for validity.
•
Re-read SDUs received in error.
•
Read past the last message in Confirmed mode to make
sure the device buffer is fully flushed. If the buffer is not
flushed, the last message is held, consuming valuable
buffer space.
Anticipate new NCL command, event, and response codes:
•
Perform exact matches on event and response codes.
•
Discard any unknown event type.
•
Map any unknown XFAIL code to be a NAK.
Use SDU tags to uniquely identify application-generated SDUs.
Anticipate the user will move between IN_RANGE and
OUT_OF_RANGE conditions. This means you need to
provide:
•
A user indicator that identifies the current operating
status.
•
Recovery mechanisms when application transactions
fail as a result of losing network contact.
77
Wavenet Technology
Application Development _____________________________________ Boomer II User Manual & Integrator’s Guide
Roaming Issues
During development, consider how the coverage for your wireless
enabled application could be affected by a user moving in and out of
the network coverage area. Coverage can be temporarily impacted by
moving from one side of a building to another. Coverage can be lost for
a longer time by moving beyond the network coverage boundary.
In application development, addressing this temporary or longer term
gap in coverage, even in midst of an application transaction, is
essential.
You can address this consideration by providing a transport level
protocol that can account for the following roaming related situations
when used with a DataTAC wire-less modem:
Inbound SDU failure
Outbound SDU failure
Loss of network contact
These situations are discussed in detail from page 80.
In this case, the transport level protocol must have components both
within the server and client application environment. This transport
level protocol can be provided using existing third party software for
DataTAC systems. Alternatively, you can develop a transport level
protocol with your application in mind.
Roaming Requirements
The roaming algorithms for the wireless modem are described as
follows:
Note: In each case, re-establishing network contact requires the
wireless modem to scan all likely channels and to handshake with the
network.
Send a quick (bounded) response to SDU transmit requests
When the wireless modem loses network contact, SDUs are returned
with an out-of-range failure code. In this case, the wireless modem also
indicates that it is out-of-range via an NCL event. When network
contact is re-established, the wireless modem indicates an in-range
event. The client application then resubmits any SDU last rejected with
an out-of-range response.
Acquire the channel quickly
All channels are scanned quickly, starting with the dynamic channel
list that contains the last used channel and its neighbours. (This list is
broadcast periodically by the network.) If you cannot establish network
contact using the dynamic channel list, the wireless modem scans
quickly using the preprogrammed, network-specific static channel list.
If network contact is not established using either list, this sequence is
Wavenet Technology
78
BM210012WT09
Boomer II User Manual & Integrator’s Guide _____________________________________ Application Development
repeated after a delay interval. See “Conserve battery life when out of
range” below.
Conserve battery life when out-of-range
When all channels (from both dynamic and static channel lists) are
scanned and network contact is not established, the wireless modem
enters a scan-delay state. The scan-delay starts at one second and
doubles on each scan cycle failure, to a maximum of 255 seconds
between scan cycles. This delay time is reset to one second by
establishing a network connection or by power-cycling the device.
Re-establish network contact following inbound SDU failure (no
response) and poor RF RSSI or signal quality
Any wireless modem experiencing a no-response inbound SDU failure
and either with RSSI or quality below the exit threshold level must reestablish network contact. If unable to re-establish network contact, the
modem indicates an out-of-range event. When network contact is reestablished, the wireless modem indicates an in-range event. The client
application then resubmits any queued inbound SDU last rejected with
an out-of-range response.
Re-establish network contact due to loss of outbound channel
The wireless modem attempts to re-establishes network contact
following loss of the outbound channel. If unable to re-establish
network contact, the modem indicates an out-of-range event, and
procedures to re-establish network contact are initiated. When network
contact is re-established, the wireless modem indicates an in-range
event. The client application then resubmits any queued inbound SDU
last rejected with an out-of-range response.
Seek and locate the preferred alternate channel when the existing
channel degrades to a marginal level
When the existing RF channel degrades to a marginal (but still usable)
level, the device periodically listens to neighbouring channels to
determine whether a preferred alternate channel exists. This action
occurs when the device would otherwise be sleeping, to prevent impact
to the device’s synchronized-receive capability with the network.
To be considered, a preferred alternate channel must meet the
minimum channel entry criteria and be 5 dBm better than the current
channel. If located, a full channel acquisition is performed to verify all
other aspects of the alternate channel before registering to the new
channel. This preferred-channel pre-roam algorithm is performed at
intervals that increase exponentially and with identical reset conditions.
See “Conserve battery life when out-of-range” above.
BM210012WT09
79
Wavenet Technology
Application Development _____________________________________ Boomer II User Manual & Integrator’s Guide
Inbound SDU Failures
Potential SDU inbound failure codes are described below. The list
identifies all likely SDU failure responses. The remaining SDU
responses that appear in the NCL 1.2 reference manual are not
expected to occur within the Motorola DataTAC wireless modem.
Inbound SDU failure, no response from network
The SDU was transmitted, but not acknowledged by the network. The
SDU may have been delivered; the acknowledgment might have been
the element that could not be successfully returned to the originating
device.
Inbound SDU failure, host down
This failure indicates that the internal network connection to the
application host computer is currently unavailable. Because DataTAC
networks are designed with very high reliability, this failure is
extremely rare.
Inbound SDU failure, low battery
The SDU could not be delivered due to a low battery condition. When
a low battery condition is reached, the radio network connection is
dropped until the low battery condition is corrected. (This can be
addressed by replacing the battery or, if trickle charging is enabled,
waiting for a sufficient charge level to be reached.)
Inbound SDU failure, inbound queue full
This response indicates that the maximum number (2) of SDUs are
already queued within the wireless modem. Another SDU can be
submitted when the NCL response for one of the pending SDUs has
been returned.
Inbound SDU failure, out of range
The wireless modem has either lost network coverage or is in the
process of re-establishing network contact. See “Loss of Network
Contact” on the following page.
Inbound SDU failure, transmitter disabled
This SDU failure code indicates that the radio transmitter has been
disabled, under application control, within the wireless modem. The
transmitter must be enabled prior to submitting an SDU.
Note: This could be the result of transmitting a Receiver Disable
command to the wireless modem. This command requires both
Receiver Enable and Transmitter Enable commands to recover twoway communications.
Wavenet Technology
80
BM210012WT09
Boomer II User Manual & Integrator’s Guide _____________________________________ Application Development
Outbound SDU Failure
Due to the unreliable delivery of RF data packets (and their responses),
a client application must consider the possibility of an outbound SDU
being delivered to the client, with the transport confirmation of that
data packet being lost (RF acknowledgment and/or transport level
acknowledgment).
Note: When developing a centralized server and distributed-mobile
client wireless enabled application, outbound SDU failure is primarily
a server application issue.
When this occurs, the client and server transport levels must
resynchronise to a common level before proceeding. Such an
understanding might require retransmission of the transaction or
retransmission of the transport confirmation.
Loss of Network Contact
When a wireless modem experiences a loss of network contact, queued
SDUs are returned with the out-of-range response code and with outof-range event indicated. A loss of contact can occur for the following
reasons:
Moving beyond network coverage
When the device moves beyond the network boundary, network contact
loss could occur for an extended period. Depending upon the user route
and network coverage area, this interval could extend from a few
minutes to several hours (or longer). Once network contact is reestablished, the client and server application must be resynchronised if
applications transactions have failed during the interval. After network
contact has been announced, further delays should be minimised, as the
user becomes acquainted with the coverage area.
Moving between areas of network coverage
Small movements within the area of network coverage can result in the
loss and reacquisition of network contact, as a result of RF penetration
difficulties with specific network topology and terrain. It might take
from a few tenths of a second to a few minutes to recognize the channel
has degraded to an unusable level, to qualify a new channel, and to reestablish network contact. Again, the client and server application must
be resynchronised if application transactions failed during this interval.
Acquiring improved network coverage
A channel might originally have been marginal, or might have
degraded from a good to a marginal level, or might be negatively
impacted by the presence of other objects that influence its capability
to send and receive data. Under such circumstances, the wireless
modem seeks a preferred alternate channel, as previously described.
BM210012WT09
81
Wavenet Technology
Application Development _____________________________________ Boomer II User Manual & Integrator’s Guide
Usually this situation does not produce notification of network contact
and reacquisition.
Low battery
Network contact is dropped when a low battery condition is reached.
This follows a battery alert notification (warning) that occurs while the
battery still has some remaining usable capacity. The time between
these events is much influenced by the battery technology and the level
of transmit activity within the wireless modem. A relatively inactive
device provides more warning time than an active device. Also, an
alkaline battery provides more warning than a NiCad battery.
Low buffers
If outbound SDUs remain unread within the wireless modem, its
outbound buffers are eventually filled. When this occurs, network
contact is dropped. Network contact is re-established when the internal
buffer pool within the wireless modem reaches a usable level, as a
result of SDU reads by the application. This situation never occurs
when the client application reads continuously to clear the wireless
modem of received outbound SDUs.
Receiver disabled
The client application can disable the wireless modem transceiver by
using the Receiver Disable NCL command. When this occurs, network
contact is dropped and the radio is turned off. Network contact is reestablished when the application issues the Receiver Enable, then the
Transmitter Enable NCL commands.
Power Management
The following modem power management options can be included in
an application to maximize battery life:
PowerSave Mode
The wireless modem defaults to PowerSave mode when turned on if
the network supports the PowerSave protocol. If you are concerned
about latency of unsolicited outbound messages, you can turn off the
PowerSave mode, but at the expense of consuming more battery power.
For details, refer to the NCL 1.2 command S_POWER_SAVE_MODE.
See “Battery Life Considerations” and “PowerSave Protocol” on the
following page.
Dynamically modifying the PowerSave mode of the device is not
recommended.
Inactivity Time-Out
Configure inactivity time-out to trigger if a message is not read from
the modem within a certain number of minutes.
Wavenet Technology
82
BM210012WT09
Boomer II User Manual & Integrator’s Guide _____________________________________ Application Development
To keep the wireless modem card from disconnecting from the network
(and turn off its radio) following an undeliverable outbound message,
disable the host inactivity timeout by issuing an
S_INACTIVITY_TIMEOUT command to the wireless modem card.
Set the timeout value to 255 (the default).
On/Off upon User Demand
To extend battery life, design the application to switch the modem on
and off as the usage need arises. This method is especially effective for
session-based, user-initiated applications.
Radio On/Off on Application Command
The radio is the primary power-consuming component in the wireless
modem card. Use S_RX_CONTROL for very effective control of
session-based, user-initiated applications.
Battery Life Considerations
In addition to specific power management options, some application
design decisions greatly affect battery life, as follows:
User traffic, amount and frequency
Commercially available compression techniques can significantly
reduce traffic volume, which improves device battery life and reduces
network usage costs. PowerSave mode batches outbound traffic at a
periodicity equal to the network-defined PowerSave protocol frame
size.
Data compression
Improve battery life by reducing and compressing the broad-cast
application data. Network usage costs can also be significantly reduced
as a result.
PowerSave Protocol
The following points describe unique operational characteristics of
devices that are compliant with the PowerSave protocol when
operating on a network, as compared to those that are not. Specific
PowerSave timing parameters can vary by network, based on how the
network operator sets up PowerSave protocol parameters.
Under PowerSave protocol, unsolicited outbound traffic to a nonawake device is delayed. The worst case delay until the first transmit
opportunity is 128 seconds under DataTAC 4000 networks and 64
seconds under DataTAC 5000 networks. The average delay until the
next delivery opportunity is one half of the worst case time, given the
current network and device configuration.
In DataTAC 4000 systems, initial unsolicited outbound transmission
attempts are actually “ping” messages used to locate the device.
BM210012WT09
83
Wavenet Technology
Application Development _____________________________________ Boomer II User Manual & Integrator’s Guide
In DataTAC 5000 systems, unsolicited outbound messages (or
messages that have missed the previous transmit opportunity) are
delivered in the “root” (that is, home) window for the recipient device.
Once the device is thus awakened, it remains awake for about n
seconds after each message or ACK transmission from the device.
During the wake time the network delivers messages to the device as it
would to a device that is non-compliant with the PowerSave protocol.
(Default n = 20 seconds for DataTAC 4000 networks and 8 seconds for
DataTAC 5000 networks.)
Roaming and location update reporting to the network happens more
slowly because the PowerSave protocol device takes longer to respond
to changes in the RF environment. The infrequent worst case latency in
responding to external stimuli (resulting in either a location update or
new channel scan) is about 9 minutes for DataTAC 4000 networks.
DataTAC 5000 networks respond typically in 1.5 Power-Save protocol
frame times, or about 96 seconds.
Wireless Data Systems Considerations
The wireless modems application developer must account for the
limitations of a wireless data system to minimize their impact on the
user.
Limited Data Capacity on Radio Frequency Channels
The channels available to wireless modems are narrow-band and have
limited information carrying capacity (bandwidth) when compared to
traditional wireline communications. Additional capacity can be gained
only by increasing the number of channels, improving the hardware
technology, or by developing more efficient applications. As a result of
all these limitations, it is not surprising that wireless networks are often
more expensive to operate on a per-packet basis than wireline Wide
Area Networks (WAN). To address this concern, the NCL has been
designed to provide the most efficient way of using the limited channel
bandwidth.
Message Delivery Cannot Be Guaranteed
Because a wireless device can roam without restriction, it can exit the
network RF coverage area, leaving it unable to receive or successfully
transmit messages. When a device is outside the coverage area, the
applications are informed of failed inbound delivery. The application is
required to take appropriate recovery action.
Variation in Message Transit Times Across the Network
The time interval messages transit the network is affected by the RF
protocol, the message load on the network, and the length of a
message. These variations might need to be taken into account by the
application.
The following sections address some of these shortcomings in more
detail.
Wavenet Technology
84
BM210012WT09
Boomer II User Manual & Integrator’s Guide _____________________________________ Application Development
Application Efficiency
One goal of application development is to provide the required
functionality with the least amount of messaging. The consideration
here is to minimize the number of interactions in an information
exchange. Doing so addresses the limited data capacity and increased
costs of wireless messaging. In addition, the pricing structure of
network operators encourages efficient application design. In fact,
applications can be designed to use data compression or to apply
techniques that send only data fields that change between transactions.
Large Message Transfer
Message size is a key factor affecting response times in wireless data
systems. To efficiently accommodate typical data applications, the
DataTAC 5000 system is optimized for the transfer of short and
medium length messages. Typically, messages up to 512 bytes are
transferred across the network as a single data packet. Messages larger
than 512 bytes are segmented into 512-byte packets by the DataTAC
system before being transmitted over the air. The packets are
reassembled before they are delivered to the application. For MDC
4800 operation on DataTAC 4000 systems, the segmentation size is
256 bytes.
For example, a 600-byte user message or service data unit (SDU)
results in the delivery of two packets, or protocol data units (PDU), that
are reassembled in the wireless device. Each PDU requires a Radio
Data-Link Access Procedure (RD-LAP) acknowledgment from the
device, which takes a few seconds to complete. The fewer PDUs in a
message, the shorter the delivery time. If messages larger than 2 kB are
to be sent across the system, the host and wireless device application
must provide the segmentation and reconstruction functions.
Message Transit Time
The time required for an inbound or outbound message to travel across
the network is primarily a function of the queuing delays associated
with each product in the network infrastructure and the message load
on the system. As system traffic builds, queuing delays increase for
outbound traffic, while the average time to access the inbound channel
increases, resulting in longer inbound message transit times.
Additional delays are encountered when the wireless terminal is in the
process of roaming from one cell on one radio channel to a cell on
another radio channel. If the cells are controlled by the same cell
controller, the delay time is quite short. The delay time can increase if
the cells are controlled by different cell controllers on different
subnetworks.
For a DataTAC 5000 fixed-end system operating at full rated capacity,
the mean transit delay between a network host and a wireless device is
typically no more than four seconds.
BM210012WT09
85
Wavenet Technology
Application Development _____________________________________ Boomer II User Manual & Integrator’s Guide
The application developer must develop operational scenarios to
accommodate the variable transit time in the application design.
Wavenet Technology
86
BM210012WT09
Boomer II User Manual & Integrator’s Guide _____________________________________ Application Development
BM210012WT09
87
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
Message Routing and Migration
This section offers developers advice on how to migrate their
applications. That is, how to create new versions of their wireless
applications for porting to other DataTAC ® systems. You can also use
this information to plan ahead for portability as you begin your initial
application development effort.
As the developer and user communities become more international in
scope, successful applications will be distinguished by their portability
across existing DataTAC networks. This is true whether you are
designing a new application or migrating an existing application to
other networks.
Message Routing
Three versions of DataTAC systems are in operation worldwide, as
noted by where they are currently implemented:
DataTAC 4000 systems (North America)
DataTAC 5000 systems (Asia-Pacific and Middle East)
DataTAC 6000 systems (Europe)
The architectures of the three systems are basically alike. Although
they support different link layer protocols, the systems the systems
differ mainly in their message header syntax.
The distinction between host communications and peer-to-peer
messaging is also important. Separate DataTAC protocols support each
of these application models. The primary host communications mode is
Standard Context Routing (SCR), also known as fleet mode. Another
application mode is DataTAC Messaging (DM) , which handles
messaging among terminals (subscriber units).
SCR and DM are the common sets of rules that describe how to format
message headers on DataTAC systems. Although the header format
differs slightly among DataTAC 4000, 5000, and 6000 systems, the
functional concepts of operation are the same. The exact SCR and DM
syntax for each system is available in their separate Host Application
Programmer’s Manuals.
Other connection options are available for DataTAC 5000 and 6000
systems. Two of these are known as “personal shared” (Type I)
connections and “personal dedicated” (Type II) connections. These are
covered in the system host programming guides.
Note: In this section, “host” refers to the network fixed host.
“Terminal” refers to a subscriber device. In these guidelines a byte is
8 bits.
Wavenet Technology
88
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
Network Link Layers
Before a message can be routed, it must contain a header and be
wrapped in a link layer protocol supported by the DataTAC network.
Many link layer protocols are available, but not all are supported by
each DataTAC network.
The X.25 protocol is common to all three systems and supports both
PVC and SVC host connection line types. X.25 is a popular choice for
developers looking for a worldwide connectivity solution.
Other supported protocols include:
BM210012WT09
DataTAC 4000 system
X.25, TCP/IP, LU6.2, leased line,
dial-up, RF-Loopback
DataTAC 5000 system
X.25, TCP/IP, SLIP
DataTAC 6000 system
X.25
89
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
Standard Context Routing (SCR)
SCR allows the central host to communicate with hundreds, even
thousands of terminals across a single host connection. But the real
advantage of using SCR is economic: The host only pays for a single
connection to the network, significantly reducing communications cost.
When a terminal sends a message to the host, the message must contain
a header that includes the sending terminal ID. This enables the host to
identify which terminal sent the message and which terminal the host is
to poll.
DataTAC System Architectures
Other header fields provide the host with options for instructing the
network on handling undeliverable messages. For example, the host
can ask the network to:
Provide a delivery status of messages.
Hold messages on the network for a later delivery.
Discard messages.
This header and instruction information is the basis of the SCR
protocol.
Wavenet Technology
90
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
SCR Message Types
Fleet mode of communications uses three types of messages:
Commands / Host Requests (host-to-network)
EXAMPLE: Send Message #1 to LLI 87654321
Responses / Host Confirmations (network-to-host)
EXAMPLE: Message #1 to LLI 87654321 was ACKed
Events / Mobile Information (terminal-to-network-to-host)
EXAMPLE: Message received from LLI 12345678
A fourth type of message, the status message, is allowed on DataTAC
4000 and 5000 systems, but it is not supported on DataTAC 6000
systems.
Each message type must include a unique header; small differences
within each type of header exist among the systems. The charts
graphically compare the headers for each system.
Highlights of SCR Differences
The following topics explain:
Which system or systems implement a particular function.
What this function does and how it varies by system.
How to migrate an application from one system to another.
Nomenclature
When migrating applications, use the correct message type codes.
Because DataTAC systems were originally designed for unique
markets during different development periods, each shows its separate
lineage and is described using inconsistent terminology. For example,
this occurs at the beginning of the SCR header, where the code
designating the message type varies by system, as shown in the
following table.
Message Type
(direction)
Command
(host-to-network)
Response
(network-to-host)
Event
(terminal-to-host)
DataTAC 4000
System
DataTAC 5000
System
IB
(inbound basic)
AB
(acknowledgment basic)
OB
(outbound basic)
HR
(host request)
HC
(host confirmation)
MI
(mobile information)
DataTAC 6000
System
HR
(host request)
HC
(host confirmation)
MI
(mobile information)
Note: The DataTAC 4000 system designates the direction of the
command message as inbound from the host to the network and
outbound from the network to the host (opposite from current industry
terminology).
BM210012WT09
91
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
ASCII versus Binary Encoding
DataTAC 4000 system SCR fields are all ASCII encoded fields of
numeric values or alphanumeric strings. DataTAC 5000 and 6000
systems use a mixture of ASCII and binary encoded fields. All three
systems allow the user to send binary data, regardless of header
encoding.
Support for TCP/IP
DataTAC 5000 systems provide support for TCP/IP hosts, allowing
interconnection across local Ethernet LANs or even the Internet. SCR
messages are carried within a single TCP/IP data stream, which allows
SCR communications with multiple terminals.
Although TCP/IP provides a reliable stream of contiguous data, the
application must be able to determine the beginning and end of each
SCR message. The SCR header on DataTAC 5000 systems must start
with a 16 bit (2 byte) length field (bytes L1 and L2), which specifies
the length of the frame.
Length Prefix Field
DataTAC 5000 systems require all SCR messages to be prefixed by a
two-byte binary encoded length field (L1 and L2). This field provides
TCP/IP based connections with data that determines the length of each
SCR message. The length count includes everything in the message
packet, except for the length prefix.
When converting an application to a DataTAC 5000 network, the
length field must be prefixed to all SCR messages.
Host Authentication
Before SCR transactions can be performed on DataTAC 5000 and
DataTAC 6000 systems using a host-initiated connection, the host first
sends a host authentication message to the radio network gateway
(RNG). The authentication message must be the first message sent to
the RNG after establishing link layer communications. The RNG drops
the connection when any of the following conditions occurs:
The host does not send the authentication message within one
minute
The host ID and password do not match those in the RNG
database
The host is not enabled in the RNG database
The host is already connected to the RNG
On DataTAC 5000 systems the authentication message consists of:
Wavenet Technology
Host ID (up to 20 characters)
ASCII ‘;’ (semicolon) delimiter
Host password of 1 to 8 bytes
Carriage return
92
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
On DataTAC 6000 systems the host ID field consists of:
1 to 4 bytes
ASCII ‘;’ (semicolon) delimiter
Host password of 1 to 8 bytes
Carriage return
On DataTAC 4000 systems the RNG (ARDIS switch) locates the
calling X.25 address to verify it is in the database. A valid calling
address is then associated with only those terminals allocated to a
particular host.
Extended SCR
DataTAC 4000 and 5000 systems support additional message types and
functions beyond the basic SCR functionality. Specifically, extended
SCR supports the following features:
On DataTAC 4000 systems:
Sends binary headers and data
Notifies the host of terminal network activity
On DataTAC 5000 systems:
Notifies the host of terminal network activity
Performs loopback diagnostics
Notifies the host of terminal-to-host connection (session)
activity
For a full description of these extensions, refer to the system host
application programmer’s manuals.
On DataTAC 4000 and 5000 systems the extended functions enable the
network to notify the host that a terminal has registered with or
deregistered from the network. This allows the host to avoid X.25
communications costs associated with attempting to reach a shut down
terminal.
This extension set also involves the no-acknowledgment (No-ACK)
option for host-to-terminal messages. When the No-ACK option is
used on DataTAC 5000 systems, the host instructs the RNG to deliver
the over-the-air message as “No-ACK-needed”, and none is returned.
On DataTAC 4000 and 6000 systems, which lack the No-ACK option,
the RNG sends all messages as “ACK-required,” regardless of a host
request for “No-ACK-needed.” When the RNG receives the ACK from
the terminal, it is discarded or used to provide input to other systemspecific features.
Avoid using additional message types if you want the application to be
widely compatible. These extended features are not always available on
all DataTAC 5000 systems. These features are enabled and controlled
by the network operator on a per-host basis. Check with your target
network operators before using SCR system extensions.
BM210012WT09
93
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
Note: To run your application on DataTAC 4000 or 6000 systems, you
must isolate the use of extended SCR or avoid it entirely.
Service Data Unit (SDU) Size
An application SDU consists of the complete message; both user data
and data header. See “Data Header Routing” below. The maximum size
of an application SDU is 2048 bytes for DataTAC 5000 and 6000
systems, and 2550 bytes for DataTAC 4000 systems. For this reason,
the recommended maximum SDU size for tri-system applications is
2048 bytes.
For transport over the air, the SDU is broken up into smaller physical
data units (PDUs). Most network operators price their service at cost
per PDU or cost per SDU. Gather data from your various operators to
develop an application design that favorably considers these cost
factors.
Note: As a general rule, it is less expensive to send fewer large packets
than many small packets. Try to take full advantage of the space
available in each packet.
Data Header Routing
To use the data header to route messages properly, first consider the
data header as a pointer to a destination.
In early DataTAC systems, all mobile units sent their messages to a
single host. Because all traffic went to one destination, there was no
need for a destination header. Later, a data header field was added to
inform the network where (to which host or peer) to direct a particular
SDU or message.
Although the data header field can range in size from 0 to 64 bytes, by
convention most applications are written using a 3-byte data header.
The DataTAC systems each use a different portion of these three bytes
as a pointer to a destination. This pointer is called a session ID. Setting
these three bytes (the entire data header field) to a common value
guarantees compatibility across all three systems.
Here are the specific differences in how the systems implement the
session ID:
On DataTAC 5000 systems, the first two bytes of the data header point
to a destination. (These two bytes are referred to as the session ID.)
On DataTAC 4000 and 6000 systems, the third byte only of the data
header points to a destination. (The third byte is also known as a host
slot on these systems.)
An example of these system differences is illustrated below. Each row
in the table depicts the application-visible portion of the DataTAC
system header for the identified system. In the data header column the
session ID bytes appear in bold typeface. The data header offset field
identifies the length in bytes of the data header field.
Wavenet Technology
94
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
DataTAC
Header Fields
Data Header
Offset
Data Header
Data
System Type
(Not Shown)
4000
...
03
T E1
Hello World
5000
...
03
TE1
Hello World
6000
...
03
T E1
Hello World
In this example the data header TE1 is a sample. The data header could
also have been RO3, TX4, SS2, or many others, depending on the
configuration of the network infrastructure.
The DataTAC 4000 and 6000 systems use 1 as a pointer to a
destination and TE to refer to an application ID. Conversely, the
DataTAC 5000 system uses TE as a pointer to a destination and 1 as an
extra byte, which only has meaning if active carrier management
(ACM) is used. Since SCR does not require ACM, this byte can be
ignored.
Note: Using this example, for cross compatible applications (to all
DataTAC systems), set a data header offset of 03 (ASCII) and set the
same data header for all three systems (in this example, TE1).
Consider another example. A DataTAC 4000 or 6000 system could use
a data header of XY3 for one message and a data header of AB3 for
another message. According to current system implementations of the
session ID feature, both SDUs would go to the same destination
because the third byte (the pointer to the destination) is the same.
SCR Header Charts
The charts in this section allow you to compare SCR syntax across all
three DataTAC systems. Each chart displays a different set of headers
based on message type. For example, the length prefix on the DataTAC
5000 system header and much of the DataTAC 4000 system header are
shaded in gray to highlight fields where differences exist. Two of the
data headers are shaded for the same reason, indicating that they differ
in unique ways from the DataTAC 5000 system data header.
Note: All header reserve fields must be set to ASCII 0 (0x30) or binary
NULL (0x00), depending on the format requirements of the field.
The following table shows the terminology of other communications
protocols (for example, Native Control Language), and the SCR header
types.
BM210012WT09
Other Protocol Terminology
SCR Terminology
Command Message
Host Request Message
Response Message
Host Confirmation Message
Event Message
Mobile Information Message.
95
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
The list preceding each chart describes the contents of the header
fields.
Host Request Message Header Fields
Wavenet Technology
Save Bytes
Supplied by the host and used by the network to tie
the confirmation to the original host request. Save
bytes are ASCII for DataTAC 4000 systems. Save
bytes can be ASCII or binary for DataTAC 5000 and
6000 systems.
Length
Prefix
DataTAC 5000 systems require all SCR messages to
designate the length of the message. The length count
does not include the length prefix itself, but does
include everything else in the message packet.
Type Code
Identifies the type of the SCR message: Use ‘I’ ‘B’ for
DataTAC 4000 systems. Use ‘H’ ‘R’ for the other
systems.
LLI
Identifies the subscriber terminal to which the
message is being routed. On DataTAC 4000 systems
the field (also known as Terminal ID) is ASCIIencoded in 8 bytes. On the other systems it is binary
encoded in 4 bytes (the first four bytes of this 8-byte
field are reserved).
Format
Indicator
Used in DataTAC 4000 systems only, to specify the
format of the data in the user data section of the
message. This field is reserved on the other systems
and handled by their Format field, as noted in this list.
Delivery
Option
DataTAC 4000 systems allow four priorities for a
message in the Priority field. Other systems allow two
delivery options: Send once and quit; send and queue
until delivered or timed out.
Confirmation
Mode
On DataTAC 4000 systems this is also known as
Acknowledgment Indicator. On all systems this mode
allows the host to specify the conditions under which
a confirmation message is returned for the message
being submitted.
Format
For DataTAC 5000 and 6000 systems only, a fixed
value set to $15 (hex). This field replaces the Format
Indicator field on DataTAC 4000 systems.
Format
Dependent
For DataTAC 5000 and 6000 systems only, a fixed
value set to $C0 (hex).
Data Header
Offset
On DataTAC 4000 systems this field is also called
Data Header Size. On all systems it specifies the
number bytes in the data header portion of the
message.
96
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
Information
BM210012WT09
For all systems, these fields include the data header
and user data for the application.
97
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
Host Confirmation Message Header Fields
Length Prefix
DataTAC 5000 systems require all SCR
messages to designate the length of the
message. The length count does not include
the length prefix itself, but does include
everything else in the message packet.
Type Code
Identifies the type of the SCR message: Use
‘A’ ‘B’ for DataTAC 4000 systems. Use ‘H’
‘C’ for the other systems.
LLI
Identifies the subscriber terminal to which the
message is being routed. On DataTAC 4000
systems the field (also known as Terminal ID)
is ASCII-encoded in 8 bytes. On the other
systems it is binary encoded in 4 bytes (the
first four bytes of this 8-byte field are
reserved).
Save Bytes
Supplied by the host and used by the network
to tie the confirmation to the original host
request. Save bytes are ASCII for DataTAC
4000 systems. Save bytes can be ASCII or
binary for DataTAC 5000 and 6000 systems.
Response Code
Known as Acknowledgment code in
DataTAC 4000 systems, this field indicates
the delivery status of the message to which
the save bytes refer. On DataTAC 4000
systems, acknowledgments are indicated by
the ASCII value ‘00’. On other systems,
acknowledgments are indicted by any value
(ASCII-encoded hex) from ‘08’ through ‘0F’.
NAKs (negative acknowledgments) are in the
range of ‘10’ to ‘A0’ for DataTAC 4000
systems and in the range of 40-97, A0-A5 for
DataTAC 5000 and 6000 systems. DataTAC
5000 and 6000 systems also have these
additional response codes:
‘A1’ Terminal message in progress
‘A2’ Terminal out of service
‘A3’ Invalid session or host ID (invalid
routing info.)
‘A4’ Maximum terminal queue exceeded.
Wavenet Technology
98
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
BM210012WT09
99
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
Mobile Information Message Header Fields
Wavenet Technology
Length Prefix
DataTAC 5000 systems require all SCR
messages to designate the length of the
message. The length count does not
include the length prefix itself, but does
include everything else in the message
packet.
Type Code
Identifies the type of the SCR message:
Use ‘O’ ‘B’ for DataTAC 4000 systems.
Use ‘M’ ‘I’ for the other systems.
LLI
Identifies the subscriber terminal from
which the message is being received. On
DataTAC 4000 systems the field (also
known as Terminal ID) is ASCIIencoded in 8 bytes. On the other systems
it is binary encoded in 4 bytes (the first
four bytes of this 8-byte field are
reserved).
Format Indicator
Used in DataTAC 4000 systems only, to
specify the format of the data in the user
data section of the message. This field is
reserved on the other systems and
handled by their format field, as noted
below in this list.
Delivery Option
DataTAC 4000 systems allow 4
priorities for a message in the field
formerly known as Priority. The
Delivery Option field is reserved on the
other systems.
Format
For DataTAC 5000 and 6000 systems
only, a fixed value set to $15 (hex). This
field replaces the format indicator field
on DataTAC 4000 systems.
Format Dependent
For DataTAC 5000 and 6000 systems
only, a fixed value set to $C0 (hex).
Data Header Offset
On DataTAC 4000 systems this field is
also called Data Header Size. On all
systems it specifies the number bytes in
the data header of the information
section of the message.
Information
For all systems, these fields include the
100
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
data header and user data for the
application.
BM210012WT09
101
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
DataTAC Messaging (DM)
DM allows one terminal to communicate with up to ten other terminals
by routing a message through the DataTAC system network. As such,
DM provides the protocol for basic E-mail functionality. System
differences with regard to DM appear mainly as differences in DM
syntax.
DM Message Types
Peer-to-peer communications uses two types of messages:
Generate (originator-to-network)
Receive (network-to-destination)
Each message type must include its own type of header. Within each
system, each type of header has small differences in syntax. The charts
graphically compare the headers across systems.
Highlights of DM Differences
Each of the three DataTAC systems varies slightly according to how it
implements DM. Use the table below to identify the system differences
by DM attribute.
DM attribute
DataTAC 4000
Systems
DataTAC
5000Systems
DataTAC
6000Systems
Address length
8 bytes
14 bytes
14 bytes
Error reporting
Does not include an
error number prefix
as part of the error
text.
Includes an error
number prefix as part
of the error text.
Does not include an
error number prefix
as part of the error
text.
Time-stamping
Yes
Yes
No
Message storage
Configurable
10 messages
100 messages
DataTAC Messaging Implementation Differences
Wavenet Technology
102
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
DM Header Charts
The charts in this section allow you to compare DM syntax across all
three DataTAC systems. Each chart displays a different set of headers
based on message type. The charts show the differences you need to be
aware of for your particular project. The list preceding each chart
describes the contents of the header fields.
Message Generate Header Fields
BM210012WT09
Type
All systems use ASCII ‘M’ ‘G’ to indicate
a Message Generate type message header.
Sender ID
The ID of the originating wireless
terminal. On DataTAC 4000 systems this
field is 8 bytes. On other systems it is 14
bytes.
First Destination ID
The ID of the first of up to 10 destination
terminals.
Last Destination ID
The ID of the last of up to 10 optional
destination terminals.
Flag Bytes
Settings for optional delivery services.
Date & Time of
Message Generation
The current date and time the message is
generated.
Date & Time for
Delayed Action
The date and time when the message is to
be displayed at the destination. This option
is present is the corresponding flag bit is
set.
Originator’s ID
The ID of the previous terminal of a
message being forwarded by a recipient.
This option is present is the corresponding
flag bit is set.
Sequence Number
A number used by a DM application to
match replies and error messages with a
previously sent message.
Message Text
Can be binary or ASCII, depending on
requirements of the application.
103
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
Wavenet Technology
104
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
Receive Header Fields
BM210012WT09
Type
All systems use ASCII ‘R’ ‘M’ to indicate
a Receive Message type message header.
Sender ID
The ID of the originating wireless
terminal. On DataTAC 4000 systems this
field is 8 bytes. On other systems it is 14
bytes.
First Destination ID
The ID of the destination terminal
Flag Bytes
Settings for optional delivery services.
Date & Time of
Message Generation
The current date and time the message is
generated.
Date & Time for
Delayed Action
The date and time when the message is to
be displayed at the destination. This option
is present is the corresponding flag bit is
set.
Originator’s ID
The ID of the previous terminal of a
message being forwarded by a recipient.
This option is present is the corresponding
flag bit is set.
Sequence Number
A number used by a DM application to
match replies and error messages with a
previously sent message.
Message Text
Can be binary or ASCII, depending on
requirements of the application.
105
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
Wavenet Technology
106
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
Host Messaging (HM)
Host Messaging (HM) is achieved by placing a DM header inside an
SCR header. In addition, the first two bytes (either MG or RM) must be
replaced with HM to signify the message was received from a host,
rather than a peer. HM used in conjunction with DM allows the
terminal to use the same routing protocol regardless of its destination.
(Despite its simplicity, use of HM is not recommended because it is
inefficient). For further details, refer to the InfoTAC Application
Developer’s Guide, Motorola reference: 6804018C65.
Other Development Issues
Localizing and testing your applications are not issues related
specifically to application migration. The following comments are
provided as a helpful reminder only.
Localizing an Application
Whether you are preparing your application for sale internationally or
developing it internally for an international company, consider
designing in international characteristics from the beginning, such as
character encoding, language enabling, and special text formatting.
While such an effort can take longer up front, any eventual re-porting
of the application will be much easier to manage.
Character Encoding
If your application supports languages that use Latin-based characters
(for example, English, Spanish, and German), design your application
for compatibility with 7-bit ASCII/ISO 646 and Latin 1/ISO 8859-1, 8bit display fonts.
If your application support dialects of non-Latin languages, such as
Chinese, Japanese, Korean, or Thai, design your application to work
with Unicode or another 16-bit character encoding standard. In
addition, provide your application with flexible keyboard mapping.
Language Enabling
Isolate all translatable strings, icons, and menus from your program.
Then the greater part of a localization effort will be translation, rather
than re-engineering. Allow for expansion of text strings during
localization. Most translations are longer than the orig-inal. Allow your
program to accept variable-length strings or use the international
language capabilities inherent in the application environment, such as
Windows 3.1, Windows 95, Windows NT, or Windows CE.
BM210012WT09
107
Wavenet Technology
Message Routing and Migration________________________________ Boomer II User Manual & Integrator’s Guide
Special Text Formatting
The display of dates, numbers, and monetary values varies among
locales. Support for these differences may be provided by your
programming environment to simplify the development of code. If your
programming environment doesn’t provide such support, include
alternative tables or options for use when localizing.
Testing an Application
Virtually all public network operators have some testing or certification
procedure available to help ensure that your new applications behave
appropriately when brought onto the network. Many systems also have
test nodes, which allow program testing without risk of interrupting the
public network. Because each operator’s procedures and requirements
differ, check with the operator of your target network regarding their
individual certification procedure.
With the proper documentation, writing an application that will operate
on a wireless network anywhere in the world is not difficult. You don’t
have to develop an application on site in the region where it will
operate. For example, if your local and target networks are the same,
the logistics associated with testing the application are fairly minimal.
Testing an application for a distant target network requires a bit more
planning, since the network is not directly accessible from your
development site. In this case, two approaches are worth considering:
If your application is designed for a DataTAC network in
another country and your local network uses the same version
of DataTAC system as the target network, sign up with your
local network operator for service during development, test, and
support. When the application is complete, it is likely that the
target network operator will require validation or certification
tests. After having used your local network for development
tests, validation testing will probably be a straightforward
process.
If your local network is other than the target network, you might still
want to develop a local version of the application to test the logic and
performance of your program in a controlled environment. (Be sure to
get advanced approval from the local operator to run your test version
without it being validated.) In this case, the target network will not be
tested directly and more verification testing will be required.
Wavenet Technology
108
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Message Routing and Migration
BM210012WT09
109
Wavenet Technology
Appendix A - NCL Interface___________________________________ Boomer II User Manual & Integrator’s Guide
Appendix A - NCL Interface
The Boomer II is compliant to Native Control Language (NCL) 1.2.
Wavenet Vendor-specific extensions are also listed here.
The specification for the NCL protocol may be obtained in Adobe
Acrobat format from the Motorola website at
http://www.mot.com/MIMS/WDG/pdf_docs/8-.pdf
Generic NCL (Native Mode)
Command SDUs (CMND, ASCII A)
Commands
Value
Parameters
Value
SEND
ASCII 1
Send message.
READ_MSG
ASCII 2
Read queued message in RPM. True only if confirmed delivery mode
enabled.
CTL_EVENT
ASCII 3
GET_STATUS
ASCII 4
Event Report SDUs.
Sub-values and Descriptions
Control event.
Get RPM status/configuration.
R_CONFIG_BLOCK
ASCII A
Get RPM configuration block.
R_RF_BLOCK
ASCII A
Vendor-specific: Get RF status block.
R_STATUS_BLOCK
ASCII B
Get RPM status block.
R_PROD_ID
ASCII C
Get RPM product ID:
RF_RDLAP_9.6
RF protocol is RD-LAP 9600.
ASCII 0
RF_RDLAP_19.2
RF protocol is RD-LAP 9200.
ASCII 1
RF_MDC4800
RF protocol is MDC 4800.
ASCII 2
RF_DUAL
Dual RD-LAP 9.2/MDC4800.
ASCII 3
NCL_PRE1.2
NCL support is R1.0 or R1.1.
ASCII 0
NCL_1.2
NCL support is R1.2.
ASCII 2
Wavenet Technology
110
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________ Appendix A - NCL Interface
Commands
SET_CNF
Value
Parameters
Value
Sub-values and Descriptions
R_SYSID
ASCII C
Vendor-specific: Get system ID of current RF system.
R_SW_VERSION
ASCII D
Get software version number.
R_RPM_ID
ASCII E
Get RPM address.
R_RF_BLOCK_SHORT
ASCII E
Vendor-specific: Get short form of RF status block.
ASCII F
Reserved.
R_MAX_DATA_SIZE
ASCII G
Get SDU data limit.
R_RPM_GID
ASCII H
Get RPM group IDs.
R_WAN_TYPE
ASCII I
Get WAN Type Code.
R_RF_VERSION
ASCII J
Get RF protocol version number.
R_VENDOR_ID
ASCII K
Get vendor information: VEND_MOTOROLA Vendor is Motorola
ASCII 0
ASCII
L..Z
Reserved.
R_RCV_MODE
ASCII a
Get mode of notification to the DTE for received SDUs.
R_RX_STATUS
ASCII b
Get receiver enable status.
R_TX_STATUS
ASCII c
Get transmitter enable status.
R_ANTENNA
ASCII d
Get antenna selection status.
R_RADIO_IN_RANGE
ASCII e
Get radio in range status.
R_OB_MSG_COUNT
ASCII f
Count of outbound messages queued.
R_IB_MSG_COUNT
ASCII g
Count of inbound messages queued.
R_FLOW_CONTROL
ASCII h
Get flow control status.
R_EVENT_STATES
ASCII i
Get current event reporting enable/disable state.
R_RADIO_CHANNEL
ASCII j
Get current radio channel.
R_CHAN_BLOCK
ASCII k
Get RPM RF channel status block.
R_RF_STATISTICS
ASCII l
Get RPM RF statistics block.
R_BAT_LEVEL
ASCII m
Get battery status.
ASCII n..x
Reserved.
R_DCHAN_TABLE
ASCII y
Read dynamic channel table.
R_CHAN_TABLE
ASCII z
Read static channel table.
ASCII 5
Set modem configuration.
S_RCV_MODE
ASCII A
Select the confirmed/unconfirmed Receive Data mode.
S_INACTIVITY_
TIMEOUT
ASCII A
Vendor-specific: Set read time for outbound packet.
S_TX_CONTROL
ASCII B
Enable/disable the transmitter.
S_RX_CONTROL
ASCII C
Enable/disable the radio.
S_FLOW_CONTROL
ASCII D
Select the flow control method:
S_RADIO_CHANNEL
BM210012WT09
ASCII E
FLOW_NONE
No flow control.
ASCII 0
FLOW_XONXOFF
XON/XOFF
ASCII 1
FLOW_RTSCTS
RTS/CTS
ASCII 2
Select the radio channel.
111
Wavenet Technology
Appendix A - NCL Interface___________________________________ Boomer II User Manual & Integrator’s Guide
Commands
Value
Parameters
Value
Sub-values and Descriptions
S_CUR_CNF
ASCII F
Save the modem configuration
R_DEF_CNF
ASCII G
Restore the modem configuration
R_STO_CNF
ASCII H
Read the modem configuration:
CNF_EVENT_
Event control flag
ASCII 0
FLAGS
settings
CNF_DELIVERY_
Outbound SDU del.
MODE
mode
CNF_RADIO_
Radio control
ASCII 2
S_RX_CONTROL
ASCII C
S_TX_CONTROL
ASCII B
ASCII 1
CONTROLsettings:
S_POWER_SAVE
ASCII I
Set the PowerSave mode.
S_ROAM_MODE
ASCII J
Set the roaming mode:
ROAM_
MANUAL
Set to manual.
ASCII 0
ROAM_AUTO
Set to automatic.
ASCII 1
S_BAUD
ASCII K
Set the baud rate for NCL communications:
BAUD_1200
1200 baud
ASCII 0
BAUD_2400
2400 baud
ASCII 1
BAUD_4800
4800 baud
ASCII 2
BAUD_9600
9600 baud
ASCII 3
BAUD_19K2
19200 baud
ASCII 4
Wavenet Technology
112
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________ Appendix A - NCL Interface
Commands
Value
Parameters
Value
Sub-values and Descriptions
BAUD_38K4
38400 baud
ASCII 5
S_ANTENNA
RESET_RPM
VENDOR
Undefined
Select the antenna
ASCII
L..Z
Reserved.
ASCII 6
Reset RPM.
FLUSH_INBOUND
ASCII 1
Flush inbound message queue.
FLUSH_OUTBOUND
ASCII 2
Flush outbound message queue.
FLUSH_BOTH
ASCII 3
Flush inbound and outbound message queues.
RESET_WARM
ASCII 4
Warm start RPM.
RESET_TRANS
ASCII 5
Reset to Transparent Mode, if Transparent Mode is supported.
RESET_FULL
ASCII 6
Full reset of RPM.
RESET_NCL
ASCII 7
Reset NCL interpreter only.
RESET_OFF
ASCII 8
Power off the RPM.
RESET_DIAG
ASCII A
Vendor-specific: Cause DTE to enter diagnostic mode.
ASCII
A..Y, 7..9
Reserved.
ASCII Z
Vendor-specific command.
Event Report SDUs (EVENT, ASCII B)
Events
Value
Event Report
Enable
Bit
RCV_MSG_
ASCII A
RCV_MSG_DATA_
$10
Received message
data.
$08
Received message
notification. True only
if confirmed delivery
mode enabled.
$04
Physical-level
transmitter event.
DATA
RCV_MSG_
RX_EVENT
Value
BIT
ASCII B
NOTIFICATION
TX_EVENT
Parameters
RCV_MSG_
NOTIFY_BIT
ASCII C
ASCII D
TX_EVENT_BIT
RX_EVENT_BIT
Descriptions
TX_KEYED
ASCII 1
Transmitter keyed.
TX_DEKEYED
ASCII 2
Transmitter dekeyed.
$02
Physical-level receiver
event.
RX_IN_RANGE
ASCII 1
RF in range.
RX_OUT_OF_RANGE
ASCII 2
RF out of range.
RX_PWR_SAVE_
ASCII 3
Power saving enabled.
ASCII 4
Power saving disabled.
RX_ACTIVE
ASCII 5
Device in active state
on RF channel.
CHAN_DISALLOWED
ASCII 6
Device disallowed on
channel.
RX_REG_DENIED
ASCII 7
Flash LED for
ENABLED
RX_PWR_SAVE_
DISABLED
BM210012WT09
113
Wavenet Technology
Appendix A - NCL Interface___________________________________ Boomer II User Manual & Integrator’s Guide
registration denial.
HW_EVENT
RCV_ERR
ASCII E
HW_EVENT_BIT
$01
Hardware event.
HW_SELF_TEST
ASCII 1
Self-test failed.
HW_LOW_BATT
ASCII 2
Low battery.
HW_MEM_FULL
ASCII 3
Memory full.
HW_BATT_OK
ASCII 4
Battery level OK.
HW_MEM_OK
ASCII 5
Memory OK.
HW_OFF
ASCII 6
Device shutdown
imminent.
HW_BATT_WARN
ASCII 7
Battery at warning
level.
ASCII F
Unreceivable message
event.
RCV_TX_DISABLED
CONTROL
ASCII G
CONTROL_BIT
$20
ASCII 1
NCL connect between
RPM and DTE .
ASCII
H..Y, 1..9
Reserved.
ASCII Z
Vendor-specific event.
Responses
Value
SUCCESS
ASCII 1
XFAIL
ACK required, PDU
received. Cannot
ACK, transmitter
disabled. PDU
discarded.
Control event.
CONNECT
VENDOR
ASCII 1
Response Status SDUs (RESP, ASCII C)
Parameters
Value
Description/Error Code
IBQ_FLUSHED
ASCII a
Successful.
ASCII 2
Wavenet Technology
Error code. Pending SDUs in inbound queue flushed;
transmitter disabled. Used only if the RPM cannot support
message buffering while transmitter disabled.
Command execution error. Note the following error codes:
NO_RESPONSE
ASCII A
No response from network.
NO_ACK
ASCII B
Negative ACK received.
HOST_DOWN
ASCII C
Host access is down.
NOT_REGISTERED
ASCII D
RPM not registered.
LOW_BATTERY
ASCII E
Low battery—cannot transmit.
IBQ_FULL
ASCII F
RPM inbound queue is full.
TX_DISABLED
ASCII G
Radio transmitter is disabled.
BUSY
ASCII H
Resource is unavailable.
NOT_AVAILABLE
ASCII I
Unimplemented services.
HW_ERROR
ASCII J
Generic error.
INVALID_MODE
ASCII K
Invalid mode of operation.
NO_MESSAGES
ASCII L
No outbound messages available.
MSGS_PENDING
ASCII M
Cannot execute command due to pending inbound messages.
SW_ERROR
ASCII N
Software error.
OUT_OF_RANGE
ASCII O
RF not in range.
PACKET_ERROR
ASCII Z
SDU data corruption. True only if confirmed delivery mode
enabled.
ASCII
Reserved.
114
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________ Appendix A - NCL Interface
P..Y, 1..9
SYNTAX
VENDOR
ASCII 3
ASCII Z
BM210012WT09
Command SDU syntax error. Note the following error codes:
INVALID
ASCII b
Invalid options.
TOO_LONG
ASCII c
Data is too long.
ASCII Z
Vendor-specific response.
115
Wavenet Technology
Appendix A - NCL Interface___________________________________ Boomer II User Manual & Integrator’s Guide
Wavenet specific NCL Extensions
The following table describes Wavenet specific extensions to the NCL
1.2 specification. All SDUs include three VENDOR control byte and
the vendor Id. (the ‘\’ character is used as an escape character for
hexadecimal bytes below):
Command Type
1. Get status commands
2. Generic “Set RPM
configuration” command.
3. Generic “Get RPM
configuration” command.
Command Description
Ncl String
Get radio status
ZF?r
Get modem battery status
ZF?v
Get modem “on” time
ZF?t
Get saved modem configuration settings
ZF?u
Get modem serial number:
ZFts
Set modem configuration parameters, eg:
ZF^[2 Byte ID][2 byte Length][Val]
* Power save mode.
ZF^p\00\00\01[new mode (byte)]
* Select new active profile.
ZF^f\00\00\01[new profile (byte)]
* NCL receive message notify timer.
ZF^n\00\00\02[2 bytes time (msec)]
Get modem configuration, eg:
ZF$[2 Byte ID]
* Power save mode.
ZF$p\00
* Get list of profiles, number of
ZF$f\00
profiles and currently selected active
profile.
ZF$n\00
* NCL receive message notify timer.
GET STATUS COMMANDS:
This command allows the DTE to request the current status and
configuration settings of certain aspects of the modem.
FORMAT:
WN_GET_STATUS Command Syntax (NCL string “ZF?…”):
CMND
Length
VENDOR
‘Z’
SDU Tag
‘F’
VEND_ WAVENET
‘?’
Status
Request
WN_GET_STATUS
WN_GET_STATUS Response Syntax:
RESP
Length
SDU Tag
VENDOR
‘F’
‘1’
Response
data
...........
Wavenet Technology
116
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________ Appendix A - NCL Interface
OPERAND DESCRIPTIONS AND RESPONSES:
The various Vendor Status Requests that can be made, and the format
of their response information in the SUCCESS response SDU, are
described as follows. Please note that all multiple byte fields are stored
MSB first.
WN_GET_RADIO:
Get radio status information (NCL string “ZF?r”).
SUCCESS is followed by a block of status information as shown
below:
WN_GET_RADIO Response Format:
RSSI [2 bytes]
Reserved (ignore) [1 byte]
Reserved (ignore) [1 byte]
Reserved (ignore) [1 byte]
Reserved (ignore) [1 byte]
Reserved (ignore) [1 byte]
Reserved (ignore) [1 byte]
Reserved (ignore) [1 byte]
Reserved (ignore) [1 byte]
Current Frequency [4 bytes]
Current Channel [2 bytes]
Current Base Station ID [1 unsigned byte]
Where:
RSSI:
Two byte signed integer representing the
strength of the received signal from the
base station measured in dBm. A typical
value could be -90.
Current Frequency:
Four byte unsigned integer representing
the frequency of the inbound signal in Hz
for the channel the modem is currently
scanning or locked on to.
Current channel:
Unsigned word (2 bytes) representing
current channel.
Current Base Station ID:
Unsigned byte representing
current base station ID.
BM210012WT09
117
Wavenet Technology
Appendix A - NCL Interface___________________________________ Boomer II User Manual & Integrator’s Guide
WN_GET_BATT_VOLT:
(NCL string “ZF?v”).
Get modem battery status information
SUCCESS is followed by a block of status information in the format
shown below:
WN_GET_BATT_VOLT Response For mat:
Battery Voltage (2 bytes)
Battery Percentage
Where:
Battery Voltage:
Battery Percentage:
WN_GET_TIME:
“ZF?t”).
Two byte unsigned integer representing
the Voltage of the battery in mV.
Estimate of the remaining capacity of the
battery. This value ranges from 0 to 100
(unsigned byte).
Get modem time information (NCL string
SUCCESS is followed by a block of status information in the format
shown below:
WN_GET_TIME Response Format:
Elapsed Time [4 bytes]
Elapsed Time is a four byte unsigned integer, which represents the
number of milliseconds, which have passed since the modem was last,
turned on or reset. It is accurate to within 50ms of when the last byte
of the request message was received by the modem.
Wavenet Technology
118
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________ Appendix A - NCL Interface
WN_GET_SETTINGS :
string “ZF?u”).
Get configuration information (NCL
SUCCESS is followed by a block of status information in the format
shown below:
WN_GET_SETTINGS Response Format:
LLI [4 bytes]
Serial Number [16 bytes]
.......
Reserved (ignore)
Home System Prefix
Home System ID
Home Area ID
5 Reserved bytes (ignore)
NCL Confirmation Mode
NCL Rx Control
NCL Tx Control
NCL Event Flags
Number of Group LLIs (n)
Group LLIs [4*n bytes]
Number of static channels (m)
Static channels [2*m bytes]
Reserved (ignore) [17 bytes]
.............
Where:
LLI:
Four byte unsigned integer (the standard
NCL command 4E also gives the LLI
number back).
Serial Number:
ASCII string containing the serial number
of the modem. Unused bytes are zeros.
The NCL command ZFts also gives the
serial number back.
NCL Confirmation Mode:
Default start-up state for the
confirmation mode of the NCL layer. It
is a zero for unconfirmed mode, or a one
for confirmed mode.
NCL Rx Control and NCL Tx Control:
BM210012WT09
119
Wavenet Technology
Appendix A - NCL Interface___________________________________ Boomer II User Manual & Integrator’s Guide
Indicate the start-up state for the NCL
settings for RX_STATUS and
TX_STATUS respectively. A zero
indicates disabled, a one indicates
enabled.
NCL Event Flags:
Byte which indicates the start-up state of
the NCL event reporting. A set bit
indicates the relevant event is enabled. A
cleared bit indicates the event is disabled.
The bits are as follow:
Bit 7 - Reserved (ignore)
Bit 6 - Rx_Error
Bit 5 - Control
Bit 4 - Rcv_Msg_Data
Bit 3 - Rcv_Msg_Notify
Bit 2 - Tx
Bit 1 - Rx
Bit 0 - Hwr
Number of Group LLIs:Number of Group LLI fields which
follow.
Group LLIs:
Each is a four byte unsigned integer. The
number of Group LLIs is given in the
previous field.
Number of Static Channels:
Number of channel fields
which follow.
Static Channels:
Each is a two byte unsigned integer. The
number of Static Channels is given in the
previous field.
WN_GET_SERIAL: Get modem serial number (NCL string “ZFts”).
SUCCESS is followed by a block of status information in the format
shown below:
WN_GET_SERIAL Response Format:
Modem serial number [10 bytes]
The modem serial number is unique to each modem and consists of
ASCII characters. The tenth character is typically a null termination
character.
Wavenet Technology
120
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________ Appendix A - NCL Interface
Generic set RPM Configuration command
(WN_SET_PARAM):
This command allows the DTE to set the configuration settings of
certain aspects of the modem.
FORMAT:
WN_SET_PARAM Command Syntax (NCL string “ZF^…”):
CMND
Length
SDU Tag
VENDOR
‘Z’
‘F’
VEND_WAVENET
‘^’
Parameter number
Parameter length
WN_SET_PARAM
WN_SET_PARAM Response Syntax:
RESP
Length
SDU Tag
VENDOR
VEND_WAVENET
SUCCESS
OPERAND DESCRIPTIONS AND RESPONSES:
The various Vendor Parameter settings that can be made are described
as follows. Please note that all multiple byte fields are stored MSB
first. Numbers prefixed with “0x” are expressed as hexadecimal.
“Byte” (optionally followed by a sequence number) is used to indicate
a single byte.
Parameter Number
Parameter Length
Parameter Contents
A 16-bit field, which is unique to each
parameter, used to differentiate them.
A 16 bit field, which indicates the length
of the following parameter, in bytes.
The actual bytes set for the parameter.
The format is parameter specific.
The Parameter Name is a label used to refer to particular parameters,
and is used as a definition for the parameter number.
WN_SET_PARAM :
BM210012WT09
Set Modem Configuration (NCL string
“ZF^[2 byte parameter number][2 Byte
parameter length][parameter block..]”).
121
Wavenet Technology
Parameter
contents …
Appendix A - NCL Interface___________________________________ Boomer II User Manual & Integrator’s Guide
Parameter name :
Parameter number :
Parameter length :
Parameter contents :
WN_PWR_SAVE_MODE
0x7000 (“Byte1Byte2”) (ASCII 0x70 = ‘p’)
0x0001 (“Byte3Byte4”)
One unsigned byte (“Byte5”) indicating the
PowerSave mode as follow:
ASCII ‘0’ :
EXPRESS (Disabled
PowerSave or “full awake” mode).
ASCII ‘1’ :
MAXIMUM (4 windows).
ASCII ‘2’ :
AVERAGE (8 windows).
ASCII ‘3’ :
MINIMUM (16 windows).
Parameter name:
Parameter number :
Parameter length :
Parameter contents:
WN_PROFILE
0x6600 (“Byte1Byte2”) (ASCII 0x66 = ‘f’)
0x0001 (“Byte3Byte4”)
One unsigned byte with the number of the new
active profile.
Parameter name:
Parameter number :
Parameter length :
Parameter contents:
Wavenet Technology
WN_MSG_RX_NOTIF_TMR
0x6E00 (“Byte1Byte2”) (ASCII 0x6E = ‘n’)
0x0002 (“Byte3Byte4”)
One unsigned word (2 bytes) containing the
number of milliseconds between message
notifications to the Palm. The maximum setting is
65 seconds (65000 milliseconds).
122
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________ Appendix A - NCL Interface
Generic get RPM Configuration command
(WN_GET_PARAM):
This command allows the DTE to get the configuration settings of
certain aspects of the modem. This section should be seen together
with the previous section (“Generic GET RPM Configuration
command”).
FORMAT:
WN_GET_PARAM Command Syntax (NCL string “ZF$…”):
CMND
Length
SDU Tag
VENDOR
‘Z’
‘F’
VEND_WAVENET
‘$’
Parameter number
WN_GET_PARAM
WN_GET_PARAM Response Syntax:
CMND
Length
SDU Tag
VENDOR
‘Z’
‘F’
VEND_WAVENET
‘$’
Parameter
Length
Parameter
Value
SUCESS
OPERAND DESCRIPTIONS AND RESPONSES:
The various Vendor Parameter values that can be requested are listed
in the previous section (“Generic set RPM Configuration command”).
The responses to these commands obey the WN_GET_PARM response
syntax as shown above. The one exception is the “Get Active Profile”
command, which returns more than just the “active profile”:
Parameter Number
A 16-bit field, which is unique to each
parameter, used to differentiate them.
Parameter Length
A 16 bit field, which indicates the length
of the following parameter, in bytes.
Parameter Value
The actual value of the parameter. The
format is parameter specific.
WN_ PROFILE Get list of profiles from modem (NCL string
“ZF$f\00” with “\00” representing one byte with value of zero).
BM210012WT09
123
Wavenet Technology
Appendix A - NCL Interface___________________________________ Boomer II User Manual & Integrator’s Guide
SUCCESS is followed by a block of information in the format shown
below:
WN_GET_PROFILE_LIST Response Format:
Number of profiles (n) [1 byte]
Active profile number [1 byte]
Profile Name 1 (up to 24 byte null terminated string)
Profile Name 2 (up to 24 byte null terminated string)
Profile Name n (null terminated string) [24 bytes]
Where:
Number of profiles:
Unsigned byte giving the current number of
profiles in configuration sector. The number
of profiles may change.
Active profile number: Unsigned byte giving the number (or index) of
the currently active profile.
Profile name:
Null terminated string of 24 bytes of length
(the string may be shorter than the 24 bytes as
long as it is followed immediately by the null
termination character). The 24 bytes do not
include the null termination character.
NCL Label Values
Please note the following additions/clarifications to the NCL Label
Values Table:
CMND
RESP
SUCCESS
VENDOR
VEND_MOTOROLA
VEND_WAVENET
ASCII 'A'
ASCII 'C'
ASCII '1'
ASCII 'Z'
ASCII '0'
ASCII 'F'
WN_GET_STATUS
ASCII '?'
WN_GET_RADIO
ASCII 'r '
WN_GET_BATT_VOLT ASCII 'v'
WN_GET_TIME
ASCII 't'
WN_GET_SETTINGS
ASCII 'u'
WN_GET_SERIAL
ASCII ‘s’
WN_SET_PARAM
ASCII ‘^’
WN_GET_PARAM
ASCII ‘$’
WN_PWR_SAVE_MODE
0x7000
WN_PROFILE
0x6600
WN_MSG_RX_NOTIF_TMR
0x6E00
WN_CMD
ASCII '*'
Wavenet Technology
124
(eg NCL command ZF?r)
(eg NCL command ZF?v)
(eg NCL command ZF?t)
(eg NCL command ZF?u)
(eg NCL command ZFts)
(eg NCL cmd ZF^\04\00\00\01\09)
(eg NCL commandS ZF$..)
(eg NCL cmd ZF$\70\00 = ZF$p\00)
(eg NCL cmd ZF$\66\00 = ZF$f\00)
(eg NCL cmd ZF$\6E\00 = ZF$n\00)
(eg NCL commands ZF*..)
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________ Appendix A - NCL Interface
SAR Routine Function
An SAR limiting function is available for end user applications to limit
the average transmitted power by preventing new data transmissions
until the previous period’s average transmitted power is less than the
required SAR level.
During all transmission times a Retransmit Delay Accumulator is
incremented by a value of:
time Td = Duty Factor constant x actual time of block.
The Duty Factor is a ratio of non transmit to transmit time:
= (100 – DutyCycle%) / DutyCycle%
When the current data block and any retries have been sent, the next
transmission is inhibited, dependent on the required duty cycle and the
last transmission time. Data to be transmitted will be accumulated in a
data buffer.
When not transmitting, the Retransmit Delay Accumulator decrements
until the timer has expired.
The transmit may restart again, if there is data to send.
The default setting of the modem is 10% Duty Cycle unless otherwise
programmed.
BM210012WT09
125
Wavenet Technology
Appendix A - NCL Interface___________________________________ Boomer II User Manual & Integrator’s Guide
SAR Algorithm
Initialise duty cycle of non transmit time, back off timer and Tx on
timer.
Then execute the following state machine.
Are we
backing off
Tx?
Tx
Data
Reque
Idle
Yes
Has back
off timer
expired?
No
No
Buffer data
Yes
Tx data
reset Tx on
time
All data
sent
Tx on
time
Expired?
Finish Tx
current
packet
No
Yes
Recalculate / Set
back off timer
based on duty
cycle and last
transmission time
More data to send?
Wavenet Technology
126
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Appendix B - Sample Programs
Appendix B - Sample Programs
Sample programs are provided with the SDK. The purpose of these
sample programs is to show how a complete working client server
application can be built using the SDK NCL API with the client
program and the SDK SCR API with the server program.
These sample programs demonstrate how to write a simple application
that allows a wireless client to send data to a central server application
and receive responses back from the central server application. The
sample programs are not intended to be a functional application, but the
programs are intended to serve as a guide to writing applications and
can be used as a basis for developing more complex applications.
The information given in this document is intended to supplement the
source code for the applications by providing a high-level overview of
the source code.
In the following sections, the client and server applications are
described separately.
Client Application
The client application is called ModemInfo that uses the NCL API to
interface to the DataTAC ® network. The sample client program
retrieves the modems current status, and enables the user to send and
receive messages on the current channel the device is registered to.
The Modem setting Tab displays the modems current profile (i.e.
Channel list, RD –Lap version, etc), if the modem is on or off, the
modems power save mode, and if supported it’s vibrator mode.
BM210012WT09
127
Wavenet Technology
Appendix B - Sample Programs ________________________________ Boomer II User Manual & Integrator’s Guide
The status tab displays the modem’s current channel (if registered) and
it’s RSSI level. If the device is not registered it will be in scan mode,
scanning the channels from the channel list in its current profile.
The versions Tab displays the devices LLI, serial number, Hardware
Platform and software version.
Wavenet Technology
128
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Appendix B - Sample Programs
The messages Tab allows a user to send and receive messages from the
channel the device is currently registered on.
BM210012WT09
129
Wavenet Technology
Appendix B - Sample Programs ________________________________ Boomer II User Manual & Integrator’s Guide
Server Application
The server program is a Windows NT command line program that
connects to the DataTAC ® network switch and waits to receive data
from wireless client devices. Any data received from wireless clients is
echoed back to the same client on the same session. The server
program can handle simultaneous connections from multiple clients.
All activity indications (data transfer, connections and disconnections)
are logged to the screen. The server program operates without requiring
any user input.
Communications to the RNG are established either via a TCP/IP or an
X.25 connection, based on command line parameters.
The server program is implemented in a single module: server.c.
The server program uses SCR API to decode, encode, and interpret the
messages from the network. The server program contains code to
communicate with the network switch or RNG via either X.25 or
TCP/IP. The X.25 connection code is written using the EICON X.25
Developer's Tools for Win32. To run the application over an X.25
connection, you must have an X.25 connection to the switch, as well as
an EICON X.25 card plus EICON WAN Services drivers for this card.
To run the sample application via TCP1IP, you must have a TCP/IP
connection to the network switch. For help in getting this connection
set up, contact your DataTAC network operator.
The following pseudo code outlines the implementation of the main() function.
main ()
Initialize application variables
Set default values for user configurable parameters
Process command line and update parameters
Initialize X.25 API or Winsock DLL (connection to
RNG)
Initialize SCR API using scr_Init()
Establish a connection to the DataTAC network
while (!terminate){
Read data from the network
Handle Message zHandleMessage()
Wavenet Technology
Terminate connection to RNG
Clean up
130
BM210012WT09
Boomer II User Manual & Integrator’s Guide ________________________________ Appendix B - Sample Programs
Initialisation and Login
zEstablishConnection() establishes the connection to the RNG, using
either TCP/IP or X.25. When either a DataTAC(D 4000 or DataTAC
6000 network is used, this is all that is needed for the server to connect
to the DataTAC network.
When a DataTAC 5000 network is being used, the server application
must login to the RNG to identify itself. The login message is encoded
using scr_EncodeLogin() with the host ID and password as specified
by the command line parameters. The encoded login message is then
sent to the RNG.
Before the program exits, the connection to the RNG is closed. No
special SCR processing is needed here.
Data Transfer
zSendData() is a function that sends data to the RNG, using TCP/IP or
X.25 as appropriate. zReceiveData() is a similar function used to
receive data from the RNG. These two routines hide the low-level
details of the X.25 or TCP/IP connection to the DataTAC network.
When the server application receives a message from the DataTAC
network, using zReceiveData(), the message is passed to
zHandleMessage(). This routine uses scr_Decode() to decode the
incoming data, and then uses a switch statement to process the
message.
All data transfer within the server program is interpreted using the
DataTAC network independent data message types, such as
SCR_FROM_NET and SCR_TO_NET messages. This makes the code
applicable to all DataTAC network versions and reduces the problems
in porting an application from one DataTAC network type to another.
The server application also handles message types SCR_LR, SCR_CI,
and SCR_DI, which are specific to the DataTAC 5000 network. These
message types will not be received on DataTAC 4000 or DataTAC
6000 networks, and therefore will not affect the operation of the
program.
All messages received from the DataTAC network result in a message
being output to the screen to indicate that the message was received.
Some message types, such as SCR_ACK or SCR_CI, require no further
processing other than the output of a message. Other message types,
such as SCR_FROM_NET or SCR_LR, require a response message to
be sent to the DataTAC network. This is handled by formatting the
response within the switch statement, and this response is sent to the
DataTAC network at the end of the zHandleMessage() function.
BM210012WT09
131
Wavenet Technology
Appendix B - Sample Programs ________________________________ Boomer II User Manual & Integrator’s Guide
The following pseudo code gives an overview of the implementation of
zHandleMessage().
zHandleMessage(msg)
scr_Decode (msg);
/* decode the message */
if (error decoding) {
Report SCR decoding error
return
switch (Message Type){
/* examine the message type*/
case SCR_LR:
/* loopback request*/
/* this message is only applicable */
Prepare message "LC" /* to DataTAC 5000 networks*/
break;
case SCR_ACK:
/* Host msg delivery Confirmation*/
scr_NakReasonText();
scr_NakReasonText()
/* returns NULL if no error
occurred */
if (an error occurred){
Print reason text
else{
break;
Report successful delivery of message
case SCR_FROM_NET: /* Received inbound message*/
prepare message "TO_NET"
/*echo data back to the client*/
break;
case SCR_CI: /* Connect indication DataTAC 5000 only */
Report 'LLI x has connected'
break;
*/
case SCR_DI:
/* Disconnect indication DataTAC 5000 only
Report 'LLI x has disconnected'
break;
default: /* Unknown message type*/
Report 'Unhandled message type'
break;
scr_FreeDecoding ();
/*free dynamically allocated buffers in API*/
/*when it decoded the current message*/
Wavenet Technology
if ( a Response has to be sent ){
scr_Encode (); /*encode the response message*/
If (encoded successfully){
Send data to the network
else{
Report 'SCR encoding error'
132
BM210012WT09
Boomer II User Manual & Integrator’s Guide _________________________________Appendix C – Wavenet Loader
Appendix C - Wavenet Application Loader
The Application Loader software is used to upgrade the resident
software installed on your Wavenet OEM modem.
For optimum performance ensure that you are using the latest
application version.
This appendix, for your convenience, explains the procedure for
updating the Application Loader software and has a troubleshooting
section to assist with any problems.
Please refer to the Application Loader User Manual to ensure you have
the latest information.
Updating Application Loader Software on Your Modem
The Application Loader software may be used for all Wavenet
modems. The procedure is the same for all modems but some of the
screens may differ in appearance.
Follow the procedure below to check the software version currently
loaded on your modem and if necessary, to upload the modem
application.
1. Connect the Boomer II to the Test Jig as described on page 22.
2. Connect the Data Communications Modem connector to the
Boomer II Test Jig’s PC connector.
3. Connect the Data Communications PC connector to a COM
(serial) port on your computer. Note that the Data Comms PC
connector is a 9-pin plug. If your computer has a 25-pin serial
port you will need a 9-pin to 25-pin adapter.
4. Switch the modem on.
5. Switch your PC on.
6. From the PC, open the appropriate Application Loader
(Apploader) file for your modem.
The letter(s) preceding the three numerical characters at the end
of the Apploader file name denotes which modem the file is
appropriate for, i.e. M for the Dualwave M modem, V for the
Dualwave V modem and BM2 for the Boomer II OEM modem.
The three numerical characters at the end of the file name show
the version number of the application software, i.e.
408 is software version 4.08 and
233 is software version 2.33
If you select the incorrect Apploader file for your modem the
following typical message will be displayed.
BM210012WT09
133
Wavenet Technology
Appendix C – Wavenet Loader ________________________________ Boomer II User Manual & Integrator’s Guide
Note: The message shown above will appear if you are
attempting to upgrade using ApploaderM408.exe with a
Dualwave V modem.
7. The following screen is displayed.
Displays the current
version of Application
software on your
modem.
Select the
appropriate
com port on
your PC that
the modem
is connected
to.
Click the
Download
Application
button to
download
the latest
version.
Displays the new
application available.
Status bar.
8. Select the appropriate PC communications port to which the
modem is connected.
9. If the program recognises that the version of Application you
are attempting to install is later than the version currently
installed, the Download Application button will become
enabled. A message is displayed in the status bar advising that
the application software versions differ and requesting that you
press the Download Application button to update.
If the program recognises that the version of Application you
are attempting to install is earlier than the version currently
installed, the Download Application button will remain
disabled. A message is displayed in the status bar advising that
the application software version on the modem is up to date and
requesting that you exit the program.
10. Click
to update the Application software.
A progress bar is displayed informing you of the progress of the
update.
11. After the application has been updated, the modem is
automatically switched off. A message is displayed prompting
you to switch the modem on again.
Wavenet Technology
134
BM210012WT09
Boomer II User Manual & Integrator’s Guide _________________________________Appendix C – Wavenet Loader
12. Press the modem’s On/Off button and click
13. A message is then displayed in the status bar, informing you
that that the application software on the modem is up to date.
14. Click
to exit the program. This will automatically
switch your modem off.
Troubleshooting
You shouldn’t encounter any problems updating the Application
Loader software, however the following messages may appear.
This message will appear if the modem is disconnected during the
download. Ensure that all the connections between the PC and the
modem are secure, check the battery connections, ensure the modem is
switched on and follow the instructions in the message to try again.
This message will appear if the modem is disconnected whilst running
the Application Loader. Ensure that all the connections between the PC
and the modem are secure, check the battery connections and ensure
the modem is switched on.
This message will appear if the bootloader version on the modem is too
old to allow you to upgrade the application. Return the modem to your
supplier to be upgraded.
This message (or similar) will appear if you have attempted to upgrade
your modem with the incorrect Application Loader file.
BM210012WT09
135
Wavenet Technology
Appendix C – Wavenet Loader ________________________________ Boomer II User Manual & Integrator’s Guide
The ApploaderM408.exe is applicable to the Dualwave M modem and
ApploaderV233.exe is applicable to the Dualwave V modem.
The letter preceding the three numerical characters at the end of the
Apploader file name denotes which modem the file is appropriate for,
i.e. BM2 for the Dualwave Boomer II OEM modem, M for Dualwave
M modem and V for Dualwave V modem.
If the modem does not respond after an error message and you cannot
switch it off/on, reset the modem by inserting the end of a paper clip
into the reset hole at the back of the modem. Then switch the modem
on and continue the upload.
Wavenet Technology
136
BM210012WT09
Boomer II User Manual & Integrator’s Guide _________________________ Appendix D - Numeric Conversion Chart
Appendix D - Numeric Conversion Chart
Binary/Octal/Decimal/Hex/C/ASCII Conversion Table
Binary
00000000
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000
00001001
00001010
00001011
00001100
00001101
00001110
00001111
00010000
00010001
00010010
00010011
00010100
00010101
00010110
00010111
00011000
00011001
00011010
00011011
00011100
00011101
00011110
00011111
00100000
00100001
00100010
00100011
00100100
00100101
00100110
00100111
00101000
00101001
00101010
00101011
00101100
00101101
00101110
00101111
00110000
00110001
00110010
00110011
00110100
00110101
00110110
00110111
00111000
00111001
00111010
00111011
00111100
00111101
00111110
00111111
Oct
000
001
002
003
004
005
006
007
010
011
012
013
014
015
016
017
020
021
022
023
024
025
026
027
030
031
032
033
034
035
036
037
040
041
042
043
044
045
046
047
050
051
052
053
054
055
056
057
060
061
062
063
064
065
066
067
070
071
072
073
074
075
076
077
Dec
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
BM210012WT09
Hex
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
CS
CS
CS
CS
CS
NX
NX
NX
NX
NX
NX
NX
NX
NX
NX
ASCII
NUL
SOH
STX
ETX
EOT
ENQ
ACK
BEL
BS
HT
LF
VT
FF
CR
SO
SI
DLE
DC1
DC2
DC3
DC4
NAK
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US
SP
Definition
Null, or all zeros
Start of Heading
Start of Text
End of Text
End of Transmission
Enquiry
Acknowledge
Bell
Backspace
Horizontal Tab
Line Feed
Vertical Tab
Form Feed
Carriage Return
Shift Out
Shift In
Data Link Escape
Device Control 1 (XON)
Device Control 2
Device Control 3 (XOFF)
Device Control 4
Negative Acknowledge
Synchronous Idle
End Transmission Block
Cancel
End of Medium
Substitute
Escape
File Separator
Group Separator
Record Separator
Unit Separator
Space
137
Binary
01000000
01000001
01000010
01000011
01000100
01000101
01000110
01000111
01001000
01001001
01001010
01001011
01001100
01001101
01001110
01001111
01010000
01010001
01010010
01010011
01010100
01010101
01010110
01010111
01011000
01011001
01011010
01011011
01011100
01011101
01011110
01011111
01100000
01100001
01100010
01100011
01100100
01100101
01100110
01100111
01101000
01101001
01101010
01101011
01101100
01101101
01101110
01101111
01110000
01110001
01110010
01110011
01110100
01110101
01110110
01110111
01111000
01111001
01111010
01111011
01111100
01111101
01111110
01111111
Oct
100
101
102
103
104
105
106
107
110
111
112
113
114
115
116
117
120
121
122
123
124
125
126
127
130
131
132
133
134
135
136
137
140
141
142
143
144
145
146
147
150
151
152
153
154
155
156
157
160
161
162
163
164
165
166
167
170
171
172
173
174
175
176
177
Dec
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
Hex
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
51
52
53
54
55
56
57
58
59
5A
5B
5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
7B
7C
7D
7E
7F
UX
UX
UX
UX
UX
UX
LX
LX
LX
LX
LX
LX
ASCII
DEL
Wavenet Technology
Appendix D - Numeric Conversion Chart_________________________ Boomer II User Manual & Integrator’s Guide
Wavenet Technology
138
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________ Appendix E - Specifications
Appendix G - Specifications
Physical Properties
Weight
< 50g
Size (L x W x H)
70mm x 52mm x 9mm
Communication Protocols
Modem to radio network protocol
RD-LAP 3.1, 3.2, 3.3
Modem to terminal (e.g. handheld) protocol
NCL 1.2
Environmental Conditions
Operating temperature
-30°C to +60°C
Storage temperature
-40°C to 70°C
Ports
Data Interface Port
TTL compatible serial port,
9600 baud
RF Connector
MMCX female, 50Ω.
Straight connection or right angle
LED Indicators
Power
Green
flashes when scanning
On, when locked
Off, when the Boomer II is off
Receive
Green
flashes when receiving
Transmit
Red
flashes when transmitting
Power
Voltage
3.8V (3.4 to 4.2V range)
Transmitter
< 1.7A
Receiver
< 85mA
Transmit Duration
32ms (minimum)
1s (maximum)
Off current consumption
< 100µA
Power Supply Ripple
< 15mV peak to peak
BM210012WT09
139
Wavenet Technology
Appendix E - Specifications ___________________________________ Boomer II User Manual & Integrator’s Guide
Synthesiser
Frequency range
806 – 825MHz (A),
890 – 902MHz (B)
Channel spacing
25kHz (A)
12.5kHz (B)
Frequency Error
±1.5ppm (<1300Hz) (A)
(-30º ~ +60ºC)
±0.8ppm (750Hz) (B)
Transmitter
Frequency range
806 – 825MHz (A),
896 – 902MHz (B)
Channel spacing
25kHz (A)
12.5kHz (B)
Data rate
MDC 4.8kbps (A)
RDLAP 9.6kbps (A)
RDLAP 19.2kbps (A)
RDLAP 9.6kbps (B)
Modulation
2-Level FSK MDC 4.8 2.5kHz deviation (A)
4-Level FSK RDLAP 9.6 3.9kHz deviation (A)
4-Level FSK RDLAP 19.2 5.6kHz deviation (A)
4-Level FSK RDLAP 9.6 2.5kHz deviation (B)
RF output power (at 50Ω antenna port)
1.8W nominal (2W maximum)
Duty Cycle (over 5 min)
20% maximum
Turn on time
< 5ms
Spurious emission
< - 30dBm
Adjacent channel power
< - 55dBc at 25kHz channels (A)
< - 45dBc at 12.5kHz channels (B)
Receiver
Frequency range
851 – 870MHz (A)
935 – 941MHz (B)
Channel spacing
25kHz (A)
12.5kHz (B)
Settling time
< 5ms
Sensitivity
< -111dBm at 5% PER RD-LAP 19.2
< -114dBm at 5% PER MDC
Spurious emission (receive mode)
< -57dBm
Channel selectivity
> 50dB (5kHz dev 1kHz tone) (A)
> 50dB (2.5kHz dev 1kHz tone) (B)
Spurious rejection
> 70dB
Image rejection
> 60dB
Wavenet Technology
140
BM210012WT09
Boomer II User Manual & Integrator’s Guide ___________________________________ Appendix E - Specifications
RSSI Reading
BM210012WT09
-120dBm ~ -45dBm
141
Wavenet Technology

Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
Creator                         : Microsoft Word
Create Date                     : 2002:09:11 10:58:43
Title                           : BOOMER.PDF
Author                          : ArtB
Producer                        : Acrobat PDFWriter 4.0 for Windows
Modify Date                     : 2002:09:18 12:58:58-04:00
Page Count                      : 142
EXIF Metadata provided by EXIF.tools
FCC ID Filing: PQS-BM28001

Navigation menu