Appearance
Actions Overview
Here you will be introduced to the features and functionalities that are common to all actions.
What is an Action?
An action is simply a button that allows you to send a MAVLink command, and provides feedback. There are a number of pre-defined and customisable actions available to you within the KH Control Stream Deck plugin. It is also possible to setup an action for any MAVLink command.
Action states
All actions have a common set of states that are used to provide information to the user. To explain each of these states the VTOL Takeoff action will be used as an example. "Command available" means that a command will be sent if the button is pressed.
State | Display | Command available | Description |
---|---|---|---|
No link | ![]() | ❌ | KH Control is not connected to a link, or Stream Deck plugin is not connected to KH Control |
No Data | ![]() | ✅ | KH Control is connected to a link but no heartbeats have been received from the target |
Connected | ![]() | ✅ | KH Control is connected and receiving heartbeats from the vehicle |
Waiting for ACK | ![]() | ❌ | A Command had been send, KH Control is waiting for the acknowledgment |
ACK | see acknowledgment table | ✅ | Displaying received acknowledgment |
Acknowledgment states
When in the ACK state the type of acknowledgment is displayed for a short time before returning to the underlying No link / No Data / Connected state.
State | Display | Description |
---|---|---|
ACK OK | ![]() | Acknowledgment received, result: Accepted or In progress |
ACK Fail | ![]() | Acknowledgment received, result: Denied, Unsupported, Failed, Cancelled, Command long only, Command int only, unsupported altitude frame |
Timeout | ![]() | No acknowledgment received |
Send fail | ![]() | Command could not be sent |
Configuration error | ![]() | Error with action configuration |
Conventions
All actions follow some basic conventions to try and keep behaviour as consistent and predictable as possible.
Pressing a button triggers a single command, no matter the state of the vehicle. For example Arm/Disarm could have been implemented as a toggle however this requires that KH Control knows the current state of the vehicle to know if arm or disarm command should be sent. If this state were to get out of sync for any reason the wrong command would be sent. This rule does mean that a separate action must be setup for arming and disarming. However, this removes unexpected results.
Pressing a button triggers exactly one command to be sent. There is no automatic retry. Again the goal of this to remove unexpected behaviour and give the user complete control. The button state will show if no acknowledgement has been received and the user can then decide to retry manually.
Confirmation press
Actions can be configured to require a confirmation press. This can be used on critical actions to prevent accidental triggering. Actions that require a confirmation press will display without a boarder, the first press makes the boarder appear and a second press triggers the action. If no second press is received the action resets after 2.5 seconds.
TODO: Add configured image
TIP
Require a confirmation press on critical actions, such as force disarm.
Colour palettes
Three colour palettes are provided, you can also configure custom colour.
Dark | Light | Fire & Ice |
---|---|---|
pic | pic | pic |
Custom colour
TODO: how to setup custom colours.
Custom targets
If Custom Target per Action
is selected in KH Control MAVLink settings each action will have user settable target component and system ID fields. This allows control of multiple vehicles or a vehicle and gimbal. The target system ID and component ID will also be shown on the action itself.
TODO: add image of action with custom target
TIP
Select a different colour palette for each custom target.