Sie sind auf Seite 1von 106

SIM UNIVERSITY

SCHOOL OF SCIENCE AND TECHNOLOGY










APPLICATIONS OF GPS IN LOW COST
OBJECT TRACKING SYSTEM








STUDENT : TAN YONG PENG, CHARLES
(J0704259)
SUPERVISOR : DR. TAN BEE KOON
PROJECT CODE : JAN2010/ENG/0047






A project report submitted to SIM University
in partial fulfilment of the requirements for the degree of
Bachelor of Engineering (or Bachelor of Electronics)



January 2010
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
i
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

ABSTRACT

The Global Positioning System (GPS) is a location system based on a constellation of 24 to
32 satellites, orbiting round the earth at altitudes of 11,000 miles. In its earlier years, GPS
was developed in the US, for the military Department of Defense (DOD). Through the years
of development and improvement, we have advanced to being able to use GPS for the
purpose of tracking our precise location worldwide, and as an aiding tool for non-military
usage. Currently, GPS device is used as a navigation tool that assists the user on finding
directions and navigating to the destination. GPS can be used either in the forest for
assistance on finding the way out or in a vehicle to travel to the desired location. As such, it
saves our time, energy and petrol. Eventually, overall GPS improves efficiency in our life.

The main objective in this project is to develop a low cost object tracking system using
limited resources, with the possibility of an added security feature. The low cost GPS object
tracking systems would track the movement and determine the exact location of objectives.
This allows the owner/company to track the delivery objects like goods, cargo, vehicles, etc.
Thus, drivers would not be able to use the vehicle for personal usage, which in return
increases the efficiency. This helps the company save money spent on fuel/petrol and
increases its profit. The GPS can be used as an added security to deter vehicle theft and in
notifying the vehicle owner once the vehicle is being stolen.

In this project, a GPS-enabled tracker, a mobile phone, mobile broadband adaptor,
laptop and application using C# programming language will be used for integration to fulfil
the project objectives. Several functions like retrieving the position, sending SMS, calculation
of coordination will be implemented on the GPS tracker and customized application. In
addition, an application on the laptop or computer will plot the map of the log file of the
coordination (Longitude & Latitude) which the vehicle has travelled.

This report will include topics like objectives, literature review on GPS, SMS technology and
project and time management. More importantly, it will also cover tasks like development
and implementation of conceptualised idea, testing, evaluation and
troubleshooting/debugging of the programmes and systems. These will be covered in greater
detail in later chapters.
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
ii
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
ACKNOWLEGDEMENTS

I would like to take this opportunity to thanks my project supervisor, Dr. Tan Bee Kun for his
patience, guidance, motivation, and utmost support towards completion of the FYP project.
Dr. Tan has guided me towards obtaining the solution consistently so that I am able to
complete my project on time with the tight schedule. He is a tremendously good supervisor
who exhibits his extensive cares, experiences, disciplines and guidance towards his project
students. Additionally, I would like to thanks him with appreciation for his extensive help to
drive me around Singapore landmarks to test the functionally of the applications.

Similarly, I would like to thanks my school mates in Unisim for their morale support and
encouragement. I have grown my learning experiences with them during the schooling time.
And they had made my stay in school a pleasant and meaningful one.

Special thanks to Mr. Matthew Chua from East Gear Pte. Ltd. for loaning GPS tracker for the
project. And thanks to my friend, Chew Yi Xiang for borrowing his mobile adaptor device.

Last but not least, I would like to show my deepest thankfulness to my family and loved ones,
who have shown me their concern and full support.












Student Name/ Student No.: Tan Yong Peng Charles / J0704259
iii
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
TABLE OF CONTENTS
Page
ABSTRACT ............................................................................................................................................................ i
ACKNOWLEGDEMENTS .................................................................................................................................... ii
TABLE OF CONTENTS ...................................................................................................................................... iii
LIST OF FIGURES ................................................................................................................................................ v
LIST OF TABLES................................................................................................................................................. vi
LIST OF APPENDICES ....................................................................................................................................... vi
1 INTRODUCTION .......................................................................................................................................... 1
1.1 Overview of Background ........................................................................................................................ 1
1.2 Project Objectives ................................................................................................................................... 1
1.3 Scope of the Project ................................................................................................................................ 2
1.3.1 GPS Technology ............................................................................................................................... 2
1.3.2 Selection of Hardware Devices ......................................................................................................... 2
1.3.3 Selection of Programming Language ................................................................................................ 3
1.3.4 Concept of SMS Technology ............................................................................................................ 4
1.4 Project Application ................................................................................................................................. 4
1.5 Terms of Reference ................................................................................................................................ 5
1.5.1 Project Design and Development ...................................................................................................... 5
1.5.2 Project Testing and Evaluation ......................................................................................................... 5
1.5.3 Results and Enhancement ................................................................................................................. 6
1.5.4 Troubleshooting and Evaluation ....................................................................................................... 6
1.6 Layout of Project Report......................................................................................................................... 6
2 Project Management ....................................................................................................................................... 8
2.1 Project Planning ...................................................................................................................................... 8
2.2 Project Monitoring .................................................................................................................................. 8
2.3 Project Risk Management ....................................................................................................................... 9
2.3.1 Compatibility Issue ........................................................................................................................... 9
2.4 Cost Management ................................................................................................................................. 10
3 Literature Review ......................................................................................................................................... 11
3.1 Global Positioning System (GPS) Introduction .................................................................................... 11
3.2 Overview of GPS .................................................................................................................................. 11
3.3 GPS Segments ...................................................................................................................................... 12
3.4 Operation of GPS .................................................................................................................................. 13
3.4.1 Triangulation................................................................................................................................... 15
3.4.2 Doppler Measurement ..................................................................................................................... 16
3.5 GPS Applications.................................................................................................................................. 17
3.6 Short Message Service (SMS) Technology .......................................................................................... 17
4 System Integration ........................................................................................................................................ 20
4.1 System Overview .................................................................................................................................. 20
4.2 System Architecture .............................................................................................................................. 22
5 System Design Considerations ..................................................................................................................... 25
5.1 GPS tracker SMS format ...................................................................................................................... 25
5.2 GPS Data source ................................................................................................................................... 26
5.3 Export SMS data ................................................................................................................................... 26
5.4 GPS Errors ............................................................................................................................................ 26
5.4.1 GPS Ephemeris Errors .................................................................................................................... 27
5.4.2 Multipath Error ............................................................................................................................... 27
5.4.3 Satellite and Receiver Clock Errors ................................................................................................ 28
6 Software Developments ................................................................................................................................ 29
6.1 GPS Tracking Software Flowchart ............................................................................................................. 29
6.2 Graphical User Interface (GUI) ............................................................................................................ 31
6.3 Software Implementation ...................................................................................................................... 32
6.3.1 Main GPSTrackingSystem Class .................................................................................................... 32
6.3.2 rdGPSLive_CheckedChanged() Function....................................................................................... 32
6.3.3 rdGPSHis_CheckedChanged () Function ....................................................................................... 33
6.3.4 btnBrowse_Click () Function .......................................................................................................... 34
6.3.5 btnRead_Click() Function ............................................................................................................... 35
6.3.6 btnView_Click () Function ............................................................................................................. 36
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
iv
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.7 btnClear_Click () Function ............................................................................................................. 37
6.3.8 btnReset_Click () Function ............................................................................................................. 37
6.3.9 btnExit_Click Function ................................................................................................................... 38
6.3.10 ReadLiveGPSData(string strpath) Function .............................................................................. 39
6.3.11 ReadHistoryData() Function ..................................................................................................... 42
6.3.12 ConvertFromDMS2DD(string strData) Function ...................................................................... 45
6.3.13 Mid(string strData, int iPos1, int iPos2) Function ..................................................................... 47
6.3.14 KillProcess() Function ............................................................................................................... 48
6.4 Mapping Module .................................................................................................................................. 49
7 TESTING AND EVALUATION ................................................................................................................. 52
7.1 Troubleshooting and Debugging ................................................................................................................ 53
7.1.1 Test Condition 1: GPS Tracking System ........................................................................................ 54
7.1.2 Test Condition 2: Security Features ................................................................................................ 56
7.1.3 Test Condition 3: Track Vehicle position using SMS .................................................................... 58
7.1.4 Test Condition 4: Mapping Feature ................................................................................................ 60
7.2 Functional Test GPS Tracking System .............................................................................................. 62
8 PROBLEMS AND DISCUSSION ............................................................................................................... 63
8.1 GPS Tracker Connection Issue ............................................................................................................. 63
8.2 GPS Tracker SMS Interval Issue .......................................................................................................... 64
8.3 GPS Tracker Timing Issue .................................................................................................................... 65
8.4 Computer Administrator Access Right Issue .............................................................................................. 66
8.5 Google Map Display Issue .................................................................................................................... 67
9 CONCLUSIONS AND RECOMMENDATIONS ....................................................................................... 68
9.1 CONCLUSIONS .................................................................................................................................. 68
9.2 RECOMMENDATION .............................................................................................................................. 68
10 CRITICAL REVIEWS AND REFLECTIONS ........................................................................................ 69
References [Books]............................................................................................................................................... 70
References [Websites] .......................................................................................................................................... 71
Appendix A .......................................................................................................................................................... 74
Specification of GPS Tracker Device, MT80 ................................................................................................... 74
Specification of Huawei E1550 Mobile Adaptor .............................................................................................. 75
Appendix B-1: Gantt chart ............................................................................................................................... 76
Appendix B-2: Activities Breakdown Chart ..................................................................................................... 77
Appendix B-3: Bill of Material (BOM) ............................................................................................................ 78
APPENDIX C ....................................................................................................................................................... 79
GPS Tracker Software Source Code ................................................................................................................. 79
Appendix C-1 Main GPSTrackingSystem Class ....................................................................................... 79
Appendix C-2 rdGPSLive_CheckedChanged() Function ......................................................................... 79
Appendix C-3 rdGPSHis_CheckedChanged() Function ........................................................................... 79
Appendix C-4 btnBrowse_Click () Function............................................................................................. 80
Appendix C-5 btnRead_Click () Function................................................................................................. 80
Appendix C-6 btnView_Click () Function ................................................................................................ 80
Appendix C-7 btnClear_Click () Function ................................................................................................ 81
Appendix C-8 btnReset_Click () Function ................................................................................................ 81
Appendix C-9 btnExit_Click () Function .................................................................................................. 82
Appendix C-10 ReadLiveGPSData(string strPath) Function ...................................................................... 82
Appendix C-11 ReadHistoryData() Function .............................................................................................. 84
Appendix C-12 ConvertFromDMS2DD(string strData) Function .............................................................. 86
Appendix C-12 Mid(string strData, int iPos1, int iPos2) Function ............................................................. 86
Appendix C-12 KillProcess() Function ....................................................................................................... 87
Appendix D .......................................................................................................................................................... 88
Mapping Source Code ...................................................................................................................................... 88
Appendix E ........................................................................................................................................................... 91
Field Testing Results ........................................................................................................................................ 91
Appendix E-1: Journey from Alexandra to Ang Mo Kio ................................................................................. 91
Appendix E-2: Journey from SIM University to Singapore Polytechnic and back to SIM University............. 93
Glossary ................................................................................................................................................................ 98



Student Name/ Student No.: Tan Yong Peng Charles / J0704259
v
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

LIST OF FIGURES

Figure 1.1: Different Views of MT80 GPS Tracker ............................................................................................... 3
Figure 1.2: Mobile Adapter .................................................................................................................................... 3
Figure 2.1: Work Breakdown Structure (WBS) ..................................................................................................... 8
Figure 3.1: The Three Components of the elements of GPS ................................................................................ 13
Figure 3.2: GPS The Error Budget ................................................................................................................... 15
Figure 3.3: Principle of Doppler Shift .................................................................................................................. 16
Figure 4.1: System Process Flow .......................................................................................................................... 20
Figure 4.2: Security setting of GPS tracker using Movement Alarm ................................................................... 21
Figure 4.3: Security setting of GPS tracker using Geo-Fence .............................................................................. 22
Figure 4.4: System Architecture of GPS tracking ................................................................................................ 22
Figure 4.5: MT80 GPS tracker Parameter Editor ................................................................................................. 23
Figure 4.6: Illustration of SMS interval setting to 60 minutes interval ................................................................ 23
Figure 4.7: Illustration of Security setting to 60 minutes interval ........................................................................ 24
Figure 6.1: Flowchart of GPS Tracker with Mobile Adaptor ............................................................................... 29
Figure 6.2: Flowchart of GPS Tracking Application ............................................................................................ 30
Figure 6.3: GPS Tracking System - Graphical User Interface (GUI) ................................................................... 31
Figure 6.4: Flowchart of rdGPSLive_CheckedChanged() function ..................................................................... 32
Figure 6.5: Flowchart of rdGPSHis_CheckedChanged() function ....................................................................... 33
Figure 6.6: Flowchart of btnBrowse_Click () function......................................................................................... 34
Figure 6.7: Flowchart of btnRead_Click() function ............................................................................................. 35
Figure 6.8: Flowchart of btnView_Click () function ............................................................................................ 36
Figure 6.9: Flowchart of btnClear_Click () function ............................................................................................ 37
Figure 6.10: Flowchart of btnReset_Click () function .......................................................................................... 38
Figure 6.11: Flowchart of btnExit_Click () function ............................................................................................ 38
Figure 6.3.12: Flowchart of ReadLiveGPSData(string strpath) function ............................................................. 41
Figure 6.13: Flowchart of ReadHistoryData() function ........................................................................................ 44
Figure 6.14: Flowchart of ConvertFromDMS2DD(string strData) function ....................................................... 46
Figure 6.15: Flowchart of Mid(string strData, int iPos1, int iPos2) Function ...................................................... 47
Figure 6.16: Flowchart of KillProcess() function ................................................................................................. 48
Figure 6.17: Flowchart of Mapping Module......................................................................................................... 50
Figure 6.18: Google Map with Location Markers ................................................................................................ 51
Figure 7.1: Actual Field Testing Equipments ....................................................................................................... 52
Figure 7.2: Process Flow Chart of Troubleshooting ............................................................................................. 53
Figure 7.3: Process Flow chart of GPS Tracking System Debugging .................................................................. 54
Figure 7.4: Screenshot of GPS Tracking System GUI with data from SMS.DTC ............................................... 55
Figure 7.5: Movement Alarm setting and Alert .................................................................................................... 56
Figure 7.6: Illustration of Geo-Fence setting and Alert ........................................................................................ 57
Figure 7.7: Track by SMS .................................................................................................................................... 58
Figure 7.8: Track on Demand ............................................................................................................................... 59
Figure 7.9: Process Flow Chart of Google Map Debugging ................................................................................. 60
Figure 7.10: Confirmation of markers information with log file .......................................................................... 61
Figure 7.11: Functional Testing of the GPS Tracking System ............................................................................. 62
Figure 8.1: USB-to-Serial Adaptor ....................................................................................................................... 63
Figure 8.2: Illustration of Sending SMS to GPS Tracker to set 1 minute ............................................................. 64
Figure 8.3: Illustration of GPS Tracker Time Zone Set ........................................................................................ 65
Figure 8.4: Properties setting of GPS tracking software on Compatibility tab ..................................................... 66
Figure 8.5: Google Map API loaded on Mozilla Firefox Browser ....................................................................... 67
Figure 8.6: Google Map API loaded on Microsoft Internet Explorer ................................................................... 67







Student Name/ Student No.: Tan Yong Peng Charles / J0704259
vi
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
LIST OF TABLES

Table 3.1: Concept development and standardisation of SMS ............................................................................ 19
Table 3.2: Development of SMS in the market ................................................................................................... 19
Table 5.1: GPS data information .......................................................................................................................... 25
Table 6.1: Format of Latitude and Longitude in Degrees Minutes Seconds ......................................................... 45


LIST OF APPENDICES

Figure E-1: Journey of field testing from Alexandra Road to Ang Mo Kio ......................................................... 92
Figure E-2: Journey of field testing from SIM University to Singapore Polytechnic and back to SIM University
.............................................................................................................................................................................. 94
Figure E-3: SIM University .................................................................................................................................. 94
Figure E-4: Ngee Ann Polytechnic ....................................................................................................................... 95
Figure E-5: Sunset Way ........................................................................................................................................ 95
Figure E-6: Singapore Polytechnic ....................................................................................................................... 96
Figure E-7: SingTel Tower at Dover .................................................................................................................... 96
Figure E-8: National University of Singapore (NUS) .......................................................................................... 97
Figure E-9: Ministry of Education (MOE) at Buona Vista ................................................................................... 97


Student Name/ Student No.: Tan Yong Peng Charles / J0704259
1
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
1 INTRODUCTION
1.1 Overview of Background

