Bonjour à tous,

J'ai besoin de votre avis pour réaliser un générateur de trame. Je souhaite quelque chose de très lisible et très guidé pour que n'importe qui puisse facilement créer sa trame.
Pour faire simple, je pilote une interface utilisateur qui dispose de plusieurs LED RGB. j'ai plusieurs commandes et plusieurs paramètres déjà définis comme par exemple:

COMMAND:
- OUTPUT //manipuler une sortie
- BRIGHTNESS //piloter le niveau de luminosité

OUTPUT
- O0 //sortie 0
- O1 //sortie 1
- O2 //sortie 2

COLOR:
- RED
- ORANGE
- WHITE

Pour générer une trame, je souhaite créer des méthodes simples comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
setColor(OUTPUT op, COLOR c) //pilote la sortie op en couleur c
{
    QByteArray message; //(j'utilise Qt)
 
    message.append(COMMAND::OUTPUT); //C'est une commande "pilotage de sortie"
    message.append(op);
    message.append(c);
    serial.write(message);
}
Ma question est en fait simple: quelle est la bonne méthode pour définir COMMAND, OUTPUT et COLOR (je ne nomme que ceux là mais j'en ai beaucoup d'autres) de manière à pouvoir les utiliser facilement dans les méthodes?

En faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
enum COLOR{RED = 0x00, ORANGE= 0x01, WHITE= 0x02}
Je ne peux pas faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
message.append(RED); //RED n'est pas un type
En faisant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
namespace COLOR{
    const quint8 RED  = 0x00;
    const quint8 ORANGE= 0x01;
    const quint8 WHITE= 0x02;
}
Comment le mettre en paramètre de la méthode?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
setColor(OUTPUT op, COLOR c) //Error: Unknown type name OUTPUT, Unknown type name COLOR
Peut-être existe-t-il un autre moyen que je ne connais pas?
J'attends toutes vos propositions, merci!

Arnaud