This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs. |
Perform control operations on an action object in a HAM
#include <ha/ham.h> int ham_action_control( ham_action_t *ahdl, int command, unsigned flags);
libham
The ham_action_control() function can be used to control the state of an action object in a HAM. This function is designed to be extensible with additional commands. Currently, the following commands are defined:
HENABLE, /* enable item */ HDISABLE, /* disable item */ HADDFLAGS, /* add flag */ HREMOVEFLAGS, /* remove flag */ HSETFLAGS, /* set flag to specific */ HGETFLAGS, /* get flag */
When an action item is enabled (the default), it will NOT be executed when the condition it is associated with is triggered. Individual conditions and entities can be enabled and disabled using the corresponding control functions for conditions and entities, respectively.
The add flags, remove flags, and set flags commands can be used to modify the set of flags associated with the entity being controlled. Add flags and remove flags are used to either add to or remove from the current set of flags, the specified set of flags (as given in flags). The set flags function is called when the current set of flags is to be replaced by flags.
Any flag that is valid for the corresponding action can be used when ham_action_control() is being used to set flags, with the exception of HACTIONDONOW.
For the HENABLE and HDISABLE commands:
For the enable, disable, add flags, remove flags, and set flags functions:
For the get flags function:
In addition to the above errors, the HAM returns any error it encounters while servicing this request.
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |
ham_condition_control(), ham_entity_control()