kramann.info
© Guido Kramann

Login: Passwort:










EmbSyst
1 day_by_day
2 Eingebettete_Systeme
..2.1 Softwareentwicklung
....2.1.1 AgileSoftwareentwicklung
....2.1.2 Verhalten
....2.1.3 Entwurfsmuster
....2.1.4 FuzzyRegler
....2.1.5 Uebung
..2.2 Arduino
....2.2.1 Uebung1
..2.3 Android
....2.3.1 UML
......2.3.1.1 Volumenberechnung
......2.3.1.2 UML_Klassendiagramm
......2.3.1.3 Konstruktor
......2.3.1.4 Statische_Variable
....2.3.2 bluej
....2.3.3 Threads
....2.3.4 Interfacedesign
....2.3.5 Android
......2.3.5.1 Getting_Started
......2.3.5.2 App
......2.3.5.3 Beispielprojekt
........2.3.5.3.1 Richtlinien
........2.3.5.3.2 Anforderungen
........2.3.5.3.3 Layout
........2.3.5.3.4 Projekt_einrichten
........2.3.5.3.5 Refactoring
........2.3.5.3.6 Icon
........2.3.5.3.7 Icon2
........2.3.5.3.8 Kurzanleitung
........2.3.5.3.9 Architektur
........2.3.5.3.10 Anwendungsklasse
......2.3.5.4 Threads
......2.3.5.5 Activities
......2.3.5.6 Was_ist_wo
......2.3.5.7 Regelungssysteme
........2.3.5.7.1 Servo
........2.3.5.7.2 Fahrzeug
......2.3.5.8 ADB_Apps
......2.3.5.9 Veroeffentlichen
......2.3.5.10 Einzelheiten
........2.3.5.10.1 Bildschirmaufloesung
........2.3.5.10.2 Parameter
........2.3.5.10.3 Permission
........2.3.5.10.4 Latenzzeit
......2.3.5.11 Tonerkennung
........2.3.5.11.1 Wahrscheinlichkeitsrechnung
........2.3.5.11.2 Kovarianz_Scilab
........2.3.5.11.3 Java_Threads
........2.3.5.11.4 Java_Reflection
....2.3.6 Processing
......2.3.6.1 Installation
......2.3.6.2 Erste_Schritte
......2.3.6.3 Mechatronik
......2.3.6.4 Bibliotheken
......2.3.6.5 Uebung
......2.3.6.6 Snippets
........2.3.6.6.1 Dateioperationen
........2.3.6.6.2 Bilder
........2.3.6.6.3 GUI
........2.3.6.6.4 Text
........2.3.6.6.5 PDF
........2.3.6.6.8 Maus
........2.3.6.6.10 Zeit
........2.3.6.6.13 Animation
........2.3.6.6.15 Simulation
......2.3.6.7 Referenzen
....2.3.7 Android_Processing
......2.3.7.1 Basics
......2.3.7.2 Einrichten
......2.3.7.3 Crossplattform
......2.3.7.4 sinus
......2.3.7.5 sample
......2.3.7.6 analyse
......2.3.7.7 synthese
......2.3.7.8 Hilfsapps
......2.3.7.9 Eigene_Library
....2.3.8 Processing_VR
....2.3.9 Shapes3D
....2.3.10 TextToSpeech
....2.3.11 Internetprogrammierung
......2.3.11.1 Codegenerierung
......2.3.11.2 PHP_Programmierung
......2.3.11.3 PHP_OOP
......2.3.11.4 Java
......2.3.11.5 UDP
......2.3.11.6 Internetkontrolle
........2.3.11.6.1 Kamerabild
....2.3.12 OSC
......2.3.12.1 Datenaustausch
......2.3.12.2 i2audiolab
......2.3.12.3 Ardour
....2.3.13 Netzwerkprogrammierung
....2.3.14 JNI
....2.3.15 Erweitern
......2.3.15.1 sprich
......2.3.15.2 spiel
....2.3.16 thbvr
....2.3.17 Reflection
....2.3.18 Script
....2.3.19 Java3D
3 Echtzeitprogrammierung
..3.1 Echtzeit
..3.2 Korrektheit
..3.2 Semaphoren
..3.3 Hardware
..3.5 Synchronprogramm
..3.6 Zustandsmaschine
..3.7 Arduino
....3.7.1 Uebung
....3.7.2 RTOS
....3.7.3 Scheduler
....3.7.4 Semaphor
......3.7.4.1 Laufkatze
......3.7.4.2 Java
......3.7.4.3 Semaphor
....3.7.5 Messages
..3.8 Android
....3.8.2 Threads
......3.8.2.1 Java
......3.8.2.2 Synchronisierung
..3.9 Petrinetze
....3.9.1 Installation
....3.9.2 Test
4 KI
..4.1 Unueberwachtes_Lernen
..4.2 Agentensysteme
....4.2.1 Architekturen
......4.2.1.1 Verhalten
......4.2.1.2 Entwurfsmuster
....4.2.2 SUMO
......4.2.2.1 GettingStarted
......4.2.2.2 Antrieb
......4.2.2.3 Sensoren
......4.2.2.4 Zeitbasis
......4.2.2.5 Fernsteuerung
......4.2.2.6 Umsetzung_Fernst
......4.2.2.7 Fernsteuerung3
......4.2.2.10 Umsetzung
......4.2.2.11 Sockelsoftware
......4.2.2.12 Plan
......4.2.2.13 Lernen
........4.2.2.13.1 Parameter
........4.2.2.13.2 Identifikation
........4.2.2.13.3 Java
..4.3 Genetische_Algorithmen
....4.3.1 Heuristiken
....4.3.2 Genalgorithmus
..4.4 Kalmanfilter
....4.4.1 Vorarbeit
....4.4.2 Minimalversion
....4.4.3 Beispiel
5 Bildverarbeitung
..5.1 Gestalttheorie
..5.2 Bildverarbeitung
6 Technische_Systeme
..6.1 Kulturgeschichte
..6.2 Technikphilosophie
..6.3 Anthropozaen
7 Literatur
kramann.info
© Guido Kramann

