g1t1 [Main]
Context Sharing - eigene Kontextinfo und andere austauschen
Inhalt:
• Logik:
Modul 1 (GUI) - Visualisierung, User Interface am Device:
- Kontextinfo GPS-Status (eigene GPS Fixes, Anzahl der Satelitten) wird angezeigt und Devices (die verbunden sind mit IP Adresse) zum Auswählen
- Akkustand wird auch angezeigt
- GUI ohne scrollen, möglichst kompakt (240*320 Pixel Platz)
- Für GPS braucht man einen Screen für die Basisfunktionalitäten
Modul 2 (Controlmodul) - Hauptlogik, Steuerung des Programms, Algorithmen, Wissen, Status (Connected), Energie
- Von welchem Gerät soll man den Status bekommen (z.B. das mit der meisten Energie)?
- Incenctives, Punktesystem (Credits) für GPS Infos überlegen
Logik:
Steuerung wieviel ich beitrage als Device und wieviel Ich nehme. Zuständig auch für Kommunikation (UDP) der Devices untereinander (Devices bilden ein Ad-hoc Netzwerk)
- optimieren auf wenig Energieverbrauch
- verschiedene Profile und Strategien anlegen (welche Infos, Metriken brauche Ich?)
- Controlmodul entscheidet ob Device GPS hat oder nicht - braucht die current GPS Daten für die GUI
- Configfile soll vom Controlmodul ausgelesen werden (Inhalt des Configfiles unter anderem - hat das Gerät GPS oder nicht?)
- Welche Daten werden als Contextdaten benutzt und ausgelesen?
- Incentives - alle Devices sollen gleich viel beitragen
- Metrik für Strategie, Strategien überlegen, Optimieren wonach? (Genauigkeit (GPS), Fair Use - alle gaben gleich viel Infos), Wie kann man optimieren?
- GPS Daten von anderen Geräten sollen ausgelesen werden aufgrund der Kontroll Logik (Genauigkeit, Energiestatus)
- Dummy Werte sollen den anderen Modulen zur Verfügung gestellt werden
- Kontrollfunktion darf keine Statusinformationen verlieren
Algorithmus:
- Wieviel Energie hat das Device gezogen? (Energie kostet und ist limitiert auf mobilen Devices)
- Wer hat die Energie gezogen (Statusabfrage)?
- Rausfinden wer noch am meisten Strom hat und wer nicht mehr sharen will.
- Energieverlust messen, ablegen und damit arbeiten
Modul 3 (Kontextmodul)- Auslesen der Daten (GPS Daten und Energiewerte) und Interfaces spezifizieren
- Was für Informationen gibt welches Modul weiter?
- Interfaces: GPS Traces (Longitute, Altitude, Anzahl der Satelliten), Energie
- Welche Daten werden von Sensoren gebraucht? (Incentives sind sensor unabhängig)
- Kontextmodul ist Teil vom Controlmodul. Wenig Strukturierung aber vom Umgang mit mobilem Device herausfordernd. Schrittweise Verfeinerung.
- Devices bauen Ad-hoc Netzwerk auf
- Wie bekomme Ich GPS und Energiedaten raus?
1. Teil: GPS Daten
2. Teil: Energiedaten auslesen (Wie geht das mit Nokia N95 und J2ME?)
- Kontextmodul erwartet vom Gerät einen Status (Hat das Gerät GPS oder nicht?)
Szenarien:
GPS liefert Daten…
GPS Anfrage - Welches Device wird ausgewählt zum Abfragen?
GPS liefert keine Daten - Wer wird abgefragt? (Abfrager und Abgefragter sind interessant)
- Config Datei mit fixen Daten soll eingelesen werden können
- GPS Daten werden an das Controlmodul geschickt.
- GPS API soll überall laufen
- Je höher die Anzahl der Satelliten ist, desto genauer (Anzahl der Satelliten steht im EMEA Satz, ab 8 Satelliten ist es gut)
- GPS Receiver haben Estimates. Bevor man ersten GPS Fix bekommt, wird der GPS Almanach downgeloadet
Modul 4 (Loggingmodul)- Logging und Experimentdesign
- Struktur (Syntax der Files) festlegen wie Logdaten abgelegt werden (Wie kann man auswerten?)
Syntaxbeispiel:
MAC;timestamp;freie Parameter
- Welche Kommunikation hat stattgefunden?
- Überprüfung nach welchen Kriterien (Wie ausgeglichen ist die Logik?, Wer hat wofür Incentives bekommen?)
- Wie sollen Devices unterschiedlich geladen sein?
- Daten sollen weitergegeben werden
- Mit wem war man verbunden, warum und wie lange und wann (Controlmodul macht ein "Push" an Logfunktion damit Log geschrieben wird)
- Logklasse (readFile, writeFile) - Logdaten aufteilen und parsen (auslesen und bearbeiten) = Aufgabe des Loggingmodul
- Logging soll historische Daten haben
- Logging: Energie, Locationdaten, Reihung der Devices (Entscheidung des Controlmodul)
4 Logfelder:
Adresse, Zeit, Reihung, Daten
- ASCII Output in ein File loggen lassen
- Socket wird verwendet um Nachrichten zu senden und zu empfangen (Socket muss geöffnet werden, Empfänger muss identifiziert werden: IP Adresse + Port = Prozess auf dem Gerät)
Kommunikationsteil:
- Reicht die Daten weiter
- Kommunikation zu anderen Devices herstellen (UDP Pakete austauschen, GPS Daten (virtuelle) austauschen, Energie Daten austauschen)
- Die Kommunikation zwischen 2 Geräten erfolgt über das Setzen eines Timers (alle 10 Sek. Timer Expired)
- Alle n Sekunden sollen die Geräte es schicken (kann Log Datei sein)
- Austausch von allen Devices für alle Devices (Liste von IP Adressen)
- Algorithmus (Anzahl der Nachrichten, Wen frage Ich?, Wie oft stelle Ich Anfragen? Energiesparender Modus, Polling)
- Push Dienst (jedes Device tauscht mit jedem Device Infos aus, alle 10 Sekunden)
- Kommunikation ist Nokia spezifisch (kapseln in eigener Klasse und trennen vom restlichen Code)
Sensorwerk:
- sollen von dem Modul zum Auslesen kommen (Context-Modul)
Versuche (Experimente, Testszenarien):
- Geräte müssen sich finden
- 1 mobiles Device mit Notebook macht Ad-hoc Netzwerk
- Alle mobilen Devices ad-hoc vernetzt (jeder schickt jedem Nachricht - UDP over Sockets als Nachrichten)
- Wer geht welchen Weg?
- Bekanntes Device kommt wieder dazu
- unterschiedliche Energiewerte (von allen Geräten)
- Device befindet sich im Funkschatten
- Device hat kein GPS
Interfaces: Schnittstellen definieren für das Andocken zwischen den Modulen
Letzte Änderung: 05.03.2009, 13:53 | 747 Worte