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
f187487c
Commit
f187487c
authored
Aug 27, 2020
by
chen.weican
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【修改内容】增加子设备删除的功能上报,并同步删除对应的数据
【提交人】陈伟灿
parent
798605dc
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
346 additions
and
375 deletions
+346
-375
application/kcloud/kcloud_data_handle.c
application/kcloud/kcloud_data_handle.c
+10
-0
application/kcloud/kk_topic_mng.c
application/kcloud/kk_topic_mng.c
+38
-89
midware/midware/dm/kk_dm_mng.c
midware/midware/dm/kk_dm_mng.c
+40
-9
midware/midware/dm/kk_dm_msg.c
midware/midware/dm/kk_dm_msg.c
+3
-3
midware/midware/dm/kk_sub_db.c
midware/midware/dm/kk_sub_db.c
+3
-2
midware/midware/dm/kk_sub_db.h
midware/midware/dm/kk_sub_db.h
+1
-1
midware/midware/midware.c
midware/midware/midware.c
+8
-253
midware/tsl/tsl_handle/kk_tsl_api.c
midware/tsl/tsl_handle/kk_tsl_api.c
+169
-0
midware/tsl/tsl_handle/kk_tsl_func.c
midware/tsl/tsl_handle/kk_tsl_func.c
+7
-0
platform/zigbee/app/builder/Z3GatewayHost/kk_sub_tsl.c
platform/zigbee/app/builder/Z3GatewayHost/kk_sub_tsl.c
+23
-3
platform/zigbee/app/builder/Z3GatewayHost/kk_test.c
platform/zigbee/app/builder/Z3GatewayHost/kk_test.c
+37
-12
platform/zigbee/app/builder/Z3GatewayHost/kk_test.h
platform/zigbee/app/builder/Z3GatewayHost/kk_test.h
+2
-1
platform/zigbee/app/builder/Z3GatewayHost/rpc_api/src/rpc_interface_parse.c
...p/builder/Z3GatewayHost/rpc_api/src/rpc_interface_parse.c
+5
-2
No files found.
application/kcloud/kcloud_data_handle.c
View file @
f187487c
...
@@ -33,10 +33,15 @@ int _kk_sendto_cloud(cJSON *root)
...
@@ -33,10 +33,15 @@ int _kk_sendto_cloud(cJSON *root)
cJSON
*
info
,
*
pData
;
cJSON
*
info
,
*
pData
;
char
*
topic
=
NULL
;
char
*
topic
=
NULL
;
char
*
payload
=
NULL
;
char
*
payload
=
NULL
;
cJSON
*
msgTypeStr
=
NULL
;
info
=
cJSON_GetObjectItem
(
root
,
MSG_INFO_STR
);
info
=
cJSON_GetObjectItem
(
root
,
MSG_INFO_STR
);
if
(
info
==
NULL
){
if
(
info
==
NULL
){
return
-
1
;
return
-
1
;
}
}
msgTypeStr
=
cJSON_GetObjectItem
(
info
,
MSG_TYPE_STR
);
if
(
msgTypeStr
==
NULL
){
return
-
1
;
}
topic
=
KK_Make_Topic
(
info
);
topic
=
KK_Make_Topic
(
info
);
if
(
topic
==
NULL
){
if
(
topic
==
NULL
){
return
-
1
;
return
-
1
;
...
@@ -46,6 +51,11 @@ int _kk_sendto_cloud(cJSON *root)
...
@@ -46,6 +51,11 @@ int _kk_sendto_cloud(cJSON *root)
free
(
topic
);
free
(
topic
);
return
-
1
;
return
-
1
;
}
}
//If topo delete,need UnSubscribe the topic
if
(
strstr
(
msgTypeStr
->
valuestring
,
KK_FILTER_DELETE_TOPIC
)
!=
NULL
){
KK_Subdev_UnSubscribe
(
pData
);
}
char
*
out
=
cJSON_Print
(
pData
);
char
*
out
=
cJSON_Print
(
pData
);
INFO_PRINT
(
"[%s][%d] payload:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
out
);
INFO_PRINT
(
"[%s][%d] payload:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
out
);
KK_MQTT_SendMsg
(
topic
,(
const
char
*
)
out
);
KK_MQTT_SendMsg
(
topic
,(
const
char
*
)
out
);
...
...
application/kcloud/kk_topic_mng.c
View file @
f187487c
...
@@ -121,7 +121,6 @@ static int _kk_utils_topic(_IN_ const char *name, _IN_ char *product_code,
...
@@ -121,7 +121,6 @@ static int _kk_utils_topic(_IN_ const char *name, _IN_ char *product_code,
static
int
_kk_utils_topic_ota
(
_IN_
char
*
str
,
_OU_
char
**
topic
)
static
int
_kk_utils_topic_ota
(
_IN_
char
*
str
,
_OU_
char
**
topic
)
{
{
int
service_name_len
=
0
;
int
service_name_len
=
0
;
int
*
pstr_uri
=
NULL
;
if
(
str
==
NULL
||
topic
==
NULL
||
*
topic
!=
NULL
)
{
if
(
str
==
NULL
||
topic
==
NULL
||
*
topic
!=
NULL
)
{
return
-
1
;
return
-
1
;
}
}
...
@@ -136,7 +135,43 @@ static int _kk_utils_topic(_IN_ const char *name, _IN_ char *product_code,
...
@@ -136,7 +135,43 @@ static int _kk_utils_topic(_IN_ const char *name, _IN_ char *product_code,
return
0
;
return
0
;
}
}
int
KK_Subdev_UnSubscribe
(
cJSON
*
payload
)
{
cJSON
*
params
,
*
productCode
,
*
deviceCode
;
char
*
topic
=
NULL
;
int
topic_len
=
0
;
if
(
payload
==
NULL
){
goto
errorreturn
;
}
params
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
if
(
params
==
NULL
){
goto
errorreturn
;
}
productCode
=
cJSON_GetObjectItem
(
params
,
MSG_PRODUCT_CODE_STR
);
if
(
productCode
==
NULL
){
goto
errorreturn
;
}
deviceCode
=
cJSON_GetObjectItem
(
params
,
MSG_DEVICE_CODE_STR
);
if
(
deviceCode
==
NULL
){
goto
errorreturn
;
}
topic_len
=
strlen
(
KK_URI_SYS_PREFIX
)
+
strlen
(
productCode
->
valuestring
)
+
strlen
(
deviceCode
->
valuestring
)
+
1
;
topic
=
malloc
(
topic_len
);
if
(
topic
==
NULL
)
{
goto
errorreturn
;
}
memset
(
topic
,
0
,
topic_len
);
snprintf
(
topic
,
topic_len
,
KK_URI_SYS_PREFIX
,
productCode
->
valuestring
,
deviceCode
->
valuestring
);
INFO_PRINT
(
"[%s][%d] TOPIC:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
topic
);
KK_MQTT_UnsubTopic
(
topic
);
free
(
topic
);
return
0
;
errorreturn:
return
-
1
;
}
char
*
KK_Make_Topic
(
cJSON
*
info
)
char
*
KK_Make_Topic
(
cJSON
*
info
)
{
{
cJSON
*
type
,
*
product_code
,
*
device_code
;
cJSON
*
type
,
*
product_code
,
*
device_code
;
...
@@ -147,11 +182,7 @@ char* KK_Make_Topic(cJSON *info)
...
@@ -147,11 +182,7 @@ char* KK_Make_Topic(cJSON *info)
if
(
type
==
NULL
){
if
(
type
==
NULL
){
goto
errorreturn
;
goto
errorreturn
;
}
}
#if 0 //just for test
if(strstr(type->valuestring,"/thing/topo/add") != NULL){
KK_MQTT_SubTopic("/sys/kk/2/1122334455667788/#");
}
#endif
product_code
=
cJSON_GetObjectItem
(
info
,
MSG_PRODUCT_CODE_STR
);
product_code
=
cJSON_GetObjectItem
(
info
,
MSG_PRODUCT_CODE_STR
);
if
(
product_code
==
NULL
){
if
(
product_code
==
NULL
){
goto
errorreturn
;
goto
errorreturn
;
...
@@ -167,88 +198,6 @@ char* KK_Make_Topic(cJSON *info)
...
@@ -167,88 +198,6 @@ char* KK_Make_Topic(cJSON *info)
_kk_utils_topic
(
type
->
valuestring
,
product_code
->
valuestring
,
device_code
->
valuestring
,
&
topic
);
_kk_utils_topic
(
type
->
valuestring
,
product_code
->
valuestring
,
device_code
->
valuestring
,
&
topic
);
}
}
#if 0
switch(msgtype)
{
case MSG_REGISTER:
_kk_utils_topic(DM_URI_THING_SUB_REGISTER,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_UNREGISTER:
_kk_utils_topic(DM_URI_THING_SUB_UNREGISTER,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_TOPOADD:
_kk_utils_topic(DM_URI_THING_TOPO_ADD,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_TOPODELETE:
_kk_utils_topic(DM_URI_THING_TOPO_DELETE,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_TOPOGET:
_kk_utils_topic(DM_URI_THING_TOPO_GET,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_LISTFOUND:
_kk_utils_topic(DM_URI_THING_LIST_FOUND,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_LOGIN:
_kk_utils_topic(DM_URI_COMBINE_LOGIN,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_LOGOUT:
_kk_utils_topic(DM_URI_COMBINE_LOGOUT,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_PROPERTYPOST:
_kk_utils_topic(DM_URI_THING_EVENT_PROPERTY_POST,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_EVENTPOST:
{
cJSON *identify;
char *service_name = NULL;
int service_name_len = 0;
identify = cJSON_GetObjectItem(root, MSG_INDENTIFIER_STR);
if(identify == NULL){
goto errorreturn;
}
service_name_len = strlen(DM_URI_THING_EVENT_POST) + strlen(identify->valuestring) + 1;
service_name = malloc(service_name_len);
if (service_name == NULL) {
goto errorreturn;
}
snprintf(service_name,service_name_len,DM_URI_THING_EVENT_POST,identify->valuestring);
_kk_utils_topic(service_name,product_code->valuestring,device_code->valuestring,&topic);
free(service_name);
}
break;
case MSG_SERVICERESPONSE:
{
cJSON *identify;
char *service_name = NULL;
int service_name_len = 0;
identify = cJSON_GetObjectItem(root, MSG_INDENTIFIER_STR);
if(identify == NULL){
goto errorreturn;
}
service_name_len = strlen(DM_URI_THING_SERVICE_RESPONSE) + strlen(identify->valuestring) + 1;
service_name = malloc(service_name_len);
if (service_name == NULL) {
goto errorreturn;
}
snprintf(service_name,service_name_len,DM_URI_THING_SERVICE_RESPONSE,identify->valuestring);
_kk_utils_topic(service_name,product_code->valuestring,device_code->valuestring,&topic);
free(service_name);
}
break;
case MSG_SETREPLY:
_kk_utils_topic(DM_URI_THING_SERVICE_PROPERTY_SET_REPLY,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_OTA_PROCESS:
_kk_utils_topic_ota(0,product_code->valuestring,device_code->valuestring,&topic);
break;
case MSG_OTA_INFORM:
_kk_utils_topic_ota(1,product_code->valuestring,device_code->valuestring,&topic);
break;
}
#endif
INFO_PRINT
(
"[%s][%d] TOPIC:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
topic
);
INFO_PRINT
(
"[%s][%d] TOPIC:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
topic
);
return
topic
;
return
topic
;
errorreturn:
errorreturn:
...
...
midware/midware/dm/kk_dm_mng.c
View file @
f187487c
...
@@ -315,7 +315,7 @@ int dm_mgr_check_heartbeat_timeout(uint64_t timestamp)
...
@@ -315,7 +315,7 @@ int dm_mgr_check_heartbeat_timeout(uint64_t timestamp)
INFO_PRINT
(
"---------->dev timeout,send offline
\n
"
);
INFO_PRINT
(
"---------->dev timeout,send offline
\n
"
);
search_node
->
isOffline
=
1
;
search_node
->
isOffline
=
1
;
iotx_dm_dev_offline
(
search_node
->
devid
);
iotx_dm_dev_offline
(
search_node
->
devid
);
kk_subDev_update_o
n
line
(
search_node
->
isOffline
,
search_node
->
deviceCode
);
kk_subDev_update_o
ff
line
(
search_node
->
isOffline
,
search_node
->
deviceCode
);
}
}
//_dm_mgr_mutex_unlock();
//_dm_mgr_mutex_unlock();
...
@@ -326,7 +326,7 @@ int dm_mgr_check_heartbeat_timeout(uint64_t timestamp)
...
@@ -326,7 +326,7 @@ int dm_mgr_check_heartbeat_timeout(uint64_t timestamp)
INFO_PRINT
(
"---------->dev online again,send online
\n
"
);
INFO_PRINT
(
"---------->dev online again,send online
\n
"
);
search_node
->
isOffline
=
0
;
search_node
->
isOffline
=
0
;
iotx_dm_dev_online
(
search_node
->
devid
);
iotx_dm_dev_online
(
search_node
->
devid
);
kk_subDev_update_o
n
line
(
search_node
->
isOffline
,
search_node
->
deviceCode
);
kk_subDev_update_o
ff
line
(
search_node
->
isOffline
,
search_node
->
deviceCode
);
}
}
}
}
}
}
...
@@ -428,14 +428,12 @@ int dm_mgr_deinit(void)
...
@@ -428,14 +428,12 @@ int dm_mgr_deinit(void)
}
}
const
char
DM_URI_THING_EVENT_POST
[]
=
"/thing/event/%s/post"
;
const
char
DM_URI_THING_EVENT_POST
[]
=
"/thing/event/%s/post"
;
const
char
DM_MSG_THING_UPSTREAM_REQUEST_PARAMS
[]
DM_READ_ONLY
=
const
char
DM_MSG_THING_UPSTREAM_REQUEST_PARAMS
[]
DM_READ_ONLY
=
"%s"
;
"{
\"
value
\"
:%s,
\"
timestamp
\"
:
\"
%s
\"
}"
;
static
int
_dm_mgr_upstream_request_assemble
(
_IN_
int
msgid
,
_IN_
int
devid
,
static
int
_dm_mgr_upstream_request_assemble
(
_IN_
int
msgid
,
_IN_
int
devid
,
_IN_
char
*
identify
,
_IN_
char
*
identify
,
_IN_
char
*
params
,
_IN_
int
params_len
,
_IN_
char
*
method
,
_OU_
dm_msg_request_t
*
request
)
_IN_
char
*
params
,
_IN_
int
params_len
,
_IN_
char
*
method
,
_OU_
dm_msg_request_t
*
request
)
{
{
int
res
=
0
;
int
res
=
0
;
char
timestamp
[
DM_UTILS_UINT64_STRLEN
]
=
{
0
};
dm_mgr_dev_node_t
*
node
=
NULL
;
dm_mgr_dev_node_t
*
node
=
NULL
;
int
paramLen
=
0
;
int
paramLen
=
0
;
int
msgTypeLen
=
0
;
int
msgTypeLen
=
0
;
...
@@ -445,18 +443,16 @@ static int _dm_mgr_upstream_request_assemble(_IN_ int msgid, _IN_ int devid,
...
@@ -445,18 +443,16 @@ static int _dm_mgr_upstream_request_assemble(_IN_ int msgid, _IN_ int devid,
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
/* TimeStamp */
HAL_Snprintf
(
timestamp
,
DM_UTILS_UINT64_STRLEN
,
"%llu"
,
(
unsigned
long
long
)
HAL_UptimeMs
());
/* dm_log_debug("Time Stamp: %s", timestamp); */
/* dm_log_debug("Time Stamp: %s", timestamp); */
paramLen
=
strlen
(
DM_MSG_THING_UPSTREAM_REQUEST_PARAMS
)
+
paramLen
=
strlen
(
DM_MSG_THING_UPSTREAM_REQUEST_PARAMS
)
+
params_len
+
strlen
(
timestamp
)
+
1
;
params_len
+
1
;
payload_param
=
malloc
(
paramLen
);
payload_param
=
malloc
(
paramLen
);
if
(
payload_param
==
NULL
)
{
if
(
payload_param
==
NULL
)
{
return
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
}
}
memset
(
payload_param
,
0
,
paramLen
);
memset
(
payload_param
,
0
,
paramLen
);
HAL_Snprintf
(
payload_param
,
paramLen
,
DM_MSG_THING_UPSTREAM_REQUEST_PARAMS
,
params
,
timestamp
);
HAL_Snprintf
(
payload_param
,
paramLen
,
DM_MSG_THING_UPSTREAM_REQUEST_PARAMS
,
params
);
request
->
msgid
=
msgid
;
request
->
msgid
=
msgid
;
request
->
devid
=
devid
;
request
->
devid
=
devid
;
...
@@ -1225,3 +1221,38 @@ int dm_mgr_subdev_create(int devtype,_IN_ char productCode[PRODUCT_CODE_MAXLEN],
...
@@ -1225,3 +1221,38 @@ int dm_mgr_subdev_create(int devtype,_IN_ char productCode[PRODUCT_CODE_MAXLEN],
return
res
;
return
res
;
}
}
int
dm_mgr_subdev_delete
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
])
{
int
res
=
0
;
dm_mgr_dev_node_t
*
node
=
NULL
;
INFO_PRINT
(
"dm_mgr_subdev_delete deviceCode:%s
\n
"
,
deviceCode
);
res
=
kk_subDev_delete_by_dcode
(
deviceCode
);
//delete db data
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"ERROR [%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
return
FAIL_RETURN
;
}
res
=
dm_mgr_get_device_by_devicecode
(
deviceCode
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"ERROR [%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
return
FAIL_RETURN
;
}
if
(
node
->
dev_type
==
KK_DM_DEVICE_CCU
){
ERROR_PRINT
(
"ERROR [%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
return
FAIL_RETURN
;
}
list_del
(
&
node
->
linked_list
);
if
(
node
->
dev_shadow
)
{
kk_tsl_destroy
(
&
node
->
dev_shadow
);
}
free
(
node
);
node
=
NULL
;
return
SUCCESS_RETURN
;
}
midware/midware/dm/kk_dm_msg.c
View file @
f187487c
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
#include "kk_log.h"
#include "kk_log.h"
const
char
DM_MSG_REQUEST
[]
DM_READ_ONLY
=
"{
\"
msgId
\"
:
\"
%d
\"
,
\"
version
\"
:
\"
%s
\"
,
\"
params
\"
:%
.*s
,
\"
method
\"
:
\"
%s
\"
}"
;
const
char
DM_MSG_REQUEST
[]
DM_READ_ONLY
=
"{
\"
msgId
\"
:
\"
%d
\"
,
\"
version
\"
:
\"
%s
\"
,
\"
params
\"
:%
s,
\"
time
\"
:
\"
%lu
\"
,
\"
method
\"
:
\"
%s
\"
}"
;
const
char
DM_MSG_INFO
[]
DM_READ_ONLY
=
"{
\"
msgtype
\"
:
\"
%s
\"
,
\"
productCode
\"
:
\"
%s
\"
,
\"
deviceCode
\"
:
\"
%s
\"
}"
;
const
char
DM_MSG_INFO
[]
DM_READ_ONLY
=
"{
\"
msgtype
\"
:
\"
%s
\"
,
\"
productCode
\"
:
\"
%s
\"
,
\"
deviceCode
\"
:
\"
%s
\"
}"
;
void
kk_sendData2app
(
void
*
info
,
void
*
payload
){
void
kk_sendData2app
(
void
*
info
,
void
*
payload
){
...
@@ -502,14 +502,14 @@ int dm_msg_request (_IN_ dm_msg_request_t *request)
...
@@ -502,14 +502,14 @@ int dm_msg_request (_IN_ dm_msg_request_t *request)
}
}
payload_len
=
strlen
(
DM_MSG_REQUEST
)
+
10
+
strlen
(
DM_MSG_VERSION
)
+
request
->
params_len
+
strlen
(
payload_len
=
strlen
(
DM_MSG_REQUEST
)
+
10
+
strlen
(
DM_MSG_VERSION
)
+
request
->
params_len
+
strlen
(
request
->
method
)
+
1
;
request
->
method
)
+
1
+
20
;
payload
=
malloc
(
payload_len
);
payload
=
malloc
(
payload_len
);
if
(
payload
==
NULL
)
{
if
(
payload
==
NULL
)
{
return
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
}
}
memset
(
payload
,
0
,
payload_len
);
memset
(
payload
,
0
,
payload_len
);
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
request
->
msgid
,
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
request
->
msgid
,
DM_MSG_VERSION
,
request
->
params
_len
,
request
->
params
,
request
->
method
);
DM_MSG_VERSION
,
request
->
params
,
HAL_UptimeMs
()
,
request
->
method
);
req_info_len
=
strlen
(
DM_MSG_INFO
)
+
10
+
strlen
(
request
->
productCode
)
+
strlen
(
request
->
deviceCode
)
+
strlen
(
request
->
msgTypeStr
)
+
1
;
req_info_len
=
strlen
(
DM_MSG_INFO
)
+
10
+
strlen
(
request
->
productCode
)
+
strlen
(
request
->
deviceCode
)
+
strlen
(
request
->
msgTypeStr
)
+
1
;
req_info
=
malloc
(
req_info_len
);
req_info
=
malloc
(
req_info_len
);
...
...
midware/midware/dm/kk_sub_db.c
View file @
f187487c
...
@@ -116,8 +116,9 @@ static int _kk_load_subDevice(void)
...
@@ -116,8 +116,9 @@ static int _kk_load_subDevice(void)
usleep
(
100000
);
usleep
(
100000
);
//如果为认证,需要认证
//如果为认证,需要认证
//再上线
//再上线
iotx_dm_subscribe
(
devId
);
iotx_dm_subscribe
(
devId
);
kk_dm_ota_report_version
(
devId
,
sqlite3_column_text
(
stmt
,
DB_VERSION
));
//version
kk_dm_ota_report_version
(
devId
,
sqlite3_column_text
(
stmt
,
DB_VERSION
));
//version
//usleep(100000);
//usleep(100000);
}
}
...
@@ -205,7 +206,7 @@ int kk_subDev_insert_db(int devType,char productCode[PRODUCT_CODE_MAXLEN], \
...
@@ -205,7 +206,7 @@ int kk_subDev_insert_db(int devType,char productCode[PRODUCT_CODE_MAXLEN], \
}
}
int
kk_subDev_delete_by_dcode
(
char
deviceCode
[
DEVICE_CODE_MAXLEN
])
int
kk_subDev_delete_by_dcode
(
char
deviceCode
[
DEVICE_CODE_MAXLEN
])
{
{
const
char
*
deleteCmd
=
"delete from SubDeviceInfo where deviceCode =
%s
;"
;
const
char
*
deleteCmd
=
"delete from SubDeviceInfo where deviceCode =
'%s'
;"
;
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
char
*
zErrMsg
=
0
;
...
...
midware/midware/dm/kk_sub_db.h
View file @
f187487c
...
@@ -8,7 +8,7 @@ int kk_subDev_insert_db(int devType,char productCode[PRODUCT_CODE_MAXLEN], \
...
@@ -8,7 +8,7 @@ int kk_subDev_insert_db(int devType,char productCode[PRODUCT_CODE_MAXLEN], \
int
kk_subDev_delete_byMac
(
char
device_mac
[
DEVICE_MAC_MAXLEN
]);
int
kk_subDev_delete_byMac
(
char
device_mac
[
DEVICE_MAC_MAXLEN
]);
int
kk_subDev_update_o
n
line
(
int
isOnline
,
const
char
*
device_mac
);
int
kk_subDev_update_o
ff
line
(
int
isOnline
,
const
char
*
device_mac
);
int
kk_subDev_update_auth
(
int
isAuth
,
const
char
*
deviceCode
);
int
kk_subDev_update_auth
(
int
isAuth
,
const
char
*
deviceCode
);
...
...
midware/midware/midware.c
View file @
f187487c
...
@@ -195,6 +195,13 @@ void kk_platMsg_handle(void* data, char* chalMark){
...
@@ -195,6 +195,13 @@ void kk_platMsg_handle(void* data, char* chalMark){
kk_tsl_property_set_by_devicecode
(
info_dcode
->
valuestring
,
outstr
,
strlen
(
outstr
)
+
1
);
kk_tsl_property_set_by_devicecode
(
info_dcode
->
valuestring
,
outstr
,
strlen
(
outstr
)
+
1
);
free
(
outstr
);
free
(
outstr
);
}
else
if
(
strstr
(
msgType
->
valuestring
,
"/thing/topo/delete"
)
!=
NULL
){
INFO_PRINT
(
"kk_platMsg_handle data: handle delete
\n
"
);
devCode
=
cJSON_GetObjectItem
(
jsonPay
,
"deviceCode"
);
kk_ipc_send
(
IPC_MID2APP
,
data
,
strlen
(
data
));
dm_mgr_subdev_delete
(
devCode
->
valuestring
);
}
else
{
}
else
{
INFO_PRINT
(
"kk_platMsg_handle data: don't handle it [%s]
\n
"
,
data
);
INFO_PRINT
(
"kk_platMsg_handle data: don't handle it [%s]
\n
"
,
data
);
...
@@ -528,256 +535,6 @@ int main(const int argc, const char **argv)
...
@@ -528,256 +535,6 @@ int main(const int argc, const char **argv)
kk_set_product_info
();
kk_set_product_info
();
kk_tsl_api_init
();
kk_tsl_api_init
();
#if 0
tsl_str = kk_load_json("15", KK_DM_DEVICE_CCU);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("2", KK_DM_DEVICE_GATEWAY);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("11", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("24", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("83", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("84", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("85", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("89", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("90", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("91", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("96", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("97", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("98", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("102", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("103", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("104", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("105", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("106", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("1002", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("1003", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("1004", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("1007", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("1022", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
tsl_str = kk_load_json("2102", KK_DM_DEVICE_SUBDEV);
if(tsl_str != NULL)
{
res = kk_tsl_create(tsl_str,strlen(tsl_str),&dev_shadow[i]);
free(tsl_str);
if(res != 0){
return FAIL_RETURN;
}
}
i++;
#endif
#if 1
kk_ipc_init
(
IPC_MID2APP
,
mid_cb
,
NULL
,
NULL
);
kk_ipc_init
(
IPC_MID2APP
,
mid_cb
,
NULL
,
NULL
);
kk_ipc_init
(
IPC_MID2PLAT
,
mid2p_cb
,
NULL
,
"*"
);
kk_ipc_init
(
IPC_MID2PLAT
,
mid2p_cb
,
NULL
,
"*"
);
...
@@ -826,8 +583,6 @@ int main(const int argc, const char **argv)
...
@@ -826,8 +583,6 @@ int main(const int argc, const char **argv)
return
-
1
;
return
-
1
;
}
}
#endif
int
ct
=
0
;
int
ct
=
0
;
for
(;;)
{
for
(;;)
{
usleep
(
200000
);
usleep
(
200000
);
...
...
midware/tsl/tsl_handle/kk_tsl_api.c
View file @
f187487c
...
@@ -1753,3 +1753,172 @@ int kk_tsl_post_service(int devId, const char *service_identifier, int response_
...
@@ -1753,3 +1753,172 @@ int kk_tsl_post_service(int devId, const char *service_identifier, int response_
}
}
static
void
__kk_tsl_property_free
(
_IN_
kk_tsl_data_t
*
property
)
{
if
(
property
->
identifier
)
{
free
(
property
->
identifier
);
property
->
identifier
=
NULL
;
}
kk_tsl_datavalue_free
(
&
property
->
data_value
);
}
static
void
_kk_tsl_properties_free
(
_IN_
kk_tsl_data_t
*
properties
,
_IN_
int
number
)
{
int
index
=
0
;
kk_tsl_data_t
*
property
=
NULL
;
for
(
index
=
0
;
index
<
number
;
index
++
)
{
property
=
properties
+
index
;
__kk_tsl_property_free
(
property
);
}
}
static
void
_kk_tsl_event_outputdata_free
(
_IN_
kk_tsl_data_t
*
outputdata
)
{
if
(
outputdata
->
identifier
)
{
free
(
outputdata
->
identifier
);
outputdata
->
identifier
=
NULL
;
}
kk_tsl_datavalue_free
(
&
outputdata
->
data_value
);
}
static
void
_kk_tsl_event_outputdatas_free
(
_IN_
kk_tsl_data_t
*
outputdatas
,
_IN_
int
number
)
{
int
index
=
0
;
kk_tsl_data_t
*
outputdata
=
NULL
;
for
(
index
=
0
;
index
<
number
;
index
++
)
{
outputdata
=
outputdatas
+
index
;
_kk_tsl_event_outputdata_free
(
outputdata
);
}
}
static
void
_kk_tsl_event_free
(
_IN_
kk_tsl_event_t
*
event
)
{
if
(
event
->
identifier
)
{
free
(
event
->
identifier
);
event
->
identifier
=
NULL
;
}
if
(
event
->
output_datas
)
{
_kk_tsl_event_outputdatas_free
(
event
->
output_datas
,
event
->
output_data_number
);
free
(
event
->
output_datas
);
event
->
output_datas
=
NULL
;
}
}
static
void
_kk_tsl_events_free
(
_IN_
kk_tsl_event_t
*
events
,
_IN_
int
number
)
{
int
index
=
0
;
kk_tsl_event_t
*
event
=
NULL
;
for
(
index
=
0
;
index
<
number
;
index
++
)
{
event
=
events
+
index
;
_kk_tsl_event_free
(
event
);
}
}
static
void
_kk_tsl_service_outputdata_free
(
_IN_
kk_tsl_data_t
*
outputdata
)
{
if
(
outputdata
->
identifier
)
{
free
(
outputdata
->
identifier
);
outputdata
->
identifier
=
NULL
;
}
kk_tsl_datavalue_free
(
&
outputdata
->
data_value
);
}
static
void
_kk_tsl_service_outputdatas_free
(
_IN_
kk_tsl_data_t
*
outputdatas
,
_IN_
int
number
)
{
int
index
=
0
;
kk_tsl_data_t
*
outputdata
=
NULL
;
for
(
index
=
0
;
index
<
number
;
index
++
)
{
outputdata
=
outputdatas
+
index
;
_kk_tsl_service_outputdata_free
(
outputdata
);
}
}
static
void
_kk_tsl_service_inputdata_free
(
_IN_
kk_tsl_data_t
*
inputdata
)
{
if
(
inputdata
->
identifier
)
{
free
(
inputdata
->
identifier
);
inputdata
->
identifier
=
NULL
;
}
kk_tsl_datavalue_free
(
&
inputdata
->
data_value
);
}
static
void
_kk_tsl_service_inputdatas_free
(
_IN_
kk_tsl_data_t
*
inputdatas
,
_IN_
int
number
)
{
int
index
=
0
;
kk_tsl_data_t
*
inputdata
=
NULL
;
for
(
index
=
0
;
index
<
number
;
index
++
)
{
inputdata
=
inputdatas
+
index
;
_kk_tsl_service_inputdata_free
(
inputdata
);
}
}
static
void
_kk_tsl_service_free
(
_IN_
kk_tsl_service_t
*
service
)
{
if
(
service
->
identifier
)
{
free
(
service
->
identifier
);
service
->
identifier
=
NULL
;
}
if
(
service
->
output_datas
)
{
_kk_tsl_service_outputdatas_free
(
service
->
output_datas
,
service
->
output_data_number
);
free
(
service
->
output_datas
);
service
->
output_datas
=
NULL
;
}
if
(
service
->
input_datas
)
{
_kk_tsl_service_inputdatas_free
(
service
->
input_datas
,
service
->
input_data_number
);
free
(
service
->
input_datas
);
service
->
input_datas
=
NULL
;
}
}
static
void
_kk_tsl_services_free
(
_IN_
kk_tsl_service_t
*
services
,
_IN_
int
number
)
{
int
index
=
0
;
kk_tsl_service_t
*
service
=
NULL
;
for
(
index
=
0
;
index
<
number
;
index
++
)
{
service
=
services
+
index
;
_kk_tsl_service_free
(
service
);
}
}
void
kk_tsl_destroy
(
_IN_
kk_tsl_t
**
shadow
)
{
if
(
shadow
==
NULL
||
*
shadow
==
NULL
)
{
return
;
}
_kk_tsl_api_lock
();
/* Free Properties */
if
((
*
shadow
)
->
properties
)
{
_kk_tsl_properties_free
((
*
shadow
)
->
properties
,
(
*
shadow
)
->
property_number
);
free
((
*
shadow
)
->
properties
);
(
*
shadow
)
->
properties
=
NULL
;
}
/* Free Events */
if
((
*
shadow
)
->
events
)
{
_kk_tsl_events_free
((
*
shadow
)
->
events
,
(
*
shadow
)
->
event_number
);
free
((
*
shadow
)
->
events
);
(
*
shadow
)
->
events
=
NULL
;
}
/* Free Services */
if
((
*
shadow
)
->
services
)
{
_kk_tsl_services_free
((
*
shadow
)
->
services
,
(
*
shadow
)
->
service_number
);
free
((
*
shadow
)
->
services
);
(
*
shadow
)
->
services
=
NULL
;
}
free
(
*
shadow
);
*
shadow
=
NULL
;
_kk_tsl_api_unlock
();
}
midware/tsl/tsl_handle/kk_tsl_func.c
View file @
f187487c
...
@@ -1131,5 +1131,12 @@ int kk_tsl_get_service_input_output_value(_IN_ kk_tsl_data_target_e type, _IN_ k
...
@@ -1131,5 +1131,12 @@ int kk_tsl_get_service_input_output_value(_IN_ kk_tsl_data_target_e type, _IN_ k
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
void
kk_tsl_datavalue_free
(
kk_tsl_data_value_t
*
data_value
)
{
if
(
g_iotx_data_type_mapping
[
data_value
->
type
].
func_free
==
NULL
)
{
return
;
}
g_iotx_data_type_mapping
[
data_value
->
type
].
func_free
(
data_value
);
}
platform/zigbee/app/builder/Z3GatewayHost/kk_sub_tsl.c
View file @
f187487c
...
@@ -136,11 +136,33 @@ int kk_sub_tsl_add(EmberEUI64 device_mac,const char *productCode)
...
@@ -136,11 +136,33 @@ int kk_sub_tsl_add(EmberEUI64 device_mac,const char *productCode)
_sub_dev_mutex_unlock
();
_sub_dev_mutex_unlock
();
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_sub_tsl_delete
(
EmberEUI64
device_mac
)
{
sub_dev_node_t
*
node
=
NULL
;
kk_sub_dev_ctx_t
*
ctx
=
_sub_dev_get_ctx
();
char
*
tsl_str
=
NULL
;
int
res
=
0
;
char
macString
[
19
]
=
{
0
};
rpc_eui64ToString
(
device_mac
,
macString
);
_sub_dev_mutex_lock
();
res
=
kk_sub_tsl_get_device_by_mac
(
macString
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
)
{
_sub_dev_mutex_unlock
();
return
FAIL_RETURN
;
}
list_del
(
&
node
->
linked_list
);
free
(
node
);
node
=
NULL
;
_sub_dev_mutex_unlock
();
return
SUCCESS_RETURN
;
}
int
kk_sub_tsl_get_device_by_mac
(
_IN_
char
device_mac
[
DEVICE_MAC_MAXLEN
],
_OU_
sub_dev_node_t
**
node
)
int
kk_sub_tsl_get_device_by_mac
(
_IN_
char
device_mac
[
DEVICE_MAC_MAXLEN
],
_OU_
sub_dev_node_t
**
node
)
{
{
kk_sub_dev_ctx_t
*
ctx
=
_sub_dev_get_ctx
();
kk_sub_dev_ctx_t
*
ctx
=
_sub_dev_get_ctx
();
sub_dev_node_t
*
search_node
=
NULL
;
sub_dev_node_t
*
search_node
=
NULL
;
_sub_dev_mutex_lock
();
list_for_each_entry
(
search_node
,
&
ctx
->
dev_list
,
linked_list
,
sub_dev_node_t
)
{
list_for_each_entry
(
search_node
,
&
ctx
->
dev_list
,
linked_list
,
sub_dev_node_t
)
{
if
((
strlen
(
search_node
->
device_mac
)
==
strlen
(
device_mac
))
&&
if
((
strlen
(
search_node
->
device_mac
)
==
strlen
(
device_mac
))
&&
...
@@ -152,13 +174,11 @@ int kk_sub_tsl_get_device_by_mac(_IN_ char device_mac[DEVICE_MAC_MAXLEN], _OU_ s
...
@@ -152,13 +174,11 @@ int kk_sub_tsl_get_device_by_mac(_IN_ char device_mac[DEVICE_MAC_MAXLEN], _OU_ s
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
}
}
_sub_dev_mutex_unlock
();
printf
(
"Device Not Found, device_mac: %s
\n
"
,
device_mac
);
printf
(
"Device Not Found, device_mac: %s
\n
"
,
device_mac
);
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
const
char
DM_MSG_REQUEST
[]
=
"{
\"
LightStatus
\"
:
\"
1
\"
}"
;
int
kk_test
(
void
)
int
kk_test
(
void
)
{
{
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
...
...
platform/zigbee/app/builder/Z3GatewayHost/kk_test.c
View file @
f187487c
...
@@ -12,8 +12,9 @@ static void kk_rpc_send_message(cJSON *data,char *msgtype,char *method,EmberEUI6
...
@@ -12,8 +12,9 @@ static void kk_rpc_send_message(cJSON *data,char *msgtype,char *method,EmberEUI6
cJSON
*
info
=
rpc_cJSON_CreateObject
();
cJSON
*
info
=
rpc_cJSON_CreateObject
();
if
(
info
!=
NULL
){
if
(
info
!=
NULL
){
rpc_cJSON_AddStringToObject
(
info
,
"msgType"
,
msgtype
);
rpc_cJSON_AddStringToObject
(
info
,
"msgType"
,
msgtype
);
rpc_cJSON_AddStringToObject
(
info
,
"productCode"
,
"2
4
"
);
rpc_cJSON_AddStringToObject
(
info
,
"productCode"
,
"2"
);
rpc_eui64ToString
(
mac
,
macString
);
rpc_eui64ToString
(
mac
,
macString
);
rpc_cJSON_AddStringToObject
(
info
,
"deviceCode"
,
macString
);
rpc_cJSON_AddStringToObject
(
info
,
"deviceCode"
,
macString
);
}
}
...
@@ -41,8 +42,14 @@ void kk_rpc_report_devices(cJSON *data,EmberEUI64 mac)
...
@@ -41,8 +42,14 @@ void kk_rpc_report_devices(cJSON *data,EmberEUI64 mac)
{
{
kk_rpc_send_message
(
data
,
KK_REPORT_DEVICE_JOINED_TYPE
,
KK_REPORT_DEVICE_JOINED_METHOD
,
mac
);
kk_rpc_send_message
(
data
,
KK_REPORT_DEVICE_JOINED_TYPE
,
KK_REPORT_DEVICE_JOINED_METHOD
,
mac
);
}
}
void
kk_rpc_report_left_devices
(
cJSON
*
data
,
EmberEUI64
mac
)
{
kk_rpc_send_message
(
data
,
KK_REPORT_DEVICE_LEFT_TYPE
,
KK_REPORT_DEVICE_LEAVE_METHOD
,
mac
);
}
void
kk_rpc_report_status
(
cJSON
*
data
,
EmberEUI64
mac
)
void
kk_rpc_report_status
(
cJSON
*
data
,
EmberEUI64
mac
)
{
{
kk_rpc_send_message
(
data
,
KK_REPORT_ATTRIBUTE_TYPE
,
KK_REPORT_ATTRIBUTE_METHOD
,
mac
);
kk_rpc_send_message
(
data
,
KK_REPORT_ATTRIBUTE_TYPE
,
KK_REPORT_ATTRIBUTE_METHOD
,
mac
);
}
}
...
@@ -55,21 +62,39 @@ typedef struct{
...
@@ -55,21 +62,39 @@ typedef struct{
uint8_t
productCode
;
uint8_t
productCode
;
}
kk_report_device_s
;
}
kk_report_device_s
;
void
kk_rpc_reportLeftDevices
(
EmberEUI64
mac
)
{
cJSON
*
devicesJson
;
EmberEUI64
testMac
=
{
0x4A
,
0x83
,
0xD3
,
0xFE
,
0xFF
,
0x81
,
0x8E
,
0x58
};
EmberEUI64
testMac_GW
=
{
0x88
,
0x77
,
0x66
,
0x55
,
0x44
,
0x33
,
0x22
,
0x11
};
char
macString
[
RPC_EUI64_STRING_LENGTH
];
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
devicesJson
=
rpc_cJSON_CreateObject
();
rpc_eui64ToString
(
mac
,
macString
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
rpc_cJSON_AddStringToObject
(
devicesJson
,
"productCode"
,
TEST_PRODUCT_CODE
);
rpc_cJSON_AddStringToObject
(
devicesJson
,
"deviceCode"
,
macString
);
kk_rpc_report_left_devices
(
devicesJson
,
testMac_GW
);
kk_sub_tsl_delete
(
mac
);
}
void
kk_rpc_reportDevices
(
kk_report_device_s
device
)
void
kk_rpc_reportDevices
(
EmberEUI64
mac
)
{
{
cJSON
*
devicesJson
;
cJSON
*
devicesJson
;
EmberEUI64
testMac
=
{
0x4A
,
0x83
,
0xD3
,
0xFE
,
0xFF
,
0x81
,
0x8E
,
0x58
};
EmberEUI64
testMac_GW
=
{
0x88
,
0x77
,
0x66
,
0x55
,
0x44
,
0x33
,
0x22
,
0x11
};
devicesJson
=
rpc_cJSON_CreateObject
();
devicesJson
=
rpc_cJSON_CreateObject
();
rpc_cJSON_AddAppVersionToObject
(
devicesJson
,
device
.
AppVersion
);
rpc_cJSON_AddStringToObject
(
devicesJson
,
"deviceType"
,
"1"
);
rpc_cJSON_AddStringToObject
(
devicesJson
,
"deviceCode"
,
"2"
);
rpc_cJSON_AddStringToObject
(
devicesJson
,
"productType"
,
"3"
);
rpc_cJSON_AddStringToObject
(
devicesJson
,
"productCode"
,
TEST_PRODUCT_CODE
);
rpc_cJSON_AddStringToObject
(
devicesJson
,
"productCode"
,
TEST_PRODUCT_CODE
);
kk_sub_tsl_add
(
device
.
mac
,
TEST_PRODUCT_CODE
);
rpc_cJSON_AddStringToObject
(
devicesJson
,
"deviceCode"
,
"588E81FFFED3834A"
);
kk_rpc_report_devices
(
devicesJson
,
device
.
mac
);
rpc_cJSON_AddStringToObject
(
devicesJson
,
"mac"
,
"588E81FFFED3834A"
);
kk_sub_tsl_add
(
testMac
,
TEST_PRODUCT_CODE
);
kk_rpc_report_devices
(
devicesJson
,
testMac_GW
);
}
}
int
kk_rpc_report_LightStatus
(
EmberEUI64
mac
,
int
status
,
uint16_t
clusterId
,
uint16_t
attributeId
)
int
kk_rpc_report_LightStatus
(
EmberEUI64
mac
,
int
status
,
uint16_t
clusterId
,
uint16_t
attributeId
)
{
{
...
@@ -363,10 +388,10 @@ void emberAfPluginDeviceTableNewDeviceCallback(EmberEUI64 nodeEui64)
...
@@ -363,10 +388,10 @@ void emberAfPluginDeviceTableNewDeviceCallback(EmberEUI64 nodeEui64)
//rpc_add_device(deviceTable[deviceTableIndex].nodeId);
//rpc_add_device(deviceTable[deviceTableIndex].nodeId);
kk_report_device_s
device
;
//
kk_report_device_s device;
//device.mac = nodeEui64;
//device.mac = nodeEui64;
device
.
AppVersion
=
0x10
;
//
device.AppVersion = 0x10;
memcpy
(
device
.
mac
,
nodeEui64
,
EUI64_SIZE
);
//
memcpy(device.mac,nodeEui64,EUI64_SIZE);
kk_rpc_reportDevices
(
device
);
kk_rpc_reportDevices
(
nodeEui64
);
}
}
...
...
platform/zigbee/app/builder/Z3GatewayHost/kk_test.h
View file @
f187487c
...
@@ -6,11 +6,12 @@
...
@@ -6,11 +6,12 @@
#include "RPC_API.h"
#include "RPC_API.h"
#define KK_REPORT_DEVICE_JOINED_TYPE "/thing/topo/add"
#define KK_REPORT_DEVICE_JOINED_TYPE "/thing/topo/add"
#define KK_REPORT_DEVICE_LEFT_TYPE "/thing/topo/delete"
#define KK_REPORT_ATTRIBUTE_TYPE "/thing/event/property/post"
#define KK_REPORT_ATTRIBUTE_TYPE "/thing/event/property/post"
#define KK_IPC_VERSION "1.0"
#define KK_IPC_VERSION "1.0"
#define KK_REPORT_DEVICE_JOINED_METHOD "thing.topo.add"
#define KK_REPORT_DEVICE_JOINED_METHOD "thing.topo.add"
#define KK_REPORT_DEVICE_LEAVE_METHOD "thing.topo.
leav
e"
#define KK_REPORT_DEVICE_LEAVE_METHOD "thing.topo.
delet
e"
#define KK_REPORT_ATTRIBUTE_METHOD "thing.event.property.post"
#define KK_REPORT_ATTRIBUTE_METHOD "thing.event.property.post"
#define KK_READ_ATTRIBUTE_METHOD "thing.service.property.get"
#define KK_READ_ATTRIBUTE_METHOD "thing.service.property.get"
...
...
platform/zigbee/app/builder/Z3GatewayHost/rpc_api/src/rpc_interface_parse.c
View file @
f187487c
...
@@ -716,7 +716,8 @@ void emberAfPluginDeviceTableRejoinDeviceCallback(EmberEUI64 nodeEui64)
...
@@ -716,7 +716,8 @@ void emberAfPluginDeviceTableRejoinDeviceCallback(EmberEUI64 nodeEui64)
cJSON
*
nodeJson
=
rpc_reportDeviceState
(
"rejoin"
,
deviceTable
[
deviceTableIndex
].
eui64
);
cJSON
*
nodeJson
=
rpc_reportDeviceState
(
"rejoin"
,
deviceTable
[
deviceTableIndex
].
eui64
);
rpc_printfJSON
(
"rejoin"
,
nodeJson
);
rpc_printfJSON
(
"rejoin"
,
nodeJson
);
rpc_send_message
(
nodeJson
,
"device rejoin"
);
//rpc_send_message(nodeJson,"device rejoin");
kk_rpc_reportDevices
(
deviceTable
[
deviceTableIndex
].
eui64
);
}
}
void
emberAfPluginDeviceTableDeviceLeftCallback
(
EmberEUI64
nodeEui64
)
void
emberAfPluginDeviceTableDeviceLeftCallback
(
EmberEUI64
nodeEui64
)
...
@@ -730,7 +731,9 @@ void emberAfPluginDeviceTableDeviceLeftCallback(EmberEUI64 nodeEui64)
...
@@ -730,7 +731,9 @@ void emberAfPluginDeviceTableDeviceLeftCallback(EmberEUI64 nodeEui64)
cJSON
*
nodeJson
=
rpc_reportDeviceState
(
"left"
,
deviceTable
[
deviceTableIndex
].
eui64
);
cJSON
*
nodeJson
=
rpc_reportDeviceState
(
"left"
,
deviceTable
[
deviceTableIndex
].
eui64
);
rpc_printfJSON
(
"left"
,
nodeJson
);
rpc_printfJSON
(
"left"
,
nodeJson
);
rpc_send_message
(
nodeJson
,
"device left"
);
//rpc_send_message(nodeJson,"device left");
kk_rpc_reportLeftDevices
(
deviceTable
[
deviceTableIndex
].
eui64
);
}
}
static
cJSON
*
rpc_buildDeviceEndpoint
(
EmberEUI64
eui64
,
uint8_t
endpoint
)
static
cJSON
*
rpc_buildDeviceEndpoint
(
EmberEUI64
eui64
,
uint8_t
endpoint
)
...
...
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