One of the features of ArdSimX were switchable encoder modes. Sometimes they required tricky logic to set up all the required functionality. For example, a common goal was configuring a single encoder for radio, which would switch between different COM/NAV (1 and 2) modes with a press of one button, and between MHz/KHz with a press of another, built-in button. This required setting up 8 different encoder modes and two buttons that used different logic to switch the encoder's mode.
In addition to this, later versions of ArdSimX included an experimental feature with switchable output modes - for example, to output different data to a 7-segment display.
Needless to say, there can be a lot of cases where the specific functions of inputs and outputs need to be influenced by outside conditions. Variations include switching modes using buttons or encoders, switching modes or disabling outputs based on dataref value, such as insufficient power, and so on.
In SimVimCockpit Interface, the whole logic for these functions was reworked to make them all unified and allow greater control over various conditions.
Imagine a configuration file with all the input and output config lines, as it looked in ArdSimX. The main idea now is that each config line can by dynamically enabled or disabled. Unlike ArdSimX, now any line can have separate parameters indicating what mode number and what mode switch it corresponds to. A line can even have several mode switches configured to it, making things like the encoder example described earlier more easy to implement.
Such condition, for example, can be used to disable a 7-segment radio display when the power failure has occured in the simulator, along with any encoders and buttons associated with it.
All this functionality is currently at an early stage in development. We will be working out the specifics along the way.
Conditions are a new feature in SimVimCockpit Interface. They are placed in the configuration file under the [Conditions] category, and can be used to enable and disable inputs or outputs based on the value of a specified dataref. The dataref conditions can be used intermittently with mode buttons for determining the working state of a particular config line.
Any config line can have any combination of conditions the determine if this line is "Active". For example, if an output has the option "c=B6:2,C1>10", that means that this output will only work when the mode button B6 is in mode state 2, and the value of the dataref specified in Condition 1 is greater than 10.