Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.230 Beiträge
 
Delphi 12 Athens
 
#21

Re: Ampelschaltung mit Delphi über Com Port

  Alt 25. Feb 2010, 11: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat