comment convertir un 'uint16_t *bearer_status;' en int

Bonjour à tous,

Je m'excuse si ma question est bête, mais l'* dans uint16_t *bearer_status; me met dans le doute.

En gros j'utilise une fnction , parseReply, qui demande un uint16_t dans 2ème paramètre.
Cette fonction me permets d'avor la réponse à la commandr SAPBR=2,1. Le status (la réponse) est stockée dans la variable bearer_status.
Puis, avec un switch, j'affiche le résultat.

uint16_t *bearer_status;
parseReply(F("+SAPBR:"), bearer_status, ',', 1);

  switch (bearer_status)
  {
    case 0:
      DEBUG_PRINTLN(F(", Connecting"));
      return false;
      break;
    case 1:
      DEBUG_PRINTLN(F(", Connected"));
      return true;
      break;
    case 2:
      DEBUG_PRINTLN(F(", Closing"));
      return false;
      break;
    case 3:
      DEBUG_PRINTLN(F(", Closed"));
      return false;
      break;
    default:
      DEBUG_PRINTLN(F(", Error"));
      return false;
  }

Le message d'erreur que mon terminal affiche, c'est que switch n'accepte que les int

/Users/pierrot/Documents/Arduino/libraries/Adafruit_FONA/Adafruit_FONA.cpp:2370:24: error: switch quantity not an integer
switch (bearer_status)
^

il faudrait que mon unint16_t puisses etre converti en in.

Je me suis dit que je pouvais le faire ainsi:

int conv;
conv = bearer_status;

Mais ce qui me met dans le doute, c'est que bearer_status, a un peu comme un pointer :confused:

uint16_t *bearer_status;

Comment dois-je interpreter ceci et surtout pour utiliser bearer_status dans un switch....

Voyez-vous?

Mercis....

switch (*bearer_status)

Bonjour,

bearer_status est un pointeur.
Je ne connais pas ta fonction parseReply, mais à mon avis il doit être initialisé vers un uint16_t

uint16 status;
uint16_t *bearer_status=&status;
parseReply(F("+SAPBR:"), bearer_status, ',', 1);

 switch (status)
 {