Remote Multiple Vehicle Tracking
Last Updated 1500 Friday 29th November 2002
Hi ! I thought it was about time this page, last updated in 1997, was updated again :-)
GPSS has supported multiple vehicle tracking since early 1996. This page explains how you can configure GPSS for this type of remote tracking use. i.e. tracking a number of remote vehicles or targets, rather than only one - your own.
You may wish to look at one or more of the following pages:
Robin Lovelock, Sunninghill
When GPSS is in multi-vehicle mode a "Vehicles Tracked" display appears. There will also be a number of vehicle icons moving around the map.
In recent years the GPSS Baseline has included both a multi-vehicle tracking demonstration, and also the files needed to support tracking of up to 10 targets. You will see the demonstration if you wait long enough, or if you hit Control-C then click on MV DEMO (GPSS gives demonstrations if it does not receive GPS data).
GPSS switches to multiple vehicle tracking mode to give this demonstration.
GPSS also switches to this mode on start up if it finds a file with the name GPSS.MCV
The most important information in GPSS.MCV is the list of objects tracked, at the end of the file. Much of the data earlier in this file is only needed for use with Inmarsat-C, but it must have the correct format, since it is read by GPSS.
Here is an example GPSS.MCV file :
GPSS.MCV Multiple Vehicle Configuration file 4800,n,8,1 Communication baud rate, parity, data bits, stop bits 0 Number of Modem setup commands following 0 Telephone number for BT CSAT service G Username for BT CSAT 4 Password for BT CSAT >>>C Header at front of messages sent to vehicle >>>A Header at front of Acknowledgement messages sent 180 Timeout in seconds for "I'm not receiving GPS data" 1 DNID value expected at start of each message 0 Datatrak telephone number 4 number of vehicles to set up initial values 01,AA,1, 02,AB123,2, 03,4412345,3, 04,AD,4, displayed ID, sender ID, CSAT tel no, initial location any new identifiers would be automatically added to list.
The above is of the correct format, but for Inmarsat-C use would need to be filled in with the appropriate infomation such as telephone numbers, passwords, etc.
The displayed ID (e.g. 01, 02, 03 etc) can be any callsign or alphanumeric string as shown by GPSS. There is advantage in using values 01, 02, 03 to 09, since the GPSS Baseline already includes corresponding files such as icons $MV$01.ICO, $MV$02.ICO, etc. i.e. you can start by using these icons before you create your own - if needed.
The sender ID (e.g. AA, AB123, etc) is the text in the communications message itself. Different communications systems and message formats may provide identification of the sending unit by different methods. e.g. as $AARMC or AB123>GPSS$GPRMC, or by many other methods peculiar to the communications bearer used.
When GPSS recognises GPSS.MCV and switches to multi-vehicle tracking mode, it displays the 'Vehicles Tracked' form - which includes additional controls, and switches from reading GPSS.NME to GPSS.MVD for a demonstration. For real use, these files are normally changed to hold blank data, although any incoming data will cause GPSS to stop reading these files, and only handle real data.
Here is a typical extract from a GPSS.MVD demonstration file :
01>GPSS $GPRMC,152546,A,5123.16,N,00042.14,W,30,072,090299,,*32 02>GPSS $GPRMC,152912,A,5123.74,N,00037.40,W,30,094,090299,,*30 03>GPSS $GPRMC,153111,A,5125.14,N,00038.49,W,30,334,090299,,*35This is one of the message formats implemented by GPSS. It is the standard NMEA RMC message, but with the $GP preceeded by the callsign (e.g. AB123) then the fixed text >GPSS. For simplicity the GPSS Baseline uses User ID = Callsign, but in a real application GPSS.MCV would be used to translate the callsign in the communications message to the User ID appearing on the GPSS screen.
GPSS.MVD is a useful means of testing multi-vehicle system messages "on the desk".
An alternative to the 03>GPSS$GPRMC... format above is to replace the NMEA $GP by $ and two other characters. e.g. $03RMC or $ABRMC. This might be done by simple logic at the transmitter end, replacing the $GP by $AB (or whatever).
There is a checksum at the end of the NMEA message from the GPS :
$GPRMC,051544.00,A,5434.730,N,00553.140,W,,,030497,,*2Di.e. the *2D at the end of the message above, which is direct from a GPS unit.
Any use of messages without a checksum over a real radio bearer would be ill-advised, since the message will often be corrupted. If there is a checksum, GPSS will test it, and if not valid, will reject the message. This rejection is not normally a problem, since another position report would be sent soon.
For systems which replace the $GP by the sender ID (e.g. $AA, $AB etc) the checksum must be re-calculated, since it will be different from that output by the GPS unit.
The following few lines of BASIC code illustrate calculation of the 2 character checksum, which should then be placed at the end of the message after the asterisk *.
t$="$GPRMC,051544.00,A,5434.730,N,00553.140,W,,,030497,,*2D" 'from GPS mid$(t$,2,2)="AA" 'replace the GP by sender ID AA t$=mid$(t$,1,len(t$)-2) 'remove the original checksum chk% = 0 For i% = 2 To Len(t$) - 1 'calculate checksum after $ and before * chk% = chk% Xor Asc(Mid$(t$, i%, 1)) Next i% chksum$ = Hex(chk%) t$ = t$ + chksum$ 'add new checksum