|
|
Status and command confirmationSUMMARYOne of the problems with the X10 protocol is never knowing for sure when a device control command (on or off) is transmitted whether the intended device received and acted upon the command. For any device that responds to status requests it is possible to send a command and follow that with a request for status. If the returned status doesn't agree with the expected status the command can be sent again and followed up with another status request. This protocol: command - request status - check status - send command again - send status again ... is available in HCA and can be enabled is desired. This note describes in detail how this has been implemented in HCA, how to enable it, and some implications of its use.
For status requests, there three kinds of modules available:
For a device, on the Advanced properties page these options are available: [ ] Supports status checking When you first create a device, if you select one of the parts listed in the parts database, the first two options are enabled if supported by the device. The 3rd option is grayed out if the 2nd option is not checked. The 4th option is grayed out if the 1st option is not checked. The 4th option enables the facilities in HCA to use the status messages to ensure that a device received the command.
How these options are used These options play a role in four different HCA areas: First, when HCA starts up and loads a design file, every device that is marked as "supports status" is queried as to its current status. Those with "Enable automatic status reporting" checked are sent the command to turn it on. Second, whenever you do a "Get status" from the UI, in addition to sending out the status query and showing you the result, it also sends the command to enable automatic status reporting if the device supports it and the user requested it. Since these modules lose their state when unplugged this gives you a way to get the automatic status reporting turned back on. There is another way described below. Third, whenever you use the Test element in a program, if the device supports status checking. a status request is sent to the device. The program waits until the device replies or until a timeout timer expires. The Test element allows you to specify which path to take if the device is ON, OFF, or the timeout happened. Fourth, when an ON or OFF command is sent to a device marked as "Confirm receipt
of command sent" the ON or OFF command is sent and then what happens next depends
upon if the device supports automatic status reporting. If the device does support automatic status reporting:
If it doesn't support automatic status reporting:
A few more notes:
|