Commit 5e4a8133 authored by 陈伟灿's avatar 陈伟灿

Merge branch 'cwc' into 'master'

【修改内容】调整topic,增加主机号

See merge request chenweican/k-sdk!215
parents ee124793 05ac1c11
1.4.10 1.4.11
\ No newline at end of file \ No newline at end of file
...@@ -463,7 +463,9 @@ static int _kk_topic_parse_pkdn(_IN_ char *topic, _IN_ int start_deli, ...@@ -463,7 +463,9 @@ static int _kk_topic_parse_pkdn(_IN_ char *topic, _IN_ int start_deli,
_OU_ char productCode[PRODUCT_CODE_LEN],_OU_ char deviceCode[DEVICE_CODE_LEN]) _OU_ char productCode[PRODUCT_CODE_LEN],_OU_ char deviceCode[DEVICE_CODE_LEN])
{ {
int res = 0, start = 0, end = 0, slice = 0; int res = 0, start = 0, end = 0, slice = 0;
char deviceCodeTmp[32] = {0};
char *pStart = NULL;
char *pEnd = NULL;
if (topic == NULL || deviceCode == NULL) { if (topic == NULL || deviceCode == NULL) {
return RETURN_FAIL; return RETURN_FAIL;
} }
...@@ -482,7 +484,18 @@ static int _kk_topic_parse_pkdn(_IN_ char *topic, _IN_ int start_deli, ...@@ -482,7 +484,18 @@ static int _kk_topic_parse_pkdn(_IN_ char *topic, _IN_ int start_deli,
} }
memcpy(productCode, topic + start + 1, slice - start - 1); memcpy(productCode, topic + start + 1, slice - start - 1);
memcpy(deviceCode, topic + slice + 1, end - slice - 1); memcpy(deviceCodeTmp, topic + slice + 1, end - slice - 1);
pStart = strchr(deviceCodeTmp,'_');
pEnd = strrchr(deviceCodeTmp,'_');
if(pStart != NULL && pEnd != NULL){
if(pStart == pEnd){ //代表主机deviceCode
strcpy(deviceCode, deviceCodeTmp);
}else{
strcpy(deviceCode, pEnd + 1); //代表的是CCU_123456_XXX这种格式
}
}else{
strcpy(deviceCode, deviceCodeTmp);
}
return RETURN_SUCCESS; return RETURN_SUCCESS;
} }
......
...@@ -17,7 +17,7 @@ const char KK_URI_SYS_PREFIX_EX[] = "biz/newkk/%s/%s"; ...@@ -17,7 +17,7 @@ const char KK_URI_SYS_PREFIX_EX[] = "biz/newkk/%s/%s";
const char KK_URI_OTA_PREFIX[] = "ota/device/%s/%s/upgrade"; const char KK_URI_OTA_PREFIX[] = "ota/device/%s/%s/upgrade";
const char KK_URI_OTA_PROCESS[] = "ota/device/%s/%s/progress"; const char KK_URI_OTA_PROCESS[] = "ota/device/%s/%s/progress";
const char KK_URI_OTA_REPLY[] = "ota/device/%s/%s/upgrade_reply"; const char KK_URI_OTA_REPLY[] = "ota/device/%s/%s/upgrade_reply";
//#define NEW_TOPIC_RULE #define NEW_TOPIC_RULE
static int s_gw_status = DEVICE_OFFLINE; static int s_gw_status = DEVICE_OFFLINE;
int kk_set_gw_status(int status) int kk_set_gw_status(int status)
{ {
......
...@@ -464,11 +464,10 @@ cJSON *ccu_value_convert(cJSON *s_dType,cJSON *s_range,cJSON *d_dType,cJSON *d_r ...@@ -464,11 +464,10 @@ cJSON *ccu_value_convert(cJSON *s_dType,cJSON *s_range,cJSON *d_dType,cJSON *d_r
return NULL; return NULL;
} }
if(strcmp(d_dType->valuestring,"map")==0){ if(strcmp(d_dType->valuestring,"map")==0){
val = map_type_convert(s_dType,s_range,value,d_range); val = cJSON_Duplicate(map_type_convert(s_dType,s_range,value,d_range), 1);//使用cJSON_Duplicate,为了后面统一释放
}else{ }else{
val = msg_convert_value(d_dType,s_dType,value); val = msg_convert_value(d_dType,s_dType,value);
} }
return val; return val;
} }
......
...@@ -137,16 +137,17 @@ cJSON * kk_control_protocol_convert(kk_map_dev_node_t *devNode,int nodeId,cJSON ...@@ -137,16 +137,17 @@ cJSON * kk_control_protocol_convert(kk_map_dev_node_t *devNode,int nodeId,cJSON
if(special_handling_for_compatibility(devNode,opcode,arg,&val)!=0){ if(special_handling_for_compatibility(devNode,opcode,arg,&val)!=0){
if(strcmp(o_dataType->valuestring,"map")==0){ if(strcmp(o_dataType->valuestring,"map")==0){
val = cJSON_Duplicate(map_type_convert(o_dataType,o_valueRange,arg,n_valueRange), 1);//使用cJSON_Duplicate,为了后面统一释放
val = map_type_convert(o_dataType,o_valueRange,arg,n_valueRange);
}else{ }else{
val = msg_convert_value(n_dataType,o_dataType,arg); val = msg_convert_value(n_dataType,o_dataType,arg);
} }
} }
if(val == NULL){
return NULL;
}
cJSON_AddStringToObject(params,"epNum",epNum->valuestring); cJSON_AddStringToObject(params,"epNum",epNum->valuestring);
debug_log(LOG_WARNING_LEVEL,"[err]val->type:%d\n",val->type);
if(val->type==cJSON_False){ if(val->type==cJSON_False){
cJSON_AddFalseToObject(params,n_identifier->valuestring); cJSON_AddFalseToObject(params,n_identifier->valuestring);
...@@ -161,7 +162,7 @@ cJSON * kk_control_protocol_convert(kk_map_dev_node_t *devNode,int nodeId,cJSON ...@@ -161,7 +162,7 @@ cJSON * kk_control_protocol_convert(kk_map_dev_node_t *devNode,int nodeId,cJSON
}else if(val->type==cJSON_Array){ }else if(val->type==cJSON_Array){
printf("......................\n"); printf("......................\n");
} }
cJSON_Delete(val);
return params; return params;
} }
static int kk_guard_ctrl_handle(int status) static int kk_guard_ctrl_handle(int status)
...@@ -313,6 +314,7 @@ int kk_lan_ctrl_ack(cJSON * nodeId,cJSON * opcode,cJSON * arg) ...@@ -313,6 +314,7 @@ int kk_lan_ctrl_ack(cJSON * nodeId,cJSON * opcode,cJSON * arg)
tmp_opcode = cJSON_Parse(acData); tmp_opcode = cJSON_Parse(acData);
if(tmp_opcode==NULL){ if(tmp_opcode==NULL){
cJSON_Delete(msg); cJSON_Delete(msg);
cJSON_Delete(tmp_nodeId);
return -1; return -1;
} }
...@@ -323,6 +325,8 @@ int kk_lan_ctrl_ack(cJSON * nodeId,cJSON * opcode,cJSON * arg) ...@@ -323,6 +325,8 @@ int kk_lan_ctrl_ack(cJSON * nodeId,cJSON * opcode,cJSON * arg)
tmp_arg = cJSON_Parse(acData); tmp_arg = cJSON_Parse(acData);
if(tmp_arg==NULL){ if(tmp_arg==NULL){
cJSON_Delete(msg); cJSON_Delete(msg);
cJSON_Delete(tmp_nodeId);
cJSON_Delete(tmp_opcode);
return -1; return -1;
} }
cJSON_AddItemToObject(msg, "nodeid", tmp_nodeId); cJSON_AddItemToObject(msg, "nodeid", tmp_nodeId);
......
...@@ -542,6 +542,7 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node,int ch) ...@@ -542,6 +542,7 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node,int ch)
flag = 1; flag = 1;
kk_lan_add_val_to_obj(arg,val,synKey->valuestring); kk_lan_add_val_to_obj(arg,val,synKey->valuestring);
cJSON_Delete(val);
} }
} }
} }
...@@ -594,9 +595,7 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta ...@@ -594,9 +595,7 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta
dev_status = cJSON_CreateObject(); dev_status = cJSON_CreateObject();
kk_lan_add_val_to_obj(dev_status,val,"arg"); kk_lan_add_val_to_obj(dev_status,val,"arg");
kk_creater_nodeid(node->deviceCode,atoi(epNum->valuestring),nodeid); kk_creater_nodeid(node->deviceCode,atoi(epNum->valuestring),nodeid);
cJSON_AddStringToObject(dev_status, OPCODE_STRING,opcode->valuestring); cJSON_AddStringToObject(dev_status, OPCODE_STRING,opcode->valuestring);
cJSON_AddNumberToObject(dev_status, NODEID_STRING, atoi(nodeid)); cJSON_AddNumberToObject(dev_status, NODEID_STRING, atoi(nodeid));
memset(indexId,0,sizeof(indexId)); memset(indexId,0,sizeof(indexId));
...@@ -605,6 +604,7 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta ...@@ -605,6 +604,7 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta
cJSON_AddStringToObject(dev_status, "index", indexId); cJSON_AddStringToObject(dev_status, "index", indexId);
cJSON_AddItemToArray(devStatusAry,dev_status); cJSON_AddItemToArray(devStatusAry,dev_status);
cJSON_Delete(val);
} }
} }
return 0; return 0;
......
...@@ -372,6 +372,7 @@ static int kk_lan_property_convert(const char *deviceCode,kk_map_dev_node_t *dev ...@@ -372,6 +372,7 @@ static int kk_lan_property_convert(const char *deviceCode,kk_map_dev_node_t *dev
//printf("[%s][%d]\n",__FUNCTION__,__LINE__); //printf("[%s][%d]\n",__FUNCTION__,__LINE__);
_kk_lan_update_device_status(nodeId,opcode,args,devNode->syn_opcode); _kk_lan_update_device_status(nodeId,opcode,args,devNode->syn_opcode);
//printf("[%s][%d]\n",__FUNCTION__,__LINE__); //printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_Delete(args);
} }
......
...@@ -41,8 +41,8 @@ ...@@ -41,8 +41,8 @@
#define IOTX_DM_SERVICE_ALL (IOTX_DM_SERVICE_CLOUD|IOTX_DM_LOCAL_AUTH) #define IOTX_DM_SERVICE_ALL (IOTX_DM_SERVICE_CLOUD|IOTX_DM_LOCAL_AUTH)
typedef enum { typedef enum {
IOTX_DM_ERR_CODE_SUCCESS = 200, IOTX_DM_ERR_CODE_SUCCESS = 0,
IOTX_DM_ERR_CODE_REQUEST_ERROR = 400, IOTX_DM_ERR_CODE_REQUEST_ERROR = 10100,
IOTX_DM_ERR_CODE_REQUEST_PARAMS_ERROR = 460, IOTX_DM_ERR_CODE_REQUEST_PARAMS_ERROR = 460,
IOTX_DM_ERR_CODE_REQUEST_TOO_MANY = 429, IOTX_DM_ERR_CODE_REQUEST_TOO_MANY = 429,
IOTX_DM_ERR_CODE_NO_ACTIVE_SESSION = 520, IOTX_DM_ERR_CODE_NO_ACTIVE_SESSION = 520,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment