Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
Telin_Zigbee_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
Merge Requests
0
Merge Requests
0
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
limm
Telin_Zigbee_SDK
Commits
682c75ca
Commit
682c75ca
authored
Nov 26, 2021
by
limm
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
V1.0 VERSION
parent
25f1f17b
Changes
39
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
42604 additions
and
35668 deletions
+42604
-35668
tl_zigbee_sdk/apps/3LightPanelDemo/3LightPanelDemo.c
tl_zigbee_sdk/apps/3LightPanelDemo/3LightPanelDemo.c
+316
-310
tl_zigbee_sdk/apps/3LightPanelDemo/3LightPanelDemo.h
tl_zigbee_sdk/apps/3LightPanelDemo/3LightPanelDemo.h
+1
-2
tl_zigbee_sdk/apps/3LightPanelDemo/3LightPanelDemo_endpoint_config.c
...dk/apps/3LightPanelDemo/3LightPanelDemo_endpoint_config.c
+975
-987
tl_zigbee_sdk/apps/3LightPanelDemo/3LightPanelDemo_endpoint_config.h
...dk/apps/3LightPanelDemo/3LightPanelDemo_endpoint_config.h
+128
-126
tl_zigbee_sdk/apps/3LightPanelDemo/app_cfg.h
tl_zigbee_sdk/apps/3LightPanelDemo/app_cfg.h
+215
-215
tl_zigbee_sdk/apps/3LightPanelDemo/ikk-config.h
tl_zigbee_sdk/apps/3LightPanelDemo/ikk-config.h
+55
-55
tl_zigbee_sdk/apps/3LightPanelDemo/user.c
tl_zigbee_sdk/apps/3LightPanelDemo/user.c
+1480
-1183
tl_zigbee_sdk/apps/3LightPanelDemo/zb_afTestCb.c
tl_zigbee_sdk/apps/3LightPanelDemo/zb_afTestCb.c
+194
-167
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-button.c
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-button.c
+374
-374
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-pwm.c
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-pwm.c
+339
-317
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-pwm.h
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-pwm.h
+1
-1
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-uart.c
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-uart.c
+316
-316
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-uart.h
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-uart.h
+86
-84
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-cluster.c
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-cluster.c
+419
-420
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-cluster.h
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-cluster.h
+9
-5
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-command.c
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-command.c
+635
-4
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-command.h
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-command.h
+89
-6
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-debug.h
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-debug.h
+26
-26
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-factory-test.c
...e_sdk/apps/common/00ikonke_app/general/ikk-factory-test.c
+574
-262
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-factory-test.h
...e_sdk/apps/common/00ikonke_app/general/ikk-factory-test.h
+81
-65
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-module-def.h
...bee_sdk/apps/common/00ikonke_app/general/ikk-module-def.h
+189
-86
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-network.c
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-network.c
+544
-530
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-opt-tunnel.c
...bee_sdk/apps/common/00ikonke_app/general/ikk-opt-tunnel.c
+453
-353
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-opt-tunnel.h
...bee_sdk/apps/common/00ikonke_app/general/ikk-opt-tunnel.h
+13
-12
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-tick-handler.c
...e_sdk/apps/common/00ikonke_app/general/ikk-tick-handler.c
+57
-56
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-tick-handler.h
...e_sdk/apps/common/00ikonke_app/general/ikk-tick-handler.h
+0
-1
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-token.c
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-token.c
+371
-183
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-token.h
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-token.h
+68
-6
tl_zigbee_sdk/apps/common/firmwareEncryptChk.c
tl_zigbee_sdk/apps/common/firmwareEncryptChk.c
+77
-77
tl_zigbee_sdk/apps/sampleLight/app_driver/general/ikk-token.c
...igbee_sdk/apps/sampleLight/app_driver/general/ikk-token.c
+114
-114
tl_zigbee_sdk/build/tlsr_tc32/.cproject
tl_zigbee_sdk/build/tlsr_tc32/.cproject
+30721
-25653
tl_zigbee_sdk/build/tlsr_tc32/.project
tl_zigbee_sdk/build/tlsr_tc32/.project
+220
-220
tl_zigbee_sdk/build/tlsr_tc32/boot.link
tl_zigbee_sdk/build/tlsr_tc32/boot.link
+145
-145
tl_zigbee_sdk/proj/common/tlPrintf.h
tl_zigbee_sdk/proj/common/tlPrintf.h
+95
-88
tl_zigbee_sdk/proj/drivers/drv_nv.c
tl_zigbee_sdk/proj/drivers/drv_nv.c
+628
-628
tl_zigbee_sdk/proj/drivers/drv_nv.h
tl_zigbee_sdk/proj/drivers/drv_nv.h
+430
-426
tl_zigbee_sdk/proj/os/ev_timer.h
tl_zigbee_sdk/proj/os/ev_timer.h
+164
-164
tl_zigbee_sdk/proj/tl_common.h
tl_zigbee_sdk/proj/tl_common.h
+86
-85
tl_zigbee_sdk/zigbee/bdb/bdb.c
tl_zigbee_sdk/zigbee/bdb/bdb.c
+1916
-1916
No files found.
tl_zigbee_sdk/apps/3LightPanelDemo/3LightPanelDemo.c
View file @
682c75ca
...
...
@@ -188,6 +188,11 @@ void user_app_init(void)
zcl_register
(
fixedEndpoints
[
i
],
Cluster_Num_List
[
i
],
(
zcl_specClusterInfo_t
*
)
g_EPClusterAllList
[
i
]);
}
#if AF_TEST_ENABLE
/* Register endPoint */
u8
status
=
af_endpointRegister
(
SAMPLE_TEST_ENDPOINT
,
(
af_simple_descriptor_t
*
)
&
sampleTestDesc
,
afTest_rx_handler
,
afTest_dataSendConfirm
);
printf
(
"af_test regester status =%d
\r\n
"
,
status
);
#endif
#ifdef ZCL_GREEN_POWER
/* Initialize GP */
...
...
@@ -272,6 +277,7 @@ void user_init(bool isRetention)
user_app_init
();
App_Init
();
printf
(
"###########init !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
\r\n
"
);
/* Register except handler for test */
sys_exceptHandlerRegister
(
sampleLightSysException
);
...
...
tl_zigbee_sdk/apps/3LightPanelDemo/3LightPanelDemo.h
View file @
682c75ca
...
...
@@ -47,12 +47,11 @@
#define _SAMPLE_LIGHT_H_
#include ENDPOINT_CONFIG_H
/**********************************************************************
* CONSTANT
*/
#define SAMPLE_LIGHT_ENDPOINT 0x01
#define SAMPLE_TEST_ENDPOINT 0x0
2
#define SAMPLE_TEST_ENDPOINT 0x0
6
/**********************************************************************
* TYPEDEFS
...
...
tl_zigbee_sdk/apps/3LightPanelDemo/3LightPanelDemo_endpoint_config.c
View file @
682c75ca
...
...
@@ -58,7 +58,7 @@
*/
#define ZCL_BASIC_MFG_NAME {5,'K','o','n','k','e'}
#define ZCL_BASIC_MODEL_ID {16,'3','A','F','E','2','
8','2','0','0','0','0','6','8','6','2','1'}
#define ZCL_BASIC_MODEL_ID {16,'3','A','F','E','2','
0','2','0','0','0','0','6','8','6','2','4'}
#ifndef ZCL_BASIC_MFG_NAME
#define ZCL_BASIC_MFG_NAME {6,'T','E','L','I','N','K'}
...
...
@@ -120,7 +120,6 @@ const u16 EP1_inClusterList[] =
#ifdef ZCL_FCC0
ZCL_CLUSTER_PRIVATE_FCC0
,
#endif
};
/**
...
...
@@ -162,10 +161,6 @@ const u16 EP2_inClusterList[] =
#ifdef ZCL_ZLL_COMMISSIONING
ZCL_CLUSTER_TOUCHLINK_COMMISSIONING
,
#endif
#ifdef ZCL_FCC0
ZCL_CLUSTER_PRIVATE_FCC0
,
#endif
};
/**
...
...
@@ -208,10 +203,6 @@ const u16 EP3_inClusterList[] =
#ifdef ZCL_ZLL_COMMISSIONING
ZCL_CLUSTER_TOUCHLINK_COMMISSIONING
,
#endif
#ifdef ZCL_FCC0
ZCL_CLUSTER_PRIVATE_FCC0
,
#endif
};
/**
...
...
@@ -253,10 +244,6 @@ const u16 EP4_inClusterList[] =
#ifdef ZCL_ZLL_COMMISSIONING
ZCL_CLUSTER_TOUCHLINK_COMMISSIONING
,
#endif
#ifdef ZCL_FCC0
ZCL_CLUSTER_PRIVATE_FCC0
,
#endif
};
/**
...
...
@@ -299,6 +286,7 @@ const u16 sampleTest_inClusterList[] =
ZCL_CLUSTER_TELINK_SDK_TEST_RSP
,
ZCL_CLUSTER_TELINK_SDK_TEST_CLEAR_REQ
,
ZCL_CLUSTER_TELINK_SDK_TEST_CLEAR_RSP
,
0x0001
,
};
...
...
@@ -324,8 +312,8 @@ const u16 sampleTest_outClusterList[] =
*/
const
af_simple_descriptor_t
sampleTestDesc
=
{
HA_PROFILE_ID
,
/* Application profile identifier */
HA_DEV_
DIMMABLE_LIGHT
,
/* Application device identifier */
ZDO_PROFILE_ID
,
/* Application profile identifier */
HA_DEV_
ONOFF_LIGHT_SWITCH
,
/* Application device identifier */
SAMPLE_TEST_ENDPOINT
,
/* Endpoint */
0
,
/* Application device version */
0
,
/* Reserved */
...
...
@@ -559,7 +547,7 @@ zcl_onOffAttr_t g_zcl_onOffAttrs[Support_Endpoint_Num] ={ONOFF_DEFAULT1,ONOFF_DE
const
zclAttrInfo_t
onOff_attrTbl
[]
=
{
{
ZCL_ATTRID_ONOFF
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_
REPORTABLE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
0
].
onOff
},
{
ZCL_ATTRID_ONOFF
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_
WRITE
|
ACCESS_CONTROL_REPORTABLE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
0
].
onOff
},
{
ZCL_ATTRID_GLOBAL_SCENE_CONTROL
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
0
].
globalSceneControl
},
{
ZCL_ATTRID_ON_TIME
,
ZCL_DATA_TYPE_UINT16
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_WRITE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
0
].
onTime
},
{
ZCL_ATTRID_OFF_WAIT_TIME
,
ZCL_DATA_TYPE_UINT16
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_WRITE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
0
].
offWaitTime
},
...
...
@@ -569,7 +557,7 @@ const zclAttrInfo_t onOff_attrTbl[] =
};
const
zclAttrInfo_t
onOff_attrTb2
[]
=
{
{
ZCL_ATTRID_ONOFF
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_
REPORTABLE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
1
].
onOff
},
{
ZCL_ATTRID_ONOFF
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_
WRITE
|
ACCESS_CONTROL_REPORTABLE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
1
].
onOff
},
{
ZCL_ATTRID_GLOBAL_SCENE_CONTROL
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
1
].
globalSceneControl
},
{
ZCL_ATTRID_ON_TIME
,
ZCL_DATA_TYPE_UINT16
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_WRITE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
1
].
onTime
},
{
ZCL_ATTRID_OFF_WAIT_TIME
,
ZCL_DATA_TYPE_UINT16
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_WRITE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
1
].
offWaitTime
},
...
...
@@ -579,7 +567,7 @@ const zclAttrInfo_t onOff_attrTb2[] =
};
const
zclAttrInfo_t
onOff_attrTb3
[]
=
{
{
ZCL_ATTRID_ONOFF
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_
REPORTABLE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
2
].
onOff
},
{
ZCL_ATTRID_ONOFF
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_
WRITE
|
ACCESS_CONTROL_REPORTABLE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
2
].
onOff
},
{
ZCL_ATTRID_GLOBAL_SCENE_CONTROL
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
2
].
globalSceneControl
},
{
ZCL_ATTRID_ON_TIME
,
ZCL_DATA_TYPE_UINT16
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_WRITE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
2
].
onTime
},
{
ZCL_ATTRID_OFF_WAIT_TIME
,
ZCL_DATA_TYPE_UINT16
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_WRITE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
2
].
offWaitTime
},
...
...
@@ -589,7 +577,7 @@ const zclAttrInfo_t onOff_attrTb3[] =
};
const
zclAttrInfo_t
onOff_attrTb4
[]
=
{
{
ZCL_ATTRID_ONOFF
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_
REPORTABLE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
3
].
onOff
},
{
ZCL_ATTRID_ONOFF
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_
WRITE
|
ACCESS_CONTROL_REPORTABLE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
3
].
onOff
},
{
ZCL_ATTRID_GLOBAL_SCENE_CONTROL
,
ZCL_DATA_TYPE_BOOLEAN
,
ACCESS_CONTROL_READ
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
3
].
globalSceneControl
},
{
ZCL_ATTRID_ON_TIME
,
ZCL_DATA_TYPE_UINT16
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_WRITE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
3
].
onTime
},
{
ZCL_ATTRID_OFF_WAIT_TIME
,
ZCL_DATA_TYPE_UINT16
,
ACCESS_CONTROL_READ
|
ACCESS_CONTROL_WRITE
,
(
u8
*
)
&
g_zcl_onOffAttrs
[
3
].
offWaitTime
},
...
...
tl_zigbee_sdk/apps/3LightPanelDemo/3LightPanelDemo_endpoint_config.h
View file @
682c75ca
...
...
@@ -119,6 +119,8 @@ extern zcl_lightColorCtrlAttr_t g_zcl_colorCtrlAttrs;
#define zcl_sceneAttrGet(ep) &g_zcl_sceneAttrs[ep-1]
#define zcl_onoffAttrGet(ep) &g_zcl_onOffAttrs[ep-1]
#define zcl_BasicAttrGet() &g_zcl_basicAttrs
void
SimpleDesc_Init
(
uint8_t
endpint
);
nv_sts_t
zcl_onOffAttr_get
(
void
);
nv_sts_t
zcl_onOffAttr_save
(
void
);
...
...
tl_zigbee_sdk/apps/3LightPanelDemo/app_cfg.h
View file @
682c75ca
...
...
@@ -116,7 +116,7 @@ extern "C" {
// DEBUG
#if UART_PRINTF_MODE
#define DEBUG_INFO_TX_PIN GPIO_PA
2//print
#define DEBUG_INFO_TX_PIN GPIO_PA
1//print
#endif
/**********************************************************************
* Stack configuration
...
...
@@ -148,7 +148,7 @@ extern "C" {
* @brief ZCL: MAX number of cluster list, in cluster number add + out cluster number
*
*/
#define ZCL_CLUSTER_NUM_MAX
30
#define ZCL_CLUSTER_NUM_MAX
50
/**
* @brief ZCL: maximum number for zcl reporting table
...
...
tl_zigbee_sdk/apps/3LightPanelDemo/ikk-config.h
View file @
682c75ca
...
...
@@ -19,7 +19,7 @@
#define MANUFATURE_NAME "Konke"
/*Dsp: MODEL_ID */
#define MODEL_ID 0x
3AFE101000068624
#define MODEL_ID 0x
00068624
/*Dsp: OTA_IMAGE_TYPE */
#define OTA_IMAGE_TYPE 65000
...
...
tl_zigbee_sdk/apps/3LightPanelDemo/user.c
View file @
682c75ca
This diff is collapsed.
Click to expand it.
tl_zigbee_sdk/apps/3LightPanelDemo/zb_afTestCb.c
View file @
682c75ca
...
...
@@ -55,7 +55,7 @@
#if ZBHCI_EN
#include "zbhci.h"
#endif
#include "ikk-debug.h"
#if AF_TEST_ENABLE
/**********************************************************************
* LOCAL CONSTANTS
...
...
@@ -126,17 +126,40 @@ static void afTest_testClearReqPrc(apsdeDataInd_t *pApsdeInd)
dstEp
.
profileId
=
pApsdeInd
->
indInfo
.
profile_id
;
dstEp
.
dstAddrMode
=
APS_SHORT_DSTADDR_WITHEP
;
dstEp
.
dstAddr
.
shortAddr
=
pApsdeInd
->
indInfo
.
src_short_addr
;
u8
st
=
SUCCESS
;
u8
apsCnt
=
0
;
af_dataSend
(
pApsdeInd
->
indInfo
.
dst_ep
,
&
dstEp
,
ZCL_CLUSTER_TELINK_SDK_TEST_CLEAR_RSP
,
1
,
&
st
,
&
apsCnt
);
}
static
void
afTest_dataSendDemo
(
apsdeDataInd_t
*
pApsdeInd
)
{
epInfo_t
dstEp
;
TL_SETSTRUCTCONTENT
(
dstEp
,
0
);
dstEp
.
dstAddrMode
=
APS_LONG_DSTADDR_WITHEP
;
dstEp
.
dstEp
=
pApsdeInd
->
indInfo
.
src_ep
;
memcpy
(
dstEp
.
dstAddr
.
extAddr
,
pApsdeInd
->
indInfo
.
src_ext_addr
,
8
);
dstEp
.
profileId
=
HA_PROFILE_ID
;
dstEp
.
txOptions
=
APS_TX_OPT_INTRA_PAN
;
dstEp
.
radius
=
0
;
u8
apsCnt
=
0
;
u8
asdu
[]
=
{
0xAA
,
0x55
,
0x00
,
0x08
,
0x10
,
0x00
,
0x00
,
0x04
,
0x00
,
0x00
,
0x0d
,
0x00
,
0xF3
,
0xD0
};
u8
asdulength
=
sizeof
(
asdu
);
//af_dataSend(pApsdeInd->indInfo.dst_ep, &dstEp, 0x0001, asdulength, asdu, &apsCnt);
printf
(
"afTest_Receive--------------ok!!
\r\n
"
);
}
void
afTest_rx_handler
(
void
*
arg
)
{
apsdeDataInd_t
*
pApsdeInd
=
(
apsdeDataInd_t
*
)
arg
;
iKonkeAfSelfPrint
(
"interpan data received,data len =%d
\r\n
"
,
pApsdeInd
->
indInfo
.
asduLength
);
iKonkeAfSelfPrintBuffer
(
pApsdeInd
->
indInfo
.
asdu
,
pApsdeInd
->
indInfo
.
asduLength
);
switch
(
pApsdeInd
->
indInfo
.
cluster_id
){
case
ZCL_CLUSTER_TELINK_SDK_TEST_CLEAR_REQ
:
g_afTest_rcvReqCnt
=
0
;
...
...
@@ -147,8 +170,12 @@ void afTest_rx_handler(void *arg)
afTest_testReqPrc
(
pApsdeInd
);
break
;
case
ZCL_CLUSTER_TELINK_SDK_TEST_RSP
:
break
;
// case ZCL_CLUSTER_PRIVATE_FCC0:
// {
// afTest_dataSendDemo(pApsdeInd);
// break;
// }
default:
break
;
}
...
...
@@ -159,8 +186,8 @@ void afTest_rx_handler(void *arg)
void
afTest_dataSendConfirm
(
void
*
arg
)
{
// apsdeDataConf_t *pApsDataCnf = (apsdeDataConf_t *)arg;
apsdeDataConf_t
*
pApsDataCnf
=
(
apsdeDataConf_t
*
)
arg
;
printf
(
"afTest_dataSendConfirm,dest ep = %d
\r\n
!!
\r\n
"
,
pApsDataCnf
->
dstEndpoint
);
}
#endif
/* AF_TEST_ENABLE */
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-button.c
View file @
682c75ca
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-pwm.c
View file @
682c75ca
...
...
@@ -64,7 +64,7 @@ void pwmSetDuty(u8 ch, u16 dutycycle)
uint8_t
kPwmGetIndexByID
(
uint8_t
pwm_id
)
{
for
(
int
index
=
0
;
index
<
g_u8PwmChannelNum
;
++
index
)
{
iKonkeAfSelfPrint
(
"####kPwmGetIndexByID index[%d] pwm_id[%d]
\r\n
"
,
index
,
g_stPwmConfList
[
index
].
u8PwmId
);
//iKonkeAfSelfPrint("####kPwmGetIndexByID index[%d] pwm_id[%d]\r\n",index, g_stPwmConfList[index].u8PwmId);
if
(
g_stPwmConfList
[
index
].
u8PwmId
!=
PWM_UNUSED_ID
)
{
if
(
g_stPwmConfList
[
index
].
u8PwmId
==
pwm_id
)
{
return
index
;
...
...
@@ -86,7 +86,7 @@ void kPwmDriverhandler(uint8_t pwm_index, PwmGradientDirectionEnum st, uint16_t
iKonkeAfSelfPrint
(
"####kPwmDriverhandler index is too large
\r\n
"
);
return
;
}
iKonkeAfSelfPrint
(
"######kPwmDriverhandler index(%d), direction(%d), value(%d)
\r\n
"
,
pwm_index
,
st
,
value
);
//iKonkeAfSelfPrint("######kPwmDriverhandler index(%d), direction(%d), value(%d)\r\n", pwm_index, st, value);
switch
(
st
)
{
case
(
ELP_MIN
):
...
...
@@ -170,7 +170,7 @@ void kPwmOptTrigger(uint8_t id, uint32_t start_value, uint32_t end_value, uint32
g_stPwmCtrller
[
pwm_index
].
startDutyCycle
=
start_value
;
g_stPwmCtrller
[
pwm_index
].
endDutyCycle
=
end_value
;
g_stPwmCtrller
[
pwm_index
].
startDutyCycleValue
=
start_value
;
memcpy
(
&
g_stPwmCtrller
[
pwm_index
].
gpioInfo
,
&
g_stPwmConfList
[
pwm_index
].
gpioInfo
,
sizeof
(
PwmGpio
ListSt
));
memcpy
(
&
g_stPwmCtrller
[
pwm_index
].
gpioInfo
,
&
g_stPwmConfList
[
pwm_index
].
gpioInfo
,
sizeof
(
PwmGpio
St
));
iKonkeAfSelfPrint
(
"action (%d) , interval[%d]
\r\n
"
,
g_stPwmCtrller
[
pwm_index
].
actionCounter
,
g_stPwmCtrller
[
pwm_index
].
intervalDutyCycle
);
pwmSetDuty
(
g_stPwmConfList
[
pwm_index
].
gpioInfo
.
pwmChannel
,
start_value
);
...
...
@@ -267,7 +267,7 @@ static s32 kPwmGradientChangeEventHandler(void *data)
g_stPwmCtrller
[
i
].
startDutyCycleValue
+=
g_stPwmCtrller
[
i
].
intervalDutyCycle
;
pwmSetDuty
(
g_stPwmCtrller
[
i
].
gpioInfo
.
pwmChannel
,
g_stPwmCtrller
[
i
].
startDutyCycleValue
);
}
iKonkeAfSelfPrint
(
"BREATH index(%d)channel(%d) count(%d),%d
\r\n
"
,
i
,
g_stPwmCtrller
[
i
].
gpioInfo
.
pwmChannel
,
g_stPwmCtrller
[
i
].
actionCounter
,
g_stPwmCtrller
[
i
].
startDutyCycleValue
);
//iKonkeAfSelfPrint("BREATH index(%d)channel(%d) count(%d),%d\r\n", i,g_stPwmCtrller[i].gpioInfo.pwmChannel, g_stPwmCtrller[i].actionCounter,g_stPwmCtrller[i].startDutyCycleValue);
//PWM_IDص
if
(
g_stPwmCtrller
[
i
].
actionCounter
==
0
){
//may be end duty cycle not equal, restore end duty cycle
...
...
@@ -291,7 +291,29 @@ static s32 kPwmGradientChangeEventHandler(void *data)
}
return
0
;
}
/* DESP: clear pwm gradient counter interface by pwm id.
* Auth: maozj.20200212.
* */
bool
kPwmClearGradientCounterById
(
uint8_t
pwm_id
)
{
if
(
pwm_id
==
PWM_UNUSED_ID
){
iKonkeAfSelfPrint
(
"#Err: kPwmClearGradientCounterById pwm id is invalid
\r\n
"
);
return
false
;
}
for
(
int
index
=
0
;
index
<
PWM_OBJS_SUPPORT_MAXN
;
++
index
)
{
//iKonkeAfSelfPrint("####kPwmGetIndexByID index[%d] pwm_id[%d]\r\n",index, g_stPwmConfList[index].u8PwmId);
if
(
g_stPwmConfList
[
index
].
u8PwmId
==
pwm_id
)
{
iKonkeAfSelfPrint
(
"###kPwmClearGradientCounterById success index(%d) id(%d)
\r\n
"
,
index
,
pwm_id
);
g_stPwmCtrller
[
index
].
actionCounter
=
0
;
return
true
;
}
}
return
false
;
}
void
PWM_Test
(
uint8_t
data
)
{
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-pwm.h
View file @
682c75ca
...
...
@@ -89,7 +89,7 @@ kk_err_t kPwmModuleInit(PwmConfSt pwmlist[], unsigned char pwm_number, pPwmActio
*/
void
kPwmOptTrigger
(
uint8_t
id
,
uint32_t
start_value
,
uint32_t
end_value
,
uint32_t
duration_time
);
bool
kPwmClearGradientCounterById
(
uint8_t
pwm_id
);
void
PWM_Test
(
uint8_t
data
);
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-uart.c
View file @
682c75ca
...
...
@@ -265,8 +265,8 @@ static void dma_uartRcvHandler(void)
uint8_t
head_index
=
0
;
uint32_t
len
=
*
dma_uartRxBuf
;
// iKonkeAfSelfPrint("#############dma_uartRcvHandler,recv data len = %d \r\n",len);
// iKonkeAfSelfPrintBuffer(dma_uartRxBuf+4,len);
iKonkeAfSelfPrint
(
"#############dma_uartRcvHandler,recv data len = %d
\r\n
"
,
len
);
iKonkeAfSelfPrintBuffer
(
dma_uartRxBuf
+
4
,
len
);
memset
(
&
MsgNode
,
0
,
sizeof
(
UMsgNodeSt
));
for
(
uint8_t
i
=
0
;
i
<
len
;
i
++
)
{
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/driver/ikk-uart.h
View file @
682c75ca
...
...
@@ -5,7 +5,7 @@
#include "drv_uart.h"
// MSG BUFFER OF NODE MAXLENGTH
#define UMSG_NODE_SIZE
32
#define UMSG_NODE_SIZE
96
// Maximum number of message nodes in the queue
#define UMSG_NODE_MAX 4
// Maximum Cache Length of Message Receiver
...
...
@@ -17,7 +17,7 @@ typedef enum { EQU_RECV = 0, EQU_SENT }QueueEm;
// uart recv/send buffer node
typedef
struct
tag_uart_message_node
{
unsigned
char
buffer
[
UMSG_NODE_SIZE
];
u
nsigned
char
length
;
u
int16_t
length
;
// just for sending, Used to match instruction responses. For example, according to the instruction opcode!
unsigned
char
matcher
[
4
];
unsigned
char
matcher_offset
;
...
...
@@ -26,6 +26,8 @@ typedef struct tag_uart_message_node {
bool
bRspNeedtoDispatch
;
// Attempt to send number of times, decreases to 0 when invalid!!!
unsigned
char
sent_try
;
unsigned
char
*
ack
;
unsigned
char
ack_length
;
}
UMsgNodeSt
;
typedef
struct
tag_uart_message_queue
{
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-cluster.c
View file @
682c75ca
...
...
@@ -19,7 +19,7 @@ static uint8_t g_tmp_buffer[64] = { 0 };
pOnOffClusterOnOffStatusCallback
g_pfOnOffStatusCallback
=
NULL
;
//static pClusterAttributeChangeCallback pOnOffClusterCallback = NULL;
static
pClusterAttributeChangeCallback
pOnOffClusterCallback
=
NULL
;
//static pClusterAttributeChangeCallback pLevelClusterCallback = NULL;
//static pClusterAttributeChangeCallback pColorClusterCallback = NULL;
...
...
@@ -33,27 +33,12 @@ typedef struct {
static
ZclClusterReportTableSt
g_stZclClusterReportPermitTable
;
//bool kZclOnOffClusterServerOnOffGet(uint8_t endpoint)
//{
// uint8_t status;
// zclAttrInfo_t *onoff = zcl_attrRead(endpoint,ZCL_CLUSTER_GEN_ON_OFF,ZCL_ATTRID_ONOFF,&status);
//
// iKonkeAfSelfPrint("kZclOnOffClusterServerOnOffGet:status(%d), endpoint(%d), status(%d)\r\n",status, endpoint, onoff->data[0]);
// iKonkeAfSelfPrint("kZclOnOffClusterServerOnOffGet:id(%d), type(%d), access(%d)\r\n",onoff->id, onoff->type, onoff->access);
//
// return onoff->data[0];
//}
bool
kZclOnOffClusterServerOnOffGet
(
uint8_t
endpoint
)
{
zcl_onOffAttr_t
*
pOnOff
=
zcl_onoffAttrGet
(
endpoint
);
return
pOnOff
->
onOff
;
}
void
kZclOnOffClusterServerOnOffSet
(
uint8_t
endpoint
,
bool
onoff
)
{
zcl_onOffAttr_t
*
pOnOff
=
zcl_onoffAttrGet
(
endpoint
);
pOnOff
->
onOff
=
onoff
;
WriteServerAttribute
(
endpoint
,
CLUSTER_ONOFF_ID
,
ZCL_ATTRID_ONOFF
,(
uint8_t
*
)
&
onoff
,
ZCL_DATA_TYPE_BOOLEAN
);
// zcl_onOffAttr_t *pOnOff = zcl_onoffAttrGet(endpoint);
//
// pOnOff->onOff = onoff;
zcl_onOffAttr_save
();
}
/* DESP: on-off cluster control operate.
...
...
@@ -69,7 +54,6 @@ kk_err_t kZclOnOffClusterServerOnOffControl(uint8_t endpoint, OnOffCtrlEnum ctrl
setValue
=
1
;
else
setValue
=
0
;
kZclOnOffClusterServerOnOffSet
(
endpoint
,
setValue
);
if
(
kNwkGetCurrentStatus
()
==
ENS_ONLINE
)
{
// check binding table
...
...
@@ -81,7 +65,12 @@ kk_err_t kZclOnOffClusterServerOnOffControl(uint8_t endpoint, OnOffCtrlEnum ctrl
return
KET_OK
;
}
bool
kZclOnOffClusterServerOnOffGet
(
uint8_t
endpoint
)
{
status_t
status
;
zclAttrInfo_t
*
pOnOff
=
zcl_attrRead
(
endpoint
,
CLUSTER_ONOFF_ID
,
ZCL_ATTRID_ONOFF
,
&
status
);
return
(
status
==
ZCL_STA_SUCCESS
)
?
(
pOnOff
->
data
[
0
])
:
(
0
);
}
static
status_t
WriteServerAttribute
(
u8
endpoint
,
u16
clusterId
,
uint8_t
attributeID
,
uint8_t
*
dataPtr
,
uint8_t
data_type
)
...
...
@@ -90,15 +79,41 @@ static status_t WriteServerAttribute(u8 endpoint, u16 clusterId,uint8_t attribut
attr_data
.
attrID
=
attributeID
;
attr_data
.
dataType
=
data_type
;
u16
dataLen
=
zcl_getAttrSize
(
data_type
,
dataPtr
);
memcpy
(
attr_data
.
attrData
,
dataPtr
,
dataLen
);
attr_data
.
attrData
=
dataPtr
;
// iKonkeAfSelfPrint("##WriteServerAttribute attr =%x,attr = %x,len=%d :\r\n",clusterId,attr_data.attrID,dataLen);
// iKonkeAfSelfPrint("##DataBuffer len = %d,data=%x-%x:\r\n",dataLen,attr_data.attrData[1],attr_data.attrData[2]);
// iKonkeAfSelfPrintBuffer(attr_data.attrData,attr_data.attrData[0]+1);
return
zcl_attrWrite
(
endpoint
,
clusterId
,
&
attr_data
,
false
);
iKonkeAfSelfPrint
(
"##WriteServerAttribute cluster =%d,attr = %d,len=%d :
\r\n
"
,
clusterId
,
attr_data
.
attrID
,
dataLen
);
if
(
dataLen
==
1
)
iKonkeAfSelfPrint
(
"##data=%d:
\r\n
"
,
*
dataPtr
);
else
iKonkeAfSelfPrintBuffer
(
dataPtr
,
dataLen
);
return
zcl_attrWrite
(
endpoint
,
clusterId
,
&
attr_data
,
true
);
}
bool
Get_Model_ID
(
uint8_t
*
ModeID
)
{
status_t
status
;
zclAttrInfo_t
*
pAttrInfo
=
zcl_attrRead
(
1
,
ZCL_CLUSTER_GEN_BASIC
,
ZCL_ATTRID_BASIC_MODEL_ID
,
&
status
);
if
(
status
==
ZCL_STA_SUCCESS
)
{
uint8_t
len
=
pAttrInfo
->
data
[
0
];
if
((
ModeID
)
&&
(
len
>
0
)
&&
(
pAttrInfo
->
type
==
ZCL_DATA_TYPE_CHAR_STR
))
{
uint8_t
temp
[
16
]
=
{
0
};
memcpy
(
ModeID
,
&
pAttrInfo
->
data
[
1
],
len
);
//Get ASCII Data
if
((
len
>
0
)
&&
(
len
%
2
==
0
))
{
kUtilsStr2Hex
(
ModeID
,
temp
,
len
);
memcpy
(
ModeID
,
temp
,
len
/
2
);
iKonkeAfSelfPrint
(
"##Trans Data Buffer Len =%d:
\r\n
"
,
len
);
iKonkeAfSelfPrintBuffer
(
ModeID
,
8
);
return
true
;
}
}
}
return
false
;
}
static
status_t
Rewrite_Modeid
(
uint8_t
*
modeid
,
uint8_t
software
,
uint8_t
hardware
)
{
uint8_t
Modeid_Temp
[]
=
"3AFE101003008611"
;
...
...
@@ -140,6 +155,10 @@ static status_t Rewrite_Modeid(uint8_t *modeid,uint8_t software,uint8_t hardwar
g_tmp_buffer
[
0
]
=
16
;
g_tmp_buffer
[
0
+
2
+
16
]
=
'0'
;
uint8_t
*
data
=
MODEL_ID_TOKEN_GET
();
if
(
!
All_Same_Data
(
&
data
[
1
],
0xff
,
32
))
memcpy
(
g_tmp_buffer
,
data
,
data
[
0
]
+
1
);
status
=
WriteServerAttribute
(
1
,
ZCL_CLUSTER_GEN_BASIC
,
ZCL_ATTRID_BASIC_MODEL_ID
,(
uint8_t
*
)
g_tmp_buffer
,
ZCL_DATA_TYPE_CHAR_STR
);
if
(
status
!=
ZCL_STA_SUCCESS
)
{
...
...
@@ -188,73 +207,54 @@ void Update_Local_Attribute_Info(void)
//
//static typedef struct{
// zcl_basicAttr_t basicAttrs_temp;
// zcl_identifyAttr_t identifyAttrs_temp
// zcl_onOffAttr_t onOffAttrs_temp;
// zcl_onOffAttr_t levelAttrs_temp;
//}AttrListST;
//static AttrListST Attr_List_Value[MAX_ATTR_CHANGE_SUPPORT_NUMS] ;
//void ClusterAttributeChangeCallbackRegister(AttributeChangeConfSt *ConfSt,unint8_t num)
//{
// for(uint8_t i=0;i<num;i++)
// {
// if(i > MAX_ATTR_CHANGE_SUPPORT_NUMS)
// {
// iKonkeAfSelfPrint("attribute change callback totals number beyond!!\r\n");
// break;
// }
// switch(ConfSt[i]->cluster)
// {
// case ZCL_CLUSTER_GEN_ON_OFF:
// {
// if(ConfSt[i]->attribute == ZCL_ATTRID_ONOFF)
// {
// pOnOffClusterCallback = ConfSt[i]->change_callback;
// }
// }
// break;
typedef
struct
{
zcl_basicAttr_t
basicAttrs_temp
;
zcl_identifyAttr_t
identifyAttrs_temp
;
zcl_onOffAttr_t
onOffAttrs_temp
;
zcl_levelAttr_t
levelAttrs_temp
;
}
AttrListST
;
static
AttrListST
Attr_List_Value
[
MAX_ATTR_CHANGE_SUPPORT_NUMS
]
;
void
ikkAttributeChangeCallbackRegister
(
AttributeChangeConfSt
*
ConfSt
,
uint8_t
num
)
{
for
(
uint8_t
i
=
0
;
i
<
MAX_ATTR_CHANGE_SUPPORT_NUMS
;
i
++
)
{
if
(
i
>
MAX_ATTR_CHANGE_SUPPORT_NUMS
)
{
iKonkeAfSelfPrint
(
"attribute change callback totals number beyond!!
\r\n
"
);
break
;
}
switch
(
ConfSt
->
cluster
)
{
case
ZCL_CLUSTER_GEN_ON_OFF
:
{
pOnOffClusterCallback
=
ConfSt
->
change_callback
;
}
break
;
// case ZCL_CLUSTER_GEN_LEVEL_CONTROL:
// {
// if(ConfSt[i]->attribute == ZCL_ATTRID_LEVEL_CURRENT_LEVEL)
// pLevelClusterCallback = ConfSt[i]->change_callback;
// pLevelClusterCallback = ConfSt->change_callback;
// }
// break;
// default:
// break;
// }
// }
//// memcpy(&Attr_List_Value.basicAttrs_temp,&g_zcl_basicAttrs,sizeof(zcl_basicAttr_t));
//// memcpy(&Attr_List_Value.identifyAttrs_temp,&g_zcl_identifyAttrs,sizeof(zcl_basicAttr_t));
//// memcpy(&Attr_List_Value.onOffAttrs_temp,&g_zcl_onOffAttrs,sizeof(zcl_basicAttr_t));
//// memcpy(&Attr_List_Value.levelAttrs_temp,&g_zcl_levelAttrs,sizeof(zcl_basicAttr_t));
//}
default:
break
;
}
}
}
void
AttributeValueCheck
(
void
)
void
AttributeValueCheck
Callback
(
void
)
{
// if((Attr_List_Value.onOffAttrs_temp.onOff !=g_zcl_onOffAttrs.onOff)&&(pOnOffClusterCallback))
// {
// pOnOffClusterCallback(1,ZCL_CLUSTER_GEN_ON_OFF,ZCL_ATTRID_ONOFF,g_zcl_onOffAttrs.onOff,1,g_zcl_onOffAttrs.onOff);
//
//
// }
for
(
uint8_t
i
=
0
;
i
<
Support_Endpoint_Num
;
i
++
)
{
if
(
memcmp
((
uint8_t
*
)
&
Attr_List_Value
[
i
].
onOffAttrs_temp
,(
uint8_t
*
)
&
g_zcl_onOffAttrs
[
i
],
sizeof
(
zcl_onOffAttr_t
))
)
{
if
(
Attr_List_Value
[
i
].
onOffAttrs_temp
.
onOff
!=
g_zcl_onOffAttrs
[
i
].
onOff
)
{
if
(
pOnOffClusterCallback
)
pOnOffClusterCallback
(
i
+
1
,
ZCL_CLUSTER_GEN_ON_OFF
,
ZCL_ATTRID_ONOFF
,(
uint8_t
*
)
&
g_zcl_onOffAttrs
[
i
].
onOff
,
ZCL_DATA_TYPE_BOOLEAN
);
}
memcpy
((
uint8_t
*
)
&
Attr_List_Value
[
i
].
onOffAttrs_temp
,(
uint8_t
*
)
&
g_zcl_onOffAttrs
[
i
],
sizeof
(
zcl_onOffAttr_t
));
}
}
}
...
...
@@ -379,7 +379,6 @@ void ON_OFF_Cmd_Handler(uint8_t endpoint,bool onoff)
OnOffStatusEnum
on_off_ctr
=
(
OnOffStatusEnum
)
onoff
;
kZclClusterSetPermitReportInfo
(
endpoint
,
ZCL_CLUSTER_GEN_ON_OFF
,
true
,
false
);
kZclOnOffClusterServerOnOffControl
(
endpoint
,
on_off_ctr
);
g_pfOnOffStatusCallback
(
endpoint
,
on_off_ctr
);
}
/* DESP: Modified attribute reporting interface, reference from SDK callback[emberAfReportingAttributeChangeCallback].
* Auth: dingmz_frc.20190701.
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-cluster.h
View file @
682c75ca
...
...
@@ -28,11 +28,10 @@ typedef struct tag_zcl_report_table{
}
ZclReportTableSt
;
#define MAX_ATTR_CHANGE_SUPPORT_NUMS 8
typedef
void
(
*
pClusterAttributeChangeCallback
)(
uint8_t
endpoint
,
uint16_t
cluster
,
uint16_t
attribute
,
uint8_t
len
,
uint8_t
*
data
);
typedef
void
(
*
pClusterAttributeChangeCallback
)(
uint8_t
endpoint
,
uint16_t
cluster
,
uint16_t
attribute
,
uint8_t
*
data
,
uint8_t
data_type
);
typedef
struct
{
uint16_t
cluster
;
uint16_t
attribute
;
pClusterAttributeChangeCallback
change_callback
;
}
AttributeChangeConfSt
;
...
...
@@ -41,20 +40,25 @@ typedef void (*pOnOffClusterOnOffStatusCallback)(uint8_t endpoint, OnOffStatusEn
void
kZclOnOffClusterServerOnOffSet
(
uint8_t
endpoint
,
bool
onoff
);
extern
status_t
zcl_attrWrite
(
u8
endpoint
,
u16
clusterId
,
zclWriteRec_t
*
pWriteRec
,
bool
enable
);
extern
zclAttrInfo_t
*
zcl_attrRead
(
u8
endpoint
,
u16
clusterId
,
u16
attrId
,
status_t
*
status
);
#define ReadServerAttribute(endpoint,clusterId,attributeID,status) (zcl_attrRead(endpoint,clusterId,attributeID,status))
#define kGetLastRssi() (g_sysDiags.lastMessageRSSI)
#define kGetLastLQI() (g_sysDiags.lastMessageLQI)
void
Update_Local_Attribute_Info
(
void
);
bool
kIsKonkeRemoteGateway
(
void
);
kk_err_t
kZclOnOffClusterServerInit
(
pOnOffClusterOnOffStatusCallback
pOnOffStatusCallback
);
void
ikkAttributeChangeCallbackRegister
(
AttributeChangeConfSt
*
ConfSt
,
uint8_t
num
);
void
ON_OFF_Cmd_Handler
(
uint8_t
endpoint
,
uint8_t
cmd
);
bool
kZclOnOffClusterServerOnOffGet
(
uint8_t
endpoint
);
kk_err_t
kZclOnOffClusterServerOnOffControl
(
uint8_t
endpoint
,
OnOffCtrlEnum
ctrlopt
);
void
ClusterAttributeChangeCallbackRegister
(
AttributeChangeConfSt
*
ConfSt
,
uint8_t
num
);
bool
Get_Model_ID
(
uint8_t
*
ModeID
);
bool
kkClusterGetReportingPeriod
(
uint8_t
endpoint
,
uint16_t
cluster_id
,
uint16_t
attribute_id
,
uint16_t
*
min_interval
,
uint16_t
*
max_interval
);
void
kOptTunnelReportingPlagiarizeOriginal
(
uint8_t
endpoint
,
uint16_t
clusterId
,
uint16_t
attributeId
);
void
kZclClusterPermitReportTableInit
(
BindObjSt
clusterBindList
[],
uint8_t
size
);
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-command.c
View file @
682c75ca
This diff is collapsed.
Click to expand it.
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-command.h
View file @
682c75ca
#ifndef __IKONKE_COMMAND_H____________________________
#define __IKONKE_COMMAND_H____________________________
#include "ikk-module-def.h"
#include "../driver/ikk-uart.h"
#define CMD_CONTROL_FIELD_HOST_TO_ZIGBEE_NEED_ACK 0x10
#define CMD_CONTROL_FIELD_HOST_TO_ZIGBEE_NO_ACK 0x00
#define CMD_CONTROL_FIELD_ZIGBEE_TO_HOST_NEED_ACK 0x30
#define CMD_CONTROL_FIELD_ZIGBEE_TO_HOST_NO_ACK 0x20
typedef
enum
{
H_TO_Z_WITH_ACK
=
CMD_CONTROL_FIELD_HOST_TO_ZIGBEE_NEED_ACK
,
H_TO_Z_NO_ACK
=
CMD_CONTROL_FIELD_HOST_TO_ZIGBEE_NO_ACK
,
Z_TO_H_WITH_ACK
=
CMD_CONTROL_FIELD_ZIGBEE_TO_HOST_NEED_ACK
,
Z_TO_H_NO_ACK
=
CMD_CONTROL_FIELD_ZIGBEE_TO_HOST_NO_ACK
,
}
CMD_CONTROL_FIELD_E
;
typedef
struct
{
uint16_t
seq
;
uint8_t
u8Datalen
;
uint8_t
u8ChannelID
;
uint16_t
u16Opcode
;
uint8_t
u8ArgLen
;
uint8_t
u8ARG
[
128
];
}
DataField_st
;
typedef
struct
{
uint8_t
u8SOFHeaderBuf
[
2
];
uint16_t
u16DataLength
;
uint8_t
u8ControlFied
;
//uint16_t u16Seq;
DataField_st
stDataField
;
}
MsgFrameworkFormat_st
;
kk_err_t
kCmdGeneralMsgPaser
(
UMsgNodeSt
*
pMsgNode
,
ComPortEm
port
,
DataField_st
*
pDataOut
);
uint16_t
kCmdOpcodeRemap
(
uint16_t
Opcode
,
uint8_t
direction
);
uint16_t
kCmdGetMsgCrc16Value
(
uint8_t
*
msg
,
uint8_t
len
);
uint8_t
kCmdMsgDataSentByPort
(
uint8_t
u8Control_Field
,
DataField_st
data
,
bool
isGetResult
,
ComPortEm
port
);
#endif
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-debug.h
View file @
682c75ca
...
...
@@ -2,7 +2,7 @@
#define __IKONKE_MODULE_DEBUG_H______________________________
#define IKONKE_DEBUG_LOG_ENABLE (
1) // ENABLE
#define IKONKE_DEBUG_LOG_ENABLE (
0) // ENABLE
#define PROMPT_DSR ""
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-factory-test.c
View file @
682c75ca
This diff is collapsed.
Click to expand it.
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-factory-test.h
View file @
682c75ca
#ifndef __IKONKE_MODULE_FACTORY_TEST_H_______________________
#define __IKONKE_MODULE_FACTORY_TEST_H_______________________
#include "ikk-module-def.h"
#include "ikk-debug.h"
#include "../driver/ikk-uart.h"
#include "ikk-command.h"
// 定义是否需要产测
#define FACTORY_TEST_ENABLE true
//使能debug快速测试老化
...
...
@@ -26,19 +26,21 @@
#define FACTORY_TEST_POLL_TIMES (FACTORY_TEST_POLL_TTME_10S / FACTORY_TEST_POLL_TTME_1S)
#if AGING_DEBUG
#define FACTORY_TEST_15MIN_MS (2 * 60 * 1000)
#define FACTORY_TEST_
8HOU_MS (5 * 1 * 60 * 1000)
#define FACTORY_TEST_
4HOU_MS (5 * 1 * 60 * 1000)
#else
#define FACTORY_TEST_15MIN_MS (15 * 60 * 1000)
#define FACTORY_TEST_
8HOU_MS (8 * 60 * 60 * 1000)
#define FACTORY_TEST_
4HOU_MS (4 * 60 * 60 * 1000)
#endif
#define FACTORY_TEST_1S (1000)
//初始值
#define TEST_INIT_VALUE 0xFF
typedef
enum
{
FTS_NORMAL
=
0
,
FTS_START
,
FTS_AGING_15MIN
,
FTS_AGING_
8HOU_START
,
FTS_AGING_
8HOU
,
FTS_AGING_
4HOU_START
,
FTS_AGING_
4HOU
,
FTS_AGING_DONE
,
FTS_AGING_FORCE_EXIT
,
FTS_AGING_WAITING
,
...
...
@@ -55,11 +57,25 @@ typedef struct{
//10S轮询操作函数,可根据不同长供电产品自定义实现
typedef
void
(
*
pFactoryTestPollCallback
)(
FactoryTestStatusEnum
status
);
nv_sts_t
General_Set_Factory_Test
(
nv_item_t
items
,
uint8_t
value
);
uint8_t
General_Get_Factory_Test
(
nv_item_t
items
,
uint8_t
default_value
);
#define kSetSingleBoardValue(value) General_Set_Factory_Test(NV_SINGLE_BOARD_TEST_FLG,value)
#define kSetFullDeviceValue(value) General_Set_Factory_Test(NV_FULL_DEVICE_TEST_FLG,value)
#define kSetAgingTestValue(value) General_Set_Factory_Test(NV_AGE_TEST_STEP,value)
#define kGetSingleBoardValue() General_Get_Factory_Test(NV_SINGLE_BOARD_TEST_FLG,TEST_INIT_VALUE)
#define kGetFullDeviceValue() General_Get_Factory_Test(NV_FULL_DEVICE_TEST_FLG,TEST_INIT_VALUE)
#define kGetAgingTestValue() General_Get_Factory_Test(NV_AGE_TEST_STEP,0)
uint8_t
kGetFactoryTestValueStatus
(
void
);
uint32_t
kGetAgingMaxTime
(
void
);
void
kSetAgingMaxTime
(
uint16_t
value
);
//获取当前产测状态
FactoryTestStatusEnum
kGetFactoryTestStatus
(
void
);
//void kGetFactoryTestBtnAction(uint8_t btn_id, BtnActionEnum action);
void
kFactoryTestInit
(
pFactoryTestPollCallback
callback
,
FactoryTestConfSt
conf_list
[],
uint8_t
btn_num
);
kk_err_t
kkFactoryMsgInComingPaser
(
UMsgNodeSt
*
pMsgNode
,
ComPortEm
port
,
DataField_st
*
pDataOut
);
#endif
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-module-def.h
View file @
682c75ca
...
...
@@ -11,7 +11,12 @@
#define Z30_DEVICE_DTYPE (Z30_DEVICE_ZR)
#define Z30_DEVICE_OTA_ENABLE false
// 定义是否需要老化,目前一般路由设备需要
#define Z30_DEVICE_AGING_ENABLE true
//单板测试,目前一般是休眠设备需要
#define Z30_DEVICE_SINGLE_BOARD_ENABLE true
//整机测试, 目前一般是休眠设备需要
#define Z30_DEVICE_FULL_DEVICE_ENBALE true
// Real time IO operation, no optimization!!!
#define _IO volatile
...
...
@@ -39,6 +44,92 @@
#define PORT_UNKNOW 0xFF
#define PIN_UNKNOW (uint32_t)0XFF
//串口通信协议OPCODE
#define UART_MSG_QUERY_INFO_OPCODE 0x0000
#define UART_MSG_WRITE_INSTALL_CODE_OPCODE 0x0001
#define UART_MSG_READ_INSTALL_CODE_OPCODE 0x0002
#define UART_MSG_WRITE_CMEI_CODE_OPCODE 0x0003
#define UART_MSG_READ_CMEI_CODE_OPCODE 0x0004
#define UART_MSG_WRITE_ISN_CODE_OPCODE 0x0005
#define UART_MSG_READ_ISN_CODE_OPCODE 0x0006
#define UART_MSG_WRITE_MAC_CODE_OPCODE 0x0007
#define UART_MSG_READ_MAC_CODE_OPCODE 0x0008
#define UART_MSG_WRITE_MOUDLE_ID_OPCODE 0x0009
#define UART_MSG_READ_MOUDLE_ID_OPCODE 0x000A
#define UART_MSG_READ_DEV_RSSI_OPCODE 0x000B
#define UART_MSG_WRITE_AGING_TIME_OPCODE 0x000C
#define UART_MSG_READ_AGING_TIME_OPCODE 0x000D
#define UART_MSG_WRITE_INTERPAN_PARA_OPCODE 0x000E
#define UART_MSG_READ_INTERPAN_PARA_OPCODE 0x000F
#define UART_MSG_READ_DEVICE_SNAP_OPCODE 0x0010
#define UART_MSG_JOIN_NWK_REQUEST_OPCODE 0x0100
#define UART_MSG_LEAVE_NWK_REQUEST_OPCODE 0x0101
#define UART_MSG_QUERY_NWK_STATUS_REQUEST_OPCODE 0x0102
#define UART_MSG_NWK_STATUS_NOTIFY_OPCODE 0x0103
#define UART_MSG_READ_ATTRIBUTE_REQUEST_OPCODE 0x0104
#define UART_MSG_WRITE_ATTRIBUTE_REQUEST_OPCODE 0x0105
#define UART_MSG_ZCL_COMMAND_REQUEST_OPCODE 0x0106
#define UART_MSG_BIND_REQUEST_OPCODE 0x0110
#define UART_MSG_GATEWAY_NWK_CHANNEL_ONOFF_OPCODE 0x00FC
#define UART_MSG_PRIVATE_PROTOCOL_CONTROL_CHILD_DEVICE_START_OPCODE 0xF000
#define UART_MSG_PRIVATE_PROTOCOL_CONTROL_CHILD_DEVICE_END_OPCODE 0xF0FF
#define UART_MSG_TTS_OPCODE 0xF100
//factory test message opcode
#define UART_MSG_QUERY_DEVICE_VERSION_OPCODE 0xED00
#define UART_MSG_QUERY_DEVICE_INFO_OPCODE 0xED01
#define UART_MSG_CONFIG_DEVICE_SLEEP_OPCODE 0xED02
#define UART_MSG_EXIT_FACTORY_TEST_OPCODE 0xED04
#define UART_MSG_QUERY_FACTORY_INFO_OPCODE 0xED05
#define UART_MSG_QUERY_SWITCH_ONOFF_OPCODE 0xED06
#define UART_MSG_ENTER_FACTORY_TEST_OPCODE 0xED14
#define UART_MSG_ONOFF_SWITCH_OPCODE 0xED15
#define UART_MSG_GPIO_TEST_OPCODE 0xED10
#define UART_MSG_READ_RSSI_REQUEST_OPCODE 0xED12
//offline voice panel
#define UART_MSG_HOST_SNAP_REQUEST_OPCODE 0x1000
#define UART_MSG_CTRL_HOST_ONOFF_OPCODE 0x1001 //zigbee module control panel
#define UART_MSG_HOST_ONOFF_NOTIFY_OPCODE 0x1002 //panel onoff status changed notify zigbee
#define UART_MSG_HOST_TRIGGER_SCENE_NOTIFY_OPCODE 0x1003 //pannel recall scene notify zigbees
#define UART_MSG_KEY_LIGHT_SCENE_TRANSFORM_OPCODE 0x1004
#define UART_MSG_TIME_SET_OPCODE 0x1005
#define UART_MSG_TIME_GET_OPCODE 0x1006
#define UART_MSG_DEVICE_OPERATOR_OPCODE 0x1007
#define UART_MSG_FILE_UPDATE_NOTIFY_OPCODE 0x1008
#define UART_MSG_FILE_DATA_REQUEST_OPCODE 0x1009
#define UART_MSG_FILE_UPDATE_STATUS_NOTIFY 0x100A
//bangde human body sensor
#define UART_MSG_BODY_TRIGGER_START_REPORT_OPCODE 0xED03
//bangde sos button
#define UART_MSG_SOS_REPORT_OPCODE 0xED03
//bangde scene button
#define UART_MSG_BUTTON_SCENE_REPORT_OPCODE 0xED03
//bangde environment sensor
#define UART_MSG_QUERY_TEMP_HUMI_INFO_OPCODE 0xED03
//bangde door sensor
#define UART_MSG_BUTTON_ONOFF_REPORT_OPCODE 0xED03
//offline voice panel
//define opcode for private cluster
#define NWK_CHANNEL_ONOFF (uint8_t)(UART_MSG_GATEWAY_NWK_CHANNEL_ONOFF_OPCODE)
#define SNAP_INFO (uint8_t)(UART_MSG_HOST_SNAP_REQUEST_OPCODE)
//#define ONOFF_CONTROL (uint8_t)(UART_MSG_CTRL_HOST_ONOFF_OPCODE)
#define SCENE_TRGGER (uint8_t)(UART_MSG_HOST_TRIGGER_SCENE_NOTIFY_OPCODE)
#define KEY_FUNCTION (uint8_t)(UART_MSG_KEY_LIGHT_SCENE_TRANSFORM_OPCODE)
#define TIME_SET (uint8_t)(UART_MSG_TIME_SET_OPCODE)
#define TIME_GET (uint8_t)(UART_MSG_TIME_GET_OPCODE)
#define DEVICE_OPT (uint8_t)(UART_MSG_DEVICE_OPERATOR_OPCODE)
#define FILE_UPDATE_NOTIFY (uint8_t)(UART_MSG_FILE_UPDATE_NOTIFY_OPCODE)
#define FILE_DATA_REQUEST (uint8_t)(UART_MSG_FILE_DATA_REQUEST_OPCODE )
#define FILE_STATUS_STATUS (uint8_t)(UART_MSG_FILE_UPDATE_STATUS_NOTIFY)
typedef
enum
kk_error_type
{
KET_OK
=
0
,
// 正常(成功)
...
...
@@ -73,11 +164,23 @@ typedef enum kk_error_type {
KET_ERR_OPRATE_IN_PROGRESS
=
-
908
,
// 操作进行中
KET_ERR_UNKNOW
=
-
999
,
// 位置错误
}
kk_err_t
;
typedef
enum
{
ERR_OK
=
0x00
,
ERR_EXIST
=
0x01
,
ERR_FORMAT
=
0x02
,
ERR_NOT_EXPECTED
=
0x03
,
ERR_WRITE_FAILED
=
0x04
,
ERR_READ_WRITE_TIMEOUT
=
0x05
,
ERR_NOT_EXIST
=
0x06
,
ERR_UNKNOW
=
0xFF
,
}
ERR_RET_E
;
typedef
enum
{
Z3D_COORDINATOR
=
0
,
Z3D_ROUTER
,
Z3D_ENDDEVICE
}
Z3DevTypeEm
;
typedef
void
(
*
pFUNC_VOID
)(
void
*
);
// 操作
typedef
enum
{
ECOM_PORT_UART
=
0
,
ECOM_PORT_RTT
,
ECOM_PORT_ZIGBEE
,
ECOM_PORT_INTERPAN
,
ECOM_PORT_FCC0
}
ComPortEm
;
typedef
struct
tag_common_opt_callback_st
{
pFUNC_VOID
pfunc
;
void
*
param
;
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-network.c
View file @
682c75ca
...
...
@@ -5,15 +5,19 @@
#include "ikk-token.h"
#include "tl_common.h"
#include "ikk-cluster.h"
#include "ikk-interpan.h"
#include "ikk-factory-test.h"
#include "../../../../zigbee/aps/aps_api.h"
#include "../../../../zigbee/common/includes/zb_common.h"
/**********************************************************************
* INCLUDES
*/
#define DELAY_RESTORE_NWK_STEERING_TIME_MS (
10 * 1000)
#define DELAY_RESTORE_NWK_STEERING_TIME_MS (
6 * 1000)
#define DELAY_NWK_DETECT_POWER_ON_TIME_MS (3 * 1000)
#define LED_SLOW_BLINK_CONTINUE_TIME_MS (60 * 1000)
#define LED_FAST_BLINK_CONTINUE_TIME_MS (5 * 1000)
//global value
addrExt_t
g_Eui64GatewayAddr
=
{
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
,
0xff
};
...
...
@@ -30,6 +34,8 @@ static uint32_t g_u32NwkDetectCountDownCounter = 0;
static
uint32_t
g_u32NwkJoiningCountdownCounter
=
0
;
static
bool
g_KeyPressCauasLeave
=
false
;
// copy current network status.
static
NwkStatusEnum
g_eCurrentNetworkStatus
=
ENS_UNKNOW
;
//add by maozj 20200225
...
...
@@ -378,7 +384,7 @@ void kNwkFactoryReset(bool is_nwk_indicator)
memset
(
g_Eui64GatewayAddr
,
0xFF
,
sizeof
(
g_Eui64GatewayAddr
));
Gateway_IEEE_Addr_Save
(
g_Eui64GatewayAddr
);
Update_Local_Attribute_Info
();
// //add by maozj 20200320
//#if Z30_DEVICE_OTA_ENABLE
// kSetOTAStatus(OTA_NORMAL);
...
...
@@ -395,23 +401,24 @@ void kNwkFactoryReset(bool is_nwk_indicator)
//led can blink when network leaved
if
(
is_nwk_indicator
==
true
){
zb_factoryReset
();
kNwkNetworkStatusNotifyCall
(
ENS_LEAVED
);
g_KeyPressCauasLeave
=
true
;
//add by maozj 20200407 for reset count down after network leaved
g_u32NwkExitCountDownCounter
=
MS2COUNT
(
5
*
1000
);
g_u32NwkExitCountDownCounter
=
MS2COUNT
(
LED_FAST_BLINK_CONTINUE_TIME_MS
);
kNwkNetworkStatusNotifyCall
(
ENS_LEAVED
);
Update_Local_Attribute_Info
();
}
Set_Nwk_Steering_Status
(
NWK_STEERING_STATUS_FAILED
);
// kNwkScheduleTaskStop(SCHEDULE_ALLOPT_ID);
//
// //add by maozj 20191213 need identify whether gateway is made by konke
// uint8_t isKonkeGateway = 0;
// halCommonSetToken(TOKEN_IS_KONKE_GATEWAY, &isKonkeGateway);
iKonkeAfSelfPrint
(
"kNwkFactoryReset
\r\n
"
);
}
void
NetworkLeaveHandler
(
nlme_leave_cnf_t
*
pLeaveCnf
)
{
if
(
g_KeyPressCauasLeave
)
{
g_KeyPressCauasLeave
=
false
;
return
;
}
iKonkeAfSelfPrint
(
"Leave Handler,Nwk State = %d
\r\n
"
,
kNwkGetCurrentStatus
());
if
((
pLeaveCnf
->
status
==
0
)
&&
(
kNwkGetCurrentStatus
()
!=
ENS_JOINING
))
{
//如果正处于离网中状态,则不执行以下函数
...
...
@@ -424,8 +431,8 @@ void NetworkLeaveHandler(nlme_leave_cnf_t *pLeaveCnf)
Gateway_IEEE_Addr_Save
(
g_Eui64GatewayAddr
);
kNwkNetworkStatusNotifyCall
(
ENS_LEAVED
);
//add by maozj 20200407 for reset count down after network leaved
g_u32NwkExitCountDownCounter
=
MS2COUNT
(
5
*
1000
);
// //add by maozj 20200407 for reset count down after network leaved
//g_u32NwkExitCountDownCounter = MS2COUNT(5*1000);
}
}
}
...
...
@@ -466,12 +473,11 @@ static ev_timer_event_t *kUserScheduleTaskEvt = NULL;
extern
s32
kUserScheduleTaskHandler
(
void
*
arg
);
kk_err_t
kNwkScheduleTaskRegister
(
uint32_t
TimeOut
)
{
kk_err_t
err
=
KET_FAILED
;
if
(
!
ev_timer_exist
(
kUserScheduleTaskEvt
))
{
kUserScheduleTaskEvt
=
TL_ZB_TIMER_SCHEDULE
(
kUserScheduleTaskHandler
,
NULL
,
TimeOut
);
err
=
KET_OK
;
if
(
kUserScheduleTaskEvt
){
TL_ZB_TIMER_CANCEL
(
&
kUserScheduleTaskEvt
);
}
return
err
;
kUserScheduleTaskEvt
=
TL_ZB_TIMER_SCHEDULE
(
kUserScheduleTaskHandler
,
NULL
,
TimeOut
);
return
KET_OK
;
}
...
...
@@ -479,8 +485,16 @@ void kNwkJoiningStart(uint32_t u32JoiningDuration, pJoinCompleteCallback callbac
{
if
(
u32JoiningDuration
>
0
)
{
#if Z30_DEVICE_AGING_ENABLE
if
(
kGetFactoryTestStatus
()
!=
FTS_NORMAL
/*&& kGetFactoryTestStatus() != FTS_AGING_15MIN*/
){
return
;
}
#endif
if
(
!
zb_isDeviceJoinedNwk
())
{
//disable interpan
kInterpanDisable
();
iKonkeAfSelfPrint
(
"#####Set Steering Counter
\r\n
"
);
g_u32NwkJoiningCountdownCounter
=
MS2COUNT
(
u32JoiningDuration
);
g_pJoinCompleteCallback
=
callback
;
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-opt-tunnel.c
View file @
682c75ca
...
...
@@ -4,8 +4,8 @@
#include "ikk-opt-tunnel.h"
#include "ikk-debug.h"
#include "ikk-config.h"
#include "ikk-token.h"
#include "../../../../zigbee/zcl/zcl_include.h"
// FCC0-0000
#pragma pack(1)
typedef
struct
tag_private_clsFCC0_attr0000_frame_st
{
...
...
@@ -24,7 +24,7 @@ uint8_t g_tmp_buffer[OPTTUNNEL_CHUNK_MAXLEN+1] = { 0 }, g_tmp_length = 0;
// private protocol optdata message incoming process callback
pFUNC_OPTDATA_MESSAGE_CALLBACK
g_pOptDataIncomingMessageCallback
=
NULL
;
extern
bool
Get_Model_ID
(
uint8_t
*
ModeID
);
extern
_CODE_ZCL_
zclReadCmd_t
*
zcl_parseInReadCmd
(
zclIncoming_t
*
pCmd
);
extern
_CODE_ZCL_
status_t
zcl_readRsp
(
u8
srcEp
,
epInfo_t
*
pDstEpInfo
,
u16
clusterId
,
u16
manuCode
,
u8
disableDefaultRsp
,
u8
direction
,
u8
seqNo
,
zclReadRspCmd_t
*
readRspCmd
);
//_CODE_ZCL_ static status_t zcl_Private_cmdHandler(zclIncoming_t *pInMsg);
...
...
@@ -76,36 +76,77 @@ extern _CODE_ZCL_ status_t zcl_readRsp(u8 srcEp, epInfo_t *pDstEpInfo, u16 clust
// }
//}
//
///*********************************************************************
// * @fn private_fcc0Cb
// *
// * @brief Handler for ZCL FCC0 command. This function will set attribute first.
// *
// * @param pAddrInfo
// * @param cmdId - onoff cluster command id
// * @param cmdPayload
// *
// * @return status_t
// */
//status_t private_fcc0Cb(zclIncomingAddrInfo_t *pAddrInfo, u8 cmdId, void *cmdPayload)
//{
// zcl_privateAttr_t *pFcc0_data = zcl_privateAttrGet();
// iKonkeAfSelfPrint("#############private_fcc0Cb ,command id =%x!!!!!!!\r\n",cmdId);
// if(pAddrInfo->dstEp == SAMPLE_LIGHT_ENDPOINT){
// switch(cmdId){
// case ZCL_CMD_ONOFF_ON:
// case ZCL_CMD_ONOFF_OFF:
// case ZCL_CMD_ONOFF_TOGGLE:
// //sampleLight_onoff(cmdId);
// break;
// default:
// break;
// }
// }
//
// return ZCL_STA_SUCCESS;
//}
uint8_t
kOptTunnelChunkRead
(
uint8_t
endpoint
,
uint16_t
clusterId
,
uint16_t
attributeId
,
uint16_t
manufacturerCode
,
uint8_t
*
buffer
,
uint8_t
*
length_out
)
{
iKonkeAfSelfPrint
(
"&&&&&&&&&&&&&Token Read cluster(%2X), attr(%2X)
\r\n
"
,
clusterId
,
attributeId
);
uint8_t
length
=
0
;
if
(
buffer
==
NULL
){
iKonkeAfSelfPrint
(
"Err: Buffer is null(%d)!!
\r\n
"
);
return
0xff
;
}
if
(
clusterId
==
PRIV_CLUSTER_FCC0
)
{
switch
(
attributeId
)
{
case
(
ZCL_CMEI_ATTRIBUTE_ID
):
{
uint8_t
*
data
=
CMEI_TOKEN_GET
();
length
=
data
[
0
];
memcpy
(
buffer
,
data
,
length
+
1
);
break
;
}
case
(
ZCL_ISN_ATTRIBUTE_ID
):
{
uint8_t
*
data
=
ISN_TOKEN_GET
();
length
=
data
[
0
];
memcpy
(
buffer
,
data
,
length
+
1
);
break
;
}
case
(
ZCL_InstallCode_ATTRIBUTE_ID
):
{
length
=
16
;
buffer
[
0
]
=
length
;
memcpy
(
&
buffer
[
1
],
INSTALL_CODE_TOKEN_GET
(),
length
);
break
;
}
default:
return
0xfe
;
}
}
if
(
buffer
[
0
]
<=
OPTTUNNEL_CHUNK_MAXLEN
){
*
length_out
=
buffer
[
0
];
}
else
{
*
length_out
=
0
;
}
return
0
;
}
/* DESP: Private clsuter attribute read interface, for chunk data.
* Auth: dingmz_frc.20190703.
* */
kk_err_t
kOptTunnelAttrChunkLocalRead
(
uint16_t
attribute_id
,
unsigned
char
*
chunk_buffer
,
unsigned
char
*
length_in_out
)
{
if
(
NULL
==
chunk_buffer
||
NULL
==
length_in_out
)
{
return
KET_ERR_INVALID_POINTER
;
}
uint8_t
status
=
0
;
kk_err_t
err
=
KET_OK
;
status
=
kOptTunnelChunkRead
(
1
,
PRIV_CLUSTER_FCC0
,
attribute_id
,
0x1268
,
chunk_buffer
,
length_in_out
);
if
(
status
==
0
)
{
*
length_in_out
=
chunk_buffer
[
0
]
+
1
;
}
else
{
iKonkeAfSelfPrint
(
"Err: Chunk read err(%d)!!
\r\n
"
,
status
);
*
length_in_out
=
0
;
err
=
KET_ERR_UNKNOW
;
}
return
err
;
}
status_t
kOptTunnelMessageReadResponse
(
zclIncoming_t
*
pInHdlrMsg
,
uint8_t
*
pData
)
{
u8
status
=
ZCL_STA_SUCCESS
;
...
...
@@ -285,15 +326,15 @@ kk_err_t kOptTunnelMessageIncoming(OptMethodEm method,zclIncoming_t *pCmd)
* Auth: dingmz_frc.20191113.
* */
extern
status_t
General_Report
(
uint8_t
src_ep
,
uint8_t
des_ep
,
uint16_t
cluster
,
uint16_t
Attribute
,
uint8_t
Data_Type
,
uint8_t
*
value
);
static
status_t
kOptTunnel
OODReport
(
uint16_t
attribute_id
,
uint8_t
channel
,
uint8_t
opcode
,
uint8_t
*
arg
,
uint8_t
length
)
static
status_t
kOptTunnel
CommonReportSend
(
uint16_t
attribute_id
,
uint8_t
*
arg
,
uint8_t
length
)
{
uint8_t
temp_buffer
[
64
]
=
{
0
};
if
(
length
<
64
)
if
(
arg
&&
length
>
0
)
memmove
(
temp_buffer
+
1
,
arg
,
length
);
temp_buffer
[
0
]
=
length
;
memmove
(
g_tmp_buffer
,
temp_buffer
,
length
+
1
);
return
General_Report
(
channel
,
1
,
PRIV_CLUSTER_FCC0
,
attribute_id
,
ZCL_DATA_TYPE_CHAR_STR
,
g_tmp_buffer
);
return
General_Report
(
1
,
1
,
PRIV_CLUSTER_FCC0
,
attribute_id
,
ZCL_DATA_TYPE_CHAR_STR
,
g_tmp_buffer
);
}
/* DESP: Private protocol common report interface.
* Auth: dingmz_frc.20191113.
...
...
@@ -305,18 +346,22 @@ kk_err_t kOptTunnelCommonReport(uint16_t attribute_id )
}
kk_err_t
err
=
KET_OK
;
uint8_t
bufCount
=
0
;
switch
(
attribute_id
)
{
case
(
ECA_OPTDATA
):
{
uint32_t
modeid
=
(
uint32_t
)
MODEL_ID
;
iKonkeAfSelfPrint
(
"#######kOptTunnelCommonReport OPTDATA
\r\n
"
);
g_tmp_buffer
[
1
]
=
modeid
>>
24
;
g_tmp_buffer
[
2
]
=
modeid
>>
16
;
g_tmp_buffer
[
3
]
=
modeid
>>
8
;
g_tmp_buffer
[
4
]
=
modeid
;
uint8_t
modeid
[
8
]
=
{
0
};
if
(
Get_Model_ID
(
modeid
))
{
g_tmp_buffer
[
bufCount
++
]
=
0
;
g_tmp_buffer
[
bufCount
++
]
=
modeid
[
4
];
g_tmp_buffer
[
bufCount
++
]
=
modeid
[
5
];
g_tmp_buffer
[
bufCount
++
]
=
modeid
[
6
];
g_tmp_buffer
[
bufCount
++
]
=
modeid
[
7
];
g_tmp_buffer
[
5
]
=
0x00
;
//channel
g_tmp_buffer
[
6
]
=
0x00
;
//opcode
}
if
(
g_pOptDataIncomingMessageCallback
)
{
g_tmp_length
=
0
;
g_tmp_buffer
[
7
]
=
0x00
;
//add by maozj 20200511
...
...
@@ -328,6 +373,34 @@ kk_err_t kOptTunnelCommonReport(uint16_t attribute_id )
}
break
;
}
case
(
ECA_ASSOCIATED_AOUNCE
):
{
addrExt_t
u64LocalEui64
=
{
0
};
uint16_t
NodeID
=
zb_getLocalShortAddr
();
uint16_t
index
;
tl_zbExtAddrByShortAddr
(
NodeID
,
u64LocalEui64
,
&
index
);
g_tmp_buffer
[
0
]
=
(
NodeID
>>
8
)
&
0xff
;
g_tmp_buffer
[
1
]
=
(
NodeID
>>
0
)
&
0xff
;
SWAP_EUI64
(
u64LocalEui64
);
memcpy
(
g_tmp_buffer
+
2
,
u64LocalEui64
,
8
);
g_tmp_length
=
10
;
break
;
}
case
(
ECA_CMEI
):
case
(
ECA_ISN
):
{
g_tmp_length
=
OPTTUNNEL_CHUNK_MAXLEN
;
kOptTunnelAttrChunkLocalRead
(
attribute_id
,
g_tmp_buffer
,
&
g_tmp_length
);
iKonkeAfSelfPrint
(
"####Report CHUNK Read length(0x%x)
\r\n
"
,
g_tmp_length
);
break
;
}
case
(
ECA_INSTALL_CODE
):
g_tmp_length
=
OPTTUNNEL_CHUNK_MAXLEN
;
kOptTunnelAttrChunkLocalRead
(
ZCL_InstallCode_ATTRIBUTE_ID
,
g_tmp_buffer
,
&
g_tmp_length
);
break
;
default:
{
err
=
KET_ERR_OPRATE_ILLEGAL
;
...
...
@@ -335,7 +408,7 @@ kk_err_t kOptTunnelCommonReport(uint16_t attribute_id )
}
}
if
(
err
==
KET_OK
&&
g_tmp_length
>
1
)
{
if
(
kOptTunnel
OODReport
(
attribute_id
,
g_tmp_buffer
[
5
],
g_tmp_buffer
[
6
],
g_tmp_buffer
,
g_tmp_buffer
[
0
]
+
1
)
==
ZCL_STA_SUCCESS
)
if
(
kOptTunnel
CommonReportSend
(
attribute_id
,
g_tmp_buffer
,
g_tmp_buffer
[
0
]
+
1
)
==
ZCL_STA_SUCCESS
)
err
=
KET_OK
;
else
err
=
KET_FAILED
;
...
...
@@ -343,11 +416,38 @@ kk_err_t kOptTunnelCommonReport(uint16_t attribute_id )
return
err
;
}
/* DESP: Private protocol message(command) reporting interface
* Auth: dingmz_frc.20191113.
* */
kk_err_t
kOptTunnelOODReport
(
uint8_t
channel
,
uint8_t
opcode
,
uint8_t
*
arg
,
uint8_t
length
)
{
uint8_t
bufCount
=
0
;
uint8_t
modeid
[
8
]
=
{
0
};
if
(
Get_Model_ID
(
modeid
))
{
g_tmp_buffer
[
bufCount
++
]
=
0
;
// totle length
g_tmp_buffer
[
bufCount
++
]
=
modeid
[
4
];
g_tmp_buffer
[
bufCount
++
]
=
modeid
[
5
];
g_tmp_buffer
[
bufCount
++
]
=
modeid
[
6
];
g_tmp_buffer
[
bufCount
++
]
=
modeid
[
7
];
g_tmp_buffer
[
bufCount
++
]
=
channel
;
//channel
g_tmp_buffer
[
bufCount
++
]
=
opcode
;
//opcode
}
if
(
arg
&&
length
>
0
)
{
memcpy
(
g_tmp_buffer
+
bufCount
,
arg
,
length
);
bufCount
+=
length
;
}
g_tmp_buffer
[
0
]
=
bufCount
-
1
;
return
kOptTunnelCommonReportSend
(
ECA_OPTDATA
,
g_tmp_buffer
,
bufCount
);
}
kk_err_t
kOptTunnelModuleInit
(
pFUNC_OPTDATA_MESSAGE_CALLBACK
pOptdataIncomingCallback
)
{
g_pOptDataIncomingMessageCallback
=
pOptdataIncomingCallback
;
return
KET_OK
;
}
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-opt-tunnel.h
View file @
682c75ca
...
...
@@ -10,6 +10,18 @@
#define PRIV_CLUSTER_FCC0 0XFCC0
// Server attributes
#define ZCL_OPT_DATA_ATTRIBUTE_ID 0x0000 // Ver.: always
#define ZCL_TTS_ATTRIBUTE_ID 0x0001 // Ver.: always
#define ZCL_MTO_RR_RspRandom_ATTRIBUTE_ID 0x0002 // Ver.: always
#define ZCL_AssociatedAnnounce_ATTRIBUTE_ID 0x0003 // Ver.: always
#define ZCL_CMEI_ATTRIBUTE_ID 0x0010 // Ver.: always
#define ZCL_ISN_ATTRIBUTE_ID 0x0011 // Ver.: always
#define ZCL_InstallCode_ATTRIBUTE_ID 0x0012 // Ver.: always
#define ZCL_CHUNK_N1_ATTRIBUTE_ID 0x0013 // Ver.: always
#define OPTTUNNEL_OPTDATA_ID 0x0000 // FCC0 Cluster Attribute 0x0000
#define OPTTUNNEL_OPTDATA_MAXLEN 128
...
...
@@ -51,10 +63,6 @@ typedef kk_err_t (*pFUNC_OPTDATA_MESSAGE_CALLBACK)(uint8_t channel, uint8_t opco
void
Set2NwkJoiningCountdownCounter
(
u32
time_ms
);
/* DESP: Private protocol common report interface.
* Auth: mengmengli_frc.20210527.
* */
kk_err_t
kOptTunnelCommonReport
(
uint16_t
attribute_id
);
/* DESP: private clsuter protocol module init interface.
...
...
@@ -66,14 +74,7 @@ kk_err_t kOptTunnelModuleInit(pFUNC_OPTDATA_MESSAGE_CALLBACK pOptdataIncomingCal
kk_err_t
kOptTunnelOODReport
(
uint8_t
channel
,
uint8_t
opcode
,
uint8_t
*
arg
,
uint8_t
length
);
...
...
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-tick-handler.c
View file @
682c75ca
#if (__PROJECT_TL_DIMMABLE_LIGHT__)
/**********************************************************************
* INCLUDES
*/
...
...
@@ -17,8 +15,10 @@ extern void kBtnModuleActionDetectCallback(void );
extern
void
kLedModuleActionDetectCallback
(
void
);
//extern bool kLedModuleActionIsGoing(void );
extern
void
kNwkModuleActionDetectCallback
(
void
);
//attribute change check callback
extern
void
kRelayModuleActionDetectCallback
(
uint8_t
poll_time
);
//attribute change check callback
extern
void
AttributeValueCheckCallback
(
void
);
static
s32
kTickEventHandler
(
void
*
arg
)
{
...
...
@@ -26,6 +26,7 @@ static s32 kTickEventHandler(void *arg)
kBtnModuleActionDetectCallback
();
kNwkModuleActionDetectCallback
();
kRelayModuleActionDetectCallback
(
TICK_LOOP_NMS
);
AttributeValueCheckCallback
();
return
0
;
}
...
...
@@ -52,5 +53,5 @@ void kTickRunnningTrigger(void )
}
#endif
/* __PROJECT_TL_DIMMABLE_LIGHT__ */
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-tick-handler.h
View file @
682c75ca
...
...
@@ -15,5 +15,4 @@ void Tick_Time_Init(void);
* */
void
kTickRunnningTrigger
(
void
);
#endif
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-token.c
View file @
682c75ca
This diff is collapsed.
Click to expand it.
tl_zigbee_sdk/apps/common/00ikonke_app/general/ikk-token.h
View file @
682c75ca
...
...
@@ -4,6 +4,70 @@
#include "tl_common.h"
#define TOKEN_USER_LOCATION 0x78000
#define USER_SIZE 256
#define INSTALL_CODE_LOC_OFFSET 0 //16Byte //0
#define MODEL_ID_LOC_OFFSET 64 //33Byte //16+33
#define CMEI_LOC_OFFSET 64+64 //33Byte //16+33+33
#define ISN_LOC_OFFSET 64+64+64 //33Byte //16+33+33+33
enum
{
CUSTOM_ITEMS_INSTALL_CODE
=
1
,
CUSTOM_ITEMS_MODEL_ID
,
CUSTOM_ITEMS_CMEI_CODE
,
CUSTOM_ITEMS_ISN_CODE
,
CUSTOM_ITEMS_RESERVED
,
}
CUSTOM_ITEMS
;
#define INSTALL_CODE_INDEX 0
#define MODEL_ID_INDEX 1
#define INSTALL_CODE_INDEX 0
#define INSTALL_CODE_INDEX 0
#define INSTALL_CODE_INDEX 0
typedef
struct
{
struct
{
uint8_t
install_code_data
[
16
];
uint8_t
res
[
48
];
}
install_code
;
struct
{
uint8_t
modeid_len
;
uint8_t
modeid_data
[
32
];
uint8_t
res
[
31
];
}
modeid
;
struct
{
uint8_t
cmei_len
;
uint8_t
cmei_data
[
32
];
uint8_t
res
[
31
];
}
cmei
;
struct
{
uint8_t
isn_len
;
uint8_t
isn_data
[
32
];
uint8_t
res
[
31
];
}
isn
;
uint8_t
reserved
[
32
];
}
OPTTUNEL_TOKEN_ST
;
extern
OPTTUNEL_TOKEN_ST
sOptunnel_Token
;
void
Flash_Test_Save
(
uint8_t
value
);
uint8_t
Flash_Test_Get
(
void
);
uint8_t
General_Custom_Token_Save
(
uint8_t
item
,
uint8_t
*
buff
,
uint8_t
len
);
uint8_t
*
General_Custom_Token_Get
(
uint8_t
item
);
#define INSTALL_CODE_TOKEN_GET() (General_Custom_Token_Get(CUSTOM_ITEMS_INSTALL_CODE))
#define MODEL_ID_TOKEN_GET() (General_Custom_Token_Get(CUSTOM_ITEMS_MODEL_ID))
#define CMEI_TOKEN_GET() (General_Custom_Token_Get(CUSTOM_ITEMS_CMEI_CODE))
#define ISN_TOKEN_GET() (General_Custom_Token_Get(CUSTOM_ITEMS_ISN_CODE))
#define INSTALL_CODE_TOKEN_SET(buffer,len) (General_Custom_Token_Save(CUSTOM_ITEMS_INSTALL_CODE,buffer,len))
#define MODEL_ID_TOKEN_SET(buffer,len) (General_Custom_Token_Save(CUSTOM_ITEMS_MODEL_ID,buffer,len))
#define CMEI_TOKEN_SET(buffer,len) (General_Custom_Token_Save(CUSTOM_ITEMS_CMEI_CODE,buffer,len))
#define ISN_TOKEN_SET(buffer,len) (General_Custom_Token_Save(CUSTOM_ITEMS_ISN_CODE,buffer,len))
nv_sts_t
Gateway_IEEE_Addr_Save
(
addrExt_t
addr
);
...
...
@@ -13,14 +77,12 @@ uint16_t MFG_Code_Get(void);
nv_sts_t
MFG_Code_Save
(
uint16_t
mfgcode
);
uint8_t
kGetAgingTestValue
(
void
);
nv_sts_t
kSetAgingTestValue
(
uint8_t
value
);
bool
kGetIndicatorNotDisturbModeFlg
(
void
);
nv_sts_t
kSetIndicatorNotDisturbModeFlg
(
uint8_t
value
);
#if 0
void falsh_test(void);
nv_sts_t
kSetInterpanEnableFlg
(
uint8_t
value
);
bool
kGetInterpanEnableFlg
(
void
);
#if 1
void
falsh_test
(
uint8_t
count
);
#endif
#endif
/* _SAMPLE_LIGHT_H_ */
tl_zigbee_sdk/apps/common/firmwareEncryptChk.c
View file @
682c75ca
tl_zigbee_sdk/apps/sampleLight/app_driver/general/ikk-token.c
View file @
682c75ca
...
...
@@ -22,7 +22,7 @@ uint8_t* Gateway_IEEE_Addr_Get(void)
{
nv_sts_t
st
=
NV_SUCC
;
st
=
nv_flashReadNew
(
1
,
NV_MODULE_
USER
,
NV_GATEWAY_ADDR
,
sizeof
(
addrExt_t
),
(
u8
*
)
g_Eui64GatewayAddr
);
st
=
nv_flashReadNew
(
1
,
NV_MODULE_
APP
,
NV_GATEWAY_ADDR
,
sizeof
(
addrExt_t
),
(
u8
*
)
g_Eui64GatewayAddr
);
iKonkeAfSelfPrint
(
"flashRead:::
\r\n
"
);
DEBUG_ARRAY
(
1
,
g_Eui64GatewayAddr
,
sizeof
(
addrExt_t
));
if
(
st
!=
NV_SUCC
){
...
...
@@ -44,14 +44,14 @@ nv_sts_t Gateway_IEEE_Addr_Save(addrExt_t addr)
nv_sts_t
st
=
NV_SUCC
;
addrExt_t
temp_addr
;
st
=
nv_flashReadNew
(
1
,
NV_MODULE_
USER
,
NV_GATEWAY_ADDR
,
sizeof
(
addrExt_t
),
(
u8
*
)
temp_addr
);
st
=
nv_flashReadNew
(
1
,
NV_MODULE_
APP
,
NV_GATEWAY_ADDR
,
sizeof
(
addrExt_t
),
(
u8
*
)
temp_addr
);
iKonkeAfSelfPrint
(
"flashRead:::temp_addr
\r\n
"
);
DEBUG_ARRAY
(
1
,
temp_addr
,
sizeof
(
addrExt_t
));
if
(
st
==
NV_SUCC
){
if
(
memcmp
(
temp_addr
,
addr
,
sizeof
(
addrExt_t
)))
st
=
nv_flashWriteNew
(
1
,
NV_MODULE_
USER
,
NV_GATEWAY_ADDR
,
sizeof
(
addrExt_t
),
(
u8
*
)
addr
);
st
=
nv_flashWriteNew
(
1
,
NV_MODULE_
APP
,
NV_GATEWAY_ADDR
,
sizeof
(
addrExt_t
),
(
u8
*
)
addr
);
}
else
if
(
st
==
NV_ITEM_NOT_FOUND
){
st
=
nv_flashWriteNew
(
1
,
NV_MODULE_
USER
,
NV_GATEWAY_ADDR
,
sizeof
(
addrExt_t
),
(
u8
*
)
addr
);
st
=
nv_flashWriteNew
(
1
,
NV_MODULE_
APP
,
NV_GATEWAY_ADDR
,
sizeof
(
addrExt_t
),
(
u8
*
)
addr
);
}
iKonkeAfSelfPrint
(
"Gateway_IEEE_Addr_Save result = %d
\r\n
"
,
st
);
return
st
;
...
...
@@ -69,7 +69,7 @@ uint16_t MFG_Code_Get(void)
{
nv_sts_t
st
=
NV_SUCC
;
uint16_t
mfg_code_temp
;
st
=
nv_flashReadNew
(
1
,
NV_MODULE_
USER
,
NV_MFG_CODE
,
sizeof
(
mfg_code_temp
),
(
u8
*
)
&
mfg_code_temp
);
st
=
nv_flashReadNew
(
1
,
NV_MODULE_
APP
,
NV_MFG_CODE
,
sizeof
(
mfg_code_temp
),
(
u8
*
)
&
mfg_code_temp
);
if
(
st
!=
NV_SUCC
){
mfg_code_temp
=
0
;
}
...
...
@@ -89,12 +89,12 @@ nv_sts_t MFG_Code_Save(uint16_t mfgcode)
nv_sts_t
st
=
NV_SUCC
;
uint16_t
mfg_code_temp
;
st
=
nv_flashReadNew
(
1
,
NV_MODULE_
USER
,
NV_MFG_CODE
,
sizeof
(
mfg_code_temp
),
(
u8
*
)
&
mfg_code_temp
);
st
=
nv_flashReadNew
(
1
,
NV_MODULE_
APP
,
NV_MFG_CODE
,
sizeof
(
mfg_code_temp
),
(
u8
*
)
&
mfg_code_temp
);
if
(
st
==
NV_SUCC
){
if
(
mfg_code_temp
!=
mfgcode
)
st
=
nv_flashWriteNew
(
1
,
NV_MODULE_
USER
,
NV_MFG_CODE
,
sizeof
(
uint16_t
),
(
u8
*
)
&
mfgcode
);
st
=
nv_flashWriteNew
(
1
,
NV_MODULE_
APP
,
NV_MFG_CODE
,
sizeof
(
uint16_t
),
(
u8
*
)
&
mfgcode
);
}
else
if
(
st
==
NV_ITEM_NOT_FOUND
){
st
=
nv_flashWriteNew
(
1
,
NV_MODULE_
USER
,
NV_MFG_CODE
,
sizeof
(
uint16_t
),
(
u8
*
)
&
mfgcode
);
st
=
nv_flashWriteNew
(
1
,
NV_MODULE_
APP
,
NV_MFG_CODE
,
sizeof
(
uint16_t
),
(
u8
*
)
&
mfgcode
);
}
iKonkeAfSelfPrint
(
"MFG_CODE_Save result = %d
\r\n
"
,
st
);
return
st
;
...
...
tl_zigbee_sdk/build/tlsr_tc32/.cproject
View file @
682c75ca
This diff is collapsed.
Click to expand it.
tl_zigbee_sdk/build/tlsr_tc32/.project
View file @
682c75ca
...
...
@@ -189,7 +189,7 @@
<link>
<name>
apps/common/00ikonke_app
</name>
<type>
2
</type>
<location>
E:/
TeLin_Zigbee_SDK/tl_zigbee_sdk/apps/common/00ikonke_app
</location>
<location>
E:/
telin_zigbee_sdk/tl_zigbee_sdk/apps/common/00ikonke_app
</location>
</link>
<link>
<name>
platform/boot/8258
</name>
...
...
tl_zigbee_sdk/build/tlsr_tc32/boot.link
View file @
682c75ca
tl_zigbee_sdk/proj/common/tlPrintf.h
View file @
682c75ca
...
...
@@ -52,6 +52,7 @@
#if defined(MCU_CORE_826x) || defined(MCU_CORE_8258) || defined(MCU_CORE_8278)
int
Tl_printf
(
const
char
*
format
,
...);
#endif
#define SKD_LOG_ENABLE FALSE
#if (UART_PRINTF_MODE || USB_PRINTF_MODE)
...
...
@@ -59,6 +60,7 @@ int Tl_printf(const char *format, ...);
#define printf Tl_printf
#endif
#define TRACE printf
#define DEBUG(compileFlag, ...) do{ \
...
...
@@ -75,6 +77,11 @@ int Tl_printf(const char *format, ...);
TRACE
(
"
\n
*********************************
\n
"
);
\
}
\
}
while
(
0
)
#if SKD_LOG_ENABLE
#define sdk_printf printf
#else
#define sdk_printf
#endif
#else
#if defined(MCU_CORE_826x) || defined(MCU_CORE_8258) || defined(MCU_CORE_8278)
#define printf
...
...
tl_zigbee_sdk/proj/drivers/drv_nv.c
View file @
682c75ca
...
...
@@ -601,7 +601,7 @@ nv_sts_t nv_resetToFactoryNew(void){
}
foreach
(
i
,
NV_MAX_MODULS
){
if
((
i
!=
NV_MODULE_NWK_FRAME_COUNT
)
&&
(
i
!=
NV_MODULE_
KEYPAIR
)){
if
((
i
!=
NV_MODULE_NWK_FRAME_COUNT
)
&&
(
i
!=
NV_MODULE_
APP
)){
nv_resetModule
(
i
);
}
}
...
...
tl_zigbee_sdk/proj/drivers/drv_nv.h
View file @
682c75ca
...
...
@@ -354,8 +354,12 @@ typedef enum{
NV_GATEWAY_ADDR
,
//lmm add
NV_MFG_CODE
,
//lmm add
NV_AGE_TEST_STEP
,
//lmm add
NV_SINGLE_BOARD_TEST_FLG
,
//lmm add
NV_FULL_DEVICE_TEST_FLG
,
//lmm add
NV_MFC_CODE
,
//lmm add
NV_NO_DISTURB_MODE
,
//lmm add
NV_AGING_TEST_TIME
,
//lmm add
NV_INTERPAN_ENABLE_FLG
,
//lmm add
NV_ITEM_ID_MAX
=
0xFF
,
/* Item id 0xFF should not be used. */
}
nv_item_t
;
...
...
tl_zigbee_sdk/proj/os/ev_timer.h
View file @
682c75ca
...
...
@@ -49,7 +49,7 @@
/**
* @brief Definition for timer event
*/
#define TIMER_EVENT_NUM (
40)
#define TIMER_EVENT_NUM (
24)
#define TIMER_EVENT_ENOUGH_NUM (TIMER_EVENT_NUM - 4)
/**
...
...
tl_zigbee_sdk/proj/tl_common.h
View file @
682c75ca
...
...
@@ -83,3 +83,4 @@
#include "drivers/drv_putchar.h"
#include "drivers/drv_usb.h"
tl_zigbee_sdk/zigbee/bdb/bdb.c
View file @
682c75ca
...
...
@@ -854,7 +854,7 @@ _CODE_BDB_ static void bdb_nodeDescRespHandler(void *arg)
//lmm add for getting coo manufacture code
u16
manufactureCode
=
(
u16
)(
rsp
->
node_descriptor
.
mcH8
)
<<
8
|
rsp
->
node_descriptor
.
mcL8
;
MFG_Code_Save
(
manufactureCode
);
Tl_printf
(
"sdk print,nodeDescResp,manufactureCode = %d
\r\n
"
,
manufactureCode
);
//just debug for sdk test
sdk_printf
(
"sdk print,nodeDescResp,manufactureCode = %d
\r\n
"
,
manufactureCode
);
//just debug for sdk test
if
(
stackRev
>=
21
){
ss_apsRequestKeyReq_t
requestKey
;
TL_SETSTRUCTCONTENT
(
requestKey
,
0
);
...
...
@@ -926,6 +926,7 @@ _CODE_BDB_ static s32 bdb_retrieveTcLinkKeyTimeout(void *arg)
*/
_CODE_BDB_
static
s32
bdb_retrieveTcLinkKeyStart
(
void
*
arg
)
{
sdk_printf
(
"bdb_retrieveTcLinkKeyStart, g_bdbAttrs.tcLinkKeyExchangeMethod= %d
\n
"
,
g_bdbAttrs
.
tcLinkKeyExchangeMethod
);
if
(
g_bdbAttrs
.
tcLinkKeyExchangeMethod
==
TCKEY_EXCHANGE_METHOD_APSRK
){
/* send node description */
u8
sn
=
0
;
...
...
@@ -1108,7 +1109,6 @@ static void bdb_task(void *arg)
g_bdbCtx
.
bdbAppCb
->
bdbcommissioningCb
(
g_bdbAttrs
.
commissioningStatus
,
NULL
);
}
}
Tl_printf
(
"sdk print,bdb_task,BDB_STATE_IDLE,status = %d
\r\n
"
,
status
);
//just debug for sdk test
BDB_STATE_SET
(
status
);
}
else
if
(
evt
==
BDB_STATE_REJOIN_DONE
){
bdb_topLevelCommissiongConfirm
();
...
...
@@ -1116,6 +1116,7 @@ static void bdb_task(void *arg)
break
;
case
BDB_STATE_COMMISSIONING_TOUCHLINK
:
sdk_printf
(
"sdk printf,touch link ,evt = %d
\r\n
"
,
evt
);
if
(
evt
==
BDB_EVT_COMMISSIONING_TOUCHLINK_NO_RESP
){
/*
* if no scan response received, start network steer
...
...
@@ -1143,7 +1144,7 @@ static void bdb_task(void *arg)
break
;
case
BDB_STATE_COMMISSIONING_NETWORK_STEER
:
Tl_printf
(
"sdk print,bdb_task,networ steering,evt = %d
\r\n
"
,
evt
);
//just debug for sdk test
sdk_printf
(
"sdk printf,start retry tclink_key event,evt = %d
\r\n
"
,
evt
);
if
(
evt
==
BDB_EVT_COMMISSIONING_NETWORK_STEER_RETRIEVE_TCLINK_KEY
){
TL_ZB_TIMER_SCHEDULE
(
bdb_retrieveTcLinkKeyStart
,
NULL
,
1000
);
}
else
if
(
evt
==
BDB_EVT_COMMISSIONING_NETWORK_STEER_PERMITJOIN
){
...
...
@@ -1156,13 +1157,11 @@ static void bdb_task(void *arg)
#if ZB_COORDINATOR_ROLE
ss_securityModeSet
(
SS_SEMODE_CENTRALIZED
);
#else
Tl_printf
(
"sdk print,bdb_task,networ steering,----
\r\n
"
);
if
((
!
g_bdbAttrs
.
nodeIsOnANetwork
)
||
(
ZB_IEEE_ADDR_IS_INVAILD
(
ss_ib
.
trust_center_address
))){
ss_securityModeSet
(
SS_SEMODE_DISTRIBUTED
);
}
#endif
status
=
bdb_commissioningNetworkFormation
();
Tl_printf
(
"sdk print,bdb_task,networ steering,status = %d
\r\n
"
,
status
);
if
(
status
==
BDB_STATE_IDLE
){
/* confirm to application */
bdb_topLevelCommissiongConfirm
();
...
...
@@ -1172,6 +1171,7 @@ static void bdb_task(void *arg)
break
;
case
BDB_STATE_COMMISSIONING_NETWORK_FORMATION
:
sdk_printf
(
"sdk printf,BDB_STATE_COMMISSIONING_NETWORK_FORMATION,evt = %d
\r\n
"
,
evt
);
if
(
evt
==
BDB_EVT_COMMISSIONING_NETWORK_FORMATION_PERMITJOIN
){
g_bdbAttrs
.
commissioningMode
.
networkSteer
=
1
;
zb_mgmtPermitJoinReq
(
0xfffc
,
BDBC_MIN_COMMISSIONING_TIME
,
0x01
,
&
sn
,
NULL
);
...
...
@@ -1187,6 +1187,7 @@ static void bdb_task(void *arg)
break
;
case
BDB_STATE_COMMISSIONING_FINDORBIND
:
sdk_printf
(
"sdk printf,FINDORBIND,evt = %d
\r\n
"
,
evt
);
if
(
evt
==
BDB_EVT_COMMISSIONING_FINDORBIND_SIMPLE_DESC_REQ
){
bdb_commissioningFindBindSimpleDescReq
();
}
else
if
(
evt
==
BDB_EVT_COMMISSIONING_FINDORBIND_FINISH
){
...
...
@@ -1228,7 +1229,7 @@ _CODE_BDB_ static s32 bdb_task_delay(void *arg)
_CODE_BDB_
void
bdb_zdoStartDevCnf
(
zdo_start_device_confirm_t
*
startDevCnf
){
u32
evt
=
BDB_EVT_IDLE
;
u8
state
=
BDB_STATE_GET
();
Tl_printf
(
"sdk print,bdb_zdoStartDevCnf,get bdb status = %d,start status = %d
\r\n
"
,
state
,
startDevCnf
->
status
);
switch
(
state
){
case
BDB_STATE_IDLE
:
/* for rejoin indication by the stack */
...
...
@@ -1287,7 +1288,6 @@ _CODE_BDB_ void bdb_zdoStartDevCnf(zdo_start_device_confirm_t *startDevCnf){
#endif
case
BDB_STATE_COMMISSIONING_NETWORK_STEER
:
Tl_printf
(
"sdk print,bdb_zdoStartDevCnf,status = %d
\r\n
"
,
startDevCnf
->
status
);
//just debug for sdk test
if
(
startDevCnf
->
status
==
SUCCESS
){
//g_bdbAttrs.commissioningStatus = BDB_COMMISSION_STA_SUCCESS;
g_bdbAttrs
.
nodeIsOnANetwork
=
1
;
...
...
@@ -1454,7 +1454,7 @@ _CODE_BDB_ static u8 bdb_topLevelCommissiongConfirm(void){
*/
_CODE_BDB_
static
u8
bdb_topLevelCommissioning
(
u8
target
){
/* restore persistent ZigBee data */
Tl_printf
(
"sdk print,bdb_topLevelCommissioning = %d,%d
\r\n
"
,
BDB_STATE_GET
(),
g_bdbAttrs
.
commissioningStatus
);
if
(
BDB_STATE_GET
()
!=
BDB_STATE_IDLE
||
g_bdbAttrs
.
commissioningStatus
==
BDB_COMMISSION_STA_IN_PROGRESS
){
return
BDB_STATE_COMMISSIONING_BUSY
;
}
...
...
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