TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2530(Zstack)動態更改PAN ID

您好,

        目前已將End-Device  和  coordinator  f8wConfig.cfg中變更為以下:

       -DZDAPP_CONFIG_PAN_ID=0xFFF0

       後續想使用方式動態更改每個End-Device的PAN ID(例如: 0x0002 )寫入NV去做分群網路管理,

  1. 有參考以下E2E連結,經測試後重開End-device依然可以與coordinator(PAN   ID :0xFFF0)連上線,更改無效

      https://e2echina.ti.com/question_answer/wireless_connectivity/zigbee/f/104/t/135315

  2. 後來參考以下這篇文章,加入定時器5秒後系統重啟zb_SystemReset(); ,系統重啟後,依然可以與coordinator(PAN   ID :0xFFF0)連上線,更改無效

      https://www.twblogs.net/a/5db33af2bd9eee310da03259

     使用以下程式碼: 

     uint16 mypanid = 0x1122;

      _NIB.nwkPanId = mypanid;

      NLME_UpdateNV(0x01);

      zgConfigPANID = mypanid;

      osal_nv_write(ZCD_NV_PANID, 0, osal_nv_item_len( ZCD_NV_PANID ), &zgConfigPANID);

      //要用定時器延時一段時間後再重啓,否則 osal_nv_write 會來不及執行

      osal_start_timerEx( SampleApp_TaskID,

                              SAMPLEAPP_RESET_EVT,

                              SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT ); 
  if ( events & SAMPLEAPP_RESET_EVT){
     zb_SystemReset();       return (events ^ SAMPLEAPP_RESET_EVT);
  }

3. 後來看到以下文章,文中說使用osal_nv_write();之前需要使用 osal_nv_item_init( uint16 id, uint16 len, void *buf ); ,我在使用第二點的程式碼前加了一行osal_nv_item_init(); ,以下為程式碼,經測試後系統重啟依然無法變更PAD ID

  https://www.cnblogs.com/killer-xc/p/5312031.html   

osal_nv_item_init(ZCD_NV_PANID,osal_nv_item_len( ZCD_NV_PANID ),NULL);

 uint16 mypanid = 0x1122;

      _NIB.nwkPanId = mypanid;

      NLME_UpdateNV(0x01);

      zgConfigPANID = mypanid;

      osal_nv_write(ZCD_NV_PANID, 0, osal_nv_item_len( ZCD_NV_PANID ), &zgConfigPANID);

      //要用定時器延時一段時間後再重啓,否則 osal_nv_write 會來不及執行

      osal_start_timerEx( SampleApp_TaskID,

                              SAMPLEAPP_RESET_EVT,

                              SAMPLEAPP_SEND_PERIODIC_MSG_TIMEOUT ); 
  if ( events & SAMPLEAPP_RESET_EVT){
     zb_SystemReset();       return (events ^ SAMPLEAPP_RESET_EVT);
  }

想請教一下,是否我寫的程式碼有問題,或者有其他建議的方法呢? _NIB.nwkPanId 與 -DZDAPP_CONFIG_PAN_ID差異性是?  感謝您

Viki Shi:

动态修改PANID的方法,论坛已有不少相关讨论,请参考:
e2echina.ti.com/.../104369
e2echina.ti.com/.../579895blog.csdn.net/.../70242017

user5851352:

回复 Viki Shi:

您好,參考您的第一個連結後,再加入NV_RESTORE = TRUE,連網End-Device 已可以更改Pan ID,更改完後,我再將 coordinator 的f8wConfig中的-DZDAPP_CONFIG_PAN_ID,變更至End-Device一樣的Pan ID,不過卻連接不上,請教您是否有建議的debug方向? 感謝您

赞(0)
未经允许不得转载:TI中文支持网 » CC2530(Zstack)動態更改PAN ID
分享到: 更多 (0)

© 2025 TI中文支持网   网站地图 鲁ICP备2022002796号-1