尊敬的TI工程师,你们好!
平时都是网络地址单播,所以想尝试一下IEEE地址单播,结果在配置
SampleApp_Broadcast_DstAddr.addr.extAddr = {0x00,0x12,0x4B,0x00,0x08,0xE8,0x5B,0x70};
时出现错误,Error[Pe137]: expression must be a modifiable lvalue ,意思好像说必须扩展地址必须是一个变量
那么,我有两个问题向大家请教:
①指定网络地址单播与指定IEEE地址单播有什么区别?哪个寻址的时间更短一些?
②扩展地址点播该如何初始化配置?
谢谢工程师们的解答!
Yue TANG:
网络地址2个字节和MAC地址8个字节。通常节点入网前会使用MAC地址,入网后分配了网络地址则会使用网络地址在整个网络中寻址。
你把SampleApp_Broadcast_DstAddr变量的类型贴出来
Jianmin Yang:
回复 Yue TANG:
#define Z_EXTADDR_LEN8typedef byte ZLongAddr_t[Z_EXTADDR_LEN];typedef enum {afAddrNotPresent = AddrNotPresent,afAddr16Bit= Addr16Bit,afAddr64Bit= Addr64Bit,afAddrGroup= AddrGroup,afAddrBroadcast= AddrBroadcast } afAddrMode_t;typedef struct {union{uint16shortAddr;ZLongAddr_t extAddr;} addr;afAddrMode_t addrMode;uint8 endPoint;uint16 panId;// used for the INTER_PAN feature } afAddrType_t;我的代码: afAddrType_t SampleApp_Broadcast_DstAddr;SampleApp_Broadcast_DstAddr.addrMode=afAddrMode_t)afAddr64Bit; SampleApp_Broadcast_DstAddr.endPoint=SAMPLEAPP_ENDPOINT; SampleApp_Broadcast_DstAddr.addr.extAddr = {0x00,0x12,0x4B,0x00,0x08,0xE8,0x5B,0x70};
VV:
回复 Jianmin Yang:
osal_cpyExtAddr( devAddr.addr.extAddr, ptr );
用上面的而方法拷贝下地址