The Cayenne MQTT mbed Library provides functions to easily connect to the Cayenne IoT project builder.

Dependents:   Cayenne-ESP8266Interface Cayenne-WIZnet_Library Cayenne-WIZnetInterface Cayenne-X-NUCLEO-IDW01M1 ... more

Committer:
jburhenn
Date:
Fri Oct 28 13:49:11 2016 -0600
Revision:
12:14ca62cf33b8
Parent:
9:b18a14c4c282
Child:
13:2f481f05c824
Added info for supporting additional platforms.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jburhenn 5:363211a8995f 1 # Cayenne MQTT mbed Library
jburhenn 5:363211a8995f 2 The Cayenne MQTT mbed Library provides functions to easily connect to the Cayenne IoT project builder.
jburhenn 0:09ef59d2d0f7 3
jburhenn 0:09ef59d2d0f7 4 This library bundles the [Eclipse Paho MQTT C/C++ client](https://github.com/eclipse/paho.mqtt.embedded-c).
jburhenn 0:09ef59d2d0f7 5
jburhenn 0:09ef59d2d0f7 6 ## Repository Structure
jburhenn 0:09ef59d2d0f7 7 - **src** - The library source code.
jburhenn 0:09ef59d2d0f7 8 - **CayenneUtils** - Common code for creating and parsing Cayenne topics and payloads. This code can be used with any MQTT client.
jburhenn 0:09ef59d2d0f7 9 - **CayenneMQTTClient** - Platform independent Cayenne C++ library using the Paho MQTT C++ library. To create platform specific versions of this library networking and timer code for the platform are required.
jburhenn 0:09ef59d2d0f7 10 - **MQTTCommon** - Common Paho MQTT C code used by both the C and C++ libraries.
jburhenn 0:09ef59d2d0f7 11 - **Platform** - Platform specific networking and timer code, as well as test and example applications.
jburhenn 5:363211a8995f 12
jburhenn 12:14ca62cf33b8 13 ## Adding Additional Platforms
jburhenn 12:14ca62cf33b8 14 The Cayenne MQTT client code is platform independent but it requires platform specific code to create timers and to read and write data over the network. To add support for additional platforms you will need to create platform specific timer and networking code.
jburhenn 12:14ca62cf33b8 15 - **Timer** - This class is used to create countdown timers. It is described in the [TimerInterface.h](https://github.com/myDevicesIoT/Cayenne-MQTT-mbed/blob/master/src/CayenneMQTTClient/TimerInterface.h) file. An example implementation for mbed is in the [mbed/MQTTTimer.h](https://github.com/myDevicesIoT/Cayenne-MQTT-mbed/blob/master/src/Platform/mbed/MQTTTimer.h) file.
jburhenn 12:14ca62cf33b8 16 - **Network** - This class is used to read and write data over the network. It is described in the [NetworkInterface.h](https://github.com/myDevicesIoT/Cayenne-MQTT-mbed/blob/master/src/CayenneMQTTClient/NetworkInterface.h) file. An example implementation for mbed is in the [mbed/MQTTNetwork.h](https://github.com/myDevicesIoT/Cayenne-MQTT-mbed/blob/master/src/Platform/mbed/MQTTNetwork.h) file.
jburhenn 12:14ca62cf33b8 17
jburhenn 12:14ca62cf33b8 18 After creating new platform specific timer and networking classes you can use them by passing them as template parameters to the [MQTTClient](https://github.com/myDevicesIoT/Cayenne-MQTT-mbed/blob/master/src/CayenneMQTTClient/CayenneMQTTClient.h) class.
jburhenn 12:14ca62cf33b8 19
jburhenn 9:b18a14c4c282 20 ## Cayenne MQTT Libraries
jburhenn 5:363211a8995f 21 - **[Cayenne-MQTT-C](https://github.com/myDevicesIoT/Cayenne-MQTT-C)** - C version of the Cayenne MQTT Library.
jburhenn 5:363211a8995f 22 - **[Cayenne-MQTT-CPP](https://github.com/myDevicesIoT/Cayenne-MQTT-CPP)** - C++ version of the Cayenne MQTT Library.
jburhenn 9:b18a14c4c282 23 - **[Cayenne-MQTT-Arduino](https://github.com/myDevicesIoT/Cayenne-MQTT-Arduino)** - Arduino version of the Cayenne MQTT Library.
jburhenn 9:b18a14c4c282 24 - **[Cayenne-MQTT-mbed](https://github.com/myDevicesIoT/Cayenne-MQTT-mbed)** - mbed version of the Cayenne MQTT Library.
jburhenn 5:363211a8995f 25