Forum: Mikrocontroller und Digitale Elektronik Vorraussicht beim Konzeptionieren


von Maude (Gast)


Lesenswert?

Hallo Gemeinde,

ich würde gerne eine Dikussion theoretischer Natur anstoßen, auch in 
Anlehnung an die Diskussionen, die gerade über C++ laufen.

Die Kernfrage die sich mir stellt ist, wie weit kann man bei der 
Konzeptionierung und Architektur eines System vorraussehen und gibt es 
vielleicht "abstrahierte Denkweisen", die zur Lösung führen?

konkretes Beispiel:
Ich habe ein System, bei dem es "Pipelines" gibt, bei denen oben ein 
Wert reingefüttert wird, der von hinzulinkbaren Modulen verändert werden 
kann und unten wieder rauskommt. Zu diesen Modulen gehört z.B. eines aus 
der digitalen Ecke, welches auf einen Inputpin "angesetzt" werden kann 
und abhängig von dessen Zustand auf den durchgeschobenen Wert 
parametrierbare Werte aufaddiert. Einen für "aktiv" einen für "inaktiv". 
Letztlich lassen sich über diesen Ansatz durch einbinden mehrer dieser 
Module hintereinander  Schalter mit unterschiedlich vielen 
Schaltpositionen erfassen, wenn man überall die "inaktiv Position" = 0 
lässt (die braucht nur bei AN/AUS). Ich habe also keine systembedingte 
minimale oder maximale Anzahl von Schaltpositionen.

Soweit hatte ich im Vorhinein geplant und fand das ganz clever.

Letztenendes ist es aber so, dass der Schalter, den ich in meiner 
Bedienplatte eingebaut habe vom System nicht als Schalter im Sinne einer 
Einheit erfasst wird, sondern im Grunde als Sammelsorium von 
Digitaleingängen. War erstmal nicht schlimm, bis ein Anwendungsfall 
auftrat, wo es doch nervte.
Also bin ich dabei viel umzubauen, habe eine eigene Klasse "Switch" 
entworfen, der ich im Konstruktor die Anzahl an Positionen mitteile 
woraufhin entsprechend viele structs allokiert werden, in denen ich 
jeweils eine Pinnummer definieren kann. Die Reihenfolge in der allokiert 
wird entspricht letztlich der Position. Bei Aufruf werden die structs 
durchitteriert; bei der ersten wo der definierte Pin gesetzt ist, wird 
das "Itterierungsargument" zurückgegeben.
Zum Glück ist es ein Privatvergnügen und keine Produktlinie, weil ich ne 
ganze Menge umstrukturieren muss.

Im Nachinhein sehe ich ein, dass es im Sinne der OOP Philosophie ein 
fehler war, Schalter nicht direkt als Einheit und damit als Objekt zu 
sehen und zu implementieren - aber in dieser Art wird sicher auch 
weniger offensichtlichere Fälle geben.

Für diejenigen, die bis hier gelesen haben komme ich auf die 
Eingangsfrage zurück, ob es Strategien oder abstrakte Denkansätz gibt, 
die sowas im Vorhinein aufdecken?

viele Grüße!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.