原创 如何使用IEEE地址发送数据

2009-4-25 08:53 3389 9 9 分类: 工程师职场


//**********************************************************************
//**以扩展(长)地址方式发送数据
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;


希望哪位高人指点迷津啊

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /3 下一条