Match SDK and patch line-endings (#511)

* Ensure line-endings stay as intended in patch files

This avoids git being overly ambitious with git hygiene, as our target
does not follow git etiquette using crlf line endings.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>

* boyscout: Update COMPILE documentation

Sort boards and make it textually slightly nicer to read.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>

---------

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
This commit is contained in:
Olliver Schinagl
2024-08-24 14:08:08 +02:00
committed by GitHub
parent 579956b4e1
commit 15c27041a5
3 changed files with 187 additions and 192 deletions

1
.gitattributes vendored Normal file
View File

@@ -0,0 +1 @@
*.patch -text

View File

@@ -7,21 +7,21 @@
## Compiling ## Compiling
1. Create a folder called `workspace` in the folder where the SDK is installed. In the SDK installation folder you should see files like `Makefile` and `license_simplelink_cc13xx_cc26xx_sdk_7_10_00_98.txt`. 1. Create a folder called `workspace` in the folder where the SDK is installed. In the SDK installation folder you should see files like `Makefile` and `license_simplelink_cc13xx_cc26xx_sdk_7_10_00_98.txt`.
1. Start Code Composer Studio, it will ask you to select a workspace folder, select the `workspace` folder you created in the previous step. 1. Start Code Composer Studio, it will ask you to select a workspace folder, select the `workspace` folder you created in the previous step.
1. Go to *File -> Import -> Code Composer Studio -> CCS Projects -> Select* search-directory: `simplelink_cc13xx_cc26xx_sdk_7_10_00_98/examples/rtos`. 1. Go to *File -> Import -> Code Composer Studio -> CCS Projects -> Select* search-directory: `simplelink_cc13xx_cc26xx_sdk_7_10_00_98/examples/rtos`.
1. Select: 1. Select:
- `znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang`
- `znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang` - `znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang`
- `znp_LP_CC2652RB_tirtos7_ticlang` - `znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang`
- `znp_LP_CC1352P7_4_tirtos7_ticlang` - `znp_LP_CC1352P7_4_tirtos7_ticlang`
- `znp_LP_CC2652R7_tirtos7_ticlang` - `znp_LP_CC2652R7_tirtos7_ticlang`
- `znp_LP_CC2652RB_tirtos7_ticlang`
1. Press *Finish*. 1. Press *Finish*.
1. In Code Composer Studio, expand the 5 projects and for each open `znp.syscfg`, expand `Power Management` and change `Minimal Poll Period (ms)` to `1000`, change it back to `100` immediately and save the file. 1. In Code Composer Studio, expand the 5 projects and for each open `znp.syscfg`, expand `Power Management` and change `Minimal Poll Period (ms)` to `1000`, change it back to `100` immediately and save the file.
1. Copy `firmware.patch` to the SDK installation folder, open a Git Bash in this folder and apply the patch using `git apply firmware.patch --ignore-space-change`. 1. Copy `firmware.patch` to the SDK installation folder, open a Git Bash in this folder and apply the patch using `git apply firmware.patch --ignore-space-change`.
1. Build the 5 projects; right click -> *Build project*. 1. Build the 5 projects; right click -> *Build project*.
- **Important:** by default the **launchpad** variant of the CC1352P2_CC2652P (= `znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang`) is build. To build the **other** variant comment `#define LAUNCHPAD_CONFIG 1` in `preinclude.h` (located under `Stack/Config/`), don't forget to save. - **Important:** by default the **launchpad** variant of the CC1352P2_CC2652P (= `znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang`) is build. To build the **other** variant comment `#define LAUNCHPAD_CONFIG 1` in `preinclude.h` (located under `Stack/Config/`), don't forget to save.
1. Once finished, the firmware can be found under `znp_*_tirtos7_ticlang/default/znp_*_tirtos7_ticlang.hex` 1. Once finished, the firmware can be found under `znp_*_tirtos7_ticlang/default/znp_*_tirtos7_ticlang.hex`
- `znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang.hex` -> CC2652R - `znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang.hex` -> CC1352P-2 and CC2652P based boards
- `znp_LP_CC2652RB_tirtos7_ticlang.hex` -> CC2652RB - `znp_CC26X2R1_LAUNCHXL_tirtos7_ticlang.hex` -> CC2652R based boards
- `znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang.hex` -> CC1352P-2 and CC2652P - `znp_LP_CC1352P7_4_tirtos7_ticlang.hex` -> CC1352P7 based boards
- `znp_LP_CC1352P7_4_tirtos7_ticlang.hex` -> CC1352P7 - `znp_LP_CC2652R7_tirtos7_ticlang.hex` -> CC2652R7 based boards
- `znp_LP_CC2652R7_tirtos7_ticlang.hex` -> CC2652R7 - `znp_LP_CC2652RB_tirtos7_ticlang.hex` -> CC2652RB based boards

View File

@@ -42,8 +42,6 @@ Subject: [PATCH 1/1] Own changes
.../znp.syscfg | 6 +- .../znp.syscfg | 6 +-
36 files changed, 1363 insertions(+), 29 deletions(-) 36 files changed, 1363 insertions(+), 29 deletions(-)
create mode 100644 source/ti/zstack/stack/Config/preinclude.h create mode 100644 source/ti/zstack/stack/Config/preinclude.h
mode change 100644 => 100755 source/ti/zstack/stack/af/af.c
mode change 100644 => 100755 source/ti/zstack/stack/nwk/nwk_globals.c
create mode 100644 source/ti/zstack/stack/nwk/nwk_util.c create mode 100644 source/ti/zstack/stack/nwk/nwk_util.c
create mode 100644 workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c create mode 100644 workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_devices_config.c
create mode 100644 workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h create mode 100644 workspace/znp_CC1352P_2_LAUNCHXL_tirtos7_ticlang/ti_drivers_config.h
@@ -105,8 +103,8 @@ index a14a3282..5153fa39 100644
#define MT_UTIL_CALLBACK_SUB_CMD 0x06 #define MT_UTIL_CALLBACK_SUB_CMD 0x06
#define MT_UTIL_TIME_ALIVE 0x09 #define MT_UTIL_TIME_ALIVE 0x09
+#define MT_UTIL_LED_CONTROL 0x0A +#define MT_UTIL_LED_CONTROL 0x0A
+ +
#define MT_UTIL_TEST_LOOPBACK 0x10 #define MT_UTIL_TEST_LOOPBACK 0x10
#define MT_UTIL_DATA_REQ 0x11 #define MT_UTIL_DATA_REQ 0x11
@@ -114,8 +112,8 @@ index a14a3282..5153fa39 100644
#define MT_UTIL_SRNG_GENERATE 0x4C #define MT_UTIL_SRNG_GENERATE 0x4C
#endif #endif
#define MT_UTIL_BIND_ADD_ENTRY 0x4D #define MT_UTIL_BIND_ADD_ENTRY 0x4D
+#define MT_UTIL_ASSOC_REMOVE 0x63 // Custom command +#define MT_UTIL_ASSOC_REMOVE 0x63 // Custom command
+#define MT_UTIL_ASSOC_ADD 0x64 // Custom command +#define MT_UTIL_ASSOC_ADD 0x64 // Custom command
#define MT_UTIL_ZCL_KEY_EST_INIT_EST 0x80 #define MT_UTIL_ZCL_KEY_EST_INIT_EST 0x80
#define MT_UTIL_ZCL_KEY_EST_SIGN 0x81 #define MT_UTIL_ZCL_KEY_EST_SIGN 0x81
@@ -127,9 +125,9 @@ index 9eb8396f..a7c302ed 100644
#include "mt_zdo.h" #include "mt_zdo.h"
#include "ssp.h" #include "ssp.h"
+#include <ti/drivers/apps/LED.h> +#include <ti/drivers/apps/LED.h>
+#include "ti_drivers_config.h" +#include "ti_drivers_config.h"
+ +
#if !defined NONWK #if !defined NONWK
#include "mt_nwk.h" #include "mt_nwk.h"
@@ -137,9 +135,9 @@ index 9eb8396f..a7c302ed 100644
#endif //MT_SYS_KEY_MANAGEMENT #endif //MT_SYS_KEY_MANAGEMENT
static void MT_UtilAPSME_RequestKeyCmd(uint8_t *pBuf); static void MT_UtilAPSME_RequestKeyCmd(uint8_t *pBuf);
static void MT_UtilAssocCount(uint8_t *pBuf); static void MT_UtilAssocCount(uint8_t *pBuf);
+static void MT_UtilLedControl(uint8_t *pBuf); +static void MT_UtilLedControl(uint8_t *pBuf);
+static void MT_UtilAssocRemove(uint8_t *pBuf); +static void MT_UtilAssocRemove(uint8_t *pBuf);
+static void MT_UtilAssocAdd(uint8_t *pBuf); +static void MT_UtilAssocAdd(uint8_t *pBuf);
static void MT_UtilAssocFindDevice(uint8_t *pBuf); static void MT_UtilAssocFindDevice(uint8_t *pBuf);
static void MT_UtilAssocGetWithAddress(uint8_t *pBuf); static void MT_UtilAssocGetWithAddress(uint8_t *pBuf);
static void MT_UtilBindAddEntry(uint8_t *pBuf); static void MT_UtilBindAddEntry(uint8_t *pBuf);
@@ -147,10 +145,10 @@ index 9eb8396f..a7c302ed 100644
MT_UtilAssocCount(pBuf); MT_UtilAssocCount(pBuf);
break; break;
+ case MT_UTIL_LED_CONTROL: + case MT_UTIL_LED_CONTROL:
+ MT_UtilLedControl(pBuf); + MT_UtilLedControl(pBuf);
+ break; + break;
+ +
case MT_UTIL_ASSOC_FIND_DEVICE: case MT_UTIL_ASSOC_FIND_DEVICE:
MT_UtilAssocFindDevice(pBuf); MT_UtilAssocFindDevice(pBuf);
break; break;
@@ -158,14 +156,14 @@ index 9eb8396f..a7c302ed 100644
MT_UtilBindAddEntry(pBuf); MT_UtilBindAddEntry(pBuf);
break; break;
+ case MT_UTIL_ASSOC_REMOVE: + case MT_UTIL_ASSOC_REMOVE:
+ MT_UtilAssocRemove(pBuf); + MT_UtilAssocRemove(pBuf);
+ break; + break;
+ +
+ case MT_UTIL_ASSOC_ADD: + case MT_UTIL_ASSOC_ADD:
+ MT_UtilAssocAdd(pBuf); + MT_UtilAssocAdd(pBuf);
+ break; + break;
+ +
case MT_UTIL_SYNC_REQ: case MT_UTIL_SYNC_REQ:
MT_UtilSync(); MT_UtilSync();
break; break;
@@ -173,95 +171,95 @@ index 9eb8396f..a7c302ed 100644
MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 2, pBuf); MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 2, pBuf);
} }
+/*************************************************************************************************** +/***************************************************************************************************
+ * @fn MT_UtilLedControl + * @fn MT_UtilLedControl
+ * + *
+ * @brief Proxy the LedControl() function. + * @brief Proxy the LedControl() function.
+ * + *
+ * @param pBuf - pointer to the received buffer + * @param pBuf - pointer to the received buffer
+ * + *
+ * @return void + * @return void
+ ***************************************************************************************************/ + ***************************************************************************************************/
+static void MT_UtilLedControl(uint8_t *pBuf) +static void MT_UtilLedControl(uint8_t *pBuf)
+{ +{
+ uint8_t cmdId = pBuf[MT_RPC_POS_CMD1]; + uint8_t cmdId = pBuf[MT_RPC_POS_CMD1];
+ pBuf += MT_RPC_FRAME_HDR_SZ; + pBuf += MT_RPC_FRAME_HDR_SZ;
+ +
+ uint8_t mode = pBuf[1]; + uint8_t mode = pBuf[1];
+ +
+ if (gLedHandle == NULL) { + if (gLedHandle == NULL) {
+ LED_Params ledParams; + LED_Params ledParams;
+ LED_Params_init(&ledParams); + LED_Params_init(&ledParams);
+ gLedHandle = LED_open(CONFIG_LED_GREEN, &ledParams); + gLedHandle = LED_open(CONFIG_LED_GREEN, &ledParams);
+ } + }
+ +
+ if (mode==0) { + if (mode==0) {
+ LED_setOff(gLedHandle); + LED_setOff(gLedHandle);
+ } else if (mode == 5) { + } else if (mode == 5) {
+ gLedsDisabled = TRUE; + gLedsDisabled = TRUE;
+ LED_setOff(gLedHandle); + LED_setOff(gLedHandle);
+ } else { + } else {
+ LED_setOn(gLedHandle, LED_BRIGHTNESS_MAX); + LED_setOn(gLedHandle, LED_BRIGHTNESS_MAX);
+ } + }
+ +
+ uint8_t retValue = 0; + uint8_t retValue = 0;
+ MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 1, &retValue); + MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 1, &retValue);
+} +}
+ +
+/*************************************************************************************************** +/***************************************************************************************************
+ * @fn MT_UtilAssocRemove + * @fn MT_UtilAssocRemove
+ * + *
+ * @brief Proxy the AssocRemove() function. + * @brief Proxy the AssocRemove() function.
+ * + *
+ * @param pBuf - pointer to the received buffer + * @param pBuf - pointer to the received buffer
+ * + *
+ * @return void + * @return void
+ ***************************************************************************************************/ + ***************************************************************************************************/
+static void MT_UtilAssocRemove(uint8_t *pBuf) +static void MT_UtilAssocRemove(uint8_t *pBuf)
+{ +{
+ uint8_t cmdId; + uint8_t cmdId;
+ uint8_t ieeeAddr[Z_EXTADDR_LEN]; + uint8_t ieeeAddr[Z_EXTADDR_LEN];
+ uint8_t retValue = 0; + uint8_t retValue = 0;
+ +
+ // parse header + // parse header
+ cmdId = pBuf[MT_RPC_POS_CMD1]; + cmdId = pBuf[MT_RPC_POS_CMD1];
+ pBuf += MT_RPC_FRAME_HDR_SZ; + pBuf += MT_RPC_FRAME_HDR_SZ;
+ +
+ /* IeeAddress */ + /* IeeAddress */
+ OsalPort_memcpy(ieeeAddr, pBuf, Z_EXTADDR_LEN); + OsalPort_memcpy(ieeeAddr, pBuf, Z_EXTADDR_LEN);
+ +
+ AssocRemove(ieeeAddr); + AssocRemove(ieeeAddr);
+ +
+ MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 1, &retValue); + MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 1, &retValue);
+} +}
+ +
+/*************************************************************************************************** +/***************************************************************************************************
+ * @fn MT_UtilAssocAdd + * @fn MT_UtilAssocAdd
+ * + *
+ * @brief Proxy the AssocAdd() function. + * @brief Proxy the AssocAdd() function.
+ * + *
+ * @param pBuf - pointer to the received buffer + * @param pBuf - pointer to the received buffer
+ * + *
+ * @return void + * @return void
+ ***************************************************************************************************/ + ***************************************************************************************************/
+static void MT_UtilAssocAdd(uint8_t *pBuf) +static void MT_UtilAssocAdd(uint8_t *pBuf)
+{ +{
+ uint8_t cmdId; + uint8_t cmdId;
+ uint8_t retValue = 0; + uint8_t retValue = 0;
+ +
+ // parse header + // parse header
+ cmdId = pBuf[MT_RPC_POS_CMD1]; + cmdId = pBuf[MT_RPC_POS_CMD1];
+ pBuf += MT_RPC_FRAME_HDR_SZ; + pBuf += MT_RPC_FRAME_HDR_SZ;
+ +
+ AssocAddNew( + AssocAddNew(
+ BUILD_UINT16(pBuf[Z_EXTADDR_LEN], pBuf[Z_EXTADDR_LEN + 1]), + BUILD_UINT16(pBuf[Z_EXTADDR_LEN], pBuf[Z_EXTADDR_LEN + 1]),
+ pBuf, + pBuf,
+ pBuf[Z_EXTADDR_LEN + 2] + pBuf[Z_EXTADDR_LEN + 2]
+ ); + );
+ +
+ MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 1, &retValue); + MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_UTIL), cmdId, 1, &retValue);
+} +}
+ +
/*************************************************************************************************** /***************************************************************************************************
* @fn MT_UtilAssocFindDevice * @fn MT_UtilAssocFindDevice
* *
@@ -328,11 +326,11 @@ index 7ee216ee..2032cc02 100644
ignoreIndication = TRUE; ignoreIndication = TRUE;
retValue = (uint8_t)ZDP_MgmtPermitJoinReq( &destAddr, duration, tcSignificance, 0); retValue = (uint8_t)ZDP_MgmtPermitJoinReq( &destAddr, duration, tcSignificance, 0);
ignoreIndication = FALSE; ignoreIndication = FALSE;
+ +
+ // If joining is enabled via a router, ZDO_ProcessMgmtPermitJoinReq is never triggered thus + // If joining is enabled via a router, ZDO_ProcessMgmtPermitJoinReq is never triggered thus
+ // ZDSecMgrPermitJoining is never called. Joining via a router would always fail now since + // ZDSecMgrPermitJoining is never called. Joining via a router would always fail now since
+ // ZDSecMgrPermitJoiningEnabled in zd_sec_mgr.c stays FALSE + // ZDSecMgrPermitJoiningEnabled in zd_sec_mgr.c stays FALSE
+ ZDSecMgrPermitJoining(duration); + ZDSecMgrPermitJoining(duration);
MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_ZDO), cmdId, 1, &retValue); MT_BuildAndSendZToolResponse(((uint8_t)MT_RPC_CMD_SRSP | (uint8_t)MT_RPC_SYS_ZDO), cmdId, 1, &retValue);
} }
@@ -502,9 +500,7 @@ index 00000000..a50a178c
+ #endif + #endif
+#endif +#endif
diff --git a/source/ti/zstack/stack/af/af.c b/source/ti/zstack/stack/af/af.c diff --git a/source/ti/zstack/stack/af/af.c b/source/ti/zstack/stack/af/af.c
old mode 100644 index 12512a39..4298e709 100644
new mode 100755
index 12512a39..4298e709
--- a/source/ti/zstack/stack/af/af.c --- a/source/ti/zstack/stack/af/af.c
+++ b/source/ti/zstack/stack/af/af.c +++ b/source/ti/zstack/stack/af/af.c
@@ -433,10 +433,18 @@ void afIncomingData( aps_FrameFormat_t *aff, zAddrType_t *SrcAddress, uint16_t S @@ -433,10 +433,18 @@ void afIncomingData( aps_FrameFormat_t *aff, zAddrType_t *SrcAddress, uint16_t S
@@ -513,17 +509,17 @@ index 12512a39..4298e709
grpEp = aps_FindGroupForEndpoint( aff->GroupID, APS_GROUPS_FIND_FIRST ); grpEp = aps_FindGroupForEndpoint( aff->GroupID, APS_GROUPS_FIND_FIRST );
- if ( grpEp == APS_GROUPS_EP_NOT_FOUND ) - if ( grpEp == APS_GROUPS_EP_NOT_FOUND )
- return; // No endpoint found - return; // No endpoint found
+ if ( grpEp == APS_GROUPS_EP_NOT_FOUND ) { + if ( grpEp == APS_GROUPS_EP_NOT_FOUND ) {
+ // No endpoint found, default to endpoint 1. + // No endpoint found, default to endpoint 1.
+ // In the original source code there is a return here. + // In the original source code there is a return here.
+ // This prevent the messags from being forwarded. + // This prevent the messags from being forwarded.
+ // For our use-case we want to capture all messages. + // For our use-case we want to capture all messages.
+ // Even if the coordinator is not in the group. + // Even if the coordinator is not in the group.
+ epDesc = afFindEndPointDesc( 1 ); + epDesc = afFindEndPointDesc( 1 );
+ } + }
+ else { + else {
+ epDesc = afFindEndPointDesc( grpEp ); + epDesc = afFindEndPointDesc( grpEp );
+ } + }
- epDesc = afFindEndPointDesc( grpEp ); - epDesc = afFindEndPointDesc( grpEp );
if ( epDesc == NULL ) if ( epDesc == NULL )
@@ -534,16 +530,14 @@ index 12512a39..4298e709
if ( (aff->ProfileID == epProfileID) || if ( (aff->ProfileID == epProfileID) ||
((epDesc->endPoint == ZDO_EP) && (aff->ProfileID == ZDO_PROFILE_ID)) || ((epDesc->endPoint == ZDO_EP) && (aff->ProfileID == ZDO_PROFILE_ID)) ||
- ((epDesc->endPoint != ZDO_EP) && ( aff->ProfileID == ZDO_WILDCARD_PROFILE_ID )) ) - ((epDesc->endPoint != ZDO_EP) && ( aff->ProfileID == ZDO_WILDCARD_PROFILE_ID )) )
+ ((epDesc->endPoint != ZDO_EP) && ( aff->ProfileID == ZDO_WILDCARD_PROFILE_ID )) || + ((epDesc->endPoint != ZDO_EP) && ( aff->ProfileID == ZDO_WILDCARD_PROFILE_ID )) ||
+ // Forward messages to endpoint even with profileID mismatches + // Forward messages to endpoint even with profileID mismatches
+ ((aff->ProfileID >= 0x100) && (aff->ProfileID <= 0xFC01)) ) + ((aff->ProfileID >= 0x100) && (aff->ProfileID <= 0xFC01)) )
{ {
// Save original endpoint // Save original endpoint
uint8_t endpoint = aff->DstEndPoint; uint8_t endpoint = aff->DstEndPoint;
diff --git a/source/ti/zstack/stack/nwk/nwk_globals.c b/source/ti/zstack/stack/nwk/nwk_globals.c diff --git a/source/ti/zstack/stack/nwk/nwk_globals.c b/source/ti/zstack/stack/nwk/nwk_globals.c
old mode 100644 index a0acd954..7b12a23c 100644
new mode 100755
index a0acd954..7b12a23c
--- a/source/ti/zstack/stack/nwk/nwk_globals.c --- a/source/ti/zstack/stack/nwk/nwk_globals.c
+++ b/source/ti/zstack/stack/nwk/nwk_globals.c +++ b/source/ti/zstack/stack/nwk/nwk_globals.c
@@ -91,10 +91,10 @@ @@ -91,10 +91,10 @@
@@ -554,10 +548,10 @@ index a0acd954..7b12a23c
-#define NWK_MAX_DATABUFS_SCHEDULED 5 // Timed messages to be sent -#define NWK_MAX_DATABUFS_SCHEDULED 5 // Timed messages to be sent
-#define NWK_MAX_DATABUFS_CONFIRMED 5 // Held after MAC confirms -#define NWK_MAX_DATABUFS_CONFIRMED 5 // Held after MAC confirms
-#define NWK_MAX_DATABUFS_TOTAL 12 // Total number of buffers -#define NWK_MAX_DATABUFS_TOTAL 12 // Total number of buffers
+#define NWK_MAX_DATABUFS_WAITING 48 // Waiting to be sent to MAC +#define NWK_MAX_DATABUFS_WAITING 48 // Waiting to be sent to MAC
+#define NWK_MAX_DATABUFS_SCHEDULED 30 // Timed messages to be sent +#define NWK_MAX_DATABUFS_SCHEDULED 30 // Timed messages to be sent
+#define NWK_MAX_DATABUFS_CONFIRMED 30 // Held after MAC confirms +#define NWK_MAX_DATABUFS_CONFIRMED 30 // Held after MAC confirms
+#define NWK_MAX_DATABUFS_TOTAL 72 // Total number of buffers +#define NWK_MAX_DATABUFS_TOTAL 72 // Total number of buffers
// 1-255 (0 -> 256) X RTG_TIMER_INTERVAL // 1-255 (0 -> 256) X RTG_TIMER_INTERVAL
// A known shortcoming is that when a message is enqueued as "hold" for a // A known shortcoming is that when a message is enqueued as "hold" for a
@@ -671,20 +665,20 @@ index 5faa2100..6551ff7f 100644
if ( desc != NULL ) if ( desc != NULL )
{ {
+ uint8_t extAddr[Z_EXTADDR_LEN]; + uint8_t extAddr[Z_EXTADDR_LEN];
+ // Respond with Xiaomi manufacturer code when ieeAddr is withing Xiaomi address space + // Respond with Xiaomi manufacturer code when ieeAddr is withing Xiaomi address space
+ // Otherwise some devices don't work + // Otherwise some devices don't work
+ // https://github.com/Koenkk/zigbee2mqtt/issues/9274 + // https://github.com/Koenkk/zigbee2mqtt/issues/9274
+ if (APSME_LookupExtAddr(inMsg->srcAddr.addr.shortAddr, extAddr) == TRUE && + if (APSME_LookupExtAddr(inMsg->srcAddr.addr.shortAddr, extAddr) == TRUE &&
+ ((extAddr[7] == 0x04 && extAddr[6] == 0xcf && extAddr[5] == 0x8c) || + ((extAddr[7] == 0x04 && extAddr[6] == 0xcf && extAddr[5] == 0x8c) ||
+ (extAddr[7] == 0x54 && extAddr[6] == 0xef && extAddr[5] == 0x44))) { + (extAddr[7] == 0x54 && extAddr[6] == 0xef && extAddr[5] == 0x44))) {
+ desc->ManufacturerCode[0] = 0x5f; + desc->ManufacturerCode[0] = 0x5f;
+ desc->ManufacturerCode[1] = 0x11; + desc->ManufacturerCode[1] = 0x11;
+ } else { + } else {
+ desc->ManufacturerCode[0] = 0x0; + desc->ManufacturerCode[0] = 0x0;
+ desc->ManufacturerCode[1] = 0x0; + desc->ManufacturerCode[1] = 0x0;
+ } + }
+ +
ZDP_NodeDescMsg( inMsg, aoi, desc ); ZDP_NodeDescMsg( inMsg, aoi, desc );
} }
else else
@@ -696,7 +690,7 @@ index d7ca14f0..118e963d 100644
#include <ti/drivers/TRNG.h> #include <ti/drivers/TRNG.h>
#include <ti/drivers/cryptoutils/cryptokey/CryptoKeyPlaintext.h> #include <ti/drivers/cryptoutils/cryptokey/CryptoKeyPlaintext.h>
+#include "ti_drivers_config.h" +#include "ti_drivers_config.h"
/****************************************************************************** /******************************************************************************
* CONSTANTS * CONSTANTS
@@ -704,8 +698,8 @@ index d7ca14f0..118e963d 100644
*/ */
extern CONST uint8_t gMAX_NWK_SEC_MATERIAL_TABLE_ENTRIES; extern CONST uint8_t gMAX_NWK_SEC_MATERIAL_TABLE_ENTRIES;
extern pfnZdoCb zdoCBFunc[MAX_ZDO_CB_FUNC]; extern pfnZdoCb zdoCBFunc[MAX_ZDO_CB_FUNC];
+bool gLedsDisabled = FALSE; +bool gLedsDisabled = FALSE;
+LED_Handle gLedHandle; +LED_Handle gLedHandle;
/****************************************************************************** /******************************************************************************
* EXTERNAL FUNCTIONS * EXTERNAL FUNCTIONS
@@ -713,23 +707,23 @@ index d7ca14f0..118e963d 100644
} }
} }
+void updateLED( void ) +void updateLED( void )
+{ +{
+ if (gLedHandle == NULL) { + if (gLedHandle == NULL) {
+ LED_Params ledParams; + LED_Params ledParams;
+ LED_Params_init(&ledParams); + LED_Params_init(&ledParams);
+ gLedHandle = LED_open(CONFIG_LED_GREEN, &ledParams); + gLedHandle = LED_open(CONFIG_LED_GREEN, &ledParams);
+ } + }
+ +
+ if (gLedsDisabled == FALSE && gLedHandle != NULL) { + if (gLedsDisabled == FALSE && gLedHandle != NULL) {
+ if (ZDSecMgrPermitJoiningEnabled == TRUE) { + if (ZDSecMgrPermitJoiningEnabled == TRUE) {
+ LED_setOn(gLedHandle, LED_BRIGHTNESS_MAX); + LED_setOn(gLedHandle, LED_BRIGHTNESS_MAX);
+ } else { + } else {
+ LED_setOff(gLedHandle); + LED_setOff(gLedHandle);
+ } + }
+ } + }
+} +}
+ +
/****************************************************************************** /******************************************************************************
* @fn ZDSecMgrPermitJoining * @fn ZDSecMgrPermitJoining
* *
@@ -737,7 +731,7 @@ index d7ca14f0..118e963d 100644
ZDSecMgrPermitJoiningEnabled = FALSE; ZDSecMgrPermitJoiningEnabled = FALSE;
} }
+ updateLED(); + updateLED();
accept = TRUE; accept = TRUE;
return accept; return accept;
@@ -745,8 +739,8 @@ index d7ca14f0..118e963d 100644
ZDSecMgrPermitJoiningEnabled = FALSE; ZDSecMgrPermitJoiningEnabled = FALSE;
ZDSecMgrPermitJoiningTimed = FALSE; ZDSecMgrPermitJoiningTimed = FALSE;
} }
+ +
+ updateLED(); + updateLED();
} }
/****************************************************************************** /******************************************************************************
@@ -758,8 +752,8 @@ index 9db9d841..e2a0eb53 100644
#include "zcomdef.h" #include "zcomdef.h"
#include "zd_app.h" #include "zd_app.h"
+#include <ti/drivers/apps/LED.h> +#include <ti/drivers/apps/LED.h>
+ +
/****************************************************************************** /******************************************************************************
* TYPEDEFS * TYPEDEFS
*/ */
@@ -767,9 +761,9 @@ index 9db9d841..e2a0eb53 100644
extern CONST uint16_t gZDSECMGR_TC_DEVICE_IC_MAX; extern CONST uint16_t gZDSECMGR_TC_DEVICE_IC_MAX;
extern uint8_t gZDSECMGR_TC_ATTEMPT_DEFAULT_KEY; extern uint8_t gZDSECMGR_TC_ATTEMPT_DEFAULT_KEY;
+extern bool gLedsDisabled; +extern bool gLedsDisabled;
+extern LED_Handle gLedHandle; +extern LED_Handle gLedHandle;
+ +
typedef struct typedef struct
{ {
uint32_t FrameCounter; uint32_t FrameCounter;