Re: Ampelschaltung mit Delphi über Com Port
25. Feb 2010, 12:15
Soein Enumerator/Typ hat den Vorteil, daß er leicht verständliche Werte besitzt und er gleichzeitig vom Programm einfach verarbeitet werden kann.
Statt TAmpelStatus könnte man sich auch einen Integer nehmen und dann alle Zustände jeweils einzeln als Konstante anlegen, aber so hatt man alles zusammengehörend und der Compiler mekert, wenn da was Falsches angegeben wird.
Die Konstanten weglassen und überall einfach nur Zahlen verwenden ginge auch, aber am nächsten Tag weiß dann keiner mehr, was z.B. eine "123" irgendwo zu bedeuten hatte.
Gut, TAmpelStatus als String und alles als Text ist auch möglich, aber es ist dann auch schwerer/umständlicher ausuwerten.
Alternativ könnte man den Objekten auch getrennte An/Aus-Funktionen für die einzelnen LEDs verpassen, aber dann muß das Steuerprogramm mehrere Eingänge ansteuern und so hat es nur einen Zugang pro Objekt.
gemeinsamer LED-Status:
+ nur ein Wert anzusteuern
- man muß vorher Festlegen welche Kombinationen der LEDs es pro Ampel gibt
getrennte LED-Stati
+ man kann vom Steuerprogramm jede LED gezielt steuern ohne Kombinationsmuster (Status-Werte) anlegen zu müssen
- man muß mehrere Eingänge ansteuern, welches die Ansteuerung aufwändiger macht
Im Prinzip ist es ein Abwegen der Vor- und Nachteile
und danach entscheidet man sich für einen Weg.
Je stärker die einzelnen Module voneinander getrennt sind, um so einfacher lassen sich diese unabhängig voneinander entwickeln und testen.
Ist alles sehr stark miteinander verbunden und voneinander abhängig, dann geht sowas nicht.
So könnte man z.B. erstmal die Ampelmodule erstellen und kann dann z.B. TAmpelRotGruen zusammen mit einer realen Ampel ganz alleine Testen, oder auch nur einen Code vom Steuerprogramm fertig zu haben.
$2B or not $2B
|