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?
cyberhs
November 25, 2015, 11:36am
3
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 :(.
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;
.
.
.
.
.