Embedded Linux SS 2014

Größe: px
Ab Seite anzeigen:

Download "Embedded Linux SS 2014"

Transkript

1 Baulicht Embedded Linux SS 2014 Christoph Keller Pascal Schmid Fabian Weisshaar Projektbeschreibung Unser Setup Hardware Programmierumgebungen PyCharm Android Studio Qt Creator Entwicklung Aufbau der Hardware Aufsetzen des Toolchains Genauer Überblick der Dienste Webseite RESTful API PyBaulicht (MiddleWare) Android App Command Line Interface Ausgabe per Qt (Output Service) D Bus Einführung zu D Bus Busse Konfiguration Verbindungen Object Model Objekte Proxies Methods Signale Interfaces Basistypen Containertypen D Bus Tools Unsere definierten Interfaces Das aufgebaute Baulicht Geplante Erweiterungen Ausblick in die Zukunft 1

2 Projektbeschreibung Unser Projekt umfasst eine Schnittstelle, durch die man ein Baulich zum Darstellen von Text bzw. Morsen verwenden kann. Hierzu verwenden wir folgende verbreitete Techniken: D Bus: Einer der wichtigsten Systemdienste auf jedem Linux. Der D Bus Messagebus bietet Programmen die Möglichkeit, miteinander zu kommunizieren. Der Kommunikationspartner muss hierbei nicht immer direkt bekannt sein, da man auch ähnlich wie in einem Netzwerk Signale aussenden kann, um andere Teilnehmer über Geschehnisse zu informieren. Dienste, die D Bus implementieren, können sehr gut über die Kommandozeile getestet werden. Auf diesem Weg integrieren sie sich perfekt in die Linux Umgebung, da hier auch über Bash Skripte Dienste getestet werden können. Python: Python ist eine sehr beliebte Programmiersprache, die wenig Overhead besitzt und auch direkt C Bibliotheken verwenden kann, sollte doch einmal ein gewünschtes Modul fehlen. Die Sprache eignet sich sehr gut für Webdienste, da hier sehr viel zur Laufzeit angepasst bzw. erzeugt werden kann. C++/Qt: Das C++ Framework Qt bietet von Haus aus guten Support für D Bus auf Hochsprachenniveau. Andererseits kann man die GPIO Ports falls nötig doch direkt in C programmieren. Aufgeteilt wird das Projekt in drei Bereiche: API Service: Dies ist ein Webservice, der auf dem embedded Gerät läuft und eine HTTP Schnittstelle anbietet, mit der man die angebotenen Dienste steuern kann. Über diesen Webservice können auch noch weitere Anbindungen wie z.b. eine Smartphone App ermöglicht werden. Middleware Service: Dieser Dienst läuft ebenfalls auf dem embedded Gerät und bietet eine System Schnittstelle, die über einen D Bus Dienst bereitgestellt wird. Hier ist auch die eigentliche Logik des gesamten Projekts enthalten. Output Service: Der Middleware Service kommuniziert mit dem Output Service ebenfalls über die D Bus System Schnittstelle. Hier werden die eigentlichen Ausgabe aktionen durchgeführt. Wird das anzusteuernde Gerät ausgetauscht oder soll ein weiteres hinzugefügt werden, so muss nichts an der Middleware angepasst werden. 2

3 Unser Setup Hardware Als embedded board haben wir uns für das Raspberry Pi entschieden, da dieses Gerät jeder von uns bereits zuhause hat und wir so einzelne Module auch ohne ein gemeinsames Treffen weiter entwickeln bzw. testen können. Das Board in der von uns verwendeten Fassung (Model B) hat die folgenden Hardwaremerkmale: Dimensions 85mm x 56mm Chip Broadcom BCM2835 SoC full HD multimedia applications processor CPU 700 MHz Low Power ARM1176JZ F Applications Processor GPU Dual Core VideoCore IV Multimedia Co Processor RAM Storage USB 2.0 Ethernet Video Connections 512 MB 400 MHz SDCard 2x USB Ports 1x 10/100mb Ethernet RJ45 Jack HDMI, Composite RCA Supported Resolutions to , including 1080p, PAL & NTSC standards Audio Multi Channel HD Audio over HDMI, Stereo from 3.5 mm jack Operating Systems Raspbian, RaspBMC, Arch Linux, Risc OS, OpenELEC, Pidora Power Draw / voltage 750mA up to 5V 3

4 GPIO 26 Other Connectivity 1x CSI 2 for Raspberry Pi camera modules 1x DSI for Raspberry Pi displays Power Source 1x Micro USB (Quelle: ?ICID=RPi modelbplus compchart) Für uns war der ausschlaggebende Grund für dieses Board und Model der vorhandene Netzwerkanschluss, den wir für die Eingabemöglichkeit gewollt haben. Programmierumgebungen 1 Für den Django und Python teil haben wir PyCharm von Jetbrains verwendet, da die Hochschule hierfür Lizenzen hat (es gibt auch eine Open Source Community Edition, die unter der Apache Lizenz steht) und wir damit schon Erfahrungen hatten. 2 Für alles was C und C++ (samt Qt) anbelangt haben wir den Qt Creator genommen auch mit dem Hintergrund der vorhandenen sehr guten Erfahrungen. Er unterstützt das automatische Hochladen des Binarys auf das Board und remote debugging per GDB. 3 Die App für Android haben wir mit Hilfe des Android Studio entwickelt, welches ebenfalls aus der Softwareschmiede Jetbrains entspringt project.org/wiki/category:tools::qtcreator 3 4

5 PyCharm Für die Webseite haben wir Django benutzt. Damit man die Webseite starten kann, braucht man folgende Abhängigkeiten zu Python 2.7: django django bootstrap form djangorestframework pybaulicht (für die Ansteuerung des D Bus Dienstes) Die nicht im Projekt vorhanden (die ersten 3 Abhängigkeiten) kann man mit pip (einer Paketverwaltung für Python) auf folgende Weise installieren: # sudo pip install django django bootstrap form djangorestframework PyCharm mit dem geöffneten Message model (Webinterface/) 5

6 Android Studio Um sein Projekt zu testen, braucht man entweder ein virtuelles Android, dass man sich per 4 Android SDK zusammenklickt, oder man kann es mit dem Programm adb (Android Debug Bridge) auf sein physikalisches Telefon hochladen und dort remote debuggen. Android Studio mit dem geöffneten Projekt unserer Androidapp (AndroidApp/) 4 6

7 Qt Creator Qt Creator mit der geöffneten Mainfunktion unseres Baulichts (Service/) 7

8 Entwicklung Aufbau der Hardware Über die GPIOs setzen wir direkt das Signal, jenachdem, ob geradedaslicht komplett aus ist oder ein dit (kurzes Signal) bzw. ein dah (langes Signal bzw. Strich) kommt.die Länge kann durch die Variable dit (in Service/Baulichtexecutor.cpp) bestimmt werden. Ein dahist3mal so langwieein ditunddie Pause ist 7malsolang.EinePausezwischen denzeichenbestehtaus3maldemzeitintervalleinesdit5. Aufsetzen des Toolchains DownloadundInstallationdesQtCreatorsunterDebian basiertensystemen: 5 8

