Calamp LM Direct Reference Guide
Calamp LM Direct Reference Guide
1.3 Overview
The LM Direct interface was designed as a means for an LMU to provide location and status information
to an application without requiring the LM Exchange middleware. It also allows the application to read and
write the LMUs configuration parameters including the PEG event list and trigger parameters. These
applications typically will take one of two forms: Either an in-vehicle application running on a laptop (or PDA)
or a management/tracking application on a back-end system.
LM Direct provides the following features and capabilities to an application:
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
1/109
12/13/13
Location Data Time-of-Fix, Latitude, Longitude, Heading, Speed, Altitude, HDOP, Number
of Satellites and Fix Status
Communications Data Signal Strength (RSSI), Comm State and Carrier/Operator Identifiers
LMU Data Mobile ID, Event Code, Event Index, Event Timestamp, Report Sequence
Number, Input States, and Accumulator values.
PEG-based event reporting
User messaging between the application and a serial device attached to the LMU
Full programming of the LMUs PEG functionality
Full programming of other LMU configuration parameters
Acknowledgement and retransmission functionality
Optional logging of event reports and user messages in the LMU when delivery to the
application isnt possible
1.4 Communications
The LM Direct interface in the LMU listens on UDP port 20510 for any requests generated by the
application; that is, all outbound messages (i.e., those sent to an LMU) are sent to port 20510. Responses to
outbound messages (e.g., ACK/NAK messages) are sent back to the originating IP address and port.
Inbound request messages (e.g., Event Reports, User Messages) are sent by the LMU to the IP address and
port currently selected from the Inbound Routing List. Typically the application will listen for these messages
on port 20500.
2 Message Structures
Messages passed between an application and the LM Direct interface have the same basic packet structure. This
structure consists of a 20 byte IP Header, an 8 byte UDP header, the LM Direct header and the LM Direct
message.
Note that all bytes in multi-byte fields are transmitted in Net Endian format (Big Endian) where the most significant
bits are transmitted first. For example, for a 32-bit field, bits 31-24 are transmitted first, 16-23 second, 8-15 third
and 0-7 last
2.1 IP Header
The IP Header is the first section of code received in the Basic Message packet structure. This format will not
be included for each type of message throughout this doc, but will be assumed to preceed each of the
messages described.
This is a sample IP Header:
Raw Data:
45 00 00 51 00 0A 00 00 80 11 BE 8B 33 33 33 33 44 69 F2 37
...
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
2/109
12/13/13
Decoded:
4
5
00
0051
000A
0000
80
11
BE8B
33333333
4469F237
Version
Header Length
Type of Service (TOS)
Total Length (in bytes)
Identification
Flags & Fragment Offset
Time to Live (TTL)
Protocol
Header Checksum
Source IP
Destination IP: 68.105.242.55
Raw Data:
45 00 00 51 00 0A 00 00 80 11 BE 8B 33 33 33 33 44 69 F2 37
50 1E 50 14 00 3D 52 3B ...
Decoded
501E
5014
003D
523B
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
3/109
12/13/13
0
Options Byte (MSBit always set)
Mobile ID Length
Mobile ID Byte 0
Mobile ID Byte n
Mobile ID Type Length
Mobile ID Type Byte
Authentication Length (=4)
Options
Header
Message
Header
Message
Contents
Authentication Byte 0
Authentication Byte 3
Routing Length (=8)
Routing Byte 0
Routing, up to Byte 7
Forwarding Length (= 8)
Forwarding Address (4 Bytes)
Forwarding Port (2 Bytes)
Forwading Protocol (1 Byte)
Forwarding Operation (1 Byte)
Resp. Redirection Length (= 6)
Resp. Redirection Address (4 bytes)
Resp. Redirection Port (2 bytes)
Service Type
Message Type
Sequence Number (msByte)
Sequence Number (lsByte)
Message Byte (msByte)
These fields
present only if
corresponding
bit is set on
options bite.
An LM Direct message comprises the Options Header, Message Header and Message Contents. The
Options byte at the beginning of the Options Header is bit-mapped to indicate which Options Header fields
will follow. If the most-significant bit (bit 7) of the first byte of a message is set, the Options Header is present
in the message beginning with the Options Byte. Otherwise, the message begins with the Message Header
(Service Type is the first byte); that is to say that if the first byte of an LM Direct message has the mostsignificant bit set (bit 7), than the Options Header is present. Likewise, if it is cleared, the Options Header is
not included in the message.
4/109
12/13/13
Options
Header Content Options:
Bit 0: Mobile ID (0 = disabled, 1= enabled)
Bit 1: Mobile ID Type (0 = disabled, 1 = enabled)
Bit 2: Authentication Word (0 = disabled, 1 = enabled)
Bit 3: Routing (0 = disabled, 1 = enabled)
Bit 4: Forwarding (0 = disabled, 1 = enabled)
Bit 5: Response Redirection (0=disabled, 1=enabled)
Bit 6: Not Used Reserved for future use
Bit 7: Always set.
Mobile ID Length
The number of bytes to follow which contain the Mobile ID data
Mobile ID
The Mobile ID of the LMU that either originated the LM Direct message or the LMU for which the
message is intended. The Mobile ID is made up of numerical digits and is encoded in this field as packed
BCD. The most significant digit is placed in the upper four bits of the first byte. In the case where an odd
number of digits are used, a 0x0F is used to pad the lower 4 bits of the last byte.
Mobile ID Type
The type of Mobile ID being used by the LMU:
0 OFF
1 Electronic Serial Number (ESN) of the LMU
2 International Mobile Equipment Identifier (IMEI) or Electronic Identifier (EID) of the wireless modem
3 International Mobile Subscriber Identifier (IMSI) of the SIM card (GSM/GPRS devices only)
4 User Defined Mobile ID
5 Phone Number of the mobile (if available)
6 The current IP Address of the LMU
Authentication Length
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
5/109
12/13/13
The number of bytes to follow which contain the Authentication word; normally this value is 4
Authentication
The Authentication word is used with an outbound message to gain access to the LMU if authentication is
enabled.
Routing Length
The number of bytes to follow which contain the Routing field. If present, this value is user defined and can be
up to 8.
Routing
The Routing field is up to 8 bytes long and can be used by the Application to store identity information of the
originating user for requests made to the LMU from an application subsystem. It is only used in outbound
messages. If the Routing field is present in a request received by the LMU, the LMU will include the same
field, byte for byte, in the response sent back to the Application. The Application can then route the response
back to the originating user based on information received. See Appendix D for further definition and uses of
the Routing Field.
Forwarding Length
The number of bytes to follow which contain the Forwarding field. If present, this value is normally 8.
Forwarding
The Forwarding field is 8 bytes long and is used by an LM Direct forwarding agent to manage source and
destination addresses and ports. It is only used in outbound messages. If the Forwarding field is present in a
request received by the LMU, the LMU will include the same field, byte for byte, in the response sent back.
The first four bytes of the forwarding field contain the forwarding address. The next two bytes contain the
forwarding port. The following byte contains the forwarding protocol (TCP=6, UDP=17). The last byte is for
the Forwarding Operation Type. The current operations are Forward (0x00), Proxy (0x01) and Forward
with Lookup (0x02). See Appendix D for further definition and uses of the Forwarding field.
Response Redirection
The Response Redirection field is 6 bytes long and is used by an LM Direct recipient to redirect an
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
6/109
12/13/13
acknowledged response back to the specified address and port instead of back to the sender. The first four
bytes of the response redirection field contain the redirection address. The next two bytes contain the
redirection port.
Option Extension
The Options Extension field is 1-byte field is bit-mapped in the same manner as the Options byte. It contains
bit flags that indicate if there are additional fields in the Options Header. If any flag bits are set in this byte, the
respective fields will follow this byte with the usual length-followed-by-data format. The flags are bit mapped
as follows:
Options Extension:
Bit 0: ESN (0 = disable, 1=enabled)
Bit 1: Not Used Reserved for future use
Bit 2: Not Used Reserved for future use
Bit 3: Not Used Reserved for future use
Bit 4: Not Used Reserved for future use
Bit 5: Not Used Reserved for future use
Bit 6: Not Used Reserved for future use
Bit 7: Not Used Reserved for future use
ESN Length
The number of bytes to follow which contain the ESN data
ESN
The ESN is the Electronic Serial Number of the LMU that either originated the LM Direct message or for
which the message is intended. Normally the ESN is only included for messages exchanged between the
LMU and the Maintenance Server. The ESN is made up of numerical digits and is encoded in this field as
packed BCD. The most significant digit is placed the upper four bits of the first byte. In the case where an
odd number of digits are used, a 0x0F is used to pad the lower 4 bits of the last byte.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
7/109
12/13/13
Service Type
0 = Unacknowledged Request
1 = Acknowledged Request
2 = Response to an Acknowledged Request
Message Type
0 = Null message
1 = ACK/NAK message
2 = Event Report message
3 = ID Report message
4 = User Data message
5 = Application Data message
6 = Configuration Parameter message
7 = Unit Request message
8 = Locate Report message
9 = User Data with Accumulators message
10 = Mini Event Report message
11 = Mini User Message
Sequence Number
A 16-bit number used to uniquely identify a message. This number shall be initialized to 1 by the LMU on a
cold boot and will be incremented in the LMU each time an inbound message is originated by the LMU. The
LMU remembers its current Sequence Number during sleep. Eventually the Sequence Number will rollover
from 65535 to 1, skipping zero.
The Sequence Number is also used to identify acknowledgements and retransmissions. Responses to
Acknowledged Requests shall contain the Sequence Number from the associated Acknowledged Request. A
Server receiving from an LMU can also use the Sequence Number as a means to identify whether the
received message is an original or a retransmitted copy, thus avoiding processing any duplicate reports from
an LMU.
A Server can set the Sequence Number field to zero for all outbound messages sent to the LMU if it is not
important that the LMU distinguish an original message from a retransmitted copy. However, if this distinction
is necessary, the server can insert a changing non-zero value into the Sequence Number field of each new
message sent to the LMU. The LMU will remember the last sequence number it received and will compare it
to the non-zero sequence number for the new message. If different, it will process the message normally. If the
same, it will not process the message and will return a NAK response with the ACK field set to 7.
8/109
12/13/13
which periodically sends it to the Server to keep network firewalls open so the Server can initiate messages to
the LMU at any time. Normally the Null Message is sent as an Unacknowledged Request.
7
0
Options Header (optional)
Message Header
Raw Data:
83 05 01 02 03 04 05 01 01 00 00 00 01
Decoded:
-------Options Header-------83
Options Byte
05
Mobile ID field length
0102030405
Mobile ID
01
Mobile ID Type Length
01
Mobile ID Type
-------Message Header-------00
Service Type, for this message 0 = Unacknowledged Request
00
Message Type, for this message 0 = Null Message
0001
Sequence number of the message you are responding to
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
9/109
12/13/13
0
Options Header (optional)
Message Header
Type
ACK
spare
App Version (byte 0)
App Version (byte 1)
App Version (byte 2)
Acknowledge Message Format
Type (1 byte)
This field indicates the type of message being acknowledged (e.g., it will match the Msg Type field of the
Request message)
ACK (1 byte)
0 ACK (operation successful)
1 NAK (operation failed, no reason)
2 NAK (operation failed, not a supported message type)
3 NAK (operation failed, not a supported operation)
4 NAK (operation failed, unable to pass to serial port)
5 NAK (operation failed, authentication failure)
6 NAK (operation failed, Mobile ID look-up failure)
7 NAK (operation failed, non-zero sequence number same as last received message)
Spare (1 byte)
This field is not used and should be set to zero.
10/109
12/13/13
Raw Data:
83 05 01 02 03 04 05 01 01 02 01 00 01 00 00 00 00 00 00
Decoded:
-------Message Header-------02
Service Type, for this message 2 = Response to Acknowledged Request
01
Message Type, for this message 1 = ACK/NAK Message
-----Acknowledge Message----00
Type
00
Ack
00
Spare/Unused
000000
App Version
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
11/109
12/13/13
15
0
Options Header (optional)
Message Header
Update Time
Update Time (lsByte)
Time of Fix
Time of Fix (lsByte)
Latitude
Latitude(lsByte)
Longitude
Longitude (lsByte)
Altitude
Altitude(lsByte)
Speed
Speed (lsByte)
Heading (lsByte)
Fix Status
Carrier (lsByte)
RSSI (lsByte)
HDOP
Unit Status
Event Code
Accums
spare
Accum List(msByte)
Accum List
Accum List
Accum List(lsByte)
...
...
Event Report Message Format
Latitude (4 bytes)
The latitude reading of the GPS receiver, measured in degrees with a 1x10^-7 degree lsb, signed 2s
complement
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
12/109
12/13/13
Longitude (4 bytes)
The longitude reading of the GPS receiver, measured in degrees with a 1x10^-7 degree lsb, signed 2s
complement
Altitude (4 bytes)
The altitude reading of the GPS receiver measured in centimeters above the WGS-84 Datum, signed 2s
complement
Speed (4 bytes)
The speed as reported by the GPS receiver, measured in centimeters per second
Heading (2 bytes)
The heading value reported in degrees from true North
Satellites (1 byte)
The number of satellites used in the GPS solution
13/109
12/13/13
This bit is set when 3 or fewer satellites are seen/used in the GPS fix. (i.e. with 3 satellites or less, an
altitude value cannot be calculated)
Bit 5 Historic
This bit is set when the message has been logged by the LMU.
Bit 6 Invalid Time
This bit is set only after a power-up or reset before a valid time-sync has been obtained.
Carrier (2 bytes)
The identifier of the Carrier/Operator the wireless modem is currently using
RSSI (2 bytes)
The received signal strength of the wireless modem in dBm. This value is signed in a 2s complement format.
HDOP (1 byte)
The GPS Horizontal Dilution of Precision - it is a unit-less value reported with a 0.1 lsb.
Inputs (1 byte)
The current state of the inputs, bit mapped as follows:
Bit 0 Ignition
Bit 1 Input 1
Bit 2 Input 2
Bit 3 Input 3
Bit 4 Input 4
Bit 5 Input 5
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
14/109
12/13/13
Bit 6 Input 6
Bit 7 Input 7
Accums (1 byte)
The number of 4-byte values in the AccumList and the Accumulator Reporting Format Type (upper 2 bits).
Refer to Appendix G, Accumulator Reporting Formats for details.
Spare (1 byte)
Not used - Set to 0.
AccumList (4 bytes x n)
A list of n 4-byte fields where n is defined in the Accums field. The format for this list is dependent upon
the Accumulator Reporting Format Type also defined in the Accums field. Refer to Appendix G,
Accumulator Reporting Formats for details.
15/109
12/13/13
Raw Data:
83 05 01 02 03 04 05 01 01 01 02 00 01 4F B4 64 88 4F B4 64
88 13 BF 71 A8 BA 18 A5 06 00 00 1333 00 00 00 00 11 11 02
33 44 44 55 55 66 77 88 99 10 11 ?? 00 ??
Decoded:
-------Message Header-------01
Service Type, for this message 1 = Acknowledged Request
02
Message Type, for this message 2 = Event Report
-------Event Report---------4FB46488
Update Time (5/17/12 @ 2:38pm)
4FB46488
Time of Fix (5/17/12 @ 2:38pm)
13BF71A8
Latitude (33.1313576)
BA18A506
Longitude (-117.2790010)
00001333
Altitude
00000000
Speed
1111
Heading
02
Satellites
33
Fix Status
4444
Carrier
5555
RSSI
66
Comm State
77
HDOP
88
Inputs
99
Unit Status
10
Event Index
11
Event Code
??
Accums (# of 4-byte Accum List values)
00
Spare
??
Accum List (Varies depending on the # of Accums reporting)
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
16/109
12/13/13
0
Options Header (optional)
Message Header
Script Version
Config Version
App Version (byte 0)
App Version (byte 1)
App Version (byte 2)
Vehicle Class
Unit Status
Modem Selection
Application ID
Mobile ID Type
Query ID (byte 0)
Query ID (byte 3)
ESN (byte 0)
ESN (byte 7)
IMEI (byte 0)
IMEI (byte 7)
IMSI (byte 0)
IMSI (byte 7)
MIN (byte 0)
MIN (byte 7)
ICC-ID (byte 0)
ICC-ID (byte 9)
Extension String(s)
ID Report Message Format
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
17/109
12/13/13
Application ID (1 byte)
This field identifies the Application Program software running on the device. Typically it is unique to a device
hardware configuration.
Query ID (4 bytes)
A value that identifies the request that initiated the generation of the ID Report message. This is normally only
used for SMS initiated ID Reports. This field is zero for all other uses.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
18/109
12/13/13
19/109
12/13/13
OTA:1|0;0,1|1;0,1
Protocols Supported: HTTP (1)
First Device supported: LMU (0)
Files updateable over the air for LMU: Firmware (0) and Config (1)
Next device supported: JPod (1)
Files updateable over the air for JPod: Firmware(0) and Config/Emulation(1)
OTA Example 2:
OTA:1,2|0;0,1|2;0,1,2,3
Protocols Supported : HTTP (1), FTP (2)
First Device supported: LMU (0)
Files updateable over the air for LMU: Firmware (0) and Config (1)
Next device supported: OBD II Type1 (2)
Files updateable over the air for OBD II Type 1: Firmware(0), Database(1), SysManager (2), Boot
Loader (3)
Please refer to Appendix E, section OTA Download App Message (Msg Type 107) for details on the values
defined for the Device Type, File Type and Protocol fields.
Extension Strings are only present in ID Reports when they are necessary to add additional information to the
ID Report message.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
20/109
12/13/13
15
0
Options Header (optional)
Message Header
Latitude (4 bytes)
The latitude reading of the GPS receiver measured in degrees with a 1x10-7 degree lsb, signed 2s
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
21/109
12/13/13
complement.
Longitude (4 bytes)
The longitude reading of the GPS receiver measured in degrees with a 1x10-7 degree lsb, signed 2s
complement.
Altitude (4 bytes)
The altitude reading of the GPS receiver measured in centimeters above the WGS-84 Datum, signed 2s
complement.
Speed (4 bytes)
The speed as reported by the GPS receiver measured in centimeters per second
Heading (2 bytes)
The heading value reported in degrees from true North
Satellites (1 byte)
The number of satellites used in the GPS solution
22/109
12/13/13
Bit 4 2D Fix
This bit is set when 3 or fewer satellites are seen/used in the GPS fix. (i.e. with 3 satellites or less, an
altitude value cannot be calculated)
Bit 5 Historic
This bit is set when the message has been logged by the LMU.
Bit 6 Invalid Time
This bit is set only after a power-up or reset before a valid time-sync has been obtained.
Carrier (2 bytes)
The identifier of the Carrier/Operator the wireless modem is currently using
RSSI (2 bytes)
The received signal strength of the wireless modem in dBm. This value is signed in a 2s complement format.
HDOP (1 byte)
The GPS Horizontal Dilution of Precision - it is a unit-less value reported with a 0.1 lsb.
Inputs (1 byte)
The current state of the inputs, bit mapped as follows:
Bit 0 Ignition
Bit 1 Input 1
Bit 2 Input 2
Bit 3 Input 3
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
23/109
12/13/13
Bit 4 Input 4
Bit 5 Input 5
Bit 6 Input 6
Bit 7 Input 7
24/109
12/13/13
Application Messages are used to pass LMU application messages to and from the LMU. They provide a
subclass of messages used to manage the LMU application. See Appendix E for a description of the possible
Application messages types and formats supported by the LMU. Application Messages sent by the LMU
contain location and status fields that are not present in the Application Messages sent by the Server. The
maximum number of data bytes is 848. Application Messages have the following structure:
15
0
Options Header (optional)
Message Header
25/109
12/13/13
The last known time of fix from the GPS satellites. This value is reported in seconds from Jan. 1, 1970
Latitude (4 bytes)
The latitude reading of the GPS receiver measured in degrees with a 1x10-7 degree lsb, signed 2s
complement.
Longitude (4 bytes)
The longitude reading of the GPS receiver measured in degrees with a 1x10-7 degree lsb, signed 2s
complement.
Altitude (4 bytes)
The altitude reading of the GPS receiver measured in centimeters above the WGS-84 Datum, signed 2s
complement.
Speed (4 bytes)
The speed as reported by the GPS receiver measured in centimeters per second
Heading (2 bytes)
The heading value reported in degrees from true North
Satellites (1 byte)
The number of satellites used in the GPS solution
26/109
12/13/13
This bit is set when the current GPS fix is invalid but a previous fixs value is available.
Bit 3 Invalid Fix
This bit is set only after a power-up or reset before a valid fix is obtained.
Bit 4 2D Fix
This bit is set when 3 or fewer satellites are seen/used in the GPS fix. (i.e. with 3 satellites or less, an
altitude value cannot be calculated)
Bit 5 Historic
This bit is set when the message has been logged by the LMU.
Bit 6 Invalid Time
This bit is set only after a power-up or reset before a valid time-sync has been obtained.
Carrier (2 bytes)
The identifier of the Carrier/Operator the wireless modem is currently using
RSSI (2 bytes)
The received signal strength of the wireless modem in dBm. This value is signed in a 2s complement format.
HDOP (1 byte)
The GPS Horizontal Dilution of Precision - it is a unit-less value reported with a 0.1 lsb.
Inputs (1 byte)
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
27/109
12/13/13
Raw Data:
83 05 01 02 03 04 05 01 01 01 02 00 01 4F B4 64 88 4F B4 64
88 13 BF 71 A8 BA 18 A5 06 00 00 1333 00 00 00 00 11 11 02
33 44 44 55 55 66 77 88 99 00 10 00 11 ?? ?? ??
Decoded:
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
28/109
12/13/13
-------Message Header-------01
Service Type, for this message 1 = Acknowledged Request
02
Message Type, for this message 5 = Application Data Message
-------Event Report---------4FB46488
Update Time (5/17/12 @ 2:38pm)
4FB46488
Time of Fix (5/17/12 @ 2:38pm)
13BF71A8
Latitude (33.1313576)
BA18A506
Longitude (-117.2790010)
00001333
Altitude
00000000
Speed
1111
Heading
02
Satellites
33
Fix Status
4444
Carrier
5555
RSSI
66
Comm State
77
HDOP
88
Inputs
99
Unit Status
0010
App Msg Type (Defined in Appendix E)
0011
App Msg Length
??????
App Msg (Varies depending on the type of App Msg)
29/109
12/13/13
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
30/109
12/13/13
0
Options Header (optional)
Message Header
Can
have
multiple
instances
Parameter ID (lsbyte)
Length (msbyte)
Length (lsbyte)
Parameter Index
Data (msbyte)
Data (lsbyte)
Parameter Index
Data (msbyte)
Data (lsbyte)
Parameter ID = 0 (msbyte)
Parameter ID = 0 (lsbyte)
Length = 0 (msbyte)
Length = 0 (lsbyte)
Parameter Write Request Format
The format for a parameter request with a read action is shown below. Each Parameter ID is followed by a
2-byte Length which specifies how many bytes follow to specify the parameters having this ID. Each
individual parameter requested having this Parameter ID is identified by a 1-byte Parameter Index. The list of
Parameters is always terminated by a Parameter ID of 0 followed by a length of 0.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
31/109
12/13/13
0
Options Header (optional)
Message Header
Parameter Index
Parameter ID = 0 (msbyte)
Can
have
multiple
instances
Parameter ID = 0 (lsbyte)
Length = 0 (msbyte)
Length = 0 (lsbyte)
Parameter Read Request Format
The format for a parameter write report is shown below. Each Parameter ID is followed by a 2-byte length
which specifies how many bytes follow to specify the parameters having this ID. Each individual parameter
having this Parameter ID is comprised by a 1-byte Index and one or more data bytes making up the value of
the parameter itself. The number of data bytes is known for each Parameter ID.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
32/109
12/13/13
0
Options Header (optional)
Message Header
Can
have
multiple
instances
Length = 0 (lsbyte)
Parameter ID (msbyte)
Parameter ID (lsbyte)
Length = 0 (msbyte)
Length = 1 (lsbyte)
Parameter Index
Parameter ID = 0 (msbyte)
Parameter ID = 0 (lsbyte)
Length = 0 (msbyte)
Shows
response
for invalid
Parameter
ID
Shows
response
for invalid
Parameter
Index
Length = 0 (lsbyte)
Parameter Write Report Format
The format for a parameter read report is shown below. Each Parameter ID is followed by a 2-byte length
which specifies how many bytes follow to specify the parameters having this ID. Each individual parameter
having this Parameter ID comprises a 1-byte Index and one or more data bytes making up the value of the
parameter itself. The number of data bytes is known for each Parameter ID.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
33/109
12/13/13
Can
have
multiple
instances
0
Options Header (optional)
Message Header
Data (lsbyte)
Parameter ID = 0 (msbyte)
Parameter ID = 0 (lsbyte)
Length = 0 (msbyte)
Length = 0 (lsbyte)
Parameter Read Report Format
The format for an Update Begin Request is shown below. This message contains only an action and the
0x0000 Parameter ID and 0x0000 Length values.
7
0
Options Header (optional)
Message Header
The format for an Update End Request is shown below. This message contains only an action and the 0x0000
Parameter ID and 0x0000 Length values
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
34/109
12/13/13
0
Options Header (optional)
Message Header
Action (1 byte)
This field is included in a Parameter Request to indicate whether the request is for a write operation or for a
read operation:
0 Read
1 Write
2 Update Begin
3 Update End
Parameter ID (2 bytes)
This field holds the two-byte identifier of the parameter type being acted upon. Parameter Messages can
contain one or more Param ID field along with associated length and index and value fields as necessary for
Reads, Writes and Reports.
Length (2 bytes)
This field immediately follows each Param ID in the message to indicate how many bytes will follow to specify
which Param Indexes and associated Param Values (if a write or report operation).
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
35/109
12/13/13
0
Options Header (optional)
Message Header
Action
Data8
Data16 (msbyte)
Data16 (lsbyte)
Data32 (msbyte)
Data32 (2nd byte)
Data32 (3rd byte)
Data32 (lsbyte)
Unit Request Message Format
Action (1 byte)
This field defines the type of unit request being made
Data8 (1 byte)
Used for some Unit Requests as defined in Table below. Otherwise set to 0
Data16 (2 bytes)
Used for some Unit Requests as defined in Table below. Otherwise set to 0
Data32 (4 bytes)
Used for some Unit Requests as defined in Table below. Otherwise set to 0
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
36/109
12/13/13
Unit Request
Action Data8
Code
Data16
Data32
PEG Action
Code
PEG Action
Modifier (lower
8-bits)
Returns an ID Report
10
11
12
13
14
15
16
17
Battery Gauge
18
Accumulator Schedule
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
19
Password
No. of
Accumulators
Zone #
Action
1=Write Config
Accumulator #
and (re)start
schedule
Schedule
Configuration
37/109
12/13/13
0
Options Header (optional)
Message Header
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
38/109
12/13/13
Latitude (4 bytes)
The latitude reading of the GPS receiver measured in degrees with a 1x10^-7 degree lsb, signed 2s
complement.
Longitude (4 bytes)
The longitude reading of the GPS receiver measured in degrees with a 1x10^-7 degree lsb, signed 2s
complement.
Altitude (4 bytes)
The altitude reading of the GPS receiver measured in centimeters above the WGS-84 Datum, signed 2s
complement.
Speed (4 bytes)
The speed as reported by the GPS receiver measured in centimeters per second
Heading (2 bytes)
The heading value reported in degrees from true North
Satellites (1 byte)
The number of satellites used in the GPS solution
39/109
12/13/13
Carrier (2 bytes)
The identifier of the Carrier/Operator the wireless modem is currently using
RSSI (2 bytes)
The received signal strength of the wireless modem in dBm. This value is signed in a 2s complement format.
HDOP (1 byte)
The GPS Horizontal Dilution of Precision - it is a unit-less value reported with a 0.1 lsb.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
40/109
12/13/13
Inputs (1 byte)
The current state of the inputs, bit mapped as follows:
Bit 0 Ignition
Bit 1 Input 1
Bit 2 Input 2
Bit 3 Input 3
Bit 4 Input 4
Bit 5 Input 5
Bit 6 Input 6
Bit 7 Input 7
Accums (1 byte)
The number of 4-byte values in the AccumList and the Accumulator Reporting Format Type (upper 2 bits).
Refer to Appendix G, Accumulator Reporting Formats for details.
Spare (1 byte)
Not used. Set to 0
AccumList (4 bytes x n)
A list of n 4-byte fields where n is defined in the the Accums field. The format for this list is dependent
upon the Accumulator Reporting Format Type also defined in the Accums field. Refer to Appendix G,
Accumulator Reporting Formats for details.
41/109
12/13/13
set to use this message type over User Message (Message Type 4). The number of accumulators sent with
each User Message is defined by the Inbound & Logged Event Report Contents. Note that the maximum
number of user data bytes is 848. Also note that the number of accumulators reported might be automatically
reduced for User Messages approaching the 848 byte limit. User Messages have the following structure:
15
Present
only
when
sent by
LMU
0
Options Header
(optional)
Message Header
Update Time
Update Time (lsByte)
Time of Fix
Time of Fix (lsByte)
Latitude
Latitude(lsByte)
Longitude
Longitude (lsByte)
Altitude
Altitude(lsByte)
Speed
Speed (lsByte)
Heading (lsByte)
Fix Status
Carrier (lsByte)
RSSI (lsByte)
HDOP
Unit Status
spare 1 (lsByte)
spare 2
Accum List
Accum List (lsByte)
...
User Msg ID
User Msg Length
(lsByte)
42/109
12/13/13
Latitude (4 bytes)
The latitude reading of the GPS receiver measured in degrees with a 1x10-7 degree lsb, signed 2s
complement.
Longitude (4 bytes)
The longitude reading of the GPS receiver measured in degrees with a 1x10-7 degree lsb, signed 2s
complement.
Altitude (4 bytes)
The altitude reading of the GPS receiver measured in centimeters above the WGS-84 Datum, signed 2s
complement.
Speed (4 bytes)
The speed as reported by the GPS receiver measured in centimeters per second
Heading (2 bytes)
The heading value reported in degrees from true North
Satellites (1 byte)
The number of satellites used in the GPS solution
43/109
12/13/13
corrected.
Bit 2 Last Known
This bit is set when the current GPS fix is invalid but a previous fixs value is available.
Bit 3 Invalid Fix
This bit is set only after a power-up or reset before a valid fix is obtained.
Bit 4 2D Fix
This bit is set when 3 or fewer satellites are seen/used in the GPS fix. (i.e. with 3 satellites or less, an
altitude value cannot be calculated)
Bit 5 Historic
This bit is set when the message has been logged by the LMU.
Bit 6 Invalid Time
This bit is set only after a power-up or reset before a valid time-sync has been obtained.
Carrier (2 bytes)
The identifier of the Carrier/Operator the wireless modem is currently using
RSSI (2 bytes)
The received signal strength of the wireless modem in dBm. This value is signed in a 2s complement format.
HDOP (1 byte)
The GPS Horizontal Dilution of Precision - it is a unit-less value reported with a 0.1 lsb.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
44/109
12/13/13
Inputs (1 byte)
The current state of the inputs, bit mapped as follows:
Bit 0 Ignition
Bit 1 Input 1
Bit 2 Input 2
Bit 3 Input 3
Bit 4 Input 4
Bit 5 Input 5
Bit 6 Input 6
Bit 7 Input 7
Spare 1 (2 byte)
Not used. Set to 0
Accums (1 byte)
The number of 4-byte values in the AccumList and the Accumulator Reporting Format Type (upper 2 bits).
Refer to Appendix G, Accumulator Reporting Formats for details.
Spare 2 (1 byte)
Not used. Set to 0
AccumList (4 bytes x n)
A list of n 4-byte fields where n is defined in the Accums field. The format for this list is dependent upon
the Accumulator Reporting Format Type also defined in the Accums field. Refer to Appendix G,
Accumulator Reporting Formats for details.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
45/109
12/13/13
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
46/109
12/13/13
15
0
Options Header (optional)
Message Header
Update Time
Update Time (lsByte)
Latitude
Latitude(lsByte)
Longitude
Longitude (lsByte)
Heading (lsByte)
FixStat/nSats
Comm/Unit Status
Inputs
Event Code
Accums
Accum List (msByte)
Accum List
Accum List
Accum List (lsByte)
...
...
Mini Event Report Message Format
Latitude (4 bytes)
The latitude reading of the GPS receiver, measured in degrees with a 1x10-7 degree lsb, signed 2s
complement
Longitude (4 bytes)
The longitude reading of the GPS receiver, measured in degrees with a 1x10-7 degree lsb, signed 2s
complement
Heading (2 bytes)
The heading value reported in degrees from true North
Speed (1 bytes)
The speed as reported by the GPS receiver, measured in kilometers per hour
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
47/109
12/13/13
FixStat/nSats (1 byte)
The current fix status of the GPS receiver and the number of satellites used in the GPS solution bitmapped as
follows:
Bit 0 thru Bit 3 number of satellites (0-15)
Bit 4 Invalid Time
Bit 5 Invalid Fix
Bit 6 Last Known
Bit 7 Historic
Accums (1 byte)
The number of 4-byte values in the AccumList and the Accumulator Reporting Format Type (upper 2 bits).
Refer to Appendix G, Accumulator Reporting Formats for details.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
48/109
12/13/13
AccumList (4 bytes x n)
A list of n 4-byte fields where n is defined in the Accums field. The format for this list is dependent upon
the Accumulator Reporting Format Type also defined in the Accums field. Refer to Appendix G,
Accumulator Reporting Formats for details.
0
Options Header (optional)
Message Header
49/109
12/13/13
0
Options Header (optional)
Message Header
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
50/109
12/13/13
51/109
12/13/13
1. The LMU creates an Event Report based on its PEG script and sends it to the LM Direct Comm
Server
2. The LM Direct Comm Server receives, interprets and writes the contents of the Event Report to
the database
3. The database confirms the write operation
4. The LM Direct Comm Server sends an Acknowledge Message (Message Type 1) to the LMU.
This message is sent only if the Service Type of the event report is 0x01 (e.g., Acknowledged
Request).
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
52/109
12/13/13
LM Direct ACK
Field
Contents
Field
Contents
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type Length
Mobid Type
Service Type
Message Type
Sequence Number
Update Time
Time of Fix
Latitude
Longitude
Altitude
Speed
Heading
Satellites
Fix Status
Carrier
RSSI
Comm State
HDOP
Inputs
Unit Status
Event Index
Event Code
Accums
Spare
0x83
0x02
0xF999
0x01
0x01
0x01
0x02
0x000A
0x3FB54B33
0x3FB54B33
0x13B2953C
0xBA18EBA3
0x00000000
0x00000002
0x00D1
0x04
0x00
0x0004
0xFFBF
0x0F
0x23
0x07
0x00
0x01
0x01
0x00
0x00
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type Length
Mobid Type
Service Type
Message Type
Sequence Number
Type
ACK
Spare
App Version
0x83
0x02
0xF999
0x01
0x01
0x02
0x01
0x000A
0x02
0x00
0x00
0x000000
53/109
12/13/13
1. Using the map display, the user requests the current location of a vehicle
2. The database and LM Direct Comm Server build a Unit Request Message (Message Type 7)
with a Locate Request Action
3. The LM Direct Comm Server sends the Unit Request Message (Message Type 7) to the LMU
based on the last known IP address of the LMU. The database should be set up to store and provide
this IP address when needed
4. The LMU returns a Locate Report Message (Message Type 8)
5. The LM Direct Comm Server receives, interprets and writes the contents of the Locate Report to
the database
6. The Map Display is updated with the current local of the vehicle
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
54/109
12/13/13
0x04
0x00
0x0004
0xFFBF
0x0F
0x23
0x07
0x00
0x00
0x00
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
55/109
12/13/13
1. The User creates a message to be sent to the driver of the vehicle via his/her Mobile Data Terminal
(e.g., Please call in)
2. The database and LM Direct Comm Server build a User Message message with they payload
created by the User.
3. The LM Direct Comm Server sends the User Message (Message Type 4) to the LMU based on
the last known IP address of the LMU. The database should be set up to store and provide this IP
address when needed
4. The LMU returns an Acknowledgement indicating it received the message. At the same time the
LMU will push the user message out its serial port to the MDT. Note: If the MDT is off or not
connected this message will be lost.
5. The LM Direct Comm Server receives, and interprets the acknowledgement
6. The Map Display is updated to indicate the message was received
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
56/109
12/13/13
LM Direct ACK
Field
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type Length
Mobid Type
Service Type
Message Type
Sequence Number
Contents
0x83
0x02
0xF999
0x01
0x01
0x02
0x01
0x0000
Type
0x04
ACK
0x00
Spare
0x00
App Version
0x363063
57/109
12/13/13
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
58/109
12/13/13
LM Direct ACK
Field
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type
Length
Mobid Type
Service Type
Message Type
Sequence Number
Type
ACK
Spare
App Version
Contents
0x83
0x02
0xF999
0x01
0x01
0x02
0x01
0x000B
0x04
0x00
0x00
0x000000
0x476F696E67206F6E20
6C756E63680D
59/109
12/13/13
1. The user requests to read a specific value (or group of values) from the LMU
2. The Database and LM Direct Comm Server build a Parameter Read Request Message
3. The LM Direct Comm Server sends the Parameter Message (Message Type 6) to the LMU
based on the last known IP address of the LMU. The database should be set up to store and provide
this IP address when needed
4. The LMU sends a Parameter Read Response Message to the Comm Server
5. The Comm server receives, interprets and writes the contents of this message to the database
6. The Map Display is updated with the requested settings
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
12/13/13
1. The user requests to change a specific value (or group of values) for the LMU
2. The Database and LM Direct Comm Server build a Parameter Write Request Message
3. The LM Direct Comm Server sends the Parameter Message (Message Type 6) to the LMU
based on the last known IP address of the LMU. The database should be set up to store and provide
this IP address when needed.
4. The LMU sends a Parameter Write Response Message to the Comm Server
5. The Comm server receives, interprets and writes the contents of this message to the database
6. The Map Display is updated indicating the setting(s) has been changed
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
61/109
12/13/13
Message Type
Sequence Number
Action
Parameter ID
Length
Parameter Index
Data
Parameter ID
Length
Message Type
Sequence Number
Action
Parameter ID
Length
0x06
0x0000
0x01
0x040B
0x0003
0x00
0x00B3
0x0000
0x0000
0x06
0x0000
0x03
0x0000
0x0000
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
62/109
12/13/13
1. LMU Manager creates a Unit Request Message (Message Type 7) intended for a specific LMU.
LMU Manager sends this Unit Request with the forwarding feature enabled to the Inbound Port of the
LM Direct Comm Server
2. The LM Direct Comm Server receives this message and swaps IP address data to send it to the
LMU
3. The LMU Responds to the Comm Server with a Locate Report Message (Message Type 8)
4. Based on the forwarding information the LM Direct Comm Server sends the Locate Report to
LMU Manager
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
63/109
12/13/13
5014
0x93
0x02
0xF999
0x01
Mobid Type
Forward Length
Forward Address
Forward Port
0x01
0x08
0xA6930505
0x501E
0x11
Forward Operation
Service Type
Message Type
Sequence Number
Action
Data8
Data16
Data32
0x00
0x01
0x07
0x0000
0x0A
0x00
0x0000
0x00000000
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
Contents
0x3FC80A0B
5014
0xA6930505
Destination Port
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type
Length
Mobid Type
Forward Length
Forward Address
Forward Port
Forward Protocol
Type
Forward Operation
Service Type
Message Type
Sequence Number
Action
Data8
Data16
Data32
0x501E
0x93
0x02
0xF999
0x01
0x01
0x08
0x3FC80A0C
0x5014
0x11
0x00
0x01
0x07
0x0000
0x0A
0x00
0x0000
0x00000000
64/109
12/13/13
Field
Source Address
Source Port
Destination Address
Destination Port
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type
Length
Mobid Type
Forward Length
Forward Address
Contents
0xA6930505
0x501E
0x3FC80A0B
5014
0x93
0x02
0xF999
0x01
0x01
0x01
0x08
0x3FC80A0C
Mobid Type
Forward Length
Forward Address
0x01
0x08
0xA6930505
Forward Port
Forward Protocol
Type
Fwd Operation
Service Type
Message Type
Sequence Number
Update Time
Time of Fix
Latitude
Longitude
Altitude
Speed
Heading
Satellites
Fix Status
Carrier
RSSI
Comm State
HDOP
Inputs
Unit Status
Accums
Spare
0x5014
Forward Port
0x501E
0x11
0x11
0x00
0x02
0x08
0x0000
0x3FB54B33
0x3FB54B33
0x13B2953C
0xBA18EBA3
0x00000000
0x00000002
0x00D1
0x04
0x00
0x0004
0xFFBF
0x0F
0x23
0x07
0x00
0x00
0x00
Fwd Operation
Service Type
Message Type
Sequence Number
Update Time
Time of Fix
Latitude
Longitude
Altitude
Speed
Heading
Satellites
Fix Status
Carrier
RSSI
Comm State
HDOP
Inputs
Unit Status
Accums
Spare
0x00
0x02
0x08
0x0000
0x3FB54B33
0x3FB54B33
0x13B2953C
0xBA18EBA3
0x00000000
0x00000002
0x00D1
0x04
0x00
0x0004
0xFFBF
0x0F
0x23
0x07
0x00
0x00
0x00
65/109
12/13/13
1. Using the map display the user requests the current location of a vehicle
2. The database and LM Direct Comm Server build a Unit Request Message (Message Type 7)
with a Locate Request Action enabling the Proxy feature
3. The LM Direct Comm Server sends the Unit Request Message (Message Type 7) to the
Gateway adding the LMUs non-IP based address to the Proxy field
4. The Gateway forwards the message to the LMU
5. The LMU responds with a Locate Report Message (Message Type 8)
6. The Gateway Receives the Locate Report Message (Message Type 8) and forwards it to the
Comm Server
7. The Comm server receives, interprets and writes the contents of this message to the database
8. The Map Display is updated indicating the new position of the vehicle
66/109
12/13/13
Proxy
0x0002119EBFA2
Proxy
Forward Protocol
Type
0x11
Forward Operation
0x00
Service Type
Message Type
Sequence Number
Action
Data8
Data16
Data32
0x01
0x07
0x0000
0x0A
0x00
0x0000
0x00000000
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
Destination
0x0002119EBFA2
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type
Length
Mobid Type
Forward Length
0x93
0x02
0xF999
Forward Protocol
Type
Forward
Operation
Service Type
Message Type
Sequence Number
Action
Data8
Data16
Data32
0x01
0x01
0x08
0x3FC80A0C
0x5014
0x11
0x00
0x01
0x07
0x0000
0x0A
0x00
0x0000
0x00000000
67/109
12/13/13
Contents
0x0002119EBFA2
Destination
0x000253C80122
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type
Length
0x93
0x02
0xF999
Mobid Type
Proxy Length
0x01
0x08
0x3FC80A0C
0x5014
Proxy
Proxy Protocol
Type
Forward
Operation
Service Type
Message Type
Sequence Number
Update Time
Time of Fix
Latitude
Longitude
Altitude
Speed
Heading
Satellites
Fix Status
Carrier
RSSI
Comm State
HDOP
Inputs
Unit Status
Accums
Spare
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
0x01
0x11
0x00
0x02
0x08
0x0000
0x3FB54B33
0x3FB54B33
0x13B2953C
0xBA18EBA3
0x00000000
0x00000002
0x00D1
0x04
0x00
0x0004
0xFFBF
0x0F
0x23
0x07
0x00
0x00
0x00
0x01
0x08
Proxy
0x0002119EBFA2
Proxy Protocol
Type
Forward
Operation
Service Type
Message Type
Sequence Number
Update Time
Time of Fix
Latitude
Longitude
Altitude
Speed
Heading
Satellites
Fix Status
Carrier
RSSI
Comm State
HDOP
Inputs
Unit Status
Accums
Spare
0x11
0x00
0x02
0x08
0x0000
0x3FB54B33
0x3FB54B33
0x13B2953C
0xBA18EBA3
0x00000000
0x00000002
0x00D1
0x04
0x00
0x0004
0xFFBF
0x0F
0x23
0x07
0x00
0x00
0x00
68/109
12/13/13
1. The LMU creates an Event Report Message (Message Type 2) based on its PEG script and sends
it to the CalAmp Gateway
2. The Gateway receives the message, adds the appropriate proxy information and forwards it to the
Comm Server
3. The LM Direct Comm Server receives, interprets and writes the contents of the Event Report
Message (Message Type 2) to the database
4. The database confirms the write operation
5. The LM Direct Comm Server sends an Acknowledge Message (Message Type 1) to the
CalAmp Gateway with the appropriate Proxy information. Remember that this message is sent only if
the Service Type of the event report is 0x01 (e.g., Acknowledged Request).
6. The Gateway forwards the ACK to the non-IP based LMU
69/109
12/13/13
Contents
0x0002119EBFA2
Destination
0x000253C80122
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type
Length
Mobid Type
Service Type
Message Type
Sequence
Number
Update Time
Time of Fix
Latitude
Longitude
Altitude
Speed
Heading
Satellites
Fix Status
Carrier
RSSI
Comm Sta
HDOP
Inputs
Unit Status
Event Index
Event Code
Accums
Spare
0x83
0x02
0xF999
0x01
0x01
0x01
0x02
0x000A
0x3FB54B33
0x3FB54B33
0x13B2953C
0xBA18EBA3
0x00000000
0x00000002
0x00D1
0x04
0x00
0x0004
0xFFBF
0x0F
0x23
0x07
0x00
0x01
0x01
0x00
0x00
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
70/109
12/13/13
LM Direct ACK
Field
Source Address
Source Port
Destination
Address
Destination Port
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type
Length
Mobid Type
Proxy Length
Proxy
Proxy Protocol
Type
Proxy Operation
Service Type
Message Type
Sequence Number
Type
ACK
Spare
App Version
Contents
0x3FC80A0B
0x5014
Field
Source
Contents
0x000253C80122
0x3FX80A0A
Destination
0x0002119EBFA2
0x83
0x02
0xF999
0x01
8
0x0002119EBFA2
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type
Length
Mobid Type
Service Type
Message Type
0x11
Sequence Number
0x000A
0x01
0x02
0x01
0x000A
0x02
0x00
0x00
0x000000
Type
ACK
Spare
App Version
0x02
0x00
0x00
0x000000
0x501E
0x93
0x02
0XF999
0x01
0x01
0x01
0x02
0x01
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
71/109
12/13/13
1. LMU Manager creates a Unit Request Message (Message Type 7) intended for a specific LMU.
LMU Manager sends this Unit Request with the forwarding feature enabled to the Inbound Port of the
LM Direct Comm Server
2. The LM Direct Comm Server receives this message and queries the data base for the IP address
of the LMU
3. The database returns an IP address value to the Comm Server
4. The Comm Server sends the Unit Request Message (Message Type 7) to the LMU keeping the
appropriate forwarding information
5. The LMU Responds to the Comm Server with a Locate Report Message (Message Type 8)
6. Based on the forwarding information the LM Direct Comm Server sends the Locate Report
Message (Message Type 8) to LMU Manager
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
72/109
12/13/13
0x3FC80A0C
0x5014
0x3FC80A0B
5014
0x93
0x02
0xF999
0x01
Mobid Type
Forward Length
Forward Address
Forward Port
0x01
0x08
0x00000000
0x501E
0x11
Forward Operation
Service Type
Message Type
Sequence Number
Action
Data8
Data16
Data32
0x02
0x01
0x07
0x0000
0x0A
0x00
0x0000
0x00000000
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
Contents
Source Address
Source Port
Destination Address
Destination Port
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type
Length
Mobid Type
Forward Length
Forward Address
Forward Port
Forward Protocol
Type
Forward Operation
Service Type
Message Type
Sequence Number
Action
Data8
Data16
Data32
0x3FC80A0B
5014
0xA6930505
0x501E
0x93
0x02
0xF999
0x01
0x01
0x08
0x3FC80A0C
0x5014
0x11
0x02
0x01
0x07
0x0000
0x0A
0x00
0x0000
0x00000000
73/109
12/13/13
Field
Source Address
Source Port
Destination Address
Destination Port
Options Byte
Mobid ID Length
Mobid ID
Mobid ID Type
Length
Mobid Type
Forward Length
Forward Address
Contents
0xA6930505
0x501E
0x3FC80A0B
5014
0x93
0x02
0xF999
0x01
0x01
0x01
0x08
0x3FC80A0C
Mobid Type
Forward Length
Forward Address
0x01
0x08
0xA6930505
Forward Port
Forward Protocol
Type
Forward Operation
Service Type
Message Type
Sequence Number
Update Time
Time of Fix
Latitude
Longitude
Altitude
Speed
Heading
Satellites
Fix Status
Carrier
RSSI
Comm State
HDOP
Inputs
Unit Status
Accums
Spare
0x5014
Forward Port
0x501E
0x11
0x11
0x02
0x02
0x08
0x0000
0x3FB54B33
0x3FB54B33
0x13B2953C
0xBA18EBA3
0x00000000
0x00000002
0x00D1
0x04
0x00
0x0004
0xFFBF
0x0F
0x23
0x07
0x00
0x00
0x00
Forward Operation
Service Type
Message Type
Sequence Number
Update Time
Time of Fix
Latitude
Longitude
Altitude
Speed
Heading
Satellites
Fix Status
Carrier
RSSI
Comm State
HDOP
Inputs
Unit Status
Accums
Spare
0x02
0x02
0x08
0x0000
0x3FB54B33
0x3FB54B33
0x13B2953C
0xBA18EBA3
0x00000000
0x00000002
0x00D1
0x04
0x00
0x0004
0xFFBF
0x0F
0x23
0x07
0x00
0x00
0x00
74/109
12/13/13
The Mobile ID and Mobile ID Type fields in the Options Header can be used on both mobile to server
messages (e.g., Event Reports) and Server to mobile messages (e.g., Parameter Requests). For wireless
networks with dynamic IP addressing schemes, the Mobile ID is required for mobile to Server messages to
provide the Server with the Mobile ID of the mobile unit. For Server to mobile messages, Mobile ID is
optional, though it is recommended. For each message direction, the Mobile ID serves a slightly different
purpose.
On mobile to Server messaging, the Mobile ID in the Options Header provides the static identifier (or name)
of the unit. On Server to mobile messaging the Mobile ID is used as a filter; that is, the LMU or
TetheredLocator will compare its own mobile ID and type with that of the incoming message. If they match,
the message is processed; if neither match, the message is discarded. If either of these fields is not present in
the Options Header, they will not be considered in the match process.
A specific scenario where the Server to mobile filter would be used is as follows:
1. LMU 1 registers to a network and gets IP address 166.10.20.30
2. LMU 1 sends in an event report with Mobile ID 5555
3. LMU 1 deregisters from the network thereby releasing its IP address
4. LMU 2 registers to the network and gets IP 166.10.20.30
5. The Server software sends a dispatch request to Mobile ID 5555
6. LMU 2 receives dispatch request for Mobile ID 5555
In this case, if the Mobile ID filter was not in place, LMU 2 would have received instructions meant for LMU
1. Of course, this could cause major problems and confusions in fleet management operations.
75/109
12/13/13
Dec: 085360282
Hex: 0x5167E9A
2. Convert the password to a hexadecimal number
Dotted Dec: 21.12.21.12
Hex: 0x150C150C
3. XOR these two values to get the authentication key
Hex: 0x101A6B96
76/109
12/13/13
*/
IF (PacketIN->Options & 0x80) THEN
{
/* Assign a Pointer to the top of the packet
*/
ptrPacket = &PacketIN->Options;
/* Create an offset to walk through the packet
*/
packetOffset = 0;
/* We look at each bit of the Options Byte
* to determine which values we need to extract.
.* We will walk through each bit using a left shift
* bitwise operator
*/
FOR (Options_Bit = 1; Options_Bit 128; OptionsBit <<= 1)
{
/* Check if the options bit has been set.
*/
IF (PacketIN->Options & Options_Bit) THEN
{
/* move our offset to the next byte to process
*/
packetOffset ++;
/* Process Mobile ID
*/
IF (Options_Bit == 1) THEN
{
/* BCDtoASCII (Destination, Source, Length)
*/
BCDtoASCII (MyPacket->MobileID,
&ptrPacket[packetOffSet+1],
ptrPacket[PacketOffset])
} ENDIF
/* Process Mobile ID Type
*/
IF (Options_Bit == 2) THEN
{
/* NOTE Mobile ID Type Length is
* always 1 byte.
*/
MyPacket->MobileIDType = ptrPacket[packetOffset + 1];
} ENDIF
/* Process Authentication field
*/
IF (Options_Bit == 4) THEN
{
/* NOTE Authentication Length is
* always 4 bytes.
*/
MyPacket->Auth =
ptrPacket[packetOffset + 1];
} ENDIF
/* move the Offset past the length of data
*/
packetOffset += ptrPacket[packetOffset];
} ENDIF
} END LOOP
} END IF
/* Set index to the beginning of the location data
*/
packetOffset ++
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
77/109
12/13/13
8.1 Types
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
78/109
12/13/13
Types
IP Request
10
IP Report
11
Time Sync
50
Download ID Report
100
Download Authorization
101
Download Request
102
Download Update
103
Download Complete
104
106
OTA Download
107
AT Command
110
Version Report
111
112
113
State Report
115
116
120
122
130
Vehicle ID Report
131
132
8.2 Formats
8.2.1 IP Request
This message is supported by the Server to allow external programs to request the Server provide the IP
Address and UDP Port number from which the LMU last reported. The message contains the Mobile ID of
the LMU. The Server will respond with an Application Message IP Report. The format for this message is
TBD.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
79/109
12/13/13
8.2.2 IP Report
Sent by the Server in response to receiving an IP Request Application Message from an external program.
This message provides the external program the IP Address and UDP Port number from which the requested
LMU last reported. The format for this message is TBD.
Used by the LMU to request time synchronization from the server (Request/Response byte equals 1) and
used by the server to send time to the LMU (Request/Response byte equals 2). The Time field is a 4-byte
UTC (GMT) time (1-sec LSB, 0=12:00AM Jan 1, 1970). The Spare fields should be set to 0. The Time
field is set 0 by the LMU when sending a request.
15
0
Request (1) / Response (2)
Spare
Spare
Spare
Time(msByte)
Time
Time
Time(lsByte)
Time Sync App Message Format
0
Request (1) / Response (2)
Spare
Spare
Spare
Time(msByte)
Time
Time
Time(lsByte)
Time Sync App Message Format
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
80/109
12/13/13
The OTA Download App message is sent by the downloading service to inform the LMU that an Over-theAir download file is available for the unit. This App message describes the identity and location of that file.
The message is a collection of null-terminated strings, which have a key:value structure.
DEV:<n>
FILE:<n>
FLEN:<n>
VER:<s>
PROT:<s>
SRVR:<s:n>
PATH:<s>
UNAM:<s>
PWD:<s>
DEV
The device ID of the file to be downloaded. The device ID can refer to the LMU itself or the other field
upgradeable devices that are connected to the LMU.
Device Type
LMU
JPOD
OBDII
Reserved (TC Radio)
Value
0
1
2
3
Example:
DEV:2<Null Byte>
FILE
The ID of the file to be downloaded.
File Type
Firmware
Configuration
Bootloader
System Manager
DB
Value
0
1
2
3
4
Example:
FILE:2<Null Byte>
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
81/109
12/13/13
FLEN
The length of the file to be updated in bytes.
Example:
FLEN:13418<Null Byte>
VER
The version of the file as a string.
Example:
VER:2.0.2<Null Byte>
PROT
The ID of ther protocol to use when retrieving the file.
Download Protocol
UDP
HTTP
FTP
ID
0
1
2
Example:
PROT:HTTP1<Null Byte>
SRVR
The name of the server, with an optional port, to connect to download the file.
Example:
SRVR:puls.calamp.com:80<Null Byte>
PATH
The full path to the location of the file on the server
Example:
PATH:dnld/ota<Null Byte>
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
82/109
12/13/13
8.2.6 AT Command
Used by Server to send an AT Command Set|AT Command to the LMU. Currently, the only AT Command
accepted on this interface is a SENDTO command. This App Message holds the AT Command string in
the Msg field. The Msg Length field contains the 2-byte length of the AT Command string. The Msg
Type field should have a value of 110. The LMU will respond with an Acknowledge Message (Message
Type 1).
83/109
12/13/13
value of 112 and the App Msg Length field should be 124.
15
0
Time of Fix (msByte)
Time of Fix
Latitude (msByte)
Latitude
Time of Fix
Time of Fix (lsByte)
Latitude
Latitude(lsByte)
Longitude (msByte)
Longitude
Longitude
Longitude (lsByte)
Altitude (msByte)
Altitude
Altitude
Altitude(lsByte)
Speed (msByte)
Speed
Speed
Speed (lsByte)
Heading (msByte)
Heading (lsByte)
Satellites
Fix Status
HDOP
AGC
Antenna Status
GPS Power
The following fields repeat for each of 16 possible satellites.
PRN
Used
Elevation
SNR
Azimuth(msByte)
Azimuth (lsbyte)
GPS Status App Message Format
Latitude (4 bytes)
The latitude reading from the GPS receiver measured in degrees with a 1x10^-7 degree lsb, signed 2s
complement.
Longitude (4 bytes)
The longitude reading from the GPS receiver measured in degrees with a 1x10^-7 degree lsb, signed 2s
complement.
Altitude (4 bytes)
The altitude reading from the GPS receiver measured in centimeters above the WGS-84 Datum, signed 2s
complement.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
84/109
12/13/13
Speed (4 bytes)
The speed as reported by the GPS receiver, measured in centimeters per second
Heading (2 bytes)
The heading value reported in degrees from true North
Satellites (1 byte)
The number of satellites used in the GPS fix solution
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
85/109
12/13/13
HDOP (1 byte)
The GPS Horizontal Dilution of Precision: It is a unit-less value reported with a 0.1 lsb.
AGC (1 byte)
The current gain level of the AGC in the GPS receiver - Represented in percent (0-100). 0=not supported
PRN (1 byte)
Identification number of the satellite, 1-32, 0 if this satellite set of fields is not used
Used (1 byte)
Indicates if this satellite is used in the location fix calculation, ASCII U(0x55)=yes, ASCII <space>
(0x20)=no
Elevation (1 byte)
Elevation of satellite above the horizon, degrees 0-90,
SNR (1 byte)
Satellite receive signal strength (C/No) in dBHz, 0-99;
Azimuth (2 bytes)
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
86/109
12/13/13
0
LocReq Count
(msByte)
Received User Msgs(msByte)
Inbound Reports
(msByte)
Sent User Msgs
(msByte)
Spare1
(msByte)
Logged Records
(msByte)
LocReq Count
(lsByte)
Received User Msgs
(lsByte)
Inbound Reports
(lsByte)
Sent User Msgs
(lsByte)
Spare 1
(lsByte)
Logged Records
Logged Records
Logged Records
(lsByte)
Spare2
(msByte)
Spare2
Spare2
Spare2
(lsByte)
Spare3
(msByte)
Spare3
Spare3
Spare3
(lsByte)
Spare4
(msByte)
Spare4
Spare4
Spare4
(lsByte)
Spare5
(msByte)
Spare5
Spare5
(lsByte)
Message Statistics App Message Format
Spare5
87/109
12/13/13
The number of Locate Requests received by the LMU since the last power-up, wakeup, or stats reset
SPARE1 (2 bytes)
This field is reserved for future use
SPARE2 (4 bytes)
This field is reserved for future use
SPARE3 (4 bytes)
This field is reserved for future use
SPARE4 (4 bytes)
This field is reserved for future use
SPARE5 (4 bytes)
This field is reserved for future use
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
88/109
12/13/13
0
Zone States
(msByte)
Zone States
Zone States
Zone States
(lsByte)
Environment State
(msByte)
Environment State
Environment State
PEG Flags
(msByte)
Input States
Spare 1
(msByte)
Spare 2
Accumulator 0
(msByte)
Accumulator 0
Accumulator 15
(msByte)
Environment State
(lsbyte)
PEG Flags
(lsByte)
Output States
Spare 1
(lsByte)
Accumulator Count
Accumulator 0
Accumulator 0
(lsByte)
Accumulator 15
Accumulator 15
(lsByte)
LMU State Report Format
Accumulator 15
Bit 0
Bit 1
Bit 2
Bit 3
Bit 30
Bit 31
89/109
12/13/13
Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
Bit 8
Bit 9
Bit 10
Bit 11
Bit 12
Bit 13
Bit 14: spare
Bit 15: spare
Bit 16
Bit 17
Bit 18
Bit 19
Bit 20
Bit 21
Bit 22
Bit 23
Bit 24
Bit 25
Bit 26
Bit 27
Bit 28
Bit 29
Bit 30
Bit 31
Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
Bit 8
Bit 9
Bit 10
Bit 11
Bit 12
Bit 13
Bit 14
Bit 15
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
90/109
12/13/13
Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7
Set = Ignition On
Set = Input 1 High
Set = Input 2 High
Set = Input 3 High
Set = Input 4 High
Set = Input 5 High
Set = Input 6 High
Set = Input 7 High
Outputs (1 bytes)
This is a bit-mapped field indicating the state of each of the LMUs available outputs, including those on the
ioPOD. The bit mapping is as follows:
Bit 0
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7: spare
Spare 1 (2 bytes)
This field is not used. It should be set to 0
Spare 1 (1 byte)
This field is not used. It should be set to 0
Accums (1 byte)
The number of 4-byte values in the AccumList and the Accumulator Reporting Format Type (upper 2 bits).
Refer to Appendix G, Accumulator Reporting Formats for details.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
91/109
12/13/13
AccumList (4 bytes x n)
A list of n 4-byte fields where n is defined in the Accums field. The format for this list is dependent upon
the Accumulator Reporting Format Type also defined in the Accums field. Refer to Appendix G,
Accumulator Reporting Formats for details.
0
Action Code
Response Code
Block Number
Spare
Start Index
Start Index
(msByte)
(lsByte)
Record Count (msByte)
Record Count (lsByte)
Major Version
Minor Version
Geo-Zone Action Message Format
92/109
12/13/13
The memory block in which the Geo-Zone action is taking place. This value should normally be 0.
Spare (1 byte)
Reserved for future use. Set to 0.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
93/109
12/13/13
15
0
Block Number
Start Index
(msByte)
Geo-Zone 0 Type
Record Count
Start Index
(lsByte)
Geo-Zone 0 ID
Geo-Zone 0 Range
(msByte)
Geo-Zone 0 Latitude
(msByte)
Geo-Zone 0 Latitude
Geo-Zone 0 Longitude
(msByte)
Geo-Zone 0 Range
(lsByte)
Geo-Zone 0 Longitude
Geo-Zone N Type
Geo-Zone N Range
(msByte)
Geo-Zone N Latitude
(msByte)
Geo-Zone N Latitude
Geo-Zone N Longitude
(msByte)
Geo-Zone 0 Latitude
Geo-Zone 0 Latitude (lsByte)
Geo-Zone 0 Longitude
Geo-Zone 0 Longitude
(lsByte)
Geo-Zone N ID
Geo-Zone N range
(lsByte)
Geo-Zone N Latitude
Geo-Zone N Latitude (lsByte)
Geo-Zone N Longitude
Geo-Zone N Longitude
(lsByte)
Geo-Zone Update Message Format
Geo-Zone N Longitude
94/109
12/13/13
Geo-Zone point belongs. The type value is contained in bits 0 3. The super group ID is contained in bits 4
7. The available settings are:
95/109
12/13/13
Capture Messages.
15
0
Timestamp (msByte)
Timestamp
Latitude (msByte)
Latitude
Longitude (msByte)
Longitude
Accumulator N (msByte)
Accumulator N+1(msByte)
Timestamp
Timestamp (lsByte)
Latitude
Latitude(lsByte)
Longitude
Longitude (lsByte)
Accumulator N (lsByte)
Accumulator N+1 (lsByte)
15
0
Timestamp (msByte)
Timestamp
Latitude (msByte)
Latitude
Longitude (msByte)
Longitude
Accumulator N (msByte)
Accumulator N
Accumulator N+1(msByte)
Accumulator N+1
Timestamp
Timestamp (lsByte)
Latitude
Latitude(lsByte)
Longitude
Longitude (lsByte)
Accumulator N
Accumulator N (lsByte)
Accumulator N+1 (lsByte)
Accumulator N+1 (lsByte)
Timestamp(4 bytes)
The timestamp from the GPS receiver when the capture report was created. This value is reported in seconds
from Jan. 1, 1970
Latitude (4 bytes)
The latitude reading from the GPS receiver measured in degrees with a 1x10-7 degree lsb, signed 2s
complement.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
96/109
12/13/13
Longitude (4 bytes)
The longitude reading from the GPS receiver measured in degrees with a 1x10-7 degree lsb, signed 2s
complement.
Accumulator N to Accumulator N+X (2 bytes or 4 bytes)
The value of Accumulator N using either a 2 byte or 4 byte width. The accumulator width is defined by the SRegister 171 setting of the LMU. N and X are defined by the Flush Capture Buffer Action Modifier. Please
refer to the PEG Programming Guide for details.
97/109
12/13/13
This field contains the count of this Motion Log Report within the Group of Motion Log Reports required to
deliver the desired contents of the Long or Short Log buffer. See Group Count.
Spare (1 byte)
Set to zero (0).
Time-Date (4 bytes)
The device system time at the time this report was generated. This value is reported in seconds from Jan. 1,
1970
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
98/109
12/13/13
Latitude (MsByte)
Latitude
Latitude
Latitude (LsByte)
Longitude (MsByte)
Longitude
Longitude
Longitude (LsByte)
Speed (MsByte)
Speed (LsByte)
Heading
nSats FixStat
Time-of-Fix (MsByte)
Time-of-Fix
Time-of-Fix
Time-of-Fix (LsByte)
Accel-Longitudinal (MsByte)
Accel-Longitudinal (LsByte)
Accel-Lateral (MsByte)
Accel-Lateral (LsByte)
Accel-Vertical (MsByte)
Accel-Vertical (LsByte)
TimeTick (MsByte)
TimeTick (LsByte)
Short Motion Log Report
Latitude (4 bytes)
The latitude reading of the GPS receiver, measured in degrees with a 1x10-7 degree lsb, signed 2s
complement
Longitude (4 bytes)
The longitude reading of the GPS receiver, measured in degrees with a 1x10-7 degree lsb, signed 2s
complement
Speed (2 bytes)
The speed as reported by the GPS receiver, measured in centimeters per second
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
99/109
12/13/13
Heading (1 byte)
The heading value reported in 1.40625 degrees increments (360/256) from true North
nSats_FixStat (1 byte)
This field contains two values. The 4 least significant bits (Bits 0-3) represent the satellite count for this GPS
reading (0-15, >15 is reported as 15). The most significant 4 bits represent the Fix Status of this GPS reading
with each bit representing the following:
Bit 4 Predicted
Bit is set when the position update has a horizontal position accuracy estimate that is less that the
Horizontal Position Accuracy Threshold defined in S-Register 142 (and the threshold is non-zero).
Bit 5 Differentially Corrected
This bit is set when SBAS DGPS is enabled (S-Register 139) and the position has been differentially
corrected
Bit 6 Dead-Reckoning (not supported)
This bit indicates of the current GPS fix is a result of dead-reckoning calculations instead of a true GPS
position determination.
Bit 7 Invalid Fix
This bit indicates the reported fix is invalid and should be discarded or disregarded.
Acceleration-Longitudinal (2 bytes)
The field represents the acceleration of the vehicle along its longitudinal axis (forwards/backwards) as
measured by the accelerometer and calibrated by the device software. The signed value is scaled to be
cm/s/s.
Acceleration-Lateral (2 bytes)
The field represents the acceleration of the vehicle along its lateral axis (side-to-side) as measured by the
accelerometer and calibrated by the device software. The signed value is scaled to be cm/s/s.
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
100/109
12/13/13
Acceleration-Vertical (2 bytes)
The field represents the acceleration of the vehicle along its vertical axis (up/down) as measured by the
accelerometer and calibrated by the device software. The signed value is scaled to be cm/s/s.
Tick (2 bytes)
The field represents the least 16-bits of the devices internal clock. It has a 1mS resolution.
Latitude (4 bytes)
The latitude reading of the GPS receiver, measured in degrees with a 1x10^-7 degree lsb, signed 2s
complement
Longitude (4 bytes)
The longitude reading of the GPS receiver, measured in degrees with a 1x10^-7 degree lsb, signed 2s
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
101/109
12/13/13
complement
Speed (2 bytes)
The speed as reported by the GPS receiver, measured in centimeters per second
Heading (1 byte)
The heading value reported in 1.40625 degrees increments (360/256) from true North
nSats_FixStat (1 byte)
This field contains two values. The 4 least significant bits (Bits 0-3) represent the satellite count for this GPS
reading (0-15, >15 is reported as 15). The most significant 4 bits represent the Fix Status of this GPS reading
with each bit representing the following:
Bit 4 Predicted
Bit is set when the position update has a horizontal position accuracy estimate that is less that the
Horizontal Position Accuracy Threshold defined in S-Register 142 (and the threshold is non-zero).
Bit 5 Differentially Corrected
This bit is set when SBAS DGPS is enabled (S-Register 142) and the position has been differentially
corrected
Bit 6 Dead-Reckoning (not supported)
This bit indicates of the current GPS fix is a result of dead-reckoning calculations instead of a true GPS
position determination.
Bit 7 Invalid Fix
This bit indicates the reported fix is invalid and should be discarded or disregarded.
102/109
12/13/13
running on the VBus capture device. The Msg Type field should have a value of 130.
VIN
17-character string
Example:
VIN:1G1JC5444R7252367<NULL Char>
103/109
12/13/13
PARAMS:1,3,5,6,10,11,12<NULL Char>
INDCTRS:0(000001101100011),1(0000001100011001)<NULL Char>
Note: In some vehicles VIN may not be available (see Supported Vehicles/parameters list). In this case the
VIN string will be empty.
104/109
12/13/13
or counter clockwise order as you travel around the perimeter of the polygon. The first point definition of the
polygon is also used as the last. Polygons points must appear in successive definitions, for instance, if you
have a 6 point polygon and a 12 point polygon, the first 6 records must be polygon #1, the next 12 must be
polygon #2. Polygon zones cannot share points between each other.
Point zones, since they are stand-alone entities may appear in any order and in any combination. Keep in
mind that they cannot appear in the middle of a polygon definition as that would violate the above rule.
The LMU can store up to 5400 Geo-Zone records.
105/109
12/13/13
106/109
12/13/13
The Read process for geo-zones is somewhat simpler since geo-zone processing does not need to be halted.
1. Send a Read Request
2. Wait for Update Message
3. Repeat steps 1&2 until all desired records are read
107/109
12/13/13
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
108/109
12/13/13
Acc0-31 Threshold
(ms-Byte)
Acc0-31 Threshold
Acc0-31 Threshold
Acc0-31 Threshold
(ls-Byte)
Reported Acc0-31
(ms-Byte)
Reported Acc0-31
Reported Acc0-31
(ls-Byte)
Accum A (msByte)
Accum A
Accum A
Accum A (lsByte)
Accum B (msByte)
Accum B
Accum B
Accum B (lsByte)
...
...
Enhanced 32 Accumulator Reporting Format
Reported Acc0-31
https://puls.calamp.com/wiki/LM_Direct_Reference_Guide
109/109