Commit c58f1bab authored by 陈伟灿's avatar 陈伟灿

Merge branch 'yjq' into 'master'

20210813

See merge request chenweican/k-sdk!105
parents d34621bd 8865bb27
......@@ -127,7 +127,7 @@ static int kk_send_ack(cJSON *root,int sockfd)
strcat(tmpBuf,"!");
strcat(tmpBuf,out);
strcat(tmpBuf,"$");
printf("tmpBuf:%s\n",tmpBuf);
INFO_PRINT("tmpBuf:%s\n",tmpBuf);
send(sockfd, tmpBuf, strlen(tmpBuf), 0);
free(out);
free(tmpBuf);
......@@ -358,7 +358,7 @@ int kk_data_handle(cJSON *json,int sockfd)
}
static int kk_parse_syncinfo(cJSON *payload)
{
cJSON *paramStr,*dataStr;
cJSON *dataStr;
cJSON *gwdevices,*subdevices;
cJSON * gwitem,*properties;
cJSON *onlineStatus;
......@@ -375,9 +375,7 @@ static int kk_parse_syncinfo(cJSON *payload)
kk_map_dev_deinit();
paramStr = cJSON_GetObjectItem(payload, DATA_STRING);
if(paramStr == NULL) return -1;
dataStr = cJSON_GetObjectItem(paramStr, DATA_STRING);
dataStr = cJSON_GetObjectItem(payload, DATA_STRING);
if(dataStr == NULL) return -1;
gwdevices = cJSON_GetObjectItem(dataStr, DEVICES_STRING);
if(gwdevices == NULL) return -1;
......@@ -406,7 +404,7 @@ static int kk_parse_syncinfo(cJSON *payload)
kk_map_dev_node_add(deviceCode,productCode,gwdevicecode,onlineStatus->valuestring);
kk_map_dev_node_add(deviceCode,productCode,gwdevicecode,(onlineStatus->valueint==1)?"1":"0");
property_syn_deal(deviceCode,properties);
......
......@@ -53,7 +53,7 @@ static int kk_findccu_ack(int sockfd,struct sockaddr_in *addr){
strcat(tmpBuf,"!");
strcat(tmpBuf,out);
strcat(tmpBuf,"$");
printf("tmpBuf:%s\n",tmpBuf);
INFO_PRINT("tmpBuf:%s\n",tmpBuf);
sendto(sockfd, tmpBuf, strlen(tmpBuf), 0, (struct sockaddr*)addr, sizeof(struct sockaddr_in));
cJSON_Delete(json);
free(out);
......
......@@ -89,9 +89,8 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
/*******场景同步*******/
static cJSON *_kk_scene_action_build(SYN_SCENE_ACTION **act)
static cJSON *_kk_scene_action_build(cJSON *action,SYN_SCENE_ACTION **act)
{
cJSON *action = cJSON_CreateObject();
SYN_SCENE_ACTION *ptr = *act;
if(ptr->nodeid==-1 || ptr->operation==NULL ||
......@@ -115,11 +114,11 @@ cJSON *kk_scene_actions_build(SYN_SCENE_ACTION **act,int num)
{
int i;
cJSON *actions = cJSON_CreateArray();
cJSON *action;
cJSON *action = cJSON_CreateObject();
SYN_SCENE_ACTION *ptr=*act;
for(i=0;i<num;i++,ptr++){
action=_kk_scene_action_build(&ptr);
_kk_scene_action_build(action,&ptr);
cJSON_AddItemToArray(actions,action);
}
......@@ -299,11 +298,13 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
sceneItem = kk_scene_build(&pScene);
cJSON_AddItemToArray(scenesAry,sceneItem);
// printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,cJSON_Print(sceneItem));
}
cJSON_AddItemToObject(root, "scenes", scenesAry);
free(build);
return root;
}
//同步设备
......@@ -323,8 +324,10 @@ int _kk_sync_device_item(cJSON *deviceCode,cJSON *epNum,cJSON *name,cJSON *roomI
list_for_each_entry(node, &ctx->dev_list, linked_list, kk_map_dev_node_t) {
if (node != NULL) {
printf("node->deviceCode=%s,%s\n",node->deviceCode,deviceCode->valuestring);
if(strlen(node->deviceCode)==strlen(deviceCode->valuestring) &&
!strcmp(node->deviceCode,deviceCode->valuestring)){
cJSON *subdevicesItem = cJSON_CreateObject();
if(epNum==NULL ||epNum->type!=cJSON_String){
......@@ -359,7 +362,6 @@ int _kk_sync_device_item(cJSON *deviceCode,cJSON *epNum,cJSON *name,cJSON *roomI
cJSON_AddStringToObject(subdevicesItem, MAC_STRING, submac);
cJSON_AddStringToObject(subdevicesItem, OPERATE_TYPE_STRING, node->opearteType);
cJSON_AddItemToArray(deviceAry, subdevicesItem);
}
}
......@@ -383,6 +385,7 @@ int kk_sync_device(cJSON *roomId,cJSON *inDevAry,cJSON *outDevAry)
num = cJSON_GetArraySize(inDevAry);
for(i=0;i<num;i++){
printf("...i=%d\n",i);
cJSON *item = cJSON_GetArrayItem(inDevAry,i);
deviceCode = cJSON_GetObjectItem(item,"deviceCode");
epNum = cJSON_GetObjectItem(item,"epNum");
......@@ -401,11 +404,16 @@ int kk_sync_devices_to_sdk(cJSON *root,cJSON *data)
int i,num = cJSON_GetArraySize(rooms);
cJSON *roomId,*devices;
printf("kk_sync_devices_to_sdk,num=%d\n",num);
for(i=0;i<num;i++){
printf("i=%d\n",i);
cJSON *room = cJSON_GetArrayItem(rooms,i);
roomId = cJSON_GetObjectItem(room,ROOMS_ID_STR);
devices = cJSON_GetObjectItem(room,DEVICES_STR);
printf("devices...=%s\n",cJSON_Print(devices));
kk_sync_device(roomId,devices,deviceAry);
}
......@@ -578,13 +586,16 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
kk_map_dev_node_t *n = NULL;
cJSON *devStatusAry = cJSON_CreateArray();
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
_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){
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
_kk_sync_devices_status_arg_obj(node,devStatusAry,&idx);
}else{
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
_kk_sync_devices_status_arg_str(node,devStatusAry,&idx);
//_kk_sync_devicestatus(node,devStatusAry);
......@@ -1044,8 +1055,6 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
cJSON *ccu_link_status;
cJSON *link_arg;
cJSON *cnwise_music_controllers;
cJSON *code_lib_controllers;
cJSON *controllers;
......@@ -1068,6 +1077,7 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
cJSON_AddItemToObject(root, "ccu_link_status", ccu_link_status);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cnwise_music_controllers = cJSON_CreateArray();
......@@ -1078,6 +1088,7 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
controllers = cJSON_CreateArray();
cJSON_AddItemToObject(root, "controllers", controllers);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
......@@ -1087,54 +1098,81 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
kk_sync_devices_status_to_sdk(root);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_devices_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
kk_sync_rooms_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
kk_sync_scence_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
kk_sync_gw_version_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
kk_sync_ccu_version_to_sdk(root,data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
kk_sync_guard_to_sdk(root,data);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_sync_central_ac_to_sdk(root,data);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
kk_sync_central_ac_indoorunits_to_sdk(root,data);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
kk_sync_groups_to_sdk(root,data);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
kk_create_floors_to_sdk(root,data);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
#if 1
expand_rules = cJSON_CreateArray();
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_AddItemToObject(root, "expand_rules", expand_rules);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
#endif
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,(root==NULL)?"NULL":"1");
out=cJSON_Print(root);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
out=cJSON_Print(root);
printf("out:%s\n",out);
free(out);
printf("[%s][%d]%s\n",__FUNCTION__,__LINE__,out);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON *msg = old_ccu_msg_build_json("*","SYNC_INFO",NULL,root);
send_msg_to_module(msg);
cJSON_Delete(msg);
free(out);
return 0;
}
......
......@@ -36,7 +36,7 @@ int kk_send_data_to_sdk(char *buf)
strcat(tmpBuf,"!");
strcat(tmpBuf,buf);
strcat(tmpBuf,"$");
printf("tmpBuf:%s\n",tmpBuf);
INFO_PRINT("tmpBuf:%s\n",tmpBuf);
for(i = 0; i < LISTEN_MAX; i++){
if(s_ConnInfo[i].socketfd != -1){
send(s_ConnInfo[i].socketfd, tmpBuf, strlen(tmpBuf), 0);
......@@ -119,7 +119,7 @@ void *TCP_Analyzer(void *pPara)
}
else
{
printf("TCP_Analyzer:%s,%d\n",Buf,(int)Size);
DEBUG_PRINT("TCP_Analyzer:%s,%d\n",Buf,(int)Size);
_kk_handle_data(Buf,s_ConnInfo[index].socketfd);
printf("[%s][%d] TCP_Analyzer end.\n",__FUNCTION__,__LINE__);
}
......
......@@ -472,6 +472,38 @@ 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;
int armingstate= 0;
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){
armingstate = (int)sqlite3_column_int(stmt, DB_ROOM_ARMING);
if(armingstate!=0){
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;
......
......@@ -639,6 +639,69 @@ int dm_msg_response(_IN_ kk_msg_request_payload_t *request, _IN_ kk_msg_response
return SUCCESS_RETURN;
}
const char DM_MSG_SYNC_RESPONSE_WITH_DATA[]= "{\"msgId\":\"%.*s\",\"code\":%d,\"params\":%.*s}";
int dm_msg_sync_response(_IN_ kk_msg_request_payload_t *request, _IN_ kk_msg_response_t *response,
_IN_ char *data, _IN_ int data_len, _IN_ void *user_data)
{
int res = 0, payload_len = 0,res_info_len = 0;
char *uri = NULL, *payload = NULL;
lite_cjson_t lite;
char *res_info = NULL;
if (request == NULL || response == NULL || data == NULL || data_len <= 0) {
return INVALID_PARAMETER;
}
/* Response Payload */
payload_len = strlen(DM_MSG_SYNC_RESPONSE_WITH_DATA) + request->id.value_length + DM_UTILS_UINT32_STRLEN + data_len + 1;
payload = malloc(payload_len);
if (payload == NULL) {
free(uri);
return MEMORY_NOT_ENOUGH;
}
memset(payload, 0, payload_len);
snprintf(payload, payload_len, DM_MSG_SYNC_RESPONSE_WITH_DATA,
request->id.value_length, request->id.value, response->code, data_len, data);
res_info_len = strlen(DM_MSG_INFO)+10+strlen(response->productCode)+strlen(response->deviceCode)+strlen(response->msgTypeStr)+1;
res_info = malloc(res_info_len);
if (res_info == NULL) {
free(payload);
return MEMORY_NOT_ENOUGH;
}
memset(res_info, 0, res_info_len);
snprintf(res_info, res_info_len, DM_MSG_INFO, response->msgTypeStr,response->productCode, response->deviceCode);
memset(&lite, 0, sizeof(lite_cjson_t));
res = lite_cjson_parse(payload, payload_len, &lite);
if (res < SUCCESS_RETURN) {
ERROR_PRINT("Wrong JSON Format, URI: %s, Payload: %s", uri, payload);
free(uri);
free(payload);
return FAIL_RETURN;
}
memset(&lite, 0, sizeof(lite_cjson_t));
res = lite_cjson_parse(res_info, res_info_len, &lite);
if (res < SUCCESS_RETURN) {
ERROR_PRINT("Wrong JSON Format, Payload: %d", res_info_len);
free(res_info);
free(payload);
return FAIL_RETURN;
}
//dm_client_publish(uri, (unsigned char *)payload, strlen(payload), NULL);
kk_sendData2app(res_info, payload,0);
free(res_info);
free(payload);
return SUCCESS_RETURN;
}
int dm_msg_response_parse(_IN_ char *payload, _IN_ int payload_len, _OU_ dm_msg_response_payload_t *response)
{
lite_cjson_t lite, lite_message;
......@@ -731,6 +794,50 @@ int dm_msg_thing_syncinfo_reply(void){
free(info);
return SUCCESS_RETURN;
}
int dm_msg_thing_syncdeviceinfo_reply(cJSON *msgId){
kk_msg_request_payload_t request;
kk_msg_response_t response;
dm_mgr_dev_node_t *node = NULL;
char *info = NULL;
int res = 0;
memset(&request, 0, sizeof(kk_msg_request_payload_t));
memset(&response, 0, sizeof(kk_msg_response_t));
if(msgId!=NULL && msgId->type==cJSON_String){
request.id.value_length = strlen(msgId->valuestring);
request.id.value = msgId->valuestring;
}
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
res = dm_mgr_search_dev_by_devid(KK_DM_DEVICE_CCU_DEVICEID, &node);
if (res != SUCCESS_RETURN) {
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
return FAIL_RETURN;
}
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
//res = dm_msg_request_parse((char *)payload, payload_len, &request);
//if (res < SUCCESS_RETURN) {
//ERROR_PRINT("dm_msg_request_parse failed");
//return res ;
//}
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
response.msgTypeStr = KK_THING_SERVICE_SYNCDEVICEINFO_REPLY;
memcpy(response.productCode, node->productCode, strlen( node->productCode));
memcpy(response.deviceCode, node->deviceCode, strlen(node->deviceCode));
response.code = (res == SUCCESS_RETURN) ? (IOTX_DM_ERR_CODE_SUCCESS) : (IOTX_DM_ERR_CODE_REQUEST_ERROR);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
info = kk_sync_get_info();
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
dm_msg_sync_response(&request, &response, info, strlen(info), NULL);
free(info);
return SUCCESS_RETURN;
}
const char DM_URI_THING_SERVICE_PROPERTY_SET_REPLY[] = "/thing/service/property/set_reply";
int dm_msg_thing_property_set_reply(char deviceCode[DEVICE_CODE_MAXLEN],char *payload, unsigned int payload_len,
......
......@@ -81,6 +81,12 @@ const char DM_MSG_INFO[] DM_READ_ONLY;
#define KK_THING_METHOD_EXECUTESCENE "thing.service.executeScene"
#define KK_THING_METHOD_ADDSCENC "thing.service.addScene"
#define KK_THING_SERVICE_SYNCINFO "/thing/service/syncinfo"
#define KK_THING_SERVICE_SYNCDEVICEINFO "/thing/service/syncDeviceInfo"
#define KK_THING_SERVICE_SYNCDEVICEINFO_REPLY "/thing/service/syncDeviceInfo_reply"
#define KK_THING_SERVICE_SYNCINFO_REPLY "/thing/service/syncinfo_reply"
#define KK_THING_EVENT_MESSAGE "/thing/event/"
#define KK_THING_SERVICE_GETGUARDSENSORS "/thing/service/getGuardSensors"
......
......@@ -368,7 +368,8 @@ static int kk_service_addRoom_handle(const char *deviceCode, cJSON *params)
return FAIL_RETURN;
}
memcpy(roomId,roomIdStr->valuestring,strlen(roomIdStr->valuestring));
kk_room_add(roomInfoStr->valuestring,roomIdStr->valuestring);
//HAL_GetTime_s((char*)roomId);
kk_room_add(roomInfoStr->valuestring,roomId);
kk_tsl_set_value(kk_tsl_set_event_output_value,node->dev_shadow,MSG_AREA_ADDROOM_NOTIFICATION_ROOMID,NULL,roomId);
return SUCCESS_RETURN;
}
......@@ -1198,6 +1199,10 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
cJSON *paramStr = cJSON_GetObjectItem(payload, MSG_PARAMS_STR);
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
kk_service_executeScene_handle(paramStr,msgId);
}else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_SYNCDEVICEINFO) == 0){
INFO_PRINT("SYNCDEVICEINFO service \n");
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
dm_msg_thing_syncdeviceinfo_reply(msgId);
}
else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_GETGUARDSENSORS) == 0){
INFO_PRINT("get guardgensors \n");
......
This diff is collapsed.
......@@ -25,9 +25,9 @@
#define KK_SYNC_SCENE_ACTIONS_STR "actions"
#define KK_SYNC_SCENE_ENABLE_STR "enable"
#define KK_SYNC_SCENE_SCENETYPE_STR "sceneType"
#define KK_SYNC_SCENE_TRIGGER_STR "trigger"
#define KK_SYNC_SCENE_TRIGGER_STR "triggers"
#define KK_SYNC_SCENE_ITEMS_STR "items"
#define KK_SYNC_SCENE_CONDITION_STR "condition"
#define KK_SYNC_SCENE_CONDITION_STR "conditions"
#define KK_SYNC_SCENE_COMPARETYPE_STR "compareType"
#define KK_SYNC_SCENE_COMPAREValue_STR "compareValue"
#define KK_SYNC_SCENE_STARTTIME_STR "startTime"
......
......@@ -167,7 +167,7 @@ void kk_sendData2gw(void* data, int len, char* chalMark){
kk_print_long_data(data,newLen);
INFO_PRINT("start to send data to gw end\n");
}
static void split(char *src,const char *separator,char **dest,int *num) {
void split(char *src,const char *separator,char **dest,int *num) {
char *pNext;
int count = 0;
if (src == NULL || strlen(src) == 0)
......@@ -626,7 +626,10 @@ void kk_platMsg_handle(void* data, char* chalMark){
if(jsonPay == NULL) goto error;
proCode = cJSON_GetObjectItem(jsonPay, MSG_PRODUCT_CODE_STR);
devCode = cJSON_GetObjectItem(jsonPay, MSG_DEVICE_CODE_STR);
mac = cJSON_GetObjectItem(jsonPay, "mac");
//mac = cJSON_GetObjectItem(jsonPay, "mac");
mac = cJSON_GetObjectItem(jsonPay, MSG_DEVICE_CODE_STR);
if (proCode == NULL || devCode == NULL || mac == NULL){
ERROR_PRINT("productCode, deviceCode mac params are error\n");
goto error;
......
......@@ -387,10 +387,10 @@ static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const c
char *dbcompareType =NULL;
char *dbsceneId =NULL;
const char *selectCmd = "select * from SceneTriggerInfo WHERE deviceCode = '%s' and propertyName = '%s';";
const char *selectCmd = "select * from SceneTriggerInfo WHERE deviceCode = '%s' and propertyName = '%s' and epNum = '%d';";
_kk_scene_lock();
sqlCmd = sqlite3_mprintf(selectCmd,deviceCode,propertyName);
sqlCmd = sqlite3_mprintf(selectCmd,deviceCode,propertyName,epNum);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
dbepNum = sqlite3_column_int(stmt, DB_SCENETRIGGER_EPNUM);
......@@ -434,6 +434,20 @@ int kk_scene_insert_scene_trigger(const char* type,const char* deviceCode,int ep
char *zErrMsg = 0;
/*此触发条件已经存在*/
if(kk_scene_check_trigger_exist(deviceCode,epNum,propertyName,compareType,compareValue,sceneId)){
sqlCmd = sqlite3_mprintf("UPDATE SceneTriggerInfo SET isAnd=%d WHERE deviceCode = '%s' and propertyName = '%s' and epNum = '%d' and sceneId= '%s';",isAnd,deviceCode,propertyName,epNum,sceneId);
printf("sqlCmd=%s\n",sqlCmd);
res = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg);
if( res != SQLITE_OK ){
ERROR_PRINT("SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
sqlite3_free(sqlCmd);
_kk_scene_unlock();
return FAIL_RETURN;
}
sqlite3_free(sqlCmd);
_kk_scene_unlock();
return SUCCESS_RETURN;
}
const char *insertCmd = "insert into SceneTriggerInfo (type, deviceCode,epNum,propertyName,compareType,compareValue,sceneId,isAnd) \
......
......@@ -644,6 +644,7 @@ int kk_scene_parse_scene_trigger(const cJSON* str,const char *sceneId)
if(type == NULL) return FAIL_RETURN;
if(!strcmp("trigger/thing/property",type->valuestring)){
printf("---------------->isAnd=0\n");
res = kk_scene_parse_trigger_detail(type->valuestring,item,sceneId,0);
if(res != SUCCESS_RETURN){
ERROR_PRINT("kk_scene_parse_scene_trigger fail!!!\n");
......@@ -859,6 +860,7 @@ int kk_scene_parse_scene_condition(const cJSON* str,const char *sceneId)
}
}
else if(!strcmp("trigger/thing/property",type->valuestring)){
printf("---------------->isAnd=1\n");
kk_scene_parse_trigger_detail(type->valuestring,item,sceneId,1);
}
else{
......@@ -1052,12 +1054,13 @@ int kk_scene_parse_scene_muticontrol(const cJSON* str,const char *sceneId,int is
}
cJSON_AddItemToArray(array,arrayParam);
//break;
kk_scene_insert_scene_action(type->valuestring,deviceCode->valuestring,atoi(epNum->valuestring),
"","",0,sceneId,node->fatherDeviceCode);
}
item = item->next;
}
res = kk_scene_insert_scene_action(type->valuestring,deviceCode->valuestring,0,
"","",0,sceneId,node->fatherDeviceCode);
kk_scene_muticontrol_info_send(array,node->fatherDeviceCode,sceneId,isUpdate);
return SUCCESS_RETURN;
......@@ -1099,14 +1102,15 @@ int kk_scene_parse_addscene(const cJSON* args,char *sceneId,int isUpdate,const c
dm_msg_scene_event_post(MSG_SCENE_ADDNOTIFICATION,pSceneShadow,msgId);
}
}
char roomIdStr[32] = {0};
snprintf(roomIdStr,32,"%d",room_id->valueint);
res = kk_scene_insert_scene_info(roomIdStr,name->valuestring,sceneType->valueint,enable->valueint,sceneId);
/*多控直接下发给网关处理*/
if(enable->valueint == 1 && sceneType->valueint == DB_SCENETYPE_MUTICONTROL){
kk_scene_parse_scene_muticontrol(args,sceneId,isUpdate);
}
else{
char roomIdStr[32] = {0};
snprintf(roomIdStr,32,"%d",room_id->valueint);
res = kk_scene_insert_scene_info(roomIdStr,name->valuestring,sceneType->valueint,enable->valueint,sceneId);
if(res != SUCCESS_RETURN){
INFO_PRINT("kk_scene_insert_scene_info fail!!!\n");
return res;
......
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