Commit 0b3af3e9 authored by 陈伟灿's avatar 陈伟灿

Merge branch 'cwc' into 'master'

【修改内容】修改空调内机房间待分配问题

See merge request chenweican/k-sdk!186
parents d304a5d8 7a3ff60f
...@@ -438,7 +438,7 @@ int kk_floor_delete_by_id(char *floorId) ...@@ -438,7 +438,7 @@ int kk_floor_delete_by_id(char *floorId)
_kk_area_unlock(); _kk_area_unlock();
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
static int _kk_check_dev_exist(const char* deviceCode,const char *epNum) int kk_check_dev_exist_inRoom(const char* deviceCode,const char *epNum)
{ {
int isExist = 0; int isExist = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
...@@ -465,7 +465,35 @@ static int _kk_check_dev_exist(const char* deviceCode,const char *epNum) ...@@ -465,7 +465,35 @@ static int _kk_check_dev_exist(const char* deviceCode,const char *epNum)
_kk_area_unlock(); _kk_area_unlock();
return isExist; return isExist;
} }
int kk_check_dev_exist_roomId(const char* deviceCode,const char *epNum,char *roomId)
{
int isExist = 0;
sqlite3_stmt *stmt;
char *pDeviceCode = NULL;
char *pEpNum = NULL;
char *sqlCmd = NULL;
kk_area_ctx_t *ctx = _kk_area_get_ctx();
const char *searchCmd = "select * from AreaDevInfo where roomId = '%s';";
_kk_area_lock();
sqlCmd = sqlite3_mprintf(searchCmd,roomId);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){
pDeviceCode = (char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE);
pEpNum = (char*)sqlite3_column_text(stmt, DB_DEV_EPNUM);
if(!strcmp(deviceCode,pDeviceCode) && !strcmp(pEpNum,epNum))
{
isExist = 1;
INFO_PRINT("kk_check_dev_exist_roomId\n");
break;
}
}
//INFO_PRINT("\n");
sqlite3_free(sqlCmd);
sqlite3_finalize(stmt);
_kk_area_unlock();
return isExist;
}
int kk_room_dev_add(const char *roomId,const char *roomName,const char *deviceCode,const char *epNum,const char *devName) int kk_room_dev_add(const char *roomId,const char *roomName,const char *deviceCode,const char *epNum,const char *devName)
{ {
int res = 0; int res = 0;
...@@ -474,7 +502,7 @@ int kk_room_dev_add(const char *roomId,const char *roomName,const char *deviceCo ...@@ -474,7 +502,7 @@ int kk_room_dev_add(const char *roomId,const char *roomName,const char *deviceCo
char *zErrMsg = 0; char *zErrMsg = 0;
if(_kk_check_dev_exist(deviceCode,epNum)){ if(kk_check_dev_exist_inRoom(deviceCode,epNum)){
sqlCmd = sqlite3_mprintf("UPDATE AreaDevInfo SET roomId='%s', roomName='%s', devName='%s'\ sqlCmd = sqlite3_mprintf("UPDATE AreaDevInfo SET roomId='%s', roomName='%s', devName='%s'\
WHERE deviceCode= '%s' and epNum = '%s'",roomId,roomName,devName,deviceCode,epNum); WHERE deviceCode= '%s' and epNum = '%s'",roomId,roomName,devName,deviceCode,epNum);
} }
......
...@@ -59,5 +59,7 @@ cJSON * kk_get_roomids_by_floorId(const char* floorId); ...@@ -59,5 +59,7 @@ cJSON * kk_get_roomids_by_floorId(const char* floorId);
int kk_creater_floorid(char *floorId); int kk_creater_floorid(char *floorId);
void kk_free_floor_list(void); void kk_free_floor_list(void);
cJSON *kk_get_roomIds_ary(void); cJSON *kk_get_roomIds_ary(void);
int kk_check_dev_exist_inRoom(const char* deviceCode,const char *epNum);
int kk_check_dev_exist_roomId(const char* deviceCode,const char *epNum,char *roomId);
#endif #endif
...@@ -773,6 +773,7 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params) ...@@ -773,6 +773,7 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params)
//kk_scene_update_device_active(deviceCode->valuestring,atoi(epNumStr),1); //kk_scene_update_device_active(deviceCode->valuestring,atoi(epNumStr),1);
//kk_scene_rebuild_device_active(deviceCode->valuestring,atoi(epNumStr)); //kk_scene_rebuild_device_active(deviceCode->valuestring,atoi(epNumStr));
//内机默认添加到跟网关同个房间 //内机默认添加到跟网关同个房间
#if 0
if(strcmp(node->productType,KK_DM_AIR_GATEWAY_TYPE) == 0 && isAirGwFlag == 1){ if(strcmp(node->productType,KK_DM_AIR_GATEWAY_TYPE) == 0 && isAirGwFlag == 1){
int eplist[64] = {0}; int eplist[64] = {0};
char name[128] = {0}; char name[128] = {0};
...@@ -813,6 +814,7 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params) ...@@ -813,6 +814,7 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params)
kk_room_dev_add(roomId->valuestring,room_name->valuestring,deviceCode->valuestring,epNumStr,name); kk_room_dev_add(roomId->valuestring,room_name->valuestring,deviceCode->valuestring,epNumStr,name);
} }
} }
#endif
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
/************************************************************ /************************************************************
......
...@@ -617,7 +617,7 @@ int kk_get_product_type_table_size(void) ...@@ -617,7 +617,7 @@ int kk_get_product_type_table_size(void)
{ {
return sizeof(producTypeMap)/sizeof(productype_map_s); return sizeof(producTypeMap)/sizeof(productype_map_s);
} }
static int _kk_indoor_air_info_handle(char* deviceCode,char* propertyName,char* propertyValue,int ep,int delay,char* gwDeviceCode,char*sceneId,char* type) static int _kk_indoor_air_info_handle(char* deviceCode,char* propertyName,char* propertyValue,int ep,int delay,char* gwDeviceCode,char*sceneId,char* type,int insert)
{ {
int res = 0; int res = 0;
kk_scene_action_detail_t info = {0}; kk_scene_action_detail_t info = {0};
...@@ -627,22 +627,38 @@ static int _kk_indoor_air_info_handle(char* deviceCode,char* propertyName,char* ...@@ -627,22 +627,38 @@ static int _kk_indoor_air_info_handle(char* deviceCode,char* propertyName,char*
info.epNum = ep; info.epNum = ep;
info.delay = delay; info.delay = delay;
kk_scene_action_add(gwDeviceCode,sceneId,info); kk_scene_action_add(gwDeviceCode,sceneId,info);
res = kk_scene_insert_scene_action(type,deviceCode,info.epNum, if(insert){
propertyName,propertyValue,info.delay,sceneId,gwDeviceCode); res = kk_scene_insert_scene_action(type,deviceCode,info.epNum,
if(res != SUCCESS_RETURN){ propertyName,propertyValue,info.delay,sceneId,gwDeviceCode);
INFO_PRINT("kk_subDev_set_action_by_productType fail!!!\n"); if(res != SUCCESS_RETURN){
INFO_PRINT("kk_subDev_set_action_by_productType fail!!!\n");
}
} }
return res; return res;
} }
static int _kk_indoor_air_handle(char* deviceCode, char *sceneId, char *propertyName, char *propertyValue, char *type,int delay, char*gwDeviceCode) static int _kk_indoor_air_handle(char* deviceCode, char *sceneId, char *propertyName, char *propertyValue, char *type,int delay, char*gwDeviceCode,char *roomId)
{ {
int eplist[64] = {0}; int eplist[64] = {0};
char data[32] = {0}; char data[32] = {0};
char ep[8] = {0};
int res = 0; int res = 0;
int i = 0; int i = 0;
int allRoom = (strcmp(roomId,"-1")==0)?1:0;
int count = kk_indoorAir_query_epnums(deviceCode,eplist); int count = kk_indoorAir_query_epnums(deviceCode,eplist);
for(i = 0; i < count; i++){ for(i = 0; i < count; i++){
memset(ep,0x0,sizeof(ep));
sprintf(ep,"%d",eplist[i]);
if(allRoom == 1){
if(kk_check_dev_exist_inRoom(deviceCode,ep) == 0){
INFO_PRINT("do not handle the indoor air not in room!!!\n");
continue;
}
}else{
if(kk_check_dev_exist_roomId(deviceCode,ep,roomId) == 0){
INFO_PRINT("do not handle the indoor air not in room!!!\n");
continue;
}
}
if(strcmp(propertyName,"CustomAction") == 0){ if(strcmp(propertyName,"CustomAction") == 0){
cJSON* json = cJSON_Parse(propertyValue); cJSON* json = cJSON_Parse(propertyValue);
if (json == NULL) { if (json == NULL) {
...@@ -652,20 +668,22 @@ static int _kk_indoor_air_handle(char* deviceCode, char *sceneId, char *property ...@@ -652,20 +668,22 @@ static int _kk_indoor_air_handle(char* deviceCode, char *sceneId, char *property
if(Temperature == NULL) { cJSON_Delete(json);return -1;} if(Temperature == NULL) { cJSON_Delete(json);return -1;}
memset(data,0x0,sizeof(data)); memset(data,0x0,sizeof(data));
sprintf(data,"%f",Temperature->valuedouble); sprintf(data,"%f",Temperature->valuedouble);
_kk_indoor_air_info_handle(deviceCode,"Temperature",data,eplist[i],delay,gwDeviceCode,sceneId,type); _kk_indoor_air_info_handle(deviceCode,"Temperature",data,eplist[i],delay,gwDeviceCode,sceneId,type,0);
cJSON* WindSpeed = cJSON_GetObjectItem(json, "WindSpeed"); cJSON* WindSpeed = cJSON_GetObjectItem(json, "WindSpeed");
if(WindSpeed == NULL) { cJSON_Delete(json);return -1;} if(WindSpeed == NULL) { cJSON_Delete(json);return -1;}
memset(data,0x0,sizeof(data)); memset(data,0x0,sizeof(data));
sprintf(data,"%d",WindSpeed->valueint); sprintf(data,"%d",WindSpeed->valueint);
_kk_indoor_air_info_handle(deviceCode,"WindSpeed",data,eplist[i],delay,gwDeviceCode,sceneId,type); _kk_indoor_air_info_handle(deviceCode,"WindSpeed",data,eplist[i],delay,gwDeviceCode,sceneId,type,0);
cJSON* WorkMode = cJSON_GetObjectItem(json, "WorkMode"); cJSON* WorkMode = cJSON_GetObjectItem(json, "WorkMode");
if(WorkMode == NULL){ cJSON_Delete(json);return -1;} if(WorkMode == NULL){ cJSON_Delete(json);return -1;}
memset(data,0x0,sizeof(data)); memset(data,0x0,sizeof(data));
sprintf(data,"%d",WorkMode->valueint); sprintf(data,"%d",WorkMode->valueint);
_kk_indoor_air_info_handle(deviceCode,"WorkMode",data,eplist[i],delay,gwDeviceCode,sceneId,type); _kk_indoor_air_info_handle(deviceCode,"WorkMode",data,eplist[i],delay,gwDeviceCode,sceneId,type,0);
cJSON_Delete(json); cJSON_Delete(json);
kk_scene_insert_scene_action(type,deviceCode,eplist[i],
propertyName,propertyValue,delay,sceneId,gwDeviceCode);
}else{ }else{
_kk_indoor_air_info_handle(deviceCode,propertyName,propertyValue,eplist[i],delay,gwDeviceCode,sceneId,type); _kk_indoor_air_info_handle(deviceCode,propertyName,propertyValue,eplist[i],delay,gwDeviceCode,sceneId,type,1);
} }
} }
return 0; return 0;
...@@ -704,7 +722,7 @@ static int _kk_air_switch_handle(char* deviceCode, char *sceneId, char *property ...@@ -704,7 +722,7 @@ static int _kk_air_switch_handle(char* deviceCode, char *sceneId, char *property
cJSON_Delete(json); cJSON_Delete(json);
#endif #endif
}else{ }else{
_kk_indoor_air_info_handle(deviceCode,propertyName,propertyValue,eplist[i],delay,gwDeviceCode,sceneId,type); //_kk_indoor_air_info_handle(deviceCode,propertyName,propertyValue,eplist[i],delay,gwDeviceCode,sceneId,type,1);
} }
} }
return 0; return 0;
...@@ -758,7 +776,8 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *room ...@@ -758,7 +776,8 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *room
continue; continue;
} }
if(strcmp(typeArray[k],KK_DM_AIR_GATEWAY_TYPE) == 0){ if(strcmp(typeArray[k],KK_DM_AIR_GATEWAY_TYPE) == 0){
_kk_indoor_air_handle(pDeviceCode,(char*)sceneId,(char*)propertyName,(char*)propertyValue,(char*)type,delay,node->fatherDeviceCode); devIsExsit = 1;
_kk_indoor_air_handle(pDeviceCode,(char*)sceneId,(char*)propertyName,(char*)propertyValue,(char*)type,delay,node->fatherDeviceCode,roomId);
continue; continue;
}else if(strcmp(typeArray[k],KK_DM_AIR_SWITCH_GATEWAY_TYPE) == 0){ }else if(strcmp(typeArray[k],KK_DM_AIR_SWITCH_GATEWAY_TYPE) == 0){
_kk_air_switch_handle(pDeviceCode,(char*)sceneId,(char*)propertyName,(char*)propertyValue,(char*)type,delay,node->fatherDeviceCode); _kk_air_switch_handle(pDeviceCode,(char*)sceneId,(char*)propertyName,(char*)propertyValue,(char*)type,delay,node->fatherDeviceCode);
......
...@@ -1263,14 +1263,14 @@ static int kk_indoorAir_online_handle(dm_mgr_dev_node_t *node ,char *deviceCode, ...@@ -1263,14 +1263,14 @@ static int kk_indoorAir_online_handle(dm_mgr_dev_node_t *node ,char *deviceCode,
} }
kk_indoorAir_db_insert(deviceCode,property->identifier,property->data_value.type,epNum); kk_indoorAir_db_insert(deviceCode,property->identifier,property->data_value.type,epNum);
} }
gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息 //gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息
if(gwExist){ //if(gwExist){
char name[128] = {0}; //char name[128] = {0};
sprintf(name,"空调%d",epNum); //sprintf(name,"空调%d",epNum);
sprintf(epNumStr,"%d",epNum); //sprintf(epNumStr,"%d",epNum);
kk_room_dev_add(roomId,roomName,deviceCode,epNumStr,name); //kk_room_dev_add(roomId,roomName,deviceCode,epNumStr,name);
} //}
return 0; return 0;
} }
static int kk_subAirSwitch_online_handle(dm_mgr_dev_node_t *node ,char *deviceCode,int epNum) static int kk_subAirSwitch_online_handle(dm_mgr_dev_node_t *node ,char *deviceCode,int epNum)
...@@ -1291,14 +1291,14 @@ static int kk_subAirSwitch_online_handle(dm_mgr_dev_node_t *node ,char *deviceCo ...@@ -1291,14 +1291,14 @@ static int kk_subAirSwitch_online_handle(dm_mgr_dev_node_t *node ,char *deviceCo
} }
kk_subAirSwitch_db_insert(deviceCode,property->identifier,property->data_value.type,epNum); kk_subAirSwitch_db_insert(deviceCode,property->identifier,property->data_value.type,epNum);
} }
gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息 //gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息
if(gwExist){ //if(gwExist){
char name[128] = {0}; //char name[128] = {0};
sprintf(name,"空开%d",epNum); //sprintf(name,"空开%d",epNum);
sprintf(epNumStr,"%d",epNum); //sprintf(epNumStr,"%d",epNum);
kk_room_dev_add(roomId,roomName,deviceCode,epNumStr,name); //kk_room_dev_add(roomId,roomName,deviceCode,epNumStr,name);
} //}
return 0; return 0;
} }
static int kk_subFreshair_online_handle(dm_mgr_dev_node_t *node ,char *deviceCode,int epNum) static int kk_subFreshair_online_handle(dm_mgr_dev_node_t *node ,char *deviceCode,int epNum)
...@@ -1319,14 +1319,14 @@ static int kk_subFreshair_online_handle(dm_mgr_dev_node_t *node ,char *deviceCod ...@@ -1319,14 +1319,14 @@ static int kk_subFreshair_online_handle(dm_mgr_dev_node_t *node ,char *deviceCod
} }
kk_subFreshAir_db_insert(deviceCode,property->identifier,property->data_value.type,epNum); kk_subFreshAir_db_insert(deviceCode,property->identifier,property->data_value.type,epNum);
} }
gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息 //gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息
if(gwExist){ //if(gwExist){
char name[128] = {0}; //char name[128] = {0};
sprintf(name,"新风%d",epNum); //sprintf(name,"新风%d",epNum);
sprintf(epNumStr,"%d",epNum); //sprintf(epNumStr,"%d",epNum);
kk_room_dev_add(roomId,roomName,deviceCode,epNumStr,name); //kk_room_dev_add(roomId,roomName,deviceCode,epNumStr,name);
} //}
return 0; return 0;
} }
void kk_platMsg_handle(void* data, char* chalMark){ void kk_platMsg_handle(void* data, char* chalMark){
...@@ -2065,10 +2065,6 @@ int main(const int argc, const char **argv) ...@@ -2065,10 +2065,6 @@ int main(const int argc, const char **argv)
//int i; //int i;
//kk_tsl_t *dev_shadow[30] = {NULL}; //kk_tsl_t *dev_shadow[30] = {NULL};
mid_ctx_t *mid_ctx = kk_mid_get_ctx(); mid_ctx_t *mid_ctx = kk_mid_get_ctx();
openlog("midware",LOG_PID,LOG_USER); openlog("midware",LOG_PID,LOG_USER);
memset(mid_ctx, 0, sizeof(mid_ctx_t)); memset(mid_ctx, 0, sizeof(mid_ctx_t));
#ifdef CONFIG_NDK #ifdef CONFIG_NDK
......
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