The Global Positioning System (GPS) is a location system based on a constellation of 24 to
32 satellites orbiting round the earth at altitudes of 11,000 miles. (Robert 2003). Each satellite
is powered by the Sun via its solar panel. (Jeanne Strum 2009). In its earlier years, GPS was
developed in the US for military use, for the Department of Defense (DOD). Through the
years of development and improvement, we have advanced the use of GPS to tracking our
precise location worldwide and as a navigation aiding tool for civilian usage. Currently, it is
used as navigation tool device to assist us in finding the shortest route to our destination. We
can use it either in the forest to help in navigation task or in a vehicle to guide us to our
destination. Runner uses GPS watches worn on wrist to track the distance and route they have
travelled. As such, with the advancement of GPS into our life, we will never lose our way
again which saves us time, energy and petrol. In conclusion, overall GPS improves our
efficiency in our daily life (Jeanne Strum 2009).

1.2 Project Objectives

The main objective in this project is to develop a low cost object tracking system using
limited resources, with the possibility of an added security feature. The low cost GPS object
tracking systems can track the movement and determine the exact location of the object. This
allows the owner/company to track the delivery objects like goods, cargo, vehicles, etc. Thus,
the drivers would be unable to use the vehicle for personal objectives. This helps the
company to save in expenses spent on fuel/petrol and increases their profit margin.

The GPS tracking system can be used as an added security to deter vehicle theft and in
notifying the car owner once the vehicle has being stolen. For instance, the GPS tracker has a
security feature which aid in tracking a stationed vehicle if it moves 50 meters out of the
predefined radius. A SMS will be sent to notify the user that the vehicle is being stolen.
Eventually, the satellite data which is received by the GPS tracker device will be transmitted
to a computer, so as to plot out the travelled route of vehicle on a map. This allows the
tracking of a moving vehicle.


Student Name/ Student No.: Tan Yong Peng Charles / J0704259
2
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
1.3 Scope of the Project

This project requires basic understanding of GPS technology and C# programming in order to
implement the tracking system and complete it on schedule for submission.

1.3.1 GPS Technology

The most important factor in GPS tracking, accuracy is essential to precisely track the exact
location in real-time. There is a need to know the GPS infrastructure layouts, limitations, and
communication protocol. Research will need to be conduct in order to fully understand each
individual component. We need to understand the type of methods used for the GPS
technology and the problem which would affect the performance of the GPS tracker receiving
of satellite signal. More detailed information will be covered in Chapter 2.
1.3.2 Selection of Hardware Devices

With the advancement of technology, we can easily use a GPS tracker to locate our current
position anywhere on the earth. The main advantage of the GPS tracker is that it can track the
location accurately. Nevertheless, it needs to be operated in an open area without any shelter
blocking the satellites signal. Once the GPS tracker detected 4 or more satellites, it will be
engaged. The longitude and latitude can be retrieved from the satellite signal and it defines
the current position (Robert I. Egbert & Joseph E. King 2003).

After a comprehensive search for suitable GPS Tracker, MT80 GPS Tracker is chosen for
this project. MT80 is compact and light weight with dimensions of 15mm thick, height and
width at 61 x 42 mm. The volume is set at 89 cc. The weight, inclusive of battery is a mere 50
grams. It has a relative long battery life of 10 hours and low power consumption with standby
period of up to 4 days (96 hours). It has 2 colours LED which indicates the connectivity with
the satellites and GSM networks. It provides raw satellite data like coordinates, time, latitude,
longitude, etc) with SMS data once it is connected with 4 satellites. For detailed specification
of the tracker, refer to Appendix A.




Student Name/ Student No.: Tan Yong Peng Charles / J0704259
3
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT








For receiving of GPS data, we require a SMS receiver that interface with the computer in
order to capture all GPS information via SMS. Once that information is captured on the
computer, plotting of map is allowed on the waypoints travelled by the GPS tracker by the
vehicle. For SMS receiver, mobile broadband adaptor, Model: E1550 from HUAWEI is
being selected. It is compact with size of 11.5mm (H) x 87.5mm (L) x 26.0mm (W) and
easily installed with USB plug and play interface. Moreover, it supports 3.5G network using
mobile SIM card for ease of fast transmitting rate for SMS. For more detailed specification of
the tracker, refer to Appendix A.






1.3.3 Selection of Programming Language

Although there are various choices of programming language such as C#, C++, Java, Open
GL and Google Map API, C# (C Sharp) is chosen for the project. The reason being, all
programming languages which was implemented from the previous students was C#. This
will shorten the time needed to meet the tight schedule for the implementation, as we can
study and learn from the previous students programming codes in order to improve on the
functionality. Moreover, C# programming software is free after an online registration with
Microsoft. C# programming codes will be implemented and compiled on the latest Microsoft
Visual C# 2010 Express Edition, running on Window Vista Home Premium operating
system.
Figure 1.2: Mobile Adapter

Figure 1.1: Different Views of MT80 GPS Tracker
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
4
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
1.3.4 Concept of SMS Technology

SMS stands for Short Message System. It allows text messages to be sent and received to and
from mobile telephones using the SIM card in the mobile device. Each SMS can hold up to
160 characters based on Latin alphabet. Most importantly, SMS will be used to send to the
recipient as assigned by each mobile number. Therefore, we must ensure both parties
devices are in online mode and connected to the network. If the device is offline, the SMS
will be stored temporarily in the SMS center until the validity of the device is connected to
the network again. This will determine the accuracy of the data in real time situation when
using SMS as a platform to transmit the data (Gwenael Le Bodic 2003).

1.4 Project Application

Basically, most GPS device found in the market are used for vehicles tracking as they
includes a monitor display to navigate to their destination (Jeanne Strum 2009). In this
project, we are using the GPS tracker mainly for tracking vehicles location. Ultimately, GPS
tracking system will be implemented to accurately track the current location of the vehicles
and the route travelled in order to ensure the vehicle is being used for work rather than for
personal objective.

The GPS Tracking system can be used for companies like logistics and dispatch services for
real time status of the post or good delivery. This will ensure that the delivery is on schedule
and accountable to the customer on the current status of the delivery. In addition, it can be
used for improved customer service. For instance, the customer service officer can locate and
plan the service repairman near the customers area for any urgent case of repair request
accordingly. This will speed up the response time to customer and eventually improve the
efficiency.

Movement Alarm will act as a security feature to ensure that the vehicle is not moved out of a
predefined area where it is parked. Once the vehicle moves out of the predefined area, a SMS
will be send to the user to notify that their vehicle is being stolen. The users can than use the
GPS tracking system to efficiency track down and recover their vehicle. This will prevent
vehicle theft from occurring.


Student Name/ Student No.: Tan Yong Peng Charles / J0704259
5
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
In order to fully utilise the GPS tracking system, it can also be used for application such as
small children, pets, high cost equipments, sports. It will ensure the safety and prevent them
from being kidnapped. For instance, as long as the child moves out of the predefined
boundary where he travels from school and home, a SMS will be send to notify the parent.
They can than turn on the tracker system to determine the child current location. This
similarly applies for pets like dog and cat, and high cost equipments. For sports like running,
runner can track the distance they have travelled (Jeanne Strum 2009).

1.5 Terms of Reference
1.5.1 Project Design and Development

The most essential part of the project is the software implementation and correct hardware
chosen to meet the requirements of the project. C# programming language is used to develop
the tracking system. From conception, this project requires a significant amount of planning
and coordination so as to meet the planned schedule of submitting the final report on time.
The main focus will be on the retrieval of SMS data with longitude and latitude, for the
purpose of plotting the map of the vehicle on the computer accurately. Security like
movement alarm will be included in the feature of the tracker to meet the objective. Part of
the time will be spending on researching and understanding of SMS and GPS technology.
Other than that, most of the time will be spent on designing, developing and troubleshooting
on the software.
1.5.2 Project Testing and Evaluation

Debugging will be done at any point of time when each component of the software is ready,
so that problems can be rectified instantly. Therefore testing for each of the components
works before proceeding to next component is important. Once the software is completed,
testing and evaluation will be conducted. Testing would be done from the end users
viewpoint so as to gain a better understanding of what problem they will be facing and what
kind of improvements can be made.



Student Name/ Student No.: Tan Yong Peng Charles / J0704259
6
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
1.5.3 Results and Enhancement

Most importantly, delivery of the results to meet the projects objectives is needed. This
depends on the testing results and review if there is any enhancement needed in order to fulfil
the project objectives.
1.5.4 Troubleshooting and Evaluation

Troubleshooting and Evaluation will be conducted to ensure that there is no error and all the
objectives are delivered correctly.

1.6 Layout of Project Report

Chapter 1: - Introduction which gives a summary of the project objectives, hardware and
software, application and project scope. Further detail on individual component will be
explained in the later chapters.

Chapter 2: - Project management gives information on problem which would be faced
during the project development stage. Therefore, earlier prevention plan plays an important
part of the project.

Chapter 3: - Literature review on researches of background on GPS and SMS technology.
Concepts, principles and application used for GPS are being covered in this chapter.

Chapter 4: - System Integration of GPS Tracking System which plans the project process
flow towards meeting the requirements of the project.

Chapter 5: - Highlight of the problems faced for System Design which aided in the
prevention of the software implementation.

Chapter 6: - Software developments with explanation of each of the functions and flowchart
for further illustration for GPS tracking system.

Chapter 7: - Testing and evaluation methods which show the results of the functionality of
GPS tracking system.
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
7
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

Chapter 8: - Problems which encountered during the process of development for GPS
tracking system and solutions used to fix the issues.

Chapter 9: - It gives the conclusion on what is done and achievement. Recommendations are
included which provides some suggestions to improve and enhance on the project.

Chapter 10: - Reflections on the development of the project. Essentially, the experience and
knowledge learnt from the process of project development.










































Student Name/ Student No.: Tan Yong Peng Charles / J0704259
8
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
2 Project Management

2.1 Project Planning

Planning is the most crucial part in the project. Therefore appropriate planning is needed in
the initial stage of the project. Without proper planning, it will cause time delay or even
failure to deliver the project. The following work breakdown structure in Figure 2.1
illustrates the overall scope skeleton of the project organization.



















2.2 Project Monitoring

A Gantt chart marks the starting and finishing dates of the project. It summarizes all the
events which will take place in bar chart format. The work breakdown structure is clearly
illustrated in the grant chart. Thus, it serves as a good guide for us to be keep in pace with the
schedule to complete the project. However, due to certain deadline for the project completion,
extra effort is needed in the event of unforeseen circumstance such as extra time spends on
troubleshooting of programming codes.

Gantt chart serves as an overview guideline. Please refer to the Appendix A for the Gantt
chart on the project. Majority of the time would be allocated towards troubleshooting on the
software. In regards to project monitoring, the estimated number of days allocated for
completing each of the tasks of the project, is shown in Appendix B.
Figure 2.1: Work Breakdown Structure (WBS)
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
9
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
2.3 Project Risk Management
There are four stages to risk management planning. They are as follows:
- Risk Identification Identifying what is the cause and impact.
- Risks Quantification Marking out what is the probability that the risk will happen
and what is the impact to it.
- Risk Response Finding ways to avoid, reducing the impact and accepting the risk.
There is no point to ponder over it.
- Risk Monitoring and Control Regularly checking status on the outstanding action to
the risk and identifying new risk which might occur.
2.3.1 Compatibility Issue

There are mainly 2 compatibility issues: Software and hardware compatibility.
For software compatibility, the problem which is being faced was that the compiled program
is unable to access the data stored in the computer folder on Window Vista. This prevents the
accessing of the SMS data received. In order to resolve this issue, during each execution of
the program, right click and select Run as administrator is required. Another software issue
is the setting of the MT80 tracker using Parameter Editor Software, in order to send SMS
data set at interval of 1 minute. The current parameter editor only allows set up of 10 minutes
interval. In order to set the interval at 1 minute, the message 0000A1 needs to be send to
the tracker via SMS.

For hardware compatibility, the MT80 tracker needs a special USB-to-Serial Adaptor in order
to interface with the computer to use the Parameter Editor software to configure the setting.
Initially the MT80 tracker came without the USB-to-Serial Adaptor as it is a loan unit. After
checking with the vendor, it is found that the USB-to-Serial Adaptor is required for
communication.





Student Name/ Student No.: Tan Yong Peng Charles / J0704259
10
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
2.4 Cost Management

In order to keep the cost of the project as low as possible, careful tracking of expenditure is
required for the whole project. This is because implementing a low cost GPS vehicle tracking
system is needed. In addition, the claim for the project is kept at S$100. Further information
of the bill of material is summarized in Appendix B.



























Student Name/ Student No.: Tan Yong Peng Charles / J0704259
11
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
3 Literature Review

3.1 Global Positioning System (GPS) Introduction

In 1957, the very first satellite which was sent to space was the Russian Sputnik 1. The
purpose of this mock satellite was to test on its functionality. Sputnik 1would be transmitting
radio signal (Doppler or frequency) which was monitored by researchers from Applied
Physics Laboratory (APL) of the John Hopkins University. Based on the Doppler shifted of
satellite motion, Dr. Frank T. McClure (of APL) discovered that the users location can be
defined from the Doppler Shift measurement (Bowditch, N. 2002; Parkinson, B.W. 1995). In
April 1960, trial satellite (known as Transit) built based on the Doppler Shift measurement
was launched via rockets into space. Similarly, another satellite known as Cicada, was built
based on the same Doppler system by the Union of Soviet Socialist Republics (USSR) after a
short period of time (Parkinson, B.W., 1995). In 1988, the Transit launch program ended.
Eventually, the Transit system was inactive in 1996 (Bowditch, N. 2002).

In the early 1970s, the Transit system was being replaced by Global Positioning System
(GPS) which was conceived by the U.S. Department of Defense (DoD). Global Positioning
System (GPS) was originally designated for military use. The original purpose for
development of the system is the need for Submarines to accurately locate their position
before launching missiles (Robert I. Egbert & Joseph E. King 2003). In 1973, the Air Force
took all the information and put it together into a single program called the NAVSTAR
(Navigation Signal Timing and Ranging) GPS (Jeanne Strum 2009). In the 1980, GPS was
made available to civilians. Until today, GPS can be accessed by both military and civilian
users (FRP 2001). GPS provides continuous positioning, timing and speed information
anywhere in the world regardless of any weather condition. GPS is a one-way ranging
(passive) system which provides usage by many users and can act as security features to track
the users or objects (Langley, R.B 1990).
3.2 Overview of GPS

Global Positioning System (GPS) is a U.S. space-based global navigation satellite system
made of a network of 24 NAVSTAR satellites orbiting around the globe which offers real-
time positioning, navigation, velocity and timing services regardless of weather, day and
night, anywhere on the Earth with open space. Each satellite orbits approximately 10,900
miles above the earth. Each satellite weights as much as 4,000 pounds with 17 feet long solar
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
12
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
panel extended to collect power from the sun. This allows GPS to operate 24 hours a day.
The life span of each satellite is approximately 7.5 years. New satellites are planned and the
system will be maintained.There will be 5 ground stations to ensure that each satellite
functions correctly and maintain its exact position in space (Robert I. Egbert & Joseph E.
King 2003).
3.3 GPS Segments

There are mainly 3 segments in GPS. They are: Space, Control and User (Wells, D.E., et al.,
1987).
1) Space Segment: There are 24 GPS satellites which orbits around the globe. Nominal
orbit height is about 20,200 Kilometres which operates with full 24 hours operation.
Each GPS satellite will transmit a signal to the ground GPS receiver. The GPS receiver
calculates the distance to the satellites. Eventually information like coordination of
current location, time and speed is being retrieved from the receiver (Ahmed El-
Rabbany 2006).

2) Control Segment: It comprised of a Master Control Station which has 5 ground
stations located around the world to ensure that the satellites are functioning properly.
The main control station (MCS) is located in the U.S. GPS satellites use the ground
stations to determine the satellites location, atomic clocks status and other
considerations (Langley, R. B 1991).


3) User Segment: It comprised GPS receivers that are designed to decode the Signals
from the Satellites to determine the position, velocity and time. There are 2 types of
service available to GPS users: -SPS (Civilian) and the PPS (Military). GPS is free to
all users all over the world (Ahmed El-Rabbany 2006).








Student Name/ Student No.: Tan Yong Peng Charles / J0704259
13
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT














3.4 Operation of GPS

At any point of times, there are about 24 operational GPS satellites orbiting around our globe,
which takes a period of 12 hours to orbit complete one full round. At any one point of time,
only 12 satellites can be detected as another 12 is at another side of the earth. Thus, the
satellite orbits the earth twice in a day. The satellites is operated and belonged to the U.S. Air
Force. Ground stations are used to precisely track each and every satellite's status and health.

Theoretically, the satellites broadcast microwave radio signal to earth to determine
positioning in the Ultra High Frequency band. The GPS receiver will pick up the GPS signal.
The GPS signal is made up of 3 different bits of data which are known as pseudo random
code, almanac data and ephemeris data as follows:

