Si ho contattato l'autore che mi ha dato qualche suggerimento, penso di essere riuscito ad implementare quasi tutto mi manca di capire come implementare un metodo write in InetGSM che faccia le stesse cose di write nell'ethernetClient ti posto la parte di codice che mi dà problemi:
boolean PubSubClientGSM::write(uint8_t header, uint8_t* buf, uint16_t length) {
uint8_t lenBuf[4];
uint8_t llen = 0;
uint8_t digit;
uint8_t pos = 0;
uint8_t rc;
uint8_t len = length;
do {
digit = len % 128;
len = len / 128;
if (len > 0) {
digit |= 0x80;
}
lenBuf[pos++] = digit;
llen++;
} while(len>0);
rc = _client->write(header);
rc += _client->write(lenBuf,llen);
rc += _client->write(buf,length);
lastOutActivity = millis();
return (rc == 1+llen+length);
}
praticamente la parte _client->write(); richiama,nel codice originale,il metodo write di ethernetClient,infatto_client è un oggetto di tale classe io dovrei far funzionare questa parte di codice inserendo un metodo, in inetGSM, che faccia la stessa cosa di quello della ethernet.
Ti passo il link della libreria originale:
https://github.com/knolleary/pubsubclient/downloads
Spero vivamente che tu mi possa dare una mano per me è molto importante portare a termine questa cosa... =(