Utiliser une boucle for pour une variable struct [Résolu]

Bonjour,

Je suis sur esp-now pour envoyer les 4 valeurs de deux joysticks
strtypedefuct struct_message { int xg; int yg; int xd; int yd;} struct_message;

Que je récupère par

        XX = int(analogRead(pinPot[0])/10);        if ( XX == 0 ) XX=1;
        myData.xg = XX ;
        XX = int(analogRead(pinPot[1])/10);        if ( XX == 0 ) XX=1;
        myData.yg = XX;  
        XX = int(analogRead(pinPot[2])/10);        if ( XX == 0 ) XX=1;
        myData.xd = XX ;
        XX = int(analogRead(pinPot[3])/10);        if ( XX == 0 ) XX=1;
        myData.yd = XX;

J'ai déclaré mes pins avec
int32_t pinPot[] = {0,1,3,4}; // pins utilisés sur l'ESP

Doit bien y avoir un moyen de mettre cela dans une boucle for mais je n'ai jamais fait

Bonjour fra53

Oui, c'est possible en ne "détaillant" pas les valeurs des joystick:
{ int xg; int yg; int xd; int yd;}
et en les mettant dans un tableau:
struct messageDef { int joyVal[4];} message;

et pour initialiser les valeurs:

	for (int p = 0; p < 4; p ++)
	{
		message.joyVal[p] = analogRead(pinPot[p])/10;
	}

Cordialement
jpbbricole

Merci, c'est exactement ce dont j'avais rêvé !

Bonjour fra53

Avec plaisir :wink:

Jer suis aussi en plein développement ESP-NOW:

Bonne soirée.
jpbbricole

Moi pour l'instant y a le joystick double et un servo ailleurs relié par espnow.
L'idée c'est 2 fois 2 servos commandés par le boîtier joysticks double et d'autres remontant des capteurs.
Je débute avec ESP-NOW...

A noter que s’il n’y a que ces éléments la structure n’est peut être pas nécessaire et on peut simplement utiliser un tableau .

La structure est nécessaire si on veut passer par référence ou copie le message