Home > wps_logger

wps_logger

Wps_logger is a project mainly written in RUBY and JAVASCRIPT, based on the MIT license.

A signal data logger framework for WiFi Positioning System (WPS)

== WPS Logger

WiFi Positioning System (WPS) is a kind of Location Provider for Geolocation API. WPS Logger is used to collect WiFi Access Point (AP) logs, e.g. current location (GPS position or manually specified position), ESSID, SSID, RSSI and so on. WPS Logger is a web based application using Geolocation API to submit WiFi information and building map to specify manual location.

== Getting Started

  1. At the command prompt, start WPS Logger application: cd wps_logger; rake db:migrate; rails server

  2. Go to http://localhost:3000/ and you'll see welcome page of WPS Logger application.

== Dependency

This software uses wps_logger_extension (https://github.com/toyokazu/wps_logger_extension). wps_logger.xpi included in this software is generated from that project code. As you know, this software depends on a lot of open source softwares, Rails 3, json2.js and so on.

== Models

m: model a: attribute r: reference

m: WiFi Access Point (WifiAccessPoint: wifi_access_point) a: ESSID (ssid) => string a: BSSID (mac) => string

m: WiFi Log (WifiLog: wifi_log) ar: WiFi Access Point (wifi_access_point) => reference ar: Movement Log (movement_log) => reference a: RSSI (signal) => integer

m: Movement Log (MovementLog: movement_log) ar: GPS Location (GpsLocation: gps_location) => reference ar: Manual Location (ManualLocation: manual_location) => reference ar: User (user) => reference a: User Agent (user_agent) => string a: User Device (user_device) => string

m: Location (location) =>m: GPS Location (GpsLocation: gps_location) basically the same as gpsd output a: GPSd Class (gpsd_class) => string a: Tag (tag) => string a: GPS Device (device) => string a: Timestamp (time) => float a: Latitude (lat) => float a: Longitude (lon) => float a: Altitude (alt) => float a: EPX (epx) => float a: EPY (epy) => float a: EPV (epv) => float a: EPT (ept) => float a: Track (track) => float a: Speed (speed) => float a: Climb (climb) => float a: Mode (mode) => integer

=>m: Manual Location (ManualLocation: manual_location) ar: Map (map) => reference a: X Coordinate in Pixel (x) => integer a: Y Coordinate in Pixel (y) => integer a: Height in Meter (height) => float a: Direction Unit Vector (X) in Pixel, step_x / step_vector_size (u_x) => float a: Direction Unit Vector (Y) in Pixel, step_y / step_vector_size (u_y) => float a: Recorded Time at Client (time) => integer Generated by JavaScript new Date().now(). You can get Time instance by Time.at(time / 1000).

m: Map (While at least 3 datum point may be required for correct positioning, we currently use only one datum point (origin) for locating a map plane.) a: Latitude of Origin (o_lat) => float a: Longitude of Origin (o_lon) => float a: Altitude of Origin (o_alt) => float a: X Coordinate of Origin in Pixel (o_x) => integer a: Y Coordinate of Origin in Pixel (o_y) => integer a: Meter / Pixel Ratio (mp_ratio) => float a: Used by paperclip (image_file_name) => string a: Used by paperclip (image_content_type) => string a: Used by paperclip (image_file_size) => integer a: Used by paperclip (image_updated_at) => datetime

m: User (generated by Devise)

== Geolocation API Specification

Gears Request { "version": "1.1.0", "host": "maps.google.com", "access_token": "2:k7j3G6LaL6u_lafw:4iXOeOpTh1glSXe", "home_mobile_country_code": 310, "home_mobile_network_code": 410, "radio_type": "gsm", "carrier": "Vodafone", "request_address": true, "address_language": "en_GB", "location": { "latitude": 51.0, "longitude": -0.1 }, "cell_towers": [ { "cell_id": 42, "location_area_code": 415, "mobile_country_code": 310, "mobile_network_code": 410, "age": 0, "signal_strength": -60, "timing_advance": 5555 }, { "cell_id": 88, "location_area_code": 415, "mobile_country_code": 310, "mobile_network_code": 580, "age": 0, "signal_strength": -70, "timing_advance": 7777 } ], "wifi_towers": [ { "mac_address": "01-23-45-67-89-ab", "signal_strength": 8, "age": 0 }, { "mac_address": "01-23-45-67-89-ac", "signal_strength": 4, "age": 0 } ] }

Server Response { "location": { "latitude": 51.0, "longitude": -0.1, "altitude": 30.1, "accuracy": 1200.4, "altitude_accuracy": 10.6, "address": { "street_number": "100", "street": "Amphibian Walkway", "postal_code": "94043", "city": "Mountain View", "county": "Mountain View County", "region": "California", "country": "United States of America", "country_code": "US" } }, "access_token": "2:k7j3G6LaL6u_lafw:4iXOeOpTh1glSXe" }

Previous:Freeshop