drop progmem support
This commit is contained in:
parent
cba09e7499
commit
5f3a1e2322
@ -59,11 +59,11 @@ static uint8_t *stringprint(uint8_t *p, char *s) {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static uint8_t *stringprint_P(uint8_t *p, const char *s, uint16_t maxlen=0) {
|
static uint8_t *stringprint(uint8_t *p, const char *s, uint16_t maxlen=0) {
|
||||||
// If maxlen is specified (has a non-zero value) then use it as the maximum
|
// If maxlen is specified (has a non-zero value) then use it as the maximum
|
||||||
// length of the source string to write to the buffer. Otherwise write
|
// length of the source string to write to the buffer. Otherwise write
|
||||||
// the entire source string.
|
// the entire source string.
|
||||||
uint16_t len = strlen_P(s);
|
uint16_t len = strlen(s);
|
||||||
if (maxlen > 0 && len > maxlen) {
|
if (maxlen > 0 && len > maxlen) {
|
||||||
len = maxlen;
|
len = maxlen;
|
||||||
}
|
}
|
||||||
@ -74,7 +74,7 @@ static uint8_t *stringprint_P(uint8_t *p, const char *s, uint16_t maxlen=0) {
|
|||||||
*/
|
*/
|
||||||
p[0] = len >> 8; p++;
|
p[0] = len >> 8; p++;
|
||||||
p[0] = len & 0xFF; p++;
|
p[0] = len & 0xFF; p++;
|
||||||
strncpy_P((char *)p, s, len);
|
strncpy((char *)p, s, len);
|
||||||
return p+len;
|
return p+len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -455,7 +455,6 @@ void Adafruit_MQTT::processPackets(int16_t timeout) {
|
|||||||
|
|
||||||
while (elapsed < (uint32_t)timeout) {
|
while (elapsed < (uint32_t)timeout) {
|
||||||
Adafruit_MQTT_Subscribe *sub = readSubscription(timeout - elapsed);
|
Adafruit_MQTT_Subscribe *sub = readSubscription(timeout - elapsed);
|
||||||
|
|
||||||
if (sub) {
|
if (sub) {
|
||||||
//Serial.println("**** sub packet received");
|
//Serial.println("**** sub packet received");
|
||||||
if (sub->callback_uint32t != NULL) {
|
if (sub->callback_uint32t != NULL) {
|
||||||
@ -474,12 +473,12 @@ void Adafruit_MQTT::processPackets(int16_t timeout) {
|
|||||||
}
|
}
|
||||||
else if (sub->callback_buffer != NULL) {
|
else if (sub->callback_buffer != NULL) {
|
||||||
// huh lets do the callback in buffer mode
|
// huh lets do the callback in buffer mode
|
||||||
//serial.print("*** calling buffer callback with : "); serial.println(data);
|
//Serial.print("*** calling buffer callback with : "); Serial.println((char *)sub->lastread);
|
||||||
sub->callback_buffer((char *)sub->lastread, sub->datalen);
|
sub->callback_buffer((char *)sub->lastread, sub->datalen);
|
||||||
}
|
}
|
||||||
else if (sub->callback_io != NULL) {
|
else if (sub->callback_io != NULL) {
|
||||||
// huh lets do the callback in io mode
|
// huh lets do the callback in io mode
|
||||||
//serial.print("*** calling io instance callback with : "); serial.println(data);
|
//Serial.print("*** calling io instance callback with : "); Serial.println((char *)sub->lastread);
|
||||||
((sub->io_feed)->*(sub->callback_io))((char *)sub->lastread, sub->datalen);
|
((sub->io_feed)->*(sub->callback_io))((char *)sub->lastread, sub->datalen);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -512,11 +511,11 @@ Adafruit_MQTT_Subscribe *Adafruit_MQTT::readSubscription(int16_t timeout) {
|
|||||||
if (subscriptions[i]) {
|
if (subscriptions[i]) {
|
||||||
// Skip this subscription if its name length isn't the same as the
|
// Skip this subscription if its name length isn't the same as the
|
||||||
// received topic name.
|
// received topic name.
|
||||||
if (strlen_P(subscriptions[i]->topic) != topiclen)
|
if (strlen(subscriptions[i]->topic) != topiclen)
|
||||||
continue;
|
continue;
|
||||||
// Stop if the subscription topic matches the received topic. Be careful
|
// Stop if the subscription topic matches the received topic. Be careful
|
||||||
// to make comparison case insensitive.
|
// to make comparison case insensitive.
|
||||||
if (strncasecmp_P((char*)buffer+4, subscriptions[i]->topic, topiclen) == 0) {
|
if (strncasecmp((char*)buffer+4, subscriptions[i]->topic, topiclen) == 0) {
|
||||||
DEBUG_PRINT(F("Found sub #")); DEBUG_PRINTLN(i);
|
DEBUG_PRINT(F("Found sub #")); DEBUG_PRINTLN(i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -601,9 +600,9 @@ uint8_t Adafruit_MQTT::connectPacket(uint8_t *packet) {
|
|||||||
// fill in packet[1] last
|
// fill in packet[1] last
|
||||||
|
|
||||||
#if MQTT_PROTOCOL_LEVEL == 3
|
#if MQTT_PROTOCOL_LEVEL == 3
|
||||||
p = stringprint_P(p, PSTR("MQIsdp"));
|
p = stringprint(p, "MQIsdp");
|
||||||
#elif MQTT_PROTOCOL_LEVEL == 4
|
#elif MQTT_PROTOCOL_LEVEL == 4
|
||||||
p = stringprint_P(p, PSTR("MQTT"));
|
p = stringprint(p, "MQTT");
|
||||||
#else
|
#else
|
||||||
#error "MQTT level not supported"
|
#error "MQTT level not supported"
|
||||||
#endif
|
#endif
|
||||||
@ -641,10 +640,10 @@ uint8_t Adafruit_MQTT::connectPacket(uint8_t *packet) {
|
|||||||
p++;
|
p++;
|
||||||
|
|
||||||
if(MQTT_PROTOCOL_LEVEL == 3) {
|
if(MQTT_PROTOCOL_LEVEL == 3) {
|
||||||
p = stringprint_P(p, clientid, 23); // Limit client ID to first 23 characters.
|
p = stringprint(p, clientid, 23); // Limit client ID to first 23 characters.
|
||||||
} else {
|
} else {
|
||||||
if (pgm_read_byte(clientid) != 0) {
|
if (pgm_read_byte(clientid) != 0) {
|
||||||
p = stringprint_P(p, clientid);
|
p = stringprint(p, clientid);
|
||||||
} else {
|
} else {
|
||||||
p[0] = 0x0;
|
p[0] = 0x0;
|
||||||
p++;
|
p++;
|
||||||
@ -655,15 +654,15 @@ uint8_t Adafruit_MQTT::connectPacket(uint8_t *packet) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (will_topic && pgm_read_byte(will_topic) != 0) {
|
if (will_topic && pgm_read_byte(will_topic) != 0) {
|
||||||
p = stringprint_P(p, will_topic);
|
p = stringprint(p, will_topic);
|
||||||
p = stringprint_P(p, will_payload);
|
p = stringprint(p, will_payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pgm_read_byte(username) != 0) {
|
if (pgm_read_byte(username) != 0) {
|
||||||
p = stringprint_P(p, username);
|
p = stringprint(p, username);
|
||||||
}
|
}
|
||||||
if (pgm_read_byte(password) != 0) {
|
if (pgm_read_byte(password) != 0) {
|
||||||
p = stringprint_P(p, password);
|
p = stringprint(p, password);
|
||||||
}
|
}
|
||||||
|
|
||||||
len = p - packet;
|
len = p - packet;
|
||||||
@ -683,7 +682,7 @@ uint16_t Adafruit_MQTT::publishPacket(uint8_t *packet, const char *topic,
|
|||||||
|
|
||||||
// calc length of non-header data
|
// calc length of non-header data
|
||||||
len += 2; // two bytes to set the topic size
|
len += 2; // two bytes to set the topic size
|
||||||
len += strlen_P(topic); // topic length
|
len += strlen(topic); // topic length
|
||||||
if(qos > 0) {
|
if(qos > 0) {
|
||||||
len += 2; // qos packet id
|
len += 2; // qos packet id
|
||||||
}
|
}
|
||||||
@ -706,7 +705,7 @@ uint16_t Adafruit_MQTT::publishPacket(uint8_t *packet, const char *topic,
|
|||||||
} while ( len > 0 );
|
} while ( len > 0 );
|
||||||
|
|
||||||
// topic comes before packet identifier
|
// topic comes before packet identifier
|
||||||
p = stringprint_P(p, topic);
|
p = stringprint(p, topic);
|
||||||
|
|
||||||
// add packet identifier. used for checking PUBACK in QOS > 0
|
// add packet identifier. used for checking PUBACK in QOS > 0
|
||||||
if(qos > 0) {
|
if(qos > 0) {
|
||||||
@ -743,7 +742,7 @@ uint8_t Adafruit_MQTT::subscribePacket(uint8_t *packet, const char *topic,
|
|||||||
// increment the packet id
|
// increment the packet id
|
||||||
packet_id_counter++;
|
packet_id_counter++;
|
||||||
|
|
||||||
p = stringprint_P(p, topic);
|
p = stringprint(p, topic);
|
||||||
|
|
||||||
p[0] = qos;
|
p[0] = qos;
|
||||||
p++;
|
p++;
|
||||||
@ -774,7 +773,7 @@ uint8_t Adafruit_MQTT::unsubscribePacket(uint8_t *packet, const char *topic) {
|
|||||||
// increment the packet id
|
// increment the packet id
|
||||||
packet_id_counter++;
|
packet_id_counter++;
|
||||||
|
|
||||||
p = stringprint_P(p, topic);
|
p = stringprint(p, topic);
|
||||||
|
|
||||||
len = p - packet;
|
len = p - packet;
|
||||||
packet[1] = len-2; // don't include the 2 bytes of fixed header data
|
packet[1] = len-2; // don't include the 2 bytes of fixed header data
|
||||||
|
@ -49,7 +49,7 @@ class Adafruit_MQTT_FONA : public Adafruit_MQTT {
|
|||||||
|
|
||||||
bool connectServer() {
|
bool connectServer() {
|
||||||
char server[40];
|
char server[40];
|
||||||
strncpy_P(server, servername, 40);
|
strncpy(server, servername, 40);
|
||||||
#ifdef ADAFRUIT_SLEEPYDOG_H
|
#ifdef ADAFRUIT_SLEEPYDOG_H
|
||||||
Watchdog.reset();
|
Watchdog.reset();
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user