A binding is a logical link between two devices at the application layer. Multiple bindings can be created
on a device, one for each type of data packet. In addition, a binding may have more than one destination
device ( one-to-many bindings ).
For example, in a lighting network with multiple switches and lights, each switch will control one or more
light. In that case, a binding should be created in each switch. This allows the application to send the data
packets without knowing the actual destination address.
Once a binding is created on the source device, the application can send data without specifying a
destination address (in the call to zb_SendDataRequest(), the invalid address - 0xFFFE should be used as
the destination ). This will cause the stack to look up the destination in its internal binding table based on
the command identifier of the packet.
There can be more than one destination in the binding entry. In that case, the stack will automatically send
a copy of the packet to each destination specified in the binding entry.
Also, if the NV_RESTORE compile option is enabled when building the image, the stack will save the
binding entries to non-volatile ram This is useful in the device has an accidental reset ( or if the batteries
need to be changed on the device ), the device can recover automatically without the user having to setup
the bindings again.
There are two mechanisms available to configure device bindings. If the extended address of the
destination device is known, the zb_BindDevice() can be to create a binding entry.
If the extended address is not known, a “push button” strategy may be employed. In this case, the
destination device is first put in a state where it will respond to match requests by issuing the
zb_AllowBindResponse(). Then the zb_ BindDevice() is issued on the source device with a null address.
In addition, bindings can be setup by using an external commissioning tool.
Note that bindings can only be created between “complementary” devices. That is, the binding will only
succeed if both devices have registered the same command_id in their simple descriptor structures and
one device has the command as an “output” while the other device has it as an “input”.
A binding is a logical link between two devices at the application layer. Multiple bindings can be createdon a device, one for each type of data packet. In addition, a binding may have more than one destinationdevice ( one-to-many bindings ).For example, in a lighting network with multiple switches and lights, each switch will control one or morelight. In that case, a binding should be created in each switch. This allows the application to send the datapackets without knowing the actual destination address.Once a binding is created on the source device, the application can send data without specifying adestination address (in the call to zb_SendDataRequest(), the invalid address - 0xFFFE should be used asthe destination ). This will cause the stack to look up the destination in its internal binding table based onthe command identifier of the packet.There can be more than one destination in the binding entry. In that case, the stack will automatically senda copy of the packet to each destination specified in the binding entry.Also, if the NV_RESTORE compile option is enabled when building the image, the stack will save thebinding entries to non-volatile ram This is useful in the device has an accidental reset ( or if the batteriesneed to be changed on the device ), the device can recover automatically without the user having to setupthe bindings again.There are two mechanisms available to configure device bindings. If the extended address of thedestination device is known, the zb_BindDevice() can be to create a binding entry.If the extended address is not known, a “push button” strategy may be employed. In this case, thedestination device is first put in a state where it will respond to match requests by issuing thezb_AllowBindResponse(). Then the zb_ BindDevice() is issued on the source device with a null address.In addition, bindings can be setup by using an external commissioning tool.Note that bindings can only be created between “complementary” devices. That is, the binding will onlysucceed if both devices have registered the same command_id in their simple descriptor structures andone device has the command as an “output” while the other device has it as an “input”.
การแปล กรุณารอสักครู่..