Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
k-sdk
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈伟灿
k-sdk
Commits
0b3af3e9
Commit
0b3af3e9
authored
Feb 12, 2022
by
陈伟灿
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'cwc' into 'master'
【修改内容】修改空调内机房间待分配问题 See merge request chenweican/k-sdk!186
parents
d304a5d8
7a3ff60f
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
92 additions
and
45 deletions
+92
-45
midware/midware/area/kk_area_handle.c
midware/midware/area/kk_area_handle.c
+31
-3
midware/midware/area/kk_area_handle.h
midware/midware/area/kk_area_handle.h
+2
-0
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+2
-0
midware/midware/dm/kk_sub_db.c
midware/midware/dm/kk_sub_db.c
+33
-14
midware/midware/midware.c
midware/midware/midware.c
+24
-28
No files found.
midware/midware/area/kk_area_handle.c
View file @
0b3af3e9
...
...
@@ -438,7 +438,7 @@ int kk_floor_delete_by_id(char *floorId)
_kk_area_unlock
();
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
;
sqlite3_stmt
*
stmt
;
...
...
@@ -465,7 +465,35 @@ static int _kk_check_dev_exist(const char* deviceCode,const char *epNum)
_kk_area_unlock
();
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
res
=
0
;
...
...
@@ -474,7 +502,7 @@ int kk_room_dev_add(const char *roomId,const char *roomName,const char *deviceCo
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'\
WHERE deviceCode= '%s' and epNum = '%s'"
,
roomId
,
roomName
,
devName
,
deviceCode
,
epNum
);
}
...
...
midware/midware/area/kk_area_handle.h
View file @
0b3af3e9
...
...
@@ -59,5 +59,7 @@ cJSON * kk_get_roomids_by_floorId(const char* floorId);
int
kk_creater_floorid
(
char
*
floorId
);
void
kk_free_floor_list
(
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
midware/midware/dm/kk_linkkit.c
View file @
0b3af3e9
...
...
@@ -773,6 +773,7 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params)
//kk_scene_update_device_active(deviceCode->valuestring,atoi(epNumStr),1);
//kk_scene_rebuild_device_active(deviceCode->valuestring,atoi(epNumStr));
//内机默认添加到跟网关同个房间
#if 0
if(strcmp(node->productType,KK_DM_AIR_GATEWAY_TYPE) == 0 && isAirGwFlag == 1){
int eplist[64] = {0};
char name[128] = {0};
...
...
@@ -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);
}
}
#endif
return
SUCCESS_RETURN
;
}
/************************************************************
...
...
midware/midware/dm/kk_sub_db.c
View file @
0b3af3e9
...
...
@@ -617,7 +617,7 @@ int kk_get_product_type_table_size(void)
{
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
;
kk_scene_action_detail_t
info
=
{
0
};
...
...
@@ -627,22 +627,38 @@ static int _kk_indoor_air_info_handle(char* deviceCode,char* propertyName,char*
info
.
epNum
=
ep
;
info
.
delay
=
delay
;
kk_scene_action_add
(
gwDeviceCode
,
sceneId
,
info
);
if
(
insert
){
res
=
kk_scene_insert_scene_action
(
type
,
deviceCode
,
info
.
epNum
,
propertyName
,
propertyValue
,
info
.
delay
,
sceneId
,
gwDeviceCode
);
if
(
res
!=
SUCCESS_RETURN
){
INFO_PRINT
(
"kk_subDev_set_action_by_productType fail!!!
\n
"
);
}
}
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
};
char
data
[
32
]
=
{
0
};
char
ep
[
8
]
=
{
0
};
int
res
=
0
;
int
i
=
0
;
int
allRoom
=
(
strcmp
(
roomId
,
"-1"
)
==
0
)
?
1
:
0
;
int
count
=
kk_indoorAir_query_epnums
(
deviceCode
,
eplist
);
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
){
cJSON
*
json
=
cJSON_Parse
(
propertyValue
);
if
(
json
==
NULL
)
{
...
...
@@ -652,20 +668,22 @@ static int _kk_indoor_air_handle(char* deviceCode, char *sceneId, char *property
if
(
Temperature
==
NULL
)
{
cJSON_Delete
(
json
);
return
-
1
;}
memset
(
data
,
0x0
,
sizeof
(
data
));
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"
);
if
(
WindSpeed
==
NULL
)
{
cJSON_Delete
(
json
);
return
-
1
;}
memset
(
data
,
0x0
,
sizeof
(
data
));
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"
);
if
(
WorkMode
==
NULL
){
cJSON_Delete
(
json
);
return
-
1
;}
memset
(
data
,
0x0
,
sizeof
(
data
));
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
);
kk_scene_insert_scene_action
(
type
,
deviceCode
,
eplist
[
i
],
propertyName
,
propertyValue
,
delay
,
sceneId
,
gwDeviceCode
);
}
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
;
...
...
@@ -704,7 +722,7 @@ static int _kk_air_switch_handle(char* deviceCode, char *sceneId, char *property
cJSON_Delete(json);
#endif
}
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
;
...
...
@@ -758,7 +776,8 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *room
continue
;
}
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
;
}
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
);
...
...
midware/midware/midware.c
View file @
0b3af3e9
...
...
@@ -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
);
}
gwExist
=
kk_get_device_roomInfo
(
deviceCode
,
1
,
roomName
,
roomId
);
//获取网关房间信息
if
(
gwExist
){
char
name
[
128
]
=
{
0
};
sprintf
(
name
,
"空调%d"
,
epNum
);
sprintf
(
epNumStr
,
"%d"
,
epNum
);
kk_room_dev_add
(
roomId
,
roomName
,
deviceCode
,
epNumStr
,
name
);
//
gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息
//
if(gwExist){
//
char name[128] = {0};
//
sprintf(name,"空调%d",epNum);
//
sprintf(epNumStr,"%d",epNum);
//
kk_room_dev_add(roomId,roomName,deviceCode,epNumStr,name);
}
//
}
return
0
;
}
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
}
kk_subAirSwitch_db_insert
(
deviceCode
,
property
->
identifier
,
property
->
data_value
.
type
,
epNum
);
}
gwExist
=
kk_get_device_roomInfo
(
deviceCode
,
1
,
roomName
,
roomId
);
//获取网关房间信息
if
(
gwExist
){
char
name
[
128
]
=
{
0
};
sprintf
(
name
,
"空开%d"
,
epNum
);
sprintf
(
epNumStr
,
"%d"
,
epNum
);
kk_room_dev_add
(
roomId
,
roomName
,
deviceCode
,
epNumStr
,
name
);
//
gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息
//
if(gwExist){
//
char name[128] = {0};
//
sprintf(name,"空开%d",epNum);
//
sprintf(epNumStr,"%d",epNum);
//
kk_room_dev_add(roomId,roomName,deviceCode,epNumStr,name);
}
//
}
return
0
;
}
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
}
kk_subFreshAir_db_insert
(
deviceCode
,
property
->
identifier
,
property
->
data_value
.
type
,
epNum
);
}
gwExist
=
kk_get_device_roomInfo
(
deviceCode
,
1
,
roomName
,
roomId
);
//获取网关房间信息
if
(
gwExist
){
char
name
[
128
]
=
{
0
};
sprintf
(
name
,
"新风%d"
,
epNum
);
sprintf
(
epNumStr
,
"%d"
,
epNum
);
kk_room_dev_add
(
roomId
,
roomName
,
deviceCode
,
epNumStr
,
name
);
//
gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息
//
if(gwExist){
//
char name[128] = {0};
//
sprintf(name,"新风%d",epNum);
//
sprintf(epNumStr,"%d",epNum);
//
kk_room_dev_add(roomId,roomName,deviceCode,epNumStr,name);
}
//
}
return
0
;
}
void
kk_platMsg_handle
(
void
*
data
,
char
*
chalMark
){
...
...
@@ -2065,10 +2065,6 @@ int main(const int argc, const char **argv)
//int i;
//kk_tsl_t *dev_shadow[30] = {NULL};
mid_ctx_t
*
mid_ctx
=
kk_mid_get_ctx
();
openlog
(
"midware"
,
LOG_PID
,
LOG_USER
);
memset
(
mid_ctx
,
0
,
sizeof
(
mid_ctx_t
));
#ifdef CONFIG_NDK
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment