String... mais en utilisant string (sans majuscule)

Artouste:
ET la question est 8) : c'est quoi ton ensemble émetteur/recepteur qui passe mieux que le WIFI ? :wink:

Liens ?, photos ? :grin:

La "comm" sous marine "wireless" , ça ne s'improvise pas ... vraiment passé qq ... mètres

433hz classique en fait ^^, mais t'inquiète c'est en piscine, et surtout... ben le signal radio est imposé, donc pas le choix :slight_smile:

Concernant la photo, disons que c'est ceci, mais version miniature et sous marine : http://masss.fr/ :wink: (vus le machin, tu comprends donc que le code risque d'être trèèèèèèès long).

lesept:
VirtualWire envoie et reçoit des chaînes d'octets, ou de char (c'est un peu pareil, à une constante près).
Il y a des infos un peu partout, par exemple ici

Si tu envoies un message du genre "M2_123" où le 2 et le 123 viennent de variables byte, il faut que tu construises ce message :

char msg[6] = {'M','*','_','*','*','*'};

msg[1] = numero_du_moteur;
msg[3] = angle/100;
msg[4] = (angle%100)/10;
msg[5] = angle%10;
vw_send((uint8_t *)msg, 6);
vw_wait_tx();



Pour vérifier, tu peux faire afficher le msg sur le console.
Il est possible qu'il faille faire (et pareil pour les autres lignes) si ça n'affiche pas comme il faut


msg[1] = numero_du_moteur+'0';




A la réception, tu dois décoder de la même manière :


uint8_t buf[VW_MAX_MESSAGE_LEN];
    uint8_t buflen = VW_MAX_MESSAGE_LEN;

if (vw_get_message(buf, &buflen)) // Non-blocking
    {
        numero_du_moteur = buf[1];
        angle = buf[5] + 10buf[4] + 100buf[3];
    }



et éventuellement


numero_du_moteur = buf[1]-'0';
angle = buf[5]-'0' + 10*(buf[4]-'0') + 100*(buf[3]-'0');



A tester...

Je teste ça des ce weekend (le M2 est juste un nom, pas une variable haha), en tout cas c'est beaucoup plus clair, merciiiii !!!!!