MagicMapCEDevelop
aus Nomads, der freien Wissensdatenbank
Diese Seite enthält Infos für Entwickler zum MagicMapCE Client.
Zurück zur MagicMap Übersicht
Inhaltsverzeichnis |
Sourcen
- Der Source-Code des MagicMapCE-Clients ist in C# und basiert auf dem .Net/Compact Framework. Es handelt sich also um eine von dem MagicMap Java-Client unabhängige Codebasis
- Sourcen (zugriffsbeschränkt)
Voraussetzungen
- ab Version 0.8 ist Windows Mobile 6 erforderlich (Firmware-Updates für fast alle Geräte sind, entweder bei den Providern (z.B. O2) oder für die Originalgeräte direkt bei HTC, kostenlos zu bekommen)
- HTC Artemis oder HTC Tytn (Speicherort der GSM-Daten ist gerätespezifisch und muss für weitere Geräte noch hinzugefügt werden)
Entwicklungshilfen und Infos
- Software zur Entwicklung - Was man alles braucht zum Entwickeln
- MagicMap WebServices - Dokumentation
- MagicMap WebServices mit MagicMapCE - Infos zu Implementation etc.
- aktuelle Version des MagicMapCE-Knotenmodells und des MagicMapCE-Strukturdiagramms
- MagicMapCE - neue Technologien - Wie macht man MagicMapCE fit für neue Technolgie
- GSM-Lokalisierung - alle benötigten Infos
- GPS-Lokalisierung - viele benötigten Infos
- Lokalisierung des Clients
Beteiligte Personen und Dokumentation
MagicMapCE Version 0.7 wurde von Stefan Brüning im Rahmen seiner Diplomarbeit zuletzt ergänzt. Dort stehen umfangreiche Erläuterungen zur Funktionsweise, zu den Ortungs-Algorithmen und zur Implementation (Kapitel 8).
Der verwendete Ortungs-Algorithmus beruht auf Vorarbeiten von Stephan Lüderitz, Thiemo Gerlach und Willi Engel im Rahmen ihrer EMES Projektarbeit.
Weitere Vorarbeiten sind von Christian Keller (TCP/IP Socket Kommunikation und Caching) im Rahmen seiner Diplomarbeit, siehe dazu auch Erläuterungen sowie Sourcen: hier.
Weitere Beiträgen sind von Vladimir Stantchev, Andreas Weiss und Florian Lederer (Stumbling und Web Service Kommunikation).
Seit Version 0.8 wird von Frederic Losem am MagicMapCE-Client gearbeitet und dieser um die Fähigkeit zur GSM-Ortung und GPS-Ortung erweitert, sowie um zahlreiche Bugs bereinigt.
Lizenz
Entwicklerversion (Beta)
Version 0.9.1 (in Bearbeitung)
- Integration Bluetooth (Zeitaufwand unbekannt, vermutlich nicht unerheblich) -> Sebastian Wetzel, siehe Lokalisierung über Bluetooth in Mobile Social Networks
- Ortungsalgorithmus auf Artemis wieder zum Laufen bringen (Sammeln der korrekten Signalstärken sollte dies bewirken, Zeitaufwand unbekannt (Funktioniert aber auf Tytn))
- Empfangene ssrDTOs auswerten
- Clients in bestimmten Umkreis markieren
- Informationsobjekte integrieren
- Icons und Einfärbungen analog zum Java-Client
- Speichern der neuen Mapinfos + overlay & Icon-daten im cache. Löschen des cache vor neuem anlegen
- senden der Client-Overlays/icons
- Karten vom Server auswählen und im Cache speichern für späteren Zugriff. Siehe Cachekonzept CE-Client.
- Bugfixing Overlay-Icons
Erledigt
Weitere Planung siehe auch MagicMapMilestones
Current Stable Release
siehe MagicMapCE
Versionshistorie
Version 0.9
- Umstellung auf Webservices 1.3 (ca. 1h, fertig)
- Lokalisierungsmöglichkeit für das komplette Programm schaffen, und Texte in englisch übersetzen (ca. 25-30h, fertig)
- Möglichkeit, reale Größe der Karte anzugeben (5h, fertig)
- Übernahme hierarchisches MagicMap_Kartenmodell(25h, fertig)
- Ausgabe der Daten im NMEA-Standard, aktivierbar über Einstellungen (25h, fertig aber noch zu testen)
- Offline-Cache implementiert: bei Programmbeendigung wird die Karte und alle Objekte darauf gespeichert. Alle gespeicherten Karten stehen dann mit den darauf befindlichen Objekten zur Verfügung. Falls Karte Serverkarte wird synchronisiert, sobald zum selben Server verbunden ist (30h, fertig
- Clients können einzeln markiert und demarkiert werden, oder gesammelt über ein Auswahlfenster (7h, fertig)
- Cacheerstllung auch bei Offline-Karten -> alle Ortungsmöglichkeiten auch im Offline-Modus (4h, fertig)
- Auswahlmöglichkeit, ob nur fixierte APs in die WLAN-Berechnung einfließen (10h, fertig)
- SSIDs aus Knoten ebenfalls in Cacheobjekten verfügbar machen (30min, fertig)
- Signalmessungen haben jetzt Varianzen (von neuen SimpleScanResults erwartet (5h, fertig)
- GSM-Referenzpunkte über Mittelwert bilden (3h, fertig)
- Menüpunkt, um eigenen Client zu zentrieren (30min, fertig)
- Referenzpunkte mit selben Namen wie existierende Cacheobjekte werden abgefangen und erzeugen keine Fehler mehr (2h, fertig)
- Auswahlmöglichkeit, ob WLAN-APs mit SSID oder MAC-Adresse beschriftet werden sollen (5h, fertig)
- (nach Knotentyp) ausblendbare Positionsobjekte -> normale Ansicht: nur noch Clients (20h, fertig)
- Ermöglichen, selbst Karten anzulegen (fertig, ca. 5h)
- Möglichkeit im Programm zwischen Nightly- und Nichtnightly-Server zu wählen (2h, fertig)
- Objekte löschbar machen (15h, fertig)
- Ausführliche Hilfe auch im Programm (ca. 6h, fertig)
- Benennungsschema der APs ändern (->Macadressen ohne Bindestriche) (2-3h, fertig)
- Alle Arten von Referenzpunkten neu einmessbar machen (ca. 10h+, fertig)
- Sicherheitsabfrage beim Telefon registrieren (1h, fertig)
- Statusleiste nur noch Name des AP, ohne technische Infos (ca. 1,5h, fertig)
- Manueller connect / disconnect beim klicken auf connection-image (ca. 1-2h, fertig)
- Einstellungen über xml-Datei änder- und speicherbar machen, verbunden mit Umstrukturierung von Variablen (ca. 12h, fertig)
- Bei erstem Start auf einem Gerät Auswahl für Benutzername und Passwort (1,5h, fertig)
- Strukturdiagramm erstellt (10h, fertig)
Version 0.8.9
- hierarchisches Kartenmodell
- Ausgabe von Positionsinformationen im NMEA-Standard über COM-Schnittstelle
- Karten können beim Beenden des Programmes gespeichert werden (Cache)
- Erweiterte Einstellungsmöglichkeiten
- Markieren von Clients
Version 0.8.5
- Webservice aktualisiert, neue Methode Geopositionen zu empfangen
- Webservice werden nun asynchron ausgeführt (Verbesserung der Performance-Probleme)
- Karten können angelegt werden
- Referenzpunkte könne neu eingemessen und gelöscht werden
- Hilfe-Funktion
- Anonymitätsmodus eingefügt
- Möglichkeit, manuell Verbindung zum Server herzustellen bzw. zu trennen
- Automatischer Reconnect nach Verbindungsverlust und Wiederaufnahme der Verbindung
- optische Anpassung (Neue Icons, neue Legende, ... )
- Fix beim Speichern von Einstellungen
- Grafikupdates
Version 0.8
- Serverkommunikation über Web Services
- Einfügen einer Klasse für Geokoordinaten um sie als solche darstellen zu können
- Erzeugen, Übertragen und Erhalten von Georeferenzpunkten
- Übermittlung der aus GPS gewonnen Position
- Sicherstellung und Anzeige der Verbindung zum Server
- Einbeziehung von Accesspoints in den Cache und somit in Serverkommunikation
- Ebenfalls für Clients
- Trennung von eigenem Client und anderen Clients in Karte
- Sammlung möglicher Einstellungen in einer Settings-Datei
- (fixed) WLAN-Referenzpunkte
- Grobe Integration von GSM-Ortung (naive Version aus ZV-Projekt)
- Übertragen von GSM-Referenzpunkten
Version 0.7
- fixed server communication
Version 0.6
- CAB Pocket PC Installer
- MSI Windows Installer
- Neuer Ortungsalgorithmus - erlaubt auch die autarke Ortung im offline Betrieb ohne Server. Mehr zum Algorithmus unter MagicMap Verfahren
Version 0.5
- CAB Pocket PC Installer
- MSI Windows Installer
- Strukturansicht "TreeView"
- Autonome Ortung
- Ortungsalgorithmus wählbar
- Zoom In und Zoom Out in Karten
- Karten an Position zentrieren
- Scrolling und Panning in Karten
- lokale Karte benutzen funktioniert in der 0.5b noch nicht, daher Menüpunkt ausgegraut
Version 0.3
- Positioniere Anzeige von empfangbaren AccessPoints, von anderenMagicMap-Geräten und von angegebenen Referenzpunkten
- Anlegen von Referenzpunkten
- Auswahl der aktuellen Karte
- Caching der Daten, so das nach einem Verbindungsabbruch die Daten nicht verloren gehen
Version 0.2
- MSI Windows Installer
- Scan der Signalstäken im Infrastruktur Modus
- Verteilen der Messungen über MacicMap-Server (Web Service Interface, kompatibel zu MagicMap XP/Linux)
- Berechnung und Anzeige der Positionen über MagicMap XP/Linux Clients
Referenzen
GSM
- GSM-Team Seite zur GSM-Lokalisierung im NOMADS-Seminar 2007
- GSM-Lokalisierung Ergebnisse aus dem Projekt für die Vorlesung Zuverlässige Systeme
Sonstige Sachen
... von denen ich nicht weiß, ob man sie nochmal brauchen kann, daher hier. Wer Zeit findet darf die Liste durchgehen, und das brauchbare an entsprechende Stellen verschieben bzw. löschen
Verwandte Projekte
folgende Projekte zur Ortung über WLAN-Signalstärke unter CE gibt es nach unseren bisherigen Recherchen:
- CRAFTStumbler - misst die Signalstärken auf iPAQs. "uses the iPAQs 5550 miniport driver to return a list containing all BSSIDs and their attributes". Die können dadurch geortet werden. Hauptinteresse gilt dem Bewegungsmuster der Studenten auf dem Campus
- PlaceLab - ist in Java und hat Portierungen und Stumbler für CE und auch für Bluetooth und Handys
- Ekahau - ist komerziell aber es gibt voll funktionsfähige 30-Tage-Trial-Version. Interessant für uns die Schnittstelle: "The location information is displayed in the form of x, y, floor, speed, heading, and logical area, such as "Main Conference Room". Hab das auf die schnelle nicht genau rausgekriegt, glaub aber die nehmen auch Java/SOAP als Schnittstelle. SDK ist bei der 30-days Trial dabei.
- Fraunhofer IIS - siehe Pressemitteilung Ortung mit Smart-Phones
- Navizon - WPS System. Free for personal use. Integriert GPS, GSM und WLAN. Über Server kann man die Positionen austauschen mit anderen.
- herecast - WPS System. Open Source. Spinoff der University of Western Ontario. PDF
- smart2go - kostenlose Karten fürs Handy, von Nokia/Gate5 (aus Berlin), kostenpflichtige Ad-on Services wie Navigation
- oziexplorer - kostenpflichtiger Viewer für Windows CE, nutzt Kartenmaterial von OpenStreetMaps und andere freie Karten.
- magicmaps - 3D Geovisualisierung, Outdoorkarten für Wanderer oder Mountainbiker. Fokus ist der Vertrieb von Kartenmaterial für beliebte Wander- und Reiseziele. Die Software am PC dient der Vorbereitung/Nachbearbeitung. Es gibt aber auch eine (eingeschränkte) CE Version: magicmaps2go. Sie kann auch die Karten von Kompass anzeigen.
- spotigo - WiFi Hotspot Finder und Positioning Service
- navicore - Navigationssoftware für Handys, von und für Nokia
Sonst in diesem Wiki
- WinCE Knowledge Base - Tipps und Tricks zur Programmierung für Windows CE, speziell mit WLAN und Bluetooth
- PDAtipps - Tipps und Tricks zum Umgang mit unseren PDAs (insbesondere Dell Axim x50v/x51v)
- Unter MobileNode wird über Aufbau einer geeineten Commodity Hardware (quasi als PDA Ersatz) und Nutzung unter embedded Linux diskutiert
- MagicMapDevelop - Entwicklerseite Windows XP/Linux
- MagicMapCEDevelop - Entwicklerseite Windows CE
- Positionsbestimmung - die Grundlagen
- Software zur Entwicklung - Was man alles braucht zum Entwickeln
Literatur
- A Quantitative Analysis of Power Consumption for Location-Aware Compting - Misst den Stromverbrauch diverser Anwendungen auf Smartphones
Weitere Infos
- Sourcen: SVN-Repository (zugriffsbeschränkt)
- MagicMap Lizenz
- Die Ortungsgenauigkeit hängt von der verwendeten WLAN-Hardware ab, siehe MMCEKompatibilitaetsliste .
- Hilfe zur Bedienung: MagicMapCE
- Der Source-Code ist in C# und basiert auf .Net/Compact Framework. Es handelt sich also um eine von dem MagicMap Java-Client unabhängige Codebasis
