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
9e5016f1
Commit
9e5016f1
authored
Mar 17, 2022
by
陈伟灿
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'cwc' into 'master'
【修改内容】修改内存泄漏 See merge request chenweican/k-sdk!209
parents
3df6f3ce
cdd1e136
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
77 additions
and
47 deletions
+77
-47
application/klansdk/kk_data_handle.c
application/klansdk/kk_data_handle.c
+2
-2
application/klansdk/kk_lan_sync.c
application/klansdk/kk_lan_sync.c
+15
-6
midware/midware/dm/kk_dm_msg.c
midware/midware/dm/kk_dm_msg.c
+3
-3
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+4
-6
midware/midware/dm/kk_property_get_handle.c
midware/midware/dm/kk_property_get_handle.c
+1
-0
midware/midware/dm/kk_sync_data.c
midware/midware/dm/kk_sync_data.c
+16
-21
midware/midware/midware.c
midware/midware/midware.c
+31
-8
midware/midware/scene/kk_scene_handle.c
midware/midware/scene/kk_scene_handle.c
+5
-1
No files found.
application/klansdk/kk_data_handle.c
View file @
9e5016f1
...
@@ -758,13 +758,13 @@ static int kk_device_historyalarm_handle(cJSON *payload)
...
@@ -758,13 +758,13 @@ static int kk_device_historyalarm_handle(cJSON *payload)
cJSON
*
productCodeJ
=
cJSON_GetObjectItem
(
client_list
,
"productCode"
);
cJSON
*
productCodeJ
=
cJSON_GetObjectItem
(
client_list
,
"productCode"
);
if
(
productCodeJ
==
NULL
){
if
(
productCodeJ
==
NULL
){
cJSON_Delete
(
infoItem
);
cJSON_Delete
(
infoItem
);
printf
(
"----------------->6
\n
"
);
cJSON_Delete
(
contentObj
);
return
-
1
;
return
-
1
;
}
}
cJSON
*
itime
=
cJSON_GetObjectItem
(
client_list
,
"alarm_time"
);
cJSON
*
itime
=
cJSON_GetObjectItem
(
client_list
,
"alarm_time"
);
if
(
itime
==
NULL
){
if
(
itime
==
NULL
){
cJSON_Delete
(
infoItem
);
cJSON_Delete
(
infoItem
);
printf
(
"----------------->1212
\n
"
);
cJSON_Delete
(
contentObj
);
return
-
1
;
return
-
1
;
}
}
sprintf
(
timerStr
,
"%d"
,
itime
->
valueint
);
sprintf
(
timerStr
,
"%d"
,
itime
->
valueint
);
...
...
application/klansdk/kk_lan_sync.c
View file @
9e5016f1
...
@@ -441,6 +441,9 @@ int kk_sync_device(cJSON *roomId,cJSON *inDevAry,cJSON *outDevAry)
...
@@ -441,6 +441,9 @@ int kk_sync_device(cJSON *roomId,cJSON *inDevAry,cJSON *outDevAry)
int
kk_sync_devices_to_sdk
(
cJSON
*
root
,
cJSON
*
data
)
int
kk_sync_devices_to_sdk
(
cJSON
*
root
,
cJSON
*
data
)
{
{
cJSON
*
rooms
=
cJSON_GetObjectItem
(
data
,
ROOMS_STR
);
cJSON
*
rooms
=
cJSON_GetObjectItem
(
data
,
ROOMS_STR
);
if
(
rooms
==
NULL
||
rooms
->
type
!=
cJSON_Array
){
return
-
1
;
}
cJSON
*
deviceAry
=
cJSON_CreateArray
();
cJSON
*
deviceAry
=
cJSON_CreateArray
();
int
i
,
num
=
cJSON_GetArraySize
(
rooms
);
int
i
,
num
=
cJSON_GetArraySize
(
rooms
);
cJSON
*
roomId
,
*
devices
;
cJSON
*
roomId
,
*
devices
;
...
@@ -653,8 +656,10 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
...
@@ -653,8 +656,10 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
kk_map_dev_node_t
*
n
=
NULL
;
kk_map_dev_node_t
*
n
=
NULL
;
if
(
root
==
NULL
){
return
-
1
;
}
cJSON
*
devStatusAry
=
cJSON_CreateArray
();
cJSON
*
devStatusAry
=
cJSON_CreateArray
();
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
_kk_map_dev_mutex_lock
();
_kk_map_dev_mutex_lock
();
list_for_each_entry_safe
(
node
,
n
,
&
ctx
->
dev_list
,
linked_list
,
kk_map_dev_node_t
){
list_for_each_entry_safe
(
node
,
n
,
&
ctx
->
dev_list
,
linked_list
,
kk_map_dev_node_t
){
...
@@ -686,7 +691,7 @@ cJSON *kk_sync_gw_version_to_sdk(cJSON *root,cJSON *data)
...
@@ -686,7 +691,7 @@ cJSON *kk_sync_gw_version_to_sdk(cJSON *root,cJSON *data)
cJSON
*
gw_version
=
cJSON_CreateArray
();
cJSON
*
gw_version
=
cJSON_CreateArray
();
int
i
,
gw_num
;
int
i
,
gw_num
;
if
(
devicesAry
->
type
!=
cJSON_Array
){
if
(
devicesAry
==
NULL
||
devicesAry
->
type
!=
cJSON_Array
){
return
NULL
;
return
NULL
;
}
}
...
@@ -787,6 +792,7 @@ int kk_sync_guard_to_sdk(cJSON *root,cJSON *data)
...
@@ -787,6 +792,7 @@ int kk_sync_guard_to_sdk(cJSON *root,cJSON *data)
cJSON_AddItemToObject
(
root
,
"guard"
,
guard
);
cJSON_AddItemToObject
(
root
,
"guard"
,
guard
);
if
(
properties
==
NULL
||
properties
->
type
!=
cJSON_Object
){
if
(
properties
==
NULL
||
properties
->
type
!=
cJSON_Object
){
return
-
1
;
return
-
1
;
}
}
...
@@ -1180,25 +1186,27 @@ cJSON *kk_sync_central_ac_to_sdk(cJSON *root,cJSON *data)
...
@@ -1180,25 +1186,27 @@ cJSON *kk_sync_central_ac_to_sdk(cJSON *root,cJSON *data)
char
roomId
[
32
]
=
{
0
};
char
roomId
[
32
]
=
{
0
};
char
deviceName
[
256
]
=
{
0
};
char
deviceName
[
256
]
=
{
0
};
cJSON
*
central_ac_gws
=
cJSON_CreateArray
();
// SYN_CENTRAL_AC_GW ac;
// SYN_CENTRAL_AC_GW ac;
if
(
data
==
NULL
){
if
(
data
==
NULL
){
return
NULL
;
return
NULL
;
}
}
kk_clear_indoor_data
();
kk_clear_indoor_data
();
cJSON
*
gwAry
=
cJSON_GetObjectItem
(
data
,
DEVICES_STR
);
cJSON
*
gwAry
=
cJSON_GetObjectItem
(
data
,
DEVICES_STR
);
if
(
gwAry
==
NULL
)
return
NULL
;
if
(
gwAry
==
NULL
)
return
NULL
;
cJSON
*
central_ac_gws
=
cJSON_CreateArray
();
gw_num
=
cJSON_GetArraySize
(
gwAry
);
gw_num
=
cJSON_GetArraySize
(
gwAry
);
for
(
i
=
0
;
i
<
gw_num
;
i
++
){
for
(
i
=
0
;
i
<
gw_num
;
i
++
){
cJSON
*
gwitem
=
cJSON_GetArrayItem
(
gwAry
,
i
);
cJSON
*
gwitem
=
cJSON_GetArrayItem
(
gwAry
,
i
);
cJSON
*
gwDeviceCode
=
cJSON_GetObjectItem
(
gwitem
,
"deviceCode"
);
cJSON
*
gwDeviceCode
=
cJSON_GetObjectItem
(
gwitem
,
"deviceCode"
);
if
(
gwitem
==
NULL
)
return
NULL
;
if
(
gwitem
==
NULL
)
{
cJSON_Delete
(
central_ac_gws
);
return
NULL
;}
cJSON
*
subAry
=
cJSON_GetObjectItem
(
gwitem
,
DEVICES_STR
);
cJSON
*
subAry
=
cJSON_GetObjectItem
(
gwitem
,
DEVICES_STR
);
if
(
subAry
==
NULL
)
return
NULL
;
if
(
subAry
==
NULL
)
{
cJSON_Delete
(
central_ac_gws
);
return
NULL
;}
sub_num
=
cJSON_GetArraySize
(
subAry
);
sub_num
=
cJSON_GetArraySize
(
subAry
);
for
(
j
=
0
;
j
<
sub_num
;
j
++
){
for
(
j
=
0
;
j
<
sub_num
;
j
++
){
cJSON
*
subitem
=
cJSON_GetArrayItem
(
subAry
,
j
);
cJSON
*
subitem
=
cJSON_GetArrayItem
(
subAry
,
j
);
if
(
subitem
==
NULL
)
return
NULL
;
if
(
subitem
==
NULL
)
{
cJSON_Delete
(
central_ac_gws
);
return
NULL
;}
cJSON
*
productCode
=
cJSON_GetObjectItem
(
subitem
,
"productCode"
);
cJSON
*
productCode
=
cJSON_GetObjectItem
(
subitem
,
"productCode"
);
if
(
productCode
!=
NULL
&&
strcmp
(
productCode
->
valuestring
,
"3062"
)
==
0
){
//空调网关设备
if
(
productCode
!=
NULL
&&
strcmp
(
productCode
->
valuestring
,
"3062"
)
==
0
){
//空调网关设备
cJSON
*
deviceCode
=
cJSON_GetObjectItem
(
subitem
,
"deviceCode"
);
cJSON
*
deviceCode
=
cJSON_GetObjectItem
(
subitem
,
"deviceCode"
);
...
@@ -1225,6 +1233,7 @@ cJSON *kk_sync_central_ac_to_sdk(cJSON *root,cJSON *data)
...
@@ -1225,6 +1233,7 @@ cJSON *kk_sync_central_ac_to_sdk(cJSON *root,cJSON *data)
int
epsize
=
cJSON_GetArraySize
(
epsAry
);
int
epsize
=
cJSON_GetArraySize
(
epsAry
);
g_indoor_item
=
(
CENTRAL_AC_INDOOR_ITEM
*
)
malloc
(
sizeof
(
CENTRAL_AC_INDOOR_ITEM
)
*
epsize
);
g_indoor_item
=
(
CENTRAL_AC_INDOOR_ITEM
*
)
malloc
(
sizeof
(
CENTRAL_AC_INDOOR_ITEM
)
*
epsize
);
if
(
g_indoor_item
==
NULL
){
if
(
g_indoor_item
==
NULL
){
cJSON_Delete
(
central_ac_gws
);
return
NULL
;
return
NULL
;
}
}
memset
(
g_indoor_item
,
0x0
,
sizeof
(
CENTRAL_AC_INDOOR_ITEM
)
*
epsize
);
memset
(
g_indoor_item
,
0x0
,
sizeof
(
CENTRAL_AC_INDOOR_ITEM
)
*
epsize
);
...
...
midware/midware/dm/kk_dm_msg.c
View file @
9e5016f1
...
@@ -758,6 +758,7 @@ int dm_msg_thing_syncinfo_reply(void){
...
@@ -758,6 +758,7 @@ int dm_msg_thing_syncinfo_reply(void){
info
=
kk_sync_get_info
();
info
=
kk_sync_get_info
();
dm_msg_response
(
&
request
,
&
response
,
info
,
strlen
(
info
),
NULL
);
dm_msg_response
(
&
request
,
&
response
,
info
,
strlen
(
info
),
NULL
);
free
(
info
);
free
(
info
);
info
=
NULL
;
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
dm_msg_thing_syncinfopush_reply
(
void
){
int
dm_msg_thing_syncinfopush_reply
(
void
){
...
@@ -780,6 +781,7 @@ int dm_msg_thing_syncinfopush_reply(void){
...
@@ -780,6 +781,7 @@ int dm_msg_thing_syncinfopush_reply(void){
info
=
kk_sync_get_info
();
info
=
kk_sync_get_info
();
dm_msg_response
(
&
request
,
&
response
,
info
,
strlen
(
info
),
NULL
);
dm_msg_response
(
&
request
,
&
response
,
info
,
strlen
(
info
),
NULL
);
free
(
info
);
free
(
info
);
info
=
NULL
;
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
@@ -809,16 +811,14 @@ int dm_msg_thing_syncdeviceinfo_reply(cJSON *msgId){
...
@@ -809,16 +811,14 @@ int dm_msg_thing_syncdeviceinfo_reply(cJSON *msgId){
//ERROR_PRINT("dm_msg_request_parse failed");
//ERROR_PRINT("dm_msg_request_parse failed");
//return res ;
//return res ;
//}
//}
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
response
.
msgTypeStr
=
KK_THING_SERVICE_SYNCDEVICEINFO_REPLY
;
response
.
msgTypeStr
=
KK_THING_SERVICE_SYNCDEVICEINFO_REPLY
;
memcpy
(
response
.
productCode
,
node
->
productCode
,
strlen
(
node
->
productCode
));
memcpy
(
response
.
productCode
,
node
->
productCode
,
strlen
(
node
->
productCode
));
memcpy
(
response
.
deviceCode
,
node
->
deviceCode
,
strlen
(
node
->
deviceCode
));
memcpy
(
response
.
deviceCode
,
node
->
deviceCode
,
strlen
(
node
->
deviceCode
));
response
.
code
=
(
res
==
SUCCESS_RETURN
)
?
(
IOTX_DM_ERR_CODE_SUCCESS
)
:
(
IOTX_DM_ERR_CODE_REQUEST_ERROR
);
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
();
info
=
kk_sync_get_info
();
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
dm_msg_sync_response
(
&
request
,
&
response
,
info
,
strlen
(
info
),
NULL
);
dm_msg_sync_response
(
&
request
,
&
response
,
info
,
strlen
(
info
),
NULL
);
free
(
info
);
free
(
info
);
info
=
NULL
;
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
...
midware/midware/dm/kk_linkkit.c
View file @
9e5016f1
...
@@ -443,14 +443,16 @@ int kk_topo_delete_handle(cJSON *payload,cJSON *buf)
...
@@ -443,14 +443,16 @@ int kk_topo_delete_handle(cJSON *payload,cJSON *buf)
cJSON_AddStringToObject
(
info
,
MSG_DEVICE_CODE_STR
,
gwnode
->
deviceCode
);
cJSON_AddStringToObject
(
info
,
MSG_DEVICE_CODE_STR
,
gwnode
->
deviceCode
);
cJSON_AddStringToObject
(
info
,
MSG_PRODUCT_CODE_STR
,
gwnode
->
productCode
);
cJSON_AddStringToObject
(
info
,
MSG_PRODUCT_CODE_STR
,
gwnode
->
productCode
);
cJSON_AddItemToObject
(
rootData
,
"info"
,
info
);
cJSON_AddItemToObject
(
rootData
,
"info"
,
info
);
cJSON_AddItemToObject
(
rootData
,
"payload"
,
payload
);
char
*
payload11
=
cJSON_Print
(
payload
);
cJSON_AddItemToObject
(
rootData
,
"payload"
,
cJSON_Parse
(
payload11
));
char
*
pnewout
=
cJSON_Print
(
rootData
);
char
*
pnewout
=
cJSON_Print
(
rootData
);
kk_sendData2gw
(
pnewout
,
strlen
(
pnewout
),
node
->
fatherDeviceCode
);
//send to gw itself
kk_sendData2gw
(
pnewout
,
strlen
(
pnewout
),
node
->
fatherDeviceCode
);
//send to gw itself
kk_scene_update_device_active
(
deviceCode
,
-
1
,
0
);
kk_scene_update_device_active
(
deviceCode
,
-
1
,
0
);
kk_scene_rebuild_device_active
(
deviceCode
,
-
1
);
kk_scene_rebuild_device_active
(
deviceCode
,
-
1
);
dm_mgr_subdev_delete
(
deviceCode
);
dm_mgr_subdev_delete
(
deviceCode
);
free
(
pnewout
);
free
(
pnewout
);
//cJSON_Delete(rootData);
free
(
payload11
);
cJSON_Delete
(
rootData
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
@@ -999,7 +1001,6 @@ static int kk_service_addFloor_reply(cJSON *root,cJSON *msgId,char *floorId,char
...
@@ -999,7 +1001,6 @@ static int kk_service_addFloor_reply(cJSON *root,cJSON *msgId,char *floorId,char
cJSON_AddStringToObject
(
paramInfo
,
"name"
,
name
);
cJSON_AddStringToObject
(
paramInfo
,
"name"
,
name
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramInfo
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramInfo
);
char
*
payload11
=
cJSON_Print
(
payload
);
char
*
payload11
=
cJSON_Print
(
payload
);
printf
(
"------------------------------>payload11:%s
\n
"
,
payload11
);
kk_sendData2app
(
infff
,
payload11
,
0
);
kk_sendData2app
(
infff
,
payload11
,
0
);
free
(
payload11
);
free
(
payload11
);
free
(
infff
);
free
(
infff
);
...
@@ -1144,7 +1145,6 @@ static int kk_service_addScreen_handle_reply(cJSON *param,cJSON *msgId,char *ser
...
@@ -1144,7 +1145,6 @@ static int kk_service_addScreen_handle_reply(cJSON *param,cJSON *msgId,char *ser
cJSON_AddItemToObject
(
payload
,
"params"
,
paramInfo
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramInfo
);
char
*
payload11
=
cJSON_Print
(
payload
);
char
*
payload11
=
cJSON_Print
(
payload
);
printf
(
"------------------------------>payload11:%s
\n
"
,
payload11
);
kk_sendData2app
(
infff
,
payload11
,
0
);
kk_sendData2app
(
infff
,
payload11
,
0
);
free
(
payload11
);
free
(
payload11
);
free
(
infff
);
free
(
infff
);
...
@@ -1189,7 +1189,6 @@ static int kk_service_client_online_push(cJSON *param,cJSON *msgId,char *serialI
...
@@ -1189,7 +1189,6 @@ static int kk_service_client_online_push(cJSON *param,cJSON *msgId,char *serialI
cJSON_AddNumberToObject
(
paramInfo
,
"online"
,
1
);
cJSON_AddNumberToObject
(
paramInfo
,
"online"
,
1
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramInfo
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramInfo
);
char
*
payload11
=
cJSON_Print
(
payload
);
char
*
payload11
=
cJSON_Print
(
payload
);
printf
(
"------------------------------>payload11:%s
\n
"
,
payload11
);
kk_sendData2app
(
infff
,
payload11
,
0
);
kk_sendData2app
(
infff
,
payload11
,
0
);
free
(
payload11
);
free
(
payload11
);
free
(
infff
);
free
(
infff
);
...
@@ -1723,7 +1722,6 @@ static int kk_service_getGuardSensors_handle(cJSON *param,cJSON *msgId)
...
@@ -1723,7 +1722,6 @@ static int kk_service_getGuardSensors_handle(cJSON *param,cJSON *msgId)
cJSON_AddStringToObject
(
Item
,
"DeviceCode"
,
pList
[
i
].
deviceCode
);
cJSON_AddStringToObject
(
Item
,
"DeviceCode"
,
pList
[
i
].
deviceCode
);
cJSON_AddItemToArray
(
paramArray
,
Item
);
cJSON_AddItemToArray
(
paramArray
,
Item
);
}
}
char
*
paramArray22
=
cJSON_Print
(
paramArray
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramArray
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramArray
);
char
*
payload11
=
cJSON_Print
(
payload
);
char
*
payload11
=
cJSON_Print
(
payload
);
kk_sendData2app
(
infff
,
payload11
,
0
);
kk_sendData2app
(
infff
,
payload11
,
0
);
...
...
midware/midware/dm/kk_property_get_handle.c
View file @
9e5016f1
...
@@ -238,6 +238,7 @@ static int kk_property_sendtogw_handle(cJSON *payload,cJSON *info_root,char *dev
...
@@ -238,6 +238,7 @@ static int kk_property_sendtogw_handle(cJSON *payload,cJSON *info_root,char *dev
dm_mgr_dev_node_t
*
node
=
NULL
;
dm_mgr_dev_node_t
*
node
=
NULL
;
res
=
dm_mgr_get_device_by_devicecode
(
deviceCode
,
&
node
);
res
=
dm_mgr_get_device_by_devicecode
(
deviceCode
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
){
if
(
res
!=
SUCCESS_RETURN
){
cJSON_Delete
(
rootData
);
return
res
;
return
res
;
}
}
char
*
info_rootS
=
cJSON_Print
(
info_root
);
char
*
info_rootS
=
cJSON_Print
(
info_root
);
...
...
midware/midware/dm/kk_sync_data.c
View file @
9e5016f1
...
@@ -82,7 +82,7 @@ int kk_sync_init(void)
...
@@ -82,7 +82,7 @@ int kk_sync_init(void)
}
}
static
cJSON
*
kk_get_room_devices
(
const
char
*
roomId
)
static
int
kk_get_room_devices
(
cJSON
*
item
,
const
char
*
roomId
)
{
{
dm_mgr_dev_node_t
*
node
=
NULL
;
dm_mgr_dev_node_t
*
node
=
NULL
;
const
char
*
selectCmd
=
"select * from AreaDevInfo WHERE roomId = '%s';"
;
const
char
*
selectCmd
=
"select * from AreaDevInfo WHERE roomId = '%s';"
;
...
@@ -98,15 +98,15 @@ static cJSON * kk_get_room_devices(const char *roomId)
...
@@ -98,15 +98,15 @@ static cJSON * kk_get_room_devices(const char *roomId)
sqlCmd
=
sqlite3_mprintf
(
selectCmd
,
roomId
);
sqlCmd
=
sqlite3_mprintf
(
selectCmd
,
roomId
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
char
devName
[
64
]
=
{
0
};
char
devName
[
64
]
=
{
0
};
deviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
deviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
epNum
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_EPNUM
);
epNum
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_EPNUM
);
res
=
dm_mgr_get_device_by_devicecode
((
char
*
)
deviceCode
,
&
node
);
res
=
dm_mgr_get_device_by_devicecode
((
char
*
)
deviceCode
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"ERROR [%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
ERROR_PRINT
(
"ERROR [%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
return
NULL
;
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
-
1
;
}
}
if
(
kk_check_multi_ep_num
(
deviceCode
)){
if
(
kk_check_multi_ep_num
(
deviceCode
)){
dev
=
cJSON_CreateObject
();
dev
=
cJSON_CreateObject
();
...
@@ -123,13 +123,12 @@ static cJSON * kk_get_room_devices(const char *roomId)
...
@@ -123,13 +123,12 @@ static cJSON * kk_get_room_devices(const char *roomId)
//cJSON_AddStringToObject(dev,KK_SYNC_SCENE_EPNUM_STR,epNum);
//cJSON_AddStringToObject(dev,KK_SYNC_SCENE_EPNUM_STR,epNum);
kk_get_device_name
(
deviceCode
,
epNum
,
devName
,
sizeof
(
devName
));
kk_get_device_name
(
deviceCode
,
epNum
,
devName
,
sizeof
(
devName
));
cJSON_AddStringToObject
(
dev
,
"name"
,
devName
);
cJSON_AddStringToObject
(
dev
,
"name"
,
devName
);
cJSON_AddItemToArray
(
devs
,
dev
);
cJSON_AddItemToArray
(
devs
,
dev
);
}
}
sqlite3_free
(
sqlCmd
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
sqlite3_finalize
(
stmt
);
cJSON_AddItemToObject
(
item
,
KK_SYNC_DEVICES_STR
,
devs
);
return
devs
;
return
0
;
}
}
...
@@ -190,9 +189,7 @@ static int kk_get_rooms_info(cJSON *data)
...
@@ -190,9 +189,7 @@ static int kk_get_rooms_info(cJSON *data)
cJSON_AddStringToObject
(
roomItem
,
KK_SYNC_ROOMID_STR
,
roomId
);
cJSON_AddStringToObject
(
roomItem
,
KK_SYNC_ROOMID_STR
,
roomId
);
cJSON_AddStringToObject
(
roomItem
,
KK_SYNC_NANE_STR
,
roomName
);
cJSON_AddStringToObject
(
roomItem
,
KK_SYNC_NANE_STR
,
roomName
);
cJSON_AddStringToObject
(
roomItem
,
KK_SYNC_ROOMICON
,
roomIcon
);
cJSON_AddStringToObject
(
roomItem
,
KK_SYNC_ROOMICON
,
roomIcon
);
kk_get_room_devices
(
roomItem
,
roomId
);
roomDevicesArray
=
kk_get_room_devices
(
roomId
);
cJSON_AddItemToObject
(
roomItem
,
KK_SYNC_DEVICES_STR
,
roomDevicesArray
);
scenesArray
=
kk_get_room_sences
(
roomId
);
scenesArray
=
kk_get_room_sences
(
roomId
);
cJSON_AddItemToObject
(
roomItem
,
KK_SYNC_SCENE_STR
,
scenesArray
);
cJSON_AddItemToObject
(
roomItem
,
KK_SYNC_SCENE_STR
,
scenesArray
);
...
@@ -591,10 +588,11 @@ static cJSON * kk_get_properties_info_obj(char *deviceCode)
...
@@ -591,10 +588,11 @@ static cJSON * kk_get_properties_info_obj(char *deviceCode)
char
*
valueStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
int
valueType
=
0
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
cJSON
*
obj
=
cJSON_CreateObject
();
if
(
deviceCode
==
NULL
){
if
(
deviceCode
==
NULL
){
return
NULL
;
return
NULL
;
}
}
cJSON
*
obj
=
cJSON_CreateObject
();
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE deviceCode = '%s' and devType=%d;"
,
deviceCode
,
KK_DM_DEVICE_SUBDEV
);
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
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
...
@@ -826,8 +824,6 @@ static int kk_get_gw_devices_info(cJSON *gwdevices)
...
@@ -826,8 +824,6 @@ static int kk_get_gw_devices_info(cJSON *gwdevices)
gw_productCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_PRODUCTCODE
);
gw_productCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_PRODUCTCODE
);
gw_version
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_VERSION
);
gw_version
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_VERSION
);
gw_isline
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_ONLINE
);
gw_isline
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_ONLINE
);
printf
(
"gw_deviceCode:%s
\n
"
,
gw_deviceCode
);
printf
(
"gw_productCode:%s
\n
"
,
gw_productCode
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_DEVICECODE_STR
,
gw_deviceCode
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_DEVICECODE_STR
,
gw_deviceCode
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_VERSION_STR
,
gw_version
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_VERSION_STR
,
gw_version
);
_kk_deviceCode_switchto_mac
(
gw_deviceCode
,
macaddr
);
_kk_deviceCode_switchto_mac
(
gw_deviceCode
,
macaddr
);
...
@@ -1506,9 +1502,10 @@ char *kk_sync_get_info()
...
@@ -1506,9 +1502,10 @@ char *kk_sync_get_info()
char
ccu_productCode
[
PRODUCT_CODE_MAXLEN
]
=
{
0
};
char
ccu_productCode
[
PRODUCT_CODE_MAXLEN
]
=
{
0
};
char
version
[
32
]
=
{
0
};
char
version
[
32
]
=
{
0
};
char
cloudstatus_str
[
16
]
=
{
0
};
char
cloudstatus_str
[
16
]
=
{
0
};
cJSON
*
data
=
cJSON_CreateObject
();
cJSON
*
data
=
cJSON_CreateObject
();
kk_get_rooms_info
(
data
);
kk_get_rooms_info
(
data
);
kk_get_devices_info
(
data
);
kk_get_devices_info
(
data
);
kk_get_scenes_info
(
data
);
kk_get_scenes_info
(
data
);
kk_get_group_info
(
data
);
kk_get_group_info
(
data
);
...
@@ -1521,11 +1518,9 @@ char *kk_sync_get_info()
...
@@ -1521,11 +1518,9 @@ char *kk_sync_get_info()
cJSON_AddStringToObject
(
data
,
KK_SYNC_ONLINE_STR
,
cloudstatus_str
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_ONLINE_STR
,
cloudstatus_str
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_PRODUCTCODE_STR
,
ccu_productCode
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_PRODUCTCODE_STR
,
ccu_productCode
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_VERSION_STR
,
version
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_VERSION_STR
,
version
);
kk_get_ccu_properties_info
(
data
);
kk_get_ccu_properties_info
(
data
);
out
=
cJSON_Print
(
data
);
out
=
cJSON_Print
(
data
);
INFO_PRINT
(
"kk_sync_get_info:%s
\n
"
,
out
);
//
INFO_PRINT("kk_sync_get_info:%s\n",out);
cJSON_Delete
(
data
);
cJSON_Delete
(
data
);
//free(out);
//free(out);
return
out
;
return
out
;
...
...
midware/midware/midware.c
View file @
9e5016f1
...
@@ -482,9 +482,17 @@ static int kk_panel_bind_motor_delete(const char* deviceCode,int dummyId)
...
@@ -482,9 +482,17 @@ static int kk_panel_bind_motor_delete(const char* deviceCode,int dummyId)
if
(
SUCCESS_RETURN
!=
dm_mgr_get_device_by_devicecode
((
char
*
)
deviceCode
,
&
node
)){
if
(
SUCCESS_RETURN
!=
dm_mgr_get_device_by_devicecode
((
char
*
)
deviceCode
,
&
node
)){
cJSON_Delete
(
root
);
cJSON_Delete
(
info
);
cJSON_Delete
(
payload
);
cJSON_Delete
(
paras
);
return
-
1
;
return
-
1
;
}
}
if
(
SUCCESS_RETURN
!=
dm_mgr_get_device_by_devicecode
(
node
->
fatherDeviceCode
,
&
gw_node
)){
if
(
SUCCESS_RETURN
!=
dm_mgr_get_device_by_devicecode
(
node
->
fatherDeviceCode
,
&
gw_node
)){
cJSON_Delete
(
root
);
cJSON_Delete
(
info
);
cJSON_Delete
(
payload
);
cJSON_Delete
(
paras
);
return
-
1
;
return
-
1
;
}
}
...
@@ -530,9 +538,17 @@ static int kk_panel_bind_motor_add_actions(const char* deviceCode,cJSON* actions
...
@@ -530,9 +538,17 @@ static int kk_panel_bind_motor_add_actions(const char* deviceCode,cJSON* actions
cJSON
*
paras
=
cJSON_CreateObject
();
cJSON
*
paras
=
cJSON_CreateObject
();
if
(
SUCCESS_RETURN
!=
dm_mgr_get_device_by_devicecode
((
char
*
)
deviceCode
,
&
node
)){
if
(
SUCCESS_RETURN
!=
dm_mgr_get_device_by_devicecode
((
char
*
)
deviceCode
,
&
node
)){
cJSON_Delete
(
root
);
cJSON_Delete
(
info
);
cJSON_Delete
(
payload
);
cJSON_Delete
(
paras
);
return
-
1
;
return
-
1
;
}
}
if
(
SUCCESS_RETURN
!=
dm_mgr_get_device_by_devicecode
(
node
->
fatherDeviceCode
,
&
gw_node
)){
if
(
SUCCESS_RETURN
!=
dm_mgr_get_device_by_devicecode
(
node
->
fatherDeviceCode
,
&
gw_node
)){
cJSON_Delete
(
root
);
cJSON_Delete
(
info
);
cJSON_Delete
(
payload
);
cJSON_Delete
(
paras
);
return
-
1
;
return
-
1
;
}
}
...
@@ -755,23 +771,28 @@ int kk_dm_device_subdev_filter(char *data)
...
@@ -755,23 +771,28 @@ int kk_dm_device_subdev_filter(char *data)
cJSON
*
json
;
cJSON
*
json
;
cJSON
*
info_root
;
cJSON
*
info_root
;
cJSON
*
payload
,
*
typeJson
;
cJSON
*
payload
,
*
typeJson
;
char
*
payload_Str
=
NULL
;
cJSON
*
deviceCode
=
NULL
;
cJSON
*
deviceCode
=
NULL
;
if
((
json
=
cJSON_Parse
(
data
))
==
NULL
)
{
if
((
json
=
cJSON_Parse
(
data
))
==
NULL
)
{
WARNING_PRINT
(
"Error before: [%s]
\n
"
,
"cJSON_Parse"
);
WARNING_PRINT
(
"Error before: [%s]
\n
"
,
"cJSON_Parse"
);
return
-
1
;
return
-
1
;
}
}
if
((
info_root
=
cJSON_GetObjectItem
(
json
,
"info"
))
==
NULL
)
if
((
info_root
=
cJSON_GetObjectItem
(
json
,
"info"
))
==
NULL
){
cJSON_Delete
(
json
);
return
-
1
;
return
-
1
;
if
((
typeJson
=
cJSON_GetObjectItem
(
info_root
,
"msgtype"
))
==
NULL
)
}
if
((
typeJson
=
cJSON_GetObjectItem
(
info_root
,
"msgtype"
))
==
NULL
){
cJSON_Delete
(
json
);
return
-
1
;
return
-
1
;
if
((
payload
=
cJSON_GetObjectItem
(
json
,
"payload"
))
==
NULL
)
}
if
((
payload
=
cJSON_GetObjectItem
(
json
,
"payload"
))
==
NULL
){
cJSON_Delete
(
json
);
return
-
1
;
return
-
1
;
}
payload_Str
=
cJSON_Print
(
payload
);
if
((
deviceCode
=
cJSON_GetObjectItem
(
info_root
,
"deviceCode"
))
==
NULL
){
if
((
deviceCode
=
cJSON_GetObjectItem
(
info_root
,
"deviceCode"
))
==
NULL
)
cJSON_Delete
(
json
);
return
-
1
;
return
-
1
;
}
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_REBIND_MOTORS
)
==
0
){
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_REBIND_MOTORS
)
==
0
){
INFO_PRINT
(
"REBIND_MOTORS
\n
"
);
INFO_PRINT
(
"REBIND_MOTORS
\n
"
);
...
@@ -806,6 +827,7 @@ int kk_dm_device_subdev_filter(char *data)
...
@@ -806,6 +827,7 @@ int kk_dm_device_subdev_filter(char *data)
struct
kk_motor_bind_info
*
info
=
(
struct
kk_motor_bind_info
*
)
malloc
(
sizeof
(
struct
kk_motor_bind_info
)
*
KK_MOTOR_BIND_INFO_MAX
);
struct
kk_motor_bind_info
*
info
=
(
struct
kk_motor_bind_info
*
)
malloc
(
sizeof
(
struct
kk_motor_bind_info
)
*
KK_MOTOR_BIND_INFO_MAX
);
if
(
info
==
NULL
){
if
(
info
==
NULL
){
cJSON_Delete
(
json
);
return
-
1
;
return
-
1
;
}
}
memset
(
info
,
0x0
,
sizeof
(
struct
kk_motor_bind_info
)
*
KK_MOTOR_BIND_INFO_MAX
);
memset
(
info
,
0x0
,
sizeof
(
struct
kk_motor_bind_info
)
*
KK_MOTOR_BIND_INFO_MAX
);
...
@@ -823,9 +845,10 @@ int kk_dm_device_subdev_filter(char *data)
...
@@ -823,9 +845,10 @@ int kk_dm_device_subdev_filter(char *data)
free
(
info
);
free
(
info
);
}
else
{
}
else
{
cJSON_Delete
(
json
);
return
-
1
;
return
-
1
;
}
}
cJSON_Delete
(
json
);
return
0
;
return
0
;
}
}
...
...
midware/midware/scene/kk_scene_handle.c
View file @
9e5016f1
...
@@ -1028,6 +1028,7 @@ static int kk_scene_parse_trigger_event_type(const char *type,const cJSON *item,
...
@@ -1028,6 +1028,7 @@ static int kk_scene_parse_trigger_event_type(const char *type,const cJSON *item,
char
*
compareValue
=
cJSON_PrintUnformatted
(
compares
);
char
*
compareValue
=
cJSON_PrintUnformatted
(
compares
);
res
=
kk_scene_insert_scene_trigger
(
type
,
deviceCode
->
valuestring
,
ep
,
res
=
kk_scene_insert_scene_trigger
(
type
,
deviceCode
->
valuestring
,
ep
,
propertyName
->
valuestring
,
""
,
compareValue
,
sceneId
,
isAnd
);
propertyName
->
valuestring
,
""
,
compareValue
,
sceneId
,
isAnd
);
free
(
compareValue
);
return
res
;
return
res
;
}
}
/************************************************************
/************************************************************
...
@@ -2624,6 +2625,7 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha
...
@@ -2624,6 +2625,7 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha
}
}
int
array_size
=
cJSON_GetArraySize
(
json
);
int
array_size
=
cJSON_GetArraySize
(
json
);
if
(
array_size
==
0
){
if
(
array_size
==
0
){
cJSON_Delete
(
json
);
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
for
(
cnt
=
0
;
cnt
<
array_size
;
cnt
++
){
for
(
cnt
=
0
;
cnt
<
array_size
;
cnt
++
){
...
@@ -2633,8 +2635,8 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha
...
@@ -2633,8 +2635,8 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha
if
(
propertyName
==
NULL
){
continue
;
}
if
(
propertyName
==
NULL
){
continue
;
}
if
(
strcmp
(
propertyName
->
valuestring
,
"KeyType"
)
==
0
){
if
(
strcmp
(
propertyName
->
valuestring
,
"KeyType"
)
==
0
){
compareValue
=
cJSON_GetObjectItem
(
pSub
,
"compareValue"
);
compareValue
=
cJSON_GetObjectItem
(
pSub
,
"compareValue"
);
if
(
strcmp
(
compareValue
->
valuestring
,
keyType
)
!=
0
){
if
(
strcmp
(
compareValue
->
valuestring
,
keyType
)
!=
0
){
cJSON_Delete
(
json
);
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
else
{
}
else
{
continue
;
continue
;
...
@@ -2643,10 +2645,12 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha
...
@@ -2643,10 +2645,12 @@ static int _kk_check_lock_trigger_info(char *proName,char *value,char *keyId,cha
if
(
strcmp
(
propertyName
->
valuestring
,
"KeyID"
)
==
0
){
if
(
strcmp
(
propertyName
->
valuestring
,
"KeyID"
)
==
0
){
compareValue
=
cJSON_GetObjectItem
(
pSub
,
"compareValue"
);
compareValue
=
cJSON_GetObjectItem
(
pSub
,
"compareValue"
);
if
(
strcmp
(
compareValue
->
valuestring
,
keyId
)
!=
0
){
if
(
strcmp
(
compareValue
->
valuestring
,
keyId
)
!=
0
){
cJSON_Delete
(
json
);
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
}
}
}
}
cJSON_Delete
(
json
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
else
if
(
!
strcmp
(
proName
,
"LockState"
)
&&
!
strcmp
(
value
,
"1"
)){
}
else
if
(
!
strcmp
(
proName
,
"LockState"
)
&&
!
strcmp
(
value
,
"1"
)){
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
...
...
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