Bonjour,
J'essayer d'envoyer un SMS.
Pour cela je dois faire ceci qui fonctionne
(Attention, je n'ai pas encore travailler sur le return true, Donc il retourne toujours true...)
boolean SendSMS(char *number_str, char *message_str)
{
Serial.println("> Sending a SMS");
if(strstr(read_AT_string("AT",4000),"OK") != NULL)
{
if(debug_buffer) Serial.println(buffer);
//Set message mode
read_AT_string("AT+CMGF=1",3000);
if(debug_buffer) Serial.println(buffer);
//Send message
read_AT_string("AT+CMGS=\"+4170000000\"",300);
if(debug_buffer) Serial.println(buffer);
read_AT_string(message_str,1000);
Serial1.write(26);
if(debug_buffer) Serial.println(buffer);
}
return true;
}
Le truc c'est que je souhaite utiliser le parametre number_str.
Pour cela, j'ai modifier la fonction ainsi
boolean SendSMS(char *number_str, char *message_str)
{
char *ch;
Serial.println("> Sending a SMS");
if(strstr(read_AT_string("AT",4000),"OK") != NULL)
{
if(debug_buffer) Serial.println(buffer);
//Set message mode
read_AT_string("AT+CMGF=1",3000);
if(debug_buffer) Serial.println(buffer);
//Send message
sprintf(ch, "AT+CMGS=\"%s\"", number_str);
read_AT_string(ch,3000); // Send the command set in ch
read_AT_string(message_str,1000);
Serial1.write(26);
if(debug_buffer) Serial.println(buffer);
}
return true;
}
Si le message a bien été envoyé ca doit reurner true, ou false, si non. Mais ca j'en suis pas encore là.
Ceci ne fonctionne pas
sprintf(ch, "AT+CMGS=\"%s\"", number_str);
La premiere question c'est les
%c
J'ai vu %s, %d et je en sais pas lequel utiliser.
J'ai lu cecu ;
http://www.cplusplus.com/reference/cstdio/printf/
donc je suppose que je dois utiliser le %s mais ca ne fionctionne toujours.
Je vines de constater que le code moline/s'arrete avant
sprintf(ch, "AT+CMGS=\"%s\"", number_str);
Pourriez m'éclairecir là-dessus?
Mercisssss