Só para finalizar, no Brasil alguns estados possuem o telefone com um caractere a mais logo o nosso exemplo anterior de +556293841234 funciona perfeitamente, porém se alguém destes estados tentarem usar o sistema, não vai funcionar, pois eles possuem um número sobrando +5562938412345. Alterei o exemplo para o código abaixo, pensei que se jogar o \0 para o caractere padrão com 13 dígitos, ele enviaria os de 13 e quanto chegar algum com 14 ele iria substituir o \0 pelo caractere do numero e funcionaria em ambos.
Infelizmente essa ideia não funcionou, saberia alguma forma para resolver isso?
char mensagem[161]; // Tens de limitar o php a só enviar 160 caracteres.
char numero[15];
numero[13] = '\0';
unsigned char pointer = 0;
if (client.connected()) {
if(client.available()){ //temos um pedido.
//pegar na mensagem.
for (pointer = 0; pointer < 159; pointer++) {
mensagem[pointer] = client.read();
if(mensagem[pointer] == '|') break; //já temos a nossa mensagem salta do loop
} //end for
mensagem[pointer] = '\0'; //terminador... isto terá de ser verificado mais tarde quando enviares mensagens com menos de 160 caracteres.
//pegar no numero agora.
for (pointer = 0; pointer <14; pointer ++) {
mensagem[pointer] = client.read();
}
message[14] = '\0';
Serial.print("mensagem ");
Serial.println(mensagem);
Serial.print("para o numero");
Serial.println(numero);
while(client.available()>0) client.read(); //isto é para libertar o que tens dentro do buffer... ou seja, a cada ligacão o php só envia um comando. Isto, pode ser mudado...
} //if available.
} //if connected