9 # sudo apt get install qtcreator Wenn man das Raspbian (oder irgendein anderes Linuximage für den Raspberry Pi) entpackt hat und das Image file auf eine SD Karte geschrieben hat, kann man sich das Rootfilesystem auf den Entwicklungsrechner kopieren. Sollte man keine SD Karte zur Hand haben, helfen folgende Befehle: # sudo fdisk lu disk.img Dies zeigt einem die Partitionen des Images an. Man muss sich die Sektorgröße und den Startblock der zweiten Partition (die als Linux markiert wird) merken. Die beiden Werte geben den Startblock der zweiten Partition an, den wir wieder brauchen: # sudo mount o loop,offset=$startblock image.img /mnt So kann man sich auch das Rootfilesystem kopieren. Zudem brauchen wir noch diverse Pakete, die zur Emulation des Geräts dienen: # sudo apt get install scratchbox2 qemu user static binfmt support \ # g++ arm linux gnueabi gdb Dann können wir auf dem virtuellen Gerät Einstellungen machen # cp /usr/bin/qemu arm static /mnt/usr/bin/ # sudo chroot /mnt/usr/bin # apt get install libqt4 dev gdb && exit Für die Scratchbox muss man folgende Einstellungen machen: # cd /mnt # sb2 init armel arm linux gnueabi gcc Damit qmake und make lokal im Rootfilesystem ausgeführt werden, muss man 2 Dateien erstellen, diese ausführbar machen und den eingerückten Text hineinschreiben: 9

10 # touch qmake # #! /bin/sh # sb2 qmake qt4 $@ # chmod +x./qmake # # touch make # #! /bin/sh # sb2 make $@ # chmod +x./make Möchte man die kompilierten Binaries per SSH auf das Board schicken, muss zuerst ein SSH Schlüsselpaar erzeugt werden: # ssh keygen t rsa # ssh copy id i.ssh/id_rsa.pub root@ Die Einstellungen sollten an das eigene Setup ungefähr so aussehen: Nun muss man nur noch ein sogenanntes Kit anlegen sprich eine Verbindung aus Compiler für ARM und der dazugehörigen Qt Version. Dies geht in den Einstellungen unter Compiler. Dort muss man den ARM g++ angeben, den man vorhin installiert hat, sowie die Qt Version im Rootfilesystem, die man einfügt, indem man auf das erstellte qmake file hinweist, das ebenfalls im Rootfilesystem liegt. Möchte man nun ein Projekt starten, muss in die.pro Datei (das qmake spezifische Makefile) folgendes geschrieben werden: 10

11 target.path = /root/ INSTALLS += target Genauer Überblick der Dienste Im folgenden gehen wir genauer auf die einzelnen Aufgaben und Schnittstellen der Dienste ein. Webseite Schematischer Aufbau Die in Django/Python geschriebene Webseite gibt uns die Möglichkeit von jedem mobilen Endgerät aus Nachrichten zu versenden bzw. den aktuellen Status der Nachrichten zu überblicken. Ausschnitt aus der Hauptwebseite: 11

12 12

13 Man kann sich auch die aktuelle Warteschlange anzeigen lassen: Möchte man eine Nachricht eingeben, so kann man auf der Hauptseite auf den Button Sende deine Nachricht klicken und erhält folgenden Dialog: 13

14 Die Schritte zum Webseite starten lauten wie folgt: #./manage.py syncdb (muss einmalig zum Erstellen der Datenbank ausgeführt werden) #./manage.py runserver 8080 Somit läuft der Server auf Port 8080 und man kann im Browser unter die Webseite aufrufen. Es muss außerdem noch das Output Plugin laufen, ansonsten wird die Webseite nicht gestartet. RESTful-API Diese ist Teil der Webseite. Mit einem GET Request an kann man sich die aktuellen Nachrichten in der Queue als JSON kodiertes Objekt ansehen. Ferner können mit einem POST Request auch Nachrichten an den Server gesendet werden. Durch den Einsatz der REST schnittstelle können wir Entwicklern eine API bereitstellen, mit der sie nicht über den Browser, sondern wie von uns demonstriert eine mobile 14

15 Anwendung schreiben, mit der sie den gleichen Funktionsumfang haben wie über die Webseite. PyBaulicht (MiddleWare) Damit die Webseite Zugriff auf den D Bus Daemon hat, haben wir eine Schnittstelle namens pybaulicht geschrieben, die aus 3 Komponenten besteht: 1. BaulichtDbus 2. BaulichtSettings 3. BaulichtText Während in allen dreien der Namespace definiert, sowie allgemein die Verbindung zum Bus aufgebaut wird, wird der Klasse BaulichtDbus der Text übergeben (Instanz von BaulichtText, int oder str) bzw. darin der Status verwaltet. Zudem werden hier Texte hinzugefügt, gelöscht oder aufgelistet. In den BaulichtSettings werden die Pins des Boards sowie die Länge eines dits bzw. des text spacings festgelegt. BaulichtText repräsentiert die Nachricht, die man senden möchte. Sie enthält den Text, das Erstellungsdatum sowie eine Zahl, wie oft sie wiederholt werden soll. Android App Durch die REST Schnittstelle war es uns möglich eine Android App zu bauen, mit der man Texte senden und die Queue sowie aktive Texte ansehen kann. 15

16 Hauptbildschirm Aktive Texte Warteschlange Command Line Interface Nachdem wir ganz nach Objektorientiertem Programmierparadigma eine Schichtentrennung durchgeführt haben, ist es möglich, den Service auch per CLI zu steuern. Die Hilfeausgabe lautet wie folgt: usage: baulicht cli.py [ h] [ l] [ a <string>] [ r <int>] [ s <int>] [ p {on,off}] [ pin <int>] [ status] [ start] [ stop] Baulicht command line interface to list, add, remove texts and change settings. optional arguments: h, help show this help message and exit l, list List all active texts 16

17 a <string>, add <string> Add Text to morse r <int>, remove <int> Remove Text by ID s <int>, speed <int> length of a dit in ms p {on,off}, pause {on,off} Stop morse/blink pin <int> Set GPIO Pin status Show current status start Start morse/blink stop Stop morse/blink Das Binary greift hierbei auf das von uns geschriebene pybaulicht zurück, um die Werte 6 abzufragen bzw. zu verändern sowie argparse, da es die Aufgabe des Argumenten parsens wahnsinnig einfach macht. Ausgabe per Qt (Output Service) Anfangs wollten wir auf eine vorhandene C API zurück greifen, die man unter der folgenden URL findet: Da wir die Funktionen der Schnittstelle nicht vollständig gebraucht haben, haben wir versucht direkt die Schritte in C nachzubauen, die man so auch auf der Kommandozeile ausführt. Den Port auf GPIO festlegen: # echo 7 > /sys/kernel/debug/omap_mux/gpmc_ad4 Port exportieren: # echo 36 > /sys/class/gpio/export Den Port auf Output stellen: # echo out > /sys/class/gpio/gpio36/direction Mit echo kann man nun den GPIO ein und ausschalten: # echo 1 > /sys/class/gpio/gpio36/value # echo 0 > /sys/class/gpio/gpio36/value

