Skip to content

Commit 1b7da58

Browse files
authored
Merge pull request #15 from FHNW-IP5-IP6/fix/spellchecking
Spellchecking of Documentation
2 parents 81e8b15 + 56dc11f commit 1b7da58

31 files changed

+202
-203
lines changed

content/german/basics/crowpi.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ weight: 10
66
## Das Wichtigste in Kürze
77

88
Beim CrowPi handelt es sich um einen vielfältigen Baukasten der Firma
9-
[Elecrow](https://www.elecrow.com/crowpi-compact-raspberry-pi-educational-kit.html), welcher in Verbindung mit einem Raspberry Pi den
9+
[Elecrow](https://www.elecrow.com/crowpi-compact-raspberry-pi-educational-kit.html), der in Verbindung mit einem Raspberry Pi den
1010
Benutzer zahlreiche Komponenten zu Lern- und Weiterbildungszwecken nutzen lässt. Das Gerät entstand im Rahmen einer Kickstarter-Kampagne und
1111
konnte schnell eine grosse Anzahl von Unterstützern finden.
1212

1313
Im Gegensatz zu anderen Elektronikbausätzen sind beim CrowPi alle Komponenten direkt über die Platine mit den jeweiligen Komponenten
14-
verbunden, so dass kein manuelles und aufwändiges Verkabeln der einzelnen Bauteile mehr erforderlich ist. Stattdessen kann einfach ein
15-
Raspberry Pi eingesetzt werden, welcher sofort über seine GPIO Pins (General-Purpose Input/Output) die jeweiligen Aktoren und Sensoren
14+
verbunden, sodass kein manuelles und aufwendiges Verkabeln der einzelnen Bauteile mehr erforderlich ist. Stattdessen kann einfach ein
15+
Raspberry Pi eingesetzt werden, der sofort über seine GPIO Pins (General-Purpose Input/Output) die jeweiligen Aktoren und Sensoren
1616
ansprechen kann.
1717

18-
Dank dem integrierten Display vom CrowPi sowie der mitgelieferten Tastatur und Maus ist es sogar möglich, direkt auf dem entsprechenden
19-
Gerät zu entwickeln oder andere grafische Applikationen darauf auszuführen. Da der Bildschirm für längere Arbeiten aber doch etwas klein
20-
ist, wird im Tutorial eine Variante gewählt wo auf einem separaten PC oder Laptop entwickelt werden kann.
18+
Dank dem integrierten Display des CrowPi sowie der mitgelieferten Tastatur und Maus ist es sogar möglich, direkt auf dem entsprechenden
19+
Gerät zu entwickeln oder andere grafische Applikationen darauf auszuführen. Da der Bildschirm für längeres Arbeiten etwas klein
20+
ist, wird im Tutorial eine Variante gewählt, bei der auf einem separaten PC oder Laptop entwickelt werden kann.
2121

2222
## Besonderheiten
2323

@@ -29,21 +29,20 @@ belegt sind. Um dieses Problem zu umgehen, verwendet der CrowPi sogenannte DIP S
2929

3030
{{< img alt="CrowPi DIP Switches" src="basics/crowpi-dip-switches.jpg" height="500px" >}}
3131

32-
Es handelt sich hierbei um die beiden rot umrandeten Schaltergruppen, welche jeweils 8 kleine Schalter anbieten. In der Standardposition
32+
Es handelt sich hierbei um die beiden rot umrandeten Schaltergruppen, die jeweils 8 kleine Schalter anbieten. In der Standardposition
3333
sind diese alle ausgeschaltet und somit in der unteren Position, womit sich die meisten Komponenten vom CrowPi direkt einsetzen lassen. Bei
3434
manchen Komponenten müssen aber noch einzelne Schalter eingeschaltet (= obere Position) werden, um eine andere verbundene Komponente vom
3535
Raspberry Pi abzuhängen und stattdessen die neue Komponente anzusprechen.
3636

37-
Man kann sich diese Schalter beim CrowPi somit als eine Art Weiche vorstellen, welche entweder die eine oder die andere Komponente mit dem
38-
Raspberry Pi verbindet. In diesem Tutorial wird jeweils auf die benötigte Schalterposition hingewiesen. Es lassen sich somit zwar eine
39-
Vielzahl von Komponenten verbinden, aber einige Konfigurationen sind aufgrund dieser Limitation nicht möglich.
37+
Man kann sich diese Schalter beim CrowPi somit als eine Art Weiche vorstellen, die entweder die eine oder die andere Komponente mit dem
38+
Raspberry Pi verbindet. In diesem Tutorial wird jeweils auf die benötigte Schalterposition hingewiesen. Es lässt sich so zwar eine
39+
Vielzahl von Komponenten verbinden, aber einige Konfigurationen sind wegen dieser Limitation nicht möglich.
4040

4141
## Komponenten
4242

43-
Der CrowPi verfügt über eine grosse Anzahl von Sensoren und Aktoren, welche über die jeweiligen Pins auf dem Raspberry Pi mittels Pi4J
44-
angesprochen werden können. Es kommen hierbei unterschiedliche Protokolle und Schnittstellen zum Einsatz, welche jedoch von den
45-
entsprechenden Komponenten-Klassen dieses Tutorials abstrahiert und vereinfacht werden. Nachfolgend ist eine Übersicht aller vorhandenen
46-
Komponenten aufgeführt:
43+
Der CrowPi verfügt über eine grosse Anzahl von Sensoren und Aktoren, die über die jeweiligen Pins auf dem Raspberry Pi mittels Pi4J
44+
angesprochen werden können. Es kommen hierbei unterschiedliche Protokolle und Schnittstellen zum Einsatz, die von den
45+
entsprechenden Komponenten-Klassen dieses Tutorials abstrahiert und vereinfacht werden. Nachfolgend sind alle vorhandenen Komponenten aufgeführt:
4746

4847
| Komponente | Einsatzzweck | Schnittstelle | Position von DIP Switches |
4948
|:-------------------------------------------------------------------------------------|:---------------------------------------------------|:--------------|:-------------------------------------|

content/german/basics/debugging.md

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,107 +3,107 @@ title: Debugging der Applikation
33
weight: 30
44
---
55

6-
Auf dieser Seite werden die Grundlagen der Fehlersuche mit dem Setup aus [dem ersten Kapitel]({{< ref setup >}}) beschrieben. Es wird
7-
Schritt für Schritt erklärt wie man den Debugger starten und verwenden kann.
6+
Auf dieser Seite werden die Grundlagen der Fehlersuche mit dem Setup aus [dem ersten Kapitel]({{< ref setup >}}) beschrieben. Dazu wird
7+
Schritt für Schritt erklärt, wie man den Debugger starten und verwenden kann.
88

99
---
1010

1111
### Applikation mit Debugger starten
1212

13-
Zum Starten der Applikation mit Debugger werden die beiden Run Konfigurationenen `crowpi-examples [debug]` und `Remote Debug` benötigt.
14-
Diese sind nach dem Setup bereits korrekt eingestellt und können verwendet werden. Wichtig dabei ist die Reihenfolge mit der die
13+
Zum Starten der Applikation mit Debugger werden die beiden Run Konfigurationen `crowpi-examples [debug]` und `Remote Debug` benötigt.
14+
Diese sind nach dem Setup bereits korrekt eingestellt und können verwendet werden. Wichtig dabei ist die Reihenfolge, mit der die
1515
Konfigurationen gestartet werden. Dieses Vorgehen ist:
1616

1717
1. Start von `crowpi-examples [debug]` **ohne** Verwendung vom Debug-Knopf
1818
2. Warten bis die Konsolenausgabe meldet `Listening for transport dt_socket at address: 5005 (Attach debugger)`
1919
3. Starten von `Remote Debug`
2020

21-
Nun dieser Ablauf nochmals kurz mit entsprechenden Abbildungen. Als erstes wird die Applikation im Debugmodus gestartet. Dazu muss die
21+
Nachfolgend wird der Ablauf mit entsprechenden Abbildungen ergänzt. Als Erstes wird die Applikation im Debugmodus gestartet. Dazu muss die
2222
Konfiguration `crowpi-examples [debug]` angewählt werden. Gestartet wird die Konfiguration mit dem **Play Button**.
2323
{{< img alt="Debugmodus wählen und starten" src="basics/intellij-select-and-start-debug.JPG" >}}
2424

25-
Als Schritt 2 wird nun gewartet bis die korrekte Augabe im Konsolenfenster erscheint. Das sieht dann so aus:
25+
Als Zweites wird nun gewartet, bis die korrekte Ausgabe im Konsolenfenster erscheint:
2626
{{< img alt="App wartet auf Debugger" src="basics/intellij-waiting-for-debugger.JPG" height="500px" >}}
2727

28-
Jetzt ist alles bereit um den Remote Debugger zu starten. Dazu die entsprechende Run Konfiguration `Remote Debug` auswählen und mit einem
29-
Klick auf das Käfer-Icon (Debug) starten. Das Debugfenster meldet nun ob die Verbindung geklappt hat.
28+
Zum Starten des Remote Debugger die entsprechende Run Konfiguration `Remote Debug` auswählen und mit einem
29+
Klick auf das Käfer-Icon (Debug) starten. Das Debugfenster meldet nun, ob eine Verbindung hergestellt wurde.
3030
{{< img alt="Remote Debug starten" src="basics/intellij-start-remote-debug.JPG" >}}
3131
{{< img alt="Remote Debug verbunden" src="basics/intellij-debug-connected.JPG" >}}
3232

3333
Nun kann zwischen den beiden Tabs `Run` und `Debug` hin und her gewechselt werden. Im Tab `Run` wird zum Beispiel die Ausgabe der
3434
Applikation angezeigt. Bei `Debug` finden sich Knöpfe und Informationen zu Breakpoints und Variablen. Wenn nun ein Beispiel ausgeführt wird,
35-
startet dies ganz normal und läuft bis das Programm beendet wird. Solange keine Breakpoints oder ähnliches im Programmablauf vorkommen hat
35+
startet dies ganz normal und läuft, bis das Programm beendet wird. Solange keine Breakpoints oder ähnliches im Programmablauf vorkommen, hat
3636
der Debugger keinen weiteren Einfluss auf die Applikation.
3737

3838
---
3939

4040
### Einsatz von Breakpoints
4141

42-
Wenn nun ein Problem auftritt, wird oft an der entsprechenden Codestelle ein Breakpoint gesetzt. Dieser Breakpoint weist den Debugger an die
43-
laufende Applikation zu unterbrechen und den aktuellen Programmstatus auf dieser Zeile im Code auszugeben. Nun wird an der
44-
Beispielapplikation [7-Segment Anzeige]({{< ref "components/seven-segment" >}}) demonstriert wie ein Breakpoint verwendet werden kann.
45-
Untersucht soll die Anzeige der `- - - -` werden. Wie im Beispielcode ersichtlich passiert die mit einem `for-loop`. Dieser wird nun genauer
42+
Wenn nun ein Problem auftritt, wird oft an der entsprechenden Codestelle ein Breakpoint gesetzt. Dieser Breakpoint weist den Debugger an, die
43+
laufende Applikation zu unterbrechen und den aktuellen Programmstatus auf dieser Zeile im Code auszugeben. An der
44+
Beispielapplikation [7-Segment Anzeige]({{< ref "components/seven-segment" >}}) wird demonstriert, wie ein Breakpoint verwendet werden kann.
45+
Untersucht soll die Anzeige der `- - - -` werden. Wie im Beispielcode ersichtlich passiert dies mit einem `for-loop`. Dieser wird nun genauer
4646
betrachtet.
4747

4848
#### Setzen des Breakpoints an Codestelle
4949

5050
Ein Breakpoint kann in IntelliJ sehr einfach durch Klicken neben die Zeilennummer in einem Programm eingefügt werden. Platziert wird der
51-
Breakpoint hier bewusst vor den zu untersuchenden `for-loop`. So kann sichergestellt werden, dass nichts verpasst wird. Wenn nicht ganz
51+
Breakpoint hier bewusst vor den zu untersuchenden `for-loop`. So kann sichergestellt werden, dass nichts verpasst wird. Wenn nicht
5252
genau bekannt ist, wo ein Problem verursacht wird, lohnt es sich fast immer den Breakpoint ein paar Zeilen über der kritischen Stelle zu
53-
platzieren. So kann auch die Ausgangslage gut analysiert werden.
53+
platzieren. So kann die Ausgangslage gut analysiert werden.
5454
{{< img alt="Breakpoint vor Loop gesetzt" src="basics/intellij-setbreakpoint-before-loop.JPG" >}}
5555

5656
#### Starten der Applikation mit Debugger
5757

58-
Wie bereits in den oberen Abschnitten erklärt wird, nachdem der Breakpoint platziert ist, die Applikation im Debugmodus gestartet und der
58+
Wie vorgängig erklärt, wird zuerst der Breakpoint platziert, die Applikation im Debugmodus gestartet und der
5959
Debugger angehängt. Es werden also diese 3 Schritte durchgeführt:
6060

61-
1. Start von `crowpi-examples [debug]`` **ohne** Verwendung vom Debug-Knopf
61+
1. Start von `crowpi-examples [debug]` **ohne** Verwendung vom Debug-Knopf
6262
2. Warten bis die Konsolenausgabe meldet `Listening for transport dt_socket at address: 5005 (Attach debugger)`
6363
3. Starten von `Remote Debug`
6464

6565
Da ein Fehler im 7-Segment Beispiel gesucht werden soll, wird das entsprechende Beispielprogramm nach Programmstart angewählt. Die Applikation
66-
läuft sofort bis der Debugger am Breakpoint die Ausführung der Anwendung unterbricht.
66+
läuft sofort, bis der Debugger am Breakpoint die Ausführung der Anwendung unterbricht.
6767
{{< img alt="Start von 7-Segment Beispiel" src="basics/intellij-start-sevensegment.JPG" >}}
68-
Hier wird gezeigt wie nun die Ansicht in IntelliJ aussieht, wenn der Debugger das Programm unterbrochen hat und IntelliJ markiert die
68+
Nachfolgend die Ansicht in IntelliJ, wenn der Debugger das Programm unterbrochen hat. IntelliJ markiert die
6969
entsprechende aktuelle Zeile im Programm. Im Debug-Tab werden zudem die aktuellen Variablen mit Werten der Applikation ausgegeben.
7070
{{< img alt="Example stoppt an Breakpoint" src="basics/intellij-debugger-stopped-at-breakpoint.JPG" >}}
7171

7272
#### Navigation am Breakpoint
7373

74-
Um nun die Programmausführung schrittweise fortzusetzen, verfügt die Entwicklungsumgebung über verschiedene Funktionen. Zum einen gibt es
75-
Grundfunktionen wie das Fortsetzen der Applikation oder das komplette Stoppen der Applikation. Die wichtigsten nun kurz erklärt:
74+
Um nun die Programmausführung schrittweise fortzusetzen, verfügt die Entwicklungsumgebung über verschiedene Funktionen. Diese beinhalten
75+
Grundfunktionen wie das Fortsetzen der Applikation oder das komplette Stoppen der Applikation. Die wichtigsten kurz erklärt:
7676

7777
- `Resume Program` setzt das Programm fort bis zum nächsten Breakpoint oder Applikationsende
78-
- `Stop Remote Debug` stoppt den Debugger. Da in diesem Setup jedoch die Applikation und der Debugger getrennt laufen, hat diese Optionen
78+
- `Stop Remote Debug` stoppt den Debugger. Da in diesem Setup jedoch die Applikation und der Debugger getrennt laufen, hat die Option
7979
keinen sinnvollen Effekt. Zum Stoppen des Programms sollte immer `Stop All` verwendet werden. Dies wird auf dem zweiten Bild gezeigt.
8080
- `Mute Breakpoints / Disable all Breakpoints` der Debugger deaktiviert alle Breakpoints. So wird das Programm bei weiterer Ausführung nicht
8181
mehr unterbrochen.
8282
{{< img alt="Steuerung der Applikation" src="basics/intellij-application-controls.JPG" >}}
8383
{{< img alt="Stopp der Applikation" src="basics/intellij-stop-program.JPG" >}}
8484

85-
Für die schrittweise Ausführung des Programms stellt der Debugger noch weitere Tasten zur Verfügung. Diese sind:
85+
Für die schrittweise Ausführung des Programms stellt der Debugger noch weitere Tasten zur Verfügung:
8686

87-
- `Step Over` die nächste Anweisung im Code wird ausgeführt. Bei einem Methodenaufruf wird der Rückgabewert ermittelt ohne die Methode zu
87+
- `Step Over` die nächste Anweisung im Code wird ausgeführt. Bei einem Methodenaufruf wird der Rückgabewert ermittelt, ohne die Methode zu
8888
betreten.
8989
- `Step Into` die nächste Anweisung im Code wird ausgeführt. Bei einem Methodenaufruf wird der Code der Methode geöffnet und das Debugging
9090
geht in der Methode weiter.
91-
- `Force Step Into` die nächste Anweisung im Code wird ausgeführt. Bei einem Methodenaufruf welcher normalerweise Step Into ignoriert wird
92-
das eintauchen in die Methode erzwungen.
93-
- `Step Out` die aktuelle Methode wird ausgeführt bis der Code wieder am aufrufenden Ort angekommen ist. Wird zum vorzeitigen Rückkehren
91+
- `Force Step Into` die nächste Anweisung im Code wird ausgeführt. Bei einem Methodenaufruf, welcher normalerweise bei Step Into ignoriert, wird
92+
das Eintauchen in die Methode erzwungen.
93+
- `Step Out` die aktuelle Methode wird ausgeführt, bis der Code wieder am aufrufenden Ort angekommen ist. Wird zum vorzeitigen Rückkehren
9494
aus `Step Into` verwendet.
9595
{{< img alt="Navigation mit Debugger" src="basics/intellij-debug-navigations.JPG" >}}
9696

97-
Noch genauere Erklärungen zu den einzelnen Funktionen können auch direkt in
98-
der [IntelliJ Anleitung](https://www.jetbrains.com/help/idea/stepping-through-the-program.html) gefunden werden.
97+
Noch genauere Erklärungen zu den einzelnen Funktionen können auch direkt
98+
der [IntelliJ Anleitung](https://www.jetbrains.com/help/idea/stepping-through-the-program.html) entnommen werden.
9999

100100
---
101101

102102
### Analyse von Variablen
103103
Inzwischen wurden einige Steps an der Codestelle des `for-loops` ausgeführt. Nun nochmals ein Blick auf die Variablenliste des Debuggers.
104-
Im auf dem Bild kann nun erkannt werden wie der Debugger dem Benutzer anzeigt welche Variablen nun welche Werte haben. Aktuell ist es
104+
Im auf dem Bild kann erkannt werden, wie der Debugger dem Benutzer anzeigt welche Variablen nun welche Werte haben. Aktuell ist es
105105
also: `i=2` und `state="- "`
106-
Da der `for-loop` erst bei `i > 5` stoppt könnte nun mit dem Debugger jede weitere Iteration nachvollzogen werden.
106+
Da der `for-loop` erst bei `i > 5` stoppt, könnte nun mit dem Debugger jede weitere Iteration nachvollzogen werden.
107107
{{< img alt="Variablen mit Debugger" src="basics/intellij-shows-variables.JPG" >}}
108-
Auf genau diese Weise lassen sich auch Entscheidungen bei `if (this) {then that} else {other things}` nachvollziehen. Jede Variable kann
108+
Auf diese Weise lassen sich auch Entscheidungen bei `if (this) {then that} else {other things}` nachvollziehen. Jede Variable kann
109109
auf ihren Zustand geprüft und somit bei Fehlentscheiden die Logik angepasst werden.

0 commit comments

Comments
 (0)