Bonjour,

Je devais faire un Bargraph basique sous LabWindows CVI (sans trop d'explications données).
D'après ce que j'ai compris j'ai fais un truc qui me donne ça:


J'ai donc fait un switch sur l'état de 'BUTTON1' (le potentiomètre); et en fonction de cet état je décris l'état de chaque LED (0 ou 1).... seulement ça me parait un peu barbare comme méthode.

Ma question est donc: Est-ce qu'il y a moyen de simplifier tout ça... ?

Voici le code de la partie en question:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
int CVICALLBACK BUTTON1 (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{   int etat_BUTTON1;
	switch (event)
	{
		case EVENT_COMMIT:
 
			break;
		case EVENT_VAL_CHANGED:
			GetCtrlVal (panel, control, &etat_BUTTON1);
			switch (etat_BUTTON1)
			{
 
				case 0 : SetCtrlVal (panel, PANEL_LED, 0); SetCtrlVal (panel, PANEL_LED_2, 0); SetCtrlVal (panel, PANEL_LED_3, 0); SetCtrlVal (panel, PANEL_LED_4, 0); SetCtrlVal (panel, PANEL_LED_5, 0); SetCtrlVal (panel, PANEL_LED_6, 0); SetCtrlVal (panel, PANEL_LED_7, 0); SetCtrlVal (panel, PANEL_LED_8, 0); SetCtrlVal (panel, PANEL_LED_9, 0); SetCtrlVal (panel, PANEL_LED_10, 0); break;
				case 1 : SetCtrlVal (panel, PANEL_LED, 1); SetCtrlVal (panel, PANEL_LED_2, 0); SetCtrlVal (panel, PANEL_LED_3, 0); SetCtrlVal (panel, PANEL_LED_4, 0); SetCtrlVal (panel, PANEL_LED_5, 0); SetCtrlVal (panel, PANEL_LED_6, 0); SetCtrlVal (panel, PANEL_LED_7, 0); SetCtrlVal (panel, PANEL_LED_8, 0); SetCtrlVal (panel, PANEL_LED_9, 0); SetCtrlVal (panel, PANEL_LED_10, 0); break;
				case 2 : SetCtrlVal (panel, PANEL_LED, 1); SetCtrlVal (panel, PANEL_LED_2, 1); SetCtrlVal (panel, PANEL_LED_3, 0); SetCtrlVal (panel, PANEL_LED_4, 0); SetCtrlVal (panel, PANEL_LED_5, 0); SetCtrlVal (panel, PANEL_LED_6, 0); SetCtrlVal (panel, PANEL_LED_7, 0); SetCtrlVal (panel, PANEL_LED_8, 0); SetCtrlVal (panel, PANEL_LED_9, 0); SetCtrlVal (panel, PANEL_LED_10, 0); break;
				case 3 : SetCtrlVal (panel, PANEL_LED, 1); SetCtrlVal (panel, PANEL_LED_2, 1); SetCtrlVal (panel, PANEL_LED_3, 1); SetCtrlVal (panel, PANEL_LED_4, 0); SetCtrlVal (panel, PANEL_LED_5, 0); SetCtrlVal (panel, PANEL_LED_6, 0); SetCtrlVal (panel, PANEL_LED_7, 0); SetCtrlVal (panel, PANEL_LED_8, 0); SetCtrlVal (panel, PANEL_LED_9, 0); SetCtrlVal (panel, PANEL_LED_10, 0); break;
				case 4 : SetCtrlVal (panel, PANEL_LED, 1); SetCtrlVal (panel, PANEL_LED_2, 1); SetCtrlVal (panel, PANEL_LED_3, 1); SetCtrlVal (panel, PANEL_LED_4, 1); SetCtrlVal (panel, PANEL_LED_5, 0); SetCtrlVal (panel, PANEL_LED_6, 0); SetCtrlVal (panel, PANEL_LED_7, 0); SetCtrlVal (panel, PANEL_LED_8, 0); SetCtrlVal (panel, PANEL_LED_9, 0); SetCtrlVal (panel, PANEL_LED_10, 0); break;
				case 5 : SetCtrlVal (panel, PANEL_LED, 1); SetCtrlVal (panel, PANEL_LED_2, 1); SetCtrlVal (panel, PANEL_LED_3, 1); SetCtrlVal (panel, PANEL_LED_4, 1); SetCtrlVal (panel, PANEL_LED_5, 1); SetCtrlVal (panel, PANEL_LED_6, 0); SetCtrlVal (panel, PANEL_LED_7, 0); SetCtrlVal (panel, PANEL_LED_8, 0); SetCtrlVal (panel, PANEL_LED_9, 0); SetCtrlVal (panel, PANEL_LED_10, 0); break;
				case 6 : SetCtrlVal (panel, PANEL_LED, 1); SetCtrlVal (panel, PANEL_LED_2, 1); SetCtrlVal (panel, PANEL_LED_3, 1); SetCtrlVal (panel, PANEL_LED_4, 1); SetCtrlVal (panel, PANEL_LED_5, 1); SetCtrlVal (panel, PANEL_LED_6, 1); SetCtrlVal (panel, PANEL_LED_7, 0); SetCtrlVal (panel, PANEL_LED_8, 0); SetCtrlVal (panel, PANEL_LED_9, 0); SetCtrlVal (panel, PANEL_LED_10, 0); break;
				case 7 : SetCtrlVal (panel, PANEL_LED, 1); SetCtrlVal (panel, PANEL_LED_2, 1); SetCtrlVal (panel, PANEL_LED_3, 1); SetCtrlVal (panel, PANEL_LED_4, 1); SetCtrlVal (panel, PANEL_LED_5, 1); SetCtrlVal (panel, PANEL_LED_6, 1); SetCtrlVal (panel, PANEL_LED_7, 1); SetCtrlVal (panel, PANEL_LED_8, 0); SetCtrlVal (panel, PANEL_LED_9, 0); SetCtrlVal (panel, PANEL_LED_10, 0); break;
				case 8 : SetCtrlVal (panel, PANEL_LED, 1); SetCtrlVal (panel, PANEL_LED_2, 1); SetCtrlVal (panel, PANEL_LED_3, 1); SetCtrlVal (panel, PANEL_LED_4, 1); SetCtrlVal (panel, PANEL_LED_5, 1); SetCtrlVal (panel, PANEL_LED_6, 1); SetCtrlVal (panel, PANEL_LED_7, 1); SetCtrlVal (panel, PANEL_LED_8, 1); SetCtrlVal (panel, PANEL_LED_9, 0); SetCtrlVal (panel, PANEL_LED_10, 0); break; 
				case 9 : SetCtrlVal (panel, PANEL_LED, 1); SetCtrlVal (panel, PANEL_LED_2, 1); SetCtrlVal (panel, PANEL_LED_3, 1); SetCtrlVal (panel, PANEL_LED_4, 1); SetCtrlVal (panel, PANEL_LED_5, 1); SetCtrlVal (panel, PANEL_LED_6, 1); SetCtrlVal (panel, PANEL_LED_7, 1); SetCtrlVal (panel, PANEL_LED_8, 1); SetCtrlVal (panel, PANEL_LED_9, 1); SetCtrlVal (panel, PANEL_LED_10, 0); break;
				case 10: SetCtrlVal (panel, PANEL_LED, 1); SetCtrlVal (panel, PANEL_LED_2, 1); SetCtrlVal (panel, PANEL_LED_3, 1); SetCtrlVal (panel, PANEL_LED_4, 1); SetCtrlVal (panel, PANEL_LED_5, 1); SetCtrlVal (panel, PANEL_LED_6, 1); SetCtrlVal (panel, PANEL_LED_7, 1); SetCtrlVal (panel, PANEL_LED_8, 1); SetCtrlVal (panel, PANEL_LED_9, 1); SetCtrlVal (panel, PANEL_LED_10, 1); break;
 
			}
 
			break;
	}
	return 0;
}
Voilà