Commit 5bba8740 authored by 尹佳钦's avatar 尹佳钦

20210804

parent fcafb8ee
......@@ -66,6 +66,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 +80,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 +173,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 +208,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;
}
if((itemAry = cJSON_GetObjectItem(condition,"items"))==NULL){
return -1;
}
int i,j,num = cJSON_GetArraySize(condition);
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 +270,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 +288,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,51 +308,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;
}
_kk_map_dev_mutex_lock();
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);
}
}
}
_kk_map_dev_mutex_unlock();
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)
......@@ -946,6 +1022,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);
......@@ -974,21 +1051,30 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
printf("kk_sync_devices_status_to_sdk\n");
kk_sync_devices_status_to_sdk(root);
printf("kk_sync_devices_to_sdk\n");
kk_sync_devices_to_sdk(root);
printf("kk_get_sync_data\n");
cJSON *data = kk_get_sync_data(payload);
kk_sync_devices_to_sdk(root,data);
kk_sync_rooms_to_sdk(root,data);
kk_sync_scence_to_sdk(root,data);
kk_sync_gw_version_to_sdk(root,data);
kk_sync_ccu_version_to_sdk(root,data);
kk_sync_guard_to_sdk(root,data);
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);
......
......@@ -391,6 +391,33 @@ int kk_room_device_list_add(const char *deviceCode)
return SUCCESS_RETURN;
}
cJSON *kk_get_roomIds_ary(void)
{
int isExist = 0;
sqlite3_stmt *stmt;
char *proomId = NULL;
cJSON *roomIdsAry = cJSON_CreateArray();
kk_area_ctx_t *ctx = _kk_area_get_ctx();
const char *searchCmd = "select * from AreaInfo;";
_kk_area_lock();
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
proomId = (char*)sqlite3_column_text(stmt, DB_ROOM_ID);
cJSON_AddItemToArray(roomIdsAry,cJSON_CreateNumber(atoi(proomId)));
}
sqlite3_finalize(stmt);
_kk_area_unlock();
return roomIdsAry;
}
kk_dev_list_t* kk_get_room_deviceCode(const char* roomId)
{
sqlite3_stmt *stmt;
......
......@@ -30,6 +30,7 @@ int kk_room_device_list_add(const char *deviceCode);
kk_dev_list_t* kk_get_room_deviceCode(const char* roomId);
void kk_free_room_dev_list(void);
int kk_get_device_name(const char* deviceCode,const char *epNum,char *devName,int size);
cJSON *kk_get_roomIds_ary(void);
#endif
......@@ -879,6 +879,8 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
cJSON *deviceCode = NULL;
json=cJSON_Parse(data);
printf("_iotx_linkkit_event_callback\n");
if (json == NULL) {
WARNING_PRINT("Error before: [%s]\n","cJSON_Parse");
return;
......
......@@ -85,11 +85,14 @@ static cJSON * kk_get_room_devices(const char *roomId)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
cJSON *dev = cJSON_CreateObject();
char devName[64] = {0};
deviceCode = (char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE);
epNum = (char*)sqlite3_column_text(stmt, DB_DEV_EPNUM);
cJSON_AddStringToObject(dev,KK_SYNC_DEVICECODE_STR,deviceCode);
cJSON_AddStringToObject(dev,KK_SYNC_SCENE_EPNUM_STR,epNum);
kk_get_device_name(deviceCode,epNum,devName,sizeof(devName));
cJSON_AddStringToObject(dev,"name",devName);
cJSON_AddItemToArray(devs, dev);
}
......@@ -170,7 +173,119 @@ static int kk_get_rooms_info(cJSON *data)
return SUCCESS_RETURN;
}
static int kk_get_properties_info(char *deviceCode,cJSON *obj)
static int kk_check_multi_ep_num(char *deviceCode)
{
char *sqlCmd = NULL;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *propertyStr = NULL;
char *valueStr = NULL;
int valueType = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
if(deviceCode == NULL){
return 0;
}
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode = '%s' and devType=%d;",deviceCode,KK_DM_DEVICE_SUBDEV);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
propertyStr = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
char *propertiesbuf[64] = {0};
int num = 0;
split(propertyStr,"_",propertiesbuf,&num);
if(num>=2){
return 1;
}
}
sqlite3_free(sqlCmd);
sqlite3_finalize(stmt);
return 0;
}
static cJSON *kk_get_gw_properties_info(cJSON *data)
{
char *sqlCmd = NULL;
sqlite3_stmt *stmt;
char *propertyStr = NULL;
char *valueStr = NULL;
int valueType = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
cJSON *roomIdsAry = NULL;
cJSON *property = cJSON_CreateObject();
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE devType = '%d' ",KK_DM_DEVICE_GATEWAY);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
propertyStr = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
if(valueType == KK_TSL_DATA_TYPE_TEXT){
cJSON_AddStringToObject(property, propertyStr, valueStr);
}else if(valueType == KK_TSL_DATA_TYPE_INT||
valueType == KK_TSL_DATA_TYPE_ENUM||
valueType == KK_TSL_DATA_TYPE_BOOL){
cJSON_AddNumberToObject(property, propertyStr, atoi(valueStr));
}else if(valueType == KK_TSL_DATA_TYPE_DOUBLE){
cJSON_AddNumberToObject(property, propertyStr, atof(valueStr));
}
}
cJSON_AddItemToObject(data, KK_SYNC_PROPERTY_STR, property);
sqlite3_free(sqlCmd);
sqlite3_finalize(stmt);
return property;
}
static cJSON *kk_get_ccu_properties_info(cJSON *data)
{
char *sqlCmd = NULL;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *propertyStr = NULL;
char *valueStr = NULL;
int valueType = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
cJSON *roomIdsAry = NULL;
cJSON *property = cJSON_CreateObject();
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE devType = '%d' ",KK_DM_DEVICE_CCU);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
propertyStr = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
if(valueType == KK_TSL_DATA_TYPE_TEXT){
cJSON_AddStringToObject(property, propertyStr, valueStr);
}else if(valueType == KK_TSL_DATA_TYPE_INT||
valueType == KK_TSL_DATA_TYPE_ENUM||
valueType == KK_TSL_DATA_TYPE_BOOL){
cJSON_AddNumberToObject(property, propertyStr, atoi(valueStr));
}else if(valueType == KK_TSL_DATA_TYPE_DOUBLE){
cJSON_AddNumberToObject(property, propertyStr, atof(valueStr));
}
}
if((roomIdsAry = kk_get_roomIds_ary())!=NULL){
cJSON_AddItemToObject(property, "RoomIds", roomIdsAry);
}
cJSON_AddItemToObject(data, KK_SYNC_PROPERTY_STR, property);
sqlite3_free(sqlCmd);
sqlite3_finalize(stmt);
return property;
}
static cJSON *kk_get_properties_info(char *deviceCode,int devType)
{
char *sqlCmd = NULL;
//char *zErrMsg = 0;
......@@ -179,15 +294,17 @@ static int kk_get_properties_info(char *deviceCode,cJSON *obj)
char *valueStr = NULL;
int valueType = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
if(deviceCode == NULL || obj == NULL){
return FAIL_RETURN;
if(deviceCode == NULL){
return NULL;
}
cJSON *propertyItem = cJSON_CreateObject();
cJSON *obj = cJSON_CreateObject();
cJSON *eps = cJSON_CreateArray();
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode = '%s' ",deviceCode);
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode = '%s' and devType=%d;",deviceCode,devType);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
cJSON *propertyItem = cJSON_CreateObject();
propertyStr = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
......@@ -203,20 +320,59 @@ static int kk_get_properties_info(char *deviceCode,cJSON *obj)
}
char *propertiesbuf[64] = {0};
int num = 0;
//split(propertyStr,"_",propertiesbuf,&num);
split(propertyStr,"_",propertiesbuf,&num);
if(num==2){
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_AddStringToObject(propertyItem, "epNum",propertiesbuf[1]);
}else{
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_AddStringToObject(propertyItem, "epNum","1");
}
cJSON_AddItemToArray(eps,propertyItem);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
}
cJSON_AddItemToObject(obj, KK_SYNC_PROPERTY_STR, eps);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_AddItemToObject(obj, "eps", eps);
sqlite3_free(sqlCmd);
sqlite3_finalize(stmt);
return SUCCESS_RETURN;
return obj;
}
static int kk_get_properties_info_obj(char *deviceCode)
{
char *sqlCmd = NULL;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *propertyStr = NULL;
char *valueStr = NULL;
int valueType = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
cJSON *obj = cJSON_CreateObject();
if(deviceCode == NULL ){
return NULL;
}
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode = '%s' and devType=%d;",deviceCode,KK_DM_DEVICE_SUBDEV);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
propertyStr = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
if(valueType == KK_TSL_DATA_TYPE_TEXT){
cJSON_AddStringToObject(obj, propertyStr, valueStr);
}else if(valueType == KK_TSL_DATA_TYPE_INT||
valueType == KK_TSL_DATA_TYPE_ENUM||
valueType == KK_TSL_DATA_TYPE_BOOL){
cJSON_AddNumberToObject(obj, propertyStr, atoi(valueStr));
}else if(valueType == KK_TSL_DATA_TYPE_DOUBLE){
cJSON_AddNumberToObject(obj, propertyStr, atof(valueStr));
}
}
sqlite3_free(sqlCmd);
sqlite3_finalize(stmt);
return obj;
}
static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
......@@ -234,11 +390,13 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
}
cJSON *subDevices = cJSON_CreateArray();
#if 1
sqlCmd = sqlite3_mprintf("select * from SubDeviceInfo WHERE fatherDeviceCode = '%s' ",deviceCode);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
cJSON *subdevicesItem = cJSON_CreateObject();
char devName[64] = {0};
cJSON *properties = NULL;
subDeviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
subProductCode = (char*)sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE);
subVersion = (char*)sqlite3_column_text(stmt, DB_SUB_VERSION);
......@@ -246,19 +404,29 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_DEVICECODE_STR, subDeviceCode);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_VERSION_STR, subVersion);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_MAC_STR, subDeviceCode);
kk_get_device_name(subDeviceCode,"1",devName,sizeof(devName));
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_NANE_STR, devName);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_ONLINE_STR, subIsline);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_PRODUCTCODE_STR, subProductCode);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_SN_STR, "");
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_STATUS_STR, "启动");
kk_get_properties_info(subDeviceCode,subdevicesItem);
if(kk_check_multi_ep_num(subDeviceCode)){
printf("[%s][%d]--->$1\n",__FUNCTION__,__LINE__);
properties=kk_get_properties_info(subDeviceCode,KK_DM_DEVICE_SUBDEV);
}else{
printf("[%s][%d]--->$2\n",__FUNCTION__,__LINE__);
properties=kk_get_properties_info_obj(subDeviceCode);
}
cJSON_AddItemToObject(subdevicesItem, "properties", properties);
cJSON_AddItemToArray(subDevices, subdevicesItem);
}
#endif
cJSON_AddItemToObject(gwdevicesItem, KK_SYNC_DEVICES_STR, subDevices);
sqlite3_free(sqlCmd);
sqlite3_finalize(stmt);
return SUCCESS_RETURN;
}
static int kk_get_gw_devices_info(cJSON *gwdevices)
......@@ -297,8 +465,13 @@ static int kk_get_gw_devices_info(cJSON *gwdevices)
cJSON_AddStringToObject(gwdevicesItem, KK_SYNC_PRODUCTCODE_STR, gw_productCode);
cJSON_AddStringToObject(gwdevicesItem, KK_SYNC_SN_STR, "");
cJSON_AddStringToObject(gwdevicesItem, KK_SYNC_STATUS_STR, "启动");
kk_get_properties_info(gw_deviceCode,gwdevicesItem);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_gw_properties_info(gwdevicesItem);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_sub_devices_info(gwdevicesItem,gw_deviceCode);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_AddItemToArray(gwdevices, gwdevicesItem);
}
sqlite3_free(sqlCmd);
......@@ -519,6 +692,8 @@ static int kk_get_scenes_info(cJSON *data)
sqlite3_finalize(stmt);
return SUCCESS_RETURN;
}
/*
static int kk_get_ccu_properties(cJSON *property)
{
char *sqlCmd = NULL;
......@@ -552,6 +727,7 @@ static int kk_get_ccu_properties(cJSON *property)
_kk_sync_unlock();
return SUCCESS_RETURN;
}
*/
/************************************************************
*功能描述:检查设备是否有重复
*输入参数:deviceCode:设备deviceCode
......@@ -571,15 +747,17 @@ char *kk_sync_get_info()
cJSON *data = cJSON_CreateObject();
cJSON_AddItemToObject(root, KK_SYNC_DATA_STR, data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_rooms_info(data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_devices_info(data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_scenes_info(data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
HAL_GetDevice_Code(ccu_deviceCode);
HAL_GetProduct_Code(ccu_productCode);
HAL_GetVersion(version);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_AddStringToObject(data, KK_SYNC_DEVICECODE_STR,ccu_deviceCode);
cJSON_AddStringToObject(data, KK_SYNC_NANE_STR, "newccu");
......@@ -587,10 +765,10 @@ char *kk_sync_get_info()
cJSON_AddStringToObject(data, KK_SYNC_ONLINE_STR, cloudstatus_str);
cJSON_AddStringToObject(data, KK_SYNC_PRODUCTCODE_STR, ccu_productCode);
cJSON_AddStringToObject(data, KK_SYNC_VERSION_STR, version);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON *property = cJSON_CreateObject();
kk_get_ccu_properties(property);
cJSON_AddItemToObject(data, KK_SYNC_PROPERTY_STR, property);
kk_get_ccu_properties_info(data);
out=cJSON_Print(root);
printf("kk_sync_get_info:%s\n",out);
......
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