Forum: Mikrocontroller und Digitale Elektronik Hilfe um Menükonzept


von VN N. (novita)


Lesenswert?

Hallo,
ich möchte ein Menü wie folgt erstellen
1.Modul_1
  1.1 OP_1
  1.2 OP_2
2.Modul_2
  2.1 OP_3
  2.2 OP_4
3.Einstellung
  3.1 Zuweisung
      3.1.1 Zu_OP_1
      3.1.2 Zu_OP_2
      3.1.3 Zu_OP_3
      3.1.4 Zu_OP_4
Die OP_1 bis OP_4 Untermenüs können unter 3.1 Zuweisung neu zu Modul_1 
oder
Modul_2 zugewiesen. z.B
1.Modul_1
  1.1 OP_1
  1.2 OP_2
  1.3 OP_4
2. Modul_2
  2.1 OP_3
3.Einstellung
  3.1 Zuweisung
    .....
Mir fehlt das Konzept um die neue Navigation nachlegen zu können.
Alle Ideen oder Hinweis zum Algorithmus sind mir sehr dankbar.
Gruß
novita

von ./. (Gast)


Lesenswert?

Wenn einem gar nichts einfaellt, dann nimmt mein einfach eine 
Statemachine.

von Björn P. (bjrn_g)


Lesenswert?

Woher weißt du in 3.1, welcher OP_x zu welchem Modul zugeordnet werden 
soll?

wie wäre es mit einer Struktur?
1
struct Zuweisung
2
{
3
    int8 OP_1;
4
    int8 OP_2;
5
    int8 OP_3;
6
    ...
7
};

dazu Defines:
1
#define UNDEFINDED  0x0
2
#define MODUL1      0x1
3
#define MODUL2      0x2
4
...

oder um Speicherplatz zu sparen mit einer Union:
1
union Zuweisung
2
{
3
    int16 word;
4
    struct
5
    {
6
         int OP_1:4;    // mit UNDEFINED maximal 15 Module
7
         int OP_2:4;
8
         int OP_3:4;
9
         int OP_4:4;
10
    } sub;
11
};
Syntax ist vom CCS-Compiler!

Oder wo genau hakt es?

von VN N. (novita)


Lesenswert?

Hallo,
Unter dem Menü OP_x gibt es noch ein paar Menüpunkte z.B
1.1 OP_1
   1.1.1 OP_1_1
   1.1.2 OP_1_2
   1.1.2 Exit
Und die sind gleich für alle OP_x.
Einfach zum Verstehen messe ich hier 2 PT100 Sensoren und gebe sie zu
4 analogen Ausgängen aus. Die 2 PT100 entsprechen Modul_1 und Modul_2 
und
die 4 Menüpunkte OP_1 bis OP_4 sind zum Ansteuern und Einstellen von den
analogen Ausgängen.
Normalerweise gehören OP_1 und OP_2 zu dem Modul_1 (Analoge Ausgang 1 
und 2 sind für PT100 1 konfiguriert) und OP_3 und OP_4 zu dem Modul_2. 
In Laufzeit kann Nutzer ändern, dass er OP_1, OP_2 und OP_3 zum 
Darstellen von PT100 1 konfiguriert, oder wie was er will.
Unter dem Menupunkt 3.1 Zuweisung sind 4 Menupunkte Zu_OP_1 bis Zu_OP_4. 
Sie sind Auswahlmenü, indem man 2 Auswähle Modul_1 oder Modul_2 hat. 
Wählt man Modul_1, wird OP_x (analoge Ausgang x) zu dem Modul_1 (PT100 
1) zugewiesen. Wenn ich so mache, muss ich die Navigation von Menü 
ändern und
speichern.
Mein Menü basiert auf Micromenu von Dean Camera in avrfreaks.
typedef const struct Menu_Item
{
  const uint8_t text_id;
  const Menu_Item *Menu_Up;
  const Menu_Item *Menu_Down;
  const Menu_Item *Menu_Back;
  const Menu_Item *Menu_Enter;
  const uint8_t callback_type;
}Menu_Item_t;
Und das Gesamtmenü wurde im Flash gespeichert.
Meine Meinung ist, mit diesem Menüstruktur ist es schwierig, um die 
Navigation von Menü flexibel zu ändern. Mir fehlt das Konzept, um sowas
zu implementieren.
Ich habe sehr wenig Erfahrung mit Statemachine, aber ich lese grad 
darüber.

von W.S. (Gast)


Lesenswert?

VN NN schrieb:
> Mir fehlt das Konzept

Ja, das ist offensichtlich.

Also rate ich dir, zu allererst dir ein Konzept zu erarbeiten. Wie das 
im Detail aussieht, hängt von deiner Hardware ab, insbesondere davon, 
was für ein Display und was für Eingabemöglichleiten (Tasten, Drehgeber, 
Touch, ..?) du hast.

Im Grunde ist es aber immer gleich: Es soll etwas angezeigt werden, was 
einen gewissen Zustand darstellen soll, und mittels Tasten o.ä. soll man 
diesen Zustand ändern können, was sich dann in einer anderen Darstellung 
ausdrückt. Dabei muß man immer zwischen 2 Ebenen unterscheiden: 
Navigationsebene (also wie im Menü herumzuhampeln) und Ausführungsebene 
(also ob und wenn was für Aktionen veranlassen)

W.S.

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.