Hello, me revoilà avec le resultat de mes essais ... concluant, merci Guillaume pour m'avoir donné le chemin.
dans cette exemple les leds sont simple mais si elle étaient RVB il suffirait d'incrémenté de 3 en 3
1ere étape après avoir récupéré le code avec le genérateurXY graphique
trier et remettre dans le bon ordre le Pack
donc passer de ça
// RemoteXY configurate
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
{ 255,2,0,121,0,194,2,6,0,2,
1,0,82,47,12,12,48,85,12,12,
1,0,2,0,4,54,15,5,3,92,
12,5,1,79,78,0,79,70,70,0,
65,9,6,6,5,5,4,4,5,5,
2,65,9,11,6,5,5,9,4,5,
5,2, etc...
// this structure defines all the variables of your control interface
struct {
// input variable
uint8_t Z; // =1 if button pressed, else =0
uint8_t P; // =1 if switch ON and =0 if OFF
// output variable
uint8_t L8_b; // =0..255 LED Blue brightness
uint8_t L1_b; // =0..255 LED Blue brightness
...ect
------
à
------
// RemoteXY configurate
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
{ 255, 2, 0, 121, 0, 194, 2, 6, 0, 2, // Entête
1, 0, 82, 47, 12, 12, 48, 85, 12, 12, 1, 0, // Z (Boutton poussoir entête 1)
2, 0, 4, 54, 15, 5, 3, 92, 12, 5, 1, 79, 78, 0, 79, 70, 70, 0, // P (Switch entête 2)
65, 10, 11, 11, 5, 5, 9, 9, 5, 5, 2, //L0 (Entete des LED = 65)
65, 9, 11, 6, 5, 5, 9, 4, 5, 5, 2, //L1
//...etc
// this structure defines all the variables of your control interface
struct {
// input variable
uint8_t Z; // =1 if button pressed, else =0
uint8_t P; // =1 if switch ON and =0 if OFF
// output variable
uint8_t L0_b; // =0..255 LED Blue brightness
uint8_t L1_b; // =0..255 LED Blue brightness
//..etc
C'est un peu fastidieux mais faisable:
on identifie chaque ligne du pack qui corresponds au même ordre que la définition de variable dessous
on inverse ensuite les lignes du pack pour avoir les LED (dans mon cas) dans le bon ordre (à moins qu'elles aient été créés dans le bon ordre dans le générateur graphique.
est ensuite pour faire un tableau de led dans cette exemple
on remplace les lignes
/*
uint8_t L0_b; // =0..255 LED Blue brightness
uint8_t L1_b; // =0..255 LED Blue brightness
uint8_t L2_b; // =0..255 LED Blue brightness
...
uint8_t L47_b; // =0..255 LED Blue brightness
uint8_t L48_b; // =0..255 LED Blue brightness
uint8_t L49_b; // =0..255 LED Blue brightness
*/
par
// Tableau en remplacement de la tripoté de variable
uint8_t L[50]; // =0..255 LED Green brightness modifié en tableau
et on a un tableau de Led
utilisable comme ça par exemple
for (unsigned short int j = 0; j < 50; j++)
{
RemoteXY.L[j] = LEDOFF;
}
avec
#define LEDON 255 // constante pour LED allumé
#define LEDOFF 0 // constante pour LED éteinte
Celà pourrait etre sympa que le devellopeur de XYRemote nous gratifie d'une petite modif dans la génération du code avec l'outil graphique afin que le Pack soit directement formaté et commenté ligne par ligne.
Bonne continuation à tous
Francis