Login: Passwort:




Programmierbeispiel zu PHP

  • Die Server-Programmiersprache PHP ist eine Open-Source-Entwicklung.
  • Die PHP Download- und Entwicklungsseiten befinden sich hier.
  • PHP ist eine sehr hoch entwickelte Skriptsprache, die auch objektorientierte Programmierung ermöglicht.
  • Das folgende Beispiel soll Ihnen u.a. illustrieren, wie einfach es sein kann eine neue objektorientierte oder prozedurale Programmiersprache zu erlernen, wenn man bereits eine andere gut beherrscht.
  • Auch der Internet-Browser ist ein Interpreter, sogar einer, der eine Vielzahl an Skriptprogrammiersprachen versteht, bzw. um die er fast beliebig durch Hinzufügen von Plug-Ins erweitert werden kann.
  • Der HTML-Code ist neben Javascript, Java, VRML, SVG und vielen anderen der Ausgangspunkt und, weil er eher die Beschreibung statischer Seiten grafisch darstellt nur mit Einschränkung als Programmiersprache zu bezeichnen. Ausnahme bilden so genannte Formulare innerhalb von HTML, die es ermöglichen Anfragen an den Server dynamisch zu senden. Beispiel: Suchbegriff-Eingabe bei Google.
  • Der Interpreter des Internet-Browsers amcht aus solchem Code ...
HTML

Bild 0-1: Einfaches HTML-Skript

  • ... das folgende Layout:
HTML

Bild 0-2: Darstellung am Internet-Browser dieses Skriptes.

Einführung in die Server seitige Programmierung

  • Sie werden sich fragen, ob es als Ingenieur nötig ist, dies zu erlernen.
  • Tatsächlich nehmen in immer mehr Bereichen Embedded Systems Einzug, also Systeme, in denen ein Mikroprozessor integriert ist.
  • Die Kommunikation mit diesen Systemen geschieht immer häufig er über das Internet.
  • D.h. beispielsweise in eine Funkwetterstation ist ein Web-Server integriert und über W-LAN werden die Wetterdaten in das Internet eingespeist und könnten, wenn es gewünscht wäre, weltweit abgerufen werden.
  • Auch die Konfiguration eines solchen Systems könnte über das Internet geschehen.
  • Ferner besitzen heutzutage auch Großgeräte, für die z.B. einem Kunden eine Funktionsgewährleistung zu 99% gegeben wurde eine Web-Schnittstelle, die dem Betreiber z.B. an sein Handy eine SMS schickt, sollte sie einmal Funktionsstörungen unterworfen sein. Beispiele: Internet-Server, Unterbrechungsfreie Stromversorgungen.
  • Das folgende Beispiel zeigt, wie eine Interseite mit zunächst statischem Inhalt dynamisch wird, wenn man Formulare einfügt, die die Server-seitig die Abarbeitung von PHP-Skripten anstoßen.
  • Das Prinzip solcher Programme ist immer dasselbe:
  • Der Client-Rechner, also beispielsweise Ihr PC schickt über den Port 80 im HTML-Protokoll eine Anfrage an einen bestimmten Server im Internet.
  • Dieser schickt angeregt durch diese Anfrage Daten an Ihren PC.
  • Ohne besondere Parameterübergaben sieht das beim Server der FH so aus:
