(WS19-01)Wetterballon Entwicklung: Unterschied zwischen den Versionen

Aus Verteilte Systeme - Wiki
Wechseln zu: Navigation, Suche
(Implementierung)
Zeile 15: Zeile 15:
  
 
=Implementierung=
 
=Implementierung=
 +
Als Implementierungssprache standen Python und C zur Auswahl. Unsere Wahl fiel auf C, da damit alle Gruppenmitglieder schon erste Erfahrungen sammeln konnten. Einen Styleguide haben wir unter nachfolgendem Link angeführt, um die
 +
Zur Ansteuerung der über I2C angeschlossenen Sensoren standen uns die Schnittstellen i2c-dev, wiringPi und die Registermanipulation mittels der bcm2835-Bibliothek zur Auswahl. Um die passende Methode zu finden, haben wir uns mit allen Varianten beschäftigt und die Vor- und Nachteile wie folgt zusammengefasst.
 +
 +
<syntaxhighlight>
 +
i2c-dev:
 +
+ einfache Verwendung
 +
- adapter_nr muss ermittelt werden
 +
- Umweg über Filesystem -> schlechtere Performance
 +
 +
WiringPi:
 +
+ sehr einfache Verwendung
 +
o bis auf Setup, zu unflexible Funktionen (Alternative: Verwendung von write und read)
 +
- Umweg über Filesystem -> schlechtere Performance
 +
 +
Low Level (Registermanipulation):
 +
+ potentiell beste Performance
 +
+ maximale Kontrolle
 +
+ Unabhängigkeit von I2C-Bibliotheken -> bessere Portabilität bei identischem Prozessor aber unterschiedlichen OSs
 +
o root-only
 +
- komplexer -> fehleranfälliger, zeitraubender, aber es gibt eine gute Vorlage zur Implementierung
 +
 +
</syntaxhighlight>
 +
 +
Nach der Abwägung der Vor- und Nachteile haben wir uns für eine Implementierung mittels der bcm2835-Bibliothek entschieden, da uns die bessere Performance den größten Vorteil bei der Erfüllung der Anforderungen bietet, auch wenn darunter die Benutzerfreundlichkeit leidet.

Version vom 6. Dezember 2019, 15:07 Uhr

Formalia

C-Styleguide

Für die Entwicklung wurde sich auf einen gemeinsamen Styleguide geeinigt. Weiterer Text folgt.

Der Guide kann hier eingesehen werden: C-Styleguide

CSV

Die Sensordaten werden im zur einfacheren Auswertung im CSV-Format gespeichert. Nährere Informationen gibt es hier:

CSV-Format

Doxygen

...Cooler Text kommt noch... Infos zu Doxygen hier: Doxygen

Implementierung

Als Implementierungssprache standen Python und C zur Auswahl. Unsere Wahl fiel auf C, da damit alle Gruppenmitglieder schon erste Erfahrungen sammeln konnten. Einen Styleguide haben wir unter nachfolgendem Link angeführt, um die Zur Ansteuerung der über I2C angeschlossenen Sensoren standen uns die Schnittstellen i2c-dev, wiringPi und die Registermanipulation mittels der bcm2835-Bibliothek zur Auswahl. Um die passende Methode zu finden, haben wir uns mit allen Varianten beschäftigt und die Vor- und Nachteile wie folgt zusammengefasst.

i2c-dev:
+ einfache Verwendung
- adapter_nr muss ermittelt werden
- Umweg über Filesystem -> schlechtere Performance

WiringPi:
+ sehr einfache Verwendung
o bis auf Setup, zu unflexible Funktionen (Alternative: Verwendung von write und read)
- Umweg über Filesystem -> schlechtere Performance

Low Level (Registermanipulation):
+ potentiell beste Performance
+ maximale Kontrolle
+ Unabhängigkeit von I2C-Bibliotheken -> bessere Portabilität bei identischem Prozessor aber unterschiedlichen OSs
o root-only
- komplexer -> fehleranfälliger, zeitraubender, aber es gibt eine gute Vorlage zur Implementierung

Nach der Abwägung der Vor- und Nachteile haben wir uns für eine Implementierung mittels der bcm2835-Bibliothek entschieden, da uns die bessere Performance den größten Vorteil bei der Erfüllung der Anforderungen bietet, auch wenn darunter die Benutzerfreundlichkeit leidet.