18 Das Ganze als C Code: if ((fp = fopen("/sys/class/gpio/export", "w")) == NULL){ printf("cannot open export file.\n"); exit(1); } fprintf( fp, "%d", 30 ); fclose(fp); if ((fp = fopen("/sys/class/gpio/gpio30/direction", "rb+")) == NULL){ printf("cannot open direction file.\n"); exit(1); } fprintf(fp, "high"); fclose(fp); if ((fp = fopen("/sys/class/gpio/gpio30/value", "rb+")) == NULL){ printf("cannot open value file.\n"); exit(1); } Da aber nach dem zweiten Versuch der Code nicht laufen wollte, hat Christoph Keller sich dazu entschlossen, dass wir das Ganze gleich in Qt schreiben. Ein zentraler Teil der Programms auf nativer Seite ist die Baulicht Klasse, in deren Header sich unter anderem folgende Qt properties finden lassen: Q_CLASSINFO("D Bus Interface", "de.naptower.baulicht") Q_PROPERTY(int mode READ mode WRITE setmode NOTIFY modechanged) Dort werden 2 wichtige Funktionen (nicht programmiertechnisch, sondern funktional gesehen) definiert: Das DBus Interface, das die Klasse implementiert Ein Modusattribut, das bei einer Zustandsänderung ein SIGNAL ausgibt, auf das ein SLOT reagiert so wird in Qt asynchroner Programmfluss realisiert 18

19 Die main Methode instanziiert eine QDBusConnection auf dem Sessionbus, wobei diese vorerst noch keine Einstellungen besitzt. Danach werden die Settings sowie das Baulicht instantiiert, welchem die Settings übergeben werden. Danach werden sowohl die Settings als auch das Baulicht als Objekt am DBus registriert. Was beide Klassen machen, lässt sich leicht an den Headern der beiden Klassen sehen: Baulicht public: enum Mode { TextMode = 0, BlinkMode = 1 }; void setsettings(settings *settings); Settings* settings() const; public slots: void setmode(int mode); int mode() const; void setpaused(bool paused); bool paused() const; QString addtext(const QString& text, int repeat); void removetext(const QString& path); QStringList texts() const; void clear(); void start(); void stop(); signals: void modechanged(int mode); void pausedchanged(bool paused); void textadded(const QString& path); 19

20 Settings public slots: void setdit(int milliseconds); int dit() const; void settextspacing(int milliseconds); int textspacing() const; void setpin(int pin); int pin() const; signals: void ditchanged(int dit); void textspacingchanged(int textspacing); void pinchanged(int pin); D-Bus Einführung zu D-Bus Was ist D Bus? Dazu die offizielle Beschreibung des Projekts: D Bus is a message bus system, a simple way for applications to talk to one another. In addition to interprocess communication, D Bus helps coordinate process lifecycle; it makes it simple and reliable to code a "single instance" application or daemon, and to launch applications and daemons on demand when their services are needed. D Bus supplies both a system daemon (for events such as "new hardware device added" or "printer queue changed") and a per user login session daemon (for general IPC needs among user applications). Also, the message bus is built on top of a general one to one message passing framework, which can be used by any two apps to communicate directly (without going through the message bus daemon). Currently the communicating applications are on one computer, or 20

21 through unencrypted TCP/IP suitable for use behind a firewall with shared NFS home directories. (Help wanted with better remote transports the transport 7 mechanism is well abstracted and extensible.) D Bus ist nur als IPC Ersatz gedacht, nicht für Kommunikation auf verschiedenen Hosts. Es ist verbindungsorientiert und hat einen Status (nicht wie bspw. UDP). Andererseits transportiert es immer Nachrichten fester Länge nicht einen Strom an Daten wie TCP. Es hat eine feste Varietät an ganzen Zahlen, Gleitkommazahlen und Strings. Dadurch kann eine falsch übertragene Nachricht erkannt werden. Für D Bus existieren diverse Bindings an Programmiersprachen, so dass niemand den C Code darunter direkt anfassen muss. In manchen Sprachen geht das sogar soweit, dass der Programmierer von D Bus gar nichts mit bekommt. Auf der offiziellen Webseite von D Bus findet sich folgender prägender Satz in der 8 Dokumentation der Referenzimplementierung : If you use this low level API directly, you're signing up for some pain. Selbst die Handhabung von D Bus mit der high level API GLIB ist immer noch sehr aufwendig und man sollte sich überlegen, ob man nicht dbus cxx oder ähnliches nimmt. Ein Beispiel für die Anwendung von D Bus ist zum Beispiel das Instant Messaging 9 Programm Pidgin, dass verschiedenste Signale aussendet und anhand derer etwa Desktopbenachrichtigungen angezeigt werden können, wenn ein Kontakt online kommt, eine Nachricht empfangen wird und ähnliches. Busse D Bus bietet 2 Arten der Kommunikation: Library oder daemon basiert. Während bei der Library theoretisch nur 2 Prozesse miteinander Daten austauschen können ist es bei der daemon basierten Kommunikation so, dass tatsächlich ein Bus bereit gestellt wird. Dadurch wird eine einmal gesendete Nachricht auf den Bus geschickt und jeder Empfänger, der sich dafür interessiert, fängt die Nachricht ab. Es ist möglich, dass mehrere Busse gleichzeitig auf einem System laufen, ohne sich gegenseitig zu stören. Unter Linux gab es zuvor immer 2 Arten von Bussen: Den Systembus, der z.b. dafür verantwortlich war, das Event eines angesteckten Geräts mit zu bekommen oder der Sessionbus, der benutzerabhängig Events verarbeitet hat. Dieser Sessionbus wurde von

22 D Bus so erweitert, dass er Benutzer unterscheiden kann und sogar dazu noch Benutzer authentifizieren bzw. eine Zugangskontrolle bereitstellen kann. Schematische Übersicht über D Bus (Quelle Bus.freedesktop.org/doc/diagram.png) Jeder Bus hat eine Adresse, die genau beschreibt, wie man sich mit ihr zu verbinden hat. Normalerweise wird das durch einen Filenamen eines Unix domain sockets wie /tmp/.socket abgebildet. Durch die D Bus API wird dies aber komplett versteckt. Konfiguration Um D Bus zu konfigurieren, muss man ein so genanntes busconfig schreiben, was wiederum in einem XML basierten Format geschrieben wird Beispiele dazu findet man üblicherweise unter /etc/d Bus 1/system.conf oder /etc/d Bus 1/session.conf im Filesystem eines jeden Linux. 22

23 Verbindungen Jede Verbindung zu D Bus kann mit einem oder mehreren Namen assoziiert werden. Diese sind als die Bus names der Verbindungen bezeichnet. Die Namen sind Namen der Verbindungen, nicht Namen der Busse. Bus names bestehen aus einer Serie von eindeutigen Kennungen, die durch Punkte getrennt werden: Sie dürfen Buchstaben, Zahlen, Striche und Unterstriche enthalten. Damit besitzt die Verbindung den bus name, wie es im D Bus jargon heißt. Wenn eine Verbindung aufgebaut wird, nimmt sich der Bus sofort einen festen bus name, die ihm solang zugewiesen bleibt, wie der Bus existiert. Dies sind die unique connection names, denn keine andere Verbindung auf dem Bus wird den gleichen bus name haben auch wenn die Verbindung getrennt wird und andere erzeugt werden. Sie können daran erkannt werden, dass sie mit einem Doppelpunkt anfangen (etwa : ). Eine Verbindung kann auch zusätzliche Namen beantragen, um z.b. einen Service unter einem bekannten Namen anzubieten, die anhand einer Konvention ausgehandelt werden: Sie müssen aus zwei oder mehr punkt separierten Elementen bestehen: de.naptower.baulicht etwa. Nur eine Verbindung kann diesen Namen auf dem Bus gleichzeitig haben, aber abgesehen von den unique connection names, können bus names auch wieder abgegeben werden und von einem anderen Client genutzt werden. Object Model Objekte Bei der Kommunikation gibt es Endpunkte, die sich Objekte nennen. Diese werden vom Clientprozess erzeugt und existieren nur innerhalb der Verbindung des Clients zum Bus. Das Objekt bietet dem Clientprozess die Möglichkeit seine Services auf dem Bus anzubieten, dabei darf jeder Client eine beliebige Anzahl an Objekten erzeugen. Jede der Nachrichten fällt in eine der 3 Kategorien: 1. Anfragen des Clientprozesses an Objekte 2. Antworten auf die Anfragen sie gehen vom Objekt zurück zum Prozess 3. One way Nachrichten, die von Objekten ausgehen. Das sind Broadcasts an jeden verbundenen Client, der Interesse an den Nachrichten angegeben hat 23

