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
c58f1bab
Commit
c58f1bab
authored
Aug 13, 2021
by
陈伟灿
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'yjq' into 'master'
20210813 See merge request chenweican/k-sdk!105
parents
d34621bd
8865bb27
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
829 additions
and
108 deletions
+829
-108
application/klansdk/kk_data_handle.c
application/klansdk/kk_data_handle.c
+4
-6
application/klansdk/kk_findccu_handle.c
application/klansdk/kk_findccu_handle.c
+1
-1
application/klansdk/kk_lan_sync.c
application/klansdk/kk_lan_sync.c
+50
-12
application/klansdk/kk_login_handle.c
application/klansdk/kk_login_handle.c
+2
-2
midware/midware/area/kk_area_handle.c
midware/midware/area/kk_area_handle.c
+32
-0
midware/midware/dm/kk_dm_msg.c
midware/midware/dm/kk_dm_msg.c
+107
-0
midware/midware/dm/kk_dm_msg.h
midware/midware/dm/kk_dm_msg.h
+6
-0
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+6
-1
midware/midware/dm/kk_sync_data.c
midware/midware/dm/kk_sync_data.c
+589
-75
midware/midware/dm/kk_sync_data.h
midware/midware/dm/kk_sync_data.h
+2
-2
midware/midware/midware.c
midware/midware/midware.c
+5
-2
midware/midware/scene/kk_scene_db.c
midware/midware/scene/kk_scene_db.c
+16
-2
midware/midware/scene/kk_scene_handle.c
midware/midware/scene/kk_scene_handle.c
+9
-5
No files found.
application/klansdk/kk_data_handle.c
View file @
c58f1bab
...
...
@@ -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
);
...
...
application/klansdk/kk_findccu_handle.c
View file @
c58f1bab
...
...
@@ -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
);
...
...
application/klansdk/kk_lan_sync.c
View file @
c58f1bab
...
...
@@ -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
;
}
...
...
application/klansdk/kk_login_handle.c
View file @
c58f1bab
...
...
@@ -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__
);
}
...
...
midware/midware/area/kk_area_handle.c
View file @
c58f1bab
...
...
@@ -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
;
...
...
midware/midware/dm/kk_dm_msg.c
View file @
c58f1bab
...
...
@@ -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
,
...
...
midware/midware/dm/kk_dm_msg.h
View file @
c58f1bab
...
...
@@ -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"
...
...
midware/midware/dm/kk_linkkit.c
View file @
c58f1bab
...
...
@@ -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
"
);
...
...
midware/midware/dm/kk_sync_data.c
View file @
c58f1bab
This diff is collapsed.
Click to expand it.
midware/midware/dm/kk_sync_data.h
View file @
c58f1bab
...
...
@@ -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 "trigger
s
"
#define KK_SYNC_SCENE_ITEMS_STR "items"
#define KK_SYNC_SCENE_CONDITION_STR "condition"
#define KK_SYNC_SCENE_CONDITION_STR "condition
s
"
#define KK_SYNC_SCENE_COMPARETYPE_STR "compareType"
#define KK_SYNC_SCENE_COMPAREValue_STR "compareValue"
#define KK_SYNC_SCENE_STARTTIME_STR "startTime"
...
...
midware/midware/midware.c
View file @
c58f1bab
...
...
@@ -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
;
...
...
midware/midware/scene/kk_scene_db.c
View file @
c58f1bab
...
...
@@ -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) \
...
...
midware/midware/scene/kk_scene_handle.c
View file @
c58f1bab
...
...
@@ -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
;
...
...
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