-
Notifications
You must be signed in to change notification settings - Fork 2
Design Decisions
The purpose of this wiki page is to identify major design decisions that have been made for the V-Tracker project. Design decisions are broken down into Software and Hardware decisions as outlined on this page.
This is a living document that may be modified from time to time. Please refer to the Wiki History for detailed revision information.
Current version:
Version | Date | Modified by | Details |
---|---|---|---|
v3.0.0 | 14-09-2012 | Hadi Michael | Rev. A for final submission. |
It is a project requirement that the software be developed in a form that allows it to be deployed on multiple mobile operating systems, namely: iOS 5.0+ and Android 4.0+. As a result, there are can be no strict hardware requirements for this project. In future development, the project may incorporate additional hardware accessories that provide higher accuracy motion sensing and/or user interfacing hardware that can enhance the user experience.
An Apple iPhone 4 has been selected as a mobile device for use in prototype development. An Asus Nexus 7 and an HTC Desire have also been used to demonstrate the software's versatility across different devices.
It was decided that the application would attempt to collect and store information from both the device's motion sensors (accelerometer and gyroscope) and localisation sensors (compass and GPS). More information relating to these sensors can be found in the Hardware page.
It was decided, for this stage of the research, that the application run completely inside the browser. This implied that all necessary computation was to be performed locally using the browser's JavaScript engine. Furthermore, all data was to be stored locally using web-interfaces made available in HTML5. The primary benefit of this decision was the application's ability to run independent of a server and more importantly, without the need for constant connectivity. The obvious constraint presented here is the limited realtime computational power available to the browser's Document Object Model (DOM). It is anticipated that future projects will explore the benefits of distributed computing and possibly offload the computation and storage to a dedicated server.
HTML5 standards propose two primary forms of data storage: local key/value storage (localstorage/sessionstorage) and local databases (SQLite3). According to the W3C, the SQLite3 standards are no longer being maintained, as a result local key/value storage was chosen as the primary form of data storage. However in order to satisfy the requirement relating to easy data export for manual data analysis, the SQLite web-interfaces were used to enable users to create a SQLite3 database that could be extracted from the device. The database can then provide comma-separated tables that can be imported into Mathematica (or similar mathematical packages).
Google serve an open API for accessing their maps platform. Given the power and well-established developer community surrounding Google Maps, it was selected for route visualisation. The Google Maps API access is provided for free on the condition that the final application be delivered free to users.
The V-Tracker project outcome includes a mobile software application. The application, its encompassed algorithms and documentation form the primary deliverable for this project. Many crucial decisions were made with regard to the tools, plugins and open-source libraries used in V-Tracker. Each of these was chosen on the merit of their unique functionality. More information, in addition to well-deserved credit, is given for all the tools, plugins and open-source libraries used in V-Tracker at Credits and Licenses.
The most noteworthy framework used was: PhoneGap. In order to ensure that sensor data was reliably acquired using web technologies and to facilitate the deployment of the application on multiple mobile devices, the Cordova (known as PhoneGap) framework was selected. According to phonegap.com:
PhoneGap is an HTML5 app platform that allows you to author native applications with web technologies and get access to APIs and app stores. PhoneGap leverages web technologies developers already know best... HTML and JavaScript.
Figure 1. Apache Cordova, the project behind PhoneGap
You can read more about PhoneGap at http://phonegap.com/about.