Hallo Linux-Freaks, Forenbewohner und Himbeerfreunde,
hier kommt der 24. Teil meines Icon-Tutorials.
Diejenigen Interessierten, die schon länger Mitglieder im Forum sind, warten sicherlich schon seit dem 4. Oktober 2014 auf diesen Teil.
Diejenigen, die erst danach zu diesem Forum gestoßen sind, werden überrascht sein, dass es offensichtlich schon 23 Teile gegeben haben muss.
Ich war in den letzten Monaten beruflich extremst angespannt. In einem Beratungsprojekt mit 1200 Beratern war ich standortübergreifend für die Computersystem-Validierung (CSV) zuständig. In meinem Hauptstandort habe ich eine eigene Abteilung geleitet, zusammen mit 4 Kollegen die CSV-Aktivitäten innerhalb Europas koordiniert und zusammen mit 12 Kollegen das Ganze auf globaler Ebene.
Das gesamte Projekt war zum Schluss nur noch mit mehr als 70 Arbeitsstunden pro Woche zu erledigen. Was meine Abteilung und die von mir betreuten Standorte betraf, haben wir alles fristgerecht abgeschlossen.
Meine regelmäßigen Icon-Tutorials, die im Abstand von 1 bis 2 Wochen herauskamen, konnten in der Zeit nicht fortgesetzt werden. Leider!
Jetzt habe ich wieder etwas mehr Zeit und werde dort weitermachen, wo ich vor rund drei Monaten aufgehört habe.
Wer die Icon-Tutorials regelmäßig verfolgt hat, wird sich daran erinnern, dass wir uns so allmählich an die Entwicklung graphischer Benutzeroberflächen herangewagt haben. Die Übungsaufgabe von Teil 23 bestand darin, die graphische Benutzeroberfläche eines GPIO-Kontrollzentrums zu entwerfen. Hierfür sollte das Programm VIB genutzt werden, das sinnigerweise Quellcode in der Programmiersprache Icon erzeugt.
Ihr erinnert Euch? Wer diese Übungsaufgabe mitgemacht hat, hat jetzt zwar einen Quellcode eines Programmgerüstes - aber was geschieht jetzt damit? Genau hier setzt dieses Tutorial an.
Ich zeige, wie
- eine graphische Benutzeroberfläche zu einer vollfunktionsfähigen Anwendung vervollständigt wird. Dabei erläutere ich jede einzelne Callback-Funktion, warum sie so aussieht, wie sie jetzt aussehen soll - und was dadurch bewirkt wird.
Da es auch um das Thema GPIO geht, zeige ich außerdem,
- wie Steckbretter funktionieren,
- wie gelötet wird,
- wie Jumperkabel hergestellt werden,
- wie GPIO-Kabel hergestellt werden,
- wie eigene GPIO-Boards (Break-Out-Boards) hergestellt werden,
- wie letztlich die Schaltung aufgebaut wird, mit der das GPIO-Kontrollzentrum seine Leistungsfähigkeit demonstrieren kann
Alles weitere wie immer im angehängten PDF. Wie auch beim letzten Tutorial musste ich auch dieses Tutorial in mehrere Teile aufspalten, um sie hier hochladen zu können:
- Icon_Teil24_Part1.pdf: Abgeschlossen
- Icon_Teil24_Part1.pdf: Abgeschlossen
- Icon_Teil24_Part1.pdf: Ein paar Abbildungen werden noch eingebaut.
Viel Spaß beim Lesen und Mitmachen!
Einen kleinen Ausblick auf die kommenden fünf Teile.
#25: Ereignisbehandlung bei Anwendungen mit mehr als einem Fenster & Individuelle Dialoge mit VIB erstellen
#26 - 29: Mastermind
Vor etwas über einem Jahr schlenderte ich durch die Spieleabteilung eines Supermarktes. Dabei fiel mir Mastermind ein, was ich in meiner Jugendzeit hin und wieder mal gern gespielt habe. Mir kam so der Gedanke, dass etwas wie Mastermind eine gute Idee sein könnte, an einem abschließenden Projekt den gesamten Ablauf einer Software-Entwicklung zu zeigen. Das Programm war an einem Abend programmiert - und wird die kommenden vier Tutorial-Teile füllen.
#26: Mastermind: Entwurf
#27: Mastermind: GUI-Layout & Ereignisbehandlung
#28: Mastermind: Auswertelogik
#29: Mastermind: Der Quellcode
Damit endet dann diese Tutorial-Reihe im eigentlichen Sinn. Alle Befehle, Konstrukte und Besonderheiten wurden vorgestellt und in zahlreichen Programm-Beispielen vertieft. In zahlreichen mehr oder weniger sinnigen Übungsaufgaben konnte sich jeder Interessierte beliebig tief mit der Programmiersprache Icon beschäftigen.
Da ich seit Mai 2013 nicht nur am Icon-Tutorial gearbeitet habe, sondern einige interessante Anwendungen programmiert habe und mich zwischenzeitlich einige interessante Dinge beschäftigt haben, gibt es eine ganze Reihe an weiteren Ideen zu Icon und was man damit alles anstellen kann:
#30-32: Von Icon auf C-/C++-/Prolog-Bibliotheken zugreifen: Tüfteln
#33: Sprachsynthese / Sprachsteuerung auf dem RPi in Icon: Funktioniert
#34 GUI-Gestaltung mit Event-Multiplexor (EVMUX) inkl. Programmierung der Ereignisbehandlung: Funktioniert - erste Ergebnisse sind in #35 und #36 enthalten.
#35+36: Programm zur Symboldarstellung (Bilevel, Farbpaletten)
Die Idee zu dieser Anwendung entstand nach Abschluss eines Icon-Tutorials, in dem diese Themen angeschnitten wurden. Mit diesen beiden Anwendungen können GUI-Symbole erzeugt werden - und peppen jedes Programm auf!
#37: Pseudo-Code-Compiler: Funktioniert - kann aber noch verfeinert werden
#38: DiaShower: Funktioniert inkl. Graphik-Konverter
#39: AD-Wandler: Grundlagen für eine Hardware-Entwicklung
Dann gab es da noch so einen merkwürdigen :thumbs1: Thread, in dem ich auch zwei spontan erstellte Icon-Programme eingestreut habe. Es ging da um die Ermittlung der CPU-Usage und des freien RAM. Mein Programm hat die CPU weniger belastet als Systemprogramme wie das Linux-Kommando "top". Vielleicht gelangt dieses Wissen in ein weiteres Tutorial Teil, in dem es um "ressourcenschonende Programmierung auf Systemebene" gehen könnte. :s
Was mir auch schon länger vorschwebt, ist ein Tutorial zur Pipe-Programmierung. Ich nutze innerhalb der Icon-Programmierung recht häufig Pipes - erscheint mir die Laufzeit aber irgendwie ungewöhnlich lange oder bemerke ich eine deutliche Systemauslastung, dann programmiere ich die Pipe in klassischer Weise und systemschonend.
Beste Grüße
Andreas
[hr]
06.01.2015: Die Dateien habe ich überarbeitet und mit akuellen Abbildungen ergänzt. Die Dateien xxxRev2.pdf sind die aktuellen Versionen.
07.06.2015: Link auf die aktuellste Version der GPIO-Library
[hr]