1) Pseudorandom code: ID code that detect which satellites are broadcasting
information. The ID code can be view from the GPSs unit satellite information
screen. We used a string of binary numbers to differentiate which satellite the signal is
from. It also tells the time difference between the transmitter and receiver. GPS
satellites are around 20,000,000 meters above the Earth. The shift, which due to
propagation delay is the so-called Time difference. Time difference can be
computed using the formula as shown below:

Time Difference (in seconds) * 2.99792458 10
8
meters/second = Distance (in meters)
Figure 3.1: The Three Components of the elements of GPS
(Illustration from "The Aerospace Corporation")
[ http://www.aero.org/education/primers/gps/elements.html ]
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
14
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

2) Almanac data: Data which has orbital parameters to differentiate between which
satellite is to be seen on the GPS receiver in the unobstructed sky. As such, the
receiver will know which satellite to follow. However, this Almanac data is not
accurate as it can be valid for several months.

3) An Ephemeris data: It allows the receiver to know where the GPS satellite is at any
point of time in the day. Conversely, this Ephemeris data can be only valid for 2 to 4
hours. Essentially, it is quite accurate as the GPS receiver receives the signal to
provide the orbital information that interprets the path which the satellite is following
as its orbits around.

With the aid of pseudorandom code, almanac data and ephemeris data, the GPS receiver can
easily determine the time, date, distance from satellite, velocity and satellite status and
coordination. For the GPS receivers location, a process called triangulation is used. And
there will a shift in frequency called Doppler Effect.


























Student Name/ Student No.: Tan Yong Peng Charles / J0704259
15
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
3.4.1 Triangulation

GPS receiver can use triangulation process to determine the exact position by calculating 3 or
more distance of satellites. For instance, the 1st satellite is 11,000 miles to a point in space.
The 1st satellite is centered in a sphere which has a radius of 11, 000 miles to the surface.
There is a 2nd satellite which has a radius of 12,000 miles to the surface of the sphere. The
point where 2 spheres intersect can define some location points. However, the true location
still cannot be defined as the area coverage is too large. By using the same logic, there is 3rd
satellite which has about 13,000 miles radius to the surface of the sphere. 2 points can be
determined where the 3 satellites spheres intersect. Theses 2 points are far apart which is not
accurate. In order to find the true location, we need a 4th satellite. The in-built clock in the
GPS receiver will need to synchronise with the satellites atomic clocks to accurately calculate
the distance of the satellites to the GPS receiver. This is important as a small difference in the
time for these 2 clocks can cause hundred miles of error. By having 4th satellite predicted
point, we can determine the clock discrepancy between the locations predicted by initial 3
satellites since the GPS receiver clock is imperfect. The 4th satellite can also determine the
elevation (Robert I. Egbert & Joseph E. King 2003).
















Figure 3.2: GPS The Error Budget
(Illustration from "Geneq inc.")
[http://www.sxbluegps.com/gps-error-Budget.html#gpsworks]
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
16
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
3.4.2 Doppler Measurement

When a train is approaching, an increase in pitch of the train whistle is noticed. A decrease in
pitch of train whistle as the train is moving away. Such change in pitch due to physical
phenomenon is known as the Doppler Effect or frequency shift. This effect was name after
the Austrian physicist Christian Doppler (1803-1853) (Seeber, G. 2003). In this example, the
Doppler Effect is the difference in frequency of the acoustic signal received at the observer
and the frequency at the source from the train. Doppler Effect (or frequency shift) occurs
when there is a relative motion (or velocity) between a sound of source (or radiation) and an
observer (or receiver).

The relative motion (or velocity) between the GPS satellites and a GPS receiver (stationary or
in moving motion), the received GPS signal will be Doppler (or frequency) shifted. As such,
parameters like amount of Doppler shift, the satellite velocity, and the receivers velocity can
established a relationship that relates to the relative motion (Kaplan, E. 1996). From the
ephemeris information of the received GPS signal, some GPS receiver can provide Doppler
measurement and use the estimated satellite velocity to determine the receiver velocity.
However, the Doppler (or frequency) shift will not be significant due to the high altitude of
GPS satellites. The Doppler-based receivers may not be accurate enough for some
application (Ahmed EL-Rabany 2006).














Figure 3.3: Principle of Doppler Shift
(Illustration from Windows Team (2000))
[http://www.windows.ucar.edu/tour/link=/earth/Atmosphere/tornado/doppler_effect.html]

Student Name/ Student No.: Tan Yong Peng Charles / J0704259
17
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
3.5 GPS Applications

Global Positioning System (GPS) was originally designated for military use. The original
purpose for development of the system is the need for Submarines to accurately locate their
position before launching missiles (Robert I. Egbert & Joseph E. King 2003).

All GPS receivers make use of orbiting satellites to determine their location. As the
technology advances, there is an increase of usage of GPS. Handheld GPS units can be used
for outdoor sports like hiking, boating, fishing, navigating at Sea, etc. For instance, GPS
receiver can be used to guide the user on the current position when they are lost and navigate
the way out from the woods or sea. GPS receiver can also be used to measure the distance of
ball from the hole for golfers and keeping on the right path for bicyclists.

GPS can be used at work for delivery and courier services, construction, aviation, etc. As
such, the delivery truck and courier services can determine the safest and shortest route to
save time and petrol. Construction companies can accurately mark the point where the
building or underground tunnel is located. Aviator uses GPS receiver to navigate in bad
weather (Jeanne Strum 2009).

There are too many applications for usage of GPS. Most common GPS application is vehicle
navigation. Nowadays, most vehicles install GPS receiver with a monitor to show the user the
shortest route to the destination on the road. Currently cell phones come with integrated GPS
receiver too. In addition, GPS can be used as an emergency locator and security feature to
track vehicles location. The GPS is one way that satellites have becomes part of everyday
lives (Robert I. Egbert & Joseph E. King 2003).

3.6 Short Message Service (SMS) Technology
The origins of SMS messaging remain unknown, as there is no one person that can take credit
for development of the idea. In addition, those involved with the development of SMS
messaging mostly thought it would be a convenient method for sending text message to their
customers carrying mobile devices. No one expected it to be as highly successful in the way
that it is today.
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
18
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Although no one knows who to give credit to for the development of SMS messaging, there
was a discussion within the former leadership of the Technical Committee GSM took place to
straighten out the record. Based on the study and their discussion, they had come out with the
conclusion.
Years before the development of GSM, text messaging was already a known
telecommunication service. The Global System for Mobile communications (GSM) started in
1982 as a pan-European cooperation.

Nordic, German and French operators cooperated together and came out with a Proposal for
text messaging as a service in GSM. The Nordic operators used an access to a message
handling system, which is an identical service to email. Eventually the GSM committee
standardized this service which leads to a technical report on the technical realisation of
access to message handling systems.

The German and French operators mainly concentrated on Short Message Transmission.
Several services centre was assigned to use this service to transmit text messaging over the
current signalling paths which was used by the GSM telephony system with lower-priority
basis. Initially the message was designed to be short which were estimated 128 Octets or
characters. Eventually, it was maximised to 160 characters. In the 1983/4 timeframe, the
concept was developed in the Franco-German cooperation programme.

At the initial stage from February 1985 to the end of 1986, the GSM committee specified the
service features of the Short Message Service (SMS). Most of the works came from Germany
and France.

From 1987 onwards, the technical understanding of SMS was standardised in a small group
known as Drafting Group on Message Handling. The first chairman of drafting group and the
editor of the key technical specification were from Norway (later replaced by the UK). All
technical work was mostly from Finland, France, Norway and the UK. The initial phase of
SMS specifications included items such as service definition, network architecture, topology
and protocols, acknowledgement capabilities, functionality for alerting on messages waiting,
time stamping and capabilities of identifying application protocols.

Student Name/ Student No.: Tan Yong Peng Charles / J0704259
19
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
In the later stage, all SMS standardization in the drafting group was headed by UK. Most of
the technical work was also by UK. Examples of enhancements from this period are
automatic replacement of messages, so-called flash SMS and voicemail icons, followed by
colour and picture capabilities and long SMS.

In conclusion, the origin of the text messaging services in GSM can be found in the historical
development of telecommunication services. SMS was produced by a small group of people.
Work on the standardisation of services and technical realisation was approved by the GSM
committee dealing with the standardisation of the new Pan-European Mobile Communication
Service and System (Friedhelm Hillebrand, et al. 2010).






















Table 3.2: Development of SMS in the market
(Friedhelm Hillebrand 2010, p.21)
Table 3.1: Concept development and standardisation of SMS
(Friedhelm Hillebrand 2010, p.20)
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
20
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
4 System Integration

4.1 System Overview





















The system process flow illustrated in figure 4.1 gives an overview of the system. The system
devices consist of a MT80 GPS tracker, Mobile Broadband dongle key, mobile phone and
laptop which link up via Global System for Mobile Communication (GSM) network in
wireless connectivity. All devices in this project involved have standalone capability. GSM
network is chosen as it has almost full coverage everywhere in Singapore.
GPS tracker will be placed at the dashboard of the vehicle to get satellites connection. GPS
tracker is configured to send short service message (SMS) in every 1 minute interval. 1
minute interval is chosen because it is the shortest time possible to send out SMS. Moreover
high accuracy can be attained as a vehicle travels more than 100 meters in 1 minute without
any traffic congestion. Once the GPS tracker received 3 to 4 satellite signals, it will send the
current location (longitude and latitude), time, date and speed via SMS data. If the GPS
tracker is still searching for satellite signal, previous location information captured by the
GPS Signal
SMS Data
Satellites
MT80 GPS Tracker
GSM Network
SMS Data
SMS Data
Mobile Phone
Laptop
Board Band Dongle Key
Figure 4.1: System Process Flow
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
21
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
GPS tracker is being sent. Mobile Broadband adaptor is to receive the SMS data on laptop
and plot out the multi-points location on the Google map in real time. There are 2 types of
security features in the GPS tracker: movement alarm and Geo-fence. Although both security
features are called geo-fencing, there are different in their functionality. Only one alarm can
be set in either Movement Alarm or Geo-fence Alarm.
Security feature like Movement Alarm will be set on the GPS tracker using SMS from a
mobile phone. Once the GPS tracker in the vehicle exits the preset square scope, it will send
out SMS alarm to the authorized preset phone number to alert the user. The minimum and
maximum distance covered is 30 meters and 2000 meters respectively.














Another security feature is called Geo-fence. User can define the preset square scope. Once
the vehicle moves in/out of the preset square scope, GPS tracker will send out SMS to warn
the user.
XY coordinates for the preset square include Lower-left X, Lower Left Y, Upper-right X,
Upper-right Y. For example: 1140.0000,E,2232.0010,N,11505.1234,E,2333.5678,N. All
Longitudes and Latitudes should be in ASCII format as follows:
1) Longitude: DDDMM.MMMMM,E/W. 4 places of decimal. 0 is needed to be stuffed if
no value available.
2) Latitude: DDMM.MMMM,N/S. 4 places of decimal. 0 is needed to be stuffed if no
value available.
Figure 4.2: Security setting of GPS tracker using Movement Alarm
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
22
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
****EX is to set alarm when the tracker enters the preset square scope. And ****LX is
to set alarm when the tracker exits the preset square scope. **** is the passwords for GPS
tracker. Default password is 0000. In order to turn off Movement Alarm or Geo-fence
function, send ****M0 to the GPS tracker. Both Movement Alarm and Geo-fence security
features will send SMS alarm to the authorized phone number for SOS set by the user.











4.2 System Architecture













As illustrated in figure 4.3, there are 8 modules in the system architecture layout. SMS and
USB interface module are used to configure the GPS tracker. SMS interface module is a
more direct way to configure the GPS tracker. USB interface module requires USB cable and
Figure 4.3: Security setting of GPS tracker using Geo-Fence

Figure 4.4: System Architecture of GPS tracking
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
23
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Parameter editor software to configure. For setting of SMS tracking, it is a one-time
configuration if there are no changes in phone numbers. In addition, installation of hardware
driver is required for communicate with the tracker when connected.












Location module consists of activation of GPS tracker to return its location information
continuously by SMS. The preset interval tracking command is ****AX. The first 4 digits
**** is the tracker password which is preset previously. X is the interval in minute with
range [0, 999]. If X is 0, it will stop tracking by interval. 1 minute interval tracking is chosen
for this project and the GPS tracker password is 0000. In order to set the tracker to 1
minute interval, sending 0000A01 message via SMS is required. This is because parameter
editor software can only set the GPS tracker interval to 10 minutes. Once the interval is set
correctly, the GPS tracker will return Interval Set message via SMS to the mobile phone.











Figure 4.6: Illustration of SMS interval setting to 60 minutes interval
Figure 4.5: MT80 GPS tracker Parameter Editor
Write all setting to the
GPS tracker
Set all setting in GPS
tracker to factory
default
Interval for each SMS
with GPS data to send
out
USB-COM port
number which the GPS
tracker is connected
Mobile numbers which
the SMS with GPS data
will be sent.
Mobile numbers which
the SMS will be sent
when the SOS button is
pressed on GPS tracker. Read current setting
from the GPS tracker
Connect to the GPS
tracker
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
24
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Security module
Security module is used to track if the vehicle moves out of predefined area. Once the vehicle
move out of predefined area, SMS will be sent to notify the user. In order to activate the
security module on the GPS tracker, ****MX command is sent via SMS on a mobile
phone. **** is the password and X is the preset distance to original place. X value is from
0 to 8 with the distance coverage from 30 meters to 2000 meters. If X value is 0, it will turn
off security function. For this project, 50 meters is needed. Therefore, command 0000M2 is
sent to tracker via SMS. Figure 4.7 illustrates the X values with distance coverage and
security setting with SMS.












Graphical User interface
Graphical User Interface (GUI) allows the user to easily visualize and control the GPS
tracking system software with a few buttons assigned to perform different tasks.

Mapping module
Mapping module will plot and display the waypoints/route travelled by the vehicles on
Google map. On top of that, the latitude, longitude, date, time and speed information will be
prompted when the point on the Google map is selected.

History log module
History log module allows the user to keep a history record of the path that the vehicle has
travelled previously. As such the locations travelled in a week or a month can be easily
retrieved by the user. Eventually, this history file can be plotted and view on Google map.
Figure 4.7: Illustration of Security setting to 60 minutes interval
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
25
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
5 System Design Considerations

For development of the GPS tracking system, further understanding of the data information
received and errors affecting the GPS tracker performance are the most important factors to
consider for system design. This will be discussed in greater detail in this chapter.

5.1 GPS tracker SMS format

The SMS format sent out by the GPS tracker is latitude and longitude reading follows by
speed in kilometre per hour, and follow by date and time. Other than the latitude and
longitude, the rest of the data are separated by a comma. The data can be separated by the
comma to retrieve each of the information in the software implementation. The SMS format
is shown as follow:





While the GPS tracker is still searching for the satellites signals, the Last: text will be
prefixed in front of the SMS format. From this, it can be ascertained if the GPS tracker is
being engaged with the satellites. Once the GPS tracker engaged with 3 or more satellite, the
Last: text will be removed.





Position Data Fields Description
A Latitude = 01 17 09.36N Latitude (Degrees Minutes Seconds)
B Longitude = 103 48 37.60E Longitude (Degrees Minutes Seconds)
C Speed = 17.0Km/h Speed in Kilometre per hour
D 2009-09-21 Date [Year-Month-Day]
E 16:26 Time in 24 hours format
A
B C D E
Table 5.1: GPS data information
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
26
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
5.2 GPS Data source

The mobile broadband adaptor is using Mobile Partner software to interface with the
computer to receive the SMS data. Eventually, the SMS will be stored in the C: drive folder.
Therefore the location of the data which it is stored is needed in order to retrieve the live GPS
information. After a search through the computers folder, the SMS data is stored in
C:\Program Files\Mobile Partner\userdata as SMS.DTC. In the event that the SMS.DTC
file is deleted, the SMS data is still intact. This is due to the same SMS data being saved
separately in C:\Program Files\Mobile Partner\userdata\SMS as SMS.BA1, SMS.BA2 and
SMS.BA3. All SMS data will be gone once SMS.DTC, SMS.BA1, SMS.BA2 and SMS.BA3
are deleted. After all SMS data are deleted, the Mobile Partner needs to reboot in order to
avoid any error. The error is caused by SMS data received not being save in the default
folders. Eventually all SMS data will be gone after the mobile partner software is closed. This
issue will be taken into consideration when designing the system software.

5.3 Export SMS data

In order to export all the SMS with location information for future reference, there is an
option in the mobile partner software to do so. The SMS data will be exported as Microsoft
Excel CSV format. As such, the SMS data can be saved as history log file accordingly for
reference. By this function, it can be used to plot and viewed on a map for easy reference.

5.4 GPS Errors

