23 #ifndef C_MQTT_ADAPTER_HPP 24 #define C_MQTT_ADAPTER_HPP 33 #include <MQTTClient.h> 34 #include <boost/thread.hpp> 35 #include <boost/shared_ptr.hpp> 36 #include <boost/property_tree/ptree.hpp> 37 #include <boost/enable_shared_from_this.hpp> 58 ,
public boost::enable_shared_from_this<CMqttAdapter>
62 typedef boost::shared_ptr<CMqttAdapter>
Pointer;
96 static int HandleMessage(
void *
id,
char * topic,
int topicLen, MQTTClient_message * msg);
105 void Publish(std::string topic, std::string content);
114 void CreateDevice(std::string deviceName, std::string json);
116 void AddSignals(std::string device, boost::property_tree::ptree::value_type & ptree, std::set<std::string> & sigset, std::set<std::string> & type);
143 #endif // C_MQTT_ADAPTER_HPP Physical adapter device interface.
Definition: IAdapter.hpp:67
void Stop()
Stop the MQTT client.
Definition: CMqttAdapter.cpp:145
void Start()
Start the MQTT client.
Definition: CMqttAdapter.cpp:93
std::map< std::string, DeviceData > TDeviceToData
Map from a device name to its stored signal values.
Definition: CMqttAdapter.hpp:119
char m_ID[24]
MQTT client identifier.
Definition: CMqttAdapter.hpp:136
std::map< std::string, SignalValue > s_SignalToValue
Definition: CMqttAdapter.hpp:85
void UnsubscribeAll(std::string deviceName)
does a full UnSubscribe
Definition: CMqttAdapter.cpp:379
boost::shared_ptr< CMqttAdapter > Pointer
Pointer to a CMqttAdapater object.
Definition: CMqttAdapter.hpp:62
MQTTClient_message pubmsg
Definition: CMqttAdapter.hpp:132
~CMqttAdapter()
Destructor.
Definition: CMqttAdapter.cpp:81
static void ConnectionLost(void *id, char *reason)
Callback function when the client cannot reach the broker.
Definition: CMqttAdapter.cpp:191
Definition: CMqttAdapter.hpp:83
CMqttAdapter(std::string id, std::string address)
Constructor.
Definition: CMqttAdapter.cpp:63
MQTTClient m_Client
MQTT client object.
Definition: CMqttAdapter.hpp:131
std::list< CMqttMessage::Pointer > m_MessageQueue
Storage for MQTT messages.
Definition: CMqttAdapter.hpp:125
MQTTClient_deliveryToken token
Definition: CMqttAdapter.hpp:133
SignalValue GetState(const std::string device, const std::string key) const
Retrieves a value from a device.
Definition: CMqttAdapter.cpp:152
void Publish(std::string topic, std::string content)
Publish a message on a topic to the MQTT broker.
Definition: CMqttAdapter.cpp:351
std::map< std::string, std::string > s_IndexReference
Definition: CMqttAdapter.hpp:86
void SubscribeAll(std::string deviceName)
does a full Subscribe
Definition: CMqttAdapter.cpp:359
void SetCommand(const std::string device, const std::string key, const SignalValue value)
Sets a value on a device.
Definition: CMqttAdapter.cpp:171
static IAdapter::Pointer Create(std::string id, std::string address)
Create a CMqttAdapter object and return a point to it.
Definition: CMqttAdapter.cpp:88
TDeviceToData m_DeviceData
Map of device data expected over MQTT.
Definition: CMqttAdapter.hpp:122
float SignalValue
Type of the value for device signals.
Definition: IAdapter.hpp:42
boost::mutex m_DeviceDataLock
Protect the device data map.
Definition: CMqttAdapter.hpp:128
static int HandleMessage(void *id, char *topic, int topicLen, MQTTClient_message *msg)
Callback function when the client receives a message about a subscribed topic.
Definition: CMqttAdapter.cpp:198
static void DeliveryComplete(void *id, MQTTClient_deliveryToken token)
Callback function when a message has been delivered to the broker.
Definition: CMqttAdapter.cpp:223
General FREEDM Namespace.
Definition: CBroker.cpp:53
void CreateDevice(std::string deviceName, std::string json)
Create a CDevice object from a JSON specification.
Definition: CMqttAdapter.cpp:398
boost::shared_ptr< IAdapter > Pointer
Pointer to a physical adapter.
Definition: IAdapter.hpp:72
Provides an interface for communicating with an MQTT broker.
Definition: CMqttAdapter.hpp:56
void AddSignals(std::string device, boost::property_tree::ptree::value_type &ptree, std::set< std::string > &sigset, std::set< std::string > &type)
Definition: CMqttAdapter.cpp:429