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

Fork of Cayenne-MQTT-mbed by myDevicesIoT

Committer:
pferland
Date:
Tue Apr 25 15:32:32 2017 +0000
Revision:
24:686d9ed1d192
Parent:
14:44fb1e820e15
Small changes for compatibility with MTSAS socket library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jburhenn 5:363211a8995f 1 # Cayenne MQTT mbed Library
jburhenn 14:44fb1e820e15 2 The Cayenne MQTT mbed Library provides functions to easily connect to the Cayenne IoT project builder. This library is also available on the mbed developer site [here](https://developer.mbed.org/teams/myDevicesIoT/code/Cayenne-MQTT-mbed/).
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 13:2f481f05c824 24 - **[Cayenne-MQTT-mbed](https://github.com/myDevicesIoT/Cayenne-MQTT-mbed)** - mbed version of the Cayenne MQTT Library. This is also available on the mbed developer site [here](https://developer.mbed.org/teams/myDevicesIoT/code/Cayenne-MQTT-mbed/).
jburhenn 5:363211a8995f 25