Commit 7549830f authored by 尹佳钦's avatar 尹佳钦

20210910,克隆。

parent 06b76807
......@@ -16,6 +16,9 @@
#define GUARD_STATUS_ARMING_LEAVE_HOME "ARMING_LEAVE_HOME"
#define GUARD_STATUS_DISARMING "DISARMING"
#define GUARD_STATUS_ARMING_IN_HOME "ARMING_IN_HOME"
#define ARMING_STATUS_GUARD_ZONE "ARMING_CUSTOM_GUARD_ZONE"
#define EMPTY_STR ""
......
......@@ -249,11 +249,14 @@ int kk_zb_devs_hw_ack_all(int sockfd)
cJSON *array = cJSON_CreateArray();
cJSON *item;
_kk_map_dev_mutex_lock();
list_for_each_entry(search_node, &ctx->dev_list, linked_list, kk_map_dev_node_t) {
if((item = kk_zb_dev_hw_info_build(search_node->deviceCode,search_node->productCode,search_node->online_status,NULL,NULL))!=NULL){
cJSON_AddItemToArray(array,item);
}
}
_kk_map_dev_mutex_unlock();
_kk_zb_devs_hw_ack(sockfd,array);
return -1;
}
......@@ -266,6 +269,7 @@ int kk_zb_dev_hw_info_build_by_deviceCode(int sockfd,const char *deviceCode)
unsigned char online_status = 0;
int pid =-1;
_kk_map_dev_mutex_lock();
list_for_each_entry(search_node, &ctx->dev_list, linked_list, kk_map_dev_node_t) {
if ( (strlen(search_node->deviceCode) == strlen(deviceCode)) &&
(memcmp(search_node->deviceCode, deviceCode, strlen(deviceCode)) == 0)) {
......@@ -275,6 +279,7 @@ int kk_zb_dev_hw_info_build_by_deviceCode(int sockfd,const char *deviceCode)
return item;
}
}
_kk_map_dev_mutex_unlock();
return NULL;
}
......@@ -436,7 +441,7 @@ int is_arming_status_notify(cJSON *payload)
cJSON *params = NULL;
cJSON *ArmingState = NULL;
if((params = cJSON_GetObjectItem(payload, MSG_PARAMS_STR))!=NULL){
if((ArmingState = cJSON_GetObjectItem(payload, "ArmingState"))!=NULL){
if((ArmingState = cJSON_GetObjectItem(params, "ArmingState"))!=NULL){
if(ArmingState->type==cJSON_String &&
ArmingState->valuestring!=NULL){
return atoi(ArmingState->valuestring);
......@@ -482,9 +487,11 @@ void KK_Data_FromMid(void* str,int len)
if (strstr(msgtype->valuestring,SYNC_MSG_TYPE_REPLY) != NULL){
kk_parse_syncinfo(payload);
kk_create_syncinfo_to_sdk(payload);
}else if(strstr(msgtype->valuestring,"/thing/event/property/post")!= NULL){
}
else if(strstr(msgtype->valuestring,"/thing/event/property/post")!= NULL){
if(is_ccu_msg(productCode,deviceCode)){
int type;
if((type = is_arming_status_notify(payload))!=-1){
arming_status_notify(type);
......@@ -492,8 +499,6 @@ void KK_Data_FromMid(void* str,int len)
}else{
property_post_deal(deviceCode->valuestring,payload);
}
}else if(strstr(msgtype->valuestring,"/thing/topo/delete")!= NULL){
device_delete_sync(payload);
}else if(strstr(msgtype->valuestring,"/thing/status/online")!= NULL){
......
......@@ -18,14 +18,14 @@ kk_map_dev_ctx *_kk_map_dev_ctx(void)
return &g_map_dev_mgr;
}
static void _kk_map_dev_mutex_lock(void)
void _kk_map_dev_mutex_lock(void)
{
kk_map_dev_ctx *ctx = _kk_map_dev_ctx();
if (ctx->mutex) {
kk_MutexLock(ctx->mutex);
}
}
static void _kk_map_dev_mutex_unlock(void)
void _kk_map_dev_mutex_unlock(void)
{
kk_map_dev_ctx *ctx = _kk_map_dev_ctx();
if (ctx->mutex) {
......@@ -53,7 +53,6 @@ void kk_map_dev_deinit(void)
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
printf("[lock]_kk_map_dev_mutex_lock\n");
_kk_map_dev_mutex_lock();
list_for_each_entry_safe(node,n,&ctx->dev_list, linked_list, kk_map_dev_node_t) {
......@@ -74,7 +73,6 @@ void kk_map_dev_deinit(void)
}
}
printf("[unlock]_kk_map_dev_mutex_lock\n");
_kk_map_dev_mutex_unlock();
}
......@@ -87,6 +85,7 @@ static kk_map_dev_node_t *kk_map_dev_node_create(const char *deviceCode,const ch
cJSON *newccu = NULL,*oldccu = NULL,*channel = NULL,*optype = NULL;
cJSON *syn_type = NULL,*syn_opcode = NULL;
printf("kk_map_dev_node_create\n");
node = malloc(sizeof(kk_map_dev_node_t));
if (node == NULL) {
return NULL;
......@@ -410,17 +409,21 @@ int kk_map_dev_search_by_deviceCode(char *deviceCode, kk_map_dev_node_t **node)
kk_map_dev_node_t *n = NULL;
//list_for_each_entry_safe
printf("[QAQ] kk_map_dev_search_by_deviceCode\n");
list_for_each_entry(search_node, &ctx->dev_list, linked_list, kk_map_dev_node_t) {
printf("+++\n");
if ( (strlen(search_node->deviceCode) == strlen(deviceCode)) &&
(memcmp(search_node->deviceCode, deviceCode, strlen(deviceCode)) == 0)) {
/* dm_log_debug("Device Found, devid: %d", devid); */
if (node) {
*node = search_node;
}
printf("[find]%s\n",search_node->deviceCode);
return 0;
}
}
ERROR_PRINT("Device Not Found, deviceCode: %s\n", deviceCode);
return -1;
}
......
......@@ -64,6 +64,7 @@ int main(int argc, char* argv[])
char *ppp;
open("kk_lan",LOG_PID,LOG_USER);
kk_lan_ccuid_init();
/*set the callback to get the device date to cloud*/
kk_ipc_init(IPC_APP2MID,(ipc_cb*)KK_Data_FromMid,NULL,NULL);
......
......@@ -13,8 +13,7 @@
/*******获取同步数据json*******/
static cJSON *kk_get_sync_data(cJSON *payload)
{
cJSON *data = cJSON_GetObjectItem(payload,DATA_STR);
return cJSON_GetObjectItem(data,DATA_STR);
return cJSON_GetObjectItem(payload,DATA_STR);
}
......@@ -66,6 +65,7 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
for(i=0;i<num;i++,item++){
room = cJSON_GetArrayItem(rooms,i);
roomId = cJSON_GetObjectItem(room,ROOMS_ID_STR);
name = cJSON_GetObjectItem(room,NAME_STR);
devices = cJSON_GetObjectItem(room,DEVICES_STR);
......@@ -79,6 +79,9 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
item->room_status = NULL;
}
roomsAry = _kk_syn_rooms_info(num,items);
cJSON_AddItemToObject(root, ROOMS_STR, roomsAry);
return root;
......@@ -169,6 +172,7 @@ int kk_sync_actions(cJSON *actions,SYN_SCENE_ACTION **act,char **room_id)
for(i=0;i<num;i++,ptr++){
cJSON *item;
item = cJSON_GetArrayItem(actions,i);
......@@ -203,20 +207,26 @@ int kk_sync_actions(cJSON *actions,SYN_SCENE_ACTION **act,char **room_id)
static int kk_sync_scene_condition(cJSON *condition,SYN_SCENE_ITEM **build)
{
cJSON *itemAry = NULL;
cJSON *startTime,*endTime,*crossDay,*repeat_days;
if(condition==NULL ||build==NULL||*build==NULL){
return -1;
}
int i,j,num = cJSON_GetArraySize(condition);
if((itemAry = cJSON_GetObjectItem(condition,"items"))==NULL){
return -1;
}
int i,j,num = cJSON_GetArraySize(itemAry);
int repeat;
int get_flag = 0;
SYN_SCENE_ITEM *ptr=*build;
printf("kk_sync_scene_condition,num=%d\n",num);
for(i=0;i<num;i++){
cJSON *item;
printf("i=%d\n",i);
item = cJSON_GetArrayItem(condition,i);
startTime = cJSON_GetObjectItem(item,"startTime");
......@@ -259,7 +269,10 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
cJSON *scenesAry = cJSON_CreateArray();
cJSON *sceneItem;
for(i=0;i<num;i++,build++){
SYN_SCENE_ITEM *pScene = build;
for(i=0;i<num;i++,pScene++){
printf("i=%d\n",i);
cJSON *item = cJSON_GetArrayItem(scenes,i);
actions = cJSON_GetObjectItem(item,ACTIONS_STR);
enable = cJSON_GetObjectItem(item,ENABLE_STR);
......@@ -274,16 +287,16 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
if(strcmp(sceneType->valuestring,"")==){
}*/
build->act_num = kk_sync_actions(actions,&build->act,&build->room_id);
pScene->act_num = kk_sync_actions(actions,&pScene->act,&pScene->room_id);
kk_sync_scene_condition(condition,&build);
kk_sync_scene_condition(condition,&pScene);
build->scene_id = sceneId->valuestring;
build->name = name->valuestring;
build->pannel_id = NULL;
pScene->scene_id = sceneId->valuestring;
pScene->name = name->valuestring;
pScene->pannel_id = NULL;
sceneItem = kk_scene_build(&build);
sceneItem = kk_scene_build(&pScene);
cJSON_AddItemToArray(scenesAry,sceneItem);
......@@ -294,48 +307,113 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
}
//同步设备
int kk_sync_devices_to_sdk(cJSON *root)
int _kk_sync_device_item(cJSON *deviceCode,cJSON *epNum,cJSON *name,cJSON *roomId,cJSON *deviceAry)
{
kk_map_dev_node_t *node = NULL;
char nodeid[32] = {0};
char gwmac[32] = {0};
char submac[32] = {0};
char channel[4] = {0};
int idx = 1;
kk_map_dev_ctx *ctx = _kk_map_dev_ctx();
cJSON *devices = cJSON_CreateArray();
if(deviceCode == NULL || deviceAry==NULL){
return -1;
}
list_for_each_entry(node, &ctx->dev_list, linked_list, kk_map_dev_node_t) {
if (node != NULL) {
for(idx = 1; idx <= node->channelNum; idx++){
if(strlen(node->deviceCode)==strlen(deviceCode->valuestring) &&
!strcmp(node->deviceCode,deviceCode->valuestring)){
cJSON *subdevicesItem = cJSON_CreateObject();
snprintf(channel,sizeof(channel),"%d",idx);
cJSON_AddStringToObject(subdevicesItem, CHANNEL_STRING, channel);
if(epNum==NULL ||epNum->type!=cJSON_String){
cJSON_AddStringToObject(subdevicesItem, CHANNEL_STRING, "1");
kk_creater_nodeid(node->deviceCode,1,nodeid);
}else{
cJSON_AddStringToObject(subdevicesItem, CHANNEL_STRING, epNum->valuestring);
kk_creater_nodeid(node->deviceCode,atoi(epNum->valuestring),nodeid);
}
cJSON_AddStringToObject(subdevicesItem, NODEID_STRING, nodeid);
if(name==NULL ||name->type!=cJSON_String){
cJSON_AddStringToObject(subdevicesItem, NAME_STRING, "unkown");
}else{
cJSON_AddStringToObject(subdevicesItem, NAME_STRING, name->valuestring);
}
if(name==NULL ||name->type!=cJSON_String){
cJSON_AddStringToObject(subdevicesItem, ROOM_ID_STRING, "unkown");
}else{
cJSON_AddStringToObject(subdevicesItem, ROOM_ID_STRING, roomId->valuestring);
}
//todo
cJSON_AddStringToObject(subdevicesItem, DEVICE_FIELD_STRING, "");
cJSON_AddStringToObject(subdevicesItem, DEVICE_FIELD_IDNDEX_STRING, "1");
cJSON_AddStringToObject(subdevicesItem, DEVICE_FIELD_IDNDEX_STRING, "");
cJSON_AddStringToObject(subdevicesItem, DEVICE_ICON_STRING, "");
cJSON_AddStringToObject(subdevicesItem, DEVICE_POS_STRING, "1");
cJSON_AddStringToObject(subdevicesItem, DEVICE_POS_STRING, "");
_deviceCode_switchto_mac(node->gwDeviceCode,gwmac);
cJSON_AddStringToObject(subdevicesItem, GW_MAC_STRING, gwmac);
_deviceCode_switchto_mac(node->deviceCode,submac);
cJSON_AddStringToObject(subdevicesItem, MAC_STRING, submac);
//todo name字段
cJSON_AddStringToObject(subdevicesItem, NAME_STRING, "默认灯");
memset(nodeid,0x0,sizeof(nodeid));
kk_creater_nodeid(node->deviceCode,idx,nodeid);
cJSON_AddStringToObject(subdevicesItem, NODEID_STRING, nodeid);
cJSON_AddStringToObject(subdevicesItem, OPERATE_TYPE_STRING, node->opearteType);
cJSON_AddStringToObject(subdevicesItem, ROOM_ID_STRING, "1");
cJSON_AddItemToArray(devices, subdevicesItem);
cJSON_AddItemToArray(deviceAry, subdevicesItem);
}
}
}
cJSON_AddItemToObject(root, DEVICES_STRING, devices);
return 0;
}
int kk_sync_device(cJSON *roomId,cJSON *inDevAry,cJSON *outDevAry)
{
kk_map_dev_node_t *node = NULL;
kk_map_dev_ctx *ctx = _kk_map_dev_ctx();
cJSON *deviceCode = NULL,*epNum = NULL,*name = NULL;
int i,num;
if(inDevAry==NULL||inDevAry->type!=cJSON_Array||
outDevAry==NULL||outDevAry->type!=cJSON_Array){
return -1;
}
num = cJSON_GetArraySize(inDevAry);
for(i=0;i<num;i++){
cJSON *item = cJSON_GetArrayItem(inDevAry,i);
deviceCode = cJSON_GetObjectItem(item,"deviceCode");
epNum = cJSON_GetObjectItem(item,"epNum");
name = cJSON_GetObjectItem(item,"name");
_kk_sync_device_item(deviceCode,epNum,name,roomId,outDevAry);
}
return 0;
}
int kk_sync_devices_to_sdk(cJSON *root,cJSON *data)
{
cJSON *rooms = cJSON_GetObjectItem(data,ROOMS_STR);
cJSON *deviceAry = cJSON_CreateArray();
int i,num = cJSON_GetArraySize(rooms);
cJSON *roomId,*devices;
for(i=0;i<num;i++){
cJSON *room = cJSON_GetArrayItem(rooms,i);
roomId = cJSON_GetObjectItem(room,ROOMS_ID_STR);
devices = cJSON_GetObjectItem(room,DEVICES_STR);
kk_sync_device(roomId,devices,deviceAry);
}
cJSON_AddItemToObject(root, DEVICES_STRING, deviceAry);
return root;
}
//同步设备状态
//
cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
......@@ -344,7 +422,6 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
cJSON *newccu,*oldccu;
cJSON *arg = cJSON_CreateObject();
kk_map_dev_ctx *ctx = _kk_map_dev_ctx();
if(node == NULL ||node->syn_type!=1||node->syn_opcode==NULL){
return arg;
......@@ -409,7 +486,6 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta
cJSON *newccu = NULL,*oldccu = NULL;
cJSON *dev_status = NULL;
kk_map_dev_ctx *ctx = _kk_map_dev_ctx();
if(node == NULL ||devStatusAry==NULL||index==NULL){
return -1;
......@@ -503,6 +579,7 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
cJSON *devStatusAry = cJSON_CreateArray();
_kk_map_dev_mutex_lock();
list_for_each_entry_safe(node,n, &ctx->dev_list, linked_list, kk_map_dev_node_t){
if(node->syn_type==1){
......@@ -513,7 +590,7 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
}
}
_kk_map_dev_mutex_unlock();
cJSON_AddItemToObject(root, DEVICE_STATUS_STRING, devStatusAry);
......@@ -585,65 +662,94 @@ typedef struct{
char *nodeId;
char *sensor_type;
}SYN_GUARD_SENSORS;
static cJSON *_kk_guard_sensors_build(int num,SYN_GUARD_SENSORS *sensors)
static int _kk_guard_sensors_build(cJSON *guard_sensors,int num,SYN_GUARD_SENSORS *sensors)
{
int i;
cJSON *item;
cJSON *guard_sensors = cJSON_CreateArray();
SYN_GUARD_SENSORS *pSensor = sensors;
SYN_GUARD_SENSORS *pSensor;
if(num<=0 || sensors==NULL){
return -1;
}
pSensor = sensors;
for(i=0;i<num;i++,pSensor++){
item = cJSON_CreateObject();
cJSON *item = cJSON_CreateObject();
cJSON_AddStringToObject(item,"nodeid",(pSensor->nodeId)?pSensor->nodeId:"-1");
cJSON_AddStringToObject(item,"sensor_type",(pSensor->sensor_type)?pSensor->sensor_type:"0");
cJSON_AddItemToArray(guard_sensors,item);
}
return guard_sensors;
return 0;
}
static cJSON *_kk_guard_custom_zone_build(int num,char *roomId)
{
int i;
cJSON *custom_guard_zone = cJSON_CreateArray();
char *pRoomId = roomId;
for(i=0;i<num;i++,pRoomId++){
cJSON_AddItemToArray(custom_guard_zone,cJSON_CreateString(pRoomId));
}
return custom_guard_zone;
}
cJSON *kk_sync_guard_to_sdk(cJSON *root,cJSON *data)
int kk_sync_guard_to_sdk(cJSON *root,cJSON *data)
{
char modeStr[8] = {0};
char *armingStr = NULL;
cJSON *guard = cJSON_CreateObject();
cJSON *custom_guard_zone;
cJSON *guard_sensors;
//todo 撤防布防
cJSON *custom_guard_zone = cJSON_CreateArray();
cJSON *guard_sensors = cJSON_CreateArray();
int guardMode = 0;
snprintf(modeStr,sizeof(modeStr),"%d",guardMode);
cJSON *properties = cJSON_GetObjectItem(data,"properties");
cJSON *ArmingState = NULL,*RoomIdsAry = NULL;
cJSON_AddStringToObject(guard, "arming_status", modeStr);
cJSON_AddStringToObject(guard, "arming_status", "1");
cJSON_AddItemToObject(guard,"custom_guard_zone",custom_guard_zone);
cJSON_AddItemToObject(guard,"guard_sensors",guard_sensors);
SYN_GUARD_SENSORS sensors;
sensors.nodeId = malloc(10);
memset(sensors.nodeId,0,10);
memcpy(sensors.nodeId,"1234",strlen("1234"));
sensors.sensor_type = malloc(10);
memset(sensors.sensor_type,0,10);
memcpy(sensors.sensor_type,"5678",strlen("5678"));
cJSON_AddItemToObject(root, "guard", guard);
guard_sensors = _kk_guard_sensors_build(1,&sensors);
char roomId[12] = "abcd";
custom_guard_zone = _kk_guard_custom_zone_build(1,roomId);
cJSON_AddItemToObject(guard, "custom_guard_zone", custom_guard_zone);
cJSON_AddItemToObject(guard, "guard_sensors", guard_sensors);
if(properties==NULL||properties->type!=cJSON_Object){
return -1;
}
cJSON_AddItemToObject(root, "guard", guard);
ArmingState = cJSON_GetObjectItem(properties,"ArmingState");
if(ArmingState==NULL||ArmingState->type!=cJSON_Number){
return -1;
}
/*
"0": "离家布防",
"1": "撤防",
"2": "在家布防",
"3": "区域布防"
*/
//1:离家布防,2:撤防,3:在家布防,4:自定义防区布防。
if(ArmingState->valueint==0){
armingStr = "1";
}else if(ArmingState->valueint==2){
armingStr = "3";
}else if(ArmingState->valueint==3){
armingStr = "4";
}else {
armingStr = "2";
}
cJSON_ReplaceItemInObject(guard, "arming_status", cJSON_CreateString(armingStr));
if(ArmingState->valueint == 3){
int i,num;
cJSON *item = NULL;
char roomIdStr[16] = {0};
RoomIdsAry = cJSON_GetObjectItem(properties,"RoomIds");
if(RoomIdsAry==NULL||RoomIdsAry->type!=cJSON_Array){
return -1;
}
num = cJSON_GetArraySize(RoomIdsAry);
for(i=0;i<num;i++){
item = cJSON_GetArrayItem(RoomIdsAry,i);
if(item->type!=cJSON_Number){
continue ;
}
memset(roomIdStr,0,sizeof(roomIdStr));
snprintf(roomIdStr,sizeof(roomIdStr),"%d",item->valueint);
cJSON_AddItemToArray(custom_guard_zone,cJSON_CreateString(roomIdStr));
}
}
//新中控同步接口未有安防类传感器列表,故只保留实现接口,未具体实现转换
_kk_guard_sensors_build(guard_sensors,-1,NULL);
return 0;
}
......@@ -944,6 +1050,7 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
cJSON *code_lib_controllers;
cJSON *controllers;
cJSON *expand_rules;
cJSON *data = kk_get_sync_data(payload);
char *out = NULL;
printf("!!!!!!!!!!!!!!!!!!!!------>%x\n",&out);
......@@ -960,31 +1067,49 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
cJSON_AddStringToObject(ccu_link_status, "link_type", "broadband_net");
cJSON_AddItemToObject(root, "ccu_link_status", ccu_link_status);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cnwise_music_controllers = cJSON_CreateArray();
cJSON_AddItemToObject(root, "cnwise_music_controllers", cnwise_music_controllers);
code_lib_controllers = cJSON_CreateArray();
cJSON_AddItemToObject(root, "code_lib_controllers", code_lib_controllers);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
controllers = cJSON_CreateArray();
cJSON_AddItemToObject(root, "controllers", controllers);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_devices_status_to_sdk(root);
kk_sync_devices_to_sdk(root);
cJSON *data = kk_get_sync_data(payload);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_devices_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_rooms_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_scence_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_gw_version_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_ccu_version_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_guard_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_central_ac_to_sdk(root,data);
kk_sync_central_ac_indoorunits_to_sdk(root,data);
kk_sync_groups_to_sdk(root,data);
kk_create_floors_to_sdk(root,data);
......
......@@ -42,7 +42,7 @@ cJSON *kk_get_raw_sync_data(cJSON *payload);
cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *payload);
cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data);
int kk_sync_devices_to_sdk(cJSON *root);
int kk_sync_devices_to_sdk(cJSON *root,cJSON *data);
int kk_sync_devices_status_to_sdk(cJSON *root);
int kk_create_syncinfo_to_sdk(cJSON *payload);
......
......@@ -138,7 +138,6 @@ cJSON *kk_devicestatus_build(kk_map_dev_node_t *node)
cJSON *newccu,*oldccu;
cJSON *dev_status;
kk_map_dev_ctx *ctx = _kk_map_dev_ctx();
printf("@@@@kk_devicestatus_build\n");
if (node == NULL ||node->syn_opcode==NULL){
......@@ -263,6 +262,7 @@ cJSON * attr_report_conver(const char *deviceCode,kk_map_dev_node_t *devNode,cJS
cJSON *val;
cJSON *item_size;
cJSON *channel;
cJSON *epNum=NULL;
cJSON *opcode;
......@@ -278,6 +278,7 @@ cJSON * attr_report_conver(const char *deviceCode,kk_map_dev_node_t *devNode,cJS
newccu = devNode->newccu;
item_size = cJSON_GetArraySize(oldccu);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
for(i=0;i<item_size;i++){
o_item = cJSON_GetArrayItem(oldccu,i);
......@@ -287,7 +288,7 @@ cJSON * attr_report_conver(const char *deviceCode,kk_map_dev_node_t *devNode,cJS
n_id = cJSON_GetObjectItem(params,o_id_map->valuestring);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
if(n_id!=NULL){
n_dataType = cJSON_GetObjectItem(n_item,"dataType");
......@@ -298,6 +299,16 @@ cJSON * attr_report_conver(const char *deviceCode,kk_map_dev_node_t *devNode,cJS
channel = cJSON_GetObjectItem(o_item,"channel");
epNum = cJSON_GetObjectItem(params,"epNum");
if(channel==NULL||epNum==NULL){
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
continue;
}
if(strlen(channel->valuestring)!=strlen(epNum->valuestring) ||
strcmp(channel->valuestring,epNum->valuestring)!=0){
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
continue;
}
ch = atoi(channel->valuestring);
nodeId = kk_lan_db_node_get(deviceCode,ch);
......@@ -465,6 +476,7 @@ void property_syn_deal(const char *deviceCode,cJSON *properties)
kk_map_dev_node_t *dev;
if(kk_map_dev_search_by_deviceCode(deviceCode, &dev)==0){
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
attr_report_conver(deviceCode,dev,properties);
}
}
......@@ -495,10 +507,14 @@ int arming_status_notify(int type)
msg = old_ccu_msg_build(WILDCARD_CHARACTER_STR,GUARD_STATUS_DISARMING,SUCCESS_STR,WILDCARD_CHARACTER_STR);
}else if(type==2){
msg = old_ccu_msg_build(WILDCARD_CHARACTER_STR,GUARD_STATUS_ARMING_IN_HOME,SUCCESS_STR,WILDCARD_CHARACTER_STR);
}else if(type==3){
msg = old_ccu_msg_build(WILDCARD_CHARACTER_STR,ARMING_STATUS_GUARD_ZONE,SUCCESS_STR,WILDCARD_CHARACTER_STR);
}else{
printf("[unkown arming type]!!!\n");
return -1;
}
send_msg_to_module(msg);
cJSON_Delete(msg);
return 0;
......
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