GPS errors might be coming from either the satellites or GPS receivers. Some error is caused
by atmosphere conditions such as signal propagation errors due to the GPS signal passes
through the atmospheric layers. The atmospheric layers which consist of the ionosphere and
troposphere will cause delays to the GPS signal as it passes thorough. The geometric
locations of the satellites will also cause inaccuracy to the GPS signal received by the GPS
receiver. If the satellites are spread out over a greater distance, the GPS signal received by the
receiver will be more accurate (Ahmed El-Rabbany 2006).


Student Name/ Student No.: Tan Yong Peng Charles / J0704259
27
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
5.4.1 GPS Ephemeris Errors

As the satellite orbits in space, it will send out information to the monitoring stations.
However, the operational control system takes 1 hour in order to predict fresh satellite orbital
element, with overlapping of every 4 hours. This will cause errors in the estimated satellite
positions which are known as ephemeris errors. With an additional 6 monitoring stations as
control segment, the ephemeris errors dropped from order of about 2 meters to 1.6 meters. As
a result, there is an improvement of 20% accuracy. (IGS 2009)
Different users or receivers face the satellite in different view angles. Therefore there are
different range measurements of position in ephemeris errors. The combination measurement
of 2 receivers to track position of a satellite cannot fully eliminate the ephemeris errors.
However if 2 users or receivers are of a closer distance, they will receive the same range error
caused by ephemeris error, which can be removed through differencing the observations. The
separation of the 2 users is also known as baselines. There is a general rule given to give an
estimation of the effect of the ephemeris error on the baseline: baseline error/baseline
length=satellite position error/the range satellite (Wells, D.E., et al. 1987). For instance,
satellite position of 1 meter with baseline length of 100 kilometres gives the expected
baseline error due to ephemeris error is about 5 kilometres (Ahmed El-Rabbany 2006).
5.4.2 Multipath Error

Multipath Error occurs when the GPS signal reaches the GPS receiver through more than one
path. The GPS signal will either bounce off from big object such as buildings before reaching
the GPS antenna or directly travel towards the GPS receiver (Wells, D.E., et al. 1987)
The GPS original signal will be distorted when the reflected signals arrive at the GPS antenna
together. This will cause interference to both carrier-phase and pseudorange measurements.
With further improvements to signal processing, technologies like narrow correlator,
multipath estimating delay lock loop, and strode techniques can reduce a lot on the actual
pseudorange multipath (Linyuan X. 2004). There are several ways to reduce the effect of the
multipath error. One way is to choose a site with no obstruction to the GPS receiver antenna.
Another way is to use a GPS receiver which has the multipath mitigation techniques. Using a
chock-ring antenna (a device in ground level which has several concentric metal hoops to
attenuate the reflected GPS signals) will also reduce the multipath effect (Weill, L. R. 1997).

Student Name/ Student No.: Tan Yong Peng Charles / J0704259
28
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
5.4.3 Satellite and Receiver Clock Errors

Each older generation GPS Block II and Block IIA satellite has 4 atomic clocks: 2 cesium
and 2 rubidium (Langley, R. B. 1991). Newer Block IIR satellites only have 3 rubidium
clocks (U.S Naval Observatory). Even though GPS atomic clocks are highly accurate, they
are not perfect. There exists a satellite clock error of about 8.64 to 17.28 ns per day which
contributes to a range error of 2.59 meters to 5.18 meters. Cesium clocks have better stability
over long period of time for 10 or more days as compared to rubidium clocks (Langley, R. B.
1991).
Satellite clocks cause more errors to the GPS measurements. However the errors can be
corrected by differencing between GPS receivers connecting to the same satellite. The
satellite clock errors can also be solved by applying the satellite clock correction in the
navigation message. However there is still 7ns of error which results a range error of 2
meters. 1 ns is equivalent to a range error of 30 cm (El-Rabbany 1994).



















Student Name/ Student No.: Tan Yong Peng Charles / J0704259
29
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6 Software Developments

6.1 GPS Tracking Software Flowchart

The following flowcharts illustrate the overview of the GPS tracker with Mobile adaptor and
GPS Tracking application in Figure 6.1 and 6.2.




























Yes
Start
GPS Tracker
engaged with
satellites
GPS Tracker
searches for
satellites signal
GPS Tracker starts to
send SMS with current
location at every 1 min
interval
No
GPS Tracker starts to
send SMS based on
previous location at
every 1 min interval
Mobile Adaptor
receives SMS and
store in local C: drive
Monitor User
click selection
button in GUI
End
Figure 6.1: Flowchart of GPS Tracker with Mobile Adaptor
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
30
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

































No
Figure 6.2: Flowchart of GPS Tracking Application
Browse
to file
Search and
select .CSV
format file
No
No
Yes
Yes
No No
End
View on
Map
Success
Clear
Data
Success
Reset
Success
Exit
Success
GPS
Live
Data
GPS
History
Data
Monitor User
click selection
button in GUI
Show on grid
view table and
number of records
Read
Data
Success
Plot waypoints on
Google maps
Delete all SMS
data and set to
default
Restart Mobile
Partner
program
Yes
Yes
Exit Program
Clear grid view
table
Yes
Read Data View on
Map
Clear Data Reset Exit
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
31
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.2 Graphical User Interface (GUI)

The Graphical User Interface (GUI) for the GPS tracking system which is illustrated in
Figure 6.3 allows the user to operate the system easily with selection of GPS data and control
buttons.



















There is a selection of GPS live data and GPS history data to toggle between which GPS data
is required. Once the GPS tracker is power on, it will send SMS data of current location of
vehicle in 1 minute interval. When GPS live data is chosen, click on Read Data button will
read and display latest GPS live data of travelled route of the vehicle in the grid table below.
View on Map button will plot the travelled route on the Google map. Clear Data button
will clear the display on grid table. Reset button will delete all GPS Live data in the C:
drive and restart the Mobile Partner software. Exit button will close the GPS tracking
program. The same applies for the GPS History data. A difference being the user is required
to click the Browse button and select the history log file.

Figure 6.3: GPS Tracking System - Graphical User Interface (GUI)
Read and display
GPS data of
latitude, longitude,
speed, date and time
on table, and total
GPS records
View map plotting
of travelled route on
Google map
Select GPS
Live data
Select GPS
History
data
Browse to
select GPS
history log file
in CSV format
Exit Program
Clear GPS data
in the table
Reset to delete
all live GPS data
and restart
Mobile Partner
program

Total GPS records
GPS data of travelled
route in latitude,
longitude, speed, date
and time
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
32
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3 Software Implementation

The program source codes can be retrieved in Appendix C. The following sections will
explained the implementation of each function in more detail.

6.3.1 Main GPSTrackingSystem Class

The main GPSTrackingSystem class is used to initialize declaration of the global variables
and Graphical User Interface (GUI) form of the GPS tracking System program. All the
functions are declared in the class too. The variable and directories for each of the functions
is declared in the function itself for easy reference. Functions are classified as #region follow
by the main function name for easy reference of each module. There are total of 5 different
modules which includes Variables, Form method, Radio Option Control, Control Button and
User Defined Functions. Inside each of the module, it includes different functions which will
be further elaborate in the following sections.
6.3.2 rdGPSLive_CheckedChanged() Function

This function will perform a clearing of File name text column, grid view table, Total GPS
Records and turn off GPS History Data radio button when the GPS Live data radio button is
selected.













Figure 6.4: Flowchart of rdGPSLive_CheckedChanged() function
Start
Clear file name
text column
Clear Grid
table with GPS
data
Clear Total
GPS Records
End
Turn GPS
History Data
radio button to
off
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
33
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.3 rdGPSHis_CheckedChanged () Function

This function is a radio button which will perform certain commands when it is being
selected. When it is selected, it will turn on GPS History Data radio button, clear the file
name text column, total GPS records and grid view table which contains the GPS data.
Eventually, GPS Live data radio button will be turn off.


























Figure 6.5: Flowchart of rdGPSHis_CheckedChanged() function
Turn GPS Live
Data radio
button to off

Start
Clear file name
text column
Clear Grid
table with GPS
data
Clear Total
GPS Records
End
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
34
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.4 btnBrowse_Click () Function

btnBrowse_Click () is activated when it is clicked by the user. It will clear the file name
column, open a browse file dialog which enabled the user to browse to the GPS History Data
location, which was exported from Mobile Partner software. There is a filter to select
only .CSV format file for the History GPS data. When the file is chosen, it will trim the file
name of the history GPS data location and display on the file name column. If there is no file
selected, it will exit the function and do nothing.


























Figure 6.6: Flowchart of btnBrowse_Click () function
Start
Is the open
dialog file
name is
empty?
Clear open
dialog text
Clear file
name column
Set filter to
CSV format
Exit this function
Trim location name to
display at file name
column
Point to selected file
location for the reading
of GPS data
End
Yes
No
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
35
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.5 btnRead_Click() Function

This function clears the grid view table and total GPS records. If the GPS Live Data radio
button is selected, it will fix the file name to C:\Program Files\Mobile
Partner\userdata\SMS.DTC and read the data displayed at the grid view table. Otherwise it
will read the GPS history data.







































Figure 6.7: Flowchart of btnRead_Click() function
Start
Is the GPS
Live Data
radio button
checked?
Read GPS
History Data
Clear grid view
table
Clear total GPS
records
Read GPS Live data
from C:\Program
Files\Mobile
Partner\userdata\SM
S.DTC
Yes
No
End
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
36
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.6 btnView_Click () Function

Basically, this function allows the user to view the travelled route of the vehicle plotted on
Google map. If the grid view table has no data, it will do nothing. If the GPS Live Data radio
button is selected, it will load the live data in web for Google Map API from file location
C:\\GPSTrackerLive.html. Otherwise it will load the data web for Google Map API from
file location C:\\GPSTrackerHis.html.








































Exit this function
Yes
Figure 6.8: Flowchart of btnView_Click () function
Start
Does the
grid view
table contain
any data?
No
Yes
Load the history data in web
for Google Map API from
file location
C:\\GPSTrackerHis.html
Is the GPS
Live Data
radio button
is checked?
No
Load the live data in web
for Google Map API from
file location
C:\\GPSTrackerLive.html

End
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
37
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.7 btnClear_Click () Function

This function clears all texts or data in grid view table, file name column, total GPS records,
file location name and set to check GPS Live data radio button.





















6.3.8 btnReset_Click () Function

There are many tasks performed in this function. First of all, this function will perform a
kill process to Mobile Partner software. If the kill process of Mobile Partner is
successful, it will delete the master file in the following locations:
1) C:\Program Files\Mobile Partner\userdata\SMS.DTC
2) C:\Program Files\Mobile Partner\userdata\SMS
For files in C:\Program Files\Mobile Partner\userdata\SMS, there are 3 files. Loops are
used to delete the 3 files: SMS.BA1, SMS.BA2 and SMS.BA3. All the data in the master file
will contain the SMS information received. Therefore, deleting these files will reset the
system to default. If any of these files is not deleted, the Mobile Partner software will retain
all the previous SMS received. Once all these files are deleted successfully, the Mobile
Partner software will reboot. The reason being if the Mobile Partner software is not rebooted,
it will face issue of SMS data not being stored in the C: drive. Essentially, error messages are
being catered for when there is any error occurred during the process of files deletion.
Start
Clear grid view table
Clear file name column
Clear file location name
Clear Total GPS Records
End
Figure 6.9: Flowchart of btnClear_Click () function
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
38
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT




















6.3.9 btnExit_Click Function

This is the simplest function of all as compared to all other functions. It simply exits and
closes the program.








Start
End
Exit and close
the program
Figure 6.11: Flowchart of btnExit_Click () function
Figure 6.10: Flowchart of btnReset_Click () function
Start
Yes Yes
Kill process of
Mobile Partner.exe

Delete SMS.DTC
file in
C:\Program
Files\Mobile
Partner\Userdata

No
Prompt System failed
to process SMS
Master file
Delete SMS.BA1,
SMS.BA2 and
SMS.BA3 file in
C:\Program
Files\Mobile
Partner\Userdata\
SMS

No
Prompt System failed
to process SMS
details file
Start Mobile
Partner.exe in
C:\Program
Files\BroadBand
on
Mobile\BroadBand

No
Prompt System failed
to start Mobile
Partner
End
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
39
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.10 ReadLiveGPSData(string strpath) Function

In this function, strPath is declared as a variable. First of all, this function will check for and
delete GPS_Livelog.txt in C: drive if there is any. If there is no data or file existing in the
C:\Program Files\Mobile Partner\userdata\SMS.DTC, the program will exit from this
function. If the SMS.DTC file exist, the program will read all the data from SMS.DTC using
stream reader (.Net object to read data from file).After reading successfully, it will than close
the stream reader object. Setting the retrieved data to nothing (NULL) is in order to prevent
unnecessary error message such as File is in use). If there is no content in the SMS.DTC,
exit the method and do nothing.

Clear the NUL information in the file for ease of extracting of important data later.
Declaration of string array which contains the delimiters jL and L+ which is prefixed at
the front of every new SMS data received. Based on the delimiter, splitting of the data into
line by line for each SMS data in array row as all SMS data received are bundled together.
Exit splitting method when all the data are being split in array index.

