This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

请教:Z-Stack3.0.2 ZNP的应用

Expert 1395 points
Other Parts Discussed in Thread: Z-STACK, CC2530

芯片型号:CC2530F256

协议栈:Z-Stack3.0.2

测试:通过Z-TOOL2.0

Start Time: 2019/9/4 2:16:49

*** WARNING ***
Expected Z-Stack version (2.7.1) does not match with actual Z-Stack version (2.7.2). Z-Tool may not work properly.

<TX>02:18:31.78 COM1 SYS_OSAL_NV_WRITE (0x2109)
Id: 0x0003
Offset: 0x00
Len: 0x01
Value: . (0x03)

<RX>02:18:31.81 COM1 SYS_OSAL_NV_WRITE_SRSP (0x6109)
Status: SUCCESS (0x0)

<TX>02:18:57.53 COM1 SYS_RESET (0x4100)
Type: 0x00 (HARD RESET) (0x0)

<RX>02:19:00.64 COM1 SYS_RESET_RESPONSE (0x4180)
Reason: 0x02
TransportRev: 0x02
Product: 0x00
MajorRel: 0x02
MinorRel: 0x07
HwRev: 0x02

<TX>02:21:17.02 COM1 SYS_OSAL_NV_WRITE (0x2109)
Id: 0x0057
Offset: 0x00
Len: 0x01
Value: . (0x00)

<RX>02:21:17.06 COM1 SYS_OSAL_NV_WRITE_SRSP (0x6109)
Status: INVALID_PARAMETER (0x2)

<TX>02:35:40.69 COM1 SYS_OSAL_NV_WRITE (0x2109)
Id: 0x0057
Offset: 0x00
Len: 0x01
Value: . (0x00)

<RX>02:35:40.73 COM1 SYS_OSAL_NV_WRITE_SRSP (0x6109)
Status: INVALID_PARAMETER (0x2)

<TX>02:39:32.9 COM1 APP_CNF_BDB_START_COMMISSIONING (0x2F05)
CommissioningMode: (0x04) Network Formation (0x4)

<RX>02:39:39.26 COM1 APP_CNF_BDB_START_COMMISSIONING_SRSP (0x6F05)
Status: SUCCESS (0x0)

<RX>02:39:39.26 COM1 ZDO_STATE_CHANGE_IND (0x45C0)
State: 8 (0x8)

<RX>02:39:39.27 COM1 APP_CNF_BDB_COMMISSIONING_NOTIFICATION (0x4F80)
Status: 1 (0x1)
Commissioning Mode: 0x02 (Formation) (0x2)
Commissioning Mode: 0x04 (Network Formation) (0x4)

<RX>02:39:39.53 COM1 ZDO_STATE_CHANGE_IND (0x45C0)
State: 8 (0x8)

<RX>02:39:39.79 COM1 ZDO_STATE_CHANGE_IND (0x45C0)
State: 8 (0x8)

<RX>02:39:40.06 COM1 ZDO_STATE_CHANGE_IND (0x45C0)
State: 8 (0x8)

<RX>02:39:40.32 COM1 ZDO_STATE_CHANGE_IND (0x45C0)
State: 8 (0x8)

<RX>02:39:40.59 COM1 ZDO_STATE_CHANGE_IND (0x45C0)
State: 8 (0x8)

<RX>02:39:41.15 COM1 ZDO_STATE_CHANGE_IND (0x45C0)
State: 9 (0x9)

<RX>02:39:41.15 COM1 APP_CNF_BDB_COMMISSIONING_NOTIFICATION (0x4F80)
Status: 0x00 (Success) (0x0)
Commissioning Mode: 0x02 (Formation) (0x2)
Commissioning Mode: 0 (0x0)

<TX>02:40:35.8 COM1 UTIL_GET_DEVICE_INFO (0x2700)

<RX>02:40:35.81 COM1 UTIL_GET_DEVICE_INFO_RESPONSE (0x6700)
Status: SUCCESS (0x0)
IEEEAddr: 0x00124B0007665581
ShortAddress: 0x0000
DeviceType: COORDINATOR, ROUTER, END_DEVICE (0x7)
DeviceState: DEV_ZB_COORD (0x9)
NumAssocDevices: 0x00
AssocDevicesList

