Inhalt: 1. Übersicht 2. Funktion 3. Zeitplan Entwicklung 4. Anforderungen an die Programme / Apps 5. App Speicher / Skalierbarkeit 6. Anhänge 1. Übersicht Die Chronovision App (weiterhin App genannt) dient zur Einstellung der Hardware in den Chronovision Uhrenbewegern. Jeder Uhrenbeweger ist eine Hardware Einheit und enthält ein oder mehrere Drehteller mit Motor zum Drehen der Uhr (weiterhin Modul genannt). Die Rotationsabläufe wie Richtung der Umdrehung, Umdrehungszahl, Zeitsteuerung und Beleuchtung können eingestellt werden. Weiterhin kann ein Modul mit anderen Modulen zu einem System verbunden. Verbundene Module gleichen die Rotationsgeschwindigkeit und den Startzeitpunkt eines Rotationsstarts ab. Das erste Master Modul steuert die weiteren Salve Module. (weiterhin System genannt) Die App wird es in zwei Varianten geben. Mitte November wird es eine Desktop Version für PC/MAC geben, welche über USB mit der Hardware verbunden wird. Im ersten Quartal 2015 wird eine mobile App für Android/IOS zum Einstellen der Uhrenbeweger über Bluetooth für die nächste Modellgeneration der Module mit Bluetooth-Hardware folgen. Userinterface Design aller Plattformen sollen identisch sein. 2. Funktion Die App wird insgesamt für 4 Plattformen entwickelt. PC und Mac als USB Version, Android und ios als mobile Bluetooth App Version. Die mobile Version verbindet sich über Bluetooth, nicht über USB. Bei Verbindung mit einem Modul liest die App das Register des Moduls. Anhand der Verbindungs-ID und der Seriennummer greift die App auf Informationen in der internen Datenbank zu. (Daten und Bilder zum Modell, Einstellungen des Users zu der Belegung des Drehtellers des Moduls (Textfeld für den Namen und die Marke der Uhr). Bisherige Einstellungen des Moduls sind in den Registern gespeichert. Bei noch nicht programmierten Modulen ist die Default-Einstellung hinterlegt. Bei einem System ist das verbundende Modul immer der Master. Alle weiteren Module sind als Slave Module auslesbar. 1
Bei der USB Variante kann immer nur ein Modul oder ein System mit der App verbunden sein, deshalb entfällt die Auswahl verfügbarer Module zur Verbindung. Das Modul wird automatsch verbunden. Bei der Bluetooth Variante werden alle sichtbaren Module zur Verbindungsauswahl angezeigt. Die Einstellungsmöglichkeiten gehen aus dem Register und dem Prototype hervor. http://www.chronovision.de/app. Der Prototype ist nicht die endgültige Version. Funktionen können anders platziert werden und die Mehrsprachigkeit muss noch eingebunden werden. Die App zeigt nur modulspezifische Einstellungsmöglichkeiten. Diese sind bei dem Modell in der Datenbank hinterlegt (z.b. die Einstellung Beleuchtung wird nicht bei den ersten Modellen benötigt und wird so im Menü nicht angezeigt.) Änderungen an den Einstellungen mit der App werden in das Register des Moduls und in die interne App Datenbank zurückgeschrieben. Erfolgreiches schreiben wird von dem Modul bestätigt. 3. Zeitplan Entwicklung Im ersten Schritt soll die Desktopanwendung bis Mitte November 2014 entwickelt werden. Im Zuge der Entwicklung können Anforderungen an die Hardware der Uhrenbeweger Module (z.b. nötige Register) noch bis Ende Oktober 2014 abgestimmt werden. Im ersten Quartal 2015 soll die mobile Version folgen. 4. Anforderungen an die Programme/Apps: USB Variante: PC/MAC Mehrsprachigkeit (Deutsch/Englisch/Französisch/Spanisch/Chinesisch/Russisch) Userinterface ähnlich wie im Prototype http://www.chronovision.de/app Einstellung der Module durch Lesen und Schreiben der Hardware-Register: Kommunikation über USB2.0, Full-Speed Device Presentation Layer: (HID intern) mit einem 5Byte Datenframe Speicherung der Userparameter/Modellkennung und Daten auf dem System (Xml oder Datenbank) Für den Nutzer nur als ausführbare Datei. Interne Möglichkeit Modellaktualisierung und Informationen in die Programm Datenbank einzubinden und eine ausführbare Datei zu erstellen, sowohl für die Erstinstallation als auch als Update. Onlinecheck auf Aktualisierungen Skalierbarkeit für zusätzliche Funktionen (Register) welche bei späteren Modulen evtl. nötig werden. 2
Bei Verbindung mit dem PC/Mac soll die Uhrzeit des angeschlossenen Geräts an das Uhrenbeweger automatisch übermittelt werden. Mobile App : Android/IOS Mehrsprachigkeit (Deutsch/Englisch/Französisch/Spanisch/Chinesisch/Russisch) Userinterface ähnlich wie im Prototype http://www.chronovision.de/app Einstellung der Module durch Lesen und Schreiben der Hardware-Register: Bluetooth 2.0, Serial Port Profile (SPP); Bluetooth Low Energy (Stollmann Terminal IO) Presentation Layer: (SPP / TIO intern) mit einem 5Byte Datenframe Speicherung der Userparameter/Modellkennungen und Daten auf dem Mobilgerät Veröffentlichung in den Marketplaces (Google Play und Apple Marketplace) Interne Möglichkeit Modellaktualisierung und Informationen in das Programm einzubinden und in den App Marketplace zu laden. Sowohl für die Erstinstallation als auch als Update. Skalierbarkeit für zusätzliche Funktionen (Register) welche bei späteren Modulen evtl. nötig werden. Bei Verbindung mit dem mobile Device soll die Uhrzeit des angeschlossenen Gerät an den Uhrenbeweger automatisch übermittelt werden. 5. App Speicher - Skalierbarkeit Die App speichert intern Daten entweder in einer Datenbank oder Xml Datei. Dort sind mehrsprachig Daten (Einstellungen, Texte und Bilder) zu den Modellen enthalten, sowie Content Daten für Info Seiten (Modellübersicht, Kontakt, usw.) Diese Daten müssen für den Support editierbar und erweiterbar sein. So können neue Infos oder Modell zugefügt werden und als Update veröffentlicht werden. 6. Anhänge Details zu den Funktionen/Gestaltung der App finden Sie online im App Prototype http://www.chronovision.de/app Detailliertes Kommunikationsprotokoll p5031 Interner Bus / Datenframe Register Bilder Modell Chronovision One Alle Informationen sind vertraulich zu behandeln und dürfen nicht weitergegeben werden. 3
Interner Bus / Datenframe Byte Bezeichnung Bits Bezeichnung Beschreibung 0 LINE 7..1 LINEADDR Anzusprechende Linie (abgebildet auf I2C-Adressierung) 0x0F: broadcast 0x0E.. 0x01: Bus 14..1 0 LINEDIR Schreib-/Lesezugriff (abgebildet auf I2C-Adressierung) 0x0: Lesen (Anfrage) 0x1: Schreiben 1 MODULE 7..6 MODMSTR Auslösender Kommunikations-Master 0x03: WLAN 0x02: Bluetooth 0x01: USB 0x00: Linienmaster / intern 5..4 MODRSVD reserviert 3..0 MODADDR Moduladresse 0x0F: broadcast 0x0E.. 0x01: Modul 14.. 1 0x00: Linienmaster 2 REGISTER 7..5 REGRRSVD reserviert 4..0 REGADDR Registeradresse 0x1F.. 0x00: Register 31.. 0 3 VALUE0 / LO 7..0 VALUE0 Wert 0 oder LoByte 4 VALUE1 / HI 7..0 VALUE1 Wert 1 oder HiByte 5 CHECK 7..0 CHECK Checksumme (CRC8) Register Reg. Richtung Bezeichnung Byte/Bits Bezeichnung Beschreibung 0 W IDENTIFICATION 0/3..0 MODULADDR Enumeration: Moduladresse 0 R 0 FIRMWARE FW-Version 0..255 1 BATCH Batch/Lot / HW-Version 0..255 1 R IDENTIFICATION 0, 1 SERIAL with respect to BATCH => 65536 * 255 Module 1 2 W STATUS0 COMMAND Kommandos zur direkten Ausführung (Schnellaufzug, ) R STATE0 Aktueller Zustand, verbleibende Umdrehungszahl 3 R STATUS1 STATE1 Batteriezustand, Verbindung USB / BT W CONCTRL Bluetooth ein/aus 4 R/W DATE 0/7..1 YEAR 00.. 99 0/0, 1/7..5 MONTH 00.. 11 1/4..0 DAY 00.. 30 5 R/W TIME 0 HOURS 1 MINUTES 6 R/W PROGRAM 0 ROTTYPE 0 = stop, 1 = links, 2 = rechts, 3 = alt. 1 ROTCOUNT 1 = 100, 2 = 110,.., 255 = 2.640 7 R/W SLEEP 0 SLEEPSTART 0..23: Erste Stunde der Schlafphase 1 SLEEPSTOP 0..23: Letzte Stunde der Schlafphase 8 R/W ROTPERMIN 0 ROTPERMIN 0..255 = 0.. 25.5 rpm 9 R/W FASTWINDUP 0 ROTTYPE 0 = stop, 1 = links, 2 = rechts, 3 = alt. 1 ROTCOUNT 1 = 100, 2 = 110,.., 255 = 2.640 4
5