digitalSTROM Developer Day 2011: Jump Start in die digitalSTROM-Server Entwicklung

Post on 02-Jul-2015

5,372 views 2 download

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

aizo

dSS Entwicklung – Jump start

Zürich, 27.01.2011, Johannes Winkelmann

01/31/11 2

Outline• Erste Schritte• dSS-Applikation & Entwicklungsinfrastruktur• Compilation und Ausführung• Reference Platform

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

01/31/11 4

dSS System-Architektur

digitalSTROM-Server - dSS

dS485 stack Third party Bibliotheken

Betriebssystem

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

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

01/31/11 7

Verteile Versionskontrolle im dSS-Projekt

Integration /Code review

1. Push

Master -Repository

Lokales Repository Lokale commits

Persönliches Repository

Clone

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

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

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

01/31/11 11

Compilation in 5 SchrittenVisit: http://gitorious.digitalstrom.org/dss/dss-mainline

$ git clone \

   git://gitorious.digitalstrom.org/dss/dss­mainline.git

$ cd dss­mainline

$ mkdir build && cd build

$ cmake .. ­DWITH_DATADIR=data

$ make

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

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

01/31/11 14

Demo• gitorious• git clone• Compilation• Setup (Datenverzeichnis, SSL)• Ausführen• JSON-Interface

01/31/11 15

Embedded Target: dSS11

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

01/31/11 17

Reference Platform

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

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

01/31/11 20

Weitere Informationen• http://developer.digitalstrom.org

− Wiki− Bug Tracking und Release-Planung

• http://gitorious.digitalstrom.org

• Mailinglisten:− dss-announce@forum.digitalstrom.org− dss-developer@forum.digitalstrom.org

aizo

Vielen Dank für Ihr Interesse!