|
|
@@ -80,9 +80,9 @@ static mqtt_handle_t mqHandle={0};
|
|
|
static int my_recv(char *topic, char *data);
|
|
|
static void mqtt_fn(mg_conn_t *c, int ev, void *ev_data);
|
|
|
static void timer_start(mqtt_handle_t *h, int ms);
|
|
|
-static int send_stat(int type, int id);
|
|
|
+static int post_stat(int type, int id);
|
|
|
static uint32_t get_serv(char *json);
|
|
|
-static void send_once(void);
|
|
|
+static void post_once(void);
|
|
|
|
|
|
//emqx serttle
|
|
|
const char *ca_cert=
|
|
|
@@ -174,7 +174,7 @@ static int get_date_time(char *d, char *t)
|
|
|
if(!tm) {
|
|
|
return -1;
|
|
|
}
|
|
|
- sprintf(d, "%04d-%02d-%02d", tm->tm_year+1990, tm->tm_mon+1, tm->tm_mday);
|
|
|
+ sprintf(d, "%04d-%02d-%02d", tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday);
|
|
|
sprintf(t, "%02d:%02d:%02d", tm->tm_hour, tm->tm_min, tm->tm_sec);
|
|
|
return 0;
|
|
|
}
|
|
|
@@ -349,8 +349,6 @@ static int my_conn(mqtt_handle_t *h)
|
|
|
.qos = 1,
|
|
|
.version = 4,
|
|
|
.keepalive = 60,
|
|
|
- //.topic = mg_str("hello"),
|
|
|
- //.message = mg_str("bye"),
|
|
|
.client_id = mg_str(ser[i].cid),
|
|
|
.user = mg_str(ser[i].user),
|
|
|
.pass = mg_str(ser[i].password),
|
|
|
@@ -359,7 +357,6 @@ static int my_conn(mqtt_handle_t *h)
|
|
|
h->conn[i].c = mg_mqtt_connect(&h->mgr, url, &opts, mqtt_fn, &h->conn[i]);
|
|
|
if(h->conn[i].c) {
|
|
|
h->conn[i].ser = ser[i];
|
|
|
- //h->conn[i].opts = opts;
|
|
|
my_sub(h->conn[i].c, h->prod_id);
|
|
|
}
|
|
|
}
|
|
|
@@ -381,6 +378,31 @@ static int my_send(mqtt_handle_t *h)
|
|
|
|
|
|
return r;
|
|
|
}
|
|
|
+static void post_once(void)
|
|
|
+{
|
|
|
+ post_stat(MQTT_PUB_INFO_DEVICE, 0);
|
|
|
+ post_stat(MQTT_PUB_STAT_NETWORK, 0);
|
|
|
+ post_stat(MQTT_PUB_STAT_SENSOR, 0);
|
|
|
+ post_stat(MQTT_PUB_STAT_SERVICE, 0);
|
|
|
+}
|
|
|
+static void post_period(void)
|
|
|
+{
|
|
|
+ post_stat(MQTT_PUB_STAT_POWER_ALL, 0);
|
|
|
+ post_stat(MQTT_PUB_STAT_POWER_CHN, 0);
|
|
|
+}
|
|
|
+
|
|
|
+static void timer_fn(void *arg)
|
|
|
+{
|
|
|
+ mqtt_handle_t *h=(mqtt_handle_t*)arg;
|
|
|
+
|
|
|
+ my_conn(h);
|
|
|
+ post_period();
|
|
|
+}
|
|
|
+
|
|
|
+static void timer_start(mqtt_handle_t *h, int ms)
|
|
|
+{
|
|
|
+ mg_timer_add(&h->mgr, ms, MG_TIMER_REPEAT | MG_TIMER_RUN_NOW, timer_fn, h);
|
|
|
+}
|
|
|
|
|
|
static void mqtt_fn(mg_conn_t *c, int ev, void *ev_data)
|
|
|
{
|
|
|
@@ -409,16 +431,7 @@ static void mqtt_fn(mg_conn_t *c, int ev, void *ev_data)
|
|
|
|
|
|
case MG_EV_MQTT_OPEN:
|
|
|
{
|
|
|
- LOGD("____ MG_EV_MQTT_OPEN\n");
|
|
|
- //send_once();
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
- case MG_EV_POLL:
|
|
|
- {
|
|
|
- LOGD("____ MG_EV_POLL\n");
|
|
|
- my_conn(h);
|
|
|
- send_once();
|
|
|
+ post_once();
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
@@ -454,43 +467,18 @@ static void* mqtt_thread(void *arg)
|
|
|
mqtt_handle_t *h=(mqtt_handle_t*)th->arg;
|
|
|
mqtt_info_t *info=&h->dm->mqttInfo;
|
|
|
|
|
|
- //timer_start(h, SEND_PERIOD);
|
|
|
- my_conn(h);
|
|
|
+ //timer_start(h, 10000);
|
|
|
while(th->quit==0) {
|
|
|
+ //my_send(h);
|
|
|
mg_mgr_poll(&h->mgr, 2000);
|
|
|
}
|
|
|
my_disconn(h);
|
|
|
- timer_start(h, 0);
|
|
|
|
|
|
pthread_exit(NULL);
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
-static void send_once(void)
|
|
|
-{
|
|
|
- send_stat(MQTT_PUB_INFO_DEVICE, 0);
|
|
|
- send_stat(MQTT_PUB_STAT_NETWORK, 0);
|
|
|
- send_stat(MQTT_PUB_STAT_SENSOR, 0);
|
|
|
- send_stat(MQTT_PUB_STAT_SERVICE, 0);
|
|
|
-}
|
|
|
-static void send_period(void *arg)
|
|
|
-{
|
|
|
- send_stat(MQTT_PUB_STAT_POWER_ALL, 0);
|
|
|
- send_stat(MQTT_PUB_STAT_POWER_CHN, 0);
|
|
|
-}
|
|
|
-
|
|
|
-static void timer_start(mqtt_handle_t *h, int ms)
|
|
|
-{
|
|
|
- static mg_timer_t t;
|
|
|
- if(h->timer) {
|
|
|
- mg_timer_free(&h->timer, &t);
|
|
|
- h->timer = NULL;
|
|
|
- }
|
|
|
|
|
|
- if(ms>0) {
|
|
|
- mg_timer_init(&h->timer, &t, ms, MG_TIMER_REPEAT|MG_TIMER_RUN_NOW, send_period, h);
|
|
|
- }
|
|
|
-}
|
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
int mqtt_init(void)
|
|
|
{
|
|
|
@@ -502,7 +490,7 @@ int mqtt_init(void)
|
|
|
memset(h, 0, sizeof(mqtt_handle_t));
|
|
|
mg_mgr_init(&h->mgr);
|
|
|
|
|
|
- mg_log_set(MG_LL_DEBUG);
|
|
|
+ //mg_log_set(MG_LL_DEBUG);
|
|
|
|
|
|
h->dm = &__globalDeviceManage;
|
|
|
h->prod_id = h->dm->_globalDevInfo.product_id;
|
|
|
@@ -522,7 +510,7 @@ int mqtt_init(void)
|
|
|
r = 0;
|
|
|
#endif
|
|
|
|
|
|
- //mqtt_test();
|
|
|
+ mqtt_test();
|
|
|
|
|
|
return r;
|
|
|
}
|
|
|
@@ -546,7 +534,7 @@ int mqtt_deinit(void)
|
|
|
}
|
|
|
|
|
|
|
|
|
-static int send_stat(int type, int id)
|
|
|
+static int post_stat(int type, int id)
|
|
|
{
|
|
|
int r=-1;
|
|
|
|
|
|
@@ -573,20 +561,14 @@ static int send_stat(int type, int id)
|
|
|
{
|
|
|
cJSON* root=cJSON_CreateObject();
|
|
|
if(root) {
|
|
|
- cJSON_AddStringToObject(root,"Topic", topic);
|
|
|
- cJSON* data=cJSON_CreateObject();
|
|
|
- if(data) {
|
|
|
- cJSON_AddStringToObject(data,"id", get_int_str(id));
|
|
|
- cJSON_AddStringToObject(data,"name", "Gowone smartPDU");
|
|
|
- cJSON_AddStringToObject(data,"type", "smartPDU AC");
|
|
|
- cJSON_AddStringToObject(data,"firmware", VERSION);
|
|
|
- cJSON_AddStringToObject(data,"channel_num", "8");
|
|
|
- cJSON_AddStringToObject(data,"sensor_num", "10");
|
|
|
- cJSON_AddStringToObject(data,"date", date);
|
|
|
- cJSON_AddStringToObject(data,"time", time);
|
|
|
-
|
|
|
- cJSON_AddItemToObject(root, "Data", data);
|
|
|
- }
|
|
|
+ cJSON_AddStringToObject(root,"id", get_int_str(id));
|
|
|
+ cJSON_AddStringToObject(root,"name", "Gowone smartPDU");
|
|
|
+ cJSON_AddStringToObject(root,"type", "smartPDU AC");
|
|
|
+ cJSON_AddStringToObject(root,"firmware", VERSION);
|
|
|
+ cJSON_AddStringToObject(root,"channel_num", "8");
|
|
|
+ cJSON_AddStringToObject(root,"sensor_num", "10");
|
|
|
+ cJSON_AddStringToObject(root,"date", date);
|
|
|
+ cJSON_AddStringToObject(root,"time", time);
|
|
|
|
|
|
content = cJSON_Print(root);
|
|
|
cJSON_Delete(root);
|
|
|
@@ -602,51 +584,46 @@ static int send_stat(int type, int id)
|
|
|
|
|
|
cJSON* root=cJSON_CreateObject();
|
|
|
if(root) {
|
|
|
- cJSON_AddStringToObject(root,"Topic", topic);
|
|
|
- cJSON* data=cJSON_CreateObject();
|
|
|
- if(data) {
|
|
|
- if(r4==0) {
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv4_link", nw4.mode?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv4_address", nw4.ip_address);
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv4_mask", nw4.mask);
|
|
|
- }
|
|
|
- else {
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv4_link", "");
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv4_address", "");
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv4_mask", "");
|
|
|
- }
|
|
|
-
|
|
|
- if(r4==0) {
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv6_link", nw6.mode?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv6_address", nw6.ip_address);
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv6_subnet_length", nw6.mask);
|
|
|
- }
|
|
|
- else {
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv6_link", "");
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv6_address", "");
|
|
|
- cJSON_AddStringToObject(data,"lan_ipv6_subnet_length", "");
|
|
|
- }
|
|
|
-
|
|
|
- if(0) {
|
|
|
- cJSON_AddStringToObject(data,"wifi_ipv4_link", "");
|
|
|
- cJSON_AddStringToObject(data,"wifi_ipv4_address", "");
|
|
|
- cJSON_AddStringToObject(data,"wifi_ipv4_mask", "");
|
|
|
+
|
|
|
+ if(r4==0) {
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv4_link", nw4.mode?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv4_address", nw4.ip_address);
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv4_mask", nw4.mask);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv4_link", "");
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv4_address", "");
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv4_mask", "");
|
|
|
+ }
|
|
|
|
|
|
- cJSON_AddStringToObject(data,"wifi_ipv6_link", "");
|
|
|
- cJSON_AddStringToObject(data,"wifi_ipv6_address", "");
|
|
|
- cJSON_AddStringToObject(data,"wifi_ipv6_mask", "");
|
|
|
- }
|
|
|
+ if(r4==0) {
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv6_link", nw6.mode?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv6_address", nw6.ip_address);
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv6_subnet_length", nw6.mask);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv6_link", "");
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv6_address", "");
|
|
|
+ cJSON_AddStringToObject(root,"lan_ipv6_subnet_length", "");
|
|
|
+ }
|
|
|
|
|
|
- cJSON_AddStringToObject(data,"modbus_address", get_int_str(h->dm->_globalDevInfo._gmodbus_info.product_modbus_addr));
|
|
|
- cJSON_AddStringToObject(data,"modbus_baud", get_int_str(h->dm->_globalDevInfo._gmodbus_info.product_modbus_baud));
|
|
|
- cJSON_AddStringToObject(data,"modbus_mode", get_int_str(h->dm->_globalDevInfo._gmodbus_info.product_modbus_type));
|
|
|
- cJSON_AddStringToObject(data,"vpn_enable", "0");
|
|
|
- cJSON_AddStringToObject(data,"date", date);
|
|
|
- cJSON_AddStringToObject(data,"time", time);
|
|
|
+ if(0) {
|
|
|
+ cJSON_AddStringToObject(root,"wifi_ipv4_link", "");
|
|
|
+ cJSON_AddStringToObject(root,"wifi_ipv4_address", "");
|
|
|
+ cJSON_AddStringToObject(root,"wifi_ipv4_mask", "");
|
|
|
|
|
|
- cJSON_AddItemToObject(root, "Data", data);
|
|
|
+ cJSON_AddStringToObject(root,"wifi_ipv6_link", "");
|
|
|
+ cJSON_AddStringToObject(root,"wifi_ipv6_address", "");
|
|
|
+ cJSON_AddStringToObject(root,"wifi_ipv6_mask", "");
|
|
|
}
|
|
|
|
|
|
+ cJSON_AddStringToObject(root,"modbus_address", get_int_str(h->dm->_globalDevInfo._gmodbus_info.product_modbus_addr));
|
|
|
+ cJSON_AddStringToObject(root,"modbus_baud", get_int_str(h->dm->_globalDevInfo._gmodbus_info.product_modbus_baud));
|
|
|
+ cJSON_AddStringToObject(root,"modbus_mode", get_int_str(h->dm->_globalDevInfo._gmodbus_info.product_modbus_type));
|
|
|
+ cJSON_AddStringToObject(root,"vpn_enable", "0");
|
|
|
+ cJSON_AddStringToObject(root,"date", date);
|
|
|
+ cJSON_AddStringToObject(root,"time", time);
|
|
|
+
|
|
|
content = cJSON_Print(root);
|
|
|
cJSON_Delete(root);
|
|
|
}
|
|
|
@@ -657,22 +634,16 @@ static int send_stat(int type, int id)
|
|
|
{
|
|
|
cJSON* root=cJSON_CreateObject();
|
|
|
if(root) {
|
|
|
- cJSON_AddStringToObject(root,"Topic", topic);
|
|
|
- cJSON* data=cJSON_CreateObject();
|
|
|
- if(data) {
|
|
|
- //h->dm->_globalPowerManger
|
|
|
- cJSON_AddStringToObject(data,"voltage", "");
|
|
|
- cJSON_AddStringToObject(data,"current", "");
|
|
|
- cJSON_AddStringToObject(data,"power", "");
|
|
|
- cJSON_AddStringToObject(data,"consumption", "");
|
|
|
- cJSON_AddStringToObject(data,"pactive_power", "");
|
|
|
- cJSON_AddStringToObject(data,"reactive_power", "");
|
|
|
- cJSON_AddStringToObject(data,"apparent_power", "");
|
|
|
- cJSON_AddStringToObject(data,"date", date);
|
|
|
- cJSON_AddStringToObject(data,"time", time);
|
|
|
-
|
|
|
- cJSON_AddItemToObject(root, "Data", data);
|
|
|
- }
|
|
|
+ //h->dm->_globalPowerManger
|
|
|
+ cJSON_AddStringToObject(root,"voltage", "");
|
|
|
+ cJSON_AddStringToObject(root,"current", "");
|
|
|
+ cJSON_AddStringToObject(root,"power", "");
|
|
|
+ cJSON_AddStringToObject(root,"consumption", "");
|
|
|
+ cJSON_AddStringToObject(root,"pactive_power", "");
|
|
|
+ cJSON_AddStringToObject(root,"reactive_power", "");
|
|
|
+ cJSON_AddStringToObject(root,"apparent_power", "");
|
|
|
+ cJSON_AddStringToObject(root,"date", date);
|
|
|
+ cJSON_AddStringToObject(root,"time", time);
|
|
|
|
|
|
content = cJSON_Print(root);
|
|
|
cJSON_Delete(root);
|
|
|
@@ -684,28 +655,22 @@ static int send_stat(int type, int id)
|
|
|
{
|
|
|
cJSON* root=cJSON_CreateObject();
|
|
|
if(root) {
|
|
|
- cJSON_AddStringToObject(root,"Topic", topic);
|
|
|
- cJSON* data=cJSON_CreateObject();
|
|
|
- if(data) {
|
|
|
- GlobalPowerManger *tmp=get_power(h, id);
|
|
|
- if(tmp) {
|
|
|
- cJSON_AddStringToObject(data,"name", "app server channel");
|
|
|
- cJSON_AddStringToObject(data,"status", get_int_str(tmp->_PowerInfo.status));
|
|
|
- cJSON_AddStringToObject(data,"voltage", get_float_str(tmp->_PowerInfo.voltage));
|
|
|
- cJSON_AddStringToObject(data,"current", get_float_str(tmp->_PowerInfo.current));
|
|
|
- cJSON_AddStringToObject(data,"power", get_float_str(tmp->_PowerInfo.power));
|
|
|
- cJSON_AddStringToObject(data,"power_freq", get_float_str(tmp->_PowerInfo.freq));
|
|
|
- cJSON_AddStringToObject(data,"consumption", get_float_str(tmp->_PowerInfo.consumption));
|
|
|
- cJSON_AddStringToObject(data,"power_factor", get_float_str(tmp->_PowerInfo.factor));
|
|
|
- cJSON_AddStringToObject(data,"pactive_power", "");
|
|
|
- cJSON_AddStringToObject(data,"reactive_power", "");
|
|
|
- cJSON_AddStringToObject(data,"apparent_power", "");
|
|
|
- }
|
|
|
- cJSON_AddStringToObject(data,"date", date);
|
|
|
- cJSON_AddStringToObject(data,"time", time);
|
|
|
-
|
|
|
- cJSON_AddItemToObject(root, "Data", data);
|
|
|
+ GlobalPowerManger *tmp=get_power(h, id);
|
|
|
+ if(tmp) {
|
|
|
+ cJSON_AddStringToObject(root,"name", "app server channel");
|
|
|
+ cJSON_AddStringToObject(root,"status", get_int_str(tmp->_PowerInfo.status));
|
|
|
+ cJSON_AddStringToObject(root,"voltage", get_float_str(tmp->_PowerInfo.voltage));
|
|
|
+ cJSON_AddStringToObject(root,"current", get_float_str(tmp->_PowerInfo.current));
|
|
|
+ cJSON_AddStringToObject(root,"power", get_float_str(tmp->_PowerInfo.power));
|
|
|
+ cJSON_AddStringToObject(root,"power_freq", get_float_str(tmp->_PowerInfo.freq));
|
|
|
+ cJSON_AddStringToObject(root,"consumption", get_float_str(tmp->_PowerInfo.consumption));
|
|
|
+ cJSON_AddStringToObject(root,"power_factor", get_float_str(tmp->_PowerInfo.factor));
|
|
|
+ cJSON_AddStringToObject(root,"pactive_power", "");
|
|
|
+ cJSON_AddStringToObject(root,"reactive_power", "");
|
|
|
+ cJSON_AddStringToObject(root,"apparent_power", "");
|
|
|
}
|
|
|
+ cJSON_AddStringToObject(root,"date", date);
|
|
|
+ cJSON_AddStringToObject(root,"time", time);
|
|
|
|
|
|
content = cJSON_Print(root);
|
|
|
cJSON_Delete(root);
|
|
|
@@ -717,25 +682,19 @@ static int send_stat(int type, int id)
|
|
|
{
|
|
|
cJSON* root=cJSON_CreateObject();
|
|
|
if(root) {
|
|
|
- cJSON_AddStringToObject(root,"Topic", topic);
|
|
|
- cJSON* data=cJSON_CreateObject();
|
|
|
- if(data) {
|
|
|
- GlobalSensorManger *tmp=get_sensor(h, id);
|
|
|
- if(tmp) {
|
|
|
- cJSON_AddStringToObject(data,"name", "temp sensor");
|
|
|
- cJSON_AddStringToObject(data,"type", get_int_str(tmp->sensor_type));
|
|
|
- cJSON_AddStringToObject(data,"modbus_address", get_int_str(tmp->sensor_addr));
|
|
|
- cJSON_AddStringToObject(data,"node", get_int_str(tmp->sensor_node_number));
|
|
|
- cJSON_AddStringToObject(data,"status", get_int_str(tmp->sensor_status));
|
|
|
- cJSON_AddStringToObject(data,"value_num", get_int_str(tmp->sensor_val_count));
|
|
|
- cJSON_AddStringToObject(data,"value1", get_float_str(tmp->Cur_sensor_info.val1));
|
|
|
- cJSON_AddStringToObject(data,"value2", get_float_str(tmp->Cur_sensor_info.val2));
|
|
|
- }
|
|
|
- cJSON_AddStringToObject(data,"date", date);
|
|
|
- cJSON_AddStringToObject(data,"time", time);
|
|
|
-
|
|
|
- cJSON_AddItemToObject(root, "Data", data);
|
|
|
+ GlobalSensorManger *tmp=get_sensor(h, id);
|
|
|
+ if(tmp) {
|
|
|
+ cJSON_AddStringToObject(root,"name", "temp sensor");
|
|
|
+ cJSON_AddStringToObject(root,"type", get_int_str(tmp->sensor_type));
|
|
|
+ cJSON_AddStringToObject(root,"modbus_address", get_int_str(tmp->sensor_addr));
|
|
|
+ cJSON_AddStringToObject(root,"node", get_int_str(tmp->sensor_node_number));
|
|
|
+ cJSON_AddStringToObject(root,"status", get_int_str(tmp->sensor_status));
|
|
|
+ cJSON_AddStringToObject(root,"value_num", get_int_str(tmp->sensor_val_count));
|
|
|
+ cJSON_AddStringToObject(root,"value1", get_float_str(tmp->Cur_sensor_info.val1));
|
|
|
+ cJSON_AddStringToObject(root,"value2", get_float_str(tmp->Cur_sensor_info.val2));
|
|
|
}
|
|
|
+ cJSON_AddStringToObject(root,"date", date);
|
|
|
+ cJSON_AddStringToObject(root,"time", time);
|
|
|
|
|
|
content = cJSON_Print(root);
|
|
|
cJSON_Delete(root);
|
|
|
@@ -747,26 +706,20 @@ static int send_stat(int type, int id)
|
|
|
{
|
|
|
cJSON* root=cJSON_CreateObject();
|
|
|
if(root) {
|
|
|
- cJSON_AddStringToObject(root,"Topic", topic);
|
|
|
- cJSON* data=cJSON_CreateObject();
|
|
|
- if(data) {
|
|
|
-
|
|
|
- uint32_t flag = get_serv(NULL);
|
|
|
- cJSON_AddStringToObject(data,"telnet", BGET(flag, SERV_TELNET)?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"smtp", BGET(flag, SERV_SMTP)?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"snmp_v1", BGET(flag, SERV_SNMP_V1)?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"snmp_v2c", BGET(flag, SERV_SNMP_V2C)?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"snmp_v3", BGET(flag, SERV_SNMP_V3)?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"snmp_trap", BGET(flag, SERV_SNMP_TRAP)?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"message", BGET(flag, SERV_MESG)?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"mqtt", BGET(flag, SERV_MQTT)?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"cloud", BGET(flag, SERV_CLOUD)?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"ntp", BGET(flag, SERV_NTP)?"1":"0");
|
|
|
- cJSON_AddStringToObject(data,"date", date);
|
|
|
- cJSON_AddStringToObject(data,"time", time);
|
|
|
-
|
|
|
- cJSON_AddItemToObject(root, "Data", data);
|
|
|
- }
|
|
|
+
|
|
|
+ uint32_t flag = get_serv(NULL);
|
|
|
+ cJSON_AddStringToObject(root,"telnet", BGET(flag, SERV_TELNET)?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"smtp", BGET(flag, SERV_SMTP)?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"snmp_v1", BGET(flag, SERV_SNMP_V1)?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"snmp_v2c", BGET(flag, SERV_SNMP_V2C)?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"snmp_v3", BGET(flag, SERV_SNMP_V3)?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"snmp_trap", BGET(flag, SERV_SNMP_TRAP)?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"message", BGET(flag, SERV_MESG)?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"mqtt", BGET(flag, SERV_MQTT)?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"cloud", BGET(flag, SERV_CLOUD)?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"ntp", BGET(flag, SERV_NTP)?"1":"0");
|
|
|
+ cJSON_AddStringToObject(root,"date", date);
|
|
|
+ cJSON_AddStringToObject(root,"time", time);
|
|
|
|
|
|
content = cJSON_Print(root);
|
|
|
cJSON_Delete(root);
|
|
|
@@ -779,6 +732,7 @@ static int send_stat(int type, int id)
|
|
|
}
|
|
|
|
|
|
mqtt_pkt_t pkt;
|
|
|
+ pkt.id = type;
|
|
|
snprintf(pkt.topic, sizeof(pkt.topic), "%s", topic);
|
|
|
snprintf(pkt.content, sizeof(pkt.content), "%s", content);
|
|
|
r = xlist_append(h->list, 0, &pkt, sizeof(pkt));
|
|
|
@@ -789,7 +743,7 @@ static int send_stat(int type, int id)
|
|
|
}
|
|
|
|
|
|
|
|
|
-static int send_alarm(int type, int subtype, char *content, alarm_para_t *para)
|
|
|
+static int post_alarm(int type, int subtype, char *content, alarm_para_t *para)
|
|
|
{
|
|
|
int r=-1;
|
|
|
|
|
|
@@ -827,18 +781,12 @@ static int send_alarm(int type, int subtype, char *content, alarm_para_t *para)
|
|
|
{
|
|
|
cJSON* root=cJSON_CreateObject();
|
|
|
if(root) {
|
|
|
- cJSON_AddStringToObject(root,"Topic", topic);
|
|
|
- cJSON* data=cJSON_CreateObject();
|
|
|
- if(data) {
|
|
|
- cJSON_AddStringToObject(data,"num", get_int_str(para->nalarm)); //alarm number, how to get?
|
|
|
- cJSON_AddStringToObject(data,"context", content);
|
|
|
- cJSON_AddStringToObject(data,"action", get_int_str(para->action));
|
|
|
- cJSON_AddStringToObject(data,"action_para", get_int_str(para->actionId));
|
|
|
- cJSON_AddStringToObject(data,"date", date);
|
|
|
- cJSON_AddStringToObject(data,"time", time);
|
|
|
-
|
|
|
- cJSON_AddItemToObject(root, "Data", data);
|
|
|
- }
|
|
|
+ cJSON_AddStringToObject(root,"num", get_int_str(para->nalarm)); //alarm number, how to get?
|
|
|
+ cJSON_AddStringToObject(root,"context", content);
|
|
|
+ cJSON_AddStringToObject(root,"action", get_int_str(para->action));
|
|
|
+ cJSON_AddStringToObject(root,"action_para", get_int_str(para->actionId));
|
|
|
+ cJSON_AddStringToObject(root,"date", date);
|
|
|
+ cJSON_AddStringToObject(root,"time", time);
|
|
|
|
|
|
json_str = cJSON_Print(root);
|
|
|
cJSON_Delete(root);
|
|
|
@@ -848,6 +796,8 @@ static int send_alarm(int type, int subtype, char *content, alarm_para_t *para)
|
|
|
}
|
|
|
|
|
|
mqtt_pkt_t pkt;
|
|
|
+
|
|
|
+ pkt.id = pub_type;
|
|
|
snprintf(pkt.topic, sizeof(pkt.topic), "%s", topic);
|
|
|
snprintf(pkt.content, sizeof(pkt.content), "%s", json_str);
|
|
|
r = xlist_append(h->list, 0, &pkt, sizeof(pkt));
|
|
|
@@ -860,7 +810,7 @@ static int send_alarm(int type, int subtype, char *content, alarm_para_t *para)
|
|
|
|
|
|
int mqtt_post_alarm(int type, int subtype, char *content, alarm_para_t *para)
|
|
|
{
|
|
|
- return send_alarm(type, subtype, content, para);
|
|
|
+ return post_alarm(type, subtype, content, para);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1124,30 +1074,27 @@ int mqtt_test(void)
|
|
|
.mode = 1,
|
|
|
.cid = "mqtlx_e92334545tet3465",
|
|
|
|
|
|
- #if 0
|
|
|
.server = "192.168.1.12",
|
|
|
.ip = "",
|
|
|
.port = "1883",
|
|
|
|
|
|
//root
|
|
|
//root0219107X
|
|
|
- #else
|
|
|
- .server = "mqtts://gaae4d7b.ala.cn-hangzhou.emqxsl.cn",
|
|
|
- .ip = "",
|
|
|
- .port = "8883",
|
|
|
- #endif
|
|
|
.user = "gowone100",
|
|
|
.password = "gowone100",
|
|
|
|
|
|
//.user = "gowone101",
|
|
|
//.password = "gowone101",
|
|
|
-
|
|
|
};
|
|
|
|
|
|
mInfo.ser[0] = ser;
|
|
|
-
|
|
|
h->dm->mqttInfo = mInfo;
|
|
|
- //mg_log_set(MG_LL_VERBOSE);
|
|
|
+return 0;
|
|
|
+ my_conn(h);
|
|
|
+ while(1) {
|
|
|
+ post_period();
|
|
|
+ sleep(3);
|
|
|
+ }
|
|
|
|
|
|
#endif
|
|
|
return 0;
|