Comment passer correctement un char, en parametre d'une fonction
Bonjour à tous,
J'ai encore du mal a comrpendre comment passer correctement un char dans une fonction.
EN gros
je déclare un char
Je recupère ce que je tape dans mon terminal
Je recupere le deuxième et troiseme parametre ( 3 et +41223456677)
Je regarde si posi (3) n'a pas deux caractere, soit n'est pas plus grand que 9
J'appelle la fonction WritePhoneNum(byte posi, char number) qui prend en parametre la position et le nuemro de téléphone
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
if(!strncmp(inSerial,"dirw",4)){
// Je tape dans mon terminal driw 3 +41223456677
//Je recupère le deuxieme parametre 3 et le numero
// qui préalablement déclaré ainsi
// char posi[2]; char number[20];
sscanf(inSerial,"%*s%s%s",posi, number);
Serial.print(posi[0]);
// Si posi a plus d'un caractere, comme par exemple 22
if(strlen(posi) > 1){
Serial.print(F("The position must have one caracter (1-9)"));
}else{
// Si non affiche le numero a enregistré
Serial.print(number);
WritePhoneNum((byte)(posi[0] - '0'), number);
}
} |
Je ne comprends pa spourquoi, au niveau de ma fonction WritePhoneNum() j'ai un message d'erreur
Citation:
"Invalid conversion from 'char*' to 'char'
Je ne comprends pa spourquoi, prce que toutes les ariable concernée sont des char, donc pourquoi il y a t il un probleme de convertion?
Voici la fonction en question
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
// write phone number to the SMS directory
void WritePhoneNum(byte posi, char number){
#ifdef DEBUG
Serial.println(F("\nWRITING TO THE DIRECTORY"));
Serial.println(F("--------------------------------"));
#endif
// Ceci est peut etre inutile. je ée fais deux fois. Je verrai plus tard pour suprimer...
if(posi >= 1 && posi <= 9) {
Serial.print(number);
if(strlen(number) > 2){
gsm.WritePhoneNumber(posi, number);
#ifdef DEBUG
Serial.print(F("The phone number "));
Serial.print(number);
Serial.print(F(" has been recorded at the position "));
Serial.println(posi);
#endif
}else{
#ifdef DEBUG
Serial.print(F("The phone number must have at least 3 caracteres "));
#endif
}
} else {
Serial.println(F("Entrer une valeur entre 1 et 9")); // pas bon
}
Serial.println("");
#ifdef DEBUG
enterCommand();
#endif
} |