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
e2e7b5d7
Commit
e2e7b5d7
authored
Aug 19, 2020
by
chen.weican
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【修改内容】zigbee端通过clusterID和attributeID找到对应的Identity,并上报
【提交人】陈伟灿
parent
9240474e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
50 additions
and
22 deletions
+50
-22
platform/zigbee/app/builder/Z3GatewayHost/kk_test.c
platform/zigbee/app/builder/Z3GatewayHost/kk_test.c
+36
-12
platform/zigbee/app/builder/Z3GatewayHost/kk_tsl_zigbee_map.c
...form/zigbee/app/builder/Z3GatewayHost/kk_tsl_zigbee_map.c
+7
-7
platform/zigbee/app/builder/Z3GatewayHost/kk_tsl_zigbee_map.h
...form/zigbee/app/builder/Z3GatewayHost/kk_tsl_zigbee_map.h
+6
-2
platform/zigbee/app/builder/Z3GatewayHost/rpc_api/src/rpc_interface_parse.c
...p/builder/Z3GatewayHost/rpc_api/src/rpc_interface_parse.c
+1
-1
No files found.
platform/zigbee/app/builder/Z3GatewayHost/kk_test.c
View file @
e2e7b5d7
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
#include "kk_sub_tsl.h"
#include "kk_sub_tsl.h"
#include "kk_tsl_zigbee_map.h"
#include "kk_tsl_zigbee_map.h"
extern
kk_tsl_zigbee_map_t
g_tsl_zigbee_map
[];
static
void
kk_rpc_send_message
(
cJSON
*
data
,
char
*
method
,
EmberEUI64
mac
)
static
void
kk_rpc_send_message
(
cJSON
*
data
,
char
*
method
,
EmberEUI64
mac
)
{
{
...
@@ -21,7 +22,6 @@ static void kk_rpc_send_message(cJSON *data,char *method,EmberEUI64 mac)
...
@@ -21,7 +22,6 @@ static void kk_rpc_send_message(cJSON *data,char *method,EmberEUI64 mac)
char
*
p
=
rpc_cJSON_Print
(
item
);
char
*
p
=
rpc_cJSON_Print
(
item
);
emberAfAppPrintln
(
"send json:
\n
%s
\n
"
,
p
);
emberAfAppPrintln
(
"send json:
\n
%s
\n
"
,
p
);
free
(
p
);
free
(
p
);
jrpc_send_msg
(
item
);
jrpc_send_msg
(
item
);
}
}
void
kk_rpc_report_devices
(
cJSON
*
data
,
EmberEUI64
mac
)
void
kk_rpc_report_devices
(
cJSON
*
data
,
EmberEUI64
mac
)
...
@@ -58,18 +58,42 @@ void kk_rpc_reportDevices(kk_report_device_s device)
...
@@ -58,18 +58,42 @@ void kk_rpc_reportDevices(kk_report_device_s device)
kk_sub_tsl_add
(
device
.
mac
,
PRODUCT_TYPE
);
kk_sub_tsl_add
(
device
.
mac
,
PRODUCT_TYPE
);
kk_rpc_report_devices
(
devicesJson
,
device
.
mac
);
kk_rpc_report_devices
(
devicesJson
,
device
.
mac
);
}
}
bool
kk_rpc_report_LightStatus
(
EmberEUI64
mac
,
bool
LightStatus
)
int
kk_rpc_report_LightStatus
(
EmberEUI64
mac
,
int
status
,
uint16_t
clusterId
,
uint16_t
attributeId
)
{
{
cJSON
*
root
;
cJSON
*
root
;
int
res
=
0
;
int
num
=
0
;
int
pCtrlIdx
=
0
;
uint16_t
clusterId_tmp
=
0
;
uint16_t
attributeId_tmp
=
0
;
int
i
=
0
;
sub_dev_node_t
*
node
=
NULL
;
root
=
rpc_cJSON_CreateObject
();
root
=
rpc_cJSON_CreateObject
();
if
(
LightStatus
==
true
){
rpc_cJSON_AddNumberToObject
(
root
,
"LightStatus"
,
1
);
}
else
{
rpc_cJSON_AddNumberToObject
(
root
,
"LightStatus"
,
0
);
}
res
=
kk_sub_tsl_get_device_by_mac
(
mac
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
)
{
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
return
-
1
;
}
pCtrlIdx
=
kk_find_ctrl_obj
(
node
->
product_type
);
if
(
pCtrlIdx
==
-
1
){
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
return
-
1
;
}
num
=
kk_get_Identity_Num
(
pCtrlIdx
);
for
(
i
=
0
;
i
<
num
;
i
++
)
{
clusterId_tmp
=
g_tsl_zigbee_map
[
pCtrlIdx
].
zigbee_ctrl
[
i
].
clusterId
;
attributeId_tmp
=
g_tsl_zigbee_map
[
pCtrlIdx
].
zigbee_ctrl
[
i
].
attributeId
;
if
(
clusterId_tmp
==
clusterId
&&
attributeId_tmp
==
attributeId
)
{
rpc_cJSON_AddNumberToObject
(
root
,
g_tsl_zigbee_map
[
pCtrlIdx
].
zigbee_ctrl
[
i
].
Identity
,
status
);
break
;
}
}
kk_rpc_report_status
(
root
,
mac
);
kk_rpc_report_status
(
root
,
mac
);
return
0
;
}
}
int
lightStatusSet
(
jrpc_context
*
ctx
,
const
char
*
mac
,
void
*
data
)
int
lightStatusSet
(
jrpc_context
*
ctx
,
const
char
*
mac
,
void
*
data
)
{
{
...
@@ -117,7 +141,7 @@ error_return:
...
@@ -117,7 +141,7 @@ error_return:
}
}
extern
kk_tsl_zigbee_map_t
g_tsl_zigbee_map
[];
int
kk_test_fuc
(
char
*
mac
,
const
char
*
params
)
int
kk_test_fuc
(
char
*
mac
,
const
char
*
params
)
{
{
sub_dev_node_t
*
node
=
NULL
;
sub_dev_node_t
*
node
=
NULL
;
...
@@ -151,7 +175,7 @@ int kk_test_fuc(char *mac,const char *params)
...
@@ -151,7 +175,7 @@ int kk_test_fuc(char *mac,const char *params)
{
{
int
value
=
rpc_get_u8
(
propertyItem
->
valuestring
);
int
value
=
rpc_get_u8
(
propertyItem
->
valuestring
);
printf
(
"[%s][%d]value:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
value
);
printf
(
"[%s][%d]value:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
value
);
res
=
g_tsl_zigbee_map
[
pCtrlIdx
].
zigbee_ctrl
[
index
].
zigbee_
cb
(
NULL
,
mac
,
&
value
);
res
=
g_tsl_zigbee_map
[
pCtrlIdx
].
zigbee_ctrl
[
index
].
zigbee_
set
(
NULL
,
mac
,
&
value
);
if
(
res
<
0
)
{
if
(
res
<
0
)
{
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
return
-
1
;
return
-
1
;
...
@@ -195,7 +219,7 @@ cJSON *rpc_read_attribue(jrpc_context * ctx, cJSON *params, cJSON *id,cJSON *mac
...
@@ -195,7 +219,7 @@ cJSON *rpc_read_attribue(jrpc_context * ctx, cJSON *params, cJSON *id,cJSON *mac
if
(
propertyItem
!=
NULL
)
if
(
propertyItem
!=
NULL
)
{
{
int
value
=
rpc_get_u8
(
propertyItem
->
valuestring
);
int
value
=
rpc_get_u8
(
propertyItem
->
valuestring
);
res
=
g_tsl_zigbee_map
[
pCtrlIdx
].
zigbee_ctrl
[
index
].
zigbee_
cb
(
ctx
,
mac
,
&
value
);
res
=
g_tsl_zigbee_map
[
pCtrlIdx
].
zigbee_ctrl
[
index
].
zigbee_
set
(
ctx
,
mac
->
valuestring
,
&
value
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
goto
error_return
;
goto
error_return
;
}
}
...
@@ -246,7 +270,7 @@ cJSON *rpc_Control(jrpc_context * ctx, cJSON *params, cJSON *id,cJSON *mac)
...
@@ -246,7 +270,7 @@ cJSON *rpc_Control(jrpc_context * ctx, cJSON *params, cJSON *id,cJSON *mac)
if
(
propertyItem
!=
NULL
)
if
(
propertyItem
!=
NULL
)
{
{
int
value
=
rpc_get_u8
(
propertyItem
->
valuestring
);
int
value
=
rpc_get_u8
(
propertyItem
->
valuestring
);
res
=
g_tsl_zigbee_map
[
pCtrlIdx
].
zigbee_ctrl
[
index
].
zigbee_
cb
(
ctx
,
mac
->
valuestring
,
&
value
);
res
=
g_tsl_zigbee_map
[
pCtrlIdx
].
zigbee_ctrl
[
index
].
zigbee_
set
(
ctx
,
mac
->
valuestring
,
&
value
);
if
(
res
<
0
)
{
if
(
res
<
0
)
{
set_json_error_type
(
ctx
,
JRPC_INVALID_PARAMS
,
MSG_INVALID_PARAMS
);
set_json_error_type
(
ctx
,
JRPC_INVALID_PARAMS
,
MSG_INVALID_PARAMS
);
goto
error_return
;
goto
error_return
;
...
...
platform/zigbee/app/builder/Z3GatewayHost/kk_tsl_zigbee_map.c
View file @
e2e7b5d7
...
@@ -6,19 +6,19 @@ kk_tsl_zigbee_map_t g_tsl_zigbee_map [] = {
...
@@ -6,19 +6,19 @@ kk_tsl_zigbee_map_t g_tsl_zigbee_map [] = {
PRODUCT_TYPE
,
PRODUCT_TYPE
,
3
,
3
,
{
{
{
KK_TSL_DATA_TYPE_TEXT
,
"LightStatus"
,
lightStatusSet
},
{
KK_TSL_DATA_TYPE_TEXT
,
"LightStatus"
,
lightStatusSet
,
ZCL_ON_OFF_CLUSTER_ID
,
ZCL_ON_OFF_ATTRIBUTE_ID
},
{
KK_TSL_DATA_TYPE_TEXT
,
"LightAdjustLevel"
,
lightStatusSet
},
{
KK_TSL_DATA_TYPE_TEXT
,
"LightAdjustLevel"
,
lightStatusSet
,
ZCL_ON_OFF_CLUSTER_ID
,
ZCL_ON_OFF_ATTRIBUTE_ID
},
{
KK_TSL_DATA_TYPE_TEXT
,
"LightAlias"
,
lightStatusSet
},
{
KK_TSL_DATA_TYPE_TEXT
,
"LightAlias"
,
lightStatusSet
,
ZCL_ON_OFF_CLUSTER_ID
,
ZCL_ON_OFF_ATTRIBUTE_ID
},
}
}
},
},
{
{
"testtype"
,
"testtype"
,
4
,
4
,
{
{
{
KK_TSL_DATA_TYPE_TEXT
,
"test1"
,
lightStatusSet
},
{
KK_TSL_DATA_TYPE_TEXT
,
"test1"
,
lightStatusSet
,
ZCL_ON_OFF_CLUSTER_ID
,
ZCL_ON_OFF_ATTRIBUTE_ID
},
{
KK_TSL_DATA_TYPE_TEXT
,
"test12"
,
lightStatusSet
},
{
KK_TSL_DATA_TYPE_TEXT
,
"test12"
,
lightStatusSet
,
ZCL_ON_OFF_CLUSTER_ID
,
ZCL_ON_OFF_ATTRIBUTE_ID
},
{
KK_TSL_DATA_TYPE_TEXT
,
"test123"
,
lightStatusSet
},
{
KK_TSL_DATA_TYPE_TEXT
,
"test123"
,
lightStatusSet
,
ZCL_ON_OFF_CLUSTER_ID
,
ZCL_ON_OFF_ATTRIBUTE_ID
},
{
KK_TSL_DATA_TYPE_TEXT
,
"test1234"
,
lightStatusSet
},
{
KK_TSL_DATA_TYPE_TEXT
,
"test1234"
,
lightStatusSet
,
ZCL_ON_OFF_CLUSTER_ID
,
ZCL_ON_OFF_ATTRIBUTE_ID
},
}
}
},
},
...
...
platform/zigbee/app/builder/Z3GatewayHost/kk_tsl_zigbee_map.h
View file @
e2e7b5d7
...
@@ -5,12 +5,16 @@
...
@@ -5,12 +5,16 @@
#define PROPERTIES_MAX_NUM 20
#define PROPERTIES_MAX_NUM 20
typedef
int
(
*
zigbee_ctrl_cb
)(
jrpc_context
*
ctx
,
const
char
*
mac
,
void
*
data
);
typedef
int
(
*
zigbee_property_set
)(
jrpc_context
*
ctx
,
const
char
*
mac
,
void
*
data
);
//typedef int (*zigbee_property_report)(EmberEUI64 mac,bool LightStatus,uint16_t clusterId,uint16_t attributeId);
typedef
struct
{
typedef
struct
{
int
type
;
int
type
;
char
*
Identity
;
char
*
Identity
;
zigbee_ctrl_cb
zigbee_cb
;
zigbee_property_set
zigbee_set
;
unsigned
short
clusterId
;
unsigned
short
attributeId
;
//zigbee_property_report zigbee_report;
}
kk_zigbee_ctrl_map_t
;
}
kk_zigbee_ctrl_map_t
;
typedef
struct
{
typedef
struct
{
...
...
platform/zigbee/app/builder/Z3GatewayHost/rpc_api/src/rpc_interface_parse.c
View file @
e2e7b5d7
...
@@ -391,7 +391,7 @@ bool rpc_ReportAttributesCallback(EmberAfClusterId clusterId,
...
@@ -391,7 +391,7 @@ bool rpc_ReportAttributesCallback(EmberAfClusterId clusterId,
if
(
bufferTemp
[
ATTRIBUTE_BUFFER_REPORT_DATA_TYPE
]
==
ZCL_BOOLEAN_ATTRIBUTE_TYPE
){
if
(
bufferTemp
[
ATTRIBUTE_BUFFER_REPORT_DATA_TYPE
]
==
ZCL_BOOLEAN_ATTRIBUTE_TYPE
){
uint8_t
LightStatus
=
bufferTemp
[
ATTRIBUTE_BUFFER_REPORT_DATA_TYPE
+
1
];
uint8_t
LightStatus
=
bufferTemp
[
ATTRIBUTE_BUFFER_REPORT_DATA_TYPE
+
1
];
if
(
LightStatus
==
0
||
LightStatus
==
1
){
if
(
LightStatus
==
0
||
LightStatus
==
1
){
kk_rpc_report_LightStatus
(
eui64
,
LightStatus
);
kk_rpc_report_LightStatus
(
eui64
,
LightStatus
,
clusterId
,
attributeId
);
}
}
}
}
}
}
...
...
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