Command requests are particular instances of system control corresponding to a modeled GreenBus Command. They flow in the opposite direction of Measurement data: from clients back towards data sources. Command requests may represent a simple indication (a control) or may carry a value (a setpoint).
Clients (which may include applications or user interfaces) initate command requests using the GreenBus services API. The command request service encapsulates the both the process of verifying the client's access to the Command and routing the request to the front end process associated with the Command's Endpoint. From there, the front end process itself is responsible for translating the command request into a form recognized by the external, controllable, entity. Finally, a command response, indicating success or failure, is sent back to the client.
Before a command request is relayed to a front end, it is first checked against the Command access table. This table provides additional operational access control beyond the security authorization model.
Locks on Commands come in two forms:
Command blocks persist until they are removed; selects are acquired with a timeout parameter that defines how long they are active.
Individual command requests against Commands that are not selected are allowed, provided the agent has authorization and no other blocks or selects apply to that Command.