11 #ifndef LOM2M_MQTT_BINDING_H
12 #define LOM2M_MQTT_BINDING_H
20 #include <ESP8266WiFi.h>
21 #include <PubSubClient.h>
77 mqtt_callback(
char* topic,
byte* payload,
unsigned int length);
118 catch (
const std::exception& e)
120 Serial.println(
"ERROR occured while adding request primitive to mqtt buffer");
121 Serial.println(e.what());
136 catch (
const std::exception& e)
138 Serial.println(
"ERROR occured while adding response primitive to mqtt buffer");
139 Serial.println(e.what());
232 String topicString = String(topicChar);
239 Serial.println(
"Parsing topic: ");
240 Serial.println(topic.c_str());
252 for (
int sl, idx = 0; idx < (int)topic.length(); idx = sl + 1)
254 sl = topic.indexOf(
'/', idx);
262 if (sl < topic.length() - 1)
268 String name = topic.substring(idx, sl);
270 Serial.print(
"Member: ");
271 Serial.print(member);
272 Serial.print(
", name: ");
273 Serial.println(name.c_str());
279 else if (member == 3)
283 else if (member == 4)
285 if (name.equalsIgnoreCase(F(
"json")))
310 for (
int sl, idx = 0; idx < (int)uri.length(); idx = sl + 1)
312 sl = uri.indexOf(
'/', idx);
320 if (sl < uri.length() - 1)
326 String target = uri.substring(idx, sl);
327 if (target.equals(
"~"))
334 Serial.print(
"target ID: ");
335 Serial.println(target.c_str());
337 this->m_target = target;
ResponsePrimitive * response
Definition: Notify.cpp:100
Definition: mqttBinding.h:177
static void sendRequest(RequestPrimitive &request, ResponsePrimitive *response)
Definition: mqttBinding.cpp:391
static void processFirstPendingRequest()
Definition: mqttBinding.cpp:285
static void sendResponse(ResponsePrimitive &response)
Definition: mqttBinding.h:201
void enableResponseFlag()
Definition: mqttBinding.h:364
void enableRequestFlag()
Definition: mqttBinding.h:359
bool parseTopicString(String &topic)
Definition: mqttBinding.h:236
void disableResponseFlag()
Definition: mqttBinding.h:373
bool m_req
Definition: mqttBinding.h:206
String m_source
Definition: mqttBinding.h:203
bool parseTopic(char *topicChar)
Definition: mqttBinding.h:230
void setContentType(const String &m_contentType)
Definition: mqttBinding.h:226
bool m_resp
Definition: mqttBinding.h:207
void setTarget(const String &target)
Definition: mqttBinding.h:401
const String & getSource()
Definition: mqttBinding.h:378
bool isResponse()
Definition: mqttBinding.h:392
String m_contentType
Definition: mqttBinding.h:205
String getTopicAsString()
Definition: mqttBinding.h:406
const String & getTarget()
Definition: mqttBinding.h:383
bool isRequest()
Definition: mqttBinding.h:388
String m_target
Definition: mqttBinding.h:204
void disableRequestFlag()
Definition: mqttBinding.h:369
void setTargetFromUri(const String &uri)
Definition: mqttBinding.h:308
void setResponseFlag(String &topic)
Definition: mqttBinding.h:351
void init()
Definition: mqttBinding.h:210
const String & getContentType()
Definition: mqttBinding.h:222
void setSource(const String &source)
Definition: mqttBinding.h:397
void setRequestFlag(String &topic)
Definition: mqttBinding.h:343
MqttTopic()
Definition: mqttBinding.h:218
Definition: RequestPrimitive.h:41
Definition: ResponsePrimitive.h:49
#define CONF_MQTTS_GENERIC_REQ_TOPIC_BASE
Definition: configuration.h:108
#define CONF_MQTTS_GENERIC_RESP_TOPIC_BASE
Definition: configuration.h:109
#define CONF_MQTTS_GENERIC_TOPIC_END
Definition: configuration.h:110
WiFiClientSecure * espClient
Definition: lom2m-server-base.h:54
void loop()
Definition: lom2m-server-base.h:261
MqttTopic mqttTopic
Definition: mqttBinding.cpp:191
bool mqtt_send_response(PubSubClient &client, ResponsePrimitive &resp, MqttTopic &mqttTopic)
Definition: mqttBinding.cpp:327
void mqtt_reconnect(WiFiClientSecure *espClient, PubSubClient *client, bool loop=true)
Definition: mqttBinding.cpp:140
bool mqtt_send_request(PubSubClient &client, RequestPrimitive &req, MqttTopic &mqttTopic)
PubSubClient * MQTT_CLIENT
Definition: mqttBinding.cpp:26
bool mqtt_setup(WiFiClientSecure *espClient)
Definition: mqttBinding.cpp:47
void mqtt_callback(char *topic, byte *payload, unsigned int length)
Definition: mqttBinding.cpp:194
Definition: mqttBinding.h:80
void clearRequestBuffer()
Definition: mqttBinding.h:101
void clearResponseBuffer()
Definition: mqttBinding.h:105
RequestPrimitive * getPendingRequest()
Definition: mqttBinding.h:160
std::list< ResponsePrimitive * > responsePrimitiveBuffer
Definition: mqttBinding.h:90
bool addRequestPrimitive(RequestPrimitive *request)
Definition: mqttBinding.h:109
ResponsePrimitive * getPendingResponse()
Definition: mqttBinding.h:146
void pendingResponseProcessed()
static MQTTBuffer * getInstance()
Definition: mqttBinding.h:93
MQTTBuffer()
Definition: mqttBinding.h:82
static MQTTBuffer * mqttBufferInstance
Definition: mqttBinding.h:81
bool addResponsePrimitive(ResponsePrimitive *response)
Definition: mqttBinding.h:127
std::list< RequestPrimitive * > requestPrimitiveBuffer
Definition: mqttBinding.h:89