Forum: Mikrocontroller und Digitale Elektronik Struktur von Konfigurationsdaten / Benutzer Parametern


von Michael U. (michaeluray)


Lesenswert?

Gibt es eigentlich eine best practice wie Konfigurationsdaten 
strukturiert und abgelgt werden, oder vielleicht sogar eine Library 
welche dies managt?

Für die meisten Benutzereingaben sind ja einfache Datentypen (byte, int, 
long, float...) ausreichend.

Ein einfacher Ansatz wäre etwa so eine Struktur, aus welcher dann ein 
Array gebildet wird.
1
struct PARA {
2
   int value;
3
   int min;
4
   int max;
5
   int default;
6
   byte permissionLevel;
7
};
Je nach Hardware und Anwendung könnte man dann nur den "value" oder aber 
auch alle Werte im EEPROM ablegen und damit live veränderbar machen.

So eine Struktur hat allerdings den Nachteil, dass immer nur ein 
bestimmter vorgegebener Datentyp (z.B. int) verwendet werden kann und 
nicht Parameter mit unterschiedlichen Typen möglich sind.

Ebenso müssen ja irgendwo Texte für diese Parameter hinterlegt werden, 
damit diese dann ggf. auf einem Menü angezeigt werden können.
Diese sollte man wohl in einer eigenen Struktur (im PROGMEM) 
unterbringen.
1
struct PARA_txt 
2
{
3
   paraText[DE]
4
   paraText[EN]
5
   paraText[..]
6
}
Über ein Anwendermenü wo Parameter dann angezeigt werden (evtl. an 
mehreren Stellen) müsste man sich wohl dann auch noch Gedanken machen.

Gibt es hier schon brauchbare Ansätze bei anderen Projekten um 
Benutzerparameter gut und flexibel (verschieden Datentypen, 
erweiterbar...) zu strukturieren und verwalten zu können, oder eben 
vielleicht sogar eine Library?

von Klaus H. (klummel69)


Lesenswert?

Vermutlich gibt es auch Libraries dazu, aber das Problem ist doch, dass 
die Anforderungen in jedem Projekt anders sind.

Oft darf ein normaler User nur den Wert ändern.
Die Limits (max/min) darf ggf nur ein Admin ändern oder gar von 
niemandem (weil technisch begrenzt). Daher macht es (manchmal) Sinn, 
Daten und Ihre Grenzen ggf zu trennen oder unterschiedliche Userrechte 
zu vergeben.

Hab mir dafür mal eine Library mit C++ Klassen erstellt (geht natürlich 
auch mit C oder einer anderen Sprache). Mit in der Klasse lagen auch die 
Verweise zu den Beschreibungstexten und Hilfen.
Je Datentyp eine (abgeleitete) Klasse.

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.