Enum, namespace ou autre ?
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:
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:
1 2
|
enum COLOR{RED = 0x00, ORANGE= 0x01, WHITE= 0x02} |
Je ne peux pas faire
Code:
message.append(RED); //RED n'est pas un type
En faisant :
Code:
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:
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