做了以上操作,也可以获取设备信息

看论坛帖子说下来该注册端点和发送数据。问题如下:

1、端点注册AF_REGISTER

EndPoint: 
AppProfID: 
AppDeviceId: 
AppDevVer: 
LatencyReq: 
AppNumInClusters:
AppInClusterList: 
AppNumOutClusters: 
AppOutClusterList: 

2、AF_DATA_REQUEST (0x2401)

DstAddr: 
DestEndpoint: 
SrcEndpoint: 
ClusterID: 
TransID: 
Options: 
Radius: 
Len: 
Data: 

以上参数怎么获取?该怎么填,有那些资料可以参考?

3、终端用的是Z-Stack 3.0.2  SampleLight例程,把控制回路增加到三路,目前用SampleSwitch作协调器

可以控制其中的一路,若用ZNP协调器控制是不是要注册三个端点?谢谢!

  • 你附上的抓包檔理我沒看到有"在第296行是我手动绑定成功的抓包数据,在第5832行、12810行、12688行都是ZNP作为协调器时绑定失败的抓包"

  • 您好!可能是我说的行号不太精确。截图如下:

    1)、SampleCIE例程作为协调器,SampleFireDetector例程作为终端手动绑定:

    2)、SampleFireDetector例程作为终端和ZNP协调器绑定:

    再次感谢您的支持和帮助!谢谢

  • 你標示的圖都不是绑定,绑定是Binding
  • 哦,昨天第一张截图时,终端可以通过触发按键:SW4: Send change notification, i.e. start detecting a fire在CIE的板子上可以执行到,函数的ZStatus_t zclSampleCIE_ChangeNotificationCB

    case SS_IAS_ZONE_STATUS_ALARM1_ALARMED:
    {
    HalUARTWrite(0 , "Alarm @:\n", sizeof("Alarm @:\n"));
    HalUARTWrite(0 , "Alerting WDs\n", sizeof("Alerting WDs\n"));
    //setting params for the Warning Message
    alarm.warningmessage.warningbits.warnMode = SS_IAS_START_WARNING_WARNING_MODE_FIRE;
    alarm.warningmessage.warningbits.warnStrobe = SS_IAS_START_WARNING_STROBE_USE_STPOBE_IN_PARALLEL_TO_WARNING;
    }
    break;

    我以为就绑定成功了呢,那我回头再看下代码。测试下。另外若想学会用wireshark分析数据,有什么书籍推荐么?或者说需要看那些资料呢。

    再次谢谢您的指导和帮助!

  • wireshark分析zigbee数据只能靠經驗累積,目前沒有什么书籍可以推荐
  • 好的,感谢您的支持和帮助!谢谢!
  • 您好,我这里有一些问题想要咨询,关于终端设备通过中继入网失败的问题,e2echina.ti.com/.../564774,期待您的回复

  • 您好!首先感谢您的回复和帮助。
           我之前测试协调器用的CC2530,后来用了一个CC2530+CC2592的模块,但是目前依然不太稳定,现在想用CC2538或CC2652来作为协调器,看到官方网站上有两款开发板,麻烦您帮指导下哪款更合适?

    1、LAUNCHXL-CC1352P-2
    2、LAUNCHXL-CC26X2R1

    如果买了这个开发板,后续若要开发使用CC2538是不是可以直接用板子上的XDS110而不需要专门再买开发工具了,是吗?

    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 建議用LAUNCHXL-CC1352P-2、上面的XDS110可以用來調试CC2538

  • 您好!首先感谢您的回复和帮助。
    好的,谢谢您的指导;我明天就问下商城客服看怎么购买,着手购买。
    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!
  • 好的,谢谢!十分感谢!谢谢您的指导和帮助!
  • 您好!首先感谢您的回复和帮助。
             昨天LAUNCHXL-CC1352P-2板子到了,今天上电测了下,问题如下:
    1、SmartRF Studio 7软件提示:XDS110需要更新固件,该怎么更新呢?

    2、我选择了显示连接的设备,软件提示“没有连接的设备”,这个和XDS110固件升级有关系么?还是板子有问题

    3、看资料说去Google Play下载TI SimpleLink Starter  APP来测试板子,由于下载不到APP。我若直接烧写别人编译好的固件进LAUNCHXL-CC1352P-2来测试板子这样,可行不?是选择“ Flash Programmer 2 (ARM Cortex M MCUs)..  ”这个选项进行选择烧写吧?

                                                     再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 使用Flash Programmer 2或是Uniflash 可以作XDS110固件更新

  • 您好!首先感谢您的回复和帮助!

    用 Flash Programmer 2升级XDS110固件后,在Flash Programmer 2里可以看到芯片信息了,但是在SmartRF Studio 7里依然和之前一样,是不是还是不太正常呢?以后CC2538、CC1352烧写固件是用那个软件呢?


                                                                                                 再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 在SmartRF Studio理点擊”Firmware Update Required”應該就會開始更新固件、CC2538、CC1352烧写固件可以用Flash Programmer 2
  • 您好!首先感谢您的回复和帮助!
             1、刚才试了下,在SmartRF Studio 7里更新后在Flash Programmer 2里无法识别,在Flash Programmer 2里更新后在SmartRF Studio 7里无法识别,貌似只有一个软件可以用,以后若是用Flash Programmer 2下载我卸载SmartRF Studio 7只保留Flash Programmer 2算了。
            2、我目前安装的开发环境是www.ti.com/.../SIMPLELINK-CC13X2-26X2-SDK页面推荐的版本Code Composer Studio 10.0.0,选择这个版本没问题吧?
                                                                                               再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 1.這個應該是ti tool的問題,如果你只有需要Flash Programmer 2就保留Flash Programmer 2
    2. 應該沒有問題
  • 好的!十分感谢您的回复和帮助,后续学习中有什么问题再来请教。再次谢谢您的支持和帮助!谢谢!

  • 您好!首先感谢您的回复和帮助!现在遇到一些问题,请您在百忙中给予指导,问题如下:

             SampleLight例程作为开关终端单火线取电。由于取电的电源质量有波纹,达不到完全平滑。目前用3W、和5W LED灯测试时,协调器每隔3S发送一次数据,终端在开关几十次或几百次之后(没有规律),终端会有掉线情况;有时会死机(电流固定一个值一直不变,按键开关也没反应),但是可以通过板子上的RESET端来复位,终端的zigbee芯片是CC2530F256。请教下目前这种情况我可以通过在板子上增加电源管理、看门狗芯片比如:TPS3823来解决这个问题么?还是有其它更好的办法呢。

    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 建議用CC2530的watch dog先試試

  • 您好!首先感谢您的回复和帮助!
    好的,谢谢您的指导和建议。我试下先,后续有问题再来请教!
    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!
  • 您好!首先感谢您的回复和帮助!
        我在初始化函数void zclSampleLight_Init( byte task_id )的末尾添加了

    ///////////////////////////////////////////////////
    WDCTL = 0x00;
    WDCTL |= 0x08;

    ///////////////////////////////////////////////////

    在void osal_start_system( void )
    {
    #ifdef USE_ICALL
    /* Kick off timer service in order to allocate resources upfront.
    * The first timeout is required to schedule next OSAL timer event
    * as well. */
    ICall_Errno errno = ICall_setTimer(1, osal_msec_timer_cback,
    (void *) osal_msec_timer_seq,
    &osal_timerid_msec_timer);
    if (errno != ICALL_ERRNO_SUCCESS)
    {
    ICall_abort();
    }
    #endif /* USE_ICALL */

    #if !defined ( ZBIT ) && !defined ( UBIT )
    for(;;) // Forever Loop
    #endif
    {
    osal_run_system();
    ///////////////喂狗指令///////////////////////////
    WDCTL = 0xa0;
    WDCTL = 0x50;
    ////////////////////////////////////////////////
    #ifdef USE_ICALL
    ICall_wait(ICALL_TIMEOUT_FOREVER);
    #endif /* USE_ICALL */
    }
    }
    现在一上电,板子一直在复位,我的写法不对吧?正确的应该是在什么位置添加喂狗指令呢?
    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 您好!首先感谢您的回复和帮助!
             刚刚找到了watch dog的写法,现在已经在测试;另外有个问题请教,在终端掉线后有时会出现协调器发送指令后:终端设备可以开关,但是仅返回数据:FE 01 64 01 00 64

    或者返回:FE 01 64 01 00 64和下面数据
    FE 03 44 80 F0 07 FF CF
    FE 03 44 80 F0 08 FF C0
    FE 03 44 80 F0 09 FF C1

           重启协调器之后,就可以正常返回终端开关状态。协调器用的CC2538+CC2592模块。这种问题,除了在协调器端检测返回数据异常重启协调器之外还有没更好的解决办法?
    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • FE 01 64 01 00 64是AF_DATA_REQUEST成功的SRSP,FE 03 44 80...是AF_DATA_CONFIRM看起來是正常的

  • 您好!首先感谢您的回复和帮助!
             在添加了watch dog之后,昨晚测试比之前没添加时好很多,但是依然有死机现象存在,在死机状态时:电压3.35V、电流0.4mA(我的电流表精度比较低),当按触摸按键时电流在1.2~1.8mA左右但是继电器没动作,协调器下发指令,也没反应。我上午测试了下把zigbee板离开继电器板,开关1075次中间都没有终端掉线的情况出现。若放在一起少则几十次,多则几百次就会出现掉线情况。我终端板子的安装结构如下图:

    在继电器板的接线端子上方是zigbee天线,两块板子之间间隔大约5mm左右,下图是控制板翻过来时的位置示意:

    板子上半部分是触控部分,下半部分是zigbee部分,(目前是zigbee部分刚好对应接线端子铜柱部分)是不这样安装不合理呢?还是结构上有问题。请指点迷津!

              再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 硬件的問題我沒辦法這樣幫你debug,你得要自己想辦法
  • 您好!首先感谢您的回复和帮助!
    好的,我试着改变下结构,或者调整下电路看看。
    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!
  • 您好!首先感谢您的回复和帮助!
           您好,终端我后来调整了一下,循环开关测试几千次基本不存在终端频繁掉线和死机了,只有偶尔掉线,但看门狗能马上恢复,现在有以下几个问题请教,请帮指导一下:
    1、加了软件看门狗可行的情况下,是不就不用考虑外加硬件看门狗芯片了吧?
    2、加了看门狗后,代码烧写完,上电之后终端一直自动复位,入网后没问题,但是入网操作就比较费劲,该怎么修改或有什么解决办法么?
    3、后续我可能要测试射频天线部分,但是没有专业频谱分析仪,只有一台示波器,我在官网看到“双频带射频频谱分析仪参考设计TIDC-01004”


    www.ti.com.cn/.../TIDC-01004
    想购买一块www.ti.com.cn/.../LAUNCHXL-CC1350-4板来作为射频部分的测试,不知道可行不?

    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 1. 是的

    2. 是因為沒有踢狗才造成终端一直自动复位,試試上电之后程序的部份加上踢狗

    3. 這個可以粗略的測試,但是要精確的話還是用频谱分析仪

  • 您好!首先感谢您的回复和帮助!

           好的,谢谢您的指导!那我就先购买一块板子回来,目前是我个人在开发,射频部分能测出个大概有个基本满意的效果就行,后期批量再找专业的仪器来测量。代码部分踢狗程序我尝试去写下看,有什么问题再来请教!

    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 您好!首先感谢您的回复和帮助!
           LAUNCHXL-CC1350-4板子拿到了,大致看了下房间很多2.4G信号,暂时没法测试频谱;下午用SmartRF Studio 7测了下射频丢包率数据如下图:

    这个是商品模块的数据;

    这个是我自己画的板子的数据。

         商品模块用的小型的PCB天线,我自己的板子用的倒F  PCB天线,天线是复制过来的,巴伦匹配电路没按官方复制,自己画的。我想请教的是,以上这些数据算正常不,或者说目前的硬件以以上数据来看,可用么?发射端距接收端大约6米左右。近距离(30cm左右)测试时数据包错误率是偶尔1%。以下是接收端截图,不知设置上有没不对的,请指教,谢谢!

    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 6米的RSSI -73/-66我覺得不好

  • 您好!首先感谢您的回复和帮助!
           谢谢您的指导!那接下来,我若按照官方把巴伦匹配电路也一起复制过来这样您感觉会有改观么?或者目前的板子有方法调整接收灵敏度么?本想看下不行直接买商业模块用,结果对比了下,感觉也不是太理想。
          再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 匹配还是搭配儀器實況調整才能得到好的結果、這部份我不大幫的上忙
  • 您好!首先感谢您的回复和帮助!
            好的,我再想下别的办法吧。谢谢!
    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 您好!首先感谢您的回复和帮助!
           我今天用CC2538+CC2592作为发射端,然后用两个商业模块和自制的一起测了下,截图如下;环境:室内6m

    商业模块1:小型PCB线

    商业模块2:胶棒外置天线

    自制板:倒F天线

    这是发射端的设置

          想请教几点:

    1、对比后感觉RSSI和胶棒天线差不太多,而且这些商业模块都说经过安捷伦频谱仪调整过的,请帮看下是不我设置的有问题?

    2、LAUNCHXL-CC1352P-2是不,不可以作为2.4G测数据包呢,在SmartRF Studio 7选项里2.4G一栏里没有找到。

    3、RSSI值,数据包错误率、误码率,一般在多少是可以接受的,有没相关文档呢。

    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 1. 一般我們量測不會放室內6米,這樣變數太大了,基本上我們自己都是用儀器作conductive test
    2. 我的LAUNCHXL-CC1352P-2在SmartRF Studio 7选项里2.4G是可以找到沒有問題的
    3. 沒有相关文档,per一般我會抓在至少10以下
  • 您好!首先感谢您的回复和帮助!
           好的,我再测试一下看看,目前没有专业仪器,暂时也只能大概测试下让系统先能正常运行再说;我看了下SmartRF Studio 7的界面如下:

         估计是版本问题吧,我随后再下载一个试试。

    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 直接點下面 CC1352P打開應該就可以了
  • 您好!首先感谢您的回复和帮助!
           按您说的可以打开了,我随后拿CC1352P-2做发射端再测试下看看;另外我用LAUNCHXL-CC1350-4测试房间时我把房间里的2.4G设备全停掉还是有很多的2.4G信号,我若用个屏蔽箱把LAUNCHXL-CC1350-4和待测的板子一起放进去测可行吗?还是拿到野外更靠谱呢
            再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 你是想測什麼?不知道你這樣測是的目的是?
  • 您好!首先感谢您的回复和帮助!
    想测下自己做的板子的频谱,不知道有必要没。
    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!
  • 您好!首先感谢您的回复和帮助!
             目前遇到一个问题请您百忙中给予帮助,我之前写的报警终端代码,现在用ARM连接CC2530 ZNP模式写了协调器自动入网功能,终端入网后可以上报数据,也可以看到绑定信息,但是终端掉电后再上电,终端不能自动入网。协调器重启后可以看到有终端之前的短地址,预编译选项如下:
    SECURE=1
    TC_LINKKEY_JOIN
    NV_INIT
    NV_RESTORE
    xPOWER_SAVING
    NWK_AUTO_POLL
    xZTOOL_P1
    xMT_TASK
    xMT_APP_FUNC
    xMT_SYS_FUNC
    xMT_ZDO_FUNC
    xMT_ZDO_MGMT
    xMT_APP_CNF_FUNC
    xLCD_SUPPORTED=DEBUG
    MULTICAST_ENABLED=FALSE
    ZCL_READ
    ZCL_WRITE
    ZCL_BASIC
    ZCL_IDENTIFY
    ZCL_ON_OFF
    ZCL_SCENES
    ZCL_GROUPS
    ZCL_ZONE
    ZCL_ACE
    LEGACY_LCD_DEBUG
    xHOLD_AUTO_START

    附抓包档:(在111行看到绑定成功的信息)FireDetector1.rar

    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 終端和協調器各自用什麼版本的Z-Stack?有沒有修改什麼源碼?有沒有都使能NV_RESTORE

  • 您好!首先感谢您的回复和帮助!
    协议栈版本是Z-Stack3.0.2,环境监测的也是按这个方法入网就可以在终端掉电后自动入网,这个代码当时写完测试了下,后来没顾上再测,我回头再跟源代码对比,审下代码吧。
    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!
  • 您好!首先感谢您的回复和帮助!
    前两天发帖请教的问题,FireDetector终端设备重启后不会自动入网,现在在zclSampleFireDetector_Init( byte task_id )函数结尾处加了一句 bdb_StartCommissioning( BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING ); 已经可以在终端重启后正常入网了,这种写法没问题吧?
    我在您的博客中看到了IAS、CIE绑定流程,昨天按您的流程测试了下,接下来我想按下面的思路来修改代码不知这样可行不,符合规范不。请指导下:
    1、CIE(ZNP)协调器下发指令绑定IAS终端。
    2、IAS终端设置个定时事件在绑定和重启后自动向协调器发送3次注册请求(注册请求用以下语句)后停止发送注册请求。
    zclSS_IAS_Send_ZoneStatusEnrollRequestCmd( SAMPLEFIREDETECTOR_ENDPOINT,
    &zclSampleFireDetector_DstAddr,
    zclSampleFireDetector_ZoneType,
    22, 0, 1);
    3、协调器通过STM32记录IAS终端设备的集群号、短地址和设备类型写入存非易失存储器,当有终端信息,STM32根据集群号、短地址和设备类型判断区分报警类型。
    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 在zclSampleFireDetector_Init( byte task_id )函数结尾处加了一句 bdb_StartCommissioning是沒問題的,但是應該只需要bdb_StartCommissioning(0);
    關於IAS、CIE绑定流程,看起來你沒照博客中的流程
  • 您好!首先感谢您的回复和帮助!

            初始化函数添加的语句我会按您的指导修改。至于CIE、IAS流程是这样,我在开发板上是按您的流程测试之后,在ZNP里我不知道怎么实现zclSampleCIE_WriteIAS_CIE_Address(&afDstAddr);这个函数,不知道这个函数所发送的全部数据及格式,根据代码只分析出其中一部分数据,所以就在代码里修改了一下,这一部分跟您的流程确实是不一致,这部分若用znp串口发送数据,其格式及内容该参考哪部分文档呢。

    再次致以由衷的感谢,谢谢您的支持和帮助!谢谢!

  • 不是就是參考

    /*******************************************************************************
    * @fn      static void zclSampleCIE_WriteIAS_CIE_Address
    *
    * @brief   Write to the IAS_CIE_Addr attribute on the Zone server
    *
    * @param   none
    *
    * @return  none
    */
    
    static void zclSampleCIE_WriteIAS_CIE_Address(afAddrType_t *dstAddr)
    {
      //only one attrib to write
      uint8 numAttr = 1;
      uint8 hdrLen;
      uint8 dataLen = zclGetDataTypeLength(ZCL_DATATYPE_IEEE_ADDR);
      
      // calculate the length of the cmd
      hdrLen = sizeof( zclWriteCmd_t ) + ( numAttr * sizeof( zclWriteRec_t ) );
      zclWriteCmd_t *writeCmd = (zclWriteCmd_t *)osal_mem_alloc( hdrLen + dataLen );
      
      //Building the command and sending it
      if ( writeCmd != NULL )
      {
        writeCmd->numAttr = numAttr;
        zclWriteRec_t *attrRec = &(writeCmd->attrList[0]);
        attrRec->attrID = ATTRID_SS_IAS_CIE_ADDRESS;
        attrRec->dataType = ZCL_DATATYPE_IEEE_ADDR;
        attrRec->attrData = NLME_GetExtAddr();
        //sending the write attrib command
        zcl_SendWrite(SAMPLECIE_ENDPOINT, dstAddr,ZCL_CLUSTER_ID_SS_IAS_ZONE,
                      writeCmd,ZCL_FRAME_CLIENT_SERVER_DIR,0,1 );
        
        osal_mem_free( writeCmd );
      }
    }