Struktur von Konfigurationsdaten / Benutzer Parametern

OP #6485100
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?
#6486028
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.