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
\ No newline at end of file
1.4.11
\ No newline at end of file
......@@ -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])
{
int res = 0, start = 0, end = 0, slice = 0;
char deviceCodeTmp[32] = {0};
char *pStart = NULL;
char *pEnd = NULL;
if (topic == NULL || deviceCode == NULL) {
return RETURN_FAIL;
}
......@@ -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(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;
}
......
......@@ -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_PROCESS[] = "ota/device/%s/%s/progress";
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;
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
return NULL;
}
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{
val = msg_convert_value(d_dType,s_dType,value);
}
return val;
}
......
......@@ -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(strcmp(o_dataType->valuestring,"map")==0){
val = map_type_convert(o_dataType,o_valueRange,arg,n_valueRange);
val = cJSON_Duplicate(map_type_convert(o_dataType,o_valueRange,arg,n_valueRange), 1);//使用cJSON_Duplicate,为了后面统一释放
}else{
val = msg_convert_value(n_dataType,o_dataType,arg);
}
}
if(val == NULL){
return NULL;
}
cJSON_AddStringToObject(params,"epNum",epNum->valuestring);
debug_log(LOG_WARNING_LEVEL,"[err]val->type:%d\n",val->type);
if(val->type==cJSON_False){
cJSON_AddFalseToObject(params,n_identifier->valuestring);
......@@ -161,7 +162,7 @@ cJSON * kk_control_protocol_convert(kk_map_dev_node_t *devNode,int nodeId,cJSON
}else if(val->type==cJSON_Array){
printf("......................\n");
}
cJSON_Delete(val);
return params;
}
static int kk_guard_ctrl_handle(int status)
......@@ -313,6 +314,7 @@ int kk_lan_ctrl_ack(cJSON * nodeId,cJSON * opcode,cJSON * arg)
tmp_opcode = cJSON_Parse(acData);
if(tmp_opcode==NULL){
cJSON_Delete(msg);
cJSON_Delete(tmp_nodeId);
return -1;
}
......@@ -323,6 +325,8 @@ int kk_lan_ctrl_ack(cJSON * nodeId,cJSON * opcode,cJSON * arg)
tmp_arg = cJSON_Parse(acData);
if(tmp_arg==NULL){
cJSON_Delete(msg);
cJSON_Delete(tmp_nodeId);
cJSON_Delete(tmp_opcode);
return -1;
}
cJSON_AddItemToObject(msg, "nodeid", tmp_nodeId);
......
......@@ -542,6 +542,7 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node,int ch)
flag = 1;
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
dev_status = cJSON_CreateObject();
kk_lan_add_val_to_obj(dev_status,val,"arg");
kk_creater_nodeid(node->deviceCode,atoi(epNum->valuestring),nodeid);
cJSON_AddStringToObject(dev_status, OPCODE_STRING,opcode->valuestring);
cJSON_AddNumberToObject(dev_status, NODEID_STRING, atoi(nodeid));
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
cJSON_AddStringToObject(dev_status, "index", indexId);
cJSON_AddItemToArray(devStatusAry,dev_status);
cJSON_Delete(val);
}
}
return 0;
......
......@@ -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__);
_kk_lan_update_device_status(nodeId,opcode,args,devNode->syn_opcode);
//printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_Delete(args);
}
......
......@@ -41,8 +41,8 @@
#define IOTX_DM_SERVICE_ALL (IOTX_DM_SERVICE_CLOUD|IOTX_DM_LOCAL_AUTH)
typedef enum {
IOTX_DM_ERR_CODE_SUCCESS = 200,
IOTX_DM_ERR_CODE_REQUEST_ERROR = 400,
IOTX_DM_ERR_CODE_SUCCESS = 0,
IOTX_DM_ERR_CODE_REQUEST_ERROR = 10100,
IOTX_DM_ERR_CODE_REQUEST_PARAMS_ERROR = 460,
IOTX_DM_ERR_CODE_REQUEST_TOO_MANY = 429,
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