zigbee协议无线通信的实现(2)

2019-03-23 14:54

——

ZDP_MatchDescReq(&z_dst_addr,NWK_BROADCAST_SHORTADDR,SampleApp_epDesc.simpleDesc-> AppProfId,1,(cId_t *)clusterlist,1,(cId_t * )clusterlist,1) ZDO 层 请求设备匹配

——ZDP_IEEEAddrReq(msg_pipeirsp->nwkAddr,ZDP_ADDR_REQTYPE_SINGLE,0,0) ZDO层 根据网络地址物理地址请求

—— neighborEntry_t neighborTable1[MAX_NEIGHBOR_ENTRIES] 邻居表定义,以或的邻居节点 的物理地址、网络地址、节点信息等

——aps_AddGroup( SAMPLEAPP_ENDPOINT, &SampleApp_Group) APS层 把节点加入 SampleApp_Group所标识的组

——aps_FindGroup() APS层 在组表中为一个组ID标识找到一个组 ——aps_RemveGroup() APS层 从组表中删除一个组

——void danbofasong(uint16 dst_addr,int len, uint8 * buffer1) {

afAddrType_t dst1;

dst1.addrMode=afAddr16Bit;

dst1.endPoint = SAMPLEAPP_ENDPOINT; dst1.addr.shortAddr=dst_addr;

if ( AF_DataRequest( &dst1, &SampleApp_epDesc, danbo_id, len, buffer1,

&SampleApp_TransID, AF_DISCV_ROUTE,

AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) { }

//单播发送函数,以uint16 dst_addr 为目的地址 点对点发送 ——void zubofasong( afAddrType_t * xzubodizhi ) {

uint8 buffer[3];

buffer[0] =(uint8)(SampleAppFlashCounter++); buffer[1] = LO_UINT16( 1000 ); buffer[2] = HI_UINT16( 1000 );

if ( AF_DataRequest( xzubodizhi, &SampleApp_epDesc, zubo_id, 3,

buffer,

&SampleApp_TransID,

AF_DISCV_ROUTE,

AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) { } else { }

// 组播发送函数,在一个组里广播数据 ——void guangbofasong(uint16 addr) {

uint8 buffer[2];

buffer[0] = LO_UINT16( addr ); buffer[1] = HI_UINT16( addr );

if ( AF_DataRequest( &SampleApp_Periodic_DstAddr, &SampleApp_epDesc, guangbo_id, 2,

buffer,

&SampleApp_TransID, AF_DISCV_ROUTE,

AF_DEFAULT_RADIUS ) == afStatus_SUCCESS ) { } else { } }

//广播发送,整个网络进行广播

——uint16 get_linjudizhi(int index) {

neighborEntry_t linshi1;

linshi1=neighborTable[index];

if ( linshi1.neighborAddress==NLME_GetShortAddr()) linshi1.neighborAddress=-1;

NLME_GetRequest(nwkNeighborTable,index, &linshi1); return linshi1.neighborAddress; }

//得到邻居节点的信息

——void shiyan_danbofasonglinju(void) {

int i;

uint16 dizhi1;

for(i=0;i

dizhi1=get_linjudizhi(i);

if (dizhi1>0&&dizhi1!=NLME_GetShortAddr()) {

danbofasong(dizhi1,1,&m); m++; }

}

////////////////////////////////////////////////// }

//向邻居节点单播数据

——void shiyan_dizhiqingqiu(void) {

uint16 dizhi2,dizhi3; byte p1[8]; byte *pm ; p1[0]=0xAC; p1[1]=0x00; p1[2]=0x12; p1[3]=0x13; p1[4]=0x14; p1[5]=0x15; p1[6]=0x16; p1[7]=0x17;

pm=NLME_GetExtAddr();

APSME_LookupNwkAddr(p1,&dizhi2); APSME_LookupNwkAddr(pm,&dizhi3); Printn(7,50,dizhi2,1,6); Printn(6,50,dizhi3,1,6);

if (ZDP_SUCCESS== ZDP_NwkAddrReq(p1,ZDP_ADDR_REQTYPE_SINGLE,0,0)) Print6(5,50,\}

以上是一部分实验函数示例,仅此说明网络通信的工作流程和一些功能的实现方法,具体的应用设计有待于后序开发。


zigbee协议无线通信的实现(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015年桥梁施工工作总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: