Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
hallo_uml [2016/02/26 11:40] – mark | hallo_uml [2019/07/25 17:26] (aktuell) – huwi | ||
---|---|---|---|
Zeile 10: | Zeile 10: | ||
Falls Sie jetzt noch das Klassendiagramm geöffnet haben wählen Sie im Kontextmenü (rechte Maustaste) des Diagramms den Menüpunkt nach oben. Falls das Projekt nicht mehr geöffnet ist, öffnen sie das SiSy UML-Projekt wieder. Legen Sie ein neues Klassendiagramm an und wählen Sie die Sprache //ARM C++//. Beachten Sie die Einstellungen für die Zielplattform STM32F407-Discovery. Beim Öffnen des Diagramms (rechte Maustaste, nach unten) laden Sie aus dem SiSy LibStore die Diagrammvorlage // | Falls Sie jetzt noch das Klassendiagramm geöffnet haben wählen Sie im Kontextmenü (rechte Maustaste) des Diagramms den Menüpunkt nach oben. Falls das Projekt nicht mehr geöffnet ist, öffnen sie das SiSy UML-Projekt wieder. Legen Sie ein neues Klassendiagramm an und wählen Sie die Sprache //ARM C++//. Beachten Sie die Einstellungen für die Zielplattform STM32F407-Discovery. Beim Öffnen des Diagramms (rechte Maustaste, nach unten) laden Sie aus dem SiSy LibStore die Diagrammvorlage // | ||
- | >> | + | > |
- | >> | + | > |
Zeile 19: | Zeile 19: | ||
Die Aufgabe besteht darin eine LED anzusteuern. Folgen wir der objektorientierten Sichtweise, ist die //Led// unser Klassenkandidat. Eine Klasse //Led// soll die spezifische Initialisierung und Programmierung eines GPIO Pin auf der Anwenderebene abstrahieren. Also fragen wir uns, was eine LED denn aus Anwendersicht so tut. Sie kann an oder aus sein, vielleicht blinkt sie ja auch. | Die Aufgabe besteht darin eine LED anzusteuern. Folgen wir der objektorientierten Sichtweise, ist die //Led// unser Klassenkandidat. Eine Klasse //Led// soll die spezifische Initialisierung und Programmierung eines GPIO Pin auf der Anwenderebene abstrahieren. Also fragen wir uns, was eine LED denn aus Anwendersicht so tut. Sie kann an oder aus sein, vielleicht blinkt sie ja auch. | ||
- | >>> | + | > |
Die Abbildung genau dieser Verhaltensmerkmale fordern wir von der Klasse //Led//. Sich mit // | Die Abbildung genau dieser Verhaltensmerkmale fordern wir von der Klasse //Led//. Sich mit // | ||
Zeile 39: | Zeile 39: | ||
Wir könnten die eine einfachere Klasse benutzen, die einen simplen IO-Pin abbildet, aber was soll's ... nehmen wir die sexy Led. Dazu ziehen wir die Led aus dem Navigator bzw. Explorer per Drag & Drop in das Klassendiagramm. | Wir könnten die eine einfachere Klasse benutzen, die einen simplen IO-Pin abbildet, aber was soll's ... nehmen wir die sexy Led. Dazu ziehen wir die Led aus dem Navigator bzw. Explorer per Drag & Drop in das Klassendiagramm. | ||
- | >>> | + | > |
Wenn wir die Led hereingezogen haben müssen wir diese mit der Anwendung verbinden. Vergleichen Sie dazu die Ausführungen zur Aggregation im Grundlagenteil dieses Tutorials. Selektieren Sie dazu die Klasse // | Wenn wir die Led hereingezogen haben müssen wir diese mit der Anwendung verbinden. Vergleichen Sie dazu die Ausführungen zur Aggregation im Grundlagenteil dieses Tutorials. Selektieren Sie dazu die Klasse // | ||
- | >>> | + | > |
Zeile 57: | Zeile 57: | ||
* Das Attribut //led// der Klasse Controller ist öffentlich | * Das Attribut //led// der Klasse Controller ist öffentlich | ||
- | >>> | + | > |
Die Aufgabenstellung fordert, dass die blaue LED einzuschalten ist. Diese ist bekanntlich an Pin D15 angeschlossen. Für die Initialisierung von Geräten steht die Operation //onStart// zur Verfügung. Selektieren Sie diese Operation und geben im Quelltexteditor folgenden Code ein: | Die Aufgabenstellung fordert, dass die blaue LED einzuschalten ist. Diese ist bekanntlich an Pin D15 angeschlossen. Für die Initialisierung von Geräten steht die Operation //onStart// zur Verfügung. Selektieren Sie diese Operation und geben im Quelltexteditor folgenden Code ein: | ||
- | >>> | + | > |
- | >>>< | + | >< |
led.config(GPIOD, | led.config(GPIOD, | ||
</ | </ | ||
Zeile 68: | Zeile 68: | ||
Beobachten Sie gleichzeitig das rechts neben dem Quelltexteditor befindliche Sequenzdiagramm. Dies wird automatisch aus dem von Ihnen eingegebenen Code erzeugt. Das Sequenzdiagramm kann zum einen für Dokumentationszwecke genutzt werden zum anderen soll es gleichzeitig als Review für den Quellcode dienen. | Beobachten Sie gleichzeitig das rechts neben dem Quelltexteditor befindliche Sequenzdiagramm. Dies wird automatisch aus dem von Ihnen eingegebenen Code erzeugt. Das Sequenzdiagramm kann zum einen für Dokumentationszwecke genutzt werden zum anderen soll es gleichzeitig als Review für den Quellcode dienen. | ||
- | >>> | + | > |
Selektieren sie danach die Operation //onWork// und geben den folgenden Code ein: | Selektieren sie danach die Operation //onWork// und geben den folgenden Code ein: | ||
- | >>> | + | > |
- | >>>< | + | >< |
led.on(); | led.on(); | ||
</ | </ | ||
- | >>> | + | > |
Zeile 99: | Zeile 99: | ||
Und weil es so schön war hier das Ganze noch mal als Video. | Und weil es so schön war hier das Ganze noch mal als Video. | ||
- | >>><flashplayer | + | ><html><iframe |
- | + | ||
- | >>> | + | |
====== Übung ====== | ====== Übung ====== |