HTML

Bild 0-2: Ablauf von Anfrage und Auslieferung einer Internetseite am Beispiel des FH-Servers.

  • Unser Beispiel soll In dem Formularfeld Berechnungen ausführen können, d.h. an den Server werden hier zwei Zahlen geschickt und er liefert dann eine neue Seite aus, in der z.B. die Summe dieser Zahlen in einem Ergebnis feld steht.
  • Sie können es selber testen, indem Sie auf ihrem eigenen PC einen Server installieren und die hier zum Download angegebenen Dateien in das Verzeichnis htdocs legen.
  • Ein solcher Server, der auch eine Datenbank mitbringt, PHP und Perl kann und sich ganz einfach installieren läßt ist XAMPP .
  • Das untige File ist ein PHP-Skript, das HTML-Seiten ausliefert.
  • Das Beispiel funktioniert folgendermaßen:
  • Der print-Befehl schreibt die ausgelieferte HTML-Seite.
  • Diese beinhaltet ein Formular mit drei Feldern, die mit Namen (Schlüsselwort name) und Werten (Schlüsselwort value) versehen sind.
  • Ferner gibt es in dem Formular einen Knopf vom Typ "submit", der den Inhalt des Formulars, der vom Benutzer am Client-Rechner eingetragen wurde wieder an den Server schickt.
  • Durch die Angabe der Formular-Methode "POST" und der gleichen URL, unter der das File zu finden ist unter "action", wird bewirkt, das beim Abschicken des Formulars die Daten wiederum an das gleiche Server-File mit dem PHP-Skript geschickt werden und dort dann verarbeitet werden.
  • Die eigentlichen PHP-Befehle sind dann:
  • eingabex = _POST['eingabex']; - schreibt das, was im ersten Eingabefeld gefunden wird zurück in's erste Eingabefeld.
  • eingabey = _POST['eingabey']; - schreibt das, was im zweiten Eingabefeld gefunden wird zurück in's zweite Eingabefeld.
  • ergebnis = _POST['eingabex'] + _POST['eingabey']; - schreibt die Summe aus erstem und zweiten Eingabefeld in das dritte.
  • Man beachte, dass durch Auftreten des Operators + eine implizite Typumwandlung von Text zu Integer bewirkt wird, was typisch für Skriptsprachen ist.
  • Für uns ist ferner etwas ungewöhnlich, dass die nacheinander ausgeführten Befehle einfach direkt im Programmrumpf stehen, ohne Kapselung in einer main-Methode wie in C und C++.
  • Ansonsten ist die Syntax wieder recht C-ähnlich, durch Einfassen von Blöcken in geschweiften Klammern und Angabe von Funktionsparameter in runden Klammern (print-Funktion).
BILDBESCHREIBUNG

Bild 0-1: File index.php, PHP-Code für Server-seitige Summation von Zahlen. Das Programm liegt im Ordner C:\Programme\xampp\htdocs\php_ausprobieren, bzw. /mnt-system/htdocs/php_ausprobieren, oder als URL: http://www.kramann.info/php_ausprobieren

Download von index.php gezipt.
Screenshot

Bild 0-2: Screenshot auf der Client-Seite

  • Die Serverseitige Verarbeitung von Daten ist in vielen Fällen unumgänglich, z.B. wenn eine Serverseitige Datenbank nach aktuellen Flugdaten durchsucht wird.
  • Jedoch einfache Berechnungen wie die obige und die Bereitstellung von GUI-Elementen wie Knöpfen, Schiebereglern und Menüs wird heutzutage lieber durch Clientseitig ablaufende Programme bewältigt.
  • Java-Applets sind Programme, die Clientseitig laufen. Der so genannte Java-Bytecode, wird von einem Interpreter, der Virtual Machine, die als Plugin im Internet-Browser vorhanden sein kann, interpretiert bzw. ausgeführt.
  • Dadurch werden weniger Daten über das Internet hin und her geschickt, was die Verarbeitung von Anfragen wesentlich beschleunigt.