ZHA 的SampleLight & SampleSwitch 搭配的问题
时间:10-02
整理:3721RD
点击:
我将SampleSwitch 制作成ZC, SampleLight 制作成Zed.
可以正确的在SampleSwitch 上控制SampleLight 的LED 灯.
我发现它是调用zclGeneral_SendOnOff_CmdToggle() 来??送出Packet.
请问: zclGeneral_SendOnOff_CmdToggle() 的"destination address" 结构内容都是0, 那它是如何指定Destination 的Address 呢?
谢谢.
address mode 是設定成 AddrNotPresent
所以是使用 binding table 的值來送出 packet
#ifdef ZCL_ON_OFF
// Set destination address to indirect
zclSampleSw_DstAddr.addrMode = (afAddrMode_t)AddrNotPresent;
zclSampleSw_DstAddr.endPoint = 0;
zclSampleSw_DstAddr.addr.shortAddr = 0;
#endif
感謝你的回答,
可以再請問一下, Packet 外送的 Binding table 是存放在那一個 Structure 呢?
實際將 Packet 送出的表置在那裡呢?
Thank you
你可以看一下
BindingTable.h
BindingTable.c
typedef struct
{
// No src address since the src is always the local device
uint8 srcEP;
uint8 dstGroupMode; // Destination address type; 0 - Normal address index, 1 - Group address
uint16 dstIdx; // This field is used in both modes (group and non-group) to save NV and RAM space
// dstGroupMode = 0 - Address Manager index
// dstGroupMode = 1 - Group Address
uint8 dstEP;
uint8 numClusterIds;
uint16 clusterIdList[MAX_BINDING_CLUSTER_IDS];
// Don't use MAX_BINDING_CLUSTERS_ID when
// using the clusterIdList field. Use
// gMAX_BINDING_CLUSTER_IDS
} BindingEntry_t;
謝謝.
我先研究一下.
希望我搞的出來.
不行的話, 可能又要麻煩你指點了.
