Pour mon projet je dois pouvoir envoier un packet UDP a mon arduino.
Dans ce packet ce trouve un string (ex: "hello arduino!"), mais pour pouvoir l'afficher dans ma console, je dois utiliser le code suivant:
for(int i=0; i < UDP_TX_PACKET_MAX_SIZE; i++) {
Serial.print(char(packetBuffer[i]));
}
Ma question est:
Est-il possible de créer un string et d'y rajouté des chars, comme:
Toutes les méthodes se valent... (append je ne l'utilise pas).
Sinon, quelle est la strcuture de la tramme udp ? s'il n'y a que des caractères affichables alors il ne faut pas se prendre la tête.
Serial.println((char *)packetBuffer);
Et si cela ne fonctionne pas :
Serial.println((char *) &packetBuffer[0]);
Sinon pour construire une chaine de caractères plusieurs méthodes :
char s[UDP_TX_PACKET_MAX_SIZE];
strcpy(s,""); // chaine vide
for (int i=0; i<UDP_TX_PACKET_MAX_SIZE; i++)
s_=(char)packetBuffer*;_ ou encore : _ strcat(s, (char)packetBuffer);* etc... Tout est valable. La chose importante et qu'il faut que la taille de la chaine soit suffisante pour y stocker les caractères sinon il va y avoir des effets de bords imprévisible. Quand on écrit : char *s="string"; il n'y a que 7 caractères de réservés. Le 8eme fait parti d'une autre variable. si on écrit :
*char s[256]; * on est certain d'avoir de la place pour 256 caractères._