Quickstart
This is nodejs implementation of Meiligao protocol (GPRS communication protocol between server & Meitrack) GPS trackers. It supports following trackers: GT30i, GT60, VT300, VT310, VT400.
To start, install this module with command npm install meiligao
and see events handling and command execution examples.
meiligao.Server
Designed to handle tracker connections. Accepts timeout
option, that is automatically passed to meiligao.Tracker
objects.
var meiligao = ;var server = timeout: 120000 ;
Events
connect
Is emitted when tracker establishes connect with meiligao.Server
. Parameters:
tracker
:meiligao.Tracker
object
disconnect
Is emitted when tracker closes connection. Parameters:
tracker
:meiligao.Tracker
object
Methods
listen
Bind server to the specified port.
Parameter | Type | Description |
---|---|---|
port | integer | Port number |
callback | function | User callback |
server;
meiligao.Tracker
Designed to iteract with GPS trackers. Accepts timeout
option, (which is passed automatically by meiligao.Server
).
var meiligao = ; var server = timeout: 120000; server;
Events
heartbeat
Heartbeat is 0x00
message sent by tracker over time. You can configure it's interval using tracker.setHeartbeatInterval
method.
error
Is emitted when it is not possible to parse tracker's message. Parameters:
Error
: object with error descriptonBuffer
: unparseable message
packet.in
Is emitted every time message is received from tracker, very useful for debugging. Parameters:
meiligao.Message
: message received from tracker
packet.out
Is emitted every time message is passed to tracker, is useful for debugging. Parameters:
meiligao.Message
: message sent to tracker
login
Is emitted after tracker sent 0x5000
login request & successful login confirmation 0x4000
was sent back. In fact, login request can not be used for real authentication, it tells that data sent by tracker will be accepted by server.
If you need to implement authentication, use tracker.getSnImei
method to receive tracker's data & then tracker.disconnect
to disconnect non-authenticated trackers.
message
Is emitted every time tracker sends alarm or report. Parameters:
Object
with following data:type
: message type (seeMessage.types
)data
: parsed resultraw
: raw data
disconnect
Is emitted after connection was closed.
timeout
Is emitted after connection is timed out (timeout can be configured in Tracker options).
Methods
disconnect
Close tracker connection.
var meiligao = ; var server = ; server;
requestReport
Request GPS report (internal: track on demand 0x4101
)
Parameter | Type | Description |
---|---|---|
callback | function | User callback |
tracker;
getSnImei
Request serial number & IMEI from tracker (internal: 0x9001
).
Parameter | Type | Description |
---|---|---|
callback | function | User callback |
tracker;
resetConfiguration
Revert all settings (except for the password, IP, Port, APN, ID and GPRS interval) back to factory default (internal: 0x4110
).
Parameter | Type | Description |
---|---|---|
callback | function | User callback |
tracker;
rebootGps
Reboot the GPS module of the tracker (internal: 0x4902
).
Parameter | Type | Description |
---|---|---|
callback | function | User callback |
tracker;
setExtendedSettings
Set extended tracker settings (internal: 0x4108
).
Parameter | Type | Default | Description |
---|---|---|---|
setting.smsReplyOnCall | boolean | true | Send position report by sms after call is made to the tracker. |
setting.useGPRMSFormat | boolean | false | Use NMEA 0183 GPRMC or normal text (for sms only). |
setting.hangUpAfter5Rings | boolean | false | Hang up after 5 rings. |
setting.enableCallBuzzer | boolean | false | Turn on/off buzzer for the incoming call. |
setting.enableLedLights | boolean | true | When is set to false, lights stop flashing when the tracker is working. |
setting.alarmPowerOn | boolean | true | Send sms alarm to the authorized phone number for SOS, and a GPRS alarm to the server, when the tracker is turned on. |
setting.alarmPowerCut | boolean | false | Send sms alarm to the authorized phone number for SOS when the power of the vehicle tracker is cut. |
setting.alarmGpsBlindArea | boolean | false | Send sms alarm when the tracker enters GPS blind area. |
callback | function | - | User callback |
tracker;
setHeartbeatInterval
Sets specified time interval for heartbeat message (internal: 0x5199
).
Parameter | Type | Description |
---|---|---|
interval | integer | Interval in minutes |
callback | function | User callback |
tracker;
clearMileage
Delete total mileage (internal: 0x4351
).
Parameter | Type | Description |
---|---|---|
callback | function | User callback |
tracker;
setPowerDownTimeout
Set inactivity timeout, after which tracker will go to energy saving mode (internal: 0x4126
).
Parameter | Type | Description |
---|---|---|
interval | integer | Interval in minutes, possible values: 0 - 99, 0 disables timeout. |
callback | function | User callback |
tracker;
getMemoryReports
Read logged data and returns reports array (high-level wrapper for internal command 0x9016
).
Parameter | Type | Description |
---|---|---|
callback | function | User callback |
tracker;
setMemoryReportInterval
Set interval for saving coordinates in memory, when internet is not available (internal: 0x4131
).
Parameter | Type | Description |
---|---|---|
interval | integer | Interval in seconds, possible values: 1 - 65535, 0 - disable. |
callback | function | User callback |
tracker;
clearMemoryReports
Clear reports stored in memory (internal: 0x5503
).
Parameter | Type | Description |
---|---|---|
callback | function | User callback |
tracker;
getAuthorizedPhones
Return authorized phone numbers (internal: 0x9003
).
Parameter | Type | Description |
---|---|---|
callback | function | User callback |
tracker;
setAuthorizedPhones
Set authorized phone for sos button, for receiving sms & calls (internal: 0x4103
).
Parameter | Type | Description |
---|---|---|
smsPhone | string | Authorized phone number for receiving sms. |
callPhone | string | Authorized phone number for receiving phone call. |
callback | function | User callback |
tracker;
getReportTimeInterval
Retrieve reporting time interval from tracker, 1 unit = 10 seconds (internal: 0x9002
).
Parameter | Type | Description |
---|---|---|
callback | function | User callback |
tracker;
setReportTimeInterval
Set reporting time interval (internal: 0x4102
, 0x5100
).
Parameter | Type | Description |
---|---|---|
interval | integer | Reporting time interval, 1 unit = 10 seconds. |
callback | function | User callback |
tracker;
setReportDistanceInterval
Set distance report as per pre-set interval. Sends out alarm when the car is moving and stops sending the report when the car is stationary (internal: 0x4303
).
Parameter | Type | Description |
---|---|---|
meters | integer | Distance interval, is suggested to be set above 300 meters. |
callback | function | User callback |
tracker;
setAlarmSpeeding
Set speeding alarm (internal: 0x4105
).
Parameter | Type | Description |
---|---|---|
limit | integer | Speed limit, 1 unit = 10 kmph. |
callback | function | User callback |
tracker;
setAlarmMovement
Set movement alarm (internal: 0x4106
).
Parameter | Type | Description |
---|---|---|
area | integer | For supported values please see documentation |
callback | function | User callback |
tracker;
setAlarmGeofence
Set geo-fence alarm (internal: 0x4302
).
Parameter | Type | Description |
---|---|---|
latitude | number | Center point latitude |
longitude | number | Center point longitude |
radius | integer | Circle radius, possible values: 1 - 4294967295 |
callback | function | User callback |
tracker;
Under the hood
Command names mapping, message types list & all other stuff related to message processing is located in Message.js file. Original protocol documentation is also included in case you will need deep understanding how Meiligao protocol works.