diff --git a/cpp/mqtt_config.cpp b/cpp/mqtt_config.cpp deleted file mode 100644 index e3e49a5..0000000 --- a/cpp/mqtt_config.cpp +++ /dev/null @@ -1,51 +0,0 @@ - -#include "mqtt_config.hpp" - -#include - -#include -#include -#include - -using namespace std; -using namespace nlohmann; -using namespace iflytop; - -void MQTTConfig::initialize(string file_name) { - std::ifstream jfile(file_name); - jfile >> m_mqttConfigJson; - jfile.close(); - try { - m_address = m_mqttConfigJson["address"]; - m_username = m_mqttConfigJson["username"]; - m_password = m_mqttConfigJson["password"]; - m_clientid = m_mqttConfigJson["clientid"]; - m_qos = m_mqttConfigJson["qos"]; - m_topic = m_mqttConfigJson["topic"]; - m_timeout = m_mqttConfigJson["timeout"]; - } catch (const std::exception& e) { - std::cerr << "mqtt_config_read error: " << e.what() << '\n'; - } -} - -string MQTTConfig::dump() { - sstream ret; - ret << "==========================mqtt_config_dump_start===========================" << endl; - ret << "address = " << getAddress() << endl; - ret << "username = " << getUsername() << endl; - ret << "password = " << getPassword() << endl; - ret << "clientid = " << getClientid() << endl; - ret << "qos = " << getQos() << endl; - ret << "topic = " << getTopic() << endl; - ret << "timeout = " << getTimeout() << endl; - ret << "===========================mqtt_config_dump_end============================" << endl; - return ret.str(); -} - -string MQTTConfig::getAddress() { return m_address; } -string MQTTConfig::getUsername() { return m_username; } -string MQTTConfig::getPassword() { return m_password; } -string MQTTConfig::getClientid() { return m_clientid; } -int MQTTConfig::getQos() { return m_qos; } -string MQTTConfig::getTopic() { return m_topic; } -int MQTTConfig::getTimeout() { return m_timeout; } diff --git a/cpp/mqtt_config.hpp b/cpp/mqtt_config.hpp deleted file mode 100644 index 3464c23..0000000 --- a/cpp/mqtt_config.hpp +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include -#include - -#include -#include -#include - -namespace iflytop { -using namespace std; -using namespace nlohmann; -class MQTTConfig { - private: - json m_mqttConfigJson; - string m_address; - string m_username; - string m_password; - string m_clientid; - int m_qos; - string m_topic; - int m_timeout; - - public: - MQTTConfig(/* args */){}; - ~MQTTConfig(){}; - void initialize(string file_name); - string dump(); - string getAddress(); - string getUsername(); - string getPassword(); - string getClientid(); - int getQos(); - string getTopic(); - int getTimeout(); -}; -} // namespace iflytop diff --git a/cpp/mqtt_demo.cpp b/cpp/mqtt_demo.cpp deleted file mode 100644 index d6dc4c5..0000000 --- a/cpp/mqtt_demo.cpp +++ /dev/null @@ -1,83 +0,0 @@ -// -// Created by zwsd -// -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "MQTTClient.h" -#include "mqtt_config.hpp" - -typedef struct { - string address; - string username; - string password; - string clientid; - int qos; - string topic; - int timeout; -} mqtt_config_t; - -share_ptr g_config; - -static void publish(MQTTClient client, char *topic, char *payload) { - MQTTClient_message message = MQTTClient_message_initializer; - message.payload = payload; - message.payloadlen = strlen(payload); - message.qos = g_mqtt_config.qos; - message.retained = 0; - MQTTClient_deliveryToken token; - MQTTClient_publishMessage(client, topic, &message, &token); - MQTTClient_waitForCompletion(client, token, g_mqtt_config.timeout); - printf("Send `%s` to topic `%s` \n", payload, g_mqtt_config.topic.c_str()); -} -static int on_message(void *context, char *topicName, int topicLen, MQTTClient_message *message) { - char *payload = (char *)message->payload; - printf("Received `%s` from `%s` topic \n", payload, topicName); - MQTTClient_freeMessage(&message); - MQTTClient_free(topicName); - return 1; -} -int main(int argc, char *argv[]) { - int rc; - MQTTClient client; - MQTTConfig mqttConfig; - - g_config = make_shared(); - g_config->initialize("mqtt_config.json"); - printf("mqtt_config.json: \n%s\n", g_config->dump().c_str()); - - MQTTClient_create(&client, g_mqtt_config.address.c_str(), g_mqtt_config.clientid.c_str(), 0, NULL); - MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer; - conn_opts.username = g_mqtt_config.username.c_str(); - conn_opts.password = g_mqtt_config.password.c_str(); - MQTTClient_setCallbacks(client, NULL, NULL, on_message, NULL); - if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS) { - printf("Failed to connect, return code %d\n", rc); - exit(-1); - } else { - printf("Connected to MQTT Broker!\n"); - } - MQTTClient_subscribe(client, g_mqtt_config.topic.c_str(), g_mqtt_config.qos); - char payload[23]; - for (int i = 0; i < 100; i += 1) { - snprintf(payload, 23, "{\"RunningState\": \"%d\"}", i); - publish(client, (char *)g_mqtt_config.topic.c_str(), payload); - sleep(1); - } - MQTTClient_disconnect(client, g_mqtt_config.timeout); - MQTTClient_destroy(&client); - - return 0; -}