PEG Programming Guide - 2010-12-09
PEG Programming Guide - 2010-12-09
Programming
Guide
Version 1.1.9
December 2010
Table of Contents
Table of Contents _______________________________________________________ i
1
Introduction ________________________________________________________ 1
1.1
1.2
1.3
1.4
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
3.2
Accumulators ________________________________________________________ 16
3.3
Timers _____________________________________________________________ 24
3.1.1
Reporting via UDP/IP ________________________________________________________ 6
3.1.2
LM Direct Reporting _________________________________________________________ 7
Message Logging _____________________________________________________ 8
3.1.2.1
Creating Event Reports ________________________________________________ 8
3.1.2.2
Creating Mini Event Reports ____________________________________________ 9
3.1.2.3
Creating Null Messages ________________________________________________ 9
3.1.2.4
Creating ID Reports and Version Reports _________________________________ 10
3.1.2.5
Working with the Log ________________________________________________ 11
3.1.2.6
Working with User Messages __________________________________________ 12
3.1.2.7
Working with Buffers ________________________________________________ 13
3.1.2.8
Changing the Inbound Address _________________________________________ 14
3.1.2.9
3.1.3
TAIP Reporting____________________________________________________________ 15
SMS Reporting ____________________________________________________________ 15
3.1.4
3.2.1
Accumulator Types __________________________________________________________ 16
Using Accumulators _________________________________________________________ 18
3.2.2
Accumulator Math ___________________________________________________ 22
3.2.2.1
3.2.3
Reporting Accumulators _______________________________________________________ 23
V1.1.9
Copyright CalAmp DataCom Inc 2010
-i-
December 9, 2010
CalAmp Proprietary & Confidential
3.4
3.5
3.6
3.7
3.8
3.9
Inputs _____________________________________________________________ 32
3.10
Outputs ____________________________________________________________ 38
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
GPS _______________________________________________________________ 60
3.20
Comm _____________________________________________________________ 62
3.4.1
3.5.1
3.5.2
3.5.3
3.9.1
3.9.2
3.9.3
3.9.4
32
34
35
37
3.18.1
V1.1.9
Copyright CalAmp DataCom Inc 2010
- ii -
December 9, 2010
CalAmp Proprietary & Confidential
3.21
3.22
SMS _______________________________________________________________ 69
3.23
3.24
3.25
3.26
3.21.1
3.21.2
3.23.1
3.24.1
3.24.2
3.25.1
3.25.2
3.25.3
3.25.4
73
73
73
73
4.2
4.3
4.2.1
4.2.2
4.2.3
4.2.4
4.2.5
4.2.6
4.2.7
4.3.1
4.3.2
4.3.3
4.3.4
75
76
76
77
77
77
77
77
78
78
78
5.1.1
Project Overview ____________________________________________________________ 80
Project Proposal ____________________________________________________________ 80
5.1.2
CalAmp LMU Requirements ___________________________________________ 80
5.1.2.1
Local Application Requirements ________________________________________ 82
5.1.2.2
Remote Application Requirements ______________________________________ 82
5.1.2.3
5.1.3
PEG Script - Planning _______________________________________________________ 83
PEG Script - Development _____________________________________________________ 85
5.1.4
PEG Script - Ignition On/Off Detection ___________________________________ 85
5.1.4.1
PEG Script Sleep ___________________________________________________ 86
5.1.4.2
PEG Script Time-Distance Reporting ___________________________________ 87
5.1.4.3
PEG Script At Stop Timer ____________________________________________ 87
5.1.4.4
PEG Script Moving/Not Moving Reporting ______________________________ 88
5.1.4.5
PEG Script - Speeding ________________________________________________ 89
5.1.4.6
PEG Script Trip Odometer ___________________________________________ 91
5.1.4.7
V1.1.9
December 9, 2010
- iii CalAmp Proprietary & Confidential
Copyright CalAmp DataCom Inc 2010
5.2
5.3
5.2.1
Project Overview ____________________________________________________________ 96
5.2.2
Project Proposal ____________________________________________________________ 96
Project Proposal Trailer Tracking LMU 1110 Requirements ______________ 96
5.2.2.1
Project Proposal Truck Tracking LMU 4200 Requirements ______________ 97
5.2.2.2
Project Proposal Local Application _____________________________________ 98
5.2.2.3
Project Proposal Remote Application ___________________________________ 98
5.2.2.4
5.2.3
PEG Script Planning _______________________________________________________ 98
PEG Script Development LMU-1110 ________________________________________ 101
5.2.4
PEG Script PEG Parameters _________________________________________ 101
5.2.4.1
PEG Script In Use / Not In Use_______________________________________ 101
5.2.4.2
PEG Script In Use - Trailer Connect ___________________________________ 102
5.2.4.3
PEG Script In Use - Load Begin/End __________________________________ 103
5.2.4.4
PEG Script - In Use - Unload Begin/End Detection ________________________ 103
5.2.4.5
PEG Script In Use - Distance Travelled ________________________________ 104
5.2.4.6
5.2.4.7
PEG Script In Use Power-down for Load/Unload _______________________ 104
PEG Script Not In Use - Trailer Disconnect _____________________________ 105
5.2.4.8
PEG Script Not In Use Low Battery Report ___________________________ 105
5.2.4.9
PEG Script Not In Use Daily Report _________________________________ 105
5.2.4.10
PEG Script Not In Use Distance Travelled ____________________________ 106
5.2.4.11
PEG Script Not In Use Sleep _______________________________________ 106
5.2.4.12
PEG Script Low Battery Switch to Internal Power ______________________ 107
5.2.4.13
5.2.5
PEG Script Development LMU 4200 _______________________________________ 109
PEG Script PEG Parameters _________________________________________ 109
5.2.5.1
PEG Script - Ignition On/Off Detection __________________________________ 109
5.2.5.2
PEG Script Sleep __________________________________________________ 110
5.2.5.3
PEG Script Time-Distance Reporting __________________________________ 111
5.2.5.4
PEG Script Moving/Not Moving Reporting _____________________________ 111
5.2.5.5
PEG Script Trip Odometer __________________________________________ 112
5.2.5.6
PEG Script Vehicle Power __________________________________________ 113
5.2.5.7
PEG Script - Load Begin/End Detection _________________________________ 113
5.2.5.8
PEG Script - Unload Begin/End Detection _______________________________ 114
5.2.5.9
PEG Script Trailer Detection ________________________________________ 114
5.2.5.10
PEG Script Modem off during load and unload procedures _________________ 115
5.2.5.11
PEG Script Unsafe load and unload warning _____________________________ 118
5.2.5.12
PEG Script Crossing State Boundaries _________________________________ 119
5.2.5.13
5.3.1
Project Overview ___________________________________________________________ 122
Project Proposal ___________________________________________________________ 122
5.3.2
LMU Requirements _________________________________________________ 122
5.3.2.1
Local Application Requirements _______________________________________ 123
5.3.2.2
Remote Application Requirements _____________________________________ 123
5.3.2.3
5.3.3
PEG Script Planning ______________________________________________________ 123
PEG Script - Development ____________________________________________________ 124
5.3.4
PEG Script Time-Distance Reporting __________________________________ 124
5.3.4.1
- iv -
December 9, 2010
CalAmp Proprietary & Confidential
1 Introduction
1.1 About CalAmp Who we are
Founded in 1981, CalAmp stands at the forefront of technology evolution as a result of
strategic collaborations with forward thinking customers. By anticipating technology and
industry trends, we rapidly develop cutting-edge solutions to help our customers effectively
realize time and cost savings. Based on our long history of successful product deployment
we help our customers by managing the entire product lifecycle - from design to
manufacturing to implementation.
V1.1.9
Copyright CalAmp DataCom Inc 2010
-1-
December 9, 2010
CalAmp Proprietary & Confidential
2 PEG Introduction
2.1 What is PEG?
The Programmable Event Generator (PEG) is the means by which a user can customize the
LMU to perform a specific task, or a series of tasks. This can be something as simple as
creating a report every time the vehicle moves 1 kilometer or as complicated as managing
messages and behaviors of peripheral devices such as card readers, cameras or messaging
terminals. It may be easiest to think of PEG as a type of programming language, though it is
really not that complicated.
PEG is made up of a series of Events. Events are used by PEG to monitor changes in the
LMUs state or environment and to perform certain Actions in response to those changes.
Events in turn are broken into Triggers, Conditions and Actions. Triggers and Conditions
define when the Event occurs; Actions define what the LMU does for that Event. A series
of Events that perform one or more tasks is known as a PEG Script. An LMU only has one
PEG Script, though it is made up of 75 to 150 Events.
Product
TTU-<TBD>
MTU-100
LMU-700
LMU-900
LMU-1000
LMU-1100
LMU-1110
LMU-1150
LMU-1190
LMU-1200
LMU-2500
LMU-2600
LMU-4100
LMU-4200
Number of Events
100 or 128
(requires 2.0a or higher)
100
100 or 128
(requires 2.0a or higher)
100 or 128
(requires 2.0a or higher)
75 or 100
(requires 1.4a or higher)
100 0r 128
100 or 128
(requires 2.0a or higher)
150
150
150
-2-
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
-3-
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
-4-
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
-5-
December 9, 2010
CalAmp Proprietary & Confidential
3 PEG Overview
In the sections that follow we attempt to break down PEG into its functional components.
For each we give a brief description of that component (i.e. why it exists and what it does)
and then describe the accompanying PEG support.
V1.1.9
Copyright CalAmp DataCom Inc 2010
-6-
December 9, 2010
CalAmp Proprietary & Confidential
Event Reports: Event Reports are the primary message used by the LMU to deliver
location data.
Mini Event Reports: The Mini Event reports are an alternate to the Event Reports.
The Mini Event Report is a smaller size message containing approximately 20 bytes
less information than the standard event report.
User Messages: User Messages are messages sent to or from dumb serial devices
connected to the LMU. PEG cannot generate User Messages on its own, but it can
react to them.
ID Reports: ID Reports contain a list of serial numbers for each of the LMUs
components as well as some version information. Generally the ID Report is only
used in conjunction with the Maintenance settings of the LMU. That is, the settings
that enables the LMU to report to PULS.
Version Reports: The Version Report is used to communicate the version strings of
the LMU (i.e. APP, CPU, RADIO and GPS Versions). These strings are identical to
the ATI0 or AT$APP VER? responses.
Acknowledgements: Acknowledgements (or ACKs for short) indicate that a
particular message was successfully received and that the receiving side is ready for
the next message. As a result, they are a cornerstone in the LMUs Logging
capabilities.
It is highly advisable that your LM Direct server be able to handle all LM Direct message
types (e.g. ACK them) even if the data is not used by your application .As a bare minimum,
users should implement an LM Direct server that supports Event Reports and
Acknowledgements.
Before we can talk about the various message types, it is essential that you understand how
the LMUs Log operates.
V1.1.9
Copyright CalAmp DataCom Inc 2010
-7-
December 9, 2010
CalAmp Proprietary & Confidential
There are three reporting modes that can be used with the LMU. They are commonly
referred to as the following:
Store and Forward (SNF): When a message is created using Store and Forward the
LMU will attempt to immediately send the data if the network is available and if no
other data is in the Log. Once the message is sent, the LMU will wait for an
acknowledgement message from the receiving server. If one is not received, the
LMU will Log the data. Any Logged data will be sent at a later point in time. If the
LMU is either not online, or the Log is already active, the new data is placed at the
end of the Log.
In PEG, the phrases SEND or SEND-LOG indicate a message is created using the
Store and Forward mechanism.
Batch: In batch mode the LMU will immediately place the data in the Log
regardless of network and Log states. The LMU will hold this data until it is explicitly
told to empty its Log using a SEND LOG Action or a message using the Store and
Forward mechanism is introduced.
In PEG, an Action using just LOG operates in batch mode.
Unacknowledged: Unacknowledged messages are ones that are never Logged. The
LMU attempts to send the data if the network is available. Once the send has been
completed, the message is erased. If the network is not available, then the message is
immediately deleted.
Within PEG, the phrases Unacknowledged or UnAckd are used to refer to this
reporting mode.
Send Report:
Send/Log Report: Send and Send/Log perform the same function; they create an
Event Report using the LMUs Store and Forward Log mode. If the Log is inactive,
the LMU will attempt to deliver the message to the Inbound address and port. If the
Log is active, the LMU will place the Event report at the end of the Log.
Log Report: This Action creates an Event Report using the LMUs Batch Log
mode, that is, the Event report is immediately put into the Log. It will only be
delivered when the Log is forced to empty.
Send Unacknowledged Report: This Action creates an Event Report using the
unacknowledged service. Messages created in this mode are sent immediately and are
not logged.
Report Alert: This Action creates 3 Events reports, one using the Store and
Forward service, one using the Unacknowledged service and one using SMS. Like
the other four Actions, the Action Modifier defines the Event Code.
For each of these Actions, the Action Modifier defines the Event Code field of the Event
Report. The Event Code is best thought of as the reason why the Event Report was created.
V1.1.9
Copyright CalAmp DataCom Inc 2010
-8-
December 9, 2010
CalAmp Proprietary & Confidential
PEG offers three Actions that can create a Mini Event Report.
Send Mini Event Report: Send creates a Mini Event Report using the LMUs Store
and Forward Log mode. If the Log is inactive, the LMU will attempt to deliver the
message to the Inbound address and port. If the Log is active, the LMU will place
the Mini Event Report at the end of the Log.
Log Mini Event Report: This Action creates a Mini Event Report using the LMUs
Batch Log mode, that is, the Mini Event Report is immediately put into the Log. It
will only be delivered when the Log is forced to empty.
Send Unacknowledged Mini Event Report: This Action creates a Mini Event
Report using the unacknowledged service. Messages created in this mode are sent
immediately and are not logged.
For each of these Actions, the Action Modifier defines the Event Code field of the Mini
Event Report. The Event Code is best thought of as the reason why the Mini Event Report
was created. For instance, an Event Code of 1 could indicate the vehicle ignition was turned
on and an Event Code of 10 could mean the ignition has turned off. The actual assignment
of Event Codes is completely up to the PEG Script developer, though it is best to keep
Event Codes common across your Scripts. Event Codes can range from 0 to 255.
The LM Direct Null Message was designed to be a heart beat message sent from an LMU
to an LM Direct server. The heart beat is meant for two purposes:
To indicate that the LMU is online and active
To provide a means to keep the server to LMU communications path open through
firewalls and NAT Routers.
The Null Message can be sent based on the LMUs configuration parameters (see the LMU
Users Guide for details) or it can be sent via the PEG Script using the Create Null
Message PEG Action. The Null Message format can be found in the LM Direct Reference
Guide.
V1.1.9
Copyright CalAmp DataCom Inc 2010
-9-
December 9, 2010
CalAmp Proprietary & Confidential
ID Reports and Version Reports can be sent to one of two locations, either the Inbound
Address or the Maintenance Address. When sending to the Inbound Address, all ID Reports
are created using the Store and Forward service. For the Maintenance Address, they are sent
using the Unacknowledged service.
The LMU offers a single Action to work with ID Reports and Version Reports:
The Action Modifier determines which path the LMU uses for the ID Report. The
supported Action Modifiers are as follows:
One might wonder why the ID Report and Version Reports supports all these send options.
Primarily it is to deal with firewalls and NAT routers that may be around a wireless network.
Basically, the ID Report can be used to open a hole in the firewall along one of the above
paths. This allows a backend system to send a message (Ack, Unit Request, Config change,
etc...) using the same path.
LMX = LMX stands for LM eXchange. It is the predecessor of the LM Direct protocol and only exists for
backwards compatibility reasons. New users of the LMU should never use the LM eXchange settings.
V1.1.9
December 9, 2010
- 10 CalAmp Proprietary & Confidential
Copyright CalAmp DataCom Inc 2010
2
PEG offers some measure of control over the LMUs Log as well as providing some
feedback as to the state of the Log.
For Triggers, PEG offers the following:
Log Full: This Trigger occurs when the Log reaches 80% capacity.
Log Send Failure: This Trigger occurs when the LMU transitions from the
Inbound Retry schedule to the Log Retry schedule. It is effectively the point in
which a Store and Forward report is Logged. The Log must be emptied for this
Trigger to occur again.
Log Report Success: This Trigger occurs when the Log successfully sends its last
report to the inbound server. The Log is inactive at this point.
Log Active: This Trigger occurs when the first message is placed in the LMUs Log.
This can either happen with a Store and Forward report, or with a Batch report. The
Log must be emptied for this Trigger to occur again.
PEG provides the following three Conditions to describe the state of the Log:
Log Active: This Condition is true when there is at least one message in the LMUs
Log.
Log Inactive: This Condition is true when the LMUs Log is completely empty.
Log Full: This Condition is true when the LMUs Log is at 80% capacity or greater.
Send Log: This Action will change the mode of the Log from Batch to Store and
Forward. If the Log is already in Store and Forward, an additional Log Retry attempt
is added to the schedule, if the schedule has expired.
Clear Log: This command deletes all data from the Log. The Log will be inactive
once the delete completes. This action will also stop the Log Activity timer used to
restart Comm (i.e. S-Register 157)
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 11 -
December 9, 2010
CalAmp Proprietary & Confidential
PEG can provide feedback on the state of the User Messages it creates and receives. Keep in
mind that the report mode for User Messages is defined by the Message Disposition setting
for the Aux and Host ports. These are described in the LMU Users Guide.
The LMU offers the following Triggers for use with User Messages. They are as follows:
Message Sent: A User Message with a User Message Type matching the value of
the Action Modifier was sent through the LMU to the Inbound Server.
Message Acknowledged: A User Message with a User Message Type matching the
Action Modifier was acknowledged by the Inbound Server. This Trigger is only valid
for messages sent with the Store and Forward service.
Message Send Failure: A User Message with a User Message Type matching the
Action Modifier was not acknowledged by the Inbound Server and therefore
Logged. This Trigger will only occur once when the Log becomes active. The Log
must be emptied for it to occur again. This Trigger is only valid for message sent
with the Store and Forward service.
Any Message Received: This Trigger occurs when a User Message is sent from the
backend system to the LMU.
Message Generate: This trigger occurs when a User Message is created based on
input from the LMUs serial port. Using the Trigger Modifier, users can determine
which serial port generated the message (Host Port or Aux Port) and if it was passed
or blocked by the Message Filer.
The LMU also offers the ability to filter serial data to prevent or allow it to become a User
Message. The filter is control via a single PEG Action:
Message Filter: This action can set a filter on one of the LMUs serial ports (Host
or Aux port) to either allow or block serial data from becoming a User Message.
Based on the Action Modifier, the port can be set to either allow all data to become a
user message or it can block all data from becoming a user message.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 12 -
December 9, 2010
CalAmp Proprietary & Confidential
A buffer is an area of memory used for temporary storage of data when LMU needs an
uninterrupted flow of information. Specifically, the LMU offers 3 buffers for use within
PEG, a Host Port buffer and an Aux Port buffer used to collect serial data and a capture
buffer used to collect Capture Reports. In all three cases, the buffers can collect a
maximum of 848 bytes of data before needing to be cleared.
In the case of the serial port buffers, these are typically managed by the LMUs MDT mode
settings, however, the PEG Script can force the current contents of the buffer to be sent as a
User Message by using the Flush Message PEG Action. The Action Modifier dictates
which serial port buffer should be sent and emptied (Host Port or Aux Port)
The Capture Buffer allows the PEG Script to store and send what are known as Capture
Reports. A Capture Report contains a Time Stamp, a Latitude reading, a Longitude reading
and a list of 0 to 15 Accumulators. A Capture Report is created by using the Add Record
PEG Action. The Action Modifier defines which accumulators should be contained in the
Capture Report by setting the starting accumulator (0-15) and the number of accumulators
that should follow (0-15). For example, a capture report could contain Accumulators 4
through 9 by setting the Action Modifier to 68 (0x45). Users can also define the size of the
accumulators (4 bytes wide vs 2 bytes) by setting or clearing bit 7 of S-Register 171. If this
bit is set, then only the lower 2 bytes of the accumulator(s) shall be included in the capture
report.
The contents of the Capture Buffer (i.e. one or more Capture Reports) can be sent to the
LM Direct Server using the Flush Capture Buffer PEG Action. This Action creates an LM
Direct Application Message of Type 120 using the Send-Log transportation mechanism. The
Action Modifier is not defined and thus should be set to 0. Please refer to the LM Direct
Reference Guide for the format of the Capture Report Application message.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 13 -
December 9, 2010
CalAmp Proprietary & Confidential
There are a number of ways that the Inbound Address can change within the LMU. These
are described within the LMU Users Guide with one exception, the Select Comm Profile
PEG Action. This Action allows PEG to change the Inbound Address and the Connection
Settings (Modem Driver, Dial String, Username and Password) for the wireless modem. The
Action Modifier is split into two parts. The upper 8 bits (15-8) define the Connection
Settings, the lower 8 bits define the Inbound settings. The possible combinations are defined
below:
Connection Setting
Modem Driver S120
Dial String 0
Username 0
Password 0
Modem Driver S120
Dial String 0
Username 0
Password 0
Modem Driver S120
Dial String 0
Username 0
Password 0
Modem Driver S120
Dial String 0
Username 0
Password 0
Modem Driver S150
Dial String 1
Username 1
Password 1
Modem Driver S150
Dial String 1
Username 1
Password 1
Modem Driver S150
Dial String 1
Username 1
Password 1
Modem Driver S150
Dial String 1
Username 1
Password 1
Inbound Setting
Inbound Address 0
Inbound Port 0
Inbound URL 0
V1.1.9
Copyright CalAmp DataCom Inc 2010
Action Modifier
0
Inbound Address 1
Inbound Port 1
Inbound URL 1
Inbound Address 2
Inbound Port 2
Inbound Address 3
Inbound Port 3
Inbound Address 0
Inbound Port 0
Inbound URL 0
16
Inbound Address 1
Inbound Port 1
Inbound URL 1
17
Inbound Address 2
Inbound Port 2
18
Inbound Address 3
Inbound Port 3
19
- 14 -
December 9, 2010
CalAmp Proprietary & Confidential
Send TAIP Report: This Action creates the TAIP message(s) defined by the TAIP
Message Selection Parameter and send it/them to the TAIP Remote Address and
Port. The Action Modifier, like those for LM Direct messages define an Event Code.
Keep in mind that the Event Code will only appear if the TAIP Enables Parameter is
configured to include the Event Code.
Send SMS Report. This Action forces the LMU to create a text based Event report
and send it to the SMS Destination Address. The Action Modifier defines the
contents of the Event Code field in this message. Please note that this message is not
logged. The LMU will attempt a single retry if the network rejects the initial send
attempt.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 15 -
December 9, 2010
CalAmp Proprietary & Confidential
3.2 Accumulators
Accumulators are perhaps the most versatile variable within PEG. Their main purpose is to
allow a PEG Script to count things such as time, distance, and A/D readings. There are 16
PEG Accumulators and each are made up of two items, a value and a threshold. The index
of the value and thresholds are linked. That is, Accumulator value 0 is applied to threshold 0,
Accumulator value 1 is applied to threshold 1, etc The Accumulator values (Parameter ID
2560) are the current contents of the Accumulator, the threshold (Parameter ID 266) is used
to activate PEG Triggers and Conditions. In general the activations occur when the value
meets or exceeds the threshold. Accumulators are 4 byte values and can thus range from 0 to
4294967296. Accumulator values will always start from 0 unless explicitly set by an outside
application (i.e. something that sends AT Commands or Parameter Messages).
3.2.1 Accumulator Types
As mentioned, a PEG Accumulator can be used to count various things within the LMU.
The complete listing is as follows:
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 16 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 17 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 18 -
December 9, 2010
CalAmp Proprietary & Confidential
and 2 will be set, thus the value of the Accumulator will be 6. The Action Modifier
indicates which Accumulator to place the zone states in.
Start Speed Accumulation: This Action will sample the current speed value into
the Accumulator specified by the Action Modifier. Speed values are in cm/s and are
sampled based on the GPS update rate indicated by Bit 7 of S139.
Start Max A/D Reading Accumulation: This Action will record the maximum
voltage seen by an A/D until the Accumulator is explicitly stopped and/or cleared.
The value will be in mV. The Action Modifier is split into two parts, the upper four
bits define which A/D to use (0-3) and the lower four bits define which
Accumulator to use (0-15).
Start Position Accuracy Accumulation: This type of Accumulator will store the
GPS Position Accuracy Estimate as provided by the LMUs GPS Receiver. The
value will be in meters and is sampled based on the GPS update rate defined by bit 7
of S139.
Move PEG Flag States to Accumulator: This Action will place all 16 PEG flag
states into the Accumulator specified by the Action Modifier. If a bit is set, then the
corresponding PEG Flag is set. That is, if bit 0 is set, the PEG Flag 0 was set when
the move Action occurred.
Start Geo-Zone Accumulation: This Action will record the last the identification
of the last geo-zone crossed by the LMU. The Action Modifier defines which
Accumulator to use. The Accumulators value is split into 4 fields, bits 0-7 define the
Geo-Zone ID (0-255), bits 8 15 define the Super Ground ID (0-3), bits 16-23
define the Geo-Zone Type (1 = Point Zone, 2 = Polygon Zone), bits 24 31 define
the crossing type (1 = Zone Entry, 0 = Zone Exit). This Accumulator is updated
every time a Geo-Zone boundary is crossed unless the Accumulator is explicitly
stopped.
Start I/O State Accumulation: This Action will sample the current states of all the
Input and Output lines connected to the LMU. The Action Modifier defines which
Accumulator to use to place the I/O states in. It is updated every time an I/O state
changes. The Accumulator value is split so that bits 23-16 represent the output states
(ranging from output 7 to 0) and bits 7 0 represent the input states (inputs 7- 0). If
the bit is set, then the output is set or the input is high. If the bit is cleared then the
output is cleared and the input is low.
Start Maximum Acceleration Accumulation: This action will record the
maximum acceleration value seen by the LMUs GPS receiver. The value stored in
the accumulator will be in cm/s2.
Start Maximum Deceleration Accumulation: This action will record the
maximum deceleration value seen by the LMUs GPS receiver. The value stored in
the accumulator will be in cm/s2.
Start RSSI Accumulation: This action will sample the current signal strength
reading received from the LMUs wireless modem if available. The value recorded
will be in dBm and offset by a value of +200 dBm.
Start Cell Site ID Accumulation: This action will record the ID of the Cell Site
and Base Station the LMUs GSM modem is communicating with. The value is split
into two parts, the upper 16 bits contain the GSM Base Station ID and the lower 16
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 19 -
December 9, 2010
CalAmp Proprietary & Confidential
bits contain the GSM Cell Site ID. Please note that this action is not available for
CDMA and iDEN devices.
Start Temperature Accumulation: This action will sample the current temperature
reading received from the LMUs 1-Bit-Bus 3. For the LMU-2500 and LMU2600 the value recorded will have a 0.0625 C LSB. For the LMU-1100 and
LMU-1200, the accumulator value to temperature reading is as follows:
<TBD>
Start Speed History Accumulator: This action will place a historic speed value into
the specified accumulator. The historic speed value can be up to 15s old. The Action
Modifier defines both the age of the speed value (upper 4 bits) and which
accumulator to store the value in (lower 4 bits). For example, to store a speed value
that is 8s old in accumulator 12, you would use an Action Modifier of 140 (0x8C).
Once an Accumulator is started, PEG can react to the current value based on two
comparisons, the Accumulator is equal to or above its current threshold or its below its
current threshold. The above and below translate into two PEG Triggers and three PEG
Conditions.
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 21 -
December 9, 2010
CalAmp Proprietary & Confidential
In some cases, it is useful to be able to combine accumulators, for example, you may wish to
compute the average trip distance of an LMU. In one accumulator you would keep track of
the distance travelled by the vehicle for a given day. In the next accumulator, you would
keep track of the number of trips (in this example, this could be the number of times the
ignition is turned on and off for a given day). To get the average distance, you would divide
the first accumulator by the second.
To support this sort of operation, the LMU supports the Accumulator Divide action. This
action allows the PEG Programmer to divide one accumulator by the next accumulator and
store the result in a third accumulator. The Action Modifier for this accumulator defines the
Dividend and the Quotient. The Dividend is stored in the lower 4 bits of the Action
Modifier and the Quotient is stored in the upper 4 bits. The Divisor is stored in the n+1
accumulator, where n is the Dividends accumulator.
For example, to divide accumulator 14 by accumulator 15 and store the result in accumulator
1 you would use an Action Modifier of 30. (Quotient = Accumulator 1 (0x1), Dividend =
Accumulator 14 (0xE) . Action Modifier = 0x1E = 30.)
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 22 -
December 9, 2010
CalAmp Proprietary & Confidential
Bit 9 13 Value
0
4
1
5
2
6
7
Not Available
3
16
17
18
19
20
21
22
23
Parameter Value
128
2176
640
2688
1152
3200
3712
Not Available
1664
8320
8832
9344
9856
10368
10880
11392
11904
The other bits in this Parameter only apply to the older LM eXchange interface. Please refer
to the LM eXchange documentation or the Parameter Appendix found in the LMU User
Guide for details.
Parameter 772 also has a Mask Value. The Mask must be set to at least bits 7 and 9-13 are
changed.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 23 -
December 9, 2010
CalAmp Proprietary & Confidential
3.3 Timers
Timers are a little like Accumulators in that they have a value and a threshold and that they
are counting time (in seconds). The similarities, however, end there. The PEG Timers are
count-down timers, that is, they start at their threshold and go to 0. The associated PEG
Trigger (Timer Timeout) is fired when the value reaches 0. Unlike the Accumulators, only
the threshold (Parameter 256) of a timer can be set. The only way to affect the value is via
PEG Actions. Most LMUs support 16 PEG Timers (Timer 0-Timer 15), though the
LMU-4200 supports 32 (Timer 0 Timer 31)
3.3.1 Using Timers
Timers are generally used to control intervals within a PEG script, for instance do X 20s
after Y occurs, do Z every 300s or sleep for 24 hours. While it is possible to accomplish
most of what Timers do with an Accumulator, it is generally easier to use a Timer. The
following controls are available to a PEG Script:
Start/Restart Timer: This Action will start the Timer counting down from its
threshold. Once it reaches 0, the Timer Timeout PEG Trigger will occur and the
Timer will start counting down from its threshold again. The Action Modifier
indicates which Timer to start.
Stop/Pause Timer: This Action will stop a Timer at its current value. The Timer
must be restarted in some way in order for the Timer Timeout Trigger to occur. The
Action Modifier indicates which Timer to stop.
Start/Resume Timer: This Action will start the Timer from its last value. If the
Timer is already active, the Timer will continue to count down from its current value.
Once the Timers value reaches 0 the Timer Timeout Trigger will occur and the
Timer will restart counting down from its threshold. The Action Modifier indicates
which Timer to start.
Clear Timer: This Action will reset the value of a Timer to its threshold value. If the
Timer happens to be active when this command is issued, it will be reset to its
threshold value and resume counting down. The Action Modifier indicates which
Timer to clear.
One-shot Timer: This Action will start a Timer from its threshold. Once the value
reaches 0 the Timer Timeout PEG Trigger will occur and the Timer will be stopped.
The Action Modifier indicates which Timer to start.
Sleep (Timer): This Action will force the LMU to go to sleep. The Action Modifier
indicates which Timer to use for the sleep interval. If the referenced Timer has a
threshold of 0, the LMU will sleep indefinitely. The sleep duration may be
interrupted by input activity according to the input wake-up monitor (Parameter
1029).
Stop and Clear Timer: This Action stops the Timer referenced by the Action
Modifier and returns it to its threshold value.
Supporting the various Timer based PEG Actions are one Trigger and two Conditions.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 24 -
December 9, 2010
CalAmp Proprietary & Confidential
Timer-Timeout: This Trigger occurs when the value of a Timer reaches 0. The
Trigger Modifier indicates which Timer to monitor.
Timer Active: This Condition is true if the Timer referenced by the Condition
Modifier has been started.
Timer Inactive: This Condition is true if the Timer referenced by the Condition
Modifier has been stopped or has never been started.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 25 -
December 9, 2010
CalAmp Proprietary & Confidential
When a profile is started several things happen based on the threshold settings. First, the
Time Value begins to count down. This works much like a PEG Timer, that is, once the
Time reaches 0, the associated Trigger is activated. For distance, the LMU will effectively
build a circle around its starting position. If the LMU ventures outside that circle, the Trigger
is activated. It is very important to keep in mind that this isnt a measure of the distance
moved; an Accumulator must be used for that. The Distance Threshold is better thought of
as an instantaneous zone rather than a true measure of distance. Lastly, if the LMUs
direction changes by more than the Heading Threshold, a Trigger is fired. The really
interesting part, is that when any one of the thresholds are crossed, all three values (Time,
Distance and Heading) get reset. Basically the Time-Distance profile indicates which change
happened first.
Of course in some cases, it may be possible to produce an excessive number of Trigger. A
good example of this would be a 10 degree Heading Threshold while the LMU is stationary
(the heading reading is meaningless when a GPS receiver isnt moving as it can drift). In
order to combat this, the Minimum Time Interval comes into play. Its a blocking window
that says the LMU must wait at least the Minimum Time after one Time-Distance profile
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 26 -
December 9, 2010
CalAmp Proprietary & Confidential
Time-Distance Update: This Trigger occurs when the Time value expires, the
Distance Threshold is crossed or the Heading Value changes by the appropriate
number of degrees. Again, all three (or four if a Minimum Time Interval is defined)
thresholds are reset when this Trigger occurs.
Time Elapsed: This Trigger is fired when the time portion of the Time Distance
profile causes the time-distance update Trigger. It is fired immediately before the
Time-Distance update.
Distance Traveled: This Trigger occurs when the LMU moves past the Distance
Threshold to fire the Time-Distance update. Like the Time Elapsed Trigger, it will
be fired before the Time-Distance update.
Heading Change: This Trigger occurs when the LMUs direction changes by more
than the Heading Threshold. Again, it is fired before the Time-Distance update.
The Conditions available for the Time-Distance profiles are similar to those for the Timers.
That is, a Time-Distance profile can either be active or inactive.
Time Distance Profile Active: If the profile referenced by the Condition Modifier
is the active profile, then this Condition is true. If the profile has been stopped, then
this Condition is false.
Time Distance Profile Inactive: If the profile referenced by the Condition
Modifier is the active profile, then this Condition is false. If the profile has been
stopped, then this Condition is true.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 27 -
December 9, 2010
CalAmp Proprietary & Confidential
Speed Above: This Trigger occurs when the speed reported by the LMUs GPS
receiver is equal to or above the Speed Threshold indicated by the Trigger Modifier.
Speed Below: This Trigger occurs when the speed reported by the LMUs GPS
receiver drops below the Speed Threshold indicated by the Trigger Modifier. It
should be noted that this is the default state of the LMU. That is the LMUs speed
must go above a Threshold before a below Trigger can occur.
Moving: This Trigger occurs when the LMUs speed is equal to or above the value
in the Moving Speed Threshold Parameter.
Not Moving: This Trigger occurs when the LMUs speed is below the value in the
Moving Speed Threshold Parameter.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 28 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 29 -
December 9, 2010
CalAmp Proprietary & Confidential
- 30 -
December 9, 2010
CalAmp Proprietary & Confidential
- 31 -
December 9, 2010
CalAmp Proprietary & Confidential
3.9 Inputs
The LMU supports three types of inputs, discreet, Analog to Digital (A/D) and a 1Bit Bus 4.
Discreet inputs register high (V+) and low (ground) transitions, where the analog to digital
inputs measure voltage readings (~0-32V range). A typical use of a discreet input is detecting
when the vehicles ignition has turned on or off. A typical use of an A/D input is measuring
the vehicles battery voltage. Through use of peripherals, the LMU supports up to 8 discreet
inputs (inputs 0-7) and 5 analog to digital (A/D 0-4) inputs. Its important to remember that
discreet input 0 is also the Ignition input and that A/D 0 is always reading the LMUs supply
voltage.
For details on and examples of how the Inputs can be connected, please refer to the LMU
Users Guide.
3.9.1 Using Discreet Inputs
Discreet inputs are monitored for high to low or low to high transitions. PEG provides 6
Triggers, 5 Conditions and 1 Action that can be used to accomplish this monitoring. The
available Triggers are:
Input High: This Trigger will occur when the input referenced by the Trigger
Modifier transitions from the low to high state.
Input Low: This Trigger will occur when the input referenced by the Trigger
Modifier transitions from the high to low state.
Ignition On: This Trigger will occur when the Ignition input (Input 0) transitions
from the low to high state.
Ignition Off: This Trigger will occur when the Ignition input (Input 0) transitions
from the high to low state.
Input Transition: This Trigger occurs when the input referenced by the Trigger
Modifier transitions to either the high or low state.
Input Equate: Unlike the other Triggers, Input Equate monitors the state of 7 of
the inputs, specifically input 1 thru input 7 (i.e. ignition is ignored). The Trigger
- 32 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 33 -
December 9, 2010
CalAmp Proprietary & Confidential
Input High: This Condition is true when the input referenced by the Condition
Modifier is in the high state.
Input Low: This Condition is true when the input referenced by the Condition
Modifier is in the low state.
Ignition On: This Condition is true when the Ignition (input 0) is in the high state.
Ignition Off: This Condition is true when the Ignition (input 0) is in the low state.
Input Compare: This Condition works much like the Input Equate Trigger in that it
monitors the state of 7 of the inputs, specifically input 1 thru input 7 (i.e. ignition is
ignored). The Condition Modifier is bit mapped, matching a single bit to an input.
Each bit is meant to indicate the state of the input, that is, when the bit is set, the
input is meant to be high, when the bit is cleared, the input is meant to be low. This
Condition is true when state of all 7 inputs match the state defined by the Condition
Modifier.
Lastly, the state of the inputs can be sampled into an Accumulator using the Start I/O State
Accumulation Action. This Action will sample the states of all the inputs (and outputs)
connected to the LMU once per second. A value representing the input (and output) states
will be placed in the Accumulator referenced by the Action Modifier (0-15). The
Accumulators value will be bit mapped to represent each input with bit 0 corresponding to
input 0 and bit 7 corresponding to input 7. If the bit is set, then the associated input was in
the high state when the sample occurred, if the bit is cleared, then the inputs was in the low
state. Using a similar bit map style, bits 16-23 indicate the state of the LMUs outputs. Please
refer to the output section below for further details.
3.9.2 Using Input Debounce and Delay
The Discrete Inputs of the LMU have two unique characteristics in that the Triggers can be
delayed and a debounce window can be applied.
The delay operations are split into two Parameters, a Input High Delay Timer (Parameter
271) and a Input Low Delay Timer (Parameter 272). Each of these parameters is defined in
seconds. They are fairly straightforward in that they delay either the Input High or Input
Low Triggers by the specified amount of time. If during the delay period the Input
transitions back to its previous state the Delay timer would be stopped and the Trigger
would not occur. For example, if we have defined an Input High Delay of 30s for the
Ignition (i.e. Input 0), once the LMUs Ignition is turned on, the 30s count begins. At the
end of 30s, if the LMUs Ignition is still on, then the Ignition On and Input High (0)
Triggers occur. If the LMUs Ignition is turned off before the 30s expires, then the delay
timer is stopped and neither Trigger is fired. Put another way, this setup means that the
LMUs Ignition must be on for at least 30s for the Triggers to occur.
The Input Debounce Timers (Parameter 270) are a little less straight forward than the Delay
Timers. A Debounce effectively dictates how often a transition can occur. That is, one
transition must settle for at least the Debounce Time before the next Trigger can occur. For
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 34 -
December 9, 2010
CalAmp Proprietary & Confidential
A.
B.
C.
D.
E.
F.
G.
H.
I.
J.
K.
Input Transitions High: Input High Trigger is fired and debounce timer is started
Debounce Timer Expires
Input Transitions Low: Input Low Trigger is fired and debounce timer is started
Input Transitions High: Debounce Timer is re-started. No Triggers are fired
Input Transitions Low: Debounce Timer is re-started. No Triggers are fired
Debounce timer expires. No Triggers are fired (i.e. input is still low)
Input Transitions High: Input High Trigger is fired and debounce timer is started.
Input Transitions Low: Debounce Timer is re-started. No Triggers are fired
Input Transitions High: Debounce Timer is re-started. No Triggers are fired
Input Transitions Low: Debounce Timer is re-started. No Triggers are fired
Debounce timer expires and Input Low Trigger is fired.
For example to sample the value of A/D 4 into Accumulator 15 the Action Modifier would
be 79 (0x4F).
For the most part, PEG relies on the Accumulator Conditions and Triggers to manage A/D
readings; however, there are two Triggers specific to the A/D Thresholds.
A/D Above: This Trigger occurs when the reading of A/D 0 is equal to or greater
than the value of the A/D Threshold referenced by the Trigger Modifier.
A/D Below: This Trigger occurs when the reading of A/D 0 is less than the value
of the A/D Threshold referenced by the Trigger Modifier.
Only the LMU-4200, 4100, 2600 and LMU-2500 support the A/D Threshold
features. The other LMUs must use the Accumulator based A/D functionality.
Again bit 0 of S140 must be cleared, otherwise the 38.5 mV scaling is applied.
The setting of Bit 0 of S140 applies here too.
V1.1.9
- 36 Copyright CalAmp DataCom Inc 2010
6
7
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 37 -
December 9, 2010
CalAmp Proprietary & Confidential
3.10 Outputs
The outputs allow the LMU to interact with other devices or provide feedback to a
driver/operator. This is typically accomplished with the use of relays or LEDs. The outputs
are a path to ground, therefore setting the output will establish a ground path. Clearing will
open circuit the path. Using peripherals (eg the ioPod), the LMU supports 8 outputs (output
0-7). For details on and examples of how the Outputs can be connected, please refer to the
LMU Users Guide.
To control the LMUs outputs, PEG offers the following Actions:
Set Output: This Action will set the output referenced by the Action Modifier (0-7).
Clear Output: This Action will clear the output referenced by the Action Modifier
(0-7)
One-Shot Output: This Action will set the output referenced by the Action
Modifier (0-7) for 1s. The output will then be cleared.
Blink Output (1 Hz): This Action will cause the output referenced by the Action
Modifier to blink at a 1 Hz rate. That is, it will alternate between being set for 1
second, and then cleared for 1 second.
Blink Output (4 Hz): This Action will cause the output referenced by the Action
Modifier to blink at a 4 Hz rate. That is, it will alternate between being set for of a
second, and then cleared for of a second.
Multi-Pulse Output: This Action will send n 0.5s pulses to the output referenced
by the Action Modifier. n is also defined by the Action Modifier. The lower 4 bits
of the Action Modifier define n, the upper 4 bits define the desired output. For
example to blink output 6 8 times you would use an Action Modifier of 104 (0x68)
As mentioned, PEG does provide one Action to monitor the state of the outputs, namely
the Start I/O State Accumulation Action. This Action will sample the states of all the
outputs controlled by the LMU once per second. A value representing these output states
will be placed in an Accumulator as referenced by the Action Modifier. The Accumulators
value will be bit mapped to represent each output with bit 16 corresponding to output 0 and
bit 23 corresponding to output 7. If the bit is set, then the associated output was also set
when the sample occurred, if the bit is cleared, then the output was cleared. Keep in mind
that the input states are also sampled with this Action, occupying bits 0-7.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 38 -
December 9, 2010
CalAmp Proprietary & Confidential
Vehicle Bus Action: This Action allows the script to either Reset the jPOD or
Hold the jPOD in reset based on the Action Modifier.
Start Vehicle Bus Command: This PEG Action will force the jPOD to execute its
script starting with the Command Line specified by the Action Modifier.
For more information on using the jPOD / Vehicle Bus interface please refer to the jPOD
User Manual.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 39 -
December 9, 2010
CalAmp Proprietary & Confidential
- 40 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 41 -
December 9, 2010
CalAmp Proprietary & Confidential
PEG zones are used to detect when a vehicle enters or leaves a specific area. To support
this, PEG has 4 Zone Triggers 2 Zone Conditions and 4 Zone Actions.
The Triggers used for Zones are:
Zone Entry: This Trigger occurs when the vehicle enters into a specific PEG Zone.
The Zone is specified by the Trigger Modifier (i.e. zone 0 -31).
Zone Exit: This Trigger occurs when the vehicle leaves a specific PEG Zone.
Again, the Zone is specified by the associated Trigger Modifier (i.e. zone 0 -31).
Any Zone Entry: This Trigger occurs when the vehicles enters any of the defined
Zones. Note that if the vehicle enters multiple Zones at the same time an Any Zone
Entry Trigger will be fired for each Zone
Any Zone Exit: This Trigger occurs when the vehicle leaves any one of the PEG
Zones.
Zone State: This Condition is used to test if the LMU is inside or outside a specific
Zone. The Condition Modifier defines what state to test (Inside or Outside) and
what Zone to test against. Bits 0 thru 6 dictate which Zone to monitor (0-31). Bit 7
of the Condition Modifier indicates the desired Zone State. If Bit 7 is set, then the
Condition is true of the LMU is Outside the Zone. If Bit 7 is cleared, then the
Condition is true if the LMU is Inside the Zone.
Zone Enabled: This Condition is true if the Zone specified by the Condition
Modifier is enabled. It is false if the Zone is disabled. The Condition Modifier ranges
from 0-31.
Move Zone States to Accumulator: This Action allows a PEG script to report the
current state of all 32 PEG Zones via an Accumulator. If the LMU is inside a PEG
Zone, the corresponding bit is set. That is, if the LMU is in Zone 1 and 2 then bits 1
and 2 will be set, thus the value of the Accumulator will be 6. The Action Modifier
indicates which Accumulator to place the zone states in.
Set Zone: This Action will set the center latitude and center longitude value of the
PEG zone indicated by the Trigger Modifier to the current position of the LMU.
Disable Zone: Zones, by default are enabled. When a zone is disabled it no longer
produces Zone Entry or Exit Triggers. This is the same effect as defining a 0m East
and North distance in the Parameter. The Action Modifier defines which zone (0-31)
to disable.
Enable Zone: This Action will re-enable a disabled zone. When a disabled zone is
re-enabled an immediate Zone Entry or Zone Exit Trigger should occur. The Action
Modifier defines which zone (0-31) to enable.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 42 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 43 -
December 9, 2010
CalAmp Proprietary & Confidential
As mentioned there are two supported types of Geo-Zones, a Point zone which has a Type
value of 1 and a Polygon zone, which has a type value of 2.
Each Geo-Zone within the LMU is made up of one or more Records. The Records are
further sub-divided into 6 pieces:
Zone Type: A Type of 1 indicates the Record is a a Point Zone and Type of 2
indicates the Record is part of a Polygon Zone.
Super Group: The Super Group is one of two values used to identify a Geo-Zone.
Super Group values may range from 0-3.
Group ID: Group IDs sit under Super Groups and together uniquely identify a
Geo-Zone. There may be up to 256 Groups within a Super Group. Group values
may range from 0 255.
Latitude: The latitude value of either the center of the Point Zone or the location of
the Polygon Zones vertex.
Longitude: The longitude value of either the center of the Point Zone or the
location of the Polygon Zones vertex.
Range: The range is only used for Point Zones and defines the radius of the Point
Zone.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 44 -
December 9, 2010
CalAmp Proprietary & Confidential
Programming Geo-Zones is not like programming the other settings within PEG since the
Geo-Zone record is not a Parameter. Geo-Zones are actually stored in the LMUs onboard
flash memory, so some unique steps must be taken to program things correctly.
First the order in which the Records are programmed is very important, especially for
Polygon Zones. Records must be listed in either clock-wise or counter-clockwise order as
you travel around the perimeter of the polygon. The first record 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.
Point Zones, since they are stand-alone entities may appear in any order and in any
combination.
Keep in mind that Point Zones and Polygon Zone definitions must be kept separate from
each other. That is, a Point Zone Record must not appear within a list of Records defining a
Polygon Zone.
The LMU-4100 can store up to 5400 Geo-Zone Records (i.e. 5400 points or vertices over
multiple Geo-Zones) and the LMU-4200 can store up to <TBD> Geo-Zone Records.
Geo-Zones can be programmed in to the LMU in one of two ways, either by an AT
Command, or via a series of LM Direct messages. The LM Direct method is described in the
LM Direct Reference Guide. The AT Command method is described here.
The first step in programming Geo-Zones is to clear out any previous definitions. This is
done with the AT Command AT$APP GZ ERASE. From there each point must be
individually programmed. This is done via the AT$APP GZ WRITE AT Command The
GZ write command takes 6 fields.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 45 -
December 9, 2010
CalAmp Proprietary & Confidential
Record Index: 0-5399. This is the Records positioning in flash memory. It is good
practice to write records in record index order (i.e. write record index 0, followed by
1 then 2, etc)
Type: The Type value is split into two parts, one that defines the Geo-Zone type,
the other defines the Super Group.
Bits 4 7 = Super Group (0-3)
Bits 0 3 = Type (1, 2)
Group ID: 0-255. This is the Geo-Zones ID value.
Range: (0-65535). The range value is only used for Point Zones and defines the
radius of the Point Zones circle in meters.
Latitude: Defines the latitude of the Geo-Zone record
Longitude: Defines the longitude of the Geo-Zone record
As an example, the following command would be used to program a Point Zone into the 0th
index with a center point on the Alamo with a 1 mile radius. This zone will be in super
group 3 and have a Group ID of 12.
AT$APP GZ WRITE 0 49 12 1619 29.425720 -98.485041
AT$APP GZ WRITE <record index> <super group and type>
<group id> <latitude> <longitude>
Geo-Zones are processed in Record Index order.
Geo-Zone Entry: This Trigger occurs when the vehicle enters into a specific Geo
Zone. The ID of the Geo-Zone must match the value in the Trigger Modifier. Please
note that this Trigger is not filtered on Super Group. This means that 4 different
zones can produce this Trigger. (i.e. zone ID X Super Group 0, 1, 2 and 3)
Geo-Zone Exit: This Trigger occurs when the vehicle leaves a specific Geo Zone.
The ID of the Geo-Zone must match the value in the Trigger Modifier. Please note
that this Trigger is not filtered on Super Group. This means that 4 different zones
can produce this Trigger. (i.e. zone ID X Super Group 0, 1, 2 and 3)
Any Geo-Zone Entry: This Trigger occurs when the vehicles enters any of the
defined geo-zones. Note that if the vehicle enters multiple geo-zones at the same
time then the same number of Any Geo Zone Entry Triggers will be fired.
Any Zone Exit: This Trigger occurs when the vehicles exits any of the defined geozones. Note that if the vehicle leaves multiple geo-zones at the same time then the
same number of Any Geo Zone Entry Triggers will be fired.
As noted above, the Geo-Zone Entry and Exit Events cannot be filtered by Super Group.
To accomplish this, the PEG Event must also contain the Super Group Condition. This
Condition will only be true if the Super Group value of the Geo-Zone crossed matches the
value in the Condition Modifier.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 46 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 47 -
December 9, 2010
CalAmp Proprietary & Confidential
Bit 4 State
Set
Cleared
Set
Cleared
Path
SMS Inbound
Aux Port 8
Modem Port
Host Port
Lastly, the message selection is handled by bits 0 thru 3. The values of these bits indicate
which index to pull the message from (index 0-15 for short messages and index 0-7 for long
messages).
As an example, if we want to send long text message 6 to the Aux Port including the CR
character, the Action Modifier would be 182 (0xB6 => 1 0 11 0110)
Additional formatting can be applied to the text messages by use of the Set Text Attributes
Action. There are 4 additional formatting options available. Each option is enabled or
disabled by clearing a specific bit in the Action Modifier. The bit mappings are as follows:
In order to use the Aux Port, the ioPod must be attached.
V1.1.9
Copyright CalAmp DataCom Inc 2010
8
- 48 -
December 9, 2010
CalAmp Proprietary & Confidential
COM:
o <rssi> The RSSI of the wireless modem. IF the value is -113 then it is likely
the LMU is unable to communicate with the wireless device.
o [units IP address (if valid connection)]: This field will contain the IP
address assigned to the LMU by the wireless network.
GPS:
o [Antenna <Short/Open/Off>] | [No Time Sync] | [<FixStatus> <Sat
Count>]: This field contains the state of the GPS receiver and its contents
will change based on that state. If there is a problem with the GPS receivers
antenna then you will get the [Antenna <Short/Open/Off>] field. Short
indicates the antennas cable has been crushed, Open indicates that the
antenna is not connected and Off indicates the GPS receiver is off. If [No
Time Sync] appears, then the antenna is okay, but the GPS receiver has not
found any usable GPS signals. Lastly, if you get the [<FixStatus> <Sat
Count>] field, it indicates that the GPS has or had a good fix (2D or 3D)
and how many satellites it used.
INP:
o <inputs states (binary,MSBit first)>: This field contains the states of all
the available inputs on the LMU. The first 1 or 0 value indicates input 7
where the last indicates the ignition (input 0). If the value is a 1 then the
input is high, if it is 0 the input is low.
o <vehicle voltage>: This field reports the voltage seen by the LMUs internal
A/D input. The value is in mV
MID:
o <mobile ID>: This field should contain the Mobile ID currently being used
by the LMU
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 49 -
December 9, 2010
CalAmp Proprietary & Confidential
o <mobile ID type>: This field indicates the type of Mobile ID being used.
This can be OFF, ESN, IMEI, IMSI, MIN or USER
INB
o <inbound IP address>:<inbound port>: This field contains the inbound
IP address and port currently being used by the LMU.
o <Inbound Protocol (LMD/LMX)>: This field indicates which protocol is
being used for inbound messages, either LM Direct (LMD) or LM eXchange
(LMX).
PEG can force the LMU to create Status Message using the Send Text Status Message
Action. Like the Send Short Text Message and Send Long Text Message Actions, the status
message can be sent to any of the available paths. Again, the Action Modifier defines which
path and formatting to use. The formatting section uses bits 6 and 7. If bit 7 is set, then a
Carriage Return character is appended to the end of the text message. If bit 6 is set, then a
Line Feed character is appended to the end of the text message. The path section uses bits 4
and 5. Lastly, bits 0 thru 3 are used for a Text Status Type field. This is a user defined field
which, for instance, could indicate why the message was created. This value can range from
0-15. The Set Text Attributes Action does not apply to this Action.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 50 -
December 9, 2010
CalAmp Proprietary & Confidential
<Param>: This is the Action Modifier for the Display Position Action.
<gps_time_of_fix>: This is the time reported by the GPS receiver in seconds since
00:00:00 of Jan 1 1980.
<latitude>,<longitude>: The latitude and longitude reported by the GPS receiver
in decimal degrees. These values are scaled by 107.
<heading>: The heading reported by the GPS receiver in degrees from true North.
<speed>: The speed of the LMU in Miles Per Hour.
<HDOP>: The Horizontal Dilution of Precision reported by the GPS receiver.
This value is unitless and is scaled by 100.
<number of satellites>: The number of satellites used by the GPS receiver to
produce the fix.
<fix status>: The fix status of the LMU, where fix status is described by:
Bit 0 Predicted
Bit 1 Differentially Corrected
Bit 2 Last Known
Bit 3 Invalid Fix
Bit 4 2D Fix
Bit 5 Historic
Bit 6 Invalid Time
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 51 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 52 -
December 9, 2010
CalAmp Proprietary & Confidential
The LMU supports 3 canned messages for the DADS A1214. They are selected based on
the Action Modifier of the Send Serial Message Action. The supported messages are:
Action Modifier = 127 (Set Date Message)
Action Modifier = 126 (Set Time Message)
Action Modifier = 125 (VMS Set Message)
The LMU also supports playback of pre-recorded announcements from the DADS-A1214.
For this operation, the Action Modifier is split into two parts, which message to play (as
defined by bits 0-6) and which channel to use, Channel 1 or 2 (as defined by Bit 7).
Bit 7: If Bit 7 is set, then Channel 2 is used. If Bit 7 is cleared then Channel 1 is used
Bits 0-6: Announcement message.
For example to play message 6 on channel 2 you would use an Action Modifier of 134
(0x86)
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 53 -
December 9, 2010
CalAmp Proprietary & Confidential
At present, the LMU only supports 3 messages for the Garmin NUVI. They are selected
based on the Action Modifier of the Send Serial Message Action. The supported messages
are:
Action Modifier = 127 (Enable Garmin NUVI Fleet Mode)
Action Modifier = 126 (Request Garmin NUVI ID Message)
Action Modifier = 125 (Turn NUVI Off)
It is important to remember that any responses or messages created by the NUVI are sent
thru the LMU as User Messages.
At this point in time, the Garmin NUVI is only supported on the LMUs Host Port.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 54 -
December 9, 2010
CalAmp Proprietary & Confidential
Set Flag: This Action will set the PEG Flag (0-15) indicated by the Action Modifier
to true.
Clear Flag: This Action will set the PEG Flag (0-15) indicated by the Action
Modifier to false.
Move PEG Flags to Accumulator: This Action will map all 16 PEG Flags to the
lower 16 bits of the Accumulator (0-15) specified by the Action Modifier.
In addition to the Actions, PEG also supports 3 Conditions to allow a script to react to Flag
States.
Flag Set: This Condition is true when the flag (0-15) indicated by the Condition
Modifier is also true.
Flag Cleared: This Condition is false when the flag (0-15) indicated by the
Condition Modifier is false.
PEG Flag Compare: This Condition will be true if the states of the lower 8 flags
match the states described by the Condition Modifier. The Condition Modifier is bitmapped, matching a bit with a flag. If the bit is set, then the corresponding flag
should be in the true state, if the bit is false then the flag should be in the false state.
The bit-mapping is as follows:
Bit 0 = Flag 0
Bit 1 = Flag 1
Bit 7 = Flag 7
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 55 -
December 9, 2010
CalAmp Proprietary & Confidential
User Flag: This Condition is true when the value of the Condition Modifier
describes the states of the User Flags. The Condition Modifier is broken into two
parts, a mask, which indicates the bits to monitor, and a value, which indicates the
state of the bits. The upper 4 bits are the mask and the lower 4 bits are the value. For
example, say the script needs to know if user flags 3 and 1 are true and 2 and 0 are
false. The Condition Modifier would be 250 (0xFA = 1111 1010 with F representing
the Mask and 1010 the states of the User Flags)
The User Flag Update Unit Request message 9 can be used to force a Special Trigger. The
Trigger Modifier will match the value of the Special Trigger Number field of the Unit
Request message.
3.16.2 Using PEG Enables
PEG Enables were created to extend the number of optional features a PEG script could
support. There are 32 PEG Enable flags in total, and, like the User Flags are mapped into
the value of Parameter 1037. PEG Enable flag 0 maps to Bit 0, flag 1 maps to bit 1 up to
PEG Enable Flag 31 maps to bit 31. The states of the PEG Enable flags are controlled by
changing the value of Parameter 1037.
Again like User Flags, PEG supports a single Condition to use with PEG Enables:
PEG Enables: This Condition is true if the PEG Enable Flag indicated by the
Condition Modifier (0-31) is also true.
- 56 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 57 -
December 9, 2010
CalAmp Proprietary & Confidential
- 58 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 59 -
December 9, 2010
CalAmp Proprietary & Confidential
3.19 GPS
In addition to traditional knowledge like time and distance, PEG also provides information
about the state of the GPS receiver. That is, PEG knows if the GPS receiver has a valid
time, if it is producing a valid position and can give an estimate on the accuracy of the
position.
3.19.1 Using GPS
PEG offers two Triggers, four Conditions and three Actions that work with the GPS
receiver.
There are four GPS notification Triggerss:
GPS Acquired: This Trigger occurs when the GPS receiver produces a valid GPS
position. It occurs once after initial acquisition and once after a GPS loss.
GPS Lost: This Trigger occurs when the GPS receiver stops producing a valid GPS
fix for the amount of time set in the GPS Lost Timeout Parameter (ID = 1027). This
is typically 60s.
GPS Fix Quality Met: This Trigger occurs when the GPS receiver first produces a
fix that meets or exceeds the GPS quality requirements specified by S-Register 174.
GPS Fix Quality Lost: This Trigger is fired when the fix provided by the GPS
receiver no longer meets the GPS quality requirements specified by S-Register 174.
Please note that this trigger will only occur if the GPS fix quality has first been met.
- 60 -
December 9, 2010
CalAmp Proprietary & Confidential
It is possible for the LMU to request a time sync when GPS time is not available. This
request can be made either to its Inbound Server or its Maintenance Server (PULS). The
LMU provides a single PEG Action, Request Time Sync. This action will send an LM
Direct Time Sync Application Message (Application Message Type 50) to the server
specified by the Action Modifier. An Action Modifier value of 1 will send an Acknowledged
request to the Inbound Server where a value of 0 will send an Unacknowledged request to
the Maintenance Server. The LMU will only update its time based on this request if the time
from the GPS receiver is invalid.
Note that the Server the request is made to must support a Time Sync response message
(LM Direct Application Message Type 50). Please with the servers administration that the
response message is supported.
The format and usage of Time Sync messages are described in the LM Direct Reference
Guide.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 61 -
December 9, 2010
CalAmp Proprietary & Confidential
3.20 Comm
Comm is short for Communications and relates to the state of the wireless modem/device
used by the LMU. As with the GPS receiver PEG offers a variety of Triggers, Conditions
and Actions that report on and affect the behavior of the LMUs wireless modem.
3.20.1 Comm Terminology
Before getting into the PEG related aspects of Comm, it is worth going over a number of
terms and concepts related to Comm. This section is not a review of wireless networking
technologies. Those can be found in the LMU Users Guide.
The LMU has several states in which the Wireless Modem can pass through. The PEG
Triggers and Conditions rely heavily on these states and it is important to understand how
they differ.
Network Available: In this state the wireless modem is on and is scanning for
service. It is the first state an LMU will enter.
Network Service Acquired: In this state, the LMU has found a wireless network.
Keep in mind, that this may be a voice network (eg GSM instead of GPRS).
Data Service Acquired: After finding a network, the LMU has also detected an
available data service. The LMU will attempt to connect to the data service.
Data Service Connected (Comm Connected): Assuming the connection is
successful the LMU will obtain an IP Address. Once that occurs, the LMU is in the
Connected state. Keep in mind that it is possible for the LMU to lose one of the
above states while connected.
Comm Available: Comm available indicates that the LMU is connected to a
wireless networks data service and most importantly, is ready to transmit. It is the
latter point that distinguishes this state from the Comm Connected state.
In addition to its own Comm states, the LMU supports a number of call states, though
much of it is technology dependant. First the LMU can detect two call types, data calls and
voice calls. Under normal circumstances, the LMU will always attempt to maintain a data
call. The LMU CANNOT place a voice call, though it can detect an incoming call. Within
the call types, there are 4 states the LMU supports. They are, Idle, Incoming, Calling and
Active. For a call placed by the LMU, it will go from the Idle state, to the Calling state, and,
if successful, to the Active state. Again, this only applies to data calls. For an incoming data
call (i.e. when the network has data for the LMU) the LMU will go from the Incoming state
to active state. Incoming voice calls will go from the Incoming state to the Idle state as the
LMU has no means to answer a voice call.
The other important concept to keep in mind is that of a Comm Profile. A Comm Profile
defines the dial string, network username, network password and inbound settings the LMU
will use. The dial string, network username and network password are all used by the
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 62 -
December 9, 2010
CalAmp Proprietary & Confidential
Comm Connect: This Action forces the LMU to re-initialize communications with
the wireless modem. It only applies if Comm is already disconnected. Please note
that the Action does not power cycle the modem12.
Comm Disconnect: This Action forces the modem to drop its data connection.
Comm will not be re-established until Comm is explicitly connected or the LMU is
reset.
Power Down Modem: This Action forces the modem to disconnect from the data
service and power down.
Power Up Modem: This Action will power the wireless modem on. If the modem
is already on, then it will be reset. The act of resetting the modem will cause the
modem to disconnect from its data service. The LMU will attempt to reconnect to
the data services after the modem has reset.
Select Comm Profile: This Action will select the Comm Profile for the LMU to
use. By default the LMU uses profile 0. The Action Modifier dictates which profile
to use. It is separated into two fields, the Comm settings and the Inbound field. The
Comm settings choose which modem, dial string, username and password to use.
The inbound field selects which inbound address, port and URL to use. The fields
are mapped as follows:
Bit 15 Bit 8 = Comm Settings
1 = Dial String 1, Username 1, Password 1 and Modem S150
0 = Dial String 0, Username 0, Password 0 and Modem S120
Bit 7 Bit 0 = Inbound Address
3 = Inbound Address 3
2 = Inbound Address 2
1 = Inbound Address 1 and Inbound URL 1
0 = Inbound Address 0 and Inbound URL 0
For instance, to select dial string 1 for use with inbound address 3, the Action
Modifier would be set to 19 (0x13)
Primarily, the LMU will post a Comm based Trigger on a state change. The available Trigger
points are:
Comm Acquired: This Trigger occurs when the LMU successfully establishes a data
session and is ready to transmit data. The LMU must transition to the Comm Lost
state before another Comm Acquired will occur.
This is LM Direct data. Any SMS reports are sent via to the SMS Destination address regardless of the
inbound settings.
12 Of course, if the LMU is unable to communicate with the wireless modem, the LMU will reset it.
V1.1.9
December 9, 2010
- 63 CalAmp Proprietary & Confidential
Copyright CalAmp DataCom Inc 2010
11
Comm Lost: This Trigger occurs when the LMU loses its data connection with the
wireless network and is unable to transmit.
Comm Shutdown: This Trigger occurs when the wireless modem is powered off.
Comm Connected: This Trigger occurs when the modem obtains an IP address
from the wireless network.
Comm State Change: This Trigger occurs when the LMU changes to/from any of
the defined Comm states described above.
Incoming Call: The Incoming Call Trigger occurs when the LMU receives a voice
call. This Trigger can be filtered by using the Caller ID String Parameter (2323). If a
filter is used, then the Trigger only occurs if the phone number of the incoming call
matches the value in the Caller ID String Parameter.
Call State Change: This Trigger occurs when the LMU changes call state (Idle,
Incoming, Calling, Active).The Trigger Modifier defines which state the LMU is
transitioning to.
0 = Call is Idle
1 = Incoming Call
2 = Calling
3 = Active
Note that the LMU only periodically queries the wireless modem for call states and
thus it is possible for the LMU to miss a transition. Call state change Triggers will
not be posted if that happens.
Network ID Change: This Trigger occurs when the LMU detects that it has
changed networks. For CDMA devices, this is when a new SID is detected. For
GSM devices, this is when a new MCC and MNC are detected. Please note that
carrier IDs of 0 are ignored.
- 64 -
December 9, 2010
CalAmp Proprietary & Confidential
Comm Select: This Condition is true if the LMU is currently using the Comm
Profile described by the Condition Modifier. The Condition Modifier is split into the
Comm Index and the Inbound Index.
Bit 7 4 = Comm Index (0-1)
Bit 3 0 = Inbound Index (0-3)
As an example, to see if Comm Index 0 and Inbound address 3 are in use you would
use a Condition Modifier of 19 (0x13)
Call Status: This Condition is true if the state of the wireless modem matches the
state described by the Condition Modifier.
Bit 4 7 = Mask
Bit 7 & 6 (both set) = Monitor Call Type
Bit 5 &4 (both set) = Monitor Call State
Bit 2 & 3 = Call Type
0 = voice
1 = data
Bit 0 & 1 = Call State
0 = idle
1 = incoming
2 = calling
3 = active
As an example, to monitor for an incoming voice call, the Condition Modifier would
be set to 241 (0xF1 = 1111 00 01)
Roaming: This Condition is true if the wireless modem indicates that it is roaming.
Be advised that roaming may mean different things according to the operator and
billing plan being used. In some cases it can mean that the device is using another
operators network, or that it is outside its home network (i.e. The LMU has a Dallas
number but is currently operating in San Diego but is on the same operators
network)
Comm On: This Condition is true if the LMUs wireless modem is powered on.
Dial Voice: This Action forces the LMU to dial a phone number. The Action
Modifier indicates what that phone number should be. Phone numbers are stored in
the Short Text Message Parameter (Parameter 2177) so the Action Modifier ranges
from 0-15.
Answer: This Action forces the LMU to answer an incoming voice call.
Hang-Up: This Action forces the LMU to disconnect from the active voice call. It
does not have an effect on the data session.
All LMUs support the detection of an incoming voice call. An incoming call is indicated by
the Incoming Call Trigger. While this Trigger does not have an associated Trigger Modifier,
it is controlled by a filter. If the incoming call matches the value in the Caller ID String
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 65 -
December 9, 2010
CalAmp Proprietary & Confidential
Sleep (Timer): This Action forces the LMU to Sleep for a specific period of time.
The Trigger Modifier for this Action will be a Timer Timeout Index (i.e. Parameter
265). If the referenced timer is 0, the LMU will go to Sleep indefinitely. It will only
wake-up on an input transition
Sleep Until Time of Day: This Action will force the LMU to Sleep until a particular
Time of Day. The Action Modifier references a Time-of-Day index (Parameter 267).
Please note that this Action does not make use of the Time of Days repeat value.
Application Restart: This PEG Action forces the LMU to shut down and restart.
The LMU will power back up a few moments after this Action is issued. The LMU
undergoes a similar process at the end of an Over-The-Air firmware download.
Hibernate: This PEG Action will force the LMU to go to sleep an only wake up
when certain inputs transition. The inputs the LMU will monitor are defined by the
The modem is turned off, the GPS receiver is turned off and the LMUs application is put in standby.
Nothing can happen while the LMU is sleeping.
V1.1.9
December 9, 2010
- 66 CalAmp Proprietary & Confidential
Copyright CalAmp DataCom Inc 2010
13
Power Up: This Trigger occurs when the LMU is initially powered up. This is also
known as a cold start.
Wake Up: This Trigger occurs when the LMU wakes from a Sleep cycle.
Power Up or Wake Up: This Trigger occurs when the LMU either wakes from
Sleep or is cold started.
Wake Up on Input: This Trigger occurs when the LMU wakes up due to an input
transition. This Trigger does not indicate which input caused the wake up.
Wake Up on Timer: This Trigger occurs when the LMU wakes due to a timer
expiration (i.e. it is coupled to the Sleep (Timer) Action). It does not provide any
indication of which timer caused the wake up.
The LMU offers a single Condition in relation to power management, namely the Boot
Reason Condition. This Condition is true if the last power up was due to the reason
indicated by the Condition Modifier. The supported reasons are:
0 = Cold Boot / Normal Power Up
1 = Power On - Factory Boot
2 = Reset due to OTA Download Complete
3 = Reset due to Radio Power Up
4 = Wake Due to I/O activity
5 = Wake due to Timer
6 = Wake due to an incoming SMS message
7 = Wake due to Application Restart PEG Action or AT Command (ie AT$APP
QUIT)
Users should be aware that the state of each Input is captured when the LMU goes to sleep
so that after wake up a corresponding Input Trigger will be fired if the input is no longer
present or has changed state.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 67 -
December 9, 2010
CalAmp Proprietary & Confidential
Serial Port Power Control: This PEG Action allows the PEG Script to turn power
on or off to one or more of the LMUs serial interfaces. This controllable interfaces
are:
o Bit 0: Aux Port 1 (LMU-4200)
o Bit 1: Aux Port 2 (LMU-4200)
o Bit 2: Expansion Port (LMU4100, LMU-4200)
o Bit 3: Daughterboard Power (LMU-4200)
The lower 4 bits of the Action Modifier define the on or off state of a given port. If
the Bit is set, then power to that port should be turned on, if the Bit is cleared, then
power should be turned off.
The upper 4 bytes define a Mask indicating to the LMU which ports to control. If the
bit is set, then the power state will change based on the values of Bits0-3, if the bit is
cleared, then no action to that port will be taken.
o Bit 4: Change power state of Aux Port 1 (LMU-4200)
o Bit 5: Change power state of Aux Port 2 (LMU-4200)
o Bit 6: Change power state of Expansion Port (LMU4100, LMU-4200)
o Bit 7: Change power state of Daughterboard Power (LMU-4200)
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 68 -
December 9, 2010
CalAmp Proprietary & Confidential
3.22 SMS
In addition to being able to send data via SMS (i.e. Event reports and text messages), the
LMU can react to incoming SMS messages. Specifically the LMU knows when it receives an
SMS Request (i.e. a !R<x> message) or an empty SMS message. PEG supports the following
two Triggers.
SMS Request Received: This Trigger will occur when the LMU receives one of
the known SMS Request messages. The Trigger Modifier defines which Request
message to look for. The valid range is from 0 9.
NULL SMS Message Received: This Trigger occurs when the LMU receives an
empty SMS message (i.e. no contents in the body). The Trigger Modifier is not used
and should be set to 0. Please note that some operators block null SMS messages.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 69 -
December 9, 2010
CalAmp Proprietary & Confidential
Moving/Not Moving
Log Active/In Active
Comm Acquired/Not Acquired
GPS Available/Not Available
Input 3, 2, 1 and 0(Ignition) High or Low
Day of the Week 0-3
Speed Above/ Below index 0-3
Inside/Outside PEG Zone 0-5
PEG Flag 0-7 Set or Cleared.
Environments are set up using Parameter 273. Each Bit in the Parameter represents a
different module to monitor. The specific break-down of bits to modules is listed in the
Parameter Definition Appendix of this document. Depending on which PEG item (Trigger
or Condition) is used, the setting may also define the state of the module. The states are
defined as follows:
Environment Bit Set
Moving
Log Active
Comm Acquired
GPS Available
Input High
Is Day of Week
Speed Above
Inside Zone
PEG Flag Set
PEG Environments are only supported by the LMU-4200, 4100, 2600 and LMU2500
3.23.1 Using Environments
There are three PEG features centered on Environments, one Trigger and two Conditions.
The PEG Trigger is the Environment Change Trigger. For this Trigger, the Environment
Parameter is used as a monitor. If any of the monitored items changes state, then the
Environment Change Trigger occurs. The Trigger Modifier defines which environment to
look at (0-7).
The two environment Conditions are:
Environment: Like the Environment Change Trigger, this Condition used the
environment Parameter as a monitor. If any of the bits in the monitor are set then
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 70 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 71 -
December 9, 2010
CalAmp Proprietary & Confidential
OR Result
False
True
True
True
AND Result
False
False
False
True
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 72 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 73 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 74 -
December 9, 2010
CalAmp Proprietary & Confidential
4 PEG Programming
4.1 What is a PEG Script? A reminder
There are a number of interpretations of what a PEG Script is. This can range from just the
programming of the Event Parameters up to the complete configuration of the LMU. For
the purposes of this document, the PEG Script is defined as the list of Events and their
associated PEG Parameters (i.e. Accumulators, Timers, Speed Thresholds, etc).
In the sub-sections that follow we try to highlight some of the more common questions and
problems that arrive with the LMU at each step. This is by no means an exhaustive
discussion of software/hardware development processes.
4.2.1 Collecting Customer Requirements
The main question is can the LMU and your applications accomplish what the customer
wants. As a general rule, most customer requirements will center on your application(s) and
not the LMU. Indeed, they will mostly just think of the LMU as the GPS device and not
much more. This may be due to the common misconception that the LMU is just a GPS
receiver. Regardless of the customers perception this is really where the LMUs PEG Script
starts. It is up to you to mine the LMUs reporting and behavioral requirements based on the
customers desires. Some of the more common items you should know by the end of this
phase are:
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 75 -
December 9, 2010
CalAmp Proprietary & Confidential
What wireless networks are available in the operation areas defined by the customer?
What are the wireless networking costs?
What additional equipment is needed? (i.e. peripheral options)
What data does the system need to store in order to meet the customers information
needs?
What transport/data collection mechanisms are available to you? (e.g. sensors,
vehicle interfaces, wireless networking options, data security, etc)
How will the system be maintained?
This is really where you really start digging into PEG. It is a good idea to develop two lists,
first a list a of PEG functions (e.g. When to report data, what additional data should be
collected in Accumulators, what I/O functions are needed, etc) and a second for the
needed PEG Parameters to support those functions (Accumulators, Timers, Zones, Speed
Threshold, etc).
By this point you should know:
What wireless networking options (and thus what kind of LMU) you are going to
use.
What pieces you are going to use in the system (i.e. peripherals, I/O, data, etc)
What functionality the system is going to support?
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 76 -
December 9, 2010
CalAmp Proprietary & Confidential
- 77 -
December 9, 2010
CalAmp Proprietary & Confidential
What data do you want the LMU to react to? (e.g. reporting intervals, speed
crossings, zone boundaries, etc)
What data does the LMU need to report? (e.g. Event Codes, Accumulator contents,
etc)
For this piece you are also effectively deciding what the LMU can tell you versus what you
want your application to deduce. A common example is an odometer function, in one case
you can have the LMU collect the distance traveled in an Accumulator or you can have your
backend calculate it based on the latitudes and longitudes reported by the LMU. You are
looking at tradeoffs to decide which implementation is better for you. In this case its a
tradeoff between data usage (the LMU will report 4 more bytes per message with the
odometer) versus accuracy (an as the crow flies calculation between GPS points gets less
and less accurate as the reporting intervals increase).
4.3.2 Deciding on Events
When deciding on Events you are effectively deciding how the LMU should react to various
Events. PEG can allow for a variety of ways to accomplish the same goal and it is up to the
PEG Programmer to decide which is best for your systems goals. The main point to keep in
mind here is that PEG Events are processed in order 14 as are the PEG Parameters (e.g.
speed 0 is checked before speed 1). In general it is a good idea to program Events in
common order. For example if you are using a timer, the first Event should be the one that
starts it, the next should be the one that reacts to it and finally the one that stops (or clears)
it.
4.3.3 Creating the Configuration
When creating a PEG script, you have two main authoring tools, either AT Command using
the AT$APP PARAM command or LMU Manager. LMU Manager is generally the easier
choice. AT Commands are described in the LMU Users Guide. LMU Manager is described
in the LMU Manager Users Guide.
4.3.4 Deploying a PEG Script
To deploy a PEG script you have three options.
Program each LMU via AT Commands. This is only a good approach when you have a
small number of LMUs to deal with and your PEG Script is fairly simple.
Program each LMU via LMU Manager. Again, this is only good for small number of
LMUs, though the complexity of the PEG script (i.e. the number of Events you are
using) is irrelevant.
Program each LMU via PULS PULS was designed around managing large fleets of
LMUs and is the recommended way to deploy scripts. LMU Manager can export a
CSV file that can be imported into PULS.
Unless you use the Call, Jump Return and End actions
V1.1.9
Copyright CalAmp DataCom Inc 2010
14
- 78 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 79 -
December 9, 2010
CalAmp Proprietary & Confidential
Hagensville Express Delivery already has an existing relationship with the local iDEN
operator and will be handling the airtime accounts for the GPS device.
5.1.2
Project Proposal
The first choice that most customers make on the LMU will be the technology choice. In
this case it is especially easy since the customer has an existing relationship with the CDMA
operator. For the purposes of this example we will use the CDMA LMU-4200.
Our next step is to decide what functions the peripheral devices need to support. In this case
there are three.
Doing a little research we find that a single device might be able to meet all three functions 15.
As an additional feature, it also supports Bluetooth connectivity, so we can potentially use
the CalAmp BTA.
The last hardware decision is determining what measure of I/O we need. Based on the
customers requirements (i.e. that they want basic vehicle tracking with no other
sensors/driver feedback) it seems all we need is Ignition Sense. This means we can definitely
use the CalAmp BTA. Please refer to the LMU Users Guide on how to setup the BTA and
December 9, 2010
CalAmp Proprietary & Confidential
Ignition On/Off detection We will want to report when the vehicles ignition
turns on an off. We will also use these points to manage some of the other features
such as sleep. (The customer has not asked for sleep, but it is always a good thing to
have in a script in order to minimize the LMUs impact on the vehicles battery life.)
Sleep Since the customer has not asked for sleep, we can use a fairly standard sleep
implementation. Basically we will want the unit to go to sleep a few minutes after
ignition has turned off. The unit should wake back up only on an ignition on.
Time-Distance Reporting Time-Distance reporting is likely the most common
way to track the location of a vehicle. Since this is an in-city application well likely go
purely distance based. This should give us a nice trail on the back-end map without
getting use-less data while the vehicle is stationary.
Moving/Not Moving reporting Well use the moving and not moving Events to
track time at locations. Well consider a stop to be anything longer than 5 minutes.
Anything longer than a 5 minute stop and well want to report how long the vehicle
was there when it starts moving again.
Speeding One of the main complaints that Hagensville Express Delivery receives
is about drivers speeding. In this case we will want to target three limits, school
zones (30km/h), residential streets (50km/h) and freeways (100km/h). What we will
do is simply report each of these crossings (both above and below) and let the back
end figure out if it is really a speed in Event.
Trip Odometer Again since Hagensville Express Delivery is new to vehicle
location, were going to add in a couple of features they may find useful. At least as
part of the initial trials. The first of these is a trip odometer. In this case we are going
to define a trip from Ignition On to Ignition Off.
Vehicle Idle Time As part of the maintenance system we want to know how long
the vehicle has been in motion versus how long is has been idling. Well use both the
Ignition sense and Moving sense features to manage these counters.
Vehicle Power Also as a nice extra were going to report the battery level of the
vehicle. With this, the Trip Odometer and the Vehicle On times, the hope is we can
later sell Hagensville Express Delivery a vehicle maintenance scheduling package
once theyre happy with the dispatch and vehicle location piece.
There are a fair number of features were lumping on to the backend which we will go over
at the end of this example. For now we should have all we need to work the PEG Script.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 81 -
December 9, 2010
CalAmp Proprietary & Confidential
We are going to host our Local Application on the handheld mobile computer we selected
above. This device is Windows Mobile based so we have a variety of off the shelf
software applications to choose from.
In this case we elect to purchase the In-Vehicle Navigation software and build the bar-code
scanner and messaging pieces. This latter application will use Dial-Up Networking to pass
data through the LMU. It is assumed that all message transactions occur when the local
application reports to the remote application.
When the local application has a message to send it will follow the same basic steps:
Open a Dial-Up Networking session to the LMU (note that any associated BT
connections should be automatically launched if the device has been setup correctly)
Query the LMU for its current location using an LM Direct Unit Request
Establish a TCP socket to the Remote Application
Send the message with the LMU location data
Wait for an acknowledgement
Request any new instructions
Wait for response
End Dial-Up Networking session
Re-open In-Vehicle navigation app
The local application will send messages in the following situations:
We are glossing over the details of this application. For the purposes of this document, we
simply need to know what the application does, not how it does it.
Receive LMU Event messages from the LMU. This includes differentiating between
Event Codes.
Acknowledge messages sent from the LMU
Open a TCP listener and receive data from the Local Application
Acknowledge data received from the Local Application
Display both the LMU and Local Application data to the end user
Provide a means for the end user to input new data such as new instructions for a
given vehicle
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 82 -
December 9, 2010
CalAmp Proprietary & Confidential
Going back over our requirements we can pick out the following reporting points. We will
also assign each an Event Code:
It is not necessary, but we have decided to group the Event Codes into functional blocks.
While this grouping does not change the performance of the PEG script, it can make
programming for the back end a little easier. Our groupings so far are:
I/O Events 0, 1
Tracking Events 50
Speed Events 100-108
The customer has asked for real-time reporting, but is not willing to tolerate data loss. As a
result we will want to use the Store and Forward mode of the LMUs Log. The customer
does understand that this may introduce delays in data delivery.
For Accumulators we need:
Vehicle Power
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 83 -
December 9, 2010
CalAmp Proprietary & Confidential
Time at stop
Idle Time
In Motion Time
Trip Odometer
To save a bit of data, we are only going to report the Vehicle Power with every Event report.
The time at stop should only be reported on a Moving Event and only if weve exceeded 5
minutes. This actually means we need two Moving Events: Moving after a stop and just
Moving. We need to make an addition to our Event Code list:
The other three Accumulators should report on an Ignition Off. Give this arrangement we
will use the Accumulators in the following order:
This brings us to our first setup items. The Event Report Contents and the Event-Code to
Accumulator Count Look-up, Parameters 772, 773 and 770. For Parameters 772 and 773 we
want to report just one Accumulator. For 770 we want two when we get an Event Code of
104 and five when we get an Event Code of 1. The programming for each would look as
follows:
AT$APP
AT$APP
AT$APP
AT$APP
PARAM
PARAM
PARAM
PARAM
772,0,65535,2176
773,0,65535,2176
770,1, 616
(Code 104 = 2 Accums = 0x0268)
770,0,1281
(Code 1 = 5 Accums = 0x0501)
Lastly we want an idea of what we need in the way of PEG Parameters. Based on the
discussions above, these will be as follows:
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 84 -
December 9, 2010
CalAmp Proprietary & Confidential
PARAM
PARAM
PARAM
PARAM
PARAM
PARAM
PARAM
PARAM
We should also consider programming the Input Wake-Up Monitor for the sleep
management function. In this case we are going to rely on the default setting of the LMU
which is to wake-up on any input transition even though we only need to wake on Ignition.
5.1.4 PEG Script - Development
Now that we have a basic plan and the PEG Parameters set-up, we can start creating the
PEG script. Like developing software, it is a good idea to break the script into functional
pieces so we are only dealing with small amounts of code. In this case we will create the
pieces based on the functional requirements we defined above.
For the Ignition On and Off reporting we will need two PEG Events.
Event 0:
Trigger: Ignition On
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 0
Event 1:
Trigger: Ignition Off
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 1
Programming wise this would look as follows:
AT$APP PARAM 512,0,15,0,0,0,1,0,0,0
AT$APP PARAM 512,1,16,0,0,0,1,1,0,0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 85 -
December 9, 2010
CalAmp Proprietary & Confidential
For the Sleep script we want to wait 5 minutes then put the unit to sleep until Ignition
comes on.
Event 2:
This Event will start the sleep countdown sequence.
Trigger: Ignition Off
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start/Restart Timer
Action Modifier: 0
Event 3:
This Event will abort the sleep countdown sequence if ignition comes back on.
Trigger: Ignition On
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Stop Clear Timer
Action Modifier: 0
Event 4:
This is where we put the unit to sleep. It is a good idea to check the state of the ignition
before putting the unit to sleep.
Trigger: Timer Timeout
Trigger Modifier: 0
Condition One: Ignition Off
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Sleep Timer
Action Modifier: 1
Event 5:
This Event isnt strictly necessary, but it is a safe-guard against phantom wakes (for instance
say some bad vehicle wiring shorts one of the other inputs on the LMU and wakes it back
up).
Trigger: Power Up or Wake Up
Trigger Modifier: 0
Condition One: Ignition Off
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start/Restart Timer
Action Modifier: 0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 86 -
December 9, 2010
CalAmp Proprietary & Confidential
This is another fairly straight forward piece of the script. We need to star the Time-Distance
profile and then kick in the Event Report whenever it expires. This should take two Events:
Event 6:
Start the Time Distance Profile.
Trigger: Power Up or Wake Up
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start Time-Distance Profile
Action Modifier: 0
Event 7:
Send the Event Report.
Trigger: Time-Distance Update
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 50
For our AT Commands we have:
AT$APP PARAM 512,6,3,0,0,0,7,0,0,0
AT$APP PARAM 512,7,17,0,0,0,1,50,0,0
- 87 -
December 9, 2010
CalAmp Proprietary & Confidential
- 88 -
December 9, 2010
CalAmp Proprietary & Confidential
The backend system is doing most of the work on the speed side, so the LMU simply needs
to report when it goes above or below a particular speed threshold.
Event 14:
Above 30 km/h
Trigger: Speed Above
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 101
Event 15:
Above 50 km/h
Trigger: Speed Above
Trigger Modifier: 1
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 102
Event 16:
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 89 -
December 9, 2010
CalAmp Proprietary & Confidential
PARAM
PARAM
PARAM
PARAM
PARAM
PARAM
512,14,7,0,0,0,1,101,0,0
512,15,7,1,0,0,1,102,0,0
512,16,7,2,0,0,1,103,0,0
512,17,8,0,0,0,1,104,0,0
512,18,8,1,0,0,1,105,0,0
512,19,8,2,0,0,1,106,0,0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 90 -
December 9, 2010
CalAmp Proprietary & Confidential
The trip odometer works from Ignition On to Ignition off, since were not actually doing
anything based on this value, the script simply has to start and stop the Accumulator.
Event 20:
Reset Distance Counter
Trigger: Ignition Off
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Stop/Clear Accumulator
Action Modifier: 4
Event 21:
Start Counter
Trigger: Ignition On
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start Distance Accumulation
Action Modifier: 4
AT$APP PARAM 512,20,16,0,0,0,29,4,0,0
AT$APP PARAM 512,21,15,0,0,0,27,4,0,0
This is a case where the order in which Events appear in the script becomes important. In
this case the Stop/Clear Event for the distance Accumulator must appear after you report
the Ignition Off Event. If this Event appeared before the reporting Action, you would
always get a 0 distance value.
- 91 -
December 9, 2010
CalAmp Proprietary & Confidential
- 92 -
December 9, 2010
CalAmp Proprietary & Confidential
PARAM
PARAM
PARAM
PARAM
PARAM
512,101,48,0,65,0,27,2,68,0
512,102,48,0,65,0,27,3,67,0
512,103,48,0,2,0,28,2,3,0
512,104,48,0,2,0,58,3,4,0
512,105,48,0,0,0,52,0,0,0
Next we need to deal with the calls into the function. These should occur on Ignition On
Off and Moving/Not Moving. Were going to save a line of PEG scripting and use an Input
Transition Trigger for Ignition.
Event 22:
Ignition Call
Trigger: Input Transition
Trigger Modifier: 0 (Input 0 = Ignition)
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Call
Action Modifier: 101
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 93 -
December 9, 2010
CalAmp Proprietary & Confidential
- 94 -
December 9, 2010
CalAmp Proprietary & Confidential
We saved the easiest feature to last. The LMUs internal Analog to Digital input is connected
to its power supply. So long as the LMUs power is run directly off the vehicle battery, we
should get a somewhat accurate reading of the vehicles power supply.
Event 27:
Start A/D Accumulation
Trigger: Power Up or Wake Up
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start A/D Accumulation
Action Modifier: 0
AT$APP PARAM 512,27,3,0,0,0,47,0,0,0
5.1.5 Project Backend Requirements
This document is intended to describe PEG Programming and thus we have glossed over
the backend system. It is, however, worth noting the backend assumptions that went into
the above script to make it a viable solution.
The back end system has implemented LM Direct and can handle Event Reports and
Acknowledgements.
The mapping data the backend uses contains speed limit data for each of the streets.
It would use the speed Events to determine if the vehicle was exceeding the local
speed limits.
The backend system will keep running totals of the overall vehicle odometer, idle
times and in-motion times. The idea here would be have configurable counter over
typical maintenance periods (for example 3 months or 5000 km for oil changes)
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 95 -
December 9, 2010
CalAmp Proprietary & Confidential
They have had a recent PR nightmare by losing several trailers full of radio-active
waste from the Hagen nuclear power plant. While each of the trailers was recovered
without loss of the material, the fact it took up to 14 days has made headlines.
They are starting to develop logistical and legal problems based on accurately
reporting their mileage. This is for gas tax claims and refunds, which, in the eyes of
the states, have been excessively high.
Several vehicles have missed scheduled maintenance windows and have broken
down mid-route.
Some drivers are taking on side jobs and leaving the toxic payloads on nonsanctioned sites. As a result the vehicles are in use for longer hours than expected
with drivers routinely breaking speed limits.
Drivers are not following safety procedures within the various delivery areas and
processing sites. In most cases this means leaving the vehicle running while
unloading the trailers cargo.
As an additional power saving step, we will make use of the LMU-1110s internal battery.
Specifically we will attempt to detect a low battery condition with the trailers battery. If met,
the LMU will temporarily switch to internal power.
Each trailer has a load and unload hatch. The trailer itself is equipped with a mechanism to
make sure only one of these is open at a time. We will, however tap into it for our own
detection purposes. In addition to detecting the open and close Conditions on these hatches,
we also need to make sure that nothing is transmitting during a load or unload operation.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 96 -
December 9, 2010
CalAmp Proprietary & Confidential
The LMU should operate off the trailers battery until a specific threshold is met.
The LMU should be able to detect when the trailers battery is too low and send in a
warning message. The LMU should also switch to its internal power supply
temporarily to allow the trailer battery to re-charge.
The LMU should report in once a day at a known time.
For the in use case the customer has asked for the following information:
The distance traveled by the trailer. This is going to be used for maintenance
purposes (e.g. wear on the tires)
Trailer Connect and Disconnect Events.
Trailer loading and unloading Events.
Distance Traveled in each state This is going to be our answer to the gas tax
issue. The LMU is going to keep track of its current distance traveled. When it
crosses state boundaries it will report its current distance value along with which
state it was in.
Trailer connect and disconnect Unlike the trailer we just need to know when
these Event happened on the truck.
Trailer loading and unloading The main requirement here is to make sure the
truck is off when the trailer is being loaded or emptied. We should fire some measure
of warning signal to the driver and backend in case of a violation. Again we will need
to make sure that nothing is transmitting during loading/unloading periods.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 97 -
December 9, 2010
CalAmp Proprietary & Confidential
The Remote Application here will be a stripped down version of what we used in the
delivery fleet solution. It will need to do the following:
Receive LMU Event messages from the LMU. This includes differentiating between
Event Codes.
Acknowledge messages sent from the LMU
Display both the LMU and Local application to the end user
The main workload for the Remote Application will be in the reporting engine. The engine
will need to be modified to create the reports necessary for this client. This could include
reports such as State Mileage for Gas Tax credit, empty trailer availability, truck availability,
etc
5.2.3 PEG Script Planning
As with the previous example, we will start our PEG script with the reporting points. On the
LMU-1110 side we have:
Load Begin
Load End
Unload Begin
Unload End
Trailer Connect
Trailer Disconnect
Distance Traveled
Daily Update
Low Battery
Ignition On
Ignition Off
Time-Distance
Moving
Not Moving
Load Begin
Load End
Unload Begin
Unload End
Trailer Connect
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 98 -
December 9, 2010
CalAmp Proprietary & Confidential
Trailer Disconnect
Load/Unload while vehicle on
State Entry
State Exit
We are going to share Event Code mappings between the LMU-1110 and LMU-4200.
We are also going to use the same Event Codes as we did for the Hagensville Express
Delivery solution. Those mappings were:
I/O Events 0, 1
Tracking Events 50
Speed Events 100-108
To support our new requirements, we will add the following Event Codes:
We are again going to adopt the Store and Forward mode of the LMUs Log. When we need
to force the buffering of data we will simply turn the modem off.
On the Accumulator front we again start with what we used in the delivery script:
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 99 -
December 9, 2010
CalAmp Proprietary & Confidential
We can use Acc 0 for power on both the 1110 and 4200, so that will stay where it is.
The At Stop time we do not need for this solution so it is open for re-use. The Idle and In
Motion Times will still be useful for truck maintenance schedules, so we will keep those. The
same goes for the trip odometer, though for the case of the trailer a trip is from connect to
disconnect instead of Ignition On and Off.
We will need to add two more Accumulators to the mix. We decide not to use Acc 2, but
instead expand to Acc 5 and 6. This allows us to maintain some of the backend code we
used for the Delivery solution. Acc 5 becomes the distance traveled in state and Acc 6 will
be the state ID value.
Again we are going to try and save a little bit of data over-head an only report the vehicle
power value with each Event report. For the others we will need the following look-ups:
Event Code
201 State Exit
1 Ignition Off
7 Trailer Disconnect
Acc Count
7 (LMU-4200 Only)
5 (LMU-4200 Only)
5 (LMU-1110 Only)
Our first set of commands for the 1110 would therefore be:
!R1 772,0,65535,2176 16
!R1 773,0,65535,2176
!R1 770,0,1287
(Code 7 = 5 Accums = 0x0507)
And for the 4200 we have:
AT$APP
AT$APP
AT$APP
AT$APP
PARAM
PARAM
PARAM
PARAM
772,0,65535,2176
773,0,65535,2176
770,1,1993
(Code 201 = 7 Accums = 0x07C9)
770,0,1281
(Code 1 = 5 Accums = 0x0501)
In talking to the LMU setup team, they have created the following Input mappings for our
solution. Please refer to the LMU Users Guide for details on this circuit.
Input
Ignition
Input 1
Input 2
LMU-1110 Use
Load Hatch Open/Close
Unload Hatch
Open/Close
N/A
Input 3
Input 4
Output 0
N/A
N/A
N/A
LMU-4200 Use
Truck Ignition
Load Hatch Open/Close
Unload Hatch
Open/Close
Trailer Detect
Load/Unload When On
Remember that the LMU-1000 setup commands should be sent via SMS or using PULS
V1.1.9
December 9, 2010
- 100 CalAmp Proprietary & Confidential
Copyright CalAmp DataCom Inc 2010
16
Based on the above requirements, we should only need seven PEG Parameters for the
LMU-1110s script. They are:
Our starting point will be to separate the PEG script into two pieces, an In Use script and a
Not In Use script. The basic idea here is to make sure that the two behaviors do not
overlap.
Event 0:
(In Use)
Trigger: Any Trigger
Trigger Modifier: 0
Condition One: Acc Above
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 101 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 102 -
December 9, 2010
CalAmp Proprietary & Confidential
Like the load, the unloading Event will run from a hatch open to a hatch close. The same
type of sensor has been installed in the unload hatch.
Event 13:
Trigger: Input High
Trigger Modifier: 1
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 4
Event 14:
Trigger: Input Low
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 103 -
December 9, 2010
CalAmp Proprietary & Confidential
We will actually only use the distance travelled value on a trailer disconnect notification;
however, we need to start counting when a trailer connection occurs.
Event 15:
Trigger: Acc Above
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Clear Accumulator
Action Modifier: 4
Event 16:
Trigger: Acc Above
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start Distance Accumulator
Action Modifier: 4
!R1 512,15,19,0,0,0,19,4,0,0
!R1 512,16,19,0,0,0,27,4,0,0
- 104 -
December 9, 2010
CalAmp Proprietary & Confidential
!R1 512,40,45,0,0,0,1,7,0,0
!R1 512,41,45,7,0,0,1,90,0,0
!R1 512,42,20,0,0,0,1,51,0,0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 105 -
December 9, 2010
CalAmp Proprietary & Confidential
All we need to do here is simply stop the distance counter. In theory we could stop and clear
it here, but weve already handled the clear on a trailer connect.
Event 43:
Trigger: Acc Below
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Stop Accumulator
Action Modifier: 4
!R1 512,43,45,0,0,0,28,4,0,0
When the trailer is not is use we want the LMU to sleep unless it is within a specific window
of time (i.e. from 6:00am to 6:10am GMT). We should be able to handle this with a single
Event
Event 44:
Trigger: Any Trigger
Trigger Modifier: 0
Condition One: Outside Time of Day Window
Condition One Modifier: 220 17
Condition Two: None
Condition Two Modifier: 0
Action: Sleep Until Time of Day
Action Modifier: 0
!R1 512,44,48,0,23,220,24,0,0,0
End Day of Week Index = 3 (0b11)End Time of Day Index = 1 (0b01), Start Day of Week Index = 3
(0b11), Start Time of Day Index= 0 (0b00). Condition Index = 220 (0b11 01 11 00)
V1.1.9
December 9, 2010
- 106 CalAmp Proprietary & Confidential
Copyright CalAmp DataCom Inc 2010
17
When the trailers battery is too low, we want the LMU to switch to its internal power
source, though we should periodically switch back to see if a trailer connect event has
occurred.
Event 45: (Switch to internal battery)
Trigger: Acc Below
Trigger Modifier: 7
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Set Output
Action Modifier: 2
!R1 512,45,47,7,0,0,8,2,0,0
Event 46: (start charge timer)
Trigger: Acc Below
Trigger Modifier: 7
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start/Restart Timer
Action Modifier: 15
!R1 512,46,47,7,0,0,13,15,0,0
Event 47: (switch back to external power)
Trigger: Timer Timeout
Trigger Modifier: 15
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Clear Output
Action Modifier: 2
!R1 512,47,18,15,0,0,9,2,0,0
Event 48: (Keep on external power if trailer battery has recharged)
Trigger: Timer Timeout
Trigger Modifier: 15
Condition One: Accumulator Above
Condition One Modifier: 7
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 107 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 108 -
December 9, 2010
CalAmp Proprietary & Confidential
We are fairly light in the PEG Parameter department on this script. We really just need four:
our two sleep timers, a moving speed threshold and a time distance profile. For the moving
speed threshold we can use the 3MPH default in the LMU. For the time distance profile, we
can be somewhat generous with the reporting rate. The trucks are on the road for days, so
we do not need to update their position that often. We will use every 15 minutes or every 5
miles.
AT$APP
AT$APP
AT$APP
AT$APP
PARAM
PARAM
PARAM
PARAM
265,0,300
265,1,0
262,0,900
263,0,8045
For the Ignition On and Off reporting we will need two PEG Events.
Event 0:
Trigger: Ignition On
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 0
Event 1:
Trigger: Ignition Off
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 1
Programming wise this would look as follows:
AT$APP PARAM 512,0,15,0,0,0,1,0,0,0
AT$APP PARAM 512,1,16,0,0,0,1,1,0,0
A gap is an Event that does nothing, either having no trigger or no action.
V1.1.9
- 109 Copyright CalAmp DataCom Inc 2010
18
December 9, 2010
CalAmp Proprietary & Confidential
For the Sleep script we want to wait 5 minutes then put the unit to sleep until Ignition
comes on.
Event 2:
This Event will start the sleep countdown sequence.
Trigger: Ignition Off
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start/Restart Timer
Action Modifier: 0
Event 3:
This Event will abort the sleep countdown sequence if ignition comes back on.
Trigger: Ignition On
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Stop Clear Timer
Action Modifier: 0
Event 4:
This is where we put the unit to sleep. It is a good idea to check the state of the ignition
before putting the unit to sleep.
Trigger: Timer Timeout
Trigger Modifier: 0
Condition One: Ignition Off
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Sleep Timer
Action Modifier: 1
Event 5:
This Event isnt strictly necessary, but it is a safe-guard against phantom wakes (for instance
say some bad vehicle wiring shorts one of the other inputs on the LMU and wakes it back
up).
Trigger: Power Up or Wake Up
Trigger Modifier: 0
Condition One: Ignition Off
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start/Restart Timer
Action Modifier: 0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 110 -
December 9, 2010
CalAmp Proprietary & Confidential
This is another fairly straight forward piece of the script. We need to star the Time-Distance
profile and then kick in the Event Report whenever it expires. This should take two Events:
Event 6:
Start the Time Distance Profile.
Trigger: Power Up or Wake Up
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start Time-Distance Profile
Action Modifier: 0
Event 7:
Send the Event Report.
Trigger: Time-Distance Update
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 50
For our AT Commands we have:
AT$APP PARAM 512,6,3,0,0,0,7,0,0,0
AT$APP PARAM 512,7,17,0,0,0,1,50,0,0
- 111 -
December 9, 2010
CalAmp Proprietary & Confidential
The trip odometer works from Ignition On to Ignition off, since were not actually doing
anything based on this value, the script simply has to start and stop the Accumulator.
Event 10:
Reset Distance Counter
Trigger: Ignition Off
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Stop/Clear Accumulator
Action Modifier: 4
Event 11:
Start Counter
Trigger: Ignition On
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start Distance Accumulation
Action Modifier: 4
AT$APP PARAM 512,10,16,0,0,0,29,4,0,0
AT$APP PARAM 512,11,15,0,0,0,27,4,0,0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 112 -
December 9, 2010
CalAmp Proprietary & Confidential
The LMUs internal Analog to Digital input is connected to its power supply. So long as the
LMUs power is run directly off the vehicle battery, we should get a somewhat accurate
reading of the vehicles power supply.
Event 12:
Start A/D Accumulation
Trigger: Power Up or Wake Up
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start A/D Accumulation
Action Modifier: 0
AT$APP PARAM 512,12,3,0,0,0,47,0,0,0
The loading Event will run from a hatch open to a hatch close. We have installed a sensor
that will trigger high when the hatch is open and low when the hatch is closed. This should
only be valid when a trailer is connected.
Event 13:
Trigger: Input High
Trigger Modifier: 1
Condition One: Input Low
Condition One Modifier: 3
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 2
Event 14:
Trigger: Input Low
Trigger Modifier: 1
Condition One: Input Low
Condition One Modifier: 3
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 3
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 113 -
December 9, 2010
CalAmp Proprietary & Confidential
Like the load, the unloading Event will run from a hatch open to a hatch close. The same
type of sensor has been installed in the unload hatch. Again, this is only valid when a trailer
is connected.
Event 15:
Trigger: Input High
Trigger Modifier: 2
Condition One: Input Low
Condition One Modifier: 3
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 4
Event 16:
Trigger: Input Low
Trigger Modifier: 2
Condition One: Input Low
Condition One Modifier: 3
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
Action Modifier: 5
Programming wise this would look as follows:
AT$APP PARAM 512,15,4,2,10,3,1,4,0,0
AT$APP PARAM 512,16,5,2,10,3,1,5,0,0
The trailer-detect circuit will behave a little differently than the two hatch Events. Namely,
the trailer detect input (3) will be pulled low when the trailer is connected. Basically the input
will be connected to the LMU-1000s ground when a connection occurs.
Event 17:
Trigger: Input Low
Trigger Modifier: 3
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Report
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 114 -
December 9, 2010
CalAmp Proprietary & Confidential
5.2.5.11 PEG Script Modem off during load and unload procedures
This piece of the PEG Script will control modem power. The idea here is to turn the
modem off when a load or unload starts and to turn it back on when the load/unload is
complete. To accomplish this we will create a function.
Our starting point, as will all functions, is to segment the PEG script.
Event 100:
Function Break
Trigger: Any Trigger
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: End
Action Modifier: 0
AT$APP PARAM 512,100,48,0,0,0,53,0,0,0
We will start with turning the modem off.
Event 101:
Begin Load
Trigger: Any Trigger
Trigger Modifier: 0
Condition One: Input High
Condition One Modifier: 1
Condition Two: None
Condition Two Modifier: 0
Action: Comm Off
Action Modifier: 0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 115 -
December 9, 2010
CalAmp Proprietary & Confidential
- 116 -
December 9, 2010
CalAmp Proprietary & Confidential
PARAM
PARAM
PARAM
PARAM
PARAM
512,103,48,0,9,1,52,0,0,0
512,104,48,0,9,2,52,0,0,0
512,105,48,0,43,0,52,0,0,0
512,106,48,0,0,0,55,0,0,0
512,107,48,0,0,0,52,0,0,0
Note that we could have combined Events 103 and 104 together using an OR operation. In
this case we have plenty of room in the PEG script, so we didnt bother.
To complete our function we need to make a call into it. This will occur on any High Low
transition from either Input 1 or 2.
Event 19:
Trigger: Input Transition
Trigger Modifier: 1
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 117 -
December 9, 2010
CalAmp Proprietary & Confidential
This part of the script assumes that output 0 has been connected to the horn of the vehicle
(see the LMU Users Guide for details on this). When the output is set, we honk the horn,
when it is cleared the honk stops.
Our warnings should occur when the vehicles ignition is still on, and either a load or unload
hatch is open. The honk should stop when ignition goes off.
We will start with turning the honk off since its a little easier.
Event 21:
Trigger: Ignition Off
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Clear Output
Action Modifier: 0
AT$APP PARAM 512,21,16,0,0,0,9,0,0,0
Event 22:
Trigger: Input High
Trigger Modifier: 1
Condition One: Ignition On
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Set Output
Action Modifier: 0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 118 -
December 9, 2010
CalAmp Proprietary & Confidential
Our final piece of the PEG script will perform two functions, first it will detect when the
vehicle enters or leaves a state. Second, it will count the distance travelled in each state. Here
we are going to assume three geo-zones have been setup to define the state boundaries (see
the LMU Users Guide for information on how to program Geo-Zones).
We are making two assumptions on how this feature should operate. The first assumption is
that distance will be measured from the entry into one state to the entry into the next state.
Our second assumption is that state boundaries do not overlap. That is, it is impossible to be
in more than one state at a time. The one place where this breaks down is a cold boot. The
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 119 -
December 9, 2010
CalAmp Proprietary & Confidential
- 120 -
December 9, 2010
CalAmp Proprietary & Confidential
PARAM
PARAM
PARAM
PARAM
PARAM
512,26,55,0,0,0,1,201,0,0
512,27,55,0,0,0,67,6,0,0
512,28,55,0,0,0,1,200,0,0
512,29,55,0,0,0,19,5,0,0
512,30,55,0,0,0,27,5,0,0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 121 -
December 9, 2010
CalAmp Proprietary & Confidential
For their backend piece they are looking for two applications, one to be used by their
dispatcher to route cabs to the nearest vehicle, the other application will be part of their
website, allowing users to locate the nearest cab and view arrival estimates for cab
reservations.
5.3.2
Project Proposal
As with the previous two projects, we will start with the choice of wireless technology. In
this case, the decision will be made based on coverage. All three operators do have coverage
within Hagensville and its airport, only the CDMA operator has sufficient coverage in the
surrounding suburbs.
In the LMU will we handle the following features:
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 122 -
December 9, 2010
CalAmp Proprietary & Confidential
The Local Application will be in two parts, an MDT to handle messaging between the driver
and the dispatcher and a credit card reader to handle payment processing. We are planning
to take advantage of the LMUs User Messaging feature to handle both. This means that we
will need the ioPOD with Aux Port. Please note that the set-up of the LMU to support this
is described in the LMU Users Guide.
For the MDT we will need the following messages:
For the driver messages, each will be assigned to a particular button on the MDT. The
incoming messages will be shown on the four line display.
On the credit card processing side we are expecting the card reader to encrypt the credit card
data before sending it to the LMU. The LMU, in turn sends the message to the back end
(again using an unacknowledged service). The back end will decrypt the data and forward it
to the credit card processing agent. Once an authorization has been received, notification is
sent back to the LMU and credit card reader to allow the transaction and print a receipt.
To support the customers needs the Remote Application will need to do the following:
- 123 -
December 9, 2010
CalAmp Proprietary & Confidential
Unacknowledged message bypass the Log which means we can eliminate delays due
to Log delivery.
We do get some airtime savings since there is no acknowledgement message. Given
the volume of messages well be creating, this could have a significant impact on the
budget.
Keep in mind the reports that we are really interested in (Ignition and Moving Events) will
be Logged. This is to make sure the distance traveled, idle time and travel time data are never
lost.
5.3.4 PEG Script - Development
Development wise this is going to be the least interesting script thus far. We are simply
going to copy the existing script we created for the delivery fleet and make the modification
to the time distance profile. The interesting part of this application is on the LMU setup side
with the MDT messaging.
Event 6:
Start the Time Distance Profile. This remains untouched from the delivery fleet profile.
Trigger: Power Up or Wake Up
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Start Time-Distance Profile
Action Modifier: 0
Event 7:
Send the Event Report.
Trigger: Time-Distance Update
Trigger Modifier: 0
Condition One: None
Condition One Modifier: 0
Condition Two: None
Condition Two Modifier: 0
Action: Send Unacknowledged Report
Action Modifier: 50
For our AT Commands we have:
AT$APP PARAM 512,6,3,0,0,0,7,0,0,0
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 124 -
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 125 -
December 9, 2010
CalAmp Proprietary & Confidential
None
Power Up
None
Wake Up
None
Power Up
or
Wake Up
Input High
None
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 126 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
Not Active
LMU-2X00
LMU- 1000
Description
8-Bit
Trigger
Code
Trigger
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 127 -
1.2d
LMU-4200
LMU-4100
LMU-2X00
Speed Above
LMU- 1000
Input Equate
Description
8-Bit
Input Low
Trigger
Code
Trigger
Name
1.2d
8.1b
8.1b
8.1b
December 9, 2010
CalAmp Proprietary & Confidential
1.2d
1.2d
GPS Acquired
11
None
GPS Lost
12
None
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 128 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
10
LMU-2X00
Zone Exit
LMU- 1000
Zone Entry
Description
8-Bit
Speed Below
Trigger
Code
Trigger
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
Comm Lost
14
None
Ignition On
15
None
Ignition Off
16
None
Time-Distance
Update
17
None
Timer Timeout
18
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 129 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
None
13
LMU-4100
Comm
Acquired
LMU-2X00
LMU- 1000
Description
8-Bit
Trigger
Code
Trigger
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
21
None
Host Data
22
Not Active
None
Long Send
Failure
23
None
Wake Up on
Input
24
None
Wake Up on
Timer
25
None
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 130 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
20
LMU- 1000
Time of Day
19
Description
8-Bit
Accumulator
Above
Trigger
Code
Trigger
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.1a
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
Message
Acknowledged
27
Message Send
Failure
28
Log Report
Success
29
None
Comm
Shutdown
Input
Transition
30
None
31
Any Zone
Entry
32
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 131 -
None
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
LMU- 1000
26
Description
8-Bit
Message Sent
Trigger
Code
Trigger
Name
1.1a
8.1b
1.1a
8.1b
1.1a
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
None
Time Elapsed
34
None
Distance
Traveled
35
The distance component of the active TimeDistance Profile has been exceeded
None
Log Active
36
None
Message
Received
37
Any Message
Received
Environment
Change
38
39
Heading
Change
40
The heading component of the active TimeDistance Profile has been exceeded
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 132 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
33
LMU-4100
LMU-2X00
LMU- 1000
Description
8-Bit
Trigger
Code
Trigger
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.1a
8.1b
1.1a
8.1b
8.1b
1.2d
1.2d
8.1b
Not Active
None
Special
Special
41
41
Impact Detection
Tilt Detect
This trigger occurs when the tilt angle of the LMU
exceeds the configured threshold in registers 160
and 161.
The LMUs speed is equal to or has exceeded the
Moving Speed Threshold Parameter.
0
100
42
Not Moving
43
None
A/D Above
44
Comm
Connected
45
46
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 133 -
8.1b
1.2a
Moving
A/D Below
LMU-4200
41
LMU-4100
Special
LMU-2X00
LMU- 1000
Description
8-Bit
Trigger
Code
Trigger
Name
None
2.0a
2.0a
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
8.1b
8.1b
8.1b
December 9, 2010
CalAmp Proprietary & Confidential
1.2d
Any Trigger
48
None
Comm State
Change
49
None
Incoming Call
Call State
50
51
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 134 -
LMU-4200
LMU-4100
LMU-2X00
LMU- 1000
47
Description
8-Bit
Accumulator
Below
Trigger
Code
Trigger
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
None
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 135 -
The Geo-Zone ID
0 = Geo-Zone 0
1 = Geo-Zone 1
...
254 = Geo-Zone 254
255 = Geo-Zone 255
NOTE: This Trigger will fire for any GeoZone whose ID matches the Trigger Modifier
regardless of Super Group assignment
The Geo-Zone ID
0 = Geo-Zone 0
1 = Geo-Zone 1
...
254 = Geo-Zone 254
255 = Geo-Zone 255
NOTE: This Trigger will fire for any GeoZone whose ID matches the Trigger Modifier
regardless of Super Group assignment
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
54
LMU-2X00
Geo-Zone Exit
53
LMU- 1000
Geo-Zone
Entry
52
Description
8-Bit
SMS Request
Received
Trigger
Code
Trigger
Name
8.1b
8.1b
8.1b
The LMU has entered any of the defined GeoZones (point or polygon)
None
Any Geo-Zone
Exit
56
None
Null SMS
Message
Received
Network ID
Change
1-Bit-Bus ID
Read
Update Begin
57
None
58
None
59
60
Update End
Acceleration
Detected
61
62
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 136 -
December 9, 2010
CalAmp Proprietary & Confidential
8.1b
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.2c
None
0 = Acceleration Profile 0
1 = Acceleration Profile 1
2 = Acceleration Profile 2
3 = Acceleration Profile 3
LMU-4200
55
LMU-4100
Any Geo-Zone
Entry
LMU-2X00
LMU- 1000
Description
8-Bit
Trigger
Code
Trigger
Name
1.1b
1.1b
1.0f
8.3c
1.1b
1.1b
1.0f
8.3c
1.1k
8.4a
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 137 -
None
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
65
LMU-2X00
64
LMU- 1000
GPS Quality
Fix
GPS Quality
Lost
63
Description
8-Bit
Message
Generate
Trigger
Code
Trigger
Name
1.1e
8.4d
1.3f
1.3f
1.1f
8.4e
1.3f
1.3f
1.1f
8.4e
None
Ignition On
None
Ignition Off
None
Moving
None
Not Moving
None
Comm
Available
None
Comm Not
Available
None
GPS Acquired
None
GPS Not
Acquired
None
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 138 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
None
LMU-2X00
LMU-1XXX
Description
8-Bit
Condition
Code
Condition
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 139 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
11
LMU-2X00
Timer Active
10
LMU-1XXX
Input Low
Description
8-Bit
Input High
Condition
Code
Condition
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 140 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
15
LMU-4100
Day of Week
14
LMU-2X00
Time-Distance
Inactive
13
LMU-1XXX
Time-Distance
Active
12
Description
8-Bit
Timer Inactive
Condition
Code
Condition
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
Log Active
18
None
Comm and
GPS Available
19
None
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 141 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
17
LMU-1XXX
Flag Cleared
16
Description
8-Bit
Flag Set
Condition
Code
Condition
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 142 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
21
LMU-1XXX
Environment
Equate
20
Description
8-Bit
Environment
Condition
Code
Condition
Name
8.1b
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 143 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
23
LMU-1XXX
Outside Time
of Day
Window
22
Description
8-Bit
Inside Time of
Day Window
Condition
Code
Condition
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 144 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
25
LMU-1XXX
Accumulator
Below
24
Description
8-Bit
Accumulator
Above
Condition
Code
Condition
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
LMU-4100
LMU-2X00
LMU-1XXX
26
Description
8-Bit
Comm State
Condition
Code
Condition
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
27
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 145 -
None
December 9, 2010
CalAmp Proprietary & Confidential
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 146 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
30
LMU-2X00
Time Valid
29
LMU-1XXX
PEG Flag
Compare
28
Description
8-Bit
Input Compare
Condition
Code
Condition
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
None
This field is separated into two parts, a mask
and state:
bit 0 bit 3: User Flag State
Set = User Flag is set
Cleared = User Flag is cleared
bit 0 = User Flag 0
bit 1 = User Flag 1
bit 2 = User Flag 2
bit 3 = User Flag 3
bit 4 -7 = Mask
Set = Monitor state
Cleared = Do not monitor state.
bit 4 = Monitor User Flag 0
bit 5 = Monitor User Flag 1
bit 6 = Monitor User Flag 2
bit 7 = Monitor User Flag 3
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 147 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
32
33
LMU-1XXX
Log Full
User Flag
31
Description
8-Bit
Comm Select
Condition
Code
Condition
Name
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
35
36
37
None
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 148 -
LMU-4200
LMU-4100
Roaming
LMU-2X00
Supergroup
LMU-1XXX
Speed Above
34
Description
8-Bit
Call Status
Condition
Code
Condition
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
8.1b
8.1b
1.2d
December 9, 2010
CalAmp Proprietary & Confidential
1.2d
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 149 -
31 = PEG Zone 31
bit 7 = Zone State
Set = LMU is Inside Zone
Cleared = LMU is outside Zone
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
40
LMU-2X00
Zone State
39
LMU-1XXX
Boot Reason
38
Description
8-Bit
PEG Enables
Condition
Code
Condition
Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.2c
1.2d
1.2d
8.2f
GPS On
44
Zone Enabled
45
46
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 150 -
None
None
The PEG Zone to Monitor
0 = PEG Zone 0
1 =PEG Zone 1
31 = PEG Zone 31
None
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
43
LMU-4100
Comm On
LMU-2X00
42
LMU-1XXX
41
Description
8-Bit
PEG State
Compare
Accumulator
Equal
Condition
Code
Condition
Name
1.2d
1.2d
8.2g
1.2d
1.2d
8.2h
1.2d
1.2d
8.2h
1.2d
1.2d
8.2h
1.2d
1.2d
8.2h
8.2h
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 151 -
Bit 6
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
bit 6
(+64)
LMU-1XXX
AND/OR
47
Description
8-Bit
GPS Fix
Quality
Condition
Code
Condition
Name
1.2k
1.2k
1.1a
8.4a
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 152 -
Set = NOT(Condition)
Cleared = (Condition)
December 9, 2010
CalAmp Proprietary & Confidential
1.2d
LMU-4200
Bit 7:
LMU-4100
LMU-2X00
LMU-1XXX
bit 7
(+128)
Description
8-Bit
NOT
Condition
Code
Condition
Name
1.2d
8.1b
None
Send Report
None
Log Report
Send-Log
Report
Send Log
Clear Log
The LMU will delete all Logged records and reformat the Log space.
None
Stop TimeDistance
Profile
None
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 153 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
None
LMU-2X00
LMU-1XXX
Description
8-Bit
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
Clear Output
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 154 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
Set Output
LMU-2X00
LMU-1XXX
Start TimeDistance
Profile
Description
8-Bit
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 155 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
12
LMU-2X00
Blink Output at
4 Hz Rate
11
LMU-1XXX
Blink Output at
1Hz Rate
10
Description
8-Bit
One-shot
output
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 156 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
15
LMU-2X00
Start/Resume
Timer
14
LMU-1XXX
Stop/Pause
Timer
13
Description
8-Bit
Start/Restart
Timer
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 157 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
18
LMU-2X00
Increment
Accumulator
17
LMU-1XXX
One-shot
Timer
16
Description
8-Bit
Clear Timer
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
Power Up GPS
20
None
Power Up GPS
20
Power Down
GPS
21
None
Sleep (Timer)
22
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 158 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
LMU-1XXX
19
Description
8-Bit
Clear
Accumulator
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.3f
1.3f
1.1e
8.4d
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 159 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
26
Enable/Disable
0 = Disable Sleep
1 = Enable Sleep
2 255 = Reserved
LMU-4100
Start Time
Accumulator
25
LMU-2X00
Output Word
24
LMU-1XXX
Sleep Until
Time of Day
23
Description
8-Bit
Sleep Enabled
Action
Code
Action Name
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 160 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
29
LMU-2X00
28
LMU-1XXX
Stop
Accumulator
27
Description
8-Bit
Start Distance
Accumulator
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 161 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
32
LMU-2X00
Clear Flag
31
LMU-1XXX
Set Flag
30
Description
8-Bit
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
Send/Log
Accumulator
Report
35
Display
Position
36
Comm
Connect
37
Comm
Disconnect
38
None
None
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 162 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
34
LMU-4100
Log
Accumulator
Report
LMU-2X00
33
LMU-1XXX
Send
Accumulator
Report
Description
8-Bit
Action
Code
Action Name
8.1b
8.1b
8.1b
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
Send Log
Status Report
43
Send
Unacknowledg
ed Event
Report
44
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 163 -
LMU-4200
41
41
42
None
LMU-4100
41
LMU-2X00
Send Special
Send Special
Move A/D
value to
Accumulator
40
LMU-1XXX
Send Special
39
Description
8-Bit
Save
Environment
Report Alert
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
X
1.1b
1.2a
1.2d
1.2d
8.1b
8.1b
8.1b
None
December 9, 2010
CalAmp Proprietary & Confidential
1.2d
1.2d
Start Max
Speed
Accumulator
46
Start A/D
Accumulator
47
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 164 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
45
LMU-4100
Send TAIP
Report
LMU-2X00
LMU-1XXX
Description
8-Bit
Action
Code
Action Name
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 165 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
49
LMU-1XXX
Send
Maintenance
Report
48
Description
8-Bit
Decrement
Accumulator
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
54
None
55
None
Power Down
Modem
56
None
- 166 -
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
None
Power Up
Modem
V1.1.9
Copyright CalAmp DataCom Inc 2010
LMU-4200
Move Zone
States to
Accumulator
53
LMU-4100
End
52
LMU-2X00
Return
51
LMU-1XXX
Call
50
Description
8-Bit
Jump
Action
Code
Action Name
December 9, 2010
CalAmp Proprietary & Confidential
Start Speed
Accumulator
58
59
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 167 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
57
LMU-4100
Send SMS
Report
LMU-2X00
LMU-1XXX
Description
8-Bit
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 168 -
December 9, 2010
CalAmp Proprietary & Confidential
1.2d
LMU-4200
LMU-4100
LMU-2X00
LMU-1XXX
60
Description
8-Bit
Select Comm
Profile
Action
Code
Action Name
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 169 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
LMU-1XXX
61
Description
8-Bit
Send Long
Text Message
Action
Code
Action Name
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 170 -
December 9, 2010
CalAmp Proprietary & Confidential
1.2d
1.2d
LMU-4200
LMU-4100
LMU-2X00
63
LMU-1XXX
Start Position
Accuracy
Accumulator
62
Description
8-Bit
Send Short
Text Message
Action
Code
Action Name
8.1b
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 171 -
December 9, 2010
CalAmp Proprietary & Confidential
1.2d
LMU-4200
LMU-4100
66
LMU-2X00
65
LMU-1XXX
Set Application
ID
Send Text
Status Message
64
Description
8-Bit
Move PEG
Flag states to
Accumulator
Action
Code
Action Name
1.2d
8.1b
8.1b
The LMU will set the Text Attributes for the Send
Long and Send Short message Actions based on
the value of the Action Modifier.
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 172 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
68
LMU-1XXX
Set Text
Attributes
67
Description
8-Bit
Start GeoZone
Accumulation
Action
Code
Action Name
8.1b
8.1b
None
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 173 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
70
LMU-1XXX
Application
Restart
69
Description
8-Bit
Action
Code
Action Name
1.2d
1.2d
8.1b
1.2d
1.2d
8.1b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 174 -
LMU-4200
74
LMU-4100
Enable Zone
73
LMU-2X00
Set Zone
72
LMU-1XXX
Serial Message
71
Description
8-Bit
1-Bit Bus ID to
Accumulator
Action
Code
Action Name
8.1b
2600
Only
8.1d
8.2l
1.2d
1.2d
8.1g
1.2d
1.2d
8.1g
December 9, 2010
CalAmp Proprietary & Confidential
77
Hang-Up
78
Send Mini
Report
79
80
81
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 175 -
1.2d
LMU-4200
Answer
LMU-4100
76
LMU-2X00
Dial Number
LMU-1XXX
75
Description
8-Bit
Disable Zone
Action
Code
Action Name
1.2d
8.1g
1.1f
8.2a
1.2h
1.2h
1.1f
8.2a
1.2h
1.2h
1.1f
8.2a
1.2d
1.2d
8.2g
1.2d
1.2d
8.2g
1.2d
1.2d
8.2g
None
December 9, 2010
CalAmp Proprietary & Confidential
Start Max
Acceleration
Accumulator
84
Start Max
Deceleration
Accumulator
85
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 176 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
83
LMU-4100
SendUnacknowledg
ed Mini Report
LMU-2X00
82
LMU-1XXX
Log Mini
Report
Description
8-Bit
Action
Code
Action Name
1.2d
1.2d
8.2g
1.2d
1.2d
8.2g
8.2g
8.2g
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 177 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
87
LMU-1XXX
Start Cell ID
Accumulator
86
Description
8-Bit
Start RSSI
Accumulator
Action
Code
Action Name
1.2d
1.2d
8.2h
1.3f
1.3f
8.2l
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 178 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
LMU-1XXX
88
Description
8-Bit
Divide
Accumulators
Action
Code
Action Name
8.2l
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 179 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
LMU-4100
LMU-2X00
LMU-1XXX
89
Description
8-Bit
Send Binary
Action
Code
Action Name
8.2n
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 180 -
LMU-4200
LMU-4100
92
LMU-2X00
Request Time
Sync
91
LMU-1XXX
Start
Temperature
Accumulator
90
Description
8-Bit
Hibernate
Action
Code
Action Name
1.0j
8.4a
December 9, 2010
CalAmp Proprietary & Confidential
1.0j
(Singl
e
Senso
r)
1.1a
(mult
iple
senso
rs)
1.3f
1.3f
1.1a
8.4a
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 181 -
December 9, 2010
CalAmp Proprietary & Confidential
1.1a
LMU-4200
LMU-4100
95
LMU-2X00
Accumulate
Speed History
94
LMU-1XXX
Message Filter
93
Description
8-Bit
Move
Temperature
Sensor Count
to Accumulator
Action
Code
Action Name
1.1e
8.4d
1.1e
8.4d
Vehicle Bus
Action
99
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 182 -
December 9, 2010
CalAmp Proprietary & Confidential
LMU-4200
98
LMU-4100
Capture Flush
LMU-2X00
97
LMU-1XXX
Add Record
96
Description
8-Bit
Message Flush
Action
Code
Action Name
1.1e
8.4d
1.1e
8.4d
1.1e
8.4d
jPod
jPod
Serial Port
Power Control
102
None
1.3g
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 183 -
jPod
December 9, 2010
CalAmp Proprietary & Confidential
1.3g
1.1g
LMU-4200
101
LMU-4100
Send Null
Message
LMU-2X00
100
LMU-1XXX
Start Vehicle
Bus Command
Description
8-Bit
Action
Code
Action Name
jPod
8.4f
1.0b
V1.1.9
Copyright CalAmp DataCom Inc 2010
- 184 -
December 9, 2010
CalAmp Proprietary & Confidential
2.0a
2.0a
1.1l
LMU-4200
LMU-4100
LMU-2X00
LMU-1XXX
103
Description
8-Bit
Copy
Accumulator
Action
Code
Action Name