//**********************************************************************
//**以扩展(长)地址方式发送数据
buf ::发送的数据
//addr::目的地址
//Leng::数据长度
//********************************************************************
/*
uint8 SendData(uint8 *buf, uint16 *addr, uint8 Leng)
{
afAddrType_t SendDataAddr;
SendDataAddr.addrMode = (afAddrMode_t)Addr64Bit; //长地址发送
SendDataAddr.endPoint = SAMPLEAPP_ENDPOINT;
SendDataAddr.addr.shortAddr = addr;
if ( AF_DataRequest( &SendDataAddr, //发送的地址和模式
&SampleApp_epDesc, //终端(比如操作系统中任务ID等)
2,//发送串ID
Leng,
buf,
&SampleApp_TransID, //信息ID(操作系统参数)
AF_DISCV_ROUTE,
// AF_ACK_REQUEST,
AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )
{
return 1;
}
else
{
return 0;// Error occurred in request to send.
}
}
*/
这是无线龙提供的一个例程里的一个使用IEEE地址发送的函数。IEEE地址是64位的,但是在程序里还是用SendDataAddr.addr.shortAddr = addr;这句话。好像这样写不对吧?编译后也不行的。况且从下面的结构定义看也是不对的吗。
typedef struct
{
union
{
uint16 shortAddr;
} addr;
afAddrMode_t addrMode;
byte endPoint;
} afAddrType_t;
希望哪位高人指点迷津啊
文章评论(0条评论)
登录后参与讨论