nmp: Navigation and Messaging Platform

Top  Previous  Next


The NMP, Navigation and Messaging Platform, is a powerful platform that provides the combined functionality of a navigation device with fleet management and advanced messaging support.


The NMP is compatible with the Navigation and MDT functions. Existing programs that use these functions will normally not need to be changed. Only in the initialization phase is it required that the navigation part of the NMP is working before the MDT part is initialized. To start the navigation interface, simply call navOpen the same way as with a non-NMP device. Additionally, it may be required to call nmpPower depending on the hardware configuration used.

To use the MDT functionality, call mdtOpen and then mdtPower when the navigation interface is connected (navWaitEvent #132). Alternatively a loop checking the return code of mdtPower can be used.


The connection between the NMP device and the RTCU device is established through a serial port. In order to use the route-related functions, it is required that gpsFix is called repeatedly, e.g. from a separate thread, to feed the NMP device with GPS data.


To determine if the device is an NMP device and therefore supports the NMP functions as well as the navigation functions, call the nmpPresent function which returns "true" if an NMP is connected and "false" if an ordinary navigation device or no device is connected.

An attempt to use the NMP functionality on a Garmin device will fail with an error code specifying that the feature is unsupported.


It is possible for the user to define multiple buttons at the bottom of the NMP screen. These user-configurable buttons can be controlled with various attributes such as: size, color, text, visibility, and flashing. An event is generated when any of these buttons are pressed by the user and as such allows for a high degree of customization and user control.


Some of the functions are not supported on all NMP devices. To determine the type of device the application is running on, use nmpGetHardwareId.


The following functions are used to access the NMP, in addition to the navigation and MDT functions:



Queries whether an NMP device is present.


Transfers an update to the NMP device and tries to install it.


Reads an update transfer progress report.


Powers the NMP on and off.


Makes a destination pop up when added.


Closes a stop dialog.


Plays a sound on the NMP device.


Shows a dialog with buttons.


Removes a dialog without user interaction.


Reads the clicked button in the dialog.


Reads the type of NMP device that is connected.


Hides/shows menu bars.


Retrieves the coordinates of the home location.


Controls the volume of the device.


Sets the brightness of the backlight.


Retrieves the time since the last user interaction.


Controls the status LEDs on the device.


Enables the use of the hardware buttons on the device.


Rreads the ID of the pressed hardware button.


Opens the connection to a camera and shows what it sees.


Closes the connection to a camera.


Converts 3 RGB color components into a DINT color.


Retrieves the serial number of the SD-CARD.


Starts the GUI for calibrating the touchscreen.


Configurable screen buttons:


Creates a number of buttons.


Initializes a button.


Enables a button.


Sets the visibility of a button.


Sets the width of a button.


Sets the background color of a button.


Sets the text of a button.


Controls the flashing of the button.


Makes the button require confirmation when pressed.


Reads the ID of pressed buttons.




The NMP interface has the following limitations:

navFix is not implemented as the NMP requires an RTCU device with a GPS receiver while navFix is for RTCU devices without a GPS receiver.

The GPI functions are not supported as the NMP cannot parse GPI files. Instead, the POIs will have to be added manually by using the navWaypointSet function.

Only API level 1 and 2 functions are supported.