|
@@ -80,16 +80,16 @@ char *topic_sub[MQTT_SUB_MAX]={
|
|
|
"/pdu/%s/control/device/reset",
|
|
"/pdu/%s/control/device/reset",
|
|
|
"/pdu/%s/control/service",
|
|
"/pdu/%s/control/service",
|
|
|
};
|
|
};
|
|
|
-char *topic_pub[MQTT_PUB_MAX]={
|
|
|
|
|
|
|
+char *topic_pub[MQTT_PUB_MAX] = {
|
|
|
"/pdu/%s/info/device",
|
|
"/pdu/%s/info/device",
|
|
|
"/pdu/%s/status/network",
|
|
"/pdu/%s/status/network",
|
|
|
"/pdu/%s/status/power/all_channel",
|
|
"/pdu/%s/status/power/all_channel",
|
|
|
"/pdu/%s/status/power/%d",
|
|
"/pdu/%s/status/power/%d",
|
|
|
"/pdu/%s/status/sensor/%d",
|
|
"/pdu/%s/status/sensor/%d",
|
|
|
|
|
+ "/pdu/%s/status/service",
|
|
|
"/pdu/%s/alarm/network",
|
|
"/pdu/%s/alarm/network",
|
|
|
"/pdu/%s/alarm/power",
|
|
"/pdu/%s/alarm/power",
|
|
|
"/pdu/%s/alarm/sensor",
|
|
"/pdu/%s/alarm/sensor",
|
|
|
- "/pdu/%s/status/service",
|
|
|
|
|
};
|
|
};
|
|
|
const char *serv_str[SERV_MAX]={
|
|
const char *serv_str[SERV_MAX]={
|
|
|
"ntp",
|
|
"ntp",
|
|
@@ -768,7 +768,7 @@ static int send_stat(mqtt_conn_t *conn, int type)
|
|
|
cJSON_AddStringToObject(data_filed, "power_factor", get_float_str(info->factor));
|
|
cJSON_AddStringToObject(data_filed, "power_factor", get_float_str(info->factor));
|
|
|
cJSON_AddStringToObject(data_filed, "power_freq", get_float_str(info->freq));
|
|
cJSON_AddStringToObject(data_filed, "power_freq", get_float_str(info->freq));
|
|
|
p1 = info->power;
|
|
p1 = info->power;
|
|
|
- p3 = (info->factor ? (p1 / info->factor) : 0.0f);
|
|
|
|
|
|
|
+ p3 = info->factor>0 ? (p1 / info->factor) : 0.0f;
|
|
|
p2 = p3 - p1;
|
|
p2 = p3 - p1;
|
|
|
cJSON_AddStringToObject(data_filed, "pactive_power", get_float_str(p1));
|
|
cJSON_AddStringToObject(data_filed, "pactive_power", get_float_str(p1));
|
|
|
cJSON_AddStringToObject(data_filed, "reactive_power", get_float_str(p2));
|
|
cJSON_AddStringToObject(data_filed, "reactive_power", get_float_str(p2));
|
|
@@ -838,7 +838,7 @@ static int send_stat(mqtt_conn_t *conn, int type)
|
|
|
cJSON_AddStringToObject(root, "power_freq", get_float_str(tmp->_PowerInfo.freq));
|
|
cJSON_AddStringToObject(root, "power_freq", get_float_str(tmp->_PowerInfo.freq));
|
|
|
cJSON_AddStringToObject(root, "power_factor", get_float_str(tmp->_PowerInfo.factor));
|
|
cJSON_AddStringToObject(root, "power_factor", get_float_str(tmp->_PowerInfo.factor));
|
|
|
p1 = tmp->_PowerInfo.power;
|
|
p1 = tmp->_PowerInfo.power;
|
|
|
- p3 = p1 / tmp->_PowerInfo.factor;
|
|
|
|
|
|
|
+ p3 = tmp->_PowerInfo.factor>0 ? (p1 / tmp->_PowerInfo.factor) : 0.0f;
|
|
|
p2 = p3 - p1;
|
|
p2 = p3 - p1;
|
|
|
cJSON_AddStringToObject(root, "pactive_power", get_float_str(p1));
|
|
cJSON_AddStringToObject(root, "pactive_power", get_float_str(p1));
|
|
|
cJSON_AddStringToObject(root, "reactive_power", get_float_str(p2));
|
|
cJSON_AddStringToObject(root, "reactive_power", get_float_str(p2));
|
|
@@ -1002,14 +1002,21 @@ static int post_alarm(int type, int subtype, char *content, alarm_para_t *para)
|
|
|
{
|
|
{
|
|
|
cJSON* root=cJSON_CreateObject();
|
|
cJSON* root=cJSON_CreateObject();
|
|
|
if(root) {
|
|
if(root) {
|
|
|
- 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);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if(MQTT_PUB_ALARM_SENSOR==pub_type)cJSON_AddStringToObject(root,"sensor_id", get_int_str(para->id));
|
|
|
|
|
+ else if(MQTT_PUB_ALARM_POWER==pub_type)cJSON_AddStringToObject(root,"channel_id", get_int_str(para->id));
|
|
|
|
|
+ else cJSON_AddStringToObject(root,"id", get_int_str(para->id));
|
|
|
|
|
+
|
|
|
|
|
+ cJSON_AddStringToObject(root, "context", content);
|
|
|
|
|
+ if (MQTT_PUB_ALARM_POWER == pub_type)
|
|
|
|
|
+ {
|
|
|
|
|
+ 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);
|
|
|
|
|
|
|
+ json_str = cJSON_Print(root);
|
|
|
cJSON_Delete(root);
|
|
cJSON_Delete(root);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|