Example project to publish messages to a MQTT-SN broker using the u-blox SARA-N200 NB-IoT modem

Dependencies:   MQTTSNPacket X-NUCLEO-SARA-N200

Committer:
KeystoneElectronic
Date:
Thu Aug 23 11:32:34 2018 +0200
Revision:
12:9a2dab9b927d
Parent:
1:70b751b7a189
Update readme

Who changed what in which revision?

UserRevisionLine numberNew contents of line
keystone.electronic.solutions@gmail.com 1:70b751b7a189 1 #if !defined(MQTTSOCKET_H)
keystone.electronic.solutions@gmail.com 1:70b751b7a189 2 #define MQTTSOCKET_H
keystone.electronic.solutions@gmail.com 1:70b751b7a189 3
keystone.electronic.solutions@gmail.com 1:70b751b7a189 4 #include "MQTTmbed.h"
keystone.electronic.solutions@gmail.com 1:70b751b7a189 5 #include "udp_interface.h"
keystone.electronic.solutions@gmail.com 1:70b751b7a189 6
keystone.electronic.solutions@gmail.com 1:70b751b7a189 7 class MQTTSNUDP
keystone.electronic.solutions@gmail.com 1:70b751b7a189 8 {
keystone.electronic.solutions@gmail.com 1:70b751b7a189 9 int mSocket;
keystone.electronic.solutions@gmail.com 1:70b751b7a189 10 UDPinterface *mInterface;
keystone.electronic.solutions@gmail.com 1:70b751b7a189 11 char mHost[128];
keystone.electronic.solutions@gmail.com 1:70b751b7a189 12 int mPort;
keystone.electronic.solutions@gmail.com 1:70b751b7a189 13
keystone.electronic.solutions@gmail.com 1:70b751b7a189 14 public:
keystone.electronic.solutions@gmail.com 1:70b751b7a189 15
keystone.electronic.solutions@gmail.com 1:70b751b7a189 16 MQTTSNUDP(UDPinterface *interface) : mSocket(-1), mInterface(interface), mPort(-1)
keystone.electronic.solutions@gmail.com 1:70b751b7a189 17 {
keystone.electronic.solutions@gmail.com 1:70b751b7a189 18 }
keystone.electronic.solutions@gmail.com 1:70b751b7a189 19
keystone.electronic.solutions@gmail.com 1:70b751b7a189 20 int connect(char* hostname, int port, int timeout=1000)
keystone.electronic.solutions@gmail.com 1:70b751b7a189 21 {
keystone.electronic.solutions@gmail.com 1:70b751b7a189 22 strncpy(mHost, hostname, 128);
keystone.electronic.solutions@gmail.com 1:70b751b7a189 23 mPort = port;
keystone.electronic.solutions@gmail.com 1:70b751b7a189 24 mSocket = mInterface->connect(hostname, port);
keystone.electronic.solutions@gmail.com 1:70b751b7a189 25 return mSocket;
keystone.electronic.solutions@gmail.com 1:70b751b7a189 26 }
keystone.electronic.solutions@gmail.com 1:70b751b7a189 27
keystone.electronic.solutions@gmail.com 1:70b751b7a189 28 int read(unsigned char* buffer, int len, int timeout)
keystone.electronic.solutions@gmail.com 1:70b751b7a189 29 {
keystone.electronic.solutions@gmail.com 1:70b751b7a189 30 char rxHost[256];
keystone.electronic.solutions@gmail.com 1:70b751b7a189 31 int rxPort;
keystone.electronic.solutions@gmail.com 1:70b751b7a189 32 return mInterface->read(mSocket, rxHost, &rxPort, buffer, len, timeout);
keystone.electronic.solutions@gmail.com 1:70b751b7a189 33 }
keystone.electronic.solutions@gmail.com 1:70b751b7a189 34
keystone.electronic.solutions@gmail.com 1:70b751b7a189 35 int write(unsigned char* buffer, int len, int timeout)
keystone.electronic.solutions@gmail.com 1:70b751b7a189 36 {
keystone.electronic.solutions@gmail.com 1:70b751b7a189 37 return mInterface->write(mSocket, mHost, mPort, buffer, len, timeout);
keystone.electronic.solutions@gmail.com 1:70b751b7a189 38 }
keystone.electronic.solutions@gmail.com 1:70b751b7a189 39
keystone.electronic.solutions@gmail.com 1:70b751b7a189 40 int disconnect()
keystone.electronic.solutions@gmail.com 1:70b751b7a189 41 {
keystone.electronic.solutions@gmail.com 1:70b751b7a189 42 return mInterface->disconnect(mSocket);
keystone.electronic.solutions@gmail.com 1:70b751b7a189 43 }
keystone.electronic.solutions@gmail.com 1:70b751b7a189 44 };
keystone.electronic.solutions@gmail.com 1:70b751b7a189 45
keystone.electronic.solutions@gmail.com 1:70b751b7a189 46
keystone.electronic.solutions@gmail.com 1:70b751b7a189 47
keystone.electronic.solutions@gmail.com 1:70b751b7a189 48 #endif