digitalstrom developer day 2011: jump start in die digitalstrom-server entwicklung
DESCRIPTION
Johannes Winkelmann, dSS-Entwickler, schloss an das Referat zum Entwicklungsprozess an. Er wies auf die konkreten Einstiegspunkte zu Informationen und Programmcode hin und zeigte die dafür notwendigen Entwicklungswerkzeuge. Ebenso stellte er die bereits erhältliche digitalSTROM Reference Platform vor – gewissermassen eine komplette digitalSTROM-Installation in einer Box, die es Entwicklern erlaubt, Scripts zu schreiben und ihre Ideen für Wohnen und Arbeiten mit digitalSTROM zu testen.TRANSCRIPT
![Page 1: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/1.jpg)
aizo
dSS Entwicklung – Jump start
Zürich, 27.01.2011, Johannes Winkelmann
![Page 2: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/2.jpg)
01/31/11 2
Outline• Erste Schritte• dSS-Applikation & Entwicklungsinfrastruktur• Compilation und Ausführung• Reference Platform
![Page 3: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/3.jpg)
01/31/11 3
Erste SchritteEntwickler-Webseite:
− http://developer.digitalstrom.org
Wiki (Dokumentationssammlung):− http://developer.digitalstrom.org/redmine/projects/dss/wiki
Benötigte Hardware: konventioneller PC
![Page 4: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/4.jpg)
01/31/11 4
dSS System-Architektur
digitalSTROM-Server - dSS
dS485 stack Third party Bibliotheken
Betriebssystem
![Page 5: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/5.jpg)
01/31/11 5
dSS ApplikationC++ Applikation
− C++: 28858 (85.76%)− C: 3246 (9.65%)− Shell: 1067 (3.17%)− Python: 327 (0.97%)
Quellcode offen verfügbar− Wiederverwendbar unter den Bestimmungen der GPL v3
![Page 6: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/6.jpg)
01/31/11 6
Versionskontrolle: git• Versionkontrolle: git
− Stabiles und schnelles Versionskontrollsystem− Unterstützt dezentrale/verteilte Entwicklung− Wird von vielen anderen OpenSource-Projekten verwendet,
unter anderem vom Linux Kernel
• Verteilte Revisionskontrolle− Vereinfacht parallele Entwicklungszweige und deren
Rückführung ins Hauptrepository− Erlaubt Mitarbeit, ohne dass neuen Benutzern Schreibzugriff
auf das Hauptrepository gewährt werden muss
![Page 7: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/7.jpg)
01/31/11 7
Verteile Versionskontrolle im dSS-Projekt
Integration /Code review
1. Push
Master -Repository
Lokales Repository Lokale commits
Persönliches Repository
Clone
![Page 8: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/8.jpg)
01/31/11 8
Versionskontrolle: gitorious• Versionkontroll-Hosting: gitorious
− Webschnittstelle zu git− Code kann via Web-Browser eingesehen werden− Erlaubt bequemes Erstellen und Verwalten von Code-
Repositories, sowohl persönliche als auch solche für Gruppen
− Unterstützt komfortables Einsenden und Diskutieren von Änderungsvorschlägen (Merge Requests)
− gehostet auf http://gitorious.digitalstrom.org
![Page 9: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/9.jpg)
01/31/11 9
Entwicklungsumgebung• Unterstützte Plattformen:
− Linux (typisch: Fedora und Ubuntu)− Mac OS X− Windows/Cygwin
• Toolchain / Compiler− GNU Compiler Collection GCC (http://gcc.gnu.org)
• IDE- / Editor unabhängig− KDevelop, Eclipse, Vim, XEmacs
![Page 10: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/10.jpg)
01/31/11 10
Anhängigkeiten• Aizo: dS485 Software-Stack (ab 0.9.x)
− Ebenfalls erhältlich via http://gitorious.digitalstrom.org− Scripts zur vereinfachten Installation verfügbar
• Externe (third party) Bibliotheken:− Boost – C++ Library− Poco – C++ Library− Gsoap – C++ SOAP Implementation− Libical – iCal Kalenderdatenverwaltung− Spidermonkey – JavaScript Engine
![Page 11: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/11.jpg)
01/31/11 11
Compilation in 5 SchrittenVisit: http://gitorious.digitalstrom.org/dss/dss-mainline
$ git clone \
git://gitorious.digitalstrom.org/dss/dssmainline.git
$ cd dssmainline
$ mkdir build && cd build
$ cmake .. DWITH_DATADIR=data
$ make
![Page 12: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/12.jpg)
01/31/11 12
Vorbereitung vor dem ersten Start• Web-Interface herunterladen
− Separates Release
• Datenverzeichnis festlegen− Benutzer-Konfiguration− Ablage von Statusinformationen− Speicherort für Metering-Daten
• SSL-Zertifikat erstellen− Verschlüsselte Verbindung zum Web-Interface− Helper-Skript zur Generierung vorhanden
![Page 13: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/13.jpg)
01/31/11 13
Connect and play!• dSS starten:
− $ ./dss
• Mit Webbrowser auf https://localhost:8080 verbinden• JSON-Interface verfügbar• Ohne digitalSTROM-Komponenten nur Simulation möglich
![Page 14: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/14.jpg)
01/31/11 14
Demo• gitorious• git clone• Compilation• Setup (Datenverzeichnis, SSL)• Ausführen• JSON-Interface
![Page 15: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/15.jpg)
01/31/11 15
Embedded Target: dSS11
![Page 16: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/16.jpg)
01/31/11 16
OpenEmbedded• Build-Framework für Embedded-Linux
− Stellt System-Pakete und Cross-Compiler zur Verfügung− OpenSource-Projekt− Eingesetzt in kommerziellen und nicht-kommerziellen
Projekten
• dSS11-OpenEmbedded− Paketverwaltung− Kompiliert komplette Flash-Images für die Installation− Inkl. Root-Filesystem, Kernel, Bootloader− Auf http://gitorious.digitalstrom.org gehostet
![Page 17: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/17.jpg)
01/31/11 17
Reference Platform
![Page 18: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/18.jpg)
01/31/11 18
Reference Platform - Umfang• digitalSTROM Meter• digitalSTROM Server• 2 Lichtklemmen M• 2 Steckdosen• Ethernet-Anschluss• RS485-Anschluss
− USB-RS485-Adapter inbegriffen− Anschluss an Entwicklungssystem möglich
![Page 19: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/19.jpg)
01/31/11 19
Reference Platform - Verfügbarkeit• Mieten im Rahmen des Entwicklerwettbewerbs
− Gratis für Mitglieder der digitalSTROM.org− 300 € Depotzahlung für Nicht-Mitglieder
• Kaufen− 1000 €
• Bestellformulare erhältlich
![Page 20: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/20.jpg)
01/31/11 20
Weitere Informationen• http://developer.digitalstrom.org
− Wiki− Bug Tracking und Release-Planung
• http://gitorious.digitalstrom.org
• Mailinglisten:− [email protected]− [email protected]
![Page 21: digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung](https://reader033.vdocuments.site/reader033/viewer/2022060121/559484941a28ab56198b46e8/html5/thumbnails/21.jpg)
aizo
Vielen Dank für Ihr Interesse!