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
26b97c85
Commit
26b97c85
authored
Aug 22, 2020
by
chen.weican
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【修改内容】1,增加主机的设备初始化和属性上报,以及属性状态监控。
【提交人】陈伟灿
parent
09bfaf87
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
189 additions
and
35 deletions
+189
-35
application/kcloud/kcloud_data_handle.c
application/kcloud/kcloud_data_handle.c
+46
-4
application/kcloud/mqtt_api.c
application/kcloud/mqtt_api.c
+2
-1
common/api/com_api.h
common/api/com_api.h
+2
-1
midware/midware/dm/kk_dm_mng.c
midware/midware/dm/kk_dm_mng.c
+38
-10
midware/midware/dm/kk_dm_msg.h
midware/midware/dm/kk_dm_msg.h
+1
-0
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+18
-0
midware/midware/midware.c
midware/midware/midware.c
+64
-0
midware/tsl/tsl_handle/kk_tsl_common.h
midware/tsl/tsl_handle/kk_tsl_common.h
+5
-0
platform/zigbee/app/builder/Z3GatewayHost/kk_sub_tsl.c
platform/zigbee/app/builder/Z3GatewayHost/kk_sub_tsl.c
+8
-3
platform/zigbee/app/builder/Z3GatewayHost/kk_tsl_common.h
platform/zigbee/app/builder/Z3GatewayHost/kk_tsl_common.h
+3
-8
platform/zigbee/protocol/zigbee/app/framework/plugin/device-table/device-table.c
...l/zigbee/app/framework/plugin/device-table/device-table.c
+2
-8
No files found.
application/kcloud/kcloud_data_handle.c
View file @
26b97c85
...
@@ -14,10 +14,12 @@
...
@@ -14,10 +14,12 @@
#define KK_FILTER_REGISTER_TOPIC_REPLY "/thing/sub/register_reply"
#define KK_FILTER_REGISTER_TOPIC_REPLY "/thing/sub/register_reply"
#define KK_FILTER_LOGIN_TOPIC "/thing/combine/login"
#define KK_FILTER_LOGIN_TOPIC "/thing/combine/login"
#define KK_FILTER_LOGIN_TOPIC_REPLY "/thing/combine/login_reply"
#define KK_FILTER_LOGIN_TOPIC_REPLY "/thing/combine/login_reply"
#define KK_FILTER_SET_TOPIC "/thing/service/property/set"
#define KK_FILTER_SET_TOPIC "/thing/service/property/set"
#define KK_FILTER_SET_TOPIC_REPLY "/thing/service/property/set_reply"
#define KK_FILTER_SET_TOPIC_REPLY "/thing/service/property/set_reply"
#define KK_FILTER_EVENT_POST_TOPIC "/thing/event/property/post"
#define KK_FILTER_EVENT_POST_TOPIC "/thing/event/property/post"
#define KK_FILTER_EVENT_POST_REPLY "/thing/event/property/post_reply"
#define KK_FILTER_EVENT_POST_REPLY "/thing/event/property/post_reply"
#define KK_CLOUDSTATE_MSG "/thing/ccu/cloudstate"
const
char
DM_MSG_TO_MIDDWARE
[]
=
"{
\"
msgtype
\"
:
\"
%s
\"
,
\"
productType
\"
:
\"
%s
\"
,
\"
productCode
\"
:
\"
%s
\"
,
\"
deviceCode
\"
:
\"
%s
\"
}"
;
const
char
DM_MSG_TO_MIDDWARE
[]
=
"{
\"
msgtype
\"
:
\"
%s
\"
,
\"
productType
\"
:
\"
%s
\"
,
\"
productCode
\"
:
\"
%s
\"
,
\"
deviceCode
\"
:
\"
%s
\"
}"
;
#define KK_TOPIC_SERVICE_DELIMITER '/'
#define KK_TOPIC_SERVICE_DELIMITER '/'
...
@@ -191,7 +193,47 @@ static char * _kk_data_create(const char *topic,const char *data)
...
@@ -191,7 +193,47 @@ static char * _kk_data_create(const char *topic,const char *data)
return
out
;
return
out
;
//free(out); /* Print to text, Delete the cJSON, print it, release the string. */
//free(out); /* Print to text, Delete the cJSON, print it, release the string. */
}
}
const
char
DM_MSG_CLOUDSTATE
[]
=
"{
\"
msgId
\"
:
\"
1
\"
,
\"
version
\"
:
\"
1.0
\"
,
\"
params
\"
:{
\"
IOTCloudState
\"
:
\"
%d
\"
},
\"
method
\"
:
\"
/thing/ccu/cloudstate
\"
}"
;
int
KK_Send_CloudState
(
int
state
)
{
char
*
infoStr
=
NULL
;
char
*
payloadStr
=
NULL
;
int
infoStr_len
=
0
;
int
payloadStr_len
=
0
;
cJSON
*
root
;
char
*
out
;
infoStr_len
=
strlen
(
DM_MSG_TO_MIDDWARE
)
+
strlen
(
KK_CLOUDSTATE_MSG
)
+
10
;
infoStr
=
malloc
(
infoStr_len
);
if
(
infoStr
==
NULL
){
ERROR_PRINT
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
return
-
1
;
}
memset
(
infoStr
,
0x0
,
infoStr_len
);
snprintf
(
infoStr
,
infoStr_len
,
DM_MSG_TO_MIDDWARE
,
KK_CLOUDSTATE_MSG
,
""
,
""
,
""
);
payloadStr_len
=
strlen
(
DM_MSG_CLOUDSTATE
)
+
10
;
payloadStr
=
malloc
(
payloadStr_len
);
if
(
payloadStr
==
NULL
){
ERROR_PRINT
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
return
-
1
;
}
memset
(
payloadStr
,
0x0
,
payloadStr_len
);
snprintf
(
payloadStr
,
payloadStr_len
,
DM_MSG_CLOUDSTATE
,
state
);
root
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
root
,
MSG_INFO_STR
,
infoStr
);
cJSON_AddStringToObject
(
root
,
MSG_PAYLOAD_STR
,
payloadStr
);
out
=
cJSON_Print
(
root
);
kk_ipc_send
(
IPC_APP2MID
,
out
,
strlen
(
out
)
+
1
);
cJSON_Delete
(
root
);
free
(
payloadStr
);
free
(
infoStr
);
INFO_PRINT
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,
out
);
free
(
out
);
return
0
;
}
void
KK_Sendto_DevData
(
const
char
*
topic
,
const
char
*
data
)
void
KK_Sendto_DevData
(
const
char
*
topic
,
const
char
*
data
)
{
{
if
(
_check_invalid_topic
(
topic
))
if
(
_check_invalid_topic
(
topic
))
...
...
application/kcloud/mqtt_api.c
View file @
26b97c85
...
@@ -26,7 +26,7 @@ static void connlost(void *context, char *cause)
...
@@ -26,7 +26,7 @@ static void connlost(void *context, char *cause)
INFO_PRINT
(
"
\n
Connection lost
\n
"
);
INFO_PRINT
(
"
\n
Connection lost
\n
"
);
INFO_PRINT
(
"cause: %s
\n
"
,
cause
);
INFO_PRINT
(
"cause: %s
\n
"
,
cause
);
KK_Send_CloudState
(
0
);
conn_opts
.
keepAliveInterval
=
20
;
conn_opts
.
keepAliveInterval
=
20
;
conn_opts
.
cleansession
=
1
;
conn_opts
.
cleansession
=
1
;
if
((
rc
=
MQTTAsync_connect
(
client
,
&
conn_opts
))
!=
MQTTASYNC_SUCCESS
)
if
((
rc
=
MQTTAsync_connect
(
client
,
&
conn_opts
))
!=
MQTTASYNC_SUCCESS
)
...
@@ -98,6 +98,7 @@ void onConnectFailure(void* context, MQTTAsync_failureData* response)
...
@@ -98,6 +98,7 @@ void onConnectFailure(void* context, MQTTAsync_failureData* response)
void
onConnect
(
void
*
context
,
MQTTAsync_successData
*
response
)
void
onConnect
(
void
*
context
,
MQTTAsync_successData
*
response
)
{
{
INFO_PRINT
(
"Successful connection
\n
"
);
INFO_PRINT
(
"Successful connection
\n
"
);
KK_Send_CloudState
(
1
);
}
}
...
...
common/api/com_api.h
View file @
26b97c85
...
@@ -61,7 +61,8 @@ typedef enum{
...
@@ -61,7 +61,8 @@ typedef enum{
#define MSG_DEVICE_CODE_STR "deviceCode"
#define MSG_DEVICE_CODE_STR "deviceCode"
#define MSG_PAYLOAD_STR "payload"
#define MSG_PAYLOAD_STR "payload"
#define MSG_INFO_STR "info"
#define MSG_INFO_STR "info"
#define MSG_INDENTIFIER_STR "identifier"
#define MSG_INDENTIFIER_STR "identifier"
#define MSG_PARAMS_STR "params"
typedef
void
ipc_cb
(
void
*
data
,
int
len
,
char
*
chalMark
);
typedef
void
ipc_cb
(
void
*
data
,
int
len
,
char
*
chalMark
);
int
kk_ipc_init
(
ipc_type
type
,
ipc_cb
cb
,
char
*
chalMark
,
char
*
ip
);
int
kk_ipc_init
(
ipc_type
type
,
ipc_cb
cb
,
char
*
chalMark
,
char
*
ip
);
...
...
midware/midware/dm/kk_dm_mng.c
View file @
26b97c85
...
@@ -99,19 +99,24 @@ static int _dm_init_tsl_params(int devId)
...
@@ -99,19 +99,24 @@ static int _dm_init_tsl_params(int devId)
/*******set version***********/
/*******set version***********/
HAL_GetVersion
(
version
);
HAL_GetVersion
(
version
);
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
devId
,
KK_TSL_
GATAWAY_
VERSION_IDENTIFIER
,
NULL
,
version
);
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
devId
,
KK_TSL_VERSION_IDENTIFIER
,
NULL
,
version
);
if
(
res
!=
SUCCESS_RETURN
)
if
(
res
!=
SUCCESS_RETURN
)
{
{
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
}
}
/*******set IP*************/
/*******set IP*************/
HAL_Get_IP
(
s_IP
,
NULL
);
//
HAL_Get_IP(s_IP,NULL);
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
devId
,
KK_TSL_
GATAWAY_IP_IDENTIFIER
,
NULL
,
s_IP
);
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
devId
,
KK_TSL_
CCU_LANIP_IDENTIFIER
,
NULL
,
"0.0.0.0"
);
if
(
res
!=
SUCCESS_RETURN
)
if
(
res
!=
SUCCESS_RETURN
)
{
{
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
}
}
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
devId
,
KK_TSL_CCU_WANIP_IDENTIFIER
,
NULL
,
"0.0.0.0"
);
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
}
/*******set MAC*************/
/*******set MAC*************/
HAL_Get_mac
(
s_mac
);
HAL_Get_mac
(
s_mac
);
...
@@ -122,13 +127,26 @@ static int _dm_init_tsl_params(int devId)
...
@@ -122,13 +127,26 @@ static int _dm_init_tsl_params(int devId)
}
}
/*******set port*************/
/*******set port*************/
port
=
HAL_Get_port
();
//port = HAL_Get_port();
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
devId
,
KK_TSL_GATAWAY_PORT_IDENTIFIER
,
&
port
,
NULL
);
//res = kk_tsl_set_value(kk_tsl_set_property_value,devId,KK_TSL_GATAWAY_PORT_IDENTIFIER,&port,NULL);
//if(res != SUCCESS_RETURN)
//{
//ERROR_PRINT("[%s][%d] res:%d\n",__FUNCTION__,__LINE__,res);
//}
/*******set wanState*************/
int
wanState
=
0
;
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
devId
,
KK_TSL_CCU_WANSTATE_IDENTIFIER
,
&
wanState
,
NULL
);
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
}
int
IOTCloudState
=
0
;
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
devId
,
KK_TSL_CCU_IOTCLOUD_IDENTIFIER
,
&
IOTCloudState
,
NULL
);
if
(
res
!=
SUCCESS_RETURN
)
if
(
res
!=
SUCCESS_RETURN
)
{
{
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
}
}
/*******set sn*************/
/*******set sn*************/
HAL_Get_SN
(
s_SN
);
HAL_Get_SN
(
s_SN
);
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
devId
,
KK_TSL_GATAWAY_SN_IDENTIFIER
,
NULL
,
s_SN
);
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
devId
,
KK_TSL_GATAWAY_SN_IDENTIFIER
,
NULL
,
s_SN
);
...
@@ -368,6 +386,9 @@ int dm_mgr_init(void)
...
@@ -368,6 +386,9 @@ int dm_mgr_init(void)
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
goto
ERROR
;
goto
ERROR
;
}
}
else
{
_dm_init_tsl_params
(
devId
);
}
res
=
dm_mgr_device_create
(
KK_DM_DEVICE_GATEWAY
,
KK_DM_GW_DEVICE_PRODUCT_TYPE
,
KK_DM_GW_DEVICE_PRODUCT_CODE
,
"588E81FFFED3834A"
,
deviceCode
,
&
devId
);
res
=
dm_mgr_device_create
(
KK_DM_DEVICE_GATEWAY
,
KK_DM_GW_DEVICE_PRODUCT_TYPE
,
KK_DM_GW_DEVICE_PRODUCT_CODE
,
"588E81FFFED3834A"
,
deviceCode
,
&
devId
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
...
@@ -409,6 +430,7 @@ static int _dm_mgr_upstream_request_assemble(_IN_ int msgid, _IN_ int devid,
...
@@ -409,6 +430,7 @@ static int _dm_mgr_upstream_request_assemble(_IN_ int msgid, _IN_ int devid,
char
timestamp
[
DM_UTILS_UINT64_STRLEN
]
=
{
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
;
char
*
payload_param
=
NULL
;
char
*
payload_param
=
NULL
;
res
=
dm_mgr_search_dev_by_devid
(
devid
,
&
node
);
res
=
dm_mgr_search_dev_by_devid
(
devid
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
...
@@ -430,11 +452,13 @@ static int _dm_mgr_upstream_request_assemble(_IN_ int msgid, _IN_ int devid,
...
@@ -430,11 +452,13 @@ static int _dm_mgr_upstream_request_assemble(_IN_ int msgid, _IN_ int devid,
request
->
msgid
=
msgid
;
request
->
msgid
=
msgid
;
request
->
devid
=
devid
;
request
->
devid
=
devid
;
request
->
msgTypeStr
=
malloc
(
strlen
(
DM_URI_THING_EVENT_POST
)
+
strlen
(
identify
)
+
1
);
msgTypeLen
=
strlen
(
DM_URI_THING_EVENT_POST
)
+
strlen
(
identify
)
+
1
;
request
->
msgTypeStr
=
malloc
(
msgTypeLen
);
if
(
request
->
msgTypeStr
==
NULL
){
if
(
request
->
msgTypeStr
==
NULL
){
return
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
}
}
sprintf
(
request
->
msgTypeStr
,
DM_URI_THING_EVENT_POST
,
identify
);
memset
(
request
->
msgTypeStr
,
0x0
,
msgTypeLen
);
snprintf
(
request
->
msgTypeStr
,
msgTypeLen
,
DM_URI_THING_EVENT_POST
,
identify
);
memcpy
(
request
->
productType
,
node
->
productType
,
strlen
(
node
->
productType
));
memcpy
(
request
->
productType
,
node
->
productType
,
strlen
(
node
->
productType
));
memcpy
(
request
->
productCode
,
node
->
productCode
,
strlen
(
node
->
productCode
));
memcpy
(
request
->
productCode
,
node
->
productCode
,
strlen
(
node
->
productCode
));
memcpy
(
request
->
deviceCode
,
node
->
deviceCode
,
strlen
(
node
->
deviceCode
));
memcpy
(
request
->
deviceCode
,
node
->
deviceCode
,
strlen
(
node
->
deviceCode
));
...
@@ -509,6 +533,7 @@ static int _kk_mgr_upstream_response_assemble(_IN_ int devid, _IN_ char *msgid,
...
@@ -509,6 +533,7 @@ static int _kk_mgr_upstream_response_assemble(_IN_ int devid, _IN_ char *msgid,
_IN_
const
char
*
identfy
,
_IN_
int
code
,
_OU_
kk_msg_request_payload_t
*
request
,
_OU_
kk_msg_response_t
*
response
)
_IN_
const
char
*
identfy
,
_IN_
int
code
,
_OU_
kk_msg_request_payload_t
*
request
,
_OU_
kk_msg_response_t
*
response
)
{
{
int
res
=
0
;
int
res
=
0
;
int
msgTypeLen
=
0
;
dm_mgr_dev_node_t
*
node
=
NULL
;
dm_mgr_dev_node_t
*
node
=
NULL
;
res
=
dm_mgr_search_dev_by_devid
(
devid
,
&
node
);
res
=
dm_mgr_search_dev_by_devid
(
devid
,
&
node
);
...
@@ -519,11 +544,14 @@ static int _kk_mgr_upstream_response_assemble(_IN_ int devid, _IN_ char *msgid,
...
@@ -519,11 +544,14 @@ static int _kk_mgr_upstream_response_assemble(_IN_ int devid, _IN_ char *msgid,
request
->
id
.
value
=
msgid
;
request
->
id
.
value
=
msgid
;
request
->
id
.
value_length
=
msgid_len
;
request
->
id
.
value_length
=
msgid_len
;
response
->
msgTypeStr
=
malloc
(
strlen
(
DM_URI_THING_SERVICE_RESPONSE
)
+
strlen
(
identfy
)
+
1
);
msgTypeLen
=
strlen
(
DM_URI_THING_SERVICE_RESPONSE
)
+
strlen
(
identfy
)
+
1
;
response
->
msgTypeStr
=
malloc
(
msgTypeLen
);
if
(
response
->
msgTypeStr
==
NULL
){
if
(
response
->
msgTypeStr
==
NULL
){
return
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
}
}
sprintf
(
response
->
msgTypeStr
,
DM_URI_THING_SERVICE_RESPONSE
,
identfy
);
memset
(
response
->
msgTypeStr
,
0x0
,
msgTypeLen
);
snprintf
(
response
->
msgTypeStr
,
msgTypeLen
,
DM_URI_THING_SERVICE_RESPONSE
,
identfy
);
memcpy
(
response
->
productType
,
node
->
productType
,
strlen
(
node
->
productType
));
memcpy
(
response
->
productType
,
node
->
productType
,
strlen
(
node
->
productType
));
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
));
...
...
midware/midware/dm/kk_dm_msg.h
View file @
26b97c85
...
@@ -46,6 +46,7 @@ const char DM_MSG_INFO[] DM_READ_ONLY;
...
@@ -46,6 +46,7 @@ const char DM_MSG_INFO[] DM_READ_ONLY;
#define KK_LOGIN_TOPIC_REPLY "/thing/combine/login_reply"
#define KK_LOGIN_TOPIC_REPLY "/thing/combine/login_reply"
#define KK_THING_SERVICE_PROPERTY_SET "/thing/service/property/set"
#define KK_THING_SERVICE_PROPERTY_SET "/thing/service/property/set"
#define KK_THING_OTA_DEVICE_UPGRADE "/ota/device/upgrade"
#define KK_THING_OTA_DEVICE_UPGRADE "/ota/device/upgrade"
#define KK_THING_CLOUDSTATE_MSG "/thing/ccu/cloudstate"
//const char DM_URI_SYS_PREFIX[] DM_READ_ONLY = "/sys/%s/%s/";
//const char DM_URI_SYS_PREFIX[] DM_READ_ONLY = "/sys/%s/%s/";
...
...
midware/midware/dm/kk_linkkit.c
View file @
26b97c85
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
#include "cJSON.h"
#include "cJSON.h"
#include "kk_dm_msg.h"
#include "kk_dm_msg.h"
#include "kk_dm_api.h"
#include "kk_dm_api.h"
#include "kk_tsl_api.h"
#include "com_api.h"
#include "com_api.h"
#include "kk_log.h"
#include "kk_log.h"
...
@@ -287,6 +288,23 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
...
@@ -287,6 +288,23 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
cJSON
*
deviceCode
=
cJSON_GetObjectItem
(
info
,
MSG_DEVICE_CODE_STR
);
cJSON
*
deviceCode
=
cJSON_GetObjectItem
(
info
,
MSG_DEVICE_CODE_STR
);
dm_msg_thing_property_set_reply
(
deviceCode
->
valuestring
,
payload
->
valuestring
,
strlen
(
payload
->
valuestring
),
NULL
);
dm_msg_thing_property_set_reply
(
deviceCode
->
valuestring
,
payload
->
valuestring
,
strlen
(
payload
->
valuestring
),
NULL
);
//kk_tsl_service_property_set(topic->valuestring, payload->valuestring, strlen(payload->valuestring), NULL);
//kk_tsl_service_property_set(topic->valuestring, payload->valuestring, strlen(payload->valuestring), NULL);
}
else
if
(
strstr
(
typeJson
->
valuestring
,
KK_THING_CLOUDSTATE_MSG
)){
INFO_PRINT
(
"cloud state notify
\n
"
);
cJSON
*
payloadStr
=
cJSON_Parse
(
payload
->
valuestring
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payloadStr
,
MSG_PARAMS_STR
);
cJSON
*
state
=
cJSON_GetObjectItem
(
paramStr
,
"IOTCloudState"
);
int
state_int
=
atoi
(
state
->
valuestring
);
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
0
,
KK_TSL_CCU_WANSTATE_IDENTIFIER
,
&
state_int
,
NULL
);
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
}
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
0
,
KK_TSL_CCU_IOTCLOUD_IDENTIFIER
,
&
state_int
,
NULL
);
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
}
cJSON_Delete
(
payloadStr
);
}
else
if
(
strstr
(
typeJson
->
valuestring
,
KK_THING_OTA_DEVICE_UPGRADE
)){
}
else
if
(
strstr
(
typeJson
->
valuestring
,
KK_THING_OTA_DEVICE_UPGRADE
)){
INFO_PRINT
(
"ota upgrade...
\n
"
);
INFO_PRINT
(
"ota upgrade...
\n
"
);
kk_dm_ota_send
(
data
,
strlen
(
data
)
+
1
);
kk_dm_ota_send
(
data
,
strlen
(
data
)
+
1
);
...
...
midware/midware/midware.c
View file @
26b97c85
...
@@ -14,6 +14,7 @@
...
@@ -14,6 +14,7 @@
#include "cJSON.h"
#include "cJSON.h"
#include "kk_product.h"
#include "kk_product.h"
#include "kk_tsl_common.h"
#include "kk_tsl_common.h"
#include "kk_tsl_api.h"
#include "kk_dm_api.h"
#include "kk_dm_api.h"
#include "kk_log.h"
#include "kk_log.h"
...
@@ -202,8 +203,10 @@ typedef struct {
...
@@ -202,8 +203,10 @@ typedef struct {
int
permit_join
;
int
permit_join
;
void
*
g_mid_dispatch_thread
;
void
*
g_mid_dispatch_thread
;
void
*
g_ota_dispatch_thread
;
void
*
g_ota_dispatch_thread
;
void
*
g_ccuProChg_dispatch_thread
;
int
g_mid_dispatch_thread_running
;
int
g_mid_dispatch_thread_running
;
int
g_ota_dispatch_thread_running
;
int
g_ota_dispatch_thread_running
;
int
g_ccuProChg_dispatch_thread_running
;
}
mid_ctx_t
;
}
mid_ctx_t
;
#define MID_YIELD_TIMEOUT_MS (200)
#define MID_YIELD_TIMEOUT_MS (200)
...
@@ -238,6 +241,61 @@ void *ota_dispatch_yield(void *args)
...
@@ -238,6 +241,61 @@ void *ota_dispatch_yield(void *args)
return
NULL
;
return
NULL
;
}
}
void
*
ccu_property_monitor
(
void
*
args
)
{
mid_ctx_t
*
mid_ctx
=
kk_mid_get_ctx
();
char
s_IP
[
NETWORK_ADDR_LEN
];
char
*
s_IP_TSL
=
NULL
;
int
res
=
0
;
int
needReport
=
0
;
static
int
s_cloudStatus
=
0
;
int
cloudState
=
0
;
int
time_second
=
10
;
static
int
alreadyRepord
=
0
;
while
(
mid_ctx
->
g_ccuProChg_dispatch_thread_running
)
{
//dm_ota_yield(MID_YIELD_TIMEOUT_MS);
HAL_Get_IP
(
s_IP
,
NULL
);
res
=
kk_tsl_get_value
(
kk_tsl_get_property_value
,
0
,
KK_TSL_CCU_WANIP_IDENTIFIER
,
NULL
,
&
s_IP_TSL
);
INFO_PRINT
(
"current ip:%s,db ip:%s
\n
"
,
s_IP
,
s_IP_TSL
);
if
(
res
!=
SUCCESS_RETURN
){
ERROR_PRINT
(
"kk_tsl_get_value Failed
\n
"
);
}
else
{
if
(
strcmp
(
s_IP
,
s_IP_TSL
)){
kk_tsl_set_value
(
kk_tsl_set_property_value
,
0
,
KK_TSL_CCU_WANIP_IDENTIFIER
,
NULL
,
s_IP
);
needReport
=
1
;
}
}
res
=
kk_tsl_get_value
(
kk_tsl_get_property_value
,
0
,
KK_TSL_CCU_IOTCLOUD_IDENTIFIER
,
&
cloudState
,
NULL
);
INFO_PRINT
(
"current ip:%s,db ip:%s
\n
"
,
s_IP
,
s_IP_TSL
);
INFO_PRINT
(
"cloudState:%d,s_cloudStatus:%d
\n
"
,
cloudState
,
s_cloudStatus
);
if
(
res
!=
SUCCESS_RETURN
){
ERROR_PRINT
(
"kk_tsl_get_value Failed
\n
"
);
}
else
{
if
(
s_cloudStatus
==
cloudState
){
}
else
{
s_cloudStatus
=
cloudState
;
needReport
=
1
;
}
}
if
(
alreadyRepord
){
time_second
=
60
;
}
else
{
time_second
=
10
;
}
if
(
needReport
&&
(
cloudState
==
1
)){
kk_tsl_post_property
(
0
,
NULL
);
needReport
=
0
;
alreadyRepord
=
1
;
}
sleep
(
time_second
);
}
return
NULL
;
}
...
@@ -291,6 +349,12 @@ int main(const int argc, const char **argv)
...
@@ -291,6 +349,12 @@ int main(const int argc, const char **argv)
IOT_Linkkit_Close
(
mid_ctx
->
master_devid
);
IOT_Linkkit_Close
(
mid_ctx
->
master_devid
);
return
-
1
;
return
-
1
;
}
}
mid_ctx
->
g_ccuProChg_dispatch_thread_running
=
1
;
res
=
pthread_create
(
&
mid_ctx
->
g_ccuProChg_dispatch_thread
,
NULL
,
ccu_property_monitor
,
NULL
);
if
(
res
<
0
)
{
ERROR_PRINT
(
"HAL_ThreadCreate Failed
\n
"
);
return
-
1
;
}
int
ct
=
0
;
int
ct
=
0
;
for
(;;)
{
for
(;;)
{
...
...
midware/tsl/tsl_handle/kk_tsl_common.h
View file @
26b97c85
...
@@ -63,6 +63,11 @@
...
@@ -63,6 +63,11 @@
#define KK_TSL_SPECIAL_EVENT_POST_IDENTIFIER "post"
#define KK_TSL_SPECIAL_EVENT_POST_IDENTIFIER "post"
#define KK_TSL_SPECIAL_EVENT_POST_METHOD "thing.event.property.post"
#define KK_TSL_SPECIAL_EVENT_POST_METHOD "thing.event.property.post"
#define KK_TSL_VERSION_IDENTIFIER "Version"
#define KK_TSL_CCU_LANIP_IDENTIFIER "LanIPAddress"
#define KK_TSL_CCU_WANIP_IDENTIFIER "WanIPAddress"
#define KK_TSL_CCU_WANSTATE_IDENTIFIER "WanState"
#define KK_TSL_CCU_IOTCLOUD_IDENTIFIER "IOTCloudState"
#define KK_TSL_GATAWAY_VERSION_IDENTIFIER "Version"
#define KK_TSL_GATAWAY_VERSION_IDENTIFIER "Version"
#define KK_TSL_GATAWAY_IP_IDENTIFIER "IPAddress"
#define KK_TSL_GATAWAY_IP_IDENTIFIER "IPAddress"
...
...
platform/zigbee/app/builder/Z3GatewayHost/kk_sub_tsl.c
View file @
26b97c85
#include "kk_sub_tsl.h"
#include "kk_sub_tsl.h"
typedef
unsigned
char
EmberEUI64
[
8
];
typedef
struct
{
typedef
struct
{
void
*
mutex
;
void
*
mutex
;
int
sub_devid
;
int
sub_devid
;
...
@@ -103,17 +105,20 @@ int kk_tsl_init(void)
...
@@ -103,17 +105,20 @@ int kk_tsl_init(void)
//kk_test();
//kk_test();
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_sub_tsl_add
(
const
char
*
device_mac
,
const
char
*
product_type
)
int
kk_sub_tsl_add
(
EmberEUI64
device_mac
,
const
char
*
product_type
)
{
{
sub_dev_node_t
*
node
=
NULL
;
sub_dev_node_t
*
node
=
NULL
;
kk_sub_dev_ctx_t
*
ctx
=
_sub_dev_get_ctx
();
kk_sub_dev_ctx_t
*
ctx
=
_sub_dev_get_ctx
();
char
name
[
TSL_PATH_MAXLEN
]
=
{
0
};
char
name
[
TSL_PATH_MAXLEN
]
=
{
0
};
char
*
tsl_str
=
NULL
;
char
*
tsl_str
=
NULL
;
int
res
=
0
;
int
res
=
0
;
if
(
device_mac
==
NULL
||
product_type
==
NULL
)
char
macString
[
19
]
=
{
0
};
if
(
product_type
==
NULL
)
{
{
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
}
}
rpc_eui64ToString
(
device_mac
,
macString
);
node
=
malloc
(
sizeof
(
sub_dev_node_t
));
node
=
malloc
(
sizeof
(
sub_dev_node_t
));
if
(
node
==
NULL
)
{
if
(
node
==
NULL
)
{
...
@@ -122,7 +127,7 @@ int kk_sub_tsl_add(const char *device_mac,const char *product_type)
...
@@ -122,7 +127,7 @@ int kk_sub_tsl_add(const char *device_mac,const char *product_type)
_sub_dev_mutex_lock
();
_sub_dev_mutex_lock
();
memset
(
node
,
0
,
sizeof
(
sub_dev_node_t
)
);
memset
(
node
,
0
,
sizeof
(
sub_dev_node_t
)
);
memcpy
(
node
->
device_mac
,
device_mac
,
strlen
(
device_mac
));
memcpy
(
node
->
device_mac
,
macString
,
strlen
(
macString
));
memcpy
(
node
->
product_type
,
product_type
,
strlen
(
product_type
));
memcpy
(
node
->
product_type
,
product_type
,
strlen
(
product_type
));
node
->
devid
=
_sub_tsl_next_devid
();
node
->
devid
=
_sub_tsl_next_devid
();
...
...
platform/zigbee/app/builder/Z3GatewayHost/kk_tsl_common.h
View file @
26b97c85
...
@@ -12,16 +12,12 @@
...
@@ -12,16 +12,12 @@
#define _OU_
#define _OU_
#endif
#endif
#define PRODUCT_
KEY
_MAXLEN (32 + 1)
#define PRODUCT_
TYPE
_MAXLEN (32 + 1)
#define
DEVICE_NAME_MAXLEN
(32 + 1)
#define
PRODUCT_CODE_MAXLEN
(32 + 1)
#define DEVICE_
SECRET_MAXLEN (64
+ 1)
#define DEVICE_
CODE_MAXLEN (32
+ 1)
#define DEVICE_MAC_MAXLEN (16 + 1)
#define DEVICE_MAC_MAXLEN (16 + 1)
#define DEVICE_SN_MAXLEN (32 + 1)
#define DEVICE_SN_MAXLEN (32 + 1)
#define TSL_PATH_MAXLEN (64 + 1)
#define DM_UTILS_UINT16_STRLEN (5)
#define DM_UTILS_UINT16_STRLEN (5)
#define DM_UTILS_UINT32_STRLEN (10)
#define DM_UTILS_UINT32_STRLEN (10)
#define DM_UTILS_UINT64_STRLEN (20)
#define DM_UTILS_UINT64_STRLEN (20)
...
@@ -66,7 +62,6 @@
...
@@ -66,7 +62,6 @@
#define KK_TSL_SPECIAL_EVENT_POST_METHOD "thing.event.property.post"
#define KK_TSL_SPECIAL_EVENT_POST_METHOD "thing.event.property.post"
#define KK_TSL_GATAWAY_VERSION_IDENTIFIER "Version"
#define KK_TSL_GATAWAY_IP_IDENTIFIER "IPAddress"
#define KK_TSL_GATAWAY_IP_IDENTIFIER "IPAddress"
#define KK_TSL_GATAWAY_MAC_IDENTIFIER "MACAddress"
#define KK_TSL_GATAWAY_MAC_IDENTIFIER "MACAddress"
#define KK_TSL_GATAWAY_PORT_IDENTIFIER "Port"
#define KK_TSL_GATAWAY_PORT_IDENTIFIER "Port"
...
...
platform/zigbee/protocol/zigbee/app/framework/plugin/device-table/device-table.c
View file @
26b97c85
...
@@ -483,14 +483,8 @@ void emAfDeviceTableLoad(void)
...
@@ -483,14 +483,8 @@ void emAfDeviceTableLoad(void)
fscanf
(
fp
,
"%d"
,
&
data
);
fscanf
(
fp
,
"%d"
,
&
data
);
deviceTable
[
i
].
clusterOutStartPosition
=
(
uint16_t
)
data
;
deviceTable
[
i
].
clusterOutStartPosition
=
(
uint16_t
)
data
;
deviceTable
[
i
].
state
=
EMBER_AF_PLUGIN_DEVICE_TABLE_STATE_JOINED
;
deviceTable
[
i
].
state
=
EMBER_AF_PLUGIN_DEVICE_TABLE_STATE_JOINED
;
char
mac
[
17
]
=
{
0
};
kk_sub_tsl_add
(
deviceTable
[
i
].
eui64
,
"3"
);
sprintf
(
mac
,
"%02X%02X%02X%02X%02X%02X%02X%02X"
,
deviceTable
[
i
].
eui64
[
7
],
deviceTable
[
i
].
eui64
[
6
],
deviceTable
[
i
].
eui64
[
5
],
deviceTable
[
i
].
eui64
[
4
],
deviceTable
[
i
].
eui64
[
3
],
deviceTable
[
i
].
eui64
[
2
],
deviceTable
[
i
].
eui64
[
1
],
deviceTable
[
i
].
eui64
[
0
]);
kk_sub_tsl_add
(
mac
,
"3"
);
}
}
deviceTable
[
i
].
lastMsgTimestamp
=
halCommonGetInt32uMillisecondTick
();
deviceTable
[
i
].
lastMsgTimestamp
=
halCommonGetInt32uMillisecondTick
();
...
...
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