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

Merge branch 'yjq' into 'master'

1、局域网支持多ep devices status解析

See merge request chenweican/k-sdk!137
parents 717a02b9 116f3e58
...@@ -457,7 +457,7 @@ int kk_sync_devices_to_sdk(cJSON *root,cJSON *data) ...@@ -457,7 +457,7 @@ int kk_sync_devices_to_sdk(cJSON *root,cJSON *data)
//同步设备状态 //同步设备状态
// //
cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node) cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node,int ch)
{ {
int i,num=0,n_num = 0,o_num = 0; int i,num=0,n_num = 0,o_num = 0;
cJSON *newccu,*oldccu; cJSON *newccu,*oldccu;
...@@ -480,11 +480,13 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node) ...@@ -480,11 +480,13 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
o_num = cJSON_GetArraySize(oldccu); o_num = cJSON_GetArraySize(oldccu);
num = (n_num>o_num)?o_num:n_num; num = (n_num>o_num)?o_num:n_num;
//channelNum
for(i=0;i<num;i++){ for(i=0;i<num;i++){
cJSON * newccuItem = cJSON_GetArrayItem(newccu,i); cJSON * newccuItem = cJSON_GetArrayItem(newccu,i);
cJSON * oldccuItem = cJSON_GetArrayItem(oldccu,i); cJSON * oldccuItem = cJSON_GetArrayItem(oldccu,i);
cJSON * newccuItemCh = cJSON_GetObjectItem(newccuItem,"channel");
cJSON * oldccuItemCh = cJSON_GetObjectItem(oldccuItem,"channel");
cJSON *val = NULL; cJSON *val = NULL;
cJSON *synType = cJSON_GetObjectItem(oldccuItem,"synType"); cJSON *synType = cJSON_GetObjectItem(oldccuItem,"synType");
...@@ -493,6 +495,11 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node) ...@@ -493,6 +495,11 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
if(synType->type!=cJSON_String ||synKey==NULL ||synKey->type!=cJSON_String) { if(synType->type!=cJSON_String ||synKey==NULL ||synKey->type!=cJSON_String) {
continue ; continue ;
} }
if(newccuItemCh==NULL||oldccuItemCh==NULL||
newccuItemCh->type!=cJSON_String||
oldccuItemCh->type!=cJSON_String){
continue ;
}
//todo: //todo:
if(strcmp(synType->valuestring,"timing_shutdown")==0) { if(strcmp(synType->valuestring,"timing_shutdown")==0) {
cJSON *syn_obj = cJSON_CreateObject(); cJSON *syn_obj = cJSON_CreateObject();
...@@ -513,12 +520,15 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node) ...@@ -513,12 +520,15 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
cJSON_AddItemToObject(arg, synKey->valuestring,syn_obj); cJSON_AddItemToObject(arg, synKey->valuestring,syn_obj);
}else{ }else{
if(atoi(newccuItemCh->valuestring)==atoi(oldccuItemCh->valuestring) &&
atoi(newccuItemCh->valuestring)==ch){
if((val = val_conver_new2old(newccuItem,oldccuItem,1))!=NULL){ if((val = val_conver_new2old(newccuItem,oldccuItem,1))!=NULL){
kk_lan_add_val_to_obj(arg,val,synKey->valuestring); kk_lan_add_val_to_obj(arg,val,synKey->valuestring);
} }
} }
} }
} }
}
return arg; return arg;
} }
...@@ -585,18 +595,17 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta ...@@ -585,18 +595,17 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta
static int _kk_sync_devices_status_arg_obj(kk_map_dev_node_t *node,cJSON *devStatusAry,int *aryIx) static int _kk_sync_devices_status_arg_obj(kk_map_dev_node_t *node,cJSON *devStatusAry,int *aryIx,int ch)
{ {
char indexId[16] = {0}; char indexId[16] = {0};
char nodeid[32] = {0}; char nodeid[32] = {0};
cJSON *arg = NULL; cJSON *arg = NULL;
cJSON *dev_status = NULL; cJSON *dev_status = NULL;
if(node==NULL ||devStatusAry==NULL||aryIx==NULL){ if(node==NULL ||devStatusAry==NULL||aryIx==NULL){
return -1; return -1;
} }
if((arg = _kk_sync_devicestatus_arg_build(node))==NULL){ if((arg = _kk_sync_devicestatus_arg_build(node,ch))==NULL){
return -2; return -2;
} }
dev_status = cJSON_CreateObject(); dev_status = cJSON_CreateObject();
...@@ -608,7 +617,7 @@ static int _kk_sync_devices_status_arg_obj(kk_map_dev_node_t *node,cJSON *devSta ...@@ -608,7 +617,7 @@ static int _kk_sync_devices_status_arg_obj(kk_map_dev_node_t *node,cJSON *devSta
if(strcmp(node->productCode,AIR_FRESH_MUTI_DEVICE) == 0){ if(strcmp(node->productCode,AIR_FRESH_MUTI_DEVICE) == 0){
kk_creater_nodeid(node->deviceCode,3,nodeid); kk_creater_nodeid(node->deviceCode,3,nodeid);
}else{ }else{
kk_creater_nodeid(node->deviceCode,1,nodeid); kk_creater_nodeid(node->deviceCode,ch,nodeid);
} }
cJSON_AddNumberToObject(dev_status, NODEID_STRING, atoi(nodeid)); cJSON_AddNumberToObject(dev_status, NODEID_STRING, atoi(nodeid));
...@@ -624,6 +633,7 @@ static int _kk_sync_devices_status_arg_obj(kk_map_dev_node_t *node,cJSON *devSta ...@@ -624,6 +633,7 @@ static int _kk_sync_devices_status_arg_obj(kk_map_dev_node_t *node,cJSON *devSta
int kk_sync_devices_status_to_sdk(cJSON *root) int kk_sync_devices_status_to_sdk(cJSON *root)
{ {
int idx = 1; int idx = 1;
int i;
kk_map_dev_node_t *node = NULL; kk_map_dev_node_t *node = NULL;
kk_map_dev_ctx *ctx = _kk_map_dev_ctx(); kk_map_dev_ctx *ctx = _kk_map_dev_ctx();
kk_map_dev_node_t *n = NULL; kk_map_dev_node_t *n = NULL;
...@@ -635,7 +645,11 @@ int kk_sync_devices_status_to_sdk(cJSON *root) ...@@ -635,7 +645,11 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
list_for_each_entry_safe(node,n, &ctx->dev_list, linked_list, kk_map_dev_node_t){ list_for_each_entry_safe(node,n, &ctx->dev_list, linked_list, kk_map_dev_node_t){
if(node->syn_type==1){ if(node->syn_type==1){
_kk_sync_devices_status_arg_obj(node,devStatusAry,&idx);
for(i=0;i<node->channelNum;i++){
_kk_sync_devices_status_arg_obj(node,devStatusAry,&idx,i+1);
}
}else{ }else{
_kk_sync_devices_status_arg_str(node,devStatusAry,&idx); _kk_sync_devices_status_arg_str(node,devStatusAry,&idx);
//_kk_sync_devicestatus(node,devStatusAry); //_kk_sync_devicestatus(node,devStatusAry);
......
...@@ -121,6 +121,7 @@ static cJSON *temperature_msg_build(int ep,int tmp) ...@@ -121,6 +121,7 @@ static cJSON *temperature_msg_build(int ep,int tmp)
return params; return params;
} }
static cJSON *ColorTemperature_msg_build(int ep,int val) static cJSON *ColorTemperature_msg_build(int ep,int val)
{ {
char epNum[12] = {0}; char epNum[12] = {0};
...@@ -549,10 +550,12 @@ static cJSON *dimming_light_dev_handle(int ep,uint8_t *arg,uint8_t arg_len) ...@@ -549,10 +550,12 @@ static cJSON *dimming_light_dev_handle(int ep,uint8_t *arg,uint8_t arg_len)
} }
uint8_t mode = arg[2]; uint8_t mode = arg[2];
debug_log(LOG_CRIT_LEVEL,"[VP] set mode=%d\n",mode); debug_log(LOG_CRIT_LEVEL,"[VP] set mode=%d\n",mode);
if(mode==VP_SKILLTYPE_1C_WORKMODE_AUTO){ if(mode==0x01){
return workMode_msg_build(ep,0); return ColorTemperature_msg_build(ep,20);
}else if(mode==VP_SKILLTYPE_1C_WORKMODE_MANUAL){ }else if(mode==0x02){
return workMode_msg_build(ep,1); return ColorTemperature_msg_build(ep,50);
}else if(mode==0x03){
return ColorTemperature_msg_build(ep,100);
} }
break; break;
} }
...@@ -561,7 +564,7 @@ static cJSON *dimming_light_dev_handle(int ep,uint8_t *arg,uint8_t arg_len) ...@@ -561,7 +564,7 @@ static cJSON *dimming_light_dev_handle(int ep,uint8_t *arg,uint8_t arg_len)
return NULL; return NULL;
} }
uint8_t bri = arg[2]; uint8_t bri = arg[2];
Brightness_msg_build(ep,bri); return Brightness_msg_build(ep,bri);
break; break;
default:break; default:break;
......
...@@ -39,8 +39,8 @@ ...@@ -39,8 +39,8 @@
#define VP_CTRL_TMP_DOWN 0x24 #define VP_CTRL_TMP_DOWN 0x24
#define VP_CTRL_TMP_SET 0x25 #define VP_CTRL_TMP_SET 0x25
#define VP_CTRL_SET_COLOR 0x26 #define VP_CTRL_SET_COLOR 0x26
#define VP_CTRL_SET_COLOR_TMP 0x27 //#define VP_CTRL_SET_COLOR_TMP 0x27
#define VP_CTRL_ALTITUDE 0x28 #define VP_CTRL_SET_COLOR_TMP 0x28
...@@ -97,7 +97,7 @@ ...@@ -97,7 +97,7 @@
#define DIMMING_LIGHT_DEV_PID {\ #define DIMMING_LIGHT_DEV_PID {\
3092\ 3018,3028,3091,3092,3093,3094,3102\
} }
......
...@@ -194,7 +194,7 @@ static int _kk_lan_check_channel(cJSON *channelObj,cJSON *epNumObj) ...@@ -194,7 +194,7 @@ static int _kk_lan_check_channel(cJSON *channelObj,cJSON *epNumObj)
} }
static int _kk_lan_sync_device_status(const char *deviceCode,kk_map_dev_node_t *devNode) static int _kk_lan_sync_device_status(const char *deviceCode,kk_map_dev_node_t *devNode,int ch)
{ {
cJSON *msg = NULL; cJSON *msg = NULL;
cJSON *arg = NULL; cJSON *arg = NULL;
...@@ -206,7 +206,7 @@ static int _kk_lan_sync_device_status(const char *deviceCode,kk_map_dev_node_t * ...@@ -206,7 +206,7 @@ static int _kk_lan_sync_device_status(const char *deviceCode,kk_map_dev_node_t *
return -1; return -1;
} }
if((arg =_kk_sync_devicestatus_arg_build(devNode))==NULL){ if((arg =_kk_sync_devicestatus_arg_build(devNode,ch))==NULL){
debug_log(LOG_DEBUG_LEVEL,"[err] arg.\n"); debug_log(LOG_DEBUG_LEVEL,"[err] arg.\n");
return -1; return -1;
} }
...@@ -216,7 +216,7 @@ static int _kk_lan_sync_device_status(const char *deviceCode,kk_map_dev_node_t * ...@@ -216,7 +216,7 @@ static int _kk_lan_sync_device_status(const char *deviceCode,kk_map_dev_node_t *
return -1; return -1;
} }
}else{ }else{
if((nodeId = kk_lan_db_node_get(deviceCode,1))==-1){ if((nodeId = kk_lan_db_node_get(deviceCode,ch))==-1){
debug_log(LOG_DEBUG_LEVEL,"[err] nodeId.\n"); debug_log(LOG_DEBUG_LEVEL,"[err] nodeId.\n");
return -1; return -1;
} }
...@@ -239,7 +239,7 @@ static int _kk_lan_sync_device_status(const char *deviceCode,kk_map_dev_node_t * ...@@ -239,7 +239,7 @@ static int _kk_lan_sync_device_status(const char *deviceCode,kk_map_dev_node_t *
//属性转换 //属性转换
static int kk_lan_property_convert(const char *deviceCode,kk_map_dev_node_t *devNode,cJSON *params) static int kk_lan_property_convert(const char *deviceCode,kk_map_dev_node_t *devNode,cJSON *params)
{ {
int i = 0,channel = -1,nodeId = -1; int i = 0,k=0,channel = -1,nodeId = -1;
cJSON *args = NULL,*valObj = NULL; cJSON *args = NULL,*valObj = NULL;
cJSON *newccu = NULL,*oldccu = NULL; cJSON *newccu = NULL,*oldccu = NULL;
...@@ -366,8 +366,13 @@ static int kk_lan_property_convert(const char *deviceCode,kk_map_dev_node_t *dev ...@@ -366,8 +366,13 @@ static int kk_lan_property_convert(const char *deviceCode,kk_map_dev_node_t *dev
} }
debug_log(LOG_EMERG_LEVEL,"devNode->channelNum=%d\n",devNode->channelNum);
for(k=0;k<devNode->channelNum;k++){
debug_log(LOG_EMERG_LEVEL,"k=%d\n",k);
_kk_lan_sync_device_status(deviceCode,devNode,k+1);
}
_kk_lan_sync_device_status(deviceCode,devNode);
return 0; return 0;
} }
......
...@@ -25,7 +25,7 @@ int kk_lan_device_delete_notify(cJSON *payload); ...@@ -25,7 +25,7 @@ int kk_lan_device_delete_notify(cJSON *payload);
cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node); cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node,int ch);
int kk_send_indoorAir_status(cJSON *info,const char *deviceCode); int kk_send_indoorAir_status(cJSON *info,const char *deviceCode);
......
...@@ -402,7 +402,7 @@ void vp_send_data_build(uint16_t opCode,uint8_t len,uint8_t *data) ...@@ -402,7 +402,7 @@ void vp_send_data_build(uint16_t opCode,uint8_t len,uint8_t *data)
debug_log(LOG_INFO_LEVEL,"\n[LAN->VP]len=%d\n",data_len); debug_log(LOG_INFO_LEVEL,"\n[LAN->VP]len=%d\n",data_len);
uint8_t dataStr[512] = {0}; uint8_t dataStr[512] = {0};
for(int i=0;i<data_len;i++){ for(int i=0;i<data_len;i++){
snprintf(dataStr + strlen(dataStr), sizeof(dataStr), "%02X ",data_buf[i]); snprintf((char *)dataStr + strlen((char *)dataStr), sizeof(dataStr), "%02X ",data_buf[i]);
} }
debug_log(LOG_INFO_LEVEL,"%s\n\n",dataStr); debug_log(LOG_INFO_LEVEL,"%s\n\n",dataStr);
eSerial_WriteBuffer(data_buf, data_len); eSerial_WriteBuffer(data_buf, data_len);
...@@ -431,10 +431,11 @@ void vp_reply_data_build(uint16_t seq,uint8_t ch,uint16_t opCode,uint8_t len,uin ...@@ -431,10 +431,11 @@ void vp_reply_data_build(uint16_t seq,uint8_t ch,uint16_t opCode,uint8_t len,uin
debug_log(LOG_INFO_LEVEL,"\n[LAN->VP]len=%d\n",data_len); debug_log(LOG_INFO_LEVEL,"\n[LAN->VP]len=%d\n",data_len);
uint8_t dataStr[512] = {0};
for(int i=0;i<data_len;i++){ for(int i=0;i<data_len;i++){
debug_log(LOG_INFO_LEVEL,"%02X ",data_buf[i]); snprintf((char *)dataStr + strlen((char *)dataStr), sizeof(dataStr), "%02X ",data_buf[i]);
} }
debug_log(LOG_INFO_LEVEL,"\n\n"); debug_log(LOG_INFO_LEVEL,"%s\n\n",dataStr);
eSerial_WriteBuffer(data_buf, data_len); eSerial_WriteBuffer(data_buf, data_len);
} }
......
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