utilizzo delle macro

Chi puo' spiegarmi come fare ad utilizzare una variabile in una macro?

questo e' il passo di programma

fona.setGPRSNetworkSettings(F("pippo.pluto.it"), F(""), F("")); // - setta uil colegamento ad internet

devo inserire il valore di una variabile al posto di "pippo.pluto.it"

Nel file xxxx.h la funzione e':

void setGPRSNetworkSettings(const __FlashStringHelper *apn, const __FlashStringHelper *username=0, const __FlashStringHelper *password=0);

Vi ringrazio in anticipo.

Ahimé, hai beccato un caso un po' spinoso... Com'è dichiarata la variabile che vuoi metterci?

Adadruit consiglia questa impostazione:

#define FONA_APN             "pippo.pluto.it"  
#define FONA_USERNAME        ""  
#define FONA_PASSWORD        ""
...
fona.setGPRSNetworkSettings(F(FONA_APN), F(FONA_USERNAME), F(FONA_PASSWORD));
...

Tuttavia, questo non risponde alla tua domanda, poiché agisce solo a livello di compilatore.

Poiché la funzione richiede espressamente della costanti, credo si debba intervenire sulla libreria, modificando la funzione.

Ho verificato la possibilità di modificare la libreria, ma non è banale, per com'è fatta questa :(.

link alla libreria?

questo e' il link alla libreria :
https://github.com/adafruit/Adafruit_FONA_Library/archive/master.zip

provato ad usa una variabile apn tipo char,tipo String
comunque l'unica alternativa, ho visto , e' quella di recuperare la funzione e ed eseguire i vari elementi separatamente.

queste sono le funzioni richiamate dalla funzione in esame:

su fona.h

// GPRS handling
  boolean enableGPRS(boolean onoff);
  uint8_t GPRSstate(void);
  boolean getGSMLoc(uint16_t *replycode, char *buff, uint16_t maxlen);
  boolean getGSMLoc(float *lat, float *lon);
  void setGPRSNetworkSettings(const __FlashStringHelper *apn, const __FlashStringHelper *username=0, const __FlashStringHelper *password=0);

su fona.cpp

void Adafruit_FONA::setGPRSNetworkSettings(const __FlashStringHelper *apn,
              const __FlashStringHelper *username, const __FlashStringHelper *password) {
  this->apn = apn;
  this->apnusername = username;
  this->apnpassword = password;
}

ho anche notato su fona.h questo ...

.
.
.
protected:
  int8_t _rstpin;
  uint8_t _type;

  char replybuffer[255];
  const __FlashStringHelper *apn;
  const __FlashStringHelper *apnusername;
  const __FlashStringHelper *apnpassword;
  boolean httpsredirect;
  const __FlashStringHelper *useragent;
.
.
.
.
.