Upload
varshasingh20
View
71
Download
0
Tags:
Embed Size (px)
Citation preview
SIM UNIVERSITYSCHOOL 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 Universityin 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
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.
iBME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
iiBME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
TABLE OF CONTENTS Page
ABSTRACT..............................................................................................................................................................iACKNOWLEGDEMENTS.....................................................................................................................................iiTABLE OF CONTENTS........................................................................................................................................iiiLIST OF FIGURES..................................................................................................................................................vLIST OF TABLES..................................................................................................................................................viLIST OF APPENDICES.........................................................................................................................................vi1 INTRODUCTION............................................................................................................................................1
1.1 Overview of Background.........................................................................................................................11.2 Project Objectives....................................................................................................................................11.3 Scope of the Project..................................................................................................................................2
1.3.1 GPS Technology................................................................................................................................21.3.2 Selection of Hardware Devices..........................................................................................................21.3.3 Selection of Programming Language.................................................................................................31.3.4 Concept of SMS Technology.............................................................................................................4
1.4 Project Application...................................................................................................................................41.5 Terms of Reference.................................................................................................................................5
1.5.1 Project Design and Development.......................................................................................................51.5.2 Project Testing and Evaluation..........................................................................................................51.5.3 Results and Enhancement...................................................................................................................61.5.4 Troubleshooting and Evaluation........................................................................................................6
1.6 Layout of Project Report..........................................................................................................................62 Project Management.........................................................................................................................................8
2.1 Project Planning.......................................................................................................................................82.2 Project Monitoring...................................................................................................................................82.3 Project Risk Management........................................................................................................................9
2.3.1 Compatibility Issue............................................................................................................................92.4 Cost Management...................................................................................................................................10
3 Literature Review...........................................................................................................................................113.1 Global Positioning System (GPS) Introduction.....................................................................................113.2 Overview of GPS...................................................................................................................................113.3 GPS Segments........................................................................................................................................123.4 Operation of GPS...................................................................................................................................13
3.4.1 Triangulation....................................................................................................................................153.4.2 Doppler Measurement......................................................................................................................16
3.5 GPS Applications...................................................................................................................................173.6 Short Message Service (SMS) Technology...........................................................................................17
4 System Integration..........................................................................................................................................204.1 System Overview...................................................................................................................................204.2 System Architecture...............................................................................................................................22
5 System Design Considerations.......................................................................................................................255.1 GPS tracker SMS format........................................................................................................................255.2 GPS Data source....................................................................................................................................265.3 Export SMS data....................................................................................................................................265.4 GPS Errors.............................................................................................................................................26
5.4.1 GPS Ephemeris Errors.....................................................................................................................275.4.2 Multipath Error.................................................................................................................................275.4.3 Satellite and Receiver Clock Errors.................................................................................................28
6 Software Developments.................................................................................................................................296.1 GPS Tracking Software Flowchart..............................................................................................................296.2 Graphical User Interface (GUI)..............................................................................................................316.3 Software Implementation.......................................................................................................................32
6.3.1 Main GPSTrackingSystem Class.....................................................................................................326.3.2 rdGPSLive_CheckedChanged() Function........................................................................................326.3.3 rdGPSHis_CheckedChanged () Function........................................................................................336.3.4 btnBrowse_Click () Function...........................................................................................................346.3.5 btnRead_Click() Function................................................................................................................356.3.6 btnView_Click () Function...............................................................................................................36
iiiBME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
6.3.7 btnClear_Click () Function...............................................................................................................376.3.8 btnReset_Click () Function..............................................................................................................376.3.9 btnExit_Click Function....................................................................................................................386.3.10 ReadLiveGPSData(string strpath) Function...............................................................................396.3.11 ReadHistoryData() Function.......................................................................................................426.3.12 ConvertFromDMS2DD(string strData) Function.......................................................................456.3.13 Mid(string strData, int iPos1, int iPos2) Function......................................................................476.3.14 KillProcess() Function................................................................................................................48
6.4 Mapping Module....................................................................................................................................497 TESTING AND EVALUATION..................................................................................................................52
7.1 Troubleshooting and Debugging..................................................................................................................537.1.1 Test Condition 1: GPS Tracking System.........................................................................................547.1.2 Test Condition 2: Security Features.................................................................................................567.1.3 Test Condition 3: Track Vehicle position using SMS......................................................................587.1.4 Test Condition 4: Mapping Feature.................................................................................................60
7.2 Functional Test – GPS Tracking System...............................................................................................628 PROBLEMS AND DISCUSSION................................................................................................................63
8.1 GPS Tracker Connection Issue..............................................................................................................638.2 GPS Tracker SMS Interval Issue...........................................................................................................648.3 GPS Tracker Timing Issue.....................................................................................................................658.4 Computer Administrator Access Right Issue...............................................................................................668.5 Google Map Display Issue.....................................................................................................................67
9 CONCLUSIONS AND RECOMMENDATIONS........................................................................................689.1 CONCLUSIONS....................................................................................................................................689.2 RECOMMENDATION...............................................................................................................................68
10 CRITICAL REVIEWS AND REFLECTIONS.........................................................................................69References [Books]................................................................................................................................................70References [Websites]............................................................................................................................................71Appendix A............................................................................................................................................................74
Specification of GPS Tracker Device, MT80....................................................................................................74Specification of Huawei E1550 Mobile Adaptor...............................................................................................75Appendix B-1: Gantt chart................................................................................................................................76Appendix B-2: Activities Breakdown Chart......................................................................................................77Appendix B-3: Bill of Material (BOM).............................................................................................................78
APPENDIX C........................................................................................................................................................79GPS Tracker Software Source Code..................................................................................................................79Appendix C-1 Main GPSTrackingSystem Class........................................................................................79Appendix C-2 rdGPSLive_CheckedChanged() Function...........................................................................79Appendix C-3 rdGPSHis_CheckedChanged() Function............................................................................79Appendix C-4 btnBrowse_Click () Function..............................................................................................80Appendix C-5 btnRead_Click () Function..................................................................................................80Appendix C-6 btnView_Click () Function.................................................................................................80Appendix C-7 btnClear_Click () Function.................................................................................................81Appendix C-8 btnReset_Click () Function.................................................................................................81Appendix C-9 btnExit_Click () Function...................................................................................................82Appendix C-10 ReadLiveGPSData(string strPath) Function.......................................................................82Appendix C-11 ReadHistoryData() Function...............................................................................................84Appendix C-12 ConvertFromDMS2DD(string strData) Function...............................................................86Appendix C-12 Mid(string strData, int iPos1, int iPos2) Function..............................................................86Appendix C-12 KillProcess() Function........................................................................................................87
Appendix D............................................................................................................................................................88Mapping Source Code........................................................................................................................................88
Appendix E.............................................................................................................................................................90Field Testing Results..........................................................................................................................................91Appendix E-1: Journey from Alexandra to Ang Mo Kio...................................................................................91Appendix E-2: Journey from SIM University to Singapore Polytechnic and back to SIM University.............93
Glossary..................................................................................................................................................................98
ivBME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
LIST OF FIGURES
Figure 1.1: Different Views of MT80 GPS Tracker................................................................................................3Figure 1.2: Mobile Adapter......................................................................................................................................3Figure 2.1: Work Breakdown Structure (WBS).......................................................................................................8Figure 3.1: The Three Components of the elements of GPS.................................................................................13Figure 3.2: GPS – The Error Budget.....................................................................................................................15Figure 3.3: Principle of Doppler Shift....................................................................................................................16Figure 4.1: System Process Flow...........................................................................................................................20Figure 4.2: Security setting of GPS tracker using Movement Alarm....................................................................21Figure 4.3: Security setting of GPS tracker using Geo-Fence...............................................................................22Figure 4.4: System Architecture of GPS tracking..................................................................................................22Figure 4.5: MT80 GPS tracker Parameter Editor...................................................................................................23Figure 4.6: Illustration of SMS interval setting to 60 minutes interval..................................................................23Figure 4.7: Illustration of Security setting to 60 minutes interval.........................................................................24Figure 6.1: Flowchart of GPS Tracker with Mobile Adaptor................................................................................29Figure 6.2: Flowchart of GPS Tracking Application.............................................................................................30Figure 6.3: GPS Tracking System - Graphical User Interface (GUI)....................................................................31Figure 6.4: Flowchart of rdGPSLive_CheckedChanged() function.......................................................................32Figure 6.5: Flowchart of rdGPSHis_CheckedChanged() function........................................................................33Figure 6.6: Flowchart of btnBrowse_Click () function..........................................................................................34Figure 6.7: Flowchart of btnRead_Click() function...............................................................................................35Figure 6.8: Flowchart of btnView_Click () function.............................................................................................36Figure 6.9: Flowchart of btnClear_Click () function.............................................................................................37Figure 6.10: Flowchart of btnReset_Click () function...........................................................................................38Figure 6.11: Flowchart of btnExit_Click () function.............................................................................................38Figure 6.3.12: Flowchart of ReadLiveGPSData(string strpath) function..............................................................41Figure 6.13: Flowchart of ReadHistoryData() function.........................................................................................44Figure 6.14: Flowchart of ConvertFromDMS2DD(string strData) function........................................................46Figure 6.15: Flowchart of Mid(string strData, int iPos1, int iPos2) Function.......................................................47Figure 6.16: Flowchart of KillProcess() function..................................................................................................48Figure 6.17: Flowchart of Mapping Module..........................................................................................................50Figure 6.18: Google Map with Location Markers..................................................................................................51Figure 7.1: Actual Field Testing Equipments........................................................................................................52Figure 7.2: Process Flow Chart of Troubleshooting..............................................................................................53Figure 7.3: Process Flow chart of GPS Tracking System Debugging...................................................................54Figure 7.4: Screenshot of GPS Tracking System GUI with data from SMS.DTC................................................55Figure 7.5: Movement Alarm setting and Alert.....................................................................................................56Figure 7.6: Illustration of Geo-Fence setting and Alert.........................................................................................57Figure 7.7: Track by SMS......................................................................................................................................58Figure 7.8: Track on Demand................................................................................................................................59Figure 7.9: Process Flow Chart of Google Map Debugging..................................................................................60Figure 7.10: Confirmation of markers information with log file...........................................................................61Figure 7.11: Functional Testing of the GPS Tracking System..............................................................................62Figure 8.1: USB-to-Serial Adaptor........................................................................................................................63Figure 8.2: Illustration of Sending SMS to GPS Tracker to set 1 minute..............................................................64Figure 8.3: Illustration of GPS Tracker Time Zone Set.........................................................................................65Figure 8.4: Properties setting of GPS tracking software on Compatibility tab......................................................66Figure 8.5: Google Map API loaded on Mozilla Firefox Browser........................................................................67Figure 8.6: Google Map API loaded on Microsoft Internet Explorer....................................................................67
vBME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
LIST OF TABLES
Table 3.1: Concept development and standardisation of SMS.............................................................................19Table 3.2: Development of SMS in the market.....................................................................................................19Table 5.1: GPS data information............................................................................................................................25Table 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..........................................................92Figure E-2: Journey of field testing from SIM University to Singapore Polytechnic and back to SIM University................................................................................................................................................................................94Figure E-3: SIM University...................................................................................................................................94Figure E-4: Ngee Ann Polytechnic........................................................................................................................95Figure E-5: Sunset Way.........................................................................................................................................95Figure E-6: Singapore Polytechnic........................................................................................................................96Figure E-7: SingTel Tower at Dover......................................................................................................................96Figure E-8: National University of Singapore (NUS)............................................................................................97Figure E-9: Ministry of Education (MOE) at Buona Vista....................................................................................97
viBME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
1BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
2BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 1.1: Different Views of MT80 GPS Tracker
Figure 1.2: Mobile Adapter
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
3BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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 vehicle’s 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 customer’s 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.
4BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
5BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
1.5.3 Results and Enhancement
Most importantly, delivery of the results to meet the project’s 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.
6BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
7BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 2.1: Work Breakdown Structure (WBS)
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
8BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
9BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
10BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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 user’s 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
11BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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).
12BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 3.1: The Three Components of the elements of GPS (Illustration from "The Aerospace Corporation")[ ]
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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 GPS’s 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 108 meters/second = Distance (in meters)
13BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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 receiver’s location, a process called triangulation is used. And
there will a shift in frequency called Doppler Effect.
14BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 3.2: GPS – The Error Budget(Illustration from "Geneq inc.")
[]
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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).
15BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 3.3: Principle of Doppler Shift (Illustration from “Windows Team (2000)”) []
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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 receiver’s 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 receiver’s may not be accurate enough for some
application (Ahmed EL-Rabany 2006).
16BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
17BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
18BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Table 3.1: Concept development and standardisation of SMS(Friedhelm Hillebrand 2010, p.20)
Table 3.2: Development of SMS in the market(Friedhelm Hillebrand 2010, p.21)
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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).
19BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
GPS Signal
SMS Data
Satellites
MT80 GPS TrackerGSM Network
SMS Data
SMS Data
Mobile Phone
LaptopBoard Band Dongle Key
Figure 4.1: System Process Flow
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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
20BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 4.2: Security setting of GPS tracker using Movement Alarm
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
21BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
“****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
22BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
Figure 4.6: Illustration of SMS interval setting to 60 minutes interval
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
23BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
24BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 4.7: Illustration of Security setting to 60 minutes interval
A B C D E
Table 5.1: GPS data information
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
5.2 GPS Data source
25BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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 computer’s 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).
5.4.1 GPS Ephemeris Errors
26BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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).
5.4.3 Satellite and Receiver Clock Errors
27BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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).
6 Software Developments
28BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
GPS Live Data GPS History Data
Monitor User click selection button
in GUI
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
29BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
6.2 Graphical User Interface (GUI)
30BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
No
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
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.
6.3 Software Implementation
31BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
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.
6.3.3 rdGPSHis_CheckedChanged () Function
32BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
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.
6.3.4 btnBrowse_Click () Function
33BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
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.
34BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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\SMS.DTC”
Yes
No
End
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
35BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
Yes
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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”.
36BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Exit this function
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
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.
37BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 6.10: Flowchart of btnReset_Click () function
Start
YesYes
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
Start
End
Exit and close the program
Figure 6.11: Flowchart of btnExit_Click () function
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
38BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
39BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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 “*Exception 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 “*Exception Error*” error message
End
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
40BME499 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
41BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
42BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
43BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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=”and “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 ConvertFromDMS2DD(string strData function
Yes
End
Prompt “*Exception Error*” error message
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
44BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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: 19Seconds: 47.71
Longitude format 103 46 33.31E Degrees: 103
Minutes: 46Seconds: 33.31
The following formula is needed for the conversion from Degrees Minutes Seconds format to
Decimal Degrees format for Latitude and Longitude:
Degree+( Minute60 )+( Second
3600 )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:
103+(4660 )+(33 . 31
3600 )=103. 77591945
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.
45BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Table 6.1: Format of Latitude and Longitude in Degrees Minutes Seconds
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
46BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
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.
47BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
NoPrompt “*Exception Error*” error message
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
48BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
49BME499 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
50BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 6.18: Google Map with Location Markers
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
51BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Actual address with information like Time Stamp, Latitude, Longitude and Speed when the user clicks on the marker
Markers
Laptop with Mobile Adaptor
GPS Tracker
Figure 7.1: Actual Field Testing Equipments
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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 car’s
dashboard and Mobile Adaptor will be attached to the laptop for receiving SMS.
52BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
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.
53BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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 dataDebugging 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
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.
54BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Yes
Figure 7.4: Screenshot of GPS Tracking System GUI with data from SMS.DTC
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
55BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
7.1.2 Test Condition 2: Security FeaturesFor 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
56BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
Type 2: Geo-Fence
57BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
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.
58BME499 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
59BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
7.1.4 Test Condition 4: Mapping FeatureMapping 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
60BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
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.
61BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 7.11: Functional Testing of the GPS Tracking System
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
62BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 8.1: USB-to-Serial Adaptor
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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 tracker’s 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.
63BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Sent SMS to GPS TrackerReceived 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
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.
64BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
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
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.
65BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 8.4: Properties setting of GPS tracking software on Compatibility tab
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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);}
66BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure 8.5: Google Map API loaded on Mozilla Firefox Browser
Figure 8.6: Google Map API loaded on Microsoft Internet Explorer
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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.
67BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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
68BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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
neighbourhood’s 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.
69BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
References [Books]
[1] Robert I. Egbert and Joseph E. King, The GPS handbook: an outdoorsman’s 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, 2nd 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
[17] Wells D.E., et al., Guide to GPS Positioning, Fredericton, New Brunwick: Canadian GPS Associates 1987
70BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
[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 GPShttp://www.aero.org/education/primers/gps/elements.html
[2] Appleseed, Johnny (1999-2009) The Theory and Practice of GPShttp://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 TRAVERSEhttp://www.cmtinc.com/gpsbook/
[6] LiveViewGPS (2009) GPS Asset Trackerhttp://www.liveviewgps.com/gps+asset+tracker.html
[7] Maps-GPS-Info.com, GPS History, How it all startedhttp://www.maps-gps-info.com/gps-history.html
[8] Maps-gps-info.com, GPS Cell Phone Tracking - I Know Where You Arehttp://www.maps-gps-info.com/gps-cell-phone-tracking.html
[9] National Space-Based Positioning, Navigation, and Timing Coordination Office, The Global Positioning Systemhttp://www.gps.gov/systems/gps/index.html
[10] Nelson, Robert A. (1999), The Global Positioning Systemhttp://www.aticourses.com/global_positioning_system.htm
71BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
[11] Rey, Jorge R. (2006), An introduction to GPShttp://edis.ifas.ufl.edu/IN653
[12] Rocky Mountain Tracking (2001-2007), Smart Track GPS Tracking Systemhttp://www.rmtracking.com/gpsproducts/smarttrack.html
[13] Smithsonian Institution, How Does GPS Workshttp://www.nasm.si.edu/gps/work.html
[14] Starcom Systems (2004-2009) Fleet Managementhttp://www.starcomsystems.com/services_fleeta.asp
[15] SunSat Statellite Solution Co., GSM mobile phone tracking system via the GPS-TRACK satellite networkhttp://www.themobiletracker.com/english/index.html
[16] The Aerospace Corporation, How GPS Workshttp://www.aero.org/education/primers/gps/howgpsworks.html
[17] Topbits, How GPS Tracking Workshttp://www.topbits.com/how-gps-tracking-works.html
[18] Wikipedia, the free encyclopedia, Global Positioning Systemshttp://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, Compasshttp://en.wikipedia.org/wiki/Compass
[21] Wikipedia, the free encyclopedia, Sextanthttp://en.wikipedia.org/wiki/Sextant
[22] Wikipedia, the free encyclopedia, GPS Tracking Devicehttp://en.wikipedia.org/wiki/GPS_tracking_unit
[23] Wikipedia, the free encyclopedia, Trilaterationhttp://en.wikipedia.org/wiki/Trilateration
[24] Wikipedia, the free encyclopedia, GPS tracking unithttp://en.wikipedia.org/wiki/GPS_tracking_unit
[25] Wikipedia, the free encyclopedia, Trilaterationhttp://en.wikipedia.org/wiki/Trilateration
[26] Wikipedia, the free encyclopedia, Doppler Effecthttp://en.wikipedia.org/wiki/Doppler_effect
72BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
[27] Wikipedia, the free encyclopedia, Beidou Navigation Systemhttp://zh.wikipedia.org/wiki/%E5%8C%97%E6%96%97%E5%AF%BC%E8%88%AA%E7%B3%BB%E7%BB%9F
[28] Wikipedia, the free encyclopedia, Galileo Positioning Systemhttp://zh.wikipedia.org/w/index.php?title=%E4%BC%BD%E5%88%A9%E7%95%A5%E5%8D%AB%E6%98%9F%E5%AE%9A%E4%BD%8D%E7%B3%BB%E7%BB%9F&variant=zh-cn
[29] Wikipedia, the free encyclopedia, SMShttp://en.wikipedia.org/wiki/SMS
[30] Developer’s home, Basic Concepts of SMS Technologyhttp://www.developershome.com/sms/sms_tutorial.asp?page=basicConcepts
[31] Geneq inc., GPS – The Error Budgethttp://www.sxbluegps.com/gps-error-Budget.html#gpsworks
[32] IGS (International GNSS Service, IGS Product Tablehttp://igscb.jpl.nasa.gov/components/prods.html
[33] U.S Observatory, USNO GPS Time Transferhttp://tycho.usno.navy.mil/gpstt.html
[32] George Birbilis @zoomicon, Start/kill process with VB.nethttp://zoomicon.wordpress.com/2007/04/15/startkill-processes-with-vb-net
[33] ASCII Control Characters Definitionhttp://www.lammertbies.nl/comm/info/ascii-characters.html#endt
[34] ASCII Tablehttp://www.asciitable.com/
[35] Koobmeei blogspot, Convert Degrees, Minutes, and Second to Decimal Degreeshttp://koobmeej.blogspot.com/2008/08/convert-degrees-minutes-and-seconds-to.html
[36] Sparky Spider's Discoveries blogspot, Javascript: Convert DMS to DDhttp://sparkyspider.blogspot.com/2006/12/javascript-object-convert-from-dms-to.html
[37] Delphi Programming © Neil Moffatt 2002, Setting and Getting File Attributeshttp://www.delphibasics.co.uk/Method.asp?NameSpace=System.IO&Class=File&Type=Class&Method=SetAttributes
[38] Mike Williams (2006 – 2010), Google Maps API Tutorialhttp://econym.org.uk/gmap/
73BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
Appendix A
Specification of GPS Tracker Device, MT80
Items SpecificationDeviceCharging Voltage DC 4.2-5.5V/400mA (Mini USB port)Battery Rechargeable and removable 700 mAh battery (3.7V)Dimension 61x42x15mmWeight 50g (with battery)Operating temperature
-20° to 55° C
Humidity 5% to 95% Non-condensingWork time 96 hours in standby mode and 10 hours in continuous working mode
LED 2 LEDs showing GPS, GSM statusButton One SOS panic button and one power On/Off buttonMicrophone Built-in microphone for wiretappingMemory 4MBGSMGSM module Quad-band GSM 850/900/1800/1900MHzSIM Card Interface Support SIM card: 1.8V, 3VGPSGPS Chipset Latest SiRF Star III high sensitivity single-chip GPS receiverGPS Sensitivity -159dBGPS Frequency L1, 1575.42 MHzC/A Code 1.023 MHz chip rateChannels 20 channel all-in-view trackingPosition Accuracy 10 meters, 2D RMSVelocity Accuracy 0.1 m/sTime Accuracy 1 us synchronized to GPS timeDefault datum WGS-84Reacquisition 0.1 sec., averageHot start <2 sec., averageWarm start 38 sec., averageCold start 42 sec., averageAltitude Limit 18,000 meters (60,000 feet) max.Velocity Limit 515 meters/second (1000 knots) max.Acceleration Limit Less than 4gJerk Limit 20 m/secCertificationModule Approvals CE, GCF, FCC, RoHS, PTCRB, IC
Specification of Huawei E1550 Mobile Adaptor
Specifications
74BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
Weight 30g
Size11.5mm x 87.5mm x 26.0mm(H x L x W)
Colours WhiteAdvance Features3.5G Yes
75BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
Appendix B-1: Gantt chart
76BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
Appendix B-2: Activities Breakdown Chart
S/N Tasks for Capstone Project
Duration Start End
Project Initial Phase
1Initial 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 Days18-May-
09 27-May-09
15Design 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
20Design 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
77BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
Appendix B-3: Bill of Material (BOM)
Component Description Quantity Cost Per UnitGPS 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
78BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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
79BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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
80BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
{ // 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; }
81BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
// If master file process finished, go to each individual BA* file. for (int i = 1; i < 4; i++) { 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
82BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
#region [User Defined Functions]
private void ReadLiveGPSData(string strPath) { try { // 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,
83BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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 && 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",
84BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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")) 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:", "");
85BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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(); 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", "");
86BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
// 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. 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. } }
87BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
return true; } catch (Exception e) { MessageBox.Show("Exception Error*\n\r" + e.Message, "GPS Tracker", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1); return false; } }
#endregion
}}
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=ABQIAAAAwL0hBKXKlI2xKObyfhKE9BSpJbTgDT5ZInO2WrTXInp1vxnZqRQFvtE0ku7XDAx1QfD7juyFQwCC1g" 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[
88BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
// Example Got from here --> http: //www.codeproject.com/KB/scripting/GetURLParameters.aspxfunction 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] = ""; }
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; }
89BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
// 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]); 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>
90BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
Appendix E
Field Testing ResultsListed 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
91BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
92BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Name/Number Content Time
6591541895Latitude = 01 17 14.15N Longitude = 103 48 15.28E,Speed = 0.6Km/h,2010-
09-21,16:282010
921162845
6591541895Latitude = 01 17 11.31N Longitude = 103 48 21.63E,Speed =
15.4Km/h,2010-09-21,16:272010
921162832
6591541895Latitude = 01 17 09.36N Longitude = 103 48 37.60E,Speed =
17.0Km/h,2010-09-21,16:262010
921162825
6591541895Latitude = 01 17 05.55N Longitude = 103 48 52.82E,Speed = 1.0Km/h,2010-
09-21,16:252010
921162544
6591541895Latitude = 01 17 01.95N Longitude = 103 49 07.33E,Speed =
23.1Km/h,2010-09-21,16:242010
921162446
6591541895Latitude = 01 16 58.86N Longitude = 103 49 15.59E,Speed = 0.4Km/h,2010-
09-21,16:232010
921162345
6591541895Latitude = 01 16 56.99N Longitude = 103 49 19.80E,Speed =
42.8Km/h,2010-09-21,16:222010
921162246
6591541895Latitude = 01 16 54.21N Longitude = 103 49 26.51E,Speed = 0.4Km/h,2010-
09-21,16:212010
921162145
6591541895Latitude = 01 16 54.60N Longitude = 103 49 27.48E,Speed = 7.5Km/h,2010-
09-21,16:202010
921162043
6591541895Latitude = 01 16 50.92N Longitude = 103 49 33.01E,Speed = 0.5Km/h,2010-
09-21,16:192010
921161945
6591541895Latitude = 01 16 50.72N Longitude = 103 49 33.68E,Speed = 5.5Km/h,2010-
09-21,16:182010
921161846
6591541895Latitude = 01 16 47.20N Longitude = 103 49 39.86E,Speed =
23.7Km/h,2010-09-21,16:172010
921161743
6591541895Latitude = 01 16 52.52N Longitude = 103 49 52.87E,Speed =
63.0Km/h,2010-09-21,16:162010
921161645
6591541895Last: Latitude = 01 17 59.84N Longitude = 103 50 40.62E,Speed =
0.0Km/h,2010-09-21,16:142010
921161547
6591541895Latitude = 01 18 01.42N Longitude = 103 50 38.79E,Speed =
89.1Km/h,2010-09-21,16:142010
921161444
6591541895Latitude = 01 18 36.98N Longitude = 103 50 39.29E,Speed =
88.5Km/h,2010-09-21,16:132010
921161343
6591541895Latitude = 01 19 07.06N Longitude = 103 51 06.36E,Speed =
79.4Km/h,2010-09-21,16:122010
921161249
6591541895Latitude = 01 19 34.24N Longitude = 103 51 39.29E,Speed =
74.3Km/h,2010-09-21,16:112010
921161142
6591541895Latitude = 01 20 11.27N Longitude = 103 51 44.01E,Speed =
41.7Km/h,2010-09-21,16:102010
921161042
6591541895Latitude = 01 20 38.80N Longitude = 103 51 36.68E,Speed =
68.9Km/h,2010-09-21,16:092010 92116
944
6591541895Latitude = 01 21 15.89N Longitude = 103 51 24.78E,Speed =
76.2Km/h,2010-09-21,16:082010 92116
843
6591541895Last: Latitude = 01 21 08.74N Longitude = 103 50 24.56E,Speed =
0.0Km/h,2010-09-21,14:572010 92116
741
6591541895Last: Latitude = 01 21 08.74N Longitude = 103 50 24.56E,Speed =
0.0Km/h,2010-09-21,14:572010 92116
642
6591541895Latitude = 01 20 58.73N Longitude = 103 50 22.30E,Speed =
64.2Km/h,2010-09-21,14:562010
921145652
6591541895Latitude = 01 20 53.02N Longitude = 103 50 16.64E,Speed = 0.0Km/h,2010-
09-21,14:552010
921145552
6591541895Latitude = 01 20 51.94N Longitude = 103 50 17.37E,Speed =
32.7Km/h,2010-09-21,14:542010
921145450
6591541895Latitude = 01 20 25.93N Longitude = 103 49 54.32E,Speed =
67.1Km/h,2010-09-21,14:532010
921145350
6591541895Latitude = 01 20 24.81N Longitude = 103 49 17.86E,Speed =
72.7Km/h,2010-09-21,14:522010
921145253
6591541895Latitude = 01 19 49.43N Longitude = 103 48 54.41E,Speed =
75.8Km/h,2010-09-21,14:512010
921145151
6591541895Latitude = 01 19 10.13N Longitude = 103 48 37.04E,Speed =
85.3Km/h,2010-09-21,14:502010
921145052
6591541895Latitude = 01 18 59.49N Longitude = 103 48 23.63E,Speed = 0.7Km/h,2010-
09-21,14:492010
921144953
6591541895Latitude = 01 18 36.61N Longitude = 103 48 12.16E,Speed =
99.2Km/h,2010-09-21,14:482010
921144851
6591541895Latitude = 01 17 51.23N Longitude = 103 48 01.26E,Speed =
80.9Km/h,2010-09-21,14:472010
921144752
6591541895Last: Latitude = 01 16 36.32N Longitude = 103 47 58.29E,Speed =
0.0Km/h,2010-09-02,16:442010
921144655
Figure E-1: Journey of field testing from Alexandra Road to Ang Mo Kio
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
93BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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
94BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure E-3: SIM University
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
95BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure E-5: Sunset Way
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
96BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure E-4: Ngee Ann Polytechnic
Figure E-7: SingTel Tower at Dover
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
97BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Figure E-9: Ministry of Education (MOE) at Buona Vista
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
Glossary
Almanac data
98BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
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
Earth’s 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
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.
99BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT
Student Name/ Student No.: Tan Yong Peng Charles / J0704259
Ionosphere
The outer region of the Earth’s 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 Earth’s atmosphere. It contains approximately 75% of the
atmosphere’s 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
100BME499 ENG499 MTD499 ICT499 MTH499 CAPSTONE PROJECT REPORT