打印
[Atmel]

每天跟我读点资料:轻型网络开发指南(20)

[复制链接]
558|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
5.4 接收数据
如果应用程序已注册了一个数据指示回调,如5.2.9节的描述,它可以接收数据,当一个帧被接收,通过堆栈处理,通有一个注册的回调函数给应用程序指示。这个功能有以下原型“bool appDataInd(NWK_DataInd_t *ind)”.NWK_DataLnd_t的字段如下表描述。回调函数必须返回布尔值告诉堆栈是否送射确认帧。此功能允许应用程序数据流控制。
5_4 网络数据指示结构字段
srcAddr:   网络源驱动的网络地址
dstEndpoint: 目地端点数(本地)
srcEndpoint: 源端点数(远程)
Options: 数扰指示选择,它可以任何常量如表5_5所示的以比特方式或提作。
Data:  指向装载数据
Lqi: 接收帧的LQI
Rssi:接收帧的Rssi
数据指示选择
NWK_IND_OPT_ACK_REQUESTED: 应答被请求
NWK_IND_OPT_SECURED:帧被加密
NWK_IND_OpT_BROADCAST:帧被发射到一个广播地址(0xffff)
NWK_IND_OPT_LOCAL: 帧被接收从一个直接访问节点
NWK_IND_OPT_BROADCAST_PAN_ID:帧被发送到一个广播PAN IDoxffff
NWK_IND_OPT_LINK_LOCAL:帧被发射带一个设置为1的本地字段
NWK_IND_OPT_MULTICAST:帧被发舑 到一个组地址
应用程序可以在应答帧设置1字节数据被发送。这个是用NWK_SetAckControl()函数来完成的。这个字节可以用来传递给发送端的附加信息,例如上位端可以告诉一个休眠的设备,不休眠一段时间,并等待额外的数据。
接收数据的例子:
static bool appDataInd(NWK_DataInd_t *ind)
{
if (!appReadyToReceive)
return false;
// process ind->size bytes of the data pointed by ind->data
NWK_SetAckControl(APP_DO_NOT_SLEEP);
return true;
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6956

帖子

67

粉丝