From acc9fe500e4cac80707e526b95f4fdcddb9082c5 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Wed, 26 Aug 2015 22:15:55 +0100 Subject: [PATCH] ifdef PROGMEM references to support ESP8266/Galileo etc --- PubSubClient/PubSubClient.cpp | 13 +++++++------ PubSubClient/PubSubClient.h | 2 ++ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/PubSubClient/PubSubClient.cpp b/PubSubClient/PubSubClient.cpp index 28a2788..abd2556 100755 --- a/PubSubClient/PubSubClient.cpp +++ b/PubSubClient/PubSubClient.cpp @@ -275,7 +275,7 @@ boolean PubSubClient::publish(char* topic, uint8_t* payload, unsigned int plengt } return false; } - +#ifdef PROGMEM boolean PubSubClient::publish_P(char* topic, uint8_t* PROGMEM payload, unsigned int plength, boolean retained) { uint8_t llen = 0; uint8_t digit; @@ -307,19 +307,20 @@ boolean PubSubClient::publish_P(char* topic, uint8_t* PROGMEM payload, unsigned buffer[pos++] = digit; llen++; } while(len>0); - + pos = writeString(topic,buffer,pos); - + rc += _client->write(buffer,pos); - + for (i=0;iwrite((char)pgm_read_byte_near(payload + i)); } - + lastOutActivity = millis(); - + return rc == tlen + 4 + plength; } +#endif boolean PubSubClient::write(uint8_t header, uint8_t* buf, uint16_t length) { uint8_t lenBuf[4]; diff --git a/PubSubClient/PubSubClient.h b/PubSubClient/PubSubClient.h index 51e2382..a896c9d 100755 --- a/PubSubClient/PubSubClient.h +++ b/PubSubClient/PubSubClient.h @@ -76,7 +76,9 @@ public: boolean publish(char *, char *); boolean publish(char *, uint8_t *, unsigned int); boolean publish(char *, uint8_t *, unsigned int, boolean); +#ifdef PROGMEM boolean publish_P(char *, uint8_t PROGMEM *, unsigned int, boolean); +#endif boolean subscribe(char *); boolean subscribe(char *, uint8_t qos); boolean unsubscribe(char *);