It will force all the characters got from SMS.DTC to uppercase for LATITUDE,
LONGITUDE and SPEED. If all 3 uppercase texts are missing, it will continue to check
on the next line. When it has all 3 texts in uppercase, it will split this line. It will follow
another splitting will by commas as the 4 data: altitude & longitude, speed, date and time are
separated by commas. If there are no 4 data for the splitting, it will continue to go to the next
line and check. Remove the Last: text which will be appearing at the prefix of the data
when the GPS tracker is still not detected 3 and above GPS satellites signals. Remove all the
data wordings like Latitude=, Longitude= and Speed from the data. Extraction of data
and time data without removing any words as both data and time does not come with any
prefix characters. Eventually, add all the data to the grid view table in rows of Date/Time,
Latitude, Longitude and speed formatEssentially, the Latitude and Longitude data are
converted from Degrees Minutes Seconds format to Decimal Degrees format using
ConvertFromDMS2DD(string strData function which will be explained in Section 6.3.12.
The total GPS records display field are updated with number of rows of GPS data in grid
view table. Creating and writing the data information to C:\GPS_Livelog.txt is done. If
there is any error in executing any of the methods, there will be *Exception error* message
prompted.
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
40
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT


















































Yes
Yes
No
No
End
No
Is the SMS.DTC
exists in C:\Program
Files\Mobile
Partner\userdata
No
Yes
Start
Yes
Delete
GPS_Livelog.txt
Exit from
the method
Read all data in
SMS.DTC and
close the file
Is
SMS.DTC
content
empty?
Exit from the
function
Yes
Yes
Prompt
*Exceptio
n Error*
error
message
No
Is
GPS_Livelog.txt
exists in C:
drive?
Clear all
NUL data in
SMS.DTC

Split data into rows in
SMS.DTC starting
with delimiters jL or
L+ into rows of
array
A
No
No
Yes
Yes
A
No
Yes
Yes
Is the length
of each SMS
data contains
4 data field?
Continue
next loop
if any
No
Force the data get from
SMS.DTC to Uppercase
and do checking

Split Latitude &
longitude,
Speed, Date and
Time into 4
columns by ,

Clear the data
with a prefix
LAST: if
any

Delete the
wordings
contains
Latitude,
Longitude,
Speed
B
Prompt
*Exceptio
n Error*
error
message
End
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
41
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT


















































No
Figure 6.3.12: Flowchart of ReadLiveGPSData(string strpath) function
End
Yes
Yes

Prompt
*Exception
Error* error
message
No
B
Add all data to
grid view table in
order of Date
Time, Latitude,
Longitude and
Speed
respectively

Count and
display row
numbers of
record at Total
GPS Records
field

Create and write data to
C:\GPS_Livelog.txt in order
of Date Time, Latitude,
Longitude, Speed
respectively.
Latitude and Longitude are
converted from Degrees
Minutes Seconds format to
Decimal Degrees format using
ConvertFromDMS2DD(string
strData function

No
End
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
42
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.11 ReadHistoryData() Function

Both ReadLiveGPSData(string strpath) Function and ReadHistoryData() Function are quite
similar. The main difference is the data is read from different folder location (need browsing)
and different format (SMS.DTC and filename.CSV respectively). First of all, the function
will check for GPS_HisLog.txt in C: drive. If GPS_HisLog.txt is existed, delete the file.
Based on the file location selected from the browse button, it will check for the existent of the
file. If there is no file selected or no existing file, exit ReadHistoryData() function. Read all
contents from the selected file and close it. Set the retrieved data to nothing (NULL) in order
to prevent unnecessary error message like File is in use). If there is no content in the
selected file, exit the function. Clear all unnecessary data from the read data. Clear the text
containing Name/Number, Content and Time which is the title of the column when the data is
exported from Mobile Partner software. Split the read data line by line in rows. If there is any
empty line, it will go to next line. Removal of white space and LAST: character if there is
any. Counting is performed for the data with commas as a reference point. If the data is not
having any of 6 field lengths of data, it will exit the function. The 6 field length of data
consists of phone number, Latitude and Longitude, Speed, GPS Time, Data and time when
the SMS is received. Removal of the text information like Latitude=, Longitude= and
Speed= which is prefix in each of the GPS data. Add the field data into order to Date,
Time, Latitude, Longitude and Speed respectively to the grid view table. Essentially, the
Latitude and Longitude data are converted from Degrees Minutes Seconds format to Decimal
Degrees format using ConvertFromDMS2DD(string strData function which will be explained
in Section 6.3.12 . The total GPS records display field are updated with number of rows of
GPS data in grid view table. If there is any error in executing any of the methods, there will
be *Exception error* message prompted.









Student Name/ Student No.: Tan Yong Peng Charles / J0704259
43
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT


































End
Yes
Start
No
Delete
GPS_Livelog.txt
Is the selected
.CSV file
exists in the
browse
location
Yes
No Exit from
the method
Read all data in
select and close
the file
Is .CSV file
content
empty?
No
Yes
Exit from the
function
Yes
Prompt
*Exception
Error* error
message
No
Is
GPS_Hislog.txt
exists in C:
drive?
End
Clear all
unnecessary
data from the
read content

A
No
Yes
Clear the text
Name/Number
, Content,
Time
A
Split the
data into
line by line
format

Remove
spacing and
LAST:
text from the
data

Split the data
based on
commas as
reference
point

Yes
Yes
Yes
B
Prompt
*Exception
Error* error
message
End
No
No
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
44
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT















































Count and display row
numbers of record at
Total GPS Records field

Create and write data
to
C:\GPS_Hislog.txt
in order of Date
Time, Latitude,
Longitude, Speed
respectively.
Latitude and
Longitude are
converted from
Degrees Minutes
Seconds format to
Decimal Degrees
format using
ConvertFromDMS2D
D(string strData
function


Figure 6.13: Flowchart of ReadHistoryData() function
No
No
Yes
Yes
No
Prompt
*Exception
Error* error
message
Is the length of each
SMS data contains 6
data field which are
phone name, Latitude
and Longitude,
Speed, Date, time and
extra information?
Yes
B
Clear all the
prefix text:
Latitude=,
Longitude=a
nd Speed=
Add all data to
grid view table
in order of Date
Time, Latitude,
Longitude,
Speed
respectively

C
End
No
No
C
Count and
display row
numbers of
record at Total
GPS Records
field

Create and write data
to
C:\GPS_Hislog.txt
in order of Date
Time, Latitude,
Longitude, Speed
respectively.
Latitude and
Longitude are
converted from
Degrees Minutes
Seconds format to
Decimal Degrees
format using
ConvertFromDMS2D
D(string strData
function


Yes
End
Prompt
*Exception
Error* error
message
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
45
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.12 ConvertFromDMS2DD(string strData) Function

All the conversion for the latitude and longitude from Degrees Minutes Seconds format to
Decimal Degrees format will be done in this function. The conversion purpose is for use in
Google map to display the route travelled by the vehicle. First of all, it will split the latitude
or longitude data based on the spacing in-between passed from ReadLiveGPSData(string
strpath) and ReadHistoryData() functions. It will check if the split data is in length of 3. For
instance, 01 19 46.92N or 103 46 05.10E will have 3 data after splitting. After splitting
of data, we will have 10, 19 and 46.93N for latitude or 103, 46 and 05.10E for the longitude.
If it is not with the 3 data length, the function will exit. This is the direction facing on the map
coordination. Format of the latitude and longitude is shown in Table 6.1.

Latitude format 01 19 47.71N
Degrees: 01
Minutes: 19
Seconds: 47.71
Longitude format 103 46 33.31E
Degrees: 103
Minutes: 46
Seconds: 33.31



The following formula is needed for the conversion from Degrees Minutes Seconds format to
Decimal Degrees format for Latitude and Longitude:

|
.
|

\
|
+
|
.
|

\
|
+
3600 60
Second Minute
Degree
If there is West or South, we need to multiply the answer by -1.
Example:
If we got 103 46 33.31E for the Longitude, we will deduce the equation as follow:
77591945 . 103
3600
31 . 33
60
46
103 =
|
.
|

\
|
+
|
.
|

\
|
+
Since it is East at the back of the second, we get position value without multiplying by -1.
Eventually, the converted data in Decimal Degrees format will return as string data.

Table 6.1: Format of Latitude and Longitude in Degrees Minutes Seconds
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
46
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT











































Figure 6.14: Flowchart of ConvertFromDMS2DD(string strData) function
Start
Is the data
length = 3?
Split the
latitude or
longitude data
based on space
in -between
Yes
No
Exit the function
Convert the latitude or
longitude value from
Degrees Minutes Seconds
format to Decimal
Degrees format
End
Return the converted
data in Decimal Degrees
format as string
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
47
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.13 Mid(string strData, int iPos1, int iPos2) Function

First, the function will check if the strData passed in is blank. If it is blank, it will exit the
function. Else it will trim the total length of the string of data passed in. Eventually, the
trimmed data will be return to other functions which contains the variable.




































No
Start
Is strData
passed in
blank?
Trim the total length of
the data
End
Return the trimmed data to
other functions containing
strTmp variable
Yes
Exit the function
Figure 6.15: Flowchart of Mid(string strData, int iPos1, int iPos2) Function
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
48
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.3.14 KillProcess() Function

This function is simply used to close the process in the task manager and reopen the Mobile
Partner software. The purpose of this function is to restart Mobile Partner software after reset
button is being selected. If not, there will be error in Mobile Partner like the SMS is not
stored in the folder.



























Figure 6.16: Flowchart of KillProcess() function
Start
Get process list
running in the Task
Manager
Find Mobile
Partner.exe
and kill the
process

End
Yes
No
Prompt
*Exception
Error* error
message

Student Name/ Student No.: Tan Yong Peng Charles / J0704259
49
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
6.4 Mapping Module

Last but not least, the mapping module which is used to plot and display the route travelled
by the vehicle uses Google Maps API. It can be easily retrieved by registration on the
website: http://code.google.com/apis/maps/signup.html to get an API key. The Google Maps
API allows us to embed the Google Maps in own webpage. Essentially, Google Maps API
runs on JavaScript. Therefore, JavaScript needs to be installed and enabled in the browser.

Once the Internet Explorer browser is launched with the Google Maps API, it will check the
compatibility of the browser and availability of JavaScript. If the browser is not compatible
such as Mozilla Firefox, it will show the browser as a blank screen. Therefore Internet
Explorer is a must for the Google Maps API. Internet connection is essential for the html file
to retrieve the map images from the internet. If protected mode is enabled, allowed block
content is needed to show the Google map. After being successfully launched, it will show
Google map with zooming and panning control at the top left and 3 map viewing mode of
Map, Satellite and Terrain.

The Google map will be plotted with the information from GPS_LiveLog.txt or
GPS_HisLog.txt. In addition, information like time stamp, Latitude, Longitude, Speed and
Address will be retrieved. Data in the log file is split up by commas to string of array using
parts = lines[i].split(",") command. var marker = createMarker(point,time,lat,lng,speed)
Command is used to create the marker on the Google map. geocoder.getLocations(point,
function(response) Command helps to get the actual address based on the decimal degrees
format of Latitude and Longitude. realaddress = place.address command will show only the
address name. By clicking on the marker plotted on the map, it will reveal the time stamp,
Latitude, Longitude, Speed and Address.








Student Name/ Student No.: Tan Yong Peng Charles / J0704259
50
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT


































End
Is the
internet
browser
compatible?
No
Is the
Protected
Mode
enabled?
Prompt warning
message
Yes
Yes
No
Allow Blocked
Content
Load Google
Map with control
Retrieve data from
GPS_LiveLog.txt and
GPS_LiveLog.txt
Create markers
on the map based
on the
coordination
information
Is the
maker
clicked by
the user?
Yes
Display time stamp,
Latitude, Longitude,
Speed and get actual
address
Start
Figure 6.17: Flowchart of Mapping Module
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
51
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
The source code for the mapping module can be found from Appendix D. As mentioned
earlier, there are 3 different modes: Map, Satellite and Terrain. Figure 6.4.1 shows the
markers plotted on Google map with Time Stamp, Latitude, Longitude, Speed and Address
when clicked in Satellite mode.










































Actual address with
information like Time
Stamp, Latitude,
Longitude and Speed
when the user clicks on the
marker
Markers
Figure 6.18: Google Map with Location Markers
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
52
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
7 TESTING AND EVALUATION

This chapter mainly will touch on the actual implementation and field testing results on the
functionality of the GPS Tracking System in a vehicle. The equipments which will be used
for the field testing is shown in Figure 7.1. The GPS tracker will be placed on the cars
dashboard and Mobile Adaptor will be attached to the laptop for receiving SMS.



























Laptop with Mobile Adaptor
GPS Tracker


Figure 7.1: Actual Field Testing Equipments
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
53
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
7.1 Troubleshooting and Debugging

A common issue which the software faces is the software bugs which cause errors. Therefore
a functional testing and troubleshooting of the program needs to be performed. In order to be
more efficiency in the testing, a methodology is required. The methodology conducted is
further elaborated in process flow as shown in Figure 7.2.




























Start
Evaluate from the results if it
meet the requirements
Conduct Testing
Results and
outcome
Any error
occurred
on the
software?
Improvement and
enhancement of software
End
Yes
No
Debug on the errors
Figure 7.2: Process Flow Chart of Troubleshooting
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
54
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
7.1.1 Test Condition 1: GPS Tracking System
This test condition is conducted to ensure the accuracy of the GPS tracking in line with the
positioning plotted on the Google map. The process flow of the testing is illustrated in Figure
7.3.





























Yes
No
No
End
Start the vehicle
Is the log file
created in C:
drive for the
history log?
Is the SMS
received read and
trim correctly from
the SMS.DTC file?
Is the latitude
and longitude
value converted
correctly?
Start
Comparison
of the actual
coordination
with the data
Debugging of errors
Yes
Yes
No
No
Figure 7.3: Process Flow chart of GPS Tracking System Debugging
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
55
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
The GPS tracking system testing will start once the user turns on the GPS tracker and plug
the mobile adaptor to a powered on laptop with Mobile Partner opened. As long as there is
SMS coming in to the computer, the SMS data will be saved as SMS.DTC file in the C:
drive. As there is too much other information in the SMS.DTC file. Trimming the string of
data from the file is performed. After trimming, comparison to ensure the coordination and
the conversion of format was done successfully.



























Figure 7.4: Screenshot of GPS Tracking System GUI with data from SMS.DTC
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
56
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
7.1.2 Test Condition 2: Security Features
For security testing, this is to test the validation of security feature which is required for the
project. There are 2 types of security features: Movement alarm and Geo-fence. As
mentioned in Chapter 4.1, Movement alarm is used for alert to send out to user if the vehicle
moved out of predefined range from 30 meters to 2000 meters square scope. Geo-fence is
used for vehicle moving in/out of the predefined latitudes and longitudes in square scope set
by the user.

Type 1: Movement alarm testing

























Vehicle
moved out of
30 meters
Verification
from GPS
Tracker
SMS sent to GPS
Tracker with 30
meter preset
square scope
Figure 7.5: Movement Alarm setting and Alert
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
57
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Type 2: Geo-Fence






























Sent SMS to
GPS Tracker
Verification from
GPS Tracker
GPS Tracker will send the
current location of tracker in
every 1 minute interval when
tracker move out of preset
square scope
Figure 7.6: Illustration of Geo-Fence setting and Alert
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
58
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
7.1.3 Test Condition 3: Track Vehicle position using SMS
For the locate vehicle position using SMS, there are 2 ways: track by SMS and track on
demand.

Track by SMS will get the current location of the GPS tracker and report its longitude and
latitude by SMS. By sending the message 0000T to the GPS tracker, it returned the
Latitude and Longitude with additional information of Speed, Date and time as shown in
Figure 7.7.



















Track on Demand will received an SMS with http link. When click on the link, the location
can be shown directly on the Google Map. This is provided that it is a Smartphone which is
loaded with Google Map application. Figure 7.8 illustrates that sending 0000H will receive
a link to Google Map. The location will be plotted on the Google Map via clicking on the
link.

Figure 7.7: Track by SMS
Sent SMS
to GPS
Tracker
Received SMS
from GPS Tracker
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
59
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT































Figure 7.8: Track on Demand
Received SMS
from GPS
Tracker
Sent SMS
from GPS
Tracker
Location
plotted on
Google
Map on
IPhone
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
60
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
7.1.4 Test Condition 4: Mapping Feature
Mapping feature is one of the most essential parts of the project as it assists the user to
visualize the map on the exact location or travelled route by the vehicle. The process flow of
testing is illustrated in Figure 7.10.
























On the GPS Tracking GUI, user will click on the Read Data button to compute the SMS
data and Show on Map button to display the travelled route markers on the Google Map.
Each of the markers is clicked to display the information like Time Stamp, Latitude,
Longitude and Speed. And each of the markers is examined to ensure that all information is
correct and accurate. Verification of the information will be referring to the log file which is
created in C: drive. Conversion of the Degrees Minutes Seconds Format to Decimal Degrees
Yes
Yes
Start
User click on the Read data
to get the coordination and
click on View on Map to
display travelled route
Click on each of the markers
to check the information
display on the map
Does the
Google Map
displays
correctly with
all markers?
Is all the
information
displays
correctly and
accurately?
End
Debugging of errors
No
No
Figure 7.9: Process Flow Chart of Google Map Debugging
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
61
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
format is checked to ensure the value is correct. Figure 7.11 shows that markers information
on Google Map is tallied with the log file information.












































Information from Log file:
2010-10-24 13:03,1.33015,103.776366666667,13.0KM/H
Figure 7.10: Confirmation of markers information with log file
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
62
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

7.2 Functional Test GPS Tracking System

Functional testing is needed to confirm that the GPS Tracking System is functioning well
after a few rounds of field testing. This will ensure that the user will not have any issue after
using the GPS Tracking System after some time. Figure 7.12 illustrated that the GPS
Tracking System passed the functional testing with markers plotted on the Google Map with
all the information. GPS log files for a few rounds of functional testing can be found in
Appendix E.






















Figure 7.11: Functional Testing of the GPS Tracking
System
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
63
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
8 PROBLEMS AND DISCUSSION

There are certain issues which needs to be resolve in order to meet the project due date.
Therefore it is crucial to ensure that the problem is solved as soon as possible as this might
hold back the project development time.

8.1 GPS Tracker Connection Issue

The first issue identified was an error regarding the connection between the USB with the
GPS tracker. After consultation with the GPS trackers supplier, it found that the problem
occurred due to the USB-to-Serial adaptor not being included in the package. After obtaining
the missing adaptor from the supplier, the GPS tracker was able to function as planned.






















Figure 8.1: USB-to-Serial Adaptor
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
64
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
8.2 GPS Tracker SMS Interval Issue

There was an issue with setting the GPS Tracker to return SMS with GPS data in 1 minute
interval, using MT80 Parameter Editor Software. MT80 Parameter Editor Software only
allows the GPS tracker to be set at a minimum of 10 minutes interval. After a thorough
research of the user manual, it was found that SMS method can be used to set the interval
timing. By sending a 0000A1 message to the GPS tracker, the tracker is set to 1 minute
interval and the system responds by a reply of Interval Set to the mobile phone. After
setting the configuration, the GPS tracker is able to send out location information in 1 minute
interval.























Sent SMS to
GPS Tracker
Received
SMS from
GPS Tracker
Figure 8.2: Illustration of Sending SMS to GPS Tracker to set 1 minute
interval
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
65
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
8.3 GPS Tracker Timing Issue

Timing send by the GPS tracker is incorrect. This issue was due to Singapore being in
GMT+08:00 time zone. Therefore configuration of the GPS tracker is necessary in order to
receive the correct timing. The GPS tracker was set with +8 hours, with minute conversion
of 480 minutes by sending the message 0000Z480. The GPS tracker will reply with the
message TimeZone Set to show that the new setting is in effect. Figure 8.3 illustrated the
SMS send to the GPS tracker and the systems reply to the new command.


























Figure 8.3: Illustration of GPS Tracker Time Zone Set
Received SMS
from GPS Tracker
with Time Zone Set
Sent SMS to set
GPS tracker with
480 minutes
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
66
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
8.4 Computer Administrator Access Right Issue
GPS Tracking software is denied access to C: drive when attempting to run the application.
This is a known problem faced by Microsoft Vista and later operating system. The cause of
this problem was due to the software being required to run as an administrator. For easy
usage by the user, the program was set to Run this program as an administrator in
properties as show in Figure 8.4. Every time the program is loaded, it will prompt the user to
allow the program to run as an administrator.














Another issue faced by the program being unable to delete the file. Administrator access right
is required to delete the file from "C:\Program Files\Mobile Partner\userdata\SMS.DTC".
After online research, it was discovered that the problem was caused by Mobile Partner
application using this attribute to update the SMS data. In order to access and delete the file,
administrator accesses to the file was required in order to set the file attributes to allow for
deletion. After setting the file to the following example, the GPS Tracking System works as
planned with the deletion of file functioning via the Reset Button function.
Example:
string strDTSFile = @"C:\Program Files\Mobile Partner\userdata\SMS.DTC";

try
{
File.SetAttributes(strDTSFile, System.IO.FileAttributes.Normal);
File.Delete(strDTSFile);
}
Figure 8.4: Properties setting of GPS tracking software on Compatibility tab

Student Name/ Student No.: Tan Yong Peng Charles / J0704259
67
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
8.5 Google Map Display Issue

Google Maps API is unable to function on Mozilla Firefox browser when the browser is in its
default setting. It appeared as a blank page when Google Map API is loaded as shown below
in Figure 8.5. Testing conducted on different browsers resulted in the discovery that Google
Maps API only functions properly with Microsoft Internet Explorer. After changing to
Microsoft Internet Explorer, the browser is able to load Google Map API without any
problems as shown in Figure 8.6.

























Figure 8.6: Google Map API loaded on Microsoft Internet Explorer
Figure 8.5: Google Map API loaded on Mozilla Firefox Browser
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
68
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
9 CONCLUSIONS AND RECOMMENDATIONS

9.1 CONCLUSIONS

There are many costly GPS tracking systems available in the market. However, this project
has proved that low cost GPS tracking system can be as effective. Total cost for the GPS
tracking system is S$141.37. The GPS tracking system is able to track the vehicle location
and plot the travelled route on a map which fulfils all objectives of this project.

Remote monitoring of the GPS tracking system is also functional so that the vehicle can be
monitored from the office. Security feature like Geo-fencing can be activated via SMS send
from the mobile phone. It should however be noted that the public only has limited access to
the security feature of the software as the development kit for the mobile adaptor is not
released to the public. This results in the user being unable to active the security feature via
the computer. However, this should not be an issue to the user as GPS tracker security can be
done remotely with their mobile phone when needed.

With extensively field testing after debugging and evaluation, the GPS tracking system has
fulfil all accuracy requirements of the location being plotted on Google map. However, there
exists room for improvements on the project, which could be further enhance by the next
student taking over the project.

9.2 RECOMMENDATION

Currently, all SMS data send by the GPS is limits to only one user. The GPS tracker is able to
connect to the 3G network which transmits GPS data at high speed for storage in the server.
As such, additional expense can be saved by using this network over the above mentioned
method of SMSing as the conduct for information. At the same time, a greater number of
users are able to access the GPS information using mobile broadband or mobile
communication device.

In this project, it is limited to one GPS tracker sending GPS information to one laptop.
Multiple GPS trackers can be used to concurrently send GPS information to the same laptop.
This would allow a single user to see different vehicles on the road by filtering the phone
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
69
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
numbers used for different GPS trackers. The Google map location markers can be plotted
with different colours to differentiate between different vehicles.

Further improvements can be done for the enhancement of auto updating location markers on
Google map. Currently the user is required to click on the Read button to retrieve
information such as Latitudes, Longitude, Time, Date and Speed. This is followed by clicking
on View on Map button in order to plot the location onto the map.


10 CRITICAL REVIEWS AND REFLECTIONS

At the beginning of the project implementation, there were a lot of failures. The initial plan
was to use the mobile smart phone as a GPS tracker. Due to the complication of the Symbian
C++ programming for smart phone, there were continuous struggles and frustration as the
deadline drew near. A swift decision was made to change the project plan, in order to meet
the schedule. This has taught me to be more flexible and decisive even when the plan does
not progress as expected. Eventually, all objectives set out at the start are met within the time
frame. Encouragement and guidance from project supervisor, Dr. Tan Bee Koon was greatly
appreciated.

C# is chosen for the project as this was the programming language that the student is most
competent in. Having a basic understanding of C++ programming logic has aided the student
using C# such as for the declaring of variables and the defining functions. The internet has
proven to be a good source of research by providing multiple examples which helped provide
a better understanding in C#. This similarly applies to Google Maps API which uses
programming language like Java, where examples and tutorial can be found online. In
addition, there were numerous programming books which can be found in the
neighbourhoods library that can be loaned without any additional costs.

The completion of this project, after months of hard works has provided me with valuable
knowledge on C# and Google Maps API. Due to the student having to juggle between work
and studies, time management was one of the factors which contribute to the success of the
project. The multiple obstacles faced along the way have contributed to the strengthening of
the student time management skills, which as explained above has proven to be the crucial
factor in the success of this project.
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
70
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
References [Books]

[1] Robert I. Egbert and Joseph E. King, The GPS handbook: an outdoorsmans guide.
Canada: Burford Books Inc, 2003.

[2] Natalie M. Rosinsky, Satellites and the GPS. United States of America: Compass Point
Books, 2004.

[3] Jeanne Sturm, GPS: Global Positioning System. United States of America: Rourke
Publishing , 2009.

[4] Ahmed El-Rabbany, Introduction to GPS: The Global Positioning System, Second
Edition. United States of America: Artech House, Inc, 2006.

[5] Gwenael Le Bodic, Mobile Messaging Technologies and Services: SMS, EMS and
MMS. England: John Wiley & Sons Ltd, 2003.

[6] Bowditch, N., The America Practical Navigator, Bicentennial Edition, NIMA, Pub.
No. 9, 2002. CD-ROM

[7] Parkinson, B. W., A History of Satellite Navigation, Navigation: Journal of The
Institute of Navigation, Vol. 42, No. 1, Special Issue, 1995, pp.109-164

[8] Wright, Peter 2006, 'Beginning Visual C# 2005 Express Edition From Novice to
Professional', Apress, United States of America.

[9] Foxall, James, 'Teach Yourself C# in 24 Hours', Sams Publishing, United States of
America, 2002

[10] Nash, Trey, 'Accelerated C# 2008', Apress, United States of America, 2007

[11] Drayton Peter, Albahari Ben, Neward Ted, 'C# In A Nutshell', O Reilly & Associates
Inc., United States of America, 2002

[12] FRP, U.S. Federal Radionavigation Plan, 2001

[13] Langley, R. B., Why is the GPS Signal so Complex? GPS World, Vol. 1 No. 3,
May/June 1990, pp. 56-59.

[14] Wells, D. E., et al., Guide to GPS Positioning, Fredericton, New Brunswick: Canadian
GPS Associates, 1987

[15] Seeber, G., Satellite Geodesy, 2
nd
revision edition, Berlin, Germany: Walter de Gruyter,
2003

[16] Friedhelm Hillebrand (editor); Finn Trosby, Kevin Holley, Ian Harris, Short message
service (SMS): the creation of personal global text messaging, Wiley & Sons, New
Jersey, 2010
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
71
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
[17] Wells D.E., et al., Guide to GPS Positioning, Fredericton, New Brunwick: Canadian
GPS Associates 1987

[18] Linyuan X., Multipath in GPS Navigation and Positioning, GPS solutions, Vol. 8, 2004,
pp.49-50

[19] Weill, L. R., Conquering Multipath: The GPS Accuracy Battle, GPS world, Vol. 8, No.
4, April 1997, pp. 59-66

[20] Langley, R. B., Time, Clocks and GPS, GPS World, Vol. 2, No. 10,
November/December 1991, pp.38-42

[21] El-Rabbany, A., The Effect of Physical Correlations on the Ambiguity Resolution and
Accuracy Estimation in GPS Different Positioning, Technical Report No. 170,
Department of Geodesy and Geomatics Engineering, University of New Brunswick:
Canadian GPS Associates, 1987

References [Websites]

[1] Aerospace Corporation (2007) GPS Primer, Elements of GPS
http://www.aero.org/education/primers/gps/elements.html
[2] Appleseed, Johnny (1999-2009) The Theory and Practice of GPS
http://www.ja-gps.com.au/whatisgps.html#anchor5186443

[3] Article by Darren Griffin, How does the Global Positioning System works?
http://www.pocketgpsworld.com/howgpsworks.php

[4] Garmin, What is GPS?
http://www8.garmin.com/aboutGPS/

[5] First U.S. Publication in June, 1996 by: Corvallis Microtechnology, Inc, Introduction
to the Global Positioning System for GIS and TRAVERSE
http://www.cmtinc.com/gpsbook/
[6] LiveViewGPS (2009) GPS Asset Tracker
http://www.liveviewgps.com/gps+asset+tracker.html

[7] Maps-GPS-Info.com, GPS History, How it all started
http://www.maps-gps-info.com/gps-history.html

[8] Maps-gps-info.com, GPS Cell Phone Tracking - I Know Where You Are
http://www.maps-gps-info.com/gps-cell-phone-tracking.html

[9] National Space-Based Positioning, Navigation, and Timing Coordination Office, The
Global Positioning System
http://www.gps.gov/systems/gps/index.html
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
72
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
[10] Nelson, Robert A. (1999), The Global Positioning System
http://www.aticourses.com/global_positioning_system.htm
[11] Rey, Jorge R. (2006), An introduction to GPS
http://edis.ifas.ufl.edu/IN653
[12] Rocky Mountain Tracking (2001-2007), Smart Track GPS Tracking System
http://www.rmtracking.com/gpsproducts/smarttrack.html

[13] Smithsonian Institution, How Does GPS Works
http://www.nasm.si.edu/gps/work.html
[14] Starcom Systems (2004-2009) Fleet Management
http://www.starcomsystems.com/services_fleeta.asp

[15] SunSat Statellite Solution Co., GSM mobile phone tracking system via the GPS-
TRACK satellite network
http://www.themobiletracker.com/english/index.html

[16] The Aerospace Corporation, How GPS Works
http://www.aero.org/education/primers/gps/howgpsworks.html

[17] Topbits, How GPS Tracking Works
http://www.topbits.com/how-gps-tracking-works.html

[18] Wikipedia, the free encyclopedia, Global Positioning Systems
http://en.wikipedia.org/wiki/Global_Positioning_System

[19] Wikipedia, the free encyclopedia, GPS Satellite
http://en.wikipedia.org/wiki/GPS_satellite

[20] Wikipedia, the free encyclopedia, Compass
http://en.wikipedia.org/wiki/Compass

[21] Wikipedia, the free encyclopedia, Sextant
http://en.wikipedia.org/wiki/Sextant

[22] Wikipedia, the free encyclopedia, GPS Tracking Device
http://en.wikipedia.org/wiki/GPS_tracking_unit

[23] Wikipedia, the free encyclopedia, Trilateration
http://en.wikipedia.org/wiki/Trilateration

[24] Wikipedia, the free encyclopedia, GPS tracking unit
http://en.wikipedia.org/wiki/GPS_tracking_unit

[25] Wikipedia, the free encyclopedia, Trilateration
http://en.wikipedia.org/wiki/Trilateration


Student Name/ Student No.: Tan Yong Peng Charles / J0704259
73
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
[26] Wikipedia, the free encyclopedia, Doppler Effect
http://en.wikipedia.org/wiki/Doppler_effect
[27] Wikipedia, the free encyclopedia, Beidou Navigation System
http://zh.wikipedia.org/wiki/%E5%8C%97%E6%96%97%E5%AF%BC%E8%88%A
A%E7%B3%BB%E7%BB%9F
[28] Wikipedia, the free encyclopedia, Galileo Positioning System
http://zh.wikipedia.org/w/index.php?title=%E4%BC%BD%E5%88%A9%E7%95%A
5%E5%8D%AB%E6%98%9F%E5%AE%9A%E4%BD%8D%E7%B3%BB%E7%B
B%9F&variant=zh-cn

[29] Wikipedia, the free encyclopedia, SMS
http://en.wikipedia.org/wiki/SMS

[30] Developers home, Basic Concepts of SMS Technology
http://www.developershome.com/sms/sms_tutorial.asp?page=basicConcepts

[31] Geneq inc., GPS The Error Budget
http://www.sxbluegps.com/gps-error-Budget.html#gpsworks

[32] IGS (International GNSS Service, IGS Product Table
http://igscb.jpl.nasa.gov/components/prods.html

[33] U.S Observatory, USNO GPS Time Transfer
http://tycho.usno.navy.mil/gpstt.html

[32] George Birbilis @zoomicon, Start/kill process with VB.net
http://zoomicon.wordpress.com/2007/04/15/startkill-processes-with-vb-net

[33] ASCII Control Characters Definition
http://www.lammertbies.nl/comm/info/ascii-characters.html#endt

[34] ASCII Table
http://www.asciitable.com/

[35] Koobmeei blogspot, Convert Degrees, Minutes, and Second to Decimal Degrees
http://koobmeej.blogspot.com/2008/08/convert-degrees-minutes-and-seconds-to.html

[36] Sparky Spider's Discoveries blogspot, Javascript: Convert DMS to DD
http://sparkyspider.blogspot.com/2006/12/javascript-object-convert-from-dms-to.html

[37] Delphi Programming Neil Moffatt 2002, Setting and Getting File Attributes
http://www.delphibasics.co.uk/Method.asp?NameSpace=System.IO&Class=File&Ty
pe=Class&Method=SetAttributes

[38] Mike Williams (2006 2010), Google Maps API Tutorial
http://econym.org.uk/gmap/
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
74
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Appendix A

Specification of GPS Tracker Device, MT80


Items Specification
Device
Charging Voltage DC 4.2-5.5V/400mA (Mini USB port)
Battery Rechargeable and removable 700 mAh battery (3.7V)
Dimension 61x42x15mm
Weight 50g (with battery)
Operating
temperature
-20 to 55 C
Humidity 5% to 95% Non-condensing
Work time 96 hours in standby mode and 10 hours in continuous working mode
LED 2 LEDs showing GPS, GSM status
Button One SOS panic button and one power On/Off button
Microphone Built-in microphone for wiretapping
Memory 4MB
GSM
GSM module Quad-band GSM 850/900/1800/1900MHz
SIM Card Interface Support SIM card: 1.8V, 3V
GPS
GPS Chipset Latest SiRF Star III high sensitivity single-chip GPS receiver
GPS Sensitivity -159dB
GPS Frequency L1, 1575.42 MHz
C/A Code 1.023 MHz chip rate
Channels 20 channel all-in-view tracking
Position Accuracy 10 meters, 2D RMS
Velocity Accuracy 0.1 m/s
Time Accuracy 1 us synchronized to GPS time
Default datum WGS-84
Reacquisition 0.1 sec., average
Hot start <2 sec., average
Warm start 38 sec., average
Cold start 42 sec., average
Altitude Limit 18,000 meters (60,000 feet) max.
Velocity Limit 515 meters/second (1000 knots) max.
Acceleration Limit Less than 4g
Jerk Limit 20 m/sec
Certification
Module Approvals CE, GCF, FCC, RoHS, PTCRB, IC
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
75
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Specification of Huawei E1550 Mobile Adaptor

Specifications
Weight 30g
Size
11.5mm x 87.5mm x 26.0mm
(H x L x W)
Colours White
Advance Features
3.5G Yes
















































Student Name/ Student No.: Tan Yong Peng Charles / J0704259
76
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

Appendix B-1: Gantt chart






Student Name/ Student No.: Tan Yong Peng Charles / J0704259
77
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

Appendix B-2: Activities Breakdown Chart

S/N Tasks for Capstone Project Duration Start End
Project Initial Phase
1
Initial meeting up with Tutor for discussion on objective of the
project. 1 Day 30-Jan-09 30-Jan-09
2 Meeting up with Tutor on discussion of TMA 01 1 Day 6-Mar-09 6-Mar-09
3 Literature research on GPS and SMS technology 20 Days 5-Feb-09 24-Feb-09
4 Preparation of Initial Proposal Report (TMA 01) 15 Days 16-Feb-09 2-Mar-09
5 Review and submit TMA 01 4 Days 8-Mar-09 8-Mar-09
Project 2
nd
Phase
6 Research and learning of C# programming language 20 Days 15-Mar-09 3-Apr-09
7 Perform market survey on commercial GPS tracking system 3 Days 15-Mar-09 17-Mar-09
8 Source for GPS Tracker to use for the project 4 Days 18-Mar-09 21-Mar-09
9 Source for mobile adaptor to receive SMS 4 Days 21-Mar-09 24-Mar-09
Project 3
rd
Phase
10 Design the system architecture framework 5 days 3-Apr-09 7-Apr-09
11 Research on the areas of considerations for system design 20 Days 8-Apr-09 27-Apr-09
12 Research on sending and receiving of SMS using computer 10 Days 27-Apr-09 6-May-09
Project 4
th
Phase
13 Design and implement the application GUI 10 Days 7-May-09 16-May-09
14 Design and implement the tracking feature 10 Days
18-May-
09 27-May-09
15
Design and implement the coordinates conversion and data logger
modules 7 Days
28-May-
09 3-Jun-09
16 Demonstration of basic tracking function to Tutor 1 Day 6-Jun-09 6-Jun-09
17 Design and implement the security features 30 Days 7-Jun-09 6-Jul-09
18 Perform field trial on basic tracking function 1 Day 4-Jul-09 4-Jul-09
19 Design and implement the mapping feature 30 Days 6-Jul-09 4-Aug-09
20
Design and implement the SMS functions for remote access and
location query 40 Days 5-Aug-09 13-Sep-09
21 Perform testing on security and mapping features 1 Day 22-Aug-09 22-Aug-09
22 Perform testing on all SMS functions 1 Day 14-Sep-09 14-Sep-09
Project 5
th
Phase
23 Design of use case functional test plans 5 Days 15-Sep-09 19-Sep-09
24 Perform all functional tests 8 Days 20-Sep-09 27-Sep-09
25 Perform full scale field trial with all features 1 Day 18-Oct-09 18-Oct-09
Project Final Phase
26 Preparation of Final Report 30 Days 30-Sep-09 29-Oct-09
27 Discuss with Tutor on Final Report 5 Days 25-Oct-09 29-Oct-09
28 Review and Submit Final Report 12 Days 29-Oct-09 9-Nov-09
29 Prepare poster for presentation 17 Days 12-Nov-09 27-Nov-09


Student Name/ Student No.: Tan Yong Peng Charles / J0704259
78
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

Appendix B-3: Bill of Material (BOM)

Component Description Quantity Cost Per Unit
GPS Tracker, MT80 1 S$100
SIM Card (Mobile Line) 1 S$25.68 (Monthly Fee)
Mobile Adaptor (1Mbps) 1 S$15.69 (Monthly Fee)
Total S$141.37


















































Student Name/ Student No.: Tan Yong Peng Charles / J0704259
79
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
APPENDIX C

GPS Tracker Software Source Code

Appendix C-1 Main GPSTrackingSystem Class

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;

namespace GPSTrackingSystem
{
public partial class frmGPSTrackingSystem : Form
{
#region [variable]

string strFN=""; //Store file name as string

#endregion;

#region [form method]

public frmGPSTrackingSystem() //Use form method
{
InitializeComponent();
}

#endregion

Appendix C-2 rdGPSLive_CheckedChanged() Function

#region [Radio Button Control]
private void rdGPSLive_CheckedChanged(object sender, EventArgs e)
{
txtFileName.Text = "";
gv.Rows.Clear();
lblTotalRec.Text = "";
panDis.Enabled = false;

}

Appendix C-3 rdGPSHis_CheckedChanged() Function

private void rdGPSHis_CheckedChanged(object sender, EventArgs e)
{
panDis.Enabled = true;
txtFileName.Text = "";
gv.Rows.Clear();
lblTotalRec.Text = "";

}

#endregion
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
80
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Appendix C-4 btnBrowse_Click () Function

#region [Control Button]
private void btnBrowse_Click(object sender, EventArgs e)
{
OFD.FileName = "";
txtFileName.Text = "";

OFD.Filter = "Comma Separated File (*.csv)|*.csv"; // Set filter for
History Data.
OFD.ShowDialog();
if (OFD.FileName.ToString().Trim() != "") // If file name is
not empty.
{
txtFileName.Text = OFD.FileName.ToString().Trim();
strFN = txtFileName.Text.Trim(); // Get the file
name.
}
else
return; // IF empty, exit the function and do nothing.

}


Appendix C-5 btnRead_Click () Function

private void btnRead_Click(object sender, EventArgs e)
{
gv.Rows.Clear();
lblTotalRec.Text = "";

if (rdGPSLive.Checked)
{
// Fix File name.
string strPath = @"C:\Program Files\Mobile Partner\userdata\SMS.DTC";

ReadLiveGPSData(strPath);
}
else
{
ReadHistoryData();
}

}


Appendix C-6 btnView_Click () Function

private void btnView_Click(object sender, EventArgs e)
{
if (gv.Rows.Count <= 0)
return;

if (rdGPSLive.Checked)
{
// If Live Data is checked, Load the Live data Web for Google Map API.
Process.Start("C:\\GPSTrackerLive.html");
}
else
{
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
81
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
// If History Data is checked, Load the History data Web for Google
Map API.
Process.Start("C:\\GPSTrackerHis.html");
}

}


Appendix C-7 btnClear_Click () Function

private void btnClear_Click(object sender, EventArgs e)
{
gv.Rows.Clear();
txtFileName.Text = "";
rdGPSLive.Checked = true;
strFN = "";
lblTotalRec.Text = "";

}


Appendix C-8 btnReset_Click () Function

private void btnReset_Click(object sender, EventArgs e)
{
// Kill Process and Restart Process Idea got from this link.
// http://zoomicon.wordpress.com/2007/04/15/startkill-processes-with-vb-
net

// First Kill the process.
if (KillProcess())
{
// If Successfully kill the Mobile Partner.exe, delete master and data
file.
// Now start deleting the file.
string strDTSFile = @"C:\Program Files\Mobile
Partner\userdata\SMS.DTC";
string strBAFile = @"C:\Program Files\Mobile Partner\userdata\SMS";

// First, delete DTC master file.
if (File.Exists(strDTSFile) == true)
{
try
{
File.SetAttributes(strDTSFile,
System.IO.FileAttributes.Normal);
File.Delete(strDTSFile);
}
catch (Exception ex)
{
MessageBox.Show("System failed to process SMS Master
file.\n\r" +
"Error Detail: " + ex.Message, "GPS Tracker",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
return;
}

// If master file process finished, go to each individual BA* file.
for (int i = 1; i < 4; i++)
{
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
82
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
try
{
string strFile = Path.Combine(strBAFile, "SMS.BA" + i);
if (File.Exists(strFile) == true)
{
File.Delete(strFile);
}
}
catch (Exception ex)
{
MessageBox.Show("System failed to process SMS details
file.\n\r" +
"Error Detail: " + ex.Message, "GPS Tracker",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button1);
return;
} // End of Try Catch for Data file.
} // End of For Loop for Data File.

try
{
// After all finish, restart Mobile Partner.exe process.
ProcessStartInfo proc = new ProcessStartInfo();
proc.FileName = @"C:\Program files\Mobile Partner\Mobile
Partner.exe ";
Process.Start(proc);
}
catch (Exception ex)
{
MessageBox.Show("System failed to start Mobile Partner
Process.\n\r" +
"Error Detail: " + ex.Message, "GPS Tracker",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
return;
}
} // End of DTC file exist If else.
} // End of KillProcess Success If else.

}


Appendix C-9 btnExit_Click () Function

private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
#endregion



Appendix C-10 ReadLiveGPSData(string strPath) Function

#region [User Defined Functions]

private void ReadLiveGPSData(string strPath)
{
try
{
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
83
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
// First check whether the output log file is exist or not.
if (File.Exists(@"C:\GPS_LiveLog.txt"))
File.Delete(@"C:\GPS_LiveLog.txt"); // If exist, delete it.

strFN = strPath;

// File browser must pass a file name to carry on. If empty or file
not exist, exit this method.
if (strFN == "")
return;

string str = "";

if (File.Exists(strFN) == false)
return;

// Read the file contents.
StreamReader sr = new StreamReader(strFN);
str = sr.ReadToEnd(); // Read all data from Master file.
sr.Close(); // After successfully read, must close StreamReader
object.
sr = null; // Set to nothing(Null) in order to avoid unnecessary error
like 'file is in use'.

// If content is empty, exit the method.
if (str.Trim() == "")
return;

//
*********************************************************************************
// 1. ASCII Control Characters Definition.
// http://www.lammertbies.nl/comm/info/ascii-characters.html#endt
// 2. ASCII Table.
// http://www.asciitable.com/
//
*********************************************************************************

// \0 means NUL in ASCII.
str = str.Replace("\0", ""); // Clear unnecessary data.

string[] stringSeparators = new string[] { "jL", "L+" }; // Declare
a string array which contains Delimeters.

// Split master data with delimeters.
// After splitting with the delimeters, strC will contains data in line by line format.
// In Array, line by line means each record/line will be 1 row in array.
// Array row are in position of 0,1,2,3,4,5, etc. We call it 'Index' (array index).
string[] strC = str.Split(stringSeparators, StringSplitOptions.None);
// Split master data with delimeters.

if (strC.Length <= 0) // If empty,
return; // Exit function.

string strTmp = "";

// For loop. Loop through each line in strC array string object until strC.Length.
// strC.Length is the array size (records/line number we got from above after trimming
in master data file).

for (int i = 0; i < strC.Length; i++)
{
if (strC[i].ToUpper().Contains("LATITUDE") == false &&
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
84
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
strC[i].ToUpper().Contains("LONGITUDE") == false &&
strC[i].ToUpper().Contains("SPEED") == false)
continue;

string[] strB = strC[i].Split((char)1);
if (strB.Length > 0)
strTmp = strB[0];
else
strTmp = strC[i];
string[] strD = strTmp.Split(',');
if (strD.Length != 4) // If length is not 4.
continue; // Continue for next loop.

// 1. Latitude, Longitude.
// 2. Speed.
// 3. Date.
// 4. Time.
int iStart = strD[0].IndexOf("Lati");
int iStop = strD[0].IndexOf("Longi");
string strMobile = Mid(strD[0], 0,
iStart).ToUpper().Replace("LAST:", "");
string strLati = Mid(strD[0], iStart, iStop).Replace("Latitude =",
"").Trim();
string strLongi = Mid(strD[0], iStop,
strD[0].Length).Replace("Longitude =", "").Trim();
string strSpeed = strD[1].Replace(" ", "").Replace("=",
"").ToUpper().Replace("SPEED", "").Trim();
string strDate = strD[2].Trim();
string strTime = strD[3].Substring(0, 5).Trim();

// Add to DataGridView.
gv.Rows.Add(strDate + " " + strTime, strLati, strLongi, strSpeed);

lblTotalRec.Text = gv.RowCount.ToString();

// Write current line to Text file.
StreamWriter sw = new StreamWriter(@"C:\GPS_LiveLog.txt", true);
string strValue = strDate + " " + strTime + "," +
ConvertFromDMS2DD(strLati) +
"," + ConvertFromDMS2DD(strLongi) + "," + strSpeed;
sw.WriteLine(strValue);
sw.Close();
} // End of For Loop.
} // End of Try.
catch (Exception e)
{
MessageBox.Show("*Exception Error*\n\r" + e.Message, "GPS Tracker",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
}
}


Appendix C-11 ReadHistoryData() Function


private void ReadHistoryData()
{
try
{
// First check whether the output log file is exist or not.
if (File.Exists(@"C:\GPS_HisLog.txt"))
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
85
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
File.Delete(@"C:\GPS_HisLog.txt"); // If exist, delete it.

strFN = txtFileName.Text.Trim();

// File browser must pass a file name to carry on. If empty or file
not exist, exit this method.
if (strFN == "")
return;

string str = "";

if (File.Exists(strFN) == false)
return;

// Read the file contents.
StreamReader sr = new StreamReader(strFN);
str = sr.ReadToEnd(); // Read all the contents from the file.
sr.Close(); // Clos ethe StreamReader object.
sr = null;

// If file is empty.
if (str.Trim() == "")
return; // Exit.

string[] strSeparator = new string[] { "," }; // Delimeter.

str = str.Replace("\"", ""); // Clear unnecessary data from Read
Data.
str = str.Replace("Name/Number,Content,Time,", ""); // Replace or
clear Title.
string[] strData = str.Split('\n'); // Split the Read
Data line by line.
for (int i = 0; i < strData.Length; i++)
{
if (strData[i].Trim() == "") // If this is an empty line.
continue; // Continue or Go to Next 'i'
number.

// Trim out white space, remove \r at line end if has any.
// Replace 'Last' data with empty.
string strTmp = strData[i].Trim().Replace("\r",
"").Replace("Last:", "").Replace("LAST:", "");

string[] strD = strTmp.Split(','); // Split again with ','
(Comma).
if (strD.Length != 6) // If Count is not 6,
return; // Exit function
(Somewhere wrong in Read Data).

// 0. GPS Ph number.
// 1. Latitude, Longitude.
// 2. Speed.
// 3. Date.
// 4. Time.
// 5. Extra data.
int iStart = strD[1].IndexOf("Lati");
int iStop = strD[1].IndexOf("Longi");
string strMobile = strD[0].Trim();
string strLati = Mid(strD[1], iStart, iStop).Replace("Latitude =",
"").Trim();
string strLongi = Mid(strD[1], iStop,
strD[1].Length).Replace("Longitude =", "").Trim();
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
86
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
string strSpeed = strD[2].Replace(" ", "").Replace("=",
"").ToUpper().Replace("SPEED", "").Trim();
string strDate = strD[3].Trim();
string strTime = strD[4].Trim();

gv.Rows.Add(strDate + " " + strTime, strLati, strLongi, strSpeed);
lblTotalRec.Text = gv.RowCount.ToString();

// After processing finish for current line, Write the data to
file.
StreamWriter sw = new StreamWriter(@"C:\GPS_HisLog.txt", true);
string strValue = strDate + " " + strTime + "," +
ConvertFromDMS2DD(strLati) +
"," + ConvertFromDMS2DD(strLongi) + "," + strSpeed;
sw.WriteLine(strValue);
sw.Close();
} // For Loop.
}
catch (Exception e)
{
MessageBox.Show("*Exception Error*\n\r" + e.Message, "GPS Tracker",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
}
}


Appendix C-12 ConvertFromDMS2DD(string strData) Function


// Convert from DMS to DD value.
private string ConvertFromDMS2DD(string strData)
{
string[] strD = strData.Split(' ');
if (strD.Length != 3)
return "";
string str3 = strD[2];
strD[2] = strD[2].ToUpper().Replace("N", "").Replace("E", "").Replace("S",
"").Replace("W", "");

// Formula to convert DMS to DD.
// Degree + (Minute / 60 ) + (Seconds / 3600)
// If West or South, multiply by -1
double dD = Convert.ToDouble(strD[0]) + (Convert.ToDouble(strD[1]) / 60) +
(Convert.ToDouble(strD[2]) / 3600);
if (str3.ToUpper() == "S" || str3.ToUpper() == "W")
dD *= -1;

//dD = Math.Round(dD, 3, MidpointRounding.AwayFromZero);

return dD.ToString();
}


Appendix C-12 Mid(string strData, int iPos1, int iPos2) Function


// Mid function which return the string from Start and End Position.
public static string Mid(string strData, int iPos1, int iPos2)
{
// If Empty, return empty.
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
87
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
if (strData.Trim() == "")
return "";

string strTmp = strData.Substring(iPos1, iPos2 - iPos1).Trim();
return strTmp;
}


Appendix C-12 KillProcess() Function

private bool KillProcess()
{
try
{
// First get all the process list running in Task Manager.
Process[] plist = Process.GetProcesses();

// Follow by loop through the list and find Mobile Partner softwar
process name.
foreach (Process p in plist)
{
try
{
// If found, Kill it. (Stop the process/End task the process.)
if (p.MainModule.ModuleName.ToUpper() == "MOBILE PARTNER.EXE")
{
p.Kill();
return true; // Return from the function.
}
}
catch (Exception e)
{
Console.WriteLine(e);
// seems listing modules for some processes fails, so better
ignore any exceptions here.
}
}
return true;
}
catch (Exception e)
{
MessageBox.Show("Exception Error*\n\r" + e.Message, "GPS Tracker",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button1);
return false;
}
}

#endregion


}
}





Student Name/ Student No.: Tan Yong Peng Charles / J0704259
88
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Appendix D

Mapping Source Code

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>GPS Live Data on Google Map</title>
<script
src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAwL0hBKXKlI2xKObyfhKE9BSpJbTgDT
5ZInO2WrTXInp1vxnZqRQFvtE0ku7XDAx1QfD7juyFQwCC1g"
type="text/javascript"></script>
</head>
<body onunload="GUnload()">

<!-- you can use tables or divs for the overall layout -->
<table border=1>
<tr>
<td>
<div id="map" style="width: 1200px; height: 650px"></div>
</td>
<td width = 200 valign="top" style="text-decoration: underline; color: #4444ff;">
</td>
</tr>
</table>

<noscript><b>JavaScript must be enabled in order for you to use Google Maps.</b>
However, it seems JavaScript is either disabled or not supported by your browser.
To view Google Maps, enable JavaScript by changing your browser options, and then
try again.
</noscript>

<script type="text/javascript">
//<![CDATA[

// Example Got from here --> http: //www.codeproject.com/KB/scripting/GetURLParameters.aspx
function getURLParameters()
{
var sURL = document.URL.toString();

if (sURL.indexOf("?") > 0)
{
var arrParams = sURL.split("?");

var arrURLParams = arrParams[1].split("&");

var arrParamNames = new Array(arrURLParams.length);
var arrParamValues = new Array(arrURLParams.length);

var i = 0;
for (i = 0; i < arrURLParams.length; i++) {
var sParam = arrURLParams[i].split("=");
arrParamNames[i] = sParam[0];
if (sParam[1] != "")
arrParamValues[i] = unescape(sParam[1]);
else
arrParamValues[i] = "";
}
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
89
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

return arrParamValues[0];
} else {
return "";
}
}

if (GBrowserIsCompatible())
{
var gmarkers = [];
var markers = [];
var realaddress;

// Right now this function is not used. Just for future extension.
// User can pass the parameter in URL and below javascript will grab the parameter
// based on that parameter, it will load related text file (Live or History GPS Data).
// A function to create the marker and set up the event window
function createMarker(point,time,lat,lng,speed)
{
var marker = new GMarker(point);
GEvent.addListener(marker, "click", function() {
map.panTo(point);
var geocoder = new GClientGeocoder();

geocoder.getLocations(point, function(response){

var place = response.Placemark[0];

realaddress = place.address;})
window.setTimeout(function() {
marker.openInfoWindowHtml('<b>Time Stamp: </b>' + time + '<br>' +
'<b>Latitude: </b>' + lat + '<br>' + '<b>Longtitude: </b>' + lng + '<br>' +
'<b>Speed: </b>' + speed + '<br>' +
'<b>Address: </b>' + realaddress);}, 1000);
});
return marker;
}

// create the map
var map = new GMap2(document.getElementById("map"));
var mgr = new GMarkerManager(map);
var customUI = map.getDefaultUI();
customUI.maptypes.hybrid = true;
map.setUI(customUI);
map.setCenter(new GLatLng(1.31401,103.795221), 12);

// === Define the function thats going to process the text file ===
process_GPS_logfile = function(doc)
{
// === split the document into lines ===
lines = doc.split("\n");

for (var i=0; i<lines.length; i++)
{
if (lines[i].length > 1)
{
// === split each line into parts separated by "," and use the contents ===
parts = lines[i].split(",");
var time = parts[0];
var lat = parseFloat(parts[1]);
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
90
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
var lng = parseFloat(parts[2]);
var speed = parts[3];
var point = new GLatLng(lat,lng);


// create the marker
var marker = createMarker(point,time,lat,lng,speed);
markers.push(marker);
}
}
mgr.addMarkers(markers,0,17);
mgr.refresh();
}

GDownloadUrl("GPS_LiveLog.txt", process_GPS_logfile);
}

else
{
alert("Sorry, the Google Maps API is not compatible with this browser");
}
//]]>
</script>
</body>
</html>

































Student Name/ Student No.: Tan Yong Peng Charles / J0704259
91
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Appendix E

Field Testing Results
Listed below are parts of the field testing from Alexandra Road to Ang Mo Kio. These log
files was exported from Mobile Partner for the justification of few successful field testing.
Some pictures were taken during the field testing can be located in Appendix E-2.

Appendix E-1: Journey from Alexandra to Ang Mo Kio

Name/Number Content Time
6591541895 Latitude = 01 17 14.15N Longitude = 103 48 15.28E,Speed = 0.6Km/h,2010-09-21,16:28 2010 921162845
6591541895 Latitude = 01 17 11.31N Longitude = 103 48 21.63E,Speed = 15.4Km/h,2010-09-21,16:27 2010 921162832
6591541895 Latitude = 01 17 09.36N Longitude = 103 48 37.60E,Speed = 17.0Km/h,2010-09-21,16:26 2010 921162825
6591541895 Latitude = 01 17 05.55N Longitude = 103 48 52.82E,Speed = 1.0Km/h,2010-09-21,16:25 2010 921162544
6591541895 Latitude = 01 17 01.95N Longitude = 103 49 07.33E,Speed = 23.1Km/h,2010-09-21,16:24 2010 921162446
6591541895 Latitude = 01 16 58.86N Longitude = 103 49 15.59E,Speed = 0.4Km/h,2010-09-21,16:23 2010 921162345
6591541895 Latitude = 01 16 56.99N Longitude = 103 49 19.80E,Speed = 42.8Km/h,2010-09-21,16:22 2010 921162246
6591541895 Latitude = 01 16 54.21N Longitude = 103 49 26.51E,Speed = 0.4Km/h,2010-09-21,16:21 2010 921162145
6591541895 Latitude = 01 16 54.60N Longitude = 103 49 27.48E,Speed = 7.5Km/h,2010-09-21,16:20 2010 921162043
6591541895 Latitude = 01 16 50.92N Longitude = 103 49 33.01E,Speed = 0.5Km/h,2010-09-21,16:19 2010 921161945
6591541895 Latitude = 01 16 50.72N Longitude = 103 49 33.68E,Speed = 5.5Km/h,2010-09-21,16:18 2010 921161846
6591541895 Latitude = 01 16 47.20N Longitude = 103 49 39.86E,Speed = 23.7Km/h,2010-09-21,16:17 2010 921161743
6591541895 Latitude = 01 16 52.52N Longitude = 103 49 52.87E,Speed = 63.0Km/h,2010-09-21,16:16 2010 921161645
6591541895 Last: Latitude = 01 17 59.84N Longitude = 103 50 40.62E,Speed = 0.0Km/h,2010-09-21,16:14 2010 921161547
6591541895 Latitude = 01 18 01.42N Longitude = 103 50 38.79E,Speed = 89.1Km/h,2010-09-21,16:14 2010 921161444
6591541895 Latitude = 01 18 36.98N Longitude = 103 50 39.29E,Speed = 88.5Km/h,2010-09-21,16:13 2010 921161343
6591541895 Latitude = 01 19 07.06N Longitude = 103 51 06.36E,Speed = 79.4Km/h,2010-09-21,16:12 2010 921161249
6591541895 Latitude = 01 19 34.24N Longitude = 103 51 39.29E,Speed = 74.3Km/h,2010-09-21,16:11 2010 921161142
6591541895 Latitude = 01 20 11.27N Longitude = 103 51 44.01E,Speed = 41.7Km/h,2010-09-21,16:10 2010 921161042
6591541895 Latitude = 01 20 38.80N Longitude = 103 51 36.68E,Speed = 68.9Km/h,2010-09-21,16:09 2010 92116 944
6591541895 Latitude = 01 21 15.89N Longitude = 103 51 24.78E,Speed = 76.2Km/h,2010-09-21,16:08 2010 92116 843
6591541895 Last: Latitude = 01 21 08.74N Longitude = 103 50 24.56E,Speed = 0.0Km/h,2010-09-21,14:57 2010 92116 741
6591541895 Last: Latitude = 01 21 08.74N Longitude = 103 50 24.56E,Speed = 0.0Km/h,2010-09-21,14:57 2010 92116 642
6591541895 Latitude = 01 20 58.73N Longitude = 103 50 22.30E,Speed = 64.2Km/h,2010-09-21,14:56 2010 921145652
6591541895 Latitude = 01 20 53.02N Longitude = 103 50 16.64E,Speed = 0.0Km/h,2010-09-21,14:55 2010 921145552
6591541895 Latitude = 01 20 51.94N Longitude = 103 50 17.37E,Speed = 32.7Km/h,2010-09-21,14:54 2010 921145450
6591541895 Latitude = 01 20 25.93N Longitude = 103 49 54.32E,Speed = 67.1Km/h,2010-09-21,14:53 2010 921145350
6591541895 Latitude = 01 20 24.81N Longitude = 103 49 17.86E,Speed = 72.7Km/h,2010-09-21,14:52 2010 921145253
6591541895 Latitude = 01 19 49.43N Longitude = 103 48 54.41E,Speed = 75.8Km/h,2010-09-21,14:51 2010 921145151
6591541895 Latitude = 01 19 10.13N Longitude = 103 48 37.04E,Speed = 85.3Km/h,2010-09-21,14:50 2010 921145052
6591541895 Latitude = 01 18 59.49N Longitude = 103 48 23.63E,Speed = 0.7Km/h,2010-09-21,14:49 2010 921144953
6591541895 Latitude = 01 18 36.61N Longitude = 103 48 12.16E,Speed = 99.2Km/h,2010-09-21,14:48 2010 921144851
6591541895 Latitude = 01 17 51.23N Longitude = 103 48 01.26E,Speed = 80.9Km/h,2010-09-21,14:47 2010 921144752
6591541895 Last: Latitude = 01 16 36.32N Longitude = 103 47 58.29E,Speed = 0.0Km/h,2010-09-02,16:44 2010 921144655
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
92
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT

















































Figure E-1: Journey of field testing from Alexandra Road to Ang Mo Kio
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
93
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Appendix E-2: Journey from SIM University to Singapore Polytechnic and
back to SIM University





Name/Number Content Time
6591541895 Last: Latitude = 01 19 47.71N Longitude = 103 46 33.31E,Speed = 0.0Km/h,2010-10-24,13:33 20101024133433
6591541895 Last: Latitude = 01 19 47.71N Longitude = 103 46 33.31E,Speed = 0.0Km/h,2010-10-24,13:33 20101024133332
6591541895 Latitude = 01 19 46.92N Longitude = 103 46 38.30E,Speed = 22.7Km/h,2010-10-24,13:32 20101024133233
6591541895 Latitude = 01 19 30.13N Longitude = 103 46 25.49E,Speed = 50.7Km/h,2010-10-24,13:31 20101024133135
6591541895 Latitude = 01 19 05.36N Longitude = 103 46 16.63E,Speed = 52.8Km/h,2010-10-24,13:30 20101024133034
6591541895 Latitude = 01 18 48.30N Longitude = 103 46 19.27E,Speed = 54.7Km/h,2010-10-24,13:29 20101024132933
6591541895 Latitude = 01 18 43.41N Longitude = 103 46 20.67E,Speed = 0.1Km/h,2010-10-24,13:28 20101024132833
6591541895 Latitude = 01 18 44.84N Longitude = 103 46 32.65E,Speed = 53.2Km/h,2010-10-24,13:27 20101024132732
6591541895 Latitude = 01 18 31.40N Longitude = 103 46 57.86E,Speed = 42.3Km/h,2010-10-24,13:26 20101024132632
6591541895 Latitude = 01 18 27.39N Longitude = 103 47 06.77E,Speed = 45.7Km/h,2010-10-24,13:25 20101024132534
6591541895 Latitude = 01 18 29.55N Longitude = 103 47 22.90E,Speed = 0.2Km/h,2010-10-24,13:24 20101024132433
6591541895 Latitude = 01 18 18.03N Longitude = 103 47 21.10E,Speed = 49.5Km/h,2010-10-24,13:23 20101024132332
6591541895 Latitude = 01 17 53.93N Longitude = 103 47 07.14E,Speed = 53.4Km/h,2010-10-24,13:22 20101024132232
6591541895 Latitude = 01 17 39.97N Longitude = 103 47 08.82E,Speed = 46.4Km/h,2010-10-24,13:21 20101024132130
6591541895 Latitude = 01 17 36.83N Longitude = 103 47 06.48E,Speed = 9.0Km/h,2010-10-24,13:20 20101024132033
6591541895 Latitude = 01 17 49.08N Longitude = 103 46 56.17E,Speed = 27.0Km/h,2010-10-24,13:19 20101024131931
6591541895 Latitude = 01 17 50.71N Longitude = 103 46 41.48E,Speed = 38.0Km/h,2010-10-24,13:18 20101024131830
6591541895 Latitude = 01 17 59.16N Longitude = 103 46 28.70E,Speed = 22.1Km/h,2010-10-24,13:17 20101024131732
6591541895 Latitude = 01 18 04.56N Longitude = 103 46 17.45E,Speed = 38.2Km/h,2010-10-24,13:16 20101024131631
6591541895 Latitude = 01 18 21.76N Longitude = 103 46 16.78E,Speed = 10.0Km/h,2010-10-24,13:15 20101024131531
6591541895 Latitude = 01 18 31.82N Longitude = 103 46 25.91E,Speed = 53.3Km/h,2010-10-24,13:14 20101024131433
6591541895 Latitude = 01 18 21.11N Longitude = 103 46 49.10E,Speed = 34.8Km/h,2010-10-24,13:13 20101024131332
6591541895 Latitude = 01 18 20.64N Longitude = 103 46 50.54E,Speed = 5.2Km/h,2010-10-24,13:12 20101024131231
6591541895 Latitude = 01 18 35.39N Longitude = 103 46 53.02E,Speed = 46.5Km/h,2010-10-24,13:11 20101024131130
6591541895 Latitude = 01 18 45.19N Longitude = 103 46 28.79E,Speed = 47.7Km/h,2010-10-24,13:10 20101024131033
6591541895 Latitude = 01 19 00.26N Longitude = 103 46 18.32E,Speed = 51.5Km/h,2010-10-24,13:09 2010102413 930
6591541895 Latitude = 01 19 25.25N Longitude = 103 46 20.55E,Speed = 54.8Km/h,2010-10-24,13:08 2010102413 829
6591541895 Latitude = 01 19 44.56N Longitude = 103 46 38.55E,Speed = 51.1Km/h,2010-10-24,13:07 2010102413 731
6591541895 Latitude = 01 20 13.02N Longitude = 103 46 43.54E,Speed = 39.0Km/h,2010-10-24,13:06 2010102413 630
6591541895 Latitude = 01 20 10.60N Longitude = 103 46 42.01E,Speed = 36.4Km/h,2010-10-24,13:05 2010102413 529
6591541895 Latitude = 01 19 48.64N Longitude = 103 46 39.57E,Speed = 39.8Km/h,2010-10-24,13:04 2010102413 429
6591541895 Latitude = 01 19 48.54N Longitude = 103 46 34.92E,Speed = 13.0Km/h,2010-10-24,13:03 2010102413 328
6591541895 Latitude = 01 19 51.40N Longitude = 103 46 31.85E,Speed = 0.0Km/h,2010-10-24,13:02 2010102413 231
6591541895 Latitude = 01 19 51.37N Longitude = 103 46 31.89E,Speed = 0.0Km/h,2010-10-24,13:01 2010102413 130
6591541895 Last: Latitude = 01 17 46.86N Longitude = 103 46 59.27E,Speed = 0.0Km/h,2010-10-09,13:47 2010102413 1 2
6591541895 Last: Latitude = 01 17 46.86N Longitude = 103 46 59.27E,Speed = 0.0Km/h,2010-10-09,13:47 2010102413 057
6591541895 Last: Latitude = 01 17 46.86N Longitude = 103 46 59.27E,Speed = 0.0Km/h,2010-10-09,13:47 20101024125930
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
94
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT


















































Figure E-2: Journey of field testing from SIM University to Singapore Polytechnic and back to SIM University
Figure E-3: SIM University
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
95
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT


















































Figure E-4: Ngee Ann Polytechnic
Figure E-5: Sunset Way
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
96
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT




























































Figure E-6: Singapore Polytechnic
Figure E-7: SingTel Tower at Dover
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
97
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT


























































Figure E-9: Ministry of Education (MOE) at Buona Vista
Figure E-8: National University of Singapore (NUS)
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
98
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Glossary

Almanac data
A set of parameters for each GPS satellite that can be used to calculate its approximate
location in orbit

Altitude
The height of an object above a reference level, especially above sea level or above the
Earths surface

American Standard Code for Information Exchange (ASCII)
A character-encoding scheme based on the ordering of English alphabet.

Application Programming Interface (API)
A set of routines, data structures, object classes and/or protocols provided by libraries and/or
operating system services in order to support the building of applications.

Coordinate
A number that identifies a position relative to an axis

Ephemeris data
Precise orbital position and clock data for each GPS satellite

Equator
The line which encircles the Earth at an equal distance from the North and South Poles

Global Positioning System (GPS)
A global navigation satellite system which provides reliable positioning, navigation and
timing services to worldwide users on a continuous basis in all weather, day and night, and
anywhere on or near the Earth.

Global System for Mobile Communications (GSM)
An international standard for wireless technology

Student Name/ Student No.: Tan Yong Peng Charles / J0704259
99
BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Graphical User Interface (GUI)
A user interface based on graphics (icons, pictures or menus) instead of text; uses a mouse as
well as a keyboard as an input device.

Ionosphere
The outer region of the Earths atmosphere, distinguished because it is ionised by solar
radiation.

Latitude
Latitude is the angular distance between the Equator, with positive values going north and
negative values going south on the surface of the earth.

Longitude
Longitude is the angular distance between the Prime Meridian (which is the longitude that
runs through Greenwich, England), with positive values going east and negative values going
west on the surface of the Earth.

Pseudorandom code
The identifying signature signal transmitted by each GPS satellite and mirrored by the GPS
receiver in order to separate and retrieve the signal from background noise.

Short Message Service (SMS)
A communication protocol that enables the exchange of short text messages between mobile
devices.

Troposphere
It is lowest portion of the Earths atmosphere. It contains approximately 75% of the
atmospheres mass and 99% of its water vapour and aerosols.

Universal Serial Bus (USB)
A way of setting up communication between a computer and peripheral devices

Das könnte Ihnen auch gefallen