24 Jeder Bus hat mindestens ein Objekt, das den Bus selbst repräsentiert. Clients können Informationen über den Busstatus abfragen, indem sie Anfragen an das Objekt schicken. Proxies Objekte können auf dem Bus durch Referenzen angesprochen werden, die im D Bus Jargon Proxies heißen. Ob man direkt mit dem Objekt oder aber mit einem Proxy spricht, kommt auf die Abstraktionsebene an, die durch das Languagebinding gegeben ist. Objekte haben Namen, die so genannten paths. Diesen Namen haben sie erhalten, da sie wie Dateisystempfade in der Unixwelt durch Slashes getrennt werden. Ein Objektname muss nur innerhalb der Verbindung zum Bus eindeutig sein. Da jedes Objekt innerhalb eines Kontextes der Verbindung lebt, braucht es eine Kombination aus der bus name Verbindung und dem Objektnamen, um es zu finden. Sobald man dies getan hat und es nochmal benutzen möchte, wird man sich eine Variable zulegen, die den Proxy zum Objekt darstellt. In machen Languagebindings bieten Proxies failovers an. Wenn man einen Proxy hat und dieser Client sich trennt, unter dem gleichen Namen wieder verbindet und das Objekt wieder belebt, kann es sein, dass das Programm, das auf dem Proxy aufbaut, von dem Vorgang gar nichts mit bekommt. Methods Wenn ein Client eine Anfrage an ein Objekt schickt sieht es diese Anfrage durch Aufruf einer Methode des Objekts: Das Objekt wird angewiesen, spezifische, benannte Aktion auszuführen. Normalerweise, wenn ein Client versucht eine Methode eines Objekts aufzurufen, die das Objekt nicht anbietet, wird ein Fehler ausgelöst. Die Methodendefinition kann verlangen, dass bestimmte Informationen in der Anfrage als Argumente übergeben werden. Für jede Anfrage enthält die Antwort das Ergebnis, neben entweder den Daten des Ergebnisses oder im Falle einer nicht durchführbaren Aktion Exceptioninformationen. Diese enthalten mindestens einen Exceptionnamen und eine Fehlernachricht. Die meisten D Bus Bindings bieten für den komplizierten Vorgang eine Vereinfachung. Wenn beispielsweise einem Objekt ein String als Argument übergeben wird, so wird dem 24

25 Funktionsaufruf auch nur ein String übergeben. Man muss hier nicht den String konvertieren und diesen dann in ein Datenfeld einer Nachricht überführen. Der Vorgang der Datenkapselung in Nachrichten wird marshalling genannt. Wird eine Nachricht gesendet, so hat man nicht unbedingt auf das Ergebnis zu warten, so dass der Programmfluss solange in einer Schleife verharrt. D Bus bietet Möglichkeiten mehrere Anfragen asynchron zu handhaben. Signale Eine andere Form der Kommunikation sind Signale. Diese one way Kommunikation kommt von einem Objekt und geht nirgendwo bestimmtes hin (broadcast). Clientprozesse können ihr Interesse an einem Signal eines bestimmten Namens bekunden und sobald ein passendes Signal ausgelöst wird, werden alle interessierten Clients eine Kopie dieses Signals empfangen. Für Signale gibt es keine Antworten: Das Objekt, dass das Signal aussendet, kann also nicht wissen, ob ein oder mehrere oder vielleicht auch gar kein Empfänger das Signal verarbeitet. Signale können Parameter übertragen, Clients können bestimmten, dass sie nur Signale empfangen wollen, deren Parameter bestimmten Werten entspricht. Interfaces Jedes Objekt hat bestimmte Methoden und schickt bestimmte Signale zusammengefasst bezeichnet man das als die member des Objekts. Alle Member werden in einem Interface spezifiziert. Genauso wie in der Objektorientierten Programmierung ist ein Interface ein Set an Deklarationen. Wenn man dieses Interface implementieren will, so muss man alle Methoden bereitstellen und die Verfügbarkeit der Signale an alle Listener verkünden.. Jeder der Member muss die Parameter akzeptieren oder bereitstellen, wie sie im Interface genannt werden. Jedes Objekt kann ein Interface implementieren, genauso wie in Java kann eine beliebige Anzahl an Objekten ein Interface implementieren. Genauso kann ein Objekt aber auch eine beliebige Anzahl an Interfaces implementieren. Die Kombination aus allen unterstützten Interfaces nennt man den type eines Objekts. 25

