Bonjour,

Je charhe a convertir un array en byte.

mon array (char) est la suivante

dird3
Pour etre complet, je dois séparé le 3 de dird.
Je le fais comme ca
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
if(!strncmp(inSerial,"dird",3)){
      #ifdef DEBUG
        Serial.println(F("DELETE IN THE PHONE DIRECTORY"));
        Serial.println(F("--------------------------------"));
        Serial.println(F("In progress, wait..."));
      #endif
 
       // Ici j'affiche le trois
       Serial.println(inSerial[4]);
 
      //En suite j'ai besoin de ce trois pour une fonction
      gsm.DelPhoneNumber(inSerial[4]);
 
// Il devrait effacer le numero qui se trouve a la position 3
 
}
Il devrait effacer le numero qui se trouve a la position 3, simplement ca ne marche pas.
Si je fais ca, ca marche
Le truc c'est que la fonction gsm.DelPhoneNumber(byte position);
attend un byte dont voici un extrait
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
char GSM::DelPhoneNumber(byte position)
{
  char ret_val = -1;
 
  if (position == 0) return (-3);
  if (CLS_FREE != GetCommLineStatus()) return (ret_val);
  SetCommLineStatus(CLS_ATCMD);
  ret_val = 0; // phone number was not written yet
Donc si j'ai bien compris je dois transformé la valeur de inSerial[4] (3) pour l'avoir en byte, mais qi doit toujours etre trois, forcément.

Et la je ne sais pas comment faire. J'ai essayé ceci
byte tot = (byte)inSerial[4];

Mais sans succes.

Comment puis je faire pour que 'position' de ma fonction DelPhoneNumber() recupère le bon numero??

Milles mercis