Escolar Documentos
Profissional Documentos
Cultura Documentos
NOTICE
This document contains proprietary and confidential information of LRAD CORPORATION, INC.
Use of this information is restricted to purposes of interest to LRAD CORPORATION, INC. The
information contained herein is to be neither copied nor disclosed to others, in whole or part,
without the prior written consent of LRAD CORPORATION, INC.
This document describes the network architecture of the devices in the LRAD 1000-RX as well as the control
protocols for each of the devices in the system. The intended audience is and LRAD system integrator.
LRAD 1000-RX is an Acoustic Hailing Device integrated with a mechanical actuation system that allows for the unit
to be aimed and operated via a TCP/IP network connection. The unit consists of various hardware devices which
perform unique functions of the AHD. These hardware devices are connected on a network that is internal to the
LRAD 1000-RX unit.
The following photograph identifies the main elements of the LRAD 1000-RX unit.
Camera
Housing Axis Video
Server
Ethernet 6
Amplifier
Pack
Lantronix
Serial Server
Network
Base Switch
Electronics
Module
Ethernet 1
Moxa
Computer
Network
Router
Figure 1: LRAD 1000-RX Main Elements
Ethernet 5
Ethernet 6 Ethernet 4
Network Switch
Ethernet 2
The IP address of the PTSS Controller is fixed, therefore, the control PC‟s TCP/IP address must be set to the same
subnet as the PTSS controller in order to connect.
This device serves as the LRAD‟s network router and also runs the application that controls the Pan and Tilt
positioning system. All motion control, position feedback and pan/tilt system monitoring is performed by this
unit using it‟s unique protocol. This device is housed in the Pan/Tilt unit electronics module at the base of
the pan and tilt (see photo above).
This device converts the analog video from the integrated camera and streams the video across the IP
network in MJPEG or MPEG-4 format. This device contains an onboard serial port which is used to control
the camera functions, such as zoom, focus, etc. This device is housed in the IP camera enclosure.
The LRAD amplifiers boost the signal level of the audio that is streamed to the unit. They contain the Serial
Attenuation Module (SAM) which is used to set the volume level of the AHD as well as to monitor the health
of the amplifiers. The SAM is driven by one of the serial ports on the Lantronix Serial Server.
The Lantronix Serial Server provides two serial ports that can be accessed via the network connection. Port
10001 is connected to the LRAD amplifiers and sends the serial communications commands used to
control and monitor the amplifiers. Port 10002 can be used to connect an optional accessory, such as a
Maxabeam Illuminator.
The LRAD 1000-RX contains various devices that can be controlled using each device‟s unique protocol. Control of
a device in an LRAD is achieved by reading and writing each device‟s protocols through the appropriate internet
socket connection. The programmer/integrator must set up these socket connections in their application to match
the IP addresses and ports for each LRAD unit. Each of the serial ports in the LRAD used to communicate with RS-
232 based devices, is also set up as an internet socket to which the serial data is written to and read from.
Hardware settings for the serial ports such as bit rate, flow control, etc. are preset at the factory and should not need
to be changed. For information on setting port hardware settings, consult the user manuals for the Lantronix and
Axis devices in the appendix.
The PTSS Controller performs all functions related to the mechanical positioning of the LRAD 1000-RX.
This device controls the motor drivers for the pan (azimuth) and tilt (elevation) axes and monitors the unit‟s
current position. These commands are read/written to the socket connection at port 10100 on the PTSS
controller‟s IP address.
Commands from the host to the pan and tilt shall be structured as follows:
1. Start of message character byte [SOM]
2. Message length byte [MSL]
3. Command number byte [CMD]
4. Command data (variable)
5. End of message character byte [EOM]
Valid commands or queries shall be responded to by the pan and tilt with the following structure:
1. Acknowledge byte [ACK]
2. Message length byte [MSL]
3. Command number byte [CMD]
4. Command data (variable)
5. End of message character byte [EOM]
Invalid commands or queries shall be responded to by the pan and tilt with the following structure:
1. Not acknowledge byte [NAK]
2. Message length byte [MSL]
3. Command number byte [CMD]
4. Error code byte [ERR]
5. End of message character byte [EOM]
With proper implementation of this protocol, NAKs should not appear during normal operation, however, the
host application should recognize a NAK and respond appropriately (i.e., retries, user notification, etc.).
The MSL byte denotes the length of the message starting with the command byte [CMD] and ending with
the [EOM] byte.
4.1.3 Integers
Integers are 1, 2, or 4 bytes in length, big-endian, two‟s complement signed integers, depending on the
allowable range for each variable. All multiple byte variables are big-endian ordered.
The PTSS controller will automatically close the socket connection if a “Get Position and Move Status” (40h)
command is not received by the PTSS controller over a ten second period. The client application must
issue this command to the pan/tilt at least once every ten seconds in order to maintain the socket
connection. If the socket connection is closed due to this time out, the client application can re-open the
socket connection and continue operation.
Positioning of the LRAD 1000-RX is achieved by rotating the hailing device through it‟s vertical and
horizontal axes. The vertical axis is referred to as the pan axis and has an allowable range of +/-210
The LRAD 1000-RX can operate using two coordinate systems: Machine Absolute Coordinates and User
Offset Coordinates.
Machine Absolute Coordinates are constant for each LRAD. The Machine Zero position in the pan axis is
where the Acoustic Array is centered between the pan axis hard stops. The positive direction in the pan
axis would be in the direction that would move the field of view of the integrated camera to the right. The
Machine Zero position in the tilt axis is where the Acoustic Array is centered between the tilt axis hard stops.
The positive direction in the tilt axis would be in the direction that would move the field of view of the
integrated camera up.
The user has the ability to create a User Offset coordinate system that would reset the units zero
coordinates to a new position upto +/- 107 degrees from the Machine Zero position in the pan axis. This is
useful when trying to measure the angle between two targets or when it is desirable to align the machine‟s
zero position to a known direction, such as a compass heading. The LRAD can also be mounted in an
inverted position (i.e. hung upside down), and the inversion command will “offset” the pan and tilt axis
coordinates by inverting the axes‟ positive and negative directions.
ONCE DEFINED, LIMITS AND SETPOINTS ARE FIXED IN MACHINE ABSOLUTE COORDINATES.
THEY DO NOT CHANGE RELATIVE TO THE MACHINE WHEN USER OFFSETS OR THE INVERSION
BIT ARE CHANGED. WHAT CHANGE ARE THE USER COORDINATES OF THESE POINTS AND, IN
THE CASE OF A LIMIT, THE SIGNS OF THE ASSOCIATED COMMANDED TRAVEL DIRECTIONS.
SIMILARLY, INVERSION DOES NOT RELOCATE THE ORIGIN OF THE USER COORDINATE SYSTEM
RELATIVE TO THE MACHINE.
The following table lists all of the LRAD PTSS controller‟s user commands. A “Yes” in the “Affected by
Inversion?” column indicates that the PTSS controller will automatically invert the axes‟ coordinates so that
the programmer does not have to perform any of this conversion in the interface software. This means that
for example a user entered move command of -30 degrees in pan will result in the unit turning to the left by
30 degrees as long as the inversion state is set to match the installation of the unit. The column labeled
“User Offset/Absolute Coords.” denotes whether the coordinates passed by the command will be treated by
the machine as being relative to the Machine Absolute Coordinates or to the User Offset Coordinates set
using commands 29h or 2Ah.
User
Affected Offset/
Command Name by Absolute
Hex Description Inversion? Coords.
20h Jog (pan speed, tilt speed) Yes -
*Immediately accelerates to the entered speed(s)
Responses:
[ACK],[MSL],[CMD],(pan speed), (tilt speed), [EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
21h Move to entered coordinates (pan angle, tilt angle) Yes Offset
*Immediately moves to the given coordinates at max acceleration and
speed.
Responses:
[ACK],[MSL],[CMD],(pan angle), (tilt angle),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
setpoint number = 0 to 31
Responses:
[ACK],[MSL],[CMD],(setpoint number),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
23h Move incrementally by entered angles (pan angle, tilt angle) Yes -
*Immediately moves by the given angle at max acceleration and speed.
Responses:
[ACK],[MSL],[CMD],(pan angle), (tilt angle),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
setpoint number = 0 to 31
Responses:
[ACK],[MSL],[CMD],(setpoint number),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
27h Save entered coordinates as setpoint (setpoint number, pan angle, tilt Yes Offset
angle)
*Assigns the entered coordinates as a setpoint.
Responses:
[ACK],[MSL],[CMD] ,(setpoint number),(pan angle), (tilt angle), [EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
28h Save present position as soft limit (soft limit axis and direction) Yes (Abs)
*Creates a soft limit at the present position for the axis and direction
given.
soft limit axis and direction: 00h= CCW, 01h=CW, 02h=DN, 03h=UP in
user coordinates [So if the inversion bit has been set via command
50h, then a value of 01h here makes the present position the limit of
positive rotation as specified by jog or vector commands, which are
in user coordinates. This is negative (CCW) rotation in the machine
absolute reference frame. Should the inversion bit then be cleared,
this limit would continue to apply to negative rotation in the machine
absolute reference frame, which would then also be negative rotation
in the user reference frame.]
Responses:
[ACK],[MSL],[CMD],(soft limit axis and direction),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Note: The range of allowable pan and tilt offset centers is ±10700 and
±9500 from machine center respectively. The restricted range of pan
offsets ensures that the coordinates of accessible pan angles stay
within the range allowed by 2-byte signed integer representation. An
input which calls for offset center coordinate(s) beyond the allowable
limits is rejected as out of range.
Responses:
[ACK],[MSL],[CMD],[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
2Ah Offset origin of user coordinates incrementally by entered angles (pan Yes Offset
angle, tilt angle)
*Offsets the user coordinate origin by the given angle relative to
machine center.
Responses:
[ACK],[MSL],[CMD],(pan angle), (tilt angle),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
soft limit axis and direction: 00h= CCW, 01h=CW, 02h=DN, 03h=UP in
user coordinates, as described in 30h below.
angle = -32700 to 32700 for pan axis
angle = -19000 to 19000 for tilt axis
Note: An input which calls for a soft limit beyond the machine limits is
interpreted and acknowledged as calling for the nearest allowable
value, in light of any existing offset. For example, a CW soft limit
input of 20000, when the machine is upright and has a user offset of
10000 in the pan axis, is acknowledged as an input of 12000, so that
input value plus offset sum to 22000, the machine pan maximum
limit.
Responses:
[ACK],[MSL],[CMD],(soft limit axis and direction),(angle),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
30h Read soft limit (soft limit axis and direction) Yes Offset
*Returns the soft limit setting for the entered axis and direction in User
Offset Coordinates.
soft limit axis and direction: 00h= CCW, 01h=CW, 02h=DN, 03h=UP in
user coordinates. [So if the inversion bit has been set via command
50h then the CW soft limit reported here is the user coordinate of the
soft limit associated with positive motion commands, which are in
user coordinates. This is negative (CCW) rotation of the pan axis in
the machine absolute reference frame.]
Responses:
[ACK],[MSL],[CMD],(soft limit axis and direction),(angle),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
setpoint number = 0 to 31
pan angle = -32700 to 32700
tilt angle = -19000 to 19000
Responses:
[ACK],[MSL],[CMD],(setpoint number),(pan angle), (tilt angle),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],(inv status),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD] ,(move status),(pan angle),(tilt angle),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],(machine status),[EOM]
Responses:
[ACK],[MSL],[CMD],(serial no),(firmware rev),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],(pan speed),(tilt speed),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
45h Set acceleration (pan accel, tilt accel) No -
*Sets the maximum positioning acceleration (upto 120 deg/sec/sec max
on pan and 60 deg/sec/sec max on tilt).
Responses:
[ACK],[MSL],[CMD],(pan accel),(tilt accel),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],(name),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
Responses:
[ACK],[MSL],[CMD],(pan accel),(tilt accel),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],(pan drive status),(tilt drive status),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],(pan decel),(tilt decel),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD], (pan decel),(tilt decel),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],(inv status),[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
Responses:
[ACK],[MSL],[CMD],[EOM]
[NAK],[MSL],[CMD],[ERR],[EOM]
The SAM module is an RS-232 device that is connected to the Lantronix Ethernet to Serial converter. This
device is used to set the volume level of the LRAD hailing device and to read the status of the amplifiers.
Commands for the SAM are written to/read from the socket connection at port 10001 on the PTSS
controller‟s IP address.
Transfers from the host to the SAM will always start with a unique STX (Start of Text) 02H character.
LRC XXh 1
ETX 03h 1
Transfers from the SAM to the host will always start with an STX character and an ACK (acknowledge) 06H
character. The last received command will be returned by the SAM, followed by the current status response
data.
All zero values and payload bytes that match control characters must be escaped by adding the escape
character 1Bh prior to transmitting the conflicting data byte and setting Bit-7 of the conflicting byte. For
example zero values are not transmitted or received, but are escaped with the two byte sequence: 1Bh,
80h. This action must be performed on all payload bytes, including the LRC. The ESC sequence must be
removed from any command or response prior to calculating the LRC.
The following are the commands that are recognized by the SAM.
The response to the GET_ID_REQUEST command will have the following structure:
Byte Value
1 „A‟
2 „T‟
3 „C‟
4 „L‟
5 „R‟
6 „A‟
7 „D‟
8 „S‟
9 „A‟
10 „M‟
11 „,‟
12 „V‟
13 VERSION_MAJOR
14 „.‟
15 VERSION_MINOR
16 BUILD_LETTER
The response to the GET_STATUS_REQUEST command will have the following structure when the
attenuation value is between -1 and -100:
Byte Value
1 ATTENUATION (-1 TO -100)
2 STATUSBITS
3 5VOLTATCMSB
4 5VOLTADCLSB
5 12VOLTATCMSB
The response to the GET_STATUS_REQUEST command will have the following structure when the
attenuation value is Zero or Muted:
Byte Value
1 1Bh
2 80h
3 STATUSBITS
4 5VOLTATCMSB
5 5VOLTADCLSB
6 12VOLTATCMSB
7 12VOLTADCLSB
8 48VOLTATCMSB
9 48VOLTADCLSB
10 DEVICETEMPERATUREADCMSB
11 DEVICETEMPERATUREADCLSB
The checksum is calculated by XOR‟ing Bytes starting with the first command after the STX Byte and
ending at the last data Byte. The STX and Bytes is not included in the LRC checksum, the ACK byte is
included in the LRC. If all Command and Data Bytes are XOR‟ed and the result is then XOR‟ed with the
LRC byte, the result should be zero.
All voltage values coming from the SAM should be within +/- 5% of nominal. Amplifier temperatures above
90C will cause the amplifiers to shut down.
Control LRAD-R
Interface Control Module
GetIdentificationResponse()
ID not OK ID OK
User sends
"update" request. GetStatusRequest()
GetStatusResponse()
User sends
"mute" request. SetMuteStateRequest()
SetMuteStateResponse()
User sends
volume control
setting. SetAttenuationRequest()
SetAttenuationResponse()
User sends
"increment
volume" request. IncrementAttenuationRequest()
IncrementAttenuationResponse()
User sends
"decrement
volume" request. DecrementAttenuationRequest()
DecrementAttenuationResponse()
The LRAD 1000-RX is configured with a SONY FCB-EX 980S camera which can be controlled via RS-232
VISCA commands (“VISCA” is a trademark of Sony Corporation). The control commands for the camera
are written to/read from the socket connection at port 4000 of the PTSS controller‟s IP address, which is
forwarded to the built in serial port of the Axis video server.
The video stream from the LRAD camera can be accessed using a web browser to run the Axis Media
Control applet. This applet can be reached by pointing a browser to the ip address and port of the Axis
server‟s web portal: 10.1.6.99:8061. The first time a user connects to this address, an ActiveX control will
be installed on the user‟s browser.
Optionally, the video stream can be decoded using an IP to analog converter, such as an Axis 292 Video
Decoder.
In addition, MJPEG and MPEG-4 streams can be displayed in a developer‟s application. For more
information on this, consult the Axis 282 Server Manual and the Axis Media Control Manual in the appendix.
The Barix device in the LRAD receives and decodes streamed digital audio files in MP3 format. All
hardware settings for this device are set at the factory and do not need to be changed. While this device
contains a volume control as well as other audio controls, they should not be used or altered, since this
could adversely affect the acoustic performance of the AHD. MP3 files written to the socket connection to
Barix device, port 8062 on the PTSS controller, will be automatically played through the LRAD‟s acoustic
array.
In order to stream live audio through a microphone, the audio at the control computer should be converted
into MP3 format. An application such as LAME encoder can be used for this task and is included in ATC‟s
API.
For more information on the streaming protocol for the Barix, please consult the Barix Audio Streaming
Protocol document in the appendix.
Since all of the devices in the LRAD use flash memory for storage of persistent parameters, such as soft limits, port
addresses, etc., it is not recommended that these parameters be written unnecessarily, since flash memory does
not have an infinite number of write cycles. Applications should store each device‟s settings in a local file as well,
for backup purposes.
In order to protect the LRAD‟s acoustic array, the unit should be stowed with the face of the array pointing down in
order to avoid dirt and moisture buildup on the grill covering the acoustic drivers. Users should be reminded to stow
the LRAD when exiting the control application or when the system is idle for a long period of time.
Since the LRAD is a very efficient loudspeaker, there will be an audible hiss coming from the array when the SAM is
at full volume and no audio is being streamed to the device. The hiss will be reduced as the volume is decreased.
It is recommended that the LRAD be automatically muted or the volume turned down when no audio is being
played.
The Maxabeam spotlight has an RS-232 connection to an Ethernet to Serial network server found at port
10002.
Zoom:
ZI Zoom in
ZO Zoom out
ZS Zoom stop
ZR+ Zoom rate increases
ZR- Zoom rate decreases
ZRS Zoom rate stops changing and is stored in the searchlight's non-volatile memory
Go to zoom positions:
(For these commands, the servo moves to the indicated position at its fastest mechanically possible rate)
GS Go to full programmed spot position (100%)
GF Go to full programmed flood position (0%)
GI Go to programmed initial position
Gxx Go to position xx% of travel, where xx is two digits, from 00 to 99 inclusive
Strobe:
(Strobe-on commands include 3 second warm-up on high if beam was previously off)
SRxx Strobe on at rate (frequency) of xxHz, where xx is two digits, from 01 to 31 inclusive
S1 Strobe on at frequency and duration stored in searchlight, or settings last used since
power-up if different
S0 Strobe off, return to previous non-strobe beam state
S5 Strobe on at 5Hz
S10 Strobe on at 10Hz
S25 Strobe on at 25Hz
S49 or S50 Strobe on at 49Hz (overrides 31Hz limit)
SPxx Set strobe percentage (duration) to xx%, where xx is two digits, from 03 to 63
inclusive
(The following two values are loaded into local memory at power-up)
SSR Store current strobe rate in searchlight‟s non-volatile memory
SSP Store current strobe percentage in searchlight‟s non-volatile memory
(The following strobe commands have no effect unless strobe is on)
SF+ Strobe frequency increases
SF- Strobe frequency decreases
SFS Strobe frequency stops changing and is stored in light's non-volatile memory
SD+ Strobe duration increases
SD- Strobe duration decreases
SDS Strobe duration stops changing and is stored in light's non-volatile memory
Write feedback:
WBL Send the beam level/state back to the controller (as "Off", "Off Low-Voltage ", "Low",
"Normal", "High", or "Strobe")
WZP Send the zoom position, as percent of total travel, where 100% = programmed spot
and 0% = programmed flood
Echo commands:
(After executing each of these commands, the searchlight replies back with: the literal command entered (lower-
case letters are translated to upper-case), <cr><lf>) (with no commas or spaces)
EBO Beam off
EBL Beam on low (with 3 second warm-up on high if previously off)
EBH Beam on high
ERxx Beam on strobe (with 3 second warm-up on high if previously off), at xxHz, where xx
is two digits, from 01 to 20 inclusive
EPxx Set strobe percentage (duration) to xx%, where xx is two digits, from 03 to 63
inclusive
EZxx Zoom to position xx% of travel, where xx is two digits, from 00 to 99 inclusive
ESPT Zoom to full programmed spot position (100%)
Notes:
Port settings: 9600 baud rate, 8 data bits, 1 stop bit, no parity, no flow control.
Port settings can be changed at port 8063 using a web browser if needed.
Commands are not case-sensitive, but must be terminated by carriage-return (ASCII 13); line-feed (ASCII 10) is
ignored. Otherwise, non-exact matches are replied to with “Invalid”. When power is initially applied to the
searchlight, the servo moves to the programmed initial-on position, without the beam being activated, and
"SL<cr><lf>" is sent to the controller.