26 Wenn ein Client eine Methode aufruft oder auf ein Signal horcht, muss es das Objekt und die Member, auf die es sich bezieht deutlich machen. Zusätzlich dazu kann der Client das Interface, in welchem der Member erstellt wurde, benennen. Das kann in manchen Fällen notwendig sein: Wenn ein Objekt zwei Interfaces erstellt, die beide eine Methode namens foo spezifizieren, so muss man sie noch unterscheiden können. (Quelle: Basistypen Char y b n q i u x t Code Data Type 8 bit unsigned integer boolean value 16 bit signed integer 16 bit unsigned integer 32 bit signed integer 32 bit unsigned integer 64 bit signed integer 64 bit unsigned integer d double precision floating point (IEEE 754) s o g a UTF 8 string (no embedded null characters) D Bus Object Path string D Bus Signature string Array ( ) Structure start and end v Variant { } Dictionary/Map begin and end h Unix file descriptor 26

27 Containertypen D Bus erlaubt 4 verschiedene Containertypen: 1. Structs Structs sind von Klammern begrenzt und können jeden D Bus Basistyp enthalten. Z.B. enthält (ii) zwei Integer und ((ii)s) enthält ein Struct aus 2 Integern und einem darauf folgenden String. 2. Arrays Definieren eine Liste an member eines festen Typs. Der Buchstabe a muss direkt vor den im Array enthaltenen Typ geschrieben werden. Beispiele wären ai für ein int Array oder a(ii) für ein Array aus structs. 3. Variants Dürfen jeden validen Typ enthalten. Ein enthaltener Wert ist neben der Typsignatur automatisch gespeichert. 4. Dictionaries Dicts sind structs in der Syntax ähnlich, allerdings mit geschweiften Klammern. Sie enthalten immer 2 Werte für key value. Beispiel: a{ss} string key string value. Der Key muss ein Basistyp sein (kein Container), während der value jeder Wert sein darf. (Quelle: D-Bus Tools 27

28 10 Mit dem Tool D Feet, das vom Gnome Projekt entwickelt wird, kann man sich Systemund Session bus anschauen. 11 D Bus liefert standardmäßig aber auch ein Tool namens dbus monitor mit, mit dem man untersuchen kann, was zurzeit für Nachrichten über den Bus gehen, was wie folgt aussieht: method call sender=:1.15 > dest=org.freedesktop.dbus serial=941 path=/org/freedesktop/dbus; interface=org.freedesktop.dbus; member=namehasowner string "org.kde.activitymanager" method call sender=:1.17 > dest=org.kde.klauncher serial=686 path=/klauncher; interface=org.kde.klauncher; member=start_service_by_desktop_path string "/usr/share/applications/turpial.desktop" array [ ] array [ string "DISPLAY=:0" ] string "scumm pc; ;80815;626_time953707" boolean true method return sender=:1.1 > dest=:1.17 reply_serial=686 int32 0 string "" string "" int Das Tool dbus send erlaubt es einem eine Nachricht auf den Bus zu schicken. Standardmäßig wird der Sessionbus genommen. Ein Ziel wird keines definiert, außer man gibt die Option dest an. 13 Eine Übersicht über die verschiedenen Werte bietet die manpage von dbus send: <contents> ::= <item> <container> [ <item> <container>...] monitor.1.html 12 send.1.html 13 send 28

29 <item> ::=<type>:<value> <container>::=<array> <dict> <variant> <array> ::=array:<type>:<value>[,<value>...] <dict> ::=dict:<type>:<type>:<key>,<value>[,<key>,<value>...] <variant> ::=variant:<type>:<value> <type> ::=string int16 uint16 int32 uint32 int64 uint64 double byte boolean objpath Unsere definierten Interfaces WirhabenmehrereD BusInterfacesdefiniert: de.naptower.baulicht.blink de.naptower.baulicht.settings de.naptower.baulicht.text DiesewerdenallebeieinemDienstnamens de.naptower.baulicht Dienstregistriert. Wasmanhiersehenkann,istderBaumartigeAufbauderD BusInterfaces. Das aufgebaute Baulicht DasaufgehängteBaulichtimoberenDritteldesHotelturms 29

30 Geplante Erweiterungen Kontroll LCD (Ein LCD Display mit einer Zeile, um den aktuellen Text anzuzeigen) Gehäuse Hardware Button zum Ein und Ausschalten Zeitschaltung ohne Cron Job Settings über Webinterface Ausblick in die Zukunft Momentan gibt es noch keine öffentliche Möglichkeit, das Baulicht Nachrichten morsen zu lassen, aber sobald Fabian Weisshaar das Portforwarding eingerichtet hat, wird es unter möglich sein die Webseite zu erreichen. 30

Lokale Installation von DotNetNuke 4 ohne IIS

Lokale Installation von DotNetNuke 4 ohne IIS Lokale Installation von DotNetNuke 4 ohne IIS ITM GmbH Wankelstr. 14 70563 Stuttgart http://www.itm-consulting.de Benjamin Hermann hermann@itm-consulting.de 12.12.2006 Agenda Benötigte Komponenten Installation

Mehr

Guide DynDNS und Portforwarding

Guide DynDNS und Portforwarding Guide DynDNS und Portforwarding Allgemein Um Geräte im lokalen Netzwerk von überall aus über das Internet erreichen zu können, kommt man um die Themen Dynamik DNS (kurz DynDNS) und Portweiterleitung(auch

Mehr

Tutorial - www.root13.de

Tutorial - www.root13.de Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk

Mehr

Hex Datei mit Atmel Studio 6 erstellen

Hex Datei mit Atmel Studio 6 erstellen Hex Datei mit Atmel Studio 6 erstellen Es werden generell keine Atmel Studio Dateien ins Repository geladen, da jeder seine Dateien an anderen Orten liegen hat und weil nicht jeder das Atmel Studio 6 benutzt.

Mehr

OP-LOG www.op-log.de

OP-LOG www.op-log.de Verwendung von Microsoft SQL Server, Seite 1/18 OP-LOG www.op-log.de Anleitung: Verwendung von Microsoft SQL Server 2005 Stand Mai 2010 1 Ich-lese-keine-Anleitungen 'Verwendung von Microsoft SQL Server

Mehr

How to install freesshd

How to install freesshd Enthaltene Funktionen - Installation - Benutzer anlegen - Verbindung testen How to install freesshd 1. Installation von freesshd - Falls noch nicht vorhanden, können Sie das Freeware Programm unter folgendem

Mehr

Adminer: Installationsanleitung

Adminer: Installationsanleitung Adminer: Installationsanleitung phpmyadmin ist bei uns mit dem Kundenmenüpasswort geschützt. Wer einer dritten Person Zugriff auf die Datenbankverwaltung, aber nicht auf das Kundenmenü geben möchte, kann

Mehr

Installation SQL- Server 2012 Single Node

Installation SQL- Server 2012 Single Node Installation SQL- Server 2012 Single Node Dies ist eine Installationsanleitung für den neuen SQL Server 2012. Es beschreibt eine Single Node Installation auf einem virtuellen Windows Server 2008 R2 mit

Mehr

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...

Mehr

SFTP SCP - Synology Wiki

SFTP SCP - Synology Wiki 1 of 6 25.07.2009 07:43 SFTP SCP Aus Synology Wiki Inhaltsverzeichnis 1 Einleitung 1.1 Grundsätzliches 2 Voraussetzungen 2.1 Allgemein 2.2 für SFTP und SCP 3 Installation 3.1 Welche openssl Version 3.2

Mehr

FORUM HANDREICHUNG (STAND: AUGUST 2013)

FORUM HANDREICHUNG (STAND: AUGUST 2013) FORUM HANDREICHUNG (STAND: AUGUST 2013) Seite 2, Forum Inhalt Ein Forum anlegen... 3 Forumstypen... 4 Beiträge im Forum schreiben... 5 Beiträge im Forum beantworten... 6 Besondere Rechte der Leitung...

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Lizenzen auschecken. Was ist zu tun?

Lizenzen auschecken. Was ist zu tun? Use case Lizenzen auschecken Ihr Unternehmen hat eine Netzwerk-Commuterlizenz mit beispielsweise 4 Lizenzen. Am Freitag wollen Sie Ihren Laptop mit nach Hause nehmen, um dort am Wochenende weiter zu arbeiten.

Mehr

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden. Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden. Nach den Änderungen die Facebook vorgenommen hat ist es einfacher und auch schwerer geworden eigene Seiten einzubinden und

Mehr

ROFIN App Benutzerhandbuch. Version 1.0

ROFIN App Benutzerhandbuch. Version 1.0 ROFIN App Benutzerhandbuch Version 1.0 Inhaltsverzeichnis 1. Beschreibung 2. Passwort und Einstellungen 3. Support Tab 4. Vertriebs Tab 5. Web Tab 6. Häufig gestellte Fragen BESCHREIBUNG Die ROFIN App

Mehr

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt Inhaltsverzeichnis Aufgabe... 1 Allgemein... 1 Active Directory... 1 Konfiguration... 2 Benutzer erstellen... 3 Eigenes Verzeichnis erstellen... 3 Benutzerkonto erstellen... 3 Profil einrichten... 5 Berechtigungen

Mehr

GeoPilot (Android) die App

GeoPilot (Android) die App GeoPilot (Android) die App Mit der neuen Rademacher GeoPilot App machen Sie Ihr Android Smartphone zum Sensor und steuern beliebige Szenen über den HomePilot. Die App beinhaltet zwei Funktionen, zum einen

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Qt-Projekte mit Visual Studio 2005

Qt-Projekte mit Visual Studio 2005 Qt-Projekte mit Visual Studio 2005 Benötigte Programme: Visual Studio 2005 Vollversion, Microsoft Qt 4 Open Source s. Qt 4-Installationsanleitung Tabelle 1: Benötigte Programme für die Qt-Programmierung

Mehr

Enigmail Konfiguration

Enigmail Konfiguration Enigmail Konfiguration 11.06.2006 Steffen.Teubner@Arcor.de Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es

Mehr

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank In den ersten beiden Abschnitten (rbanken1.pdf und rbanken2.pdf) haben wir uns mit am Ende mysql beschäftigt und kennengelernt, wie man

Mehr

SSH Authentifizierung über Public Key

SSH Authentifizierung über Public Key SSH Authentifizierung über Public Key Diese Dokumentation beschreibt die Vorgehensweise, wie man den Zugang zu einem SSH Server mit der Authentifizierung über öffentliche Schlüssel realisiert. Wer einen

Mehr

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version 2.0.1 Deutsch 01.07.2014 Konfiguration VLAN's Version 2.0.1 Deutsch 01.07.2014 In diesem HOWTO wird die Konfiguration der VLAN's für das Surf-LAN der IAC-BOX beschrieben. Konfiguration VLAN's TITEL Inhaltsverzeichnis Inhaltsverzeichnis...

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

DBUS Interprozess-Kommunikation für Embedded-Plattformen

DBUS Interprozess-Kommunikation für Embedded-Plattformen DBUS Interprozess-Kommunikation für Embedded-Plattformen Andreas Schwarz Neratec Solutions AG Firmenprofil Neratec Solutions AG Produkt-Entwicklungen für kundenspezifische elektronische Produkte Produkte

Mehr

Bedienungsanleitung für den SecureCourier

Bedienungsanleitung für den SecureCourier Bedienungsanleitung für den SecureCourier Wo kann ich den SecureCourier nach der Installation auf meinem Computer finden? Den SecureCourier finden Sie dort, wo Sie mit Dateien umgehen und arbeiten. Bei

Mehr

10.3.1.10 Übung - Konfigurieren einer Windows-XP-Firewall

10.3.1.10 Übung - Konfigurieren einer Windows-XP-Firewall 5.0 10.3.1.10 Übung - Konfigurieren einer Windows-XP-Firewall Drucken Sie diese Übung aus und führen Sie sie durch. In dieser Übung werden Sie erfahren, wie man die Windows XP-Firewall konfiguriert und

Mehr

Step by Step Webserver unter Windows Server 2003. von Christian Bartl

Step by Step Webserver unter Windows Server 2003. von Christian Bartl Step by Step Webserver unter Windows Server 2003 von Webserver unter Windows Server 2003 Um den WWW-Server-Dienst IIS (Internet Information Service) zu nutzen muss dieser zunächst installiert werden (wird

Mehr

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung Inhalt 1. Einleitung:... 2 2. Igel ThinClient Linux OS und Zugriff aus dem LAN... 3

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

-Bundle auf Ihrem virtuellen Server installieren.

-Bundle auf Ihrem virtuellen Server installieren. Anleitung: Confixx auf virtuellem Server installieren Diese Anleitung beschreibt Ihnen, wie Sie das Debian-Confixx- -Bundle auf Ihrem virtuellen Server installieren. 1. Schritt: Rufen Sie die Adresse http://vsadmin.host-4-you.de

Mehr

Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD

Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD Tutorial: Erstellen einer vollwertigen XP Home CD aus der EEE 901 Recover DVD Von SpecialK für www.eee-pc.de Stand:Version 1.0 vom 25.08.2008 Vorwort: Mit Hilfe dieses Tutorials wird aus der beim EEE 901

Mehr

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld Sharing. Auf dem Bildschirm sollte folgendes Fenster erscheinen: Einleitung Unter MacOS X hat Apple die Freigabe standardmäßig auf den "Public" Ordner eines Benutzers beschränkt. Mit SharePoints wird diese Beschränkung beseitigt. SharePoints erlaubt auch die Kontrolle

Mehr

Kleines Handbuch zur Fotogalerie der Pixel AG

Kleines Handbuch zur Fotogalerie der Pixel AG 1 1. Anmelden an der Galerie Um mit der Galerie arbeiten zu können muss man sich zuerst anmelden. Aufrufen der Galerie entweder über die Homepage (www.pixel-ag-bottwartal.de) oder über den direkten Link

Mehr

Windows Server 2012 R2 Essentials & Hyper-V

Windows Server 2012 R2 Essentials & Hyper-V erklärt: Windows Server 2012 R2 Essentials & Hyper-V Windows Server 2012 R2 Essentials bietet gegenüber der Vorgängerversion die Möglichkeit, mit den Boardmitteln den Windows Server 2012 R2 Essentials

Mehr

Local Control Network Technische Dokumentation

Local Control Network Technische Dokumentation Steuerung von Hifi-Anlagen mit der LCN-GVS Häufig wird der Wunsch geäußert, eine Hi-Fi-Anlage in die Steuerung der LCN-GVS einzubinden. Auch das ist realisierbar. Für die hier gezeigte Lösung müssen wenige

Mehr

-Virtuelle Jagdfliegerschule- Teamspeak Seite 1 von 6

-Virtuelle Jagdfliegerschule- Teamspeak Seite 1 von 6 Seite 1 von 6 Einstellen von Teamspeak 2.0 RC2 ( Nach der Installation wollen wir nun damit beginnen, Teamspeak 2.0 RC2 optimal auf ihr System abzustimmen. Sie sollten ein Fenster wie hier sehen. Falls

Mehr

Android Remote Desktop & WEB

Android Remote Desktop & WEB Application Note extends your EnOcean by a new dimension Android Tablets Android Remote Desktop & WEB myhomecontrol Stand: 22JAN2013 BootUp_mHC-ApplNote_Android_RemoteDesktop.doc/pdf Seite 1 von 7 Einleitung

Mehr

Kurzanleitung OOVS. Reseller Interface. Allgemein

Kurzanleitung OOVS. Reseller Interface. Allgemein Kurzanleitung OOVS Reseller Interface Allgemein Durch die Einführung des neuen Interfaces hat sich für Reseller von Syswebcom etwas geändert. Die Struktur der Kundenverwaltung ist einprägsamer, wenn man

Mehr

2 Konfiguration von SharePoint

2 Konfiguration von SharePoint 2 Konfiguration von SharePoint Server 2010 Umgebungen Prüfungsanforderungen von Microsoft: Configuring a SharePoint Environment o Configure SharePoint farms configuring inter-server communications server

Mehr

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5 DATEN. 5.1. Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu Daten Makro + VBA effektiv 5 DATEN 5.1. Variablen Variablen können beliebige Werte zugewiesen und im Gegensatz zu Konstanten jederzeit im Programm verändert werden. Als Variablen können beliebige Zeichenketten

Mehr

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0.

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0. Konfigurationsanleitung Access Control Lists (ACL) Funkwerk Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0 Seite - 1 - 1. Konfiguration der Access Listen 1.1 Einleitung Im Folgenden

Mehr

FTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox

FTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox FTP-Server einrichten mit automatischem Datenupload für SolarView@Fritzbox Bitte beachten: Der im folgenden beschriebene Provider "www.cwcity.de" dient lediglich als Beispiel. Cwcity.de blendet recht häufig

Mehr

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen) 1. Einführung: Über den ODBC-Zugriff können Sie bestimmte Daten aus Ihren orgamax-mandanten in anderen Anwendungen (beispielsweise Microsoft Excel oder Microsoft Access) einlesen. Dies bietet sich beispielsweise

Mehr

TeamSpeak3 Einrichten

TeamSpeak3 Einrichten TeamSpeak3 Einrichten Version 1.0.3 24. April 2012 StreamPlus UG Es ist untersagt dieses Dokument ohne eine schriftliche Genehmigung der StreamPlus UG vollständig oder auszugsweise zu reproduzieren, vervielfältigen

Mehr

Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier)

Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier) Konfiguration Firewall (Zyxel Zywall 10) (von Gruppe Schraubenmeier) Firewall über Seriellen Anschluss mit Computer verbinden und Netzteil anschliessen. Programm Hyper Terminal (Windows unter Start Programme

Mehr

Content Management System. «Rainbow Basis» Grundlagen. Einfache Kursverwaltung

Content Management System. «Rainbow Basis» Grundlagen. Einfache Kursverwaltung Content Management System «Rainbow Basis» Grundlagen Einfache Kursverwaltung Author(en): Christoph Streit Reviewer(s): Monika Koch Abgenommen durch: Interprisma GmbH Status: Abgenommen Version: 1.0 Datum:

Mehr

Mobile Anwendungen Google Cloud Messaging

Mobile Anwendungen Google Cloud Messaging Mobile Anwendungen Google Cloud Messaging 1. Allgemeines zu Google Cloud Messaging (GCM): - 60% der Top 100 Apps nutzen Google Cloud Messagging - 200.000 Messages pro Sekunde = 17 Milliarden Messages pro

Mehr

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung The ToolChain Grafisches Debugging mit der QtCreator Entwicklungsumgebung geschrieben von Gregor Rebel 2014-2015 Hintergrund Neben dem textuellen Debuggen in der Textkonsole bieten moderene Entwicklungsumgebungen

Mehr

Der/die KursleiterIn kann sowohl die Einträge als auch die geposteten Kommentare in allen drei Blog- Typen bearbeiten, kommentieren und löschen.

Der/die KursleiterIn kann sowohl die Einträge als auch die geposteten Kommentare in allen drei Blog- Typen bearbeiten, kommentieren und löschen. Blogs Blogs sind ein öffentliches Kommunikationstool, das den KursteilnehmerInnen die Aufzeichnung und den Austausch von Gedanken etc. ermöglicht. Ein Blog besteht grundsätzlich aus den Blog-Einträgen

Mehr

Kurzanleitung zu. von Daniel Jettka 18.11.2008

Kurzanleitung zu. von Daniel Jettka 18.11.2008 Kurzanleitung zu Tigris.org Open Source Software Engineering Tools von Daniel Jettka 18.11.2008 Inhaltsverzeichnis 1.Einführung...1 2.Das Projektarchivs...3 2.1.Anlegen des Projektarchivs...3 2.2.Organisation

Mehr

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER Inhalt 1 Einleitung... 1 2 Einrichtung der Aufgabe für die automatische Sicherung... 2 2.1 Die Aufgabenplanung... 2 2.2 Der erste Testlauf... 9 3 Problembehebung...

Mehr

Geschrieben von: Stefan Sonntag, den 26. Juni 2011 um 09:45 Uhr - Aktualisiert Sonntag, den 26. Juni 2011 um 10:12 Uhr

Geschrieben von: Stefan Sonntag, den 26. Juni 2011 um 09:45 Uhr - Aktualisiert Sonntag, den 26. Juni 2011 um 10:12 Uhr Ich beschreibe hier mal einen einfachen Weg auf einem UBUNTU einen VDR zu installieren und in Betrieb zu nehmen. Wie immer... Wenn man weiß, wie es geht dann geht es ganz einfach Zunächst mal öffnen wir

Mehr

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Comtarsia SignOn Familie

Comtarsia SignOn Familie Comtarsia SignOn Familie Handbuch zur RSA Verschlüsselung September 2005 Comtarsia SignOn Agent for Linux 2003 Seite 1/10 Inhaltsverzeichnis 1. RSA Verschlüsselung... 3 1.1 Einführung... 3 1.2 RSA in Verbindung

Mehr

Artikel Schnittstelle über CSV

Artikel Schnittstelle über CSV Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte

Mehr

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Seite erstellen Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken. Es öffnet sich die Eingabe Seite um eine neue Seite zu erstellen. Seiten Titel festlegen Den neuen

Mehr

Flash, Network und Facebook. Steven Mohr steven@stevenmohr.de

Flash, Network und Facebook. Steven Mohr steven@stevenmohr.de Flash, Network und Facebook Steven Mohr steven@stevenmohr.de Gliederung 1. Wie ist eine Facebook-App aufgebaut 2. Basics 3. Erste Demo einer kleinen Flash-Facebook-App 4. Friends, Achievements und Invites

Mehr

Einrichten der Outlook-Synchronisation

Einrichten der Outlook-Synchronisation Das will ich auch wissen! - Kapitel 3 Einrichten der Outlook-Synchronisation Inhaltsverzeichnis Überblick über dieses Dokument... 2 Diese Kenntnisse möchten wir Ihnen vermitteln... 2 Diese Kenntnisse empfehlen

Mehr

Handbuch B4000+ Preset Manager

Handbuch B4000+ Preset Manager Handbuch B4000+ Preset Manager B4000+ authentic organ modeller Version 0.6 FERROFISH advanced audio applications Einleitung Mit der Software B4000+ Preset Manager können Sie Ihre in der B4000+ erstellten

Mehr

Lehrveranstaltung Grundlagen von Datenbanken

Lehrveranstaltung Grundlagen von Datenbanken Verbindungsanleitung mit der Datenbank Um sich mit der Datenbank für die Übung zu verbinden, gibt es mehrere Möglichkeiten. Zum einen ist die Datenbank aus dem Netz des Informatikums direkt erreichbar.

Mehr

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen Open Source professionell einsetzen 1 Mein Background Ich bin überzeugt von Open Source. Ich verwende fast nur Open Source privat und beruflich. Ich arbeite seit mehr als 10 Jahren mit Linux und Open Source.

Mehr

Anleitung: Confixx auf virtuellem Server installieren

Anleitung: Confixx auf virtuellem Server installieren Anleitung: Confixx auf virtuellem Server installieren Diese Anleitung beschreibt Ihnen, wie Sie Confixx 3.0 auf Ihrem virtuellen Server installieren. 1. Schritt: Rufen Sie die Adresse www.vpsadmin.de in

Mehr

Wireless LAN Installation Windows XP

Wireless LAN Installation Windows XP Wireless LAN Installation Windows XP Vergewissern Sie sich bitte zuerst, ob Ihre Hardware kompatibel ist und das Betriebssystem mit den aktuellen Service Packs und Patches installiert ist. Installieren

Mehr

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen Suche schlecht beschriftete Bilder mit Eigenen Abfragen Ist die Bilderdatenbank über einen längeren Zeitraum in Benutzung, so steigt die Wahrscheinlichkeit für schlecht beschriftete Bilder 1. Insbesondere

Mehr

Live Update (Auto Update)

Live Update (Auto Update) Live Update (Auto Update) Mit der Version 44.20.00 wurde moveit@iss+ um die Funktion des Live Updates (in anderen Programmen auch als Auto Update bekannt) für Programm Updates erweitert. Damit Sie auch

Mehr

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Beiträge erstellen in Joomla Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht: Abbildung 1 - Kontrollzentrum Von hier aus kann man zu verschiedene Einstellungen

Mehr

Scharl 2010 Dokument ist Urheberrechtlich geschützt. Port Forwarding via PuTTY und SSH. Was ist Port forwarding?

Scharl 2010 Dokument ist Urheberrechtlich geschützt. Port Forwarding via PuTTY und SSH. Was ist Port forwarding? Port Forwarding via PuTTY und SSH Was ist Port forwarding? Eine Portweiterleitung (englisch Port Forwarding) ist die Weiterleitung einer Verbindung, die über ein Rechnernetz auf einen bestimmten Port eingeht,

Mehr

Informationen zur Verwendung von Visual Studio und cmake

Informationen zur Verwendung von Visual Studio und cmake Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von

Mehr

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung

AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung AutoCAD 2007 - Dienstprogramm zur Lizenzübertragung Problem: Um AutoCAD abwechselnd auf mehreren Rechnern einsetzen zu können konnte man bis AutoCAD 2000 einfach den Dongle umstecken. Seit AutoCAD 2000i

Mehr

Rechnernetze Praktikum. Versuch 5: Linux embedded. Ziel

Rechnernetze Praktikum. Versuch 5: Linux embedded. Ziel Rechnernetze Praktikum Versuch 5: Linux embedded Ziel Installieren des Betriebssystems Raspian auf einem Raspberry mit anschließender Konfiguration und Installation weiterer Programme unter Linux. Greifen

Mehr

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11 Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge Ab der Version forma 5.5 handelt es sich bei den Orientierungshilfen der Architekten-/Objektplanerverträge nicht

Mehr

Anleitung: Webspace-Einrichtung

Anleitung: Webspace-Einrichtung Anleitung: Webspace-Einrichtung Inhaltsverzeichnis 1 Webspace für alle Rechenzentrumsnutzer(innen) 1 2 Login 2 2.1 Im Terminalraum / Mit Putty von zu Hause aus..................... 2 2.2 Auf unixartigen

Mehr

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer. Benutzerhandbuch Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer. 1 Startseite Wenn Sie die Anwendung starten, können Sie zwischen zwei Möglichkeiten wählen 1) Sie können eine Datei für

Mehr

Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung

Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung ewon - Technical Note Nr. 004 Version 1.2 Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung 08.08.2006/SI Übersicht: 1. Thema 2. Benötigte Komponenten 3. Modemkonfiguration

Mehr

Step by Step Remotedesktopfreigabe unter Windows Server 2003. von Christian Bartl

Step by Step Remotedesktopfreigabe unter Windows Server 2003. von Christian Bartl Step by Step Remotedesktopfreigabe unter Windows Server 2003 von Remotedesktopfreigabe unter Windows Server 2003 Um die Remotedesktopfreigabe zu nutzen muss diese am Server aktiviert werden. Außerdem ist

Mehr

Anbindung des eibport an das Internet

Anbindung des eibport an das Internet Anbindung des eibport an das Internet Ein eibport wird mit einem lokalen Router mit dem Internet verbunden. Um den eibport über diesen Router zu erreichen, muss die externe IP-Adresse des Routers bekannt

Mehr

Internationales Altkatholisches Laienforum

Internationales Altkatholisches Laienforum Internationales Altkatholisches Laienforum Schritt für Schritt Anleitung für die Einrichtung eines Accounts auf admin.laienforum.info Hier erklären wir, wie ein Account im registrierten Bereich eingerichtet

Mehr

Geschrieben von Administrator Montag, den 15. November 2010 um 22:09 Uhr - Last revised Donnerstag, 16. Dezember 2010

Geschrieben von Administrator Montag, den 15. November 2010 um 22:09 Uhr - Last revised Donnerstag, 16. Dezember 2010 Server: Wie erstelle ich einen neuen Channel? Wie erstelle ich einen neuen Sub-Channel? Berechtigungen? Wie erstelle ich eine neue Gruppen? Wie editier ich den Teamspeak Server? Client: Shortcuts Wie Im-

Mehr

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage .htaccess HOWTO zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage Stand: 21.06.2015 Inhaltsverzeichnis 1. Vorwort...3 2. Verwendung...4 2.1 Allgemeines...4 2.1 Das Aussehen der.htaccess

Mehr

WordPress lokal mit Xaamp installieren

WordPress lokal mit Xaamp installieren WordPress lokal mit Xaamp installieren Hallo und willkommen zu einem weiteren Teil der WordPress Serie, in diesem Teil geht es um die Lokale Installation von WordPress mithilfe von Xaamp. Kurz und knapp

Mehr

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

IBM Software Demos Tivoli Provisioning Manager for OS Deployment Für viele Unternehmen steht ein Wechsel zu Microsoft Windows Vista an. Doch auch für gut vorbereitete Unternehmen ist der Übergang zu einem neuen Betriebssystem stets ein Wagnis. ist eine benutzerfreundliche,

Mehr

Backup der Progress Datenbank

Backup der Progress Datenbank Backup der Progress Datenbank Zeitplandienst (AT): Beachten Sie bitte: Die folgenden Aktionen können nur direkt am Server, vollzogen werden. Mit Progress 9.1 gibt es keine Möglichkeit über die Clients,

Mehr

Installationsanleitung dateiagent Pro

Installationsanleitung dateiagent Pro Installationsanleitung dateiagent Pro Sehr geehrter Kunde, mit dieser Anleitung möchten wir Ihnen die Installation des dateiagent Pro so einfach wie möglich gestalten. Es ist jedoch eine Softwareinstallation

Mehr

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY Vorteile der Verwendung eines ACTIVE-DIRECTORY Automatische GEORG Anmeldung über bereits erfolgte Anmeldung am Betriebssystem o Sie können sich jederzeit als

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten 2008 netcadservice GmbH netcadservice GmbH Augustinerstraße 3 D-83395 Freilassing Dieses Programm ist urheberrechtlich geschützt. Eine Weitergabe

Mehr

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt.

Über die Internetseite www.cadwork.de Hier werden unter Download/aktuelle Versionen die verschiedenen Module als zip-dateien bereitgestellt. Internet, Codes und Update ab Version 13 Um Ihnen einen möglichst schnellen Zugang zu den aktuellsten Programmversionen zu ermöglichen liegen Update-Dateien für Sie im Internet bereit. Es gibt drei Möglichkeiten

Mehr

ICS-Addin. Benutzerhandbuch. Version: 1.0

ICS-Addin. Benutzerhandbuch. Version: 1.0 ICS-Addin Benutzerhandbuch Version: 1.0 SecureGUARD GmbH, 2011 Inhalt: 1. Was ist ICS?... 3 2. ICS-Addin im Dashboard... 3 3. ICS einrichten... 4 4. ICS deaktivieren... 5 5. Adapter-Details am Server speichern...

Mehr

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Installation von NetBeans inkl. Glassfish Anwendungs-Server Installation von NetBeans inkl. Glassfish Anwendungs-Server Diese Anleitung führt Sie Schritt für Schritt durch die Einrichtung der Entwicklungsumgebung NetBeans, angefangen beim Download der benötigten

Mehr

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten: WOT Skinsetter WOT Skinsetter steht für World of Tanks skinsetter (WOTS von nun an). Mit diesen Tool können Sie Skins importieren und ändern, wann immer Sie möchten auf einfache Weise. Als World of Tanks

Mehr

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand: 01.2013

MC-Hx 006. Einbindung des MC-Hx Modul als MODBus TCP Slave. MB DataTec GmbH. Stand: 01.2013 Einbindung des MC-Hx Modul als MODBus TCP Slave MB DataTec GmbH Stand: 01.2013 Kontakt: MB DataTec GmbH Friedrich Ebert Str. 217a 58666 Kierspe Tel.: 02359 2973-22, Fax 23 Web : www.mb-datatec.de e-mail:

Mehr