Commit Graph

60 Commits

Author SHA1 Message Date
ladyada
82873050b6 add error output on dropped packets, and mqtt w/callbacks example 2016-07-08 17:16:07 -04:00
ladyada
4269d87492 callback support 2016-07-08 17:01:40 -04:00
ladyada
9ed79466b2 shorter suback timeout 2016-07-08 15:21:47 -04:00
ladyada
5d133c3852 updated publish half for long packet sendings! 2016-07-06 18:32:21 -04:00
ladyada
b26b4eb32c max receivable MQTT packet is 16 bits (tested with 300 byte packet receive)
also fixd buffer printer to have 16 bit length
2016-07-06 17:20:02 -04:00
Todd Treece
39f1169559 increase connect timeout to allow for 5 second ban response 2016-06-28 14:53:08 -04:00
ladyada
ab1a0938b9 smarter packet reading makes for faster publish-handling! also, retries subscriptions 3 times 2016-05-18 15:23:41 -04:00
ladyada
8f595cdb95 properly process packets until you get the one you want (prep for callback w/good retain support) 2016-02-08 23:36:25 -05:00
ladyada
79dd62468f add support for reading retained subscriptions (only works for one subscription since the pub packet gets eaten otherwise 2016-02-01 18:42:28 -05:00
Stuart Feichtinger
0d8c841af5 Clean up duplicate functions 2016-01-31 15:33:58 -06:00
Stuart Feichtinger
2876ac43dd Added generic buffer
Crashes when publishing to more than one stream
2016-01-17 19:27:20 -06:00
Kevin Townsend
9fb6fbf1e8 Updated WICED Feather macro 2016-01-05 16:11:27 +09:00
Kevin Townsend
bb7cdb5059 Added ARDUINO_STM32F2_FEATHER check 2015-12-03 11:49:10 +01:00
ladyada
dbc989ac1d essentially, add Zero support by shimming in the missing functions 2015-11-11 10:22:26 -05:00
ladyada
7c2b558ee9 ping flushes input, tries multiple times 2015-10-22 13:03:55 -04:00
Todd Treece
2aed9ae737 remove defaults from mqtt constructors 2015-10-22 10:09:16 -04:00
Todd Treece
371b16bfab Merge branch 'master' of github.com:adafruit/Adafruit_MQTT_Library into 3.1.1 2015-10-21 15:38:55 -04:00
ladyada
632c2f2cfe back compatible ping() 2015-10-21 00:15:27 -04:00
ladyada
286245ab62 compile fix & #ifdef the MQTT version 2015-10-21 00:05:46 -04:00
ladyada
15713af468 switch to MQTT 3.1.1 by default 2015-10-20 23:51:03 -04:00
Todd Treece
9a11d83cf5 removes client id from all example sketches 2015-10-05 15:26:02 -04:00
Todd Treece
b48265faed support anon auth & generated client id in constructor 2015-10-05 14:54:37 -04:00
Todd Treece
16da46aece renames disconnect to disconnectServer and adds disconnectPacket 2015-10-05 14:07:49 -04:00
Todd Treece
b9c9a28883 adds packet ids for publish QoS > 0
also adds packet id counter so packet ids aren't
static values. this is a step in the direction
of QoS 1 support
2015-10-05 11:21:05 -04:00
Todd Treece
765a2feaff remove broken while loop from ping() 2015-10-05 10:38:09 -04:00
Todd Treece
0fbd734646 adds unsubscribe & unsubscribePacket functions 2015-10-05 10:33:33 -04:00
Todd Treece
e9e154ab52 adds will support to the connect packet 2015-10-05 09:45:27 -04:00
Todd Treece
e60be3e972 adds unsubscribePacket method def 2015-10-05 09:27:31 -04:00
Todd Treece
b2a198af5a adds unsubscribe() method def 2015-10-05 09:26:06 -04:00
Todd Treece
b9a04c8be5 adds will() method def 2015-10-05 09:25:07 -04:00
Todd Treece
78d733aee3 define the missing MQTT control packets 2015-10-05 09:14:17 -04:00
Todd Treece
4f3466bdbf comment out MQTT_DEBUG 2015-10-02 17:13:35 -04:00
Todd Treece
913cce41af adds zero byte client id option for 3.1.1 2015-10-02 17:10:16 -04:00
Todd Treece
ea779b1daa allow user to define MQTT KEEPALIVE in sketch 2015-10-02 10:43:11 -04:00
Todd Treece
a0520d3265 default to MQTT_PROTOCOL_LEVEL 4 2015-10-01 12:00:56 -04:00
Matthijs Kooijman
3a1bef8318 Default to qos = 0 in Adafruit_MQTT::publish()
This was already the case for the Adafruit_MQTT_Publish constructor, so
this makes things a bit more consistent when using the publish() method
directly.
2015-08-02 11:51:51 +02:00
Matthijs Kooijman
5d101b8a7b Allow passing __FlashStringHelper* in addition to char* everywhere
Arduino supplies the F() macro that allows easily putting strings in
PROGMEM and marking them with a custom type. Essentially,
a __FlashStringHelper* is just the same char*, but cast to a different
type, which allows for example Serial.print() to automatically handle
both PROGMEM and normal strings.

By letting this library accept __FlashStringHelper* as well, you can
use easily use the F() macro and reduce the chance of mixing up normal
and PROGMEM pointers.
2015-08-02 11:51:43 +02:00
Matthijs Kooijman
22b77ecb68 Add Adafruit_MQTT_Subscribe::datalen
This stores the number of valid bytes in lastread. Having access to this
information allows transmitting binary data as well, containing embedded
nul bytes.
2015-08-02 11:51:43 +02:00
Matthijs Kooijman
22c3533745 Fix type of Adafruit_MQTT_Subscribe::lastread
The lastread array stores the data bytes of the most recently read
received packet. It was previously declared as an array of pointers to
uint8_t, instead of an array of uint8_t, which obviously was not the
intention. Because the examples explicitely cast to (char*) for printing
(because Print::println(uint8_t[]) is not defined) and a pointer is at
least as big as uint8_t and memcpy uses void*, this problem did not show
up before.
2015-08-02 11:49:34 +02:00
Matthijs Kooijman
06767dc4b2 Clarify that subscribe() must be called before connect() 2015-07-27 20:32:38 +02:00
Matthijs Kooijman
b996b096b3 Fix Adafruit_MQTT:subscribe()
This method contained a loop that checked for an existing subscription,
but it only printed a debug message if so. Now, it immediately returns
true if the subscription is already registered.

When this method succesfully adds a subscription, it was documented to
return true, but the actual code did not return anything in this case,
resulting in a compiler warning. In practice, on AVR, the value of the
first argument would be returned, which likely evaluates as true, so
it is likely it actually seemed to work fine.
2015-07-27 20:32:38 +02:00
Matthijs Kooijman
6879df86f6 Add Adfruit_MQTT::connectErrorString() method
This easily allows printing error messages without having to hard-code
return values in the sketch and makes the example sketches a bit more
concise.
2015-07-27 20:32:36 +02:00
Matthijs Kooijman
73f5be4e5c Use const pointers for payload
The payload data is never modified by the library, so using const is
possible without any further changes. Using const allows using a string
literal, or String::c_str() as the payload.
2015-07-27 20:23:55 +02:00
Tony DiCola
23f919adc3 Merge connected branch, bump to version 0.9.3 2015-07-14 15:54:04 -07:00
Tony DiCola
9b92bb379c Add date and time to client ID generation for more unique value. 2015-07-06 13:43:52 -07:00
Tony DiCola
643c906aa6 Add connected() function to MQTT class. Update examples with robust reconnect logic. 2015-07-05 14:29:13 -07:00
Tony DiCola
08f05456ec Update default keepalive to 5 minutes, add reset on ping fail to CC3k sketch. 2015-06-12 12:59:14 -07:00
Tony DiCola
6a740d4004 Cleanup and prepare for publishing. 2015-06-10 15:38:34 -07:00
Tony DiCola
d7a6433b81 Add Adafruit_MQTT_Client class that implements MQTT code for generic Arduino client. Add ESP8266 example using new MQTT client class. Fix bugs with using library on ESP8266 (move CC3000 to header-only class). 2015-06-08 01:48:25 -07:00
Tony DiCola
2fa9804b48 Merge cleanup changes and update README todo. 2015-06-05 13:10:22 -07:00