From b9a59cb178a85a321d65bf3808fc619157394de5 Mon Sep 17 00:00:00 2001 From: Max Paperno Date: Tue, 7 Nov 2023 15:20:04 -0500 Subject: [PATCH] Update CHANGELOG, README and generated files for v1.5.0. --- CHANGELOG.md | 42 ++++ DOCUMENTATION.md | 79 +++++--- MSFSTouchPortalPlugin/entry.tp | 339 ++++++++++++++++++--------------- README.md | 30 +-- 4 files changed, 296 insertions(+), 194 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aa8e94..78e9b1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,47 @@ # MSFS/FSX Touch Portal Plugin Change Log +## 1.5.0.0 (Nov-7-2022) +Version number: `1050000` + +### Additions +* Added _experimental_ ability to set and read simulator "Input Events" values, which is a new feature in MSFS SU13. This provides access to aircraft-specific controls which may not be available otherwise. + These events can be seen in MSFS "developer mode" using the "Behaviors" tool window. + They are also referred-to as "B" type variables, and custom variable requests can be set up for them like for other variable types. + * **IMPORTANT NOTES** + * **The SU13 implementation of this is BUGGY!!** + - First off, it **doesn't work at all unless developer mode is enabled in MSFS.** + - **The simulator will crash** if there are any Input Event values being requested/read while switching airplane models. So either don't use that feature for now or make sure to manually + remove any requested 'B' type variables before changing models (including in he main menu/World Map). See new feature below for removing all requests of particular variable type. + * Both issues are supposedly fixed in SU14 (currently in beta), but I have not tested it personally. + * Only the currently loaded model's Input Events exist in the simulator at any given time. + Plugin errors are logged when trying to set or request an input event ('B' var) value which doesn't exist in the current model. + * There may be other changes in SU14 which will modify or break how the whole system works... the current system is rather wonky. So, no guarantees (as usual). + * Added "Set a Selected Airplane Input Event Value" action with a list of the current model's Input Events. + * Added 'B' variable type choice to "Set a Named Variable" and "Request a Named Variable" actions. + * Added ""Update Airplane Input Events List" and "Re-Submit Input Event Value Requests" choices in the "Connect & Update" action. +* Added ability in the "Clear Variable Definitions" action to remove variable requests by the file they were loaded from and by the type of variable. + +### Changes +* Setting ('L') type variables with a specific Unit type is now (again) handled by WASimModule (when available) for greater efficiency. + * 'L' vars are created on the simulator if they don't already exist, using the specified Unit type (if any), which mimics SimConnect behavior. + * The "Create Local Variable" option has been removed from the "Set a Named Variable" action. +* For Touch Portal v4: + * The plugin will now show up in the "Games" category instead of "Misc." + * Descriptions of each setting are now available in TP's "Plug-in Settings" dialog by hovering over the question mark icons. +* Updated to use .NET 7 runtime environment (.NET 6 for FSX version) and dependencies (up from .NET 5). All required components are included in the distribution as before. + +### Fixes +* Fixed "Plug-in performance issue detected" Touch Portal v4 warning message. ([#63](https://github.com/mpaperno/MSFSTouchPortalPlugin/issues/63)) +* Fixed that very long lists (thousands) of currently loaded Airplane Local variables were sometimes incomplete in the corresponding "Set" and "Request" actions. +* Fixed a possible plugin crash when list of Local variables was being updated multiple times in quick succession. Also prevents the list from being updated unnecessarily. +* Fixed possible simulator hang when exiting to desktop while plugin is still connected and using WASimModule (sim had to be terminated from task manager). This seems to have been new behavior since SU13. + +### Related +* The user-interface part of my WASimCommander project, [WASimUI](https://github.com/mpaperno/WASimCommander/tree/next#desktop-gui), now supports importing and exporting custom variable requests in the plugin's format. + That includes a new interface for editing plugin-specific information like category, state ID, name, default value, and formatting. + It can be downloaded at that project's [Releases](https://github.com/mpaperno/WASimCommander/releases/tag/1.2.0.0) page. + +--- ## 1.4.3.3 (Sept-3-2023) Version number: `1040303` diff --git a/DOCUMENTATION.md b/DOCUMENTATION.md index 29636fd..ceb15aa 100644 --- a/DOCUMENTATION.md +++ b/DOCUMENTATION.md @@ -4,7 +4,7 @@ This plugin provides a two-way interface between Touch Portal and Flight Simulat For further documentation, please see https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki -This documentation generated for plugin v1.4.3.3 +This documentation generated for plugin v1.5.0.0 --- @@ -49,7 +49,7 @@ This documentation generated for plugin v1.4.3.3 | --- | --- | --- | --- | | boolean (on/off) | 0 | 0 | 1 | -Set to 1 to automatically attempt connection to flight simulator upon Touch Portal startup. Set to 0 to only connect manually via the Action *MSFS - Plugin -> Connect & Update*. +Set to 1 to automatically attempt connection to flight simulator upon Touch Portal startup. Set to 0 to only connect manually via the Action "MSFS - Plugin -> Connect & Update". ### Sim Variable State Config File(s) (blank = Default) @@ -59,21 +59,23 @@ Set to 1 to automatically attempt connection to flight simulator upon Touch Port Here you can specify one or more custom configuration files which define SimConnect variables to request as Touch Portal States. This plugin comes with an extensive default set of states, however since the possibilities between which variables are requested, which units they are displayed in,and how they are formatted are almost endless. This option provides a way to customize the output as desired. -Enter a file name here, with or w/out the suffix (`.ini` is assumed). Separate multiple files with commas (and optional space). To include the default set of variables/states, use the name `Default` as one of the file names (in any position of the list). +Enter a file name here, with or w/out the suffix (".ini" is assumed). Separate multiple files with commas (and optional space). To include the default set of variables/states, use the name `Default` as one of the file names (in any position of the list). Files are loaded in the order in which they appear in the list, and in case of conflicting state IDs, the last one found will be used. The custom file(s) are expected to be in the folder specified in the "User Config Files Path" setting (see below). +See [Using Custom States and Simulator Variables](https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki/Using-Custom-States-and-Simulator-Variables) for more details. + ### SimConnect.cfg Index (0 for MSFS, 1 for FSX, or custom) | Type | Default Value | Min. Value | Max. Value | | --- | --- | --- | --- | | number | 0 | 0 | 20 | -A __SimConnect.cfg__ file can contain a number of connection configurations, identified in sections with the `[SimConnect.N]` title. A default __SimConnect.cfg__ is included with this plugin (in the installation folder). You may also use a custom configuration file stored in the "User Config Files Path" folder (see below). +A "SimConnect.cfg" file can contain a number of connection configurations, identified in sections with the `[SimConnect.N]` title. A default "SimConnect.cfg" is included with this plugin (in the installation folder). You may also use a custom configuration file stored in the "User Config Files Path" folder (see below). -The index number can be specified in this setting. This is useful for +The index number can be specified in this setting. This is useful for: 1. compatibility with FSX, and/or 2. custom configurations over network connections (running Touch Portal on a different computer than the sim). @@ -89,8 +91,8 @@ For more information on using Touch Portal remotely see [Multiple Touch Portal D | --- | --- | --- | | text | | 255 | -The system path where plugin settings are stored, including custom user State configuration files for sate definitions & _SimConnect.cfg_ . - Keep it blank for default, which is `C:\Users\\AppData\Roaming\MSFSTouchPortalPlugin`. +The system path where plugin settings are stored, including custom user State configuration files for sate definitions & the "SimConnect.cfg" configuration file. + Keep it blank for default, which is "C:\Users\\AppData\Roaming\MSFSTouchPortalPlugin". Note that using this plugin's installation folder for custom data storage is not recommended, since anything in there will likely get overwritten during a plugin update/re-install. @@ -100,7 +102,9 @@ Note that using this plugin's installation folder for custom data storage is not | --- | --- | --- | --- | | boolean (on/off) | 1 | 0 | 1 | -Touch Portal cannot perform math or numeric comparison operations on decimal numbers formatted with comma decimal separator, even in locations where this is the norm. Set this setting to 1/true toalways format numbers in "neutral" format with period decimal separators. **NOTE** that this affects **input** number formatting as well (the plugin will expect all numbers with period decimal separators regardless of your location). +Touch Portal cannot perform math or numeric comparison operations on decimal numbers formatted with comma decimal separator, even in locations where this is the norm. Set this setting to 1 (one) to always format numbers in "neutral" format with period decimal separators. + +**NOTE** that this affects **input** number formatting as well (the plugin will expect all numbers with period decimal separators regardless of your location). ### Update HubHop Data on Startup (0/1) @@ -108,7 +112,8 @@ Touch Portal cannot perform math or numeric comparison operations on decimal num | --- | --- | --- | --- | | boolean (on/off) | 0 | 0 | 1 | -Set to 1 to automatically load latest HubHop data when plugin starts. Set to 0 to disable. Updates can always be triggered manually via the Action *MSFS - Plugin -> Connect & Update*. **Updates require a working Internet connection!** +Set to 1 (one) to automatically load latest HubHop data when plugin starts. Set to 0 (zero) to disable. Updates can always be triggered manually via the Action "MSFS - Plugin -> Connect & Update". +**Updates require a working Internet connection!** ### HubHop Data Update Timeout (seconds) @@ -124,7 +129,7 @@ Maximum number of seconds to wait for a HubHop data update check or download via | --- | --- | --- | --- | | boolean (on/off) | 1 | 0 | 1 | -Set to `1` to have all Local ('L') simulator variables sorted in alphabetical order within selection lists. Setting to `0` will keep them in the original order they're loaded in on the simulator (by ascending ID). +Set to 1 (one) to have all Local ('L') simulator variables sorted in alphabetical order within selection lists. Setting to 0 (zero) will keep them in the original order they're loaded in on the simulator (by ascending ID). @@ -140,7 +145,7 @@ Set to `1` to have all Local ('L') simulator variables sorted in alphabetical or - + + - + - -
NameDescriptionFormatData
index.   [type]     choices/default (in bold)
On
Hold
Connect & UpdateControl connection to the Simulator, or perform various data update tasks.Plugin Action: {0}
    -
  1. [choice]   Toggle Simulator Connection, Connect to Simulator, Disconnect from Simulator, Reload State Files, Re-Send All State Values, Re-Send All Connector Feedback Values, Update Airplane Local Vars List, Re-Submit Airplane Local Var Requests, Update HubHop Data
  2. +
  3. [choice]   Toggle Simulator Connection, Connect to Simulator, Disconnect from Simulator, Reload State Files, Re-Send All State Values, Re-Send All Connector Feedback Values, Update Airplane Local Vars List, Update Airplane Input Events List, Re-Submit Input Event Value Requests, Update HubHop Data
Action Repeat IntervalHeld Action Repeat Rate (ms)Repeat Interval: {0} to/by: {1} ms
    @@ -206,17 +211,20 @@ The Unit type is usually "number" and will be ignored except in a few specific i
  1. [choice]   number
Set a Named VariableSet a Named Variable. Sets a value on any named variable of various types. ** All but SimVar and Local types require WASimModule ** -Local (L) variables can also be created. SimVar (A) and GPS (C) types require a Unit. For indexed SimVars, include the index in the name after a : (colon), eg. "VARIABLE NAME:1".Variable +
Set a Selected Airplane Input Event ValueSets a value on an Input Event from currently loaded aircraft. These are sometimes also referred to as 'B' type variables and are always model-specific. +The value meaning and type (numeric/string) depends entirely on the specific event. A list of Input Events can be found in the MSFS Dev Mode 'Behaviors' window.Set Input Event: {0} To Value: {1}
    +
  1. [choice]   [plugin not connected]
  2. +
  3. [text]   0   <min: -340282346638528859811704183484516925440> <max: 340282346638528859811704183484516925440>
  4. +
Set a Named VariableSet a Named Variable. Sets a value on any named variable of various types. ** Using 'C', 'H', 'K', and 'Z' types require WASimModule. ** +'L' type variables can also be created. 'A' and 'C' types require a Unit, for 'B' and 'L' it is optional (default is 'number'). For SimVars requiring an index, include it in the name after a : (colon), eg. "VARIABLE NAME:1".Variable Type{0} Variable -Name{1} Value{2} Unit -(A/C){3} Create - L Var: {4}
    -
  1. [choice]   A: SimVar, C: GPS, H: HTML Event, K: Key Event, L: Local, Z: Custom SimVar
  2. +Name{1} Unit {2} Value {3}
    +
  1. [choice]   A: SimVar, B: Input Event, C: GPS, H: HTML Event, K: Key Event, L: Local, Z: Custom SimVar
  2. [text]   <empty>
  3. -
  4. [text]   0   <min: -340282346638528859811704183484516925440> <max: 340282346638528859811704183484516925440>
  5. [choice]   [plugin not connected]
  6. -
  7. [choice]   N/A, No, Yes
  8. +
  9. [text]   0   <min: -340282346638528859811704183484516925440> <max: 340282346638528859811704183484516925440>
Execute Calculator CodeExecute Calculator Code. ** Requires WASimModule ** @@ -323,15 +331,27 @@ Range:{6}-{7}
  1. [text]   <empty>   <min: -340282346638528859811704183484516925440> <max: 340282346638528859811704183484516925440>
  2. [text]   <empty>   <min: -340282346638528859811704183484516925440> <max: 340282346638528859811704183484516925440>
Set a Named VariableSet a Named Variable. Sets a value on any named variable of various types. ** All but SimVar types require WASimModule ** -SimVar (A) and GPS (C) types require a Unit. For indexed SimVars, include it in the name after a : (colon), eg. "VARIABLE NAME:1".Variable +
Set a Selected Airplane Input Event ValueSets a value on an Input Event from currently loaded aircraft. These are sometimes also referred to as 'B' type variables and are always model-specific. +The value meaning and type (numeric/string) depends entirely on the specific event. A list of Input Events can be found in the MSFS Dev Mode 'Behaviors' window.Set Input Event: {0} in Value +Range:{1}-{2}| Feedback From +| State (opt):{3}{4} +Range:{5}-{6}
    +
  1. [choice]   [plugin not connected]
  2. +
  3. [text]   -16384   <min: -340282346638528859811704183484516925440.00> <max: 340282346638528859811704183484516925440.00>
  4. +
  5. [text]   16384   <min: -340282346638528859811704183484516925440.00> <max: 340282346638528859811704183484516925440.00>
  6. +
  7. [choice]   [connect plugin]
  8. +
  9. [choice]   [select a category]
  10. +
  11. [text]   <empty>   <min: -340282346638528859811704183484516925440> <max: 340282346638528859811704183484516925440>
  12. +
  13. [text]   <empty>   <min: -340282346638528859811704183484516925440> <max: 340282346638528859811704183484516925440>
  14. +
Set a Named VariableSet a Named Variable. Sets a value on any named variable of various types. ** Using 'C', 'H', 'K', and 'Z' types require WASimModule. ** +'L' type variables can also be created. 'A' and 'C' types require a Unit, for 'B' and 'L' it is optional (default is 'number'). For SimVars requiring an index, include it in the name after a : (colon), eg. "VARIABLE NAME:1".Variable Type{0} Variable -Name{1} Unit -(SimVar){2} Value +Name{1} Unit {2} Value Range:{3}-{4}| Feedback From | State (opt):{5}{6} Range:{7}-{8}
    -
  1. [choice]   A: SimVar, C: GPS, H: HTML Event, K: Key Event, L: Local, Z: Custom SimVar
  2. +
  3. [choice]   A: SimVar, B: Input Event, C: GPS, H: HTML Event, K: Key Event, L: Local, Z: Custom SimVar
  4. [text]   <empty>
  5. [choice]   [plugin not connected]
  6. [text]   -16384   <min: -340282346638528859811704183484516925440.00> <max: 340282346638528859811704183484516925440.00>
  7. @@ -431,14 +451,14 @@ Epsilon{7}
  1. [number]   0   <min: 0.00> <max: 340282346638528859811704183484516925440.00>
Request a Named VariableRequest a Named Variable. ** All but SimVar and Local types require WASimModule ** -SimVar, GPS, & Env. types require a Unit type. For indexed SimVars, include the index in the name after a : (colon), eg. "VARIABLE NAME:1".Type{0} Name{1} Unit{2} for Plugin +
Request a Named VariableRequest a Named Variable. ** Using types other than 'A', 'B', or 'L' requires WASimModule. ** +'A', 'C', & 'E' types require a Unit type, for 'B' and 'L' it is optional (default is 'number'). For SimVars requiring an index, include it in the name after a : (colon), eg. "VARIABLE NAME:1".Type{0} Name{1} Unit{2} for Plugin Category{3} Format{4} Default Value{5} Update Period{6} Update Interval{7} Delta Epsilon{8}
    -
  1. [choice]   A: SimVar, C: GPS, E: Env., L: Local, M: Mouse, R: Rsrc., T: Token, Z: Custom
  2. +
  3. [choice]   A: SimVar, B: Input Event, C: GPS, E: Env., L: Local, M: Mouse, R: Rsrc., T: Token, Z: Custom
  4. [text]   FULL VARIABLE NAME
  5. [choice]   [plugin not connected]
  6. [choice]   [plugin not connected]
  7. @@ -479,8 +499,9 @@ Epsilon{8}
  1. [choice]   [select a category]
Clear Variable DefinitionsRemoves either all or only custom-added variable state definitions.Clear {0} states
    -
  1. [choice]   Custom, All
  2. +
Clear Variable DefinitionsRemoves either all or only custom-added variable state definitions.Clear Variables: {0} Select File/Type: {1}
    +
  1. [choice]   Custom, All, Loaded From Selected File, Of Selected Type
  2. +
  3. [choice]   N/A
Load Variable Definitions From FileLoad a set of variable state definitions from a configuration file.Load definitions from file {0} (file name only for user config. folder, or full path with file name)
    diff --git a/MSFSTouchPortalPlugin/entry.tp b/MSFSTouchPortalPlugin/entry.tp index 81d58c1..b23dd39 100644 --- a/MSFSTouchPortalPlugin/entry.tp +++ b/MSFSTouchPortalPlugin/entry.tp @@ -1,13 +1,14 @@ { "sdk": 6, - "version": 1040303, + "api": 7, + "version": 1050000, "name": "MSFS Touch Portal Plugin", "id": "MSFSTouchPortalPlugin", "configuration": { "colorDark": "#212121", - "colorLight": "#0090ff" + "colorLight": "#0090ff", + "parentCategory": "games" }, - "plugin_start_cmd": "\"%TP_PLUGIN_FOLDER%MSFS-TouchPortal-Plugin/dist/MSFSTouchPortalPlugin.exe\"", "categories": [ { "id": "MSFSTouchPortalPlugin.Plugin", @@ -37,7 +38,8 @@ "Re-Send All State Values", "Re-Send All Connector Feedback Values", "Update Airplane Local Vars List", - "Re-Submit Airplane Local Var Requests", + "Update Airplane Input Events List", + "Re-Submit Input Event Value Requests", "Update HubHop Data" ] } @@ -351,6 +353,36 @@ } ] }, + { + "id": "MSFSTouchPortalPlugin.Plugin.Action.SetInputEvent", + "name": "Set a Selected Airplane Input Event Value", + "prefix": "MSFS", + "type": "communicate", + "tryInline": true, + "hasHoldFunctionality": true, + "description": "Sets a value on an Input Event from currently loaded aircraft. These are sometimes also referred to as 'B' type variables and are always model-specific.\nThe value meaning and type (numeric/string) depends entirely on the specific event. A list of Input Events can be found in the MSFS Dev Mode 'Behaviors' window.", + "format": "Set Input Event: {$MSFSTouchPortalPlugin.Plugin.Action.SetInputEvent.Data.VarName$} To Value: {$MSFSTouchPortalPlugin.Plugin.Action.SetInputEvent.Data.Value$}", + "data": [ + { + "id": "MSFSTouchPortalPlugin.Plugin.Action.SetInputEvent.Data.VarName", + "type": "choice", + "label": "Input Event Name", + "default": "", + "valueChoices": [ + "[plugin not connected]" + ] + }, + { + "id": "MSFSTouchPortalPlugin.Plugin.Action.SetInputEvent.Data.Value", + "type": "text", + "label": "Value", + "default": "0", + "minValue": -3.4028234663852886E+38, + "maxValue": 3.4028234663852886E+38, + "allowDecimals": false + } + ] + }, { "id": "MSFSTouchPortalPlugin.Plugin.Action.SetVariable", "name": "Set a Named Variable", @@ -358,8 +390,8 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "Set a Named Variable.\tSets a value on any named variable of various types.\t\t\t\t\t** All but SimVar and Local types require WASimModule **\nLocal (L) variables can also be created. SimVar (A) and GPS (C) types require a Unit. For indexed SimVars, include the index in the name after a : (colon), eg. \"VARIABLE NAME:1\".", - "format": "Variable\nType{$MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.VarType$} Variable\nName{$MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.VarName$} Value{$MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.Value$} Unit\n(A/C){$MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.Unit$} Create\n L Var: {$MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.Create$}", + "description": "Set a Named Variable.\tSets a value on any named variable of various types.\t\t\t\t\t** Using 'C', 'H', 'K', and 'Z' types require WASimModule. **\n'L' type variables can also be created. 'A' and 'C' types require a Unit, for 'B' and 'L' it is optional (default is 'number'). For SimVars requiring an index, include it in the name after a : (colon), eg. \"VARIABLE NAME:1\".", + "format": "Variable\nType{$MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.VarType$} Variable\nName{$MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.VarName$} Unit {$MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.Unit$} Value {$MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.Value$} ", "data": [ { "id": "MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.VarType", @@ -368,6 +400,7 @@ "default": "A: SimVar", "valueChoices": [ "A: SimVar", + "B: Input Event", "C: GPS", "H: HTML Event", "K: Key Event", @@ -381,15 +414,6 @@ "label": "Variable Name", "default": "" }, - { - "id": "MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.Value", - "type": "text", - "label": "Value", - "default": "0", - "minValue": -3.4028234663852886E+38, - "maxValue": 3.4028234663852886E+38, - "allowDecimals": false - }, { "id": "MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.Unit", "type": "choice", @@ -400,15 +424,13 @@ ] }, { - "id": "MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.Create", - "type": "choice", - "label": "Create Local Var", - "default": "N/A", - "valueChoices": [ - "N/A", - "No", - "Yes" - ] + "id": "MSFSTouchPortalPlugin.Plugin.Action.SetVariable.Data.Value", + "type": "text", + "label": "Value", + "default": "0", + "minValue": -3.4028234663852886E+38, + "maxValue": 3.4028234663852886E+38, + "allowDecimals": false } ] }, @@ -920,11 +942,80 @@ } ] }, + { + "id": "MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent", + "name": "Set a Selected Airplane Input Event Value", + "description": "Sets a value on an Input Event from currently loaded aircraft. These are sometimes also referred to as 'B' type variables and are always model-specific.\nThe value meaning and type (numeric/string) depends entirely on the specific event. A list of Input Events can be found in the MSFS Dev Mode 'Behaviors' window.", + "format": "Set Input Event: {$MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.VarName$} in Value\nRange:{$MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.FbCatId$}{$MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.FbRangeMax$}", + "data": [ + { + "id": "MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.VarName", + "type": "choice", + "label": "Input Event Name", + "default": "", + "valueChoices": [ + "[plugin not connected]" + ] + }, + { + "id": "MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.RangeMin", + "type": "text", + "label": "Value Range Minimum", + "default": "-16384", + "minValue": -3.4028234663852886E+38, + "maxValue": 3.4028234663852886E+38 + }, + { + "id": "MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.RangeMax", + "type": "text", + "label": "Value Range Maximum", + "default": "16384", + "minValue": -3.4028234663852886E+38, + "maxValue": 3.4028234663852886E+38 + }, + { + "id": "MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.FbCatId", + "type": "choice", + "label": "Feedback Category", + "default": "", + "valueChoices": [ + "[connect plugin]" + ] + }, + { + "id": "MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.FbVarName", + "type": "choice", + "label": "Feedback Variable", + "default": "", + "valueChoices": [ + "[select a category]" + ] + }, + { + "id": "MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.FbRangeMin", + "type": "text", + "label": "Feedback Range Minimum", + "default": "", + "minValue": -3.4028234663852886E+38, + "maxValue": 3.4028234663852886E+38, + "allowDecimals": false + }, + { + "id": "MSFSTouchPortalPlugin.Plugin.Conn.SetInputEvent.Data.FbRangeMax", + "type": "text", + "label": "Feedback Range Maximum", + "default": "", + "minValue": -3.4028234663852886E+38, + "maxValue": 3.4028234663852886E+38, + "allowDecimals": false + } + ] + }, { "id": "MSFSTouchPortalPlugin.Plugin.Conn.SetVariable", "name": "Set a Named Variable", - "description": "Set a Named Variable.\tSets a value on any named variable of various types.\t\t\t\t\t** All but SimVar types require WASimModule **\nSimVar (A) and GPS (C) types require a Unit. For indexed SimVars, include it in the name after a : (colon), eg. \"VARIABLE NAME:1\".", - "format": "Variable\nType{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.VarType$} Variable\nName{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.VarName$} Unit\n(SimVar){$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.Unit$} Value\nRange:{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.FbCatId$}{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.FbRangeMax$}", + "description": "Set a Named Variable.\tSets a value on any named variable of various types.\t\t\t\t\t** Using 'C', 'H', 'K', and 'Z' types require WASimModule. **\n'L' type variables can also be created. 'A' and 'C' types require a Unit, for 'B' and 'L' it is optional (default is 'number'). For SimVars requiring an index, include it in the name after a : (colon), eg. \"VARIABLE NAME:1\".", + "format": "Variable\nType{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.VarType$} Variable\nName{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.VarName$} Unit {$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.Unit$} Value\nRange:{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.FbCatId$}{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.FbRangeMax$}", "data": [ { "id": "MSFSTouchPortalPlugin.Plugin.Conn.SetVariable.Data.VarType", @@ -933,6 +1024,7 @@ "default": "A: SimVar", "valueChoices": [ "A: SimVar", + "B: Input Event", "C: GPS", "H: HTML Event", "K: Key Event", @@ -1366,7 +1458,7 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "Request a Named Variable.\t\t\t\t\t** All but SimVar and Local types require WASimModule **\nSimVar, GPS, & Env. types require a Unit type. For indexed SimVars, include the index in the name after a : (colon), eg. \"VARIABLE NAME:1\".", + "description": "Request a Named Variable.\t\t\t\t\t** Using types other than 'A', 'B', or 'L' requires WASimModule. **\n'A', 'C', & 'E' types require a Unit type, for 'B' and 'L' it is optional (default is 'number'). For SimVars requiring an index, include it in the name after a : (colon), eg. \"VARIABLE NAME:1\".", "format": "Type{$MSFSTouchPortalPlugin.Plugin.Action.AddNamedVariable.Data.VarType$} Name{$MSFSTouchPortalPlugin.Plugin.Action.AddNamedVariable.Data.VarName$} Unit{$MSFSTouchPortalPlugin.Plugin.Action.AddNamedVariable.Data.Unit$} for Plugin\nCategory{$MSFSTouchPortalPlugin.Plugin.Action.AddNamedVariable.Data.CatId$} Format{$MSFSTouchPortalPlugin.Plugin.Action.AddNamedVariable.Data.Format$} Default\nValue{$MSFSTouchPortalPlugin.Plugin.Action.AddNamedVariable.Data.DfltVal$} Update\nPeriod{$MSFSTouchPortalPlugin.Plugin.Action.AddNamedVariable.Data.UpdPer$} Update\nInterval{$MSFSTouchPortalPlugin.Plugin.Action.AddNamedVariable.Data.UpdInt$} Delta\nEpsilon{$MSFSTouchPortalPlugin.Plugin.Action.AddNamedVariable.Data.Epsilon$}", "data": [ { @@ -1376,6 +1468,7 @@ "default": "A: SimVar", "valueChoices": [ "A: SimVar", + "B: Input Event", "C: GPS", "E: Env.", "L: Local", @@ -1606,7 +1699,7 @@ "tryInline": true, "hasHoldFunctionality": false, "description": "Removes either all or only custom-added variable state definitions.", - "format": "Clear {$MSFSTouchPortalPlugin.Plugin.Action.ClearSimVars.Data.VarsSet$} states", + "format": "Clear Variables: {$MSFSTouchPortalPlugin.Plugin.Action.ClearSimVars.Data.VarsSet$} Select File/Type: {$MSFSTouchPortalPlugin.Plugin.Action.ClearSimVars.Data.VarsSpec$}", "data": [ { "id": "MSFSTouchPortalPlugin.Plugin.Action.ClearSimVars.Data.VarsSet", @@ -1615,7 +1708,18 @@ "default": "Custom", "valueChoices": [ "Custom", - "All" + "All", + "Loaded From Selected File", + "Of Selected Type" + ] + }, + { + "id": "MSFSTouchPortalPlugin.Plugin.Action.ClearSimVars.Data.VarsSpec", + "type": "choice", + "label": "Variable File/Type", + "default": "", + "valueChoices": [ + "N/A" ] } ] @@ -1683,7 +1787,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Airspeed Hold Value - {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotAirSpeedVar.Data.0$}", "data": [ { @@ -1707,7 +1810,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Airspeed Hold Value to {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotAirSpeedSet.Data.0$} kts", "data": [ { @@ -1727,7 +1829,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Altitude Hold Value - {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotAltitudeVar.Data.0$}", "data": [ { @@ -1750,7 +1851,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Altitude Hold Value {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotAltitudeSet.Data.0$} to {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotAltitudeSet.Data.1$}", "data": [ { @@ -1780,7 +1880,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Auto Pilot {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotSwitches.Data.0$} Switch {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotSwitches.Data.1$}", "data": [ { @@ -1832,7 +1931,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Attitude Hold Pitch Value {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotAttitudeVar.Data.0$}", "data": [ { @@ -1855,7 +1953,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Attitude Hold Pitch Value to {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotAttitudeSet.Data.0$} (-16384 to +16384)", "data": [ { @@ -1876,7 +1973,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Auto Brake - {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoBrake.Data.0$}", "data": [ { @@ -1902,7 +1998,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Auto Brake Value to {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoBrakeSet.Data.0$} (1-4)", "data": [ { @@ -1923,7 +2018,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Toggle Auto Throttle - {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoThrottle.Data.0$}", "data": [ { @@ -1946,7 +2040,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Toggle Flight Director {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotFlightDirectorSwitches.Data.0$} Switch", "data": [ { @@ -1968,7 +2061,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Heading Hold Value - {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotHeadingVar.Data.0$}", "data": [ { @@ -1991,7 +2083,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Heading Hold Value - {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotHeadingSet.Data.0$}", "data": [ { @@ -2011,7 +2102,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Mach Hold Value - {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotMachVar.Data.0$}", "data": [ { @@ -2034,7 +2124,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Mach Hold Value to {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotMachSet.Data.0$}", "data": [ { @@ -2054,7 +2143,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Max Bank Angle - {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotBanking.Data.0$}", "data": [ { @@ -2076,7 +2164,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Max Bank {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotMaxBankSet.Data.0$} Value to {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotMaxBankSet.Data.1$}", "data": [ { @@ -2107,7 +2194,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "N1 Reference Value - {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotN1Ref.Data.0$}", "data": [ { @@ -2130,7 +2216,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set N1 Reference Value to {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotN1RefSet.Data.0$}", "data": [ { @@ -2150,7 +2235,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Select Nav Mode {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotNavModeSelect.Data.0$}", "data": [ { @@ -2172,7 +2256,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Vertical Speed Value - {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotVerticalSpeedVar.Data.0$}", "data": [ { @@ -2196,7 +2279,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Vertical Speed Hold {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotVerticalSpeedSet.Data.0$} to Value {$MSFSTouchPortalPlugin.AutoPilot.Action.AutoPilotVerticalSpeedSet.Data.1$}", "data": [ { @@ -2224,7 +2306,6 @@ { "id": "MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAttitudeSet", "name": "Attitude Hold Pitch Value Set", - "description": "", "format": "Set Attitude Pitch Hold\nin Value Range:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAttitudeSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAttitudeSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAttitudeSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAttitudeSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAttitudeSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAttitudeSet.Data.FbRangeMax$}", "data": [ { @@ -2286,7 +2367,6 @@ { "id": "MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMaxBankSet", "name": "Max. Bank Set", - "description": "", "format": "Set Max Bank {$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMaxBankSet.Data.0$}in Value\nRange:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMaxBankSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMaxBankSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMaxBankSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMaxBankSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMaxBankSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMaxBankSet.Data.FbRangeMax$}", "data": [ { @@ -2357,7 +2437,6 @@ { "id": "MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotHeadingSet", "name": "Heading Hold Value Set", - "description": "", "format": "Set Heading Hold\nin Value Range:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotHeadingSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotHeadingSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotHeadingSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotHeadingSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotHeadingSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotHeadingSet.Data.FbRangeMax$}", "data": [ { @@ -2417,7 +2496,6 @@ { "id": "MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotVerticalSpeedSet", "name": "Vertical Speed Value Set", - "description": "", "format": "Vertical Speed Hold {$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotVerticalSpeedSet.Data.0$}in Value\nRange:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotVerticalSpeedSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotVerticalSpeedSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotVerticalSpeedSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotVerticalSpeedSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotVerticalSpeedSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotVerticalSpeedSet.Data.FbRangeMax$}", "data": [ { @@ -2487,7 +2565,6 @@ { "id": "MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAirSpeedSet", "name": "Airspeed Hold Value Set", - "description": "", "format": "Set Airspeed Hold\nin Value Range (kts):{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAirSpeedSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAirSpeedSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAirSpeedSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAirSpeedSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAirSpeedSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotAirSpeedSet.Data.FbRangeMax$}", "data": [ { @@ -2547,7 +2624,6 @@ { "id": "MSFSTouchPortalPlugin.AutoPilot.Conn.AutoBrakeSet", "name": "Auto Brake Set", - "description": "", "format": "Set Auto Brake\nin Value Range:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoBrakeSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoBrakeSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoBrakeSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoBrakeSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoBrakeSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoBrakeSet.Data.FbRangeMax$}", "data": [ { @@ -2609,7 +2685,6 @@ { "id": "MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMachSet", "name": "Mach Hold Value Set", - "description": "", "format": "Set Mach Hold\nin Value Range:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMachSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMachSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMachSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMachSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMachSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotMachSet.Data.FbRangeMax$}", "data": [ { @@ -2669,7 +2744,6 @@ { "id": "MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotN1RefSet", "name": "N1 Reference Value Set", - "description": "", "format": "Set N1 Reference\nin Value Range:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotN1RefSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotN1RefSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotN1RefSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotN1RefSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotN1RefSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.AutoPilot.Conn.AutoPilotN1RefSet.Data.FbRangeMax$}", "data": [ { @@ -2751,7 +2825,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "ADF {$MSFSTouchPortalPlugin.Communication.Action.AdfAdjust.Data.0$} - {$MSFSTouchPortalPlugin.Communication.Action.AdfAdjust.Data.1$}", "data": [ { @@ -2799,7 +2872,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set ADF {$MSFSTouchPortalPlugin.Communication.Action.AdfSet.Data.0$} {$MSFSTouchPortalPlugin.Communication.Action.AdfSet.Data.1$} to Value {$MSFSTouchPortalPlugin.Communication.Action.AdfSet.Data.2$}", "data": [ { @@ -2843,7 +2915,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Radio {$MSFSTouchPortalPlugin.Communication.Action.Radios.Data.0$} - {$MSFSTouchPortalPlugin.Communication.Action.Radios.Data.1$}", "data": [ { @@ -2893,7 +2964,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Radio {$MSFSTouchPortalPlugin.Communication.Action.RadiosSet.Data.0$} {$MSFSTouchPortalPlugin.Communication.Action.RadiosSet.Data.1$} to Value {$MSFSTouchPortalPlugin.Communication.Action.RadiosSet.Data.2$}", "data": [ { @@ -2944,7 +3014,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Transponder Action: {$MSFSTouchPortalPlugin.Communication.Action.XpndrAdjust.Data.0$}", "data": [ { @@ -2978,7 +3047,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Set Transponder {$MSFSTouchPortalPlugin.Communication.Action.XpndrSet.Data.0$} to Value {$MSFSTouchPortalPlugin.Communication.Action.XpndrSet.Data.1$}", "data": [ { @@ -3007,7 +3075,6 @@ { "id": "MSFSTouchPortalPlugin.Communication.Conn.AdfSet", "name": "ADF Values Set", - "description": "", "format": "Set ADF {$MSFSTouchPortalPlugin.Communication.Conn.AdfSet.Data.0$} {$MSFSTouchPortalPlugin.Communication.Conn.AdfSet.Data.1$} in Value\nRange:{$MSFSTouchPortalPlugin.Communication.Conn.AdfSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Communication.Conn.AdfSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Communication.Conn.AdfSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.Communication.Conn.AdfSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Communication.Conn.AdfSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Communication.Conn.AdfSet.Data.FbRangeMax$}", "data": [ { @@ -3091,7 +3158,6 @@ { "id": "MSFSTouchPortalPlugin.Communication.Conn.RadiosSet", "name": "Radio Values Set", - "description": "", "format": "Set Radio {$MSFSTouchPortalPlugin.Communication.Conn.RadiosSet.Data.0$} {$MSFSTouchPortalPlugin.Communication.Conn.RadiosSet.Data.1$}in Value\nRange:{$MSFSTouchPortalPlugin.Communication.Conn.RadiosSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Communication.Conn.RadiosSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Communication.Conn.RadiosSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.Communication.Conn.RadiosSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Communication.Conn.RadiosSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Communication.Conn.RadiosSet.Data.FbRangeMax$}", "data": [ { @@ -3195,7 +3261,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "{$MSFSTouchPortalPlugin.Electrical.Action.AlternatorSwitch.Data.0$} Alternator at Index {$MSFSTouchPortalPlugin.Electrical.Action.AlternatorSwitch.Data.1$}", "data": [ { @@ -3227,7 +3292,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Toggle Alternator - {$MSFSTouchPortalPlugin.Electrical.Action.AlternatorIndex.Data.0$}", "data": [ { @@ -3252,7 +3316,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Avionics {$MSFSTouchPortalPlugin.Electrical.Action.AvionicsMasterSwitchAdj.Data.0$}", "data": [ { @@ -3309,7 +3372,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Landing Lights {$MSFSTouchPortalPlugin.Electrical.Action.LandingLights.Data.0$} at circuit index {$MSFSTouchPortalPlugin.Electrical.Action.LandingLights.Data.1$}", "data": [ { @@ -3346,7 +3408,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Light Potentiometer {$MSFSTouchPortalPlugin.Electrical.Action.LightPorentiometerSet.Data.0$} to {$MSFSTouchPortalPlugin.Electrical.Action.LightPorentiometerSet.Data.1$} (0 to 100)", "data": [ { @@ -3460,9 +3521,7 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", - "format": "Toggle Master Battery", - "data": [] + "format": "Toggle Master Battery" }, { "id": "MSFSTouchPortalPlugin.Electrical.Action.MasterBatteryAlternator", @@ -3471,16 +3530,13 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", - "format": "Toggle Master Battery & Alternator", - "data": [] + "format": "Toggle Master Battery & Alternator" } ], "connectors": [ { "id": "MSFSTouchPortalPlugin.Electrical.Conn.LightPorentiometerSet", "name": "Light Dimming", - "description": "", "format": "Set Light Potentiometer {$MSFSTouchPortalPlugin.Electrical.Conn.LightPorentiometerSet.Data.0$}in Value\nRange:{$MSFSTouchPortalPlugin.Electrical.Conn.LightPorentiometerSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Electrical.Conn.LightPorentiometerSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Electrical.Conn.LightPorentiometerSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.Electrical.Conn.LightPorentiometerSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Electrical.Conn.LightPorentiometerSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Electrical.Conn.LightPorentiometerSet.Data.FbRangeMax$}", "data": [ { @@ -3594,7 +3650,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Toggle Afterburner(s): {$MSFSTouchPortalPlugin.Engine.Action.EngineAfterburners.Data.0$}", "data": [ { @@ -3619,7 +3674,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Condition Lever {$MSFSTouchPortalPlugin.Engine.Action.ConditionLever.Data.0$} {$MSFSTouchPortalPlugin.Engine.Action.ConditionLever.Data.1$}", "data": [ { @@ -3657,7 +3711,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Condition Lever {$MSFSTouchPortalPlugin.Engine.Action.ConditionLeverSet.Data.0$} {$MSFSTouchPortalPlugin.Engine.Action.ConditionLeverSet.Data.1$} to {$MSFSTouchPortalPlugin.Engine.Action.ConditionLeverSet.Data.2$} (Position: 0 - 2, Axis: 0 - 100)", "data": [ { @@ -3723,7 +3776,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Set Engine {$MSFSTouchPortalPlugin.Engine.Action.EngineMasterSet.Data.0$} Master Switch to {$MSFSTouchPortalPlugin.Engine.Action.EngineMasterSet.Data.1$} (0/1)", "data": [ { @@ -3757,7 +3809,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Toggle Engine Master Switch {$MSFSTouchPortalPlugin.Engine.Action.EngineMasterTgl.Data.0$}", "data": [ { @@ -3782,7 +3833,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "All Magnetos - {$MSFSTouchPortalPlugin.Engine.Action.AllMagenetos.Data.0$}", "data": [ { @@ -3810,7 +3860,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Magneto {$MSFSTouchPortalPlugin.Engine.Action.MagnetoSpecific.Data.0$} - {$MSFSTouchPortalPlugin.Engine.Action.MagnetoSpecific.Data.1$}", "data": [ { @@ -3849,7 +3898,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Set Magneto Switch {$MSFSTouchPortalPlugin.Engine.Action.MagnetoSet.Data.0$} to position {$MSFSTouchPortalPlugin.Engine.Action.MagnetoSet.Data.1$} (0-4)", "data": [ { @@ -3883,8 +3931,7 @@ "tryInline": true, "hasHoldFunctionality": false, "description": "Toggle Master Ignition Switch", - "format": "Toggle Master Ignition Switch", - "data": [] + "format": "Toggle Master Ignition Switch" }, { "id": "MSFSTouchPortalPlugin.Engine.Action.Mixture", @@ -3893,7 +3940,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "All Mixtures - {$MSFSTouchPortalPlugin.Engine.Action.Mixture.Data.0$}", "data": [ { @@ -3920,7 +3966,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Mixture {$MSFSTouchPortalPlugin.Engine.Action.MixtureSpecific.Data.0$} - {$MSFSTouchPortalPlugin.Engine.Action.MixtureSpecific.Data.1$}", "data": [ { @@ -3958,7 +4003,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Mixture {$MSFSTouchPortalPlugin.Engine.Action.MixtureSet.Data.0$} to {$MSFSTouchPortalPlugin.Engine.Action.MixtureSet.Data.1$} (-16384 to +16384)", "data": [ { @@ -3992,7 +4036,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Toggle Primer(s): {$MSFSTouchPortalPlugin.Engine.Action.Primers.Data.0$}", "data": [ { @@ -4017,7 +4060,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Pitch {$MSFSTouchPortalPlugin.Engine.Action.PropellerPitch.Data.0$} - {$MSFSTouchPortalPlugin.Engine.Action.PropellerPitch.Data.1$}", "data": [ { @@ -4057,7 +4099,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Propeller {$MSFSTouchPortalPlugin.Engine.Action.PropellerPitchSet.Data.0$} Pitch to {$MSFSTouchPortalPlugin.Engine.Action.PropellerPitchSet.Data.1$} (0 to 16384)", "data": [ { @@ -4091,7 +4132,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Starter {$MSFSTouchPortalPlugin.Engine.Action.StartersSet.Data.0$} {$MSFSTouchPortalPlugin.Engine.Action.StartersSet.Data.1$} to {$MSFSTouchPortalPlugin.Engine.Action.StartersSet.Data.2$} (0/1)", "data": [ { @@ -4135,7 +4175,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Toggle Starter - {$MSFSTouchPortalPlugin.Engine.Action.Starters.Data.0$}", "data": [ { @@ -4161,7 +4200,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "All Throttles - {$MSFSTouchPortalPlugin.Engine.Action.Throttle.Data.0$}", "data": [ { @@ -4196,7 +4234,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Throttle {$MSFSTouchPortalPlugin.Engine.Action.ThrottleSpecific.Data.0$} - {$MSFSTouchPortalPlugin.Engine.Action.ThrottleSpecific.Data.1$}", "data": [ { @@ -4234,7 +4271,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Throttle {$MSFSTouchPortalPlugin.Engine.Action.ThrottleSet.Data.0$} to {$MSFSTouchPortalPlugin.Engine.Action.ThrottleSet.Data.1$} (-16384 to +16384)", "data": [ { @@ -4266,7 +4302,6 @@ { "id": "MSFSTouchPortalPlugin.Engine.Conn.MagnetoSet", "name": "Magnetos Switch Set", - "description": "", "format": "Set Magneto Switch{$MSFSTouchPortalPlugin.Engine.Conn.MagnetoSet.Data.0$}in Range:{$MSFSTouchPortalPlugin.Engine.Conn.MagnetoSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Engine.Conn.MagnetoSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Engine.Conn.MagnetoSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.Engine.Conn.MagnetoSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Engine.Conn.MagnetoSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Engine.Conn.MagnetoSet.Data.FbRangeMax$}", "data": [ { @@ -4340,7 +4375,6 @@ { "id": "MSFSTouchPortalPlugin.Engine.Conn.ThrottleSet", "name": "Throttle Set", - "description": "", "format": "Set Throttle{$MSFSTouchPortalPlugin.Engine.Conn.ThrottleSet.Data.0$}in Value\nRange:{$MSFSTouchPortalPlugin.Engine.Conn.ThrottleSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Engine.Conn.ThrottleSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Engine.Conn.ThrottleSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.Engine.Conn.ThrottleSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Engine.Conn.ThrottleSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Engine.Conn.ThrottleSet.Data.FbRangeMax$}", "data": [ { @@ -4415,7 +4449,6 @@ { "id": "MSFSTouchPortalPlugin.Engine.Conn.MixtureSet", "name": "Mixture Set", - "description": "", "format": "Set Mixture{$MSFSTouchPortalPlugin.Engine.Conn.MixtureSet.Data.0$}in Value\nRange:{$MSFSTouchPortalPlugin.Engine.Conn.MixtureSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Engine.Conn.MixtureSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Engine.Conn.MixtureSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.Engine.Conn.MixtureSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Engine.Conn.MixtureSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Engine.Conn.MixtureSet.Data.FbRangeMax$}", "data": [ { @@ -4490,7 +4523,6 @@ { "id": "MSFSTouchPortalPlugin.Engine.Conn.ConditionLeverSet", "name": "Condition Lever Set", - "description": "", "format": "Set Condition Lever {$MSFSTouchPortalPlugin.Engine.Conn.ConditionLeverSet.Data.0$} {$MSFSTouchPortalPlugin.Engine.Conn.ConditionLeverSet.Data.1$} in Value Range\n(Position: 0 - 2, Axis: 0 - 100):{$MSFSTouchPortalPlugin.Engine.Conn.ConditionLeverSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Engine.Conn.ConditionLeverSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Engine.Conn.ConditionLeverSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.Engine.Conn.ConditionLeverSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Engine.Conn.ConditionLeverSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Engine.Conn.ConditionLeverSet.Data.FbRangeMax$}", "data": [ { @@ -4575,7 +4607,6 @@ { "id": "MSFSTouchPortalPlugin.Engine.Conn.PropellerPitchSet", "name": "Propeller Pitch Set", - "description": "", "format": "Set Propeller{$MSFSTouchPortalPlugin.Engine.Conn.PropellerPitchSet.Data.0$}Pitch in\nValue Range:{$MSFSTouchPortalPlugin.Engine.Conn.PropellerPitchSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Engine.Conn.PropellerPitchSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Engine.Conn.PropellerPitchSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.Engine.Conn.PropellerPitchSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Engine.Conn.PropellerPitchSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Engine.Conn.PropellerPitchSet.Data.FbRangeMax$}", "data": [ { @@ -4663,7 +4694,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set {$MSFSTouchPortalPlugin.Environment.Action.AntiIceSet.Data.0$} to Value {$MSFSTouchPortalPlugin.Environment.Action.AntiIceSet.Data.1$}", "data": [ { @@ -4742,7 +4772,6 @@ { "id": "MSFSTouchPortalPlugin.Environment.Conn.AntiIceSet", "name": "Anti Ice System Set", - "description": "", "format": "Set {$MSFSTouchPortalPlugin.Environment.Conn.AntiIceSet.Data.0$}in Value\nRange:{$MSFSTouchPortalPlugin.Environment.Conn.AntiIceSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.Environment.Conn.AntiIceSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.Environment.Conn.AntiIceSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.Environment.Conn.AntiIceSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.Environment.Conn.AntiIceSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.Environment.Conn.AntiIceSet.Data.FbRangeMax$}", "data": [ { @@ -4837,7 +4866,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Toggle Failure - {$MSFSTouchPortalPlugin.Failures.Action.Failures.Data.0$}", "data": [ { @@ -4888,7 +4916,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Adjust Aileron Trim {$MSFSTouchPortalPlugin.FlightSystems.Action.AileronTrim.Data.0$}", "data": [ { @@ -4910,7 +4937,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Aileron Trim to {$MSFSTouchPortalPlugin.FlightSystems.Action.AileronTrimSet.Data.0$}% (-100 - +100)", "data": [ { @@ -4931,7 +4957,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Adjust Ailerons {$MSFSTouchPortalPlugin.FlightSystems.Action.Ailerons.Data.0$}", "data": [ { @@ -4975,7 +5000,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Brake Axis {$MSFSTouchPortalPlugin.FlightSystems.Action.BrakesSet.Data.0$} to {$MSFSTouchPortalPlugin.FlightSystems.Action.BrakesSet.Data.1$} (0 to 16384)", "data": [ { @@ -5006,7 +5030,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Activate {$MSFSTouchPortalPlugin.FlightSystems.Action.Brakes.Data.0$} Brakes", "data": [ { @@ -5029,7 +5052,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Cowl Flaps Lever {$MSFSTouchPortalPlugin.FlightSystems.Action.CowlFlapsAdjust.Data.0$} {$MSFSTouchPortalPlugin.FlightSystems.Action.CowlFlapsAdjust.Data.1$}", "data": [ { @@ -5064,7 +5086,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Cowl {$MSFSTouchPortalPlugin.FlightSystems.Action.CowlFlapsSet.Data.0$} Flaps Lever to {$MSFSTouchPortalPlugin.FlightSystems.Action.CowlFlapsSet.Data.0$} (0 to 16384)", "data": [ { @@ -5097,7 +5118,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Adjust Elevator {$MSFSTouchPortalPlugin.FlightSystems.Action.Elevator.Data.0$}", "data": [ { @@ -5140,7 +5160,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Adjust Elevator Trim {$MSFSTouchPortalPlugin.FlightSystems.Action.ElevatorTrim.Data.0$}", "data": [ { @@ -5162,7 +5181,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Elevator Trim to {$MSFSTouchPortalPlugin.FlightSystems.Action.ElevatorTrimSet.Data.0$} (-16384 to +16384)", "data": [ { @@ -5183,7 +5201,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Flaps {$MSFSTouchPortalPlugin.FlightSystems.Action.Flaps.Data.0$}", "data": [ { @@ -5232,7 +5249,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Gear {$MSFSTouchPortalPlugin.FlightSystems.Action.Gear.Data.0$}", "data": [ { @@ -5256,9 +5272,7 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", - "format": "Toggle the Parking Brake On/Off", - "data": [] + "format": "Toggle the Parking Brake On/Off" }, { "id": "MSFSTouchPortalPlugin.FlightSystems.Action.Rudder", @@ -5267,7 +5281,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Adjust Rudder {$MSFSTouchPortalPlugin.FlightSystems.Action.Rudder.Data.0$}", "data": [ { @@ -5311,7 +5324,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Adjust Rudder Trim {$MSFSTouchPortalPlugin.FlightSystems.Action.RudderTrim.Data.0$}", "data": [ { @@ -5333,7 +5345,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Rudder Trim to {$MSFSTouchPortalPlugin.FlightSystems.Action.RudderTrimSet.Data.0$}% (-100 - +100)", "data": [ { @@ -5354,7 +5365,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Spoilers {$MSFSTouchPortalPlugin.FlightSystems.Action.Spoilers.Data.0$}", "data": [ { @@ -5377,7 +5387,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Spoilers Arm {$MSFSTouchPortalPlugin.FlightSystems.Action.SpoilersArm.Data.0$}", "data": [ { @@ -5400,7 +5409,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Spoilers handle position to {$MSFSTouchPortalPlugin.FlightSystems.Action.SpoilersSet.Data.0$} (0 to 16384)", "data": [ { @@ -5543,7 +5551,6 @@ { "id": "MSFSTouchPortalPlugin.FlightSystems.Conn.BrakesSet", "name": "Brake Axis Set", - "description": "", "format": "Set Brake Axis{$MSFSTouchPortalPlugin.FlightSystems.Conn.BrakesSet.Data.0$}in Value\n Range:{$MSFSTouchPortalPlugin.FlightSystems.Conn.BrakesSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.BrakesSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.FlightSystems.Conn.BrakesSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.FlightSystems.Conn.BrakesSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.FlightSystems.Conn.BrakesSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.BrakesSet.Data.FbRangeMax$}", "data": [ { @@ -5677,7 +5684,6 @@ { "id": "MSFSTouchPortalPlugin.FlightSystems.Conn.CowlFlapsSet", "name": "Cowl Flaps Lever Set", - "description": "", "format": "Set Cowl{$MSFSTouchPortalPlugin.FlightSystems.Conn.CowlFlapsSet.Data.0$}Flaps Lever\nin Value Range:{$MSFSTouchPortalPlugin.FlightSystems.Conn.CowlFlapsSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.CowlFlapsSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.FlightSystems.Conn.CowlFlapsSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.FlightSystems.Conn.CowlFlapsSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.FlightSystems.Conn.CowlFlapsSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.CowlFlapsSet.Data.FbRangeMax$}", "data": [ { @@ -5813,7 +5819,6 @@ { "id": "MSFSTouchPortalPlugin.FlightSystems.Conn.SpoilersSet", "name": "Spoilers Set", - "description": "", "format": "Set Spoilers Handle\nPosition in Value Range:{$MSFSTouchPortalPlugin.FlightSystems.Conn.SpoilersSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.SpoilersSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.FlightSystems.Conn.SpoilersSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.FlightSystems.Conn.SpoilersSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.FlightSystems.Conn.SpoilersSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.SpoilersSet.Data.FbRangeMax$}", "data": [ { @@ -5875,7 +5880,6 @@ { "id": "MSFSTouchPortalPlugin.FlightSystems.Conn.AileronTrimSet", "name": "Aileron Trim Set", - "description": "", "format": "Set Aileron Trim\nin Value Range (%):{$MSFSTouchPortalPlugin.FlightSystems.Conn.AileronTrimSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.AileronTrimSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.FlightSystems.Conn.AileronTrimSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.FlightSystems.Conn.AileronTrimSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.FlightSystems.Conn.AileronTrimSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.AileronTrimSet.Data.FbRangeMax$}", "data": [ { @@ -5937,7 +5941,6 @@ { "id": "MSFSTouchPortalPlugin.FlightSystems.Conn.ElevatorTrimSet", "name": "Elevator Trim Set", - "description": "", "format": "Set Elevator Trim\nin Value Range:{$MSFSTouchPortalPlugin.FlightSystems.Conn.ElevatorTrimSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.ElevatorTrimSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.FlightSystems.Conn.ElevatorTrimSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.FlightSystems.Conn.ElevatorTrimSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.FlightSystems.Conn.ElevatorTrimSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.ElevatorTrimSet.Data.FbRangeMax$}", "data": [ { @@ -5999,7 +6002,6 @@ { "id": "MSFSTouchPortalPlugin.FlightSystems.Conn.RudderTrimSet", "name": "Rudder Trim Set", - "description": "", "format": "Set Rudder Trim\nin Value Range (%):{$MSFSTouchPortalPlugin.FlightSystems.Conn.RudderTrimSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.RudderTrimSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.FlightSystems.Conn.RudderTrimSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.FlightSystems.Conn.RudderTrimSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.FlightSystems.Conn.RudderTrimSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.FlightSystems.Conn.RudderTrimSet.Data.FbRangeMax$}", "data": [ { @@ -6095,7 +6097,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Cross Feed - {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.CrossFeed.Data.0$}", "data": [ { @@ -6120,7 +6121,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Set Electric Fuel Pump {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.ElectricFuelPumpSet.Data.0$} to {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.ElectricFuelPumpSet.Data.1$} (0 = Off; 1 = On; 2 = Auto)", "data": [ { @@ -6153,7 +6153,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Toggle Electric Fuel Pump: {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.ElectricFuelPump.Data.0$}", "data": [ { @@ -6178,7 +6177,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Action: {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.FuelDump.Data.0$}", "data": [ { @@ -6202,7 +6200,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Fuel Selector {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.FuelSelectors.Data.0$} - {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.FuelSelectors.Data.1$}", "data": [ { @@ -6245,7 +6242,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Set {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.FuelSystem.Data.0$} on Fuel System @ Index {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.FuelSystem.Data.1$}", "data": [ { @@ -6284,7 +6280,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Toggle Fuel Valve: {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.FuelValve.Data.0$}", "data": [ { @@ -6309,7 +6304,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": false, - "description": "", "format": "Action: {$MSFSTouchPortalPlugin.InstrumentsSystems.Fuel.Action.FuelRefillRepair.Data.0$}", "data": [ { @@ -6477,7 +6471,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "{$MSFSTouchPortalPlugin.SimSystem.Action.SimulationRate.Data.0$} Simulation Rate", "data": [ { @@ -6500,7 +6493,6 @@ "type": "communicate", "tryInline": true, "hasHoldFunctionality": true, - "description": "", "format": "Set Simulation Rate to {$MSFSTouchPortalPlugin.SimSystem.Action.SimulationRateSet.Data.0$}", "data": [ { @@ -6518,7 +6510,6 @@ { "id": "MSFSTouchPortalPlugin.SimSystem.Conn.SimulationRateSet", "name": "Simulation Rate Set", - "description": "", "format": "Set Simulation Rate\nin Value Range:{$MSFSTouchPortalPlugin.SimSystem.Conn.SimulationRateSet.Data.RangeMin$}-{$MSFSTouchPortalPlugin.SimSystem.Conn.SimulationRateSet.Data.RangeMax$}| Feedback From\n| State (opt):{$MSFSTouchPortalPlugin.SimSystem.Conn.SimulationRateSet.Data.FbCatId$}{$MSFSTouchPortalPlugin.SimSystem.Conn.SimulationRateSet.Data.FbVarName$}\nRange:{$MSFSTouchPortalPlugin.SimSystem.Conn.SimulationRateSet.Data.FbRangeMin$}-{$MSFSTouchPortalPlugin.SimSystem.Conn.SimulationRateSet.Data.FbRangeMax$}", "data": [ { @@ -6646,7 +6637,12 @@ "minValue": 0.0, "maxValue": 1.0, "isPassword": false, - "readOnly": false + "readOnly": false, + "tooltip": { + "title": "Connect To Flight Sim on Startup", + "body": "Set to 1 to automatically attempt connection to flight simulator upon Touch Portal startup. Set to 0 to only connect manually via the Action \"MSFS - Plugin -> Connect & Update\".", + "docUrl": "https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki" + } }, { "name": "Sim Variable State Config File(s) (blank = Default)", @@ -6654,7 +6650,12 @@ "default": "Default", "maxLength": 255, "isPassword": false, - "readOnly": false + "readOnly": false, + "tooltip": { + "title": "Sim Variable State Config File(s)", + "body": "Here you can specify one or more custom configuration files which define SimConnect variables to request as Touch Portal States. This plugin comes with an extensive default set of states, however since the possibilities between which variables are requested, which units they are displayed in,and how they are formatted are almost endless. This option provides a way to customize the output as desired.\n\nEnter a file name here, with or w/out the suffix (\".ini\" is assumed). Separate multiple files with commas (and optional space). To include the default set of variables/states, use the name `Default` as one of the file names (in any position of the list).\n\nFiles are loaded in the order in which they appear in the list, and in case of conflicting state IDs, the last one found will be used.\n\nThe custom file(s) are expected to be in the folder specified in the \"User Config Files Path\" setting (see below).\n\nSee [Using Custom States and Simulator Variables](https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki/Using-Custom-States-and-Simulator-Variables) for more details.", + "docUrl": "https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki/Using-Custom-States-and-Simulator-Variables" + } }, { "name": "SimConnect.cfg Index (0 for MSFS, 1 for FSX, or custom)", @@ -6663,7 +6664,12 @@ "minValue": 0.0, "maxValue": 20.0, "isPassword": false, - "readOnly": false + "readOnly": false, + "tooltip": { + "title": "SimConnect.cfg Index", + "body": "A \"SimConnect.cfg\" file can contain a number of connection configurations, identified in sections with the `[SimConnect.N]` title. A default \"SimConnect.cfg\" is included with this plugin (in the installation folder). You may also use a custom configuration file stored in the \"User Config Files Path\" folder (see below). \n\nThe index number can be specified in this setting. This is useful for: \n 1. compatibility with FSX, and/or \n 2. custom configurations over network connections (running Touch Portal on a different computer than the sim). \n\nThe default configuration index is zero, which (in the included default SimConnect.cfg) is suitable for MSFS (2020). Use the index 1 for compatibility with FSX (or perhaps other sims).\n\nSee here for more info about the file format: https://docs.flightsimulator.com/html/Programming_Tools/SimConnect/SimConnect_CFG_Definition.htm \n\nFor more information on using Touch Portal remotely see [Multiple Touch Portal Device Setup](https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki/Multiple-Touch-Portal-Device-Setup)", + "docUrl": "https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki/Multiple-Touch-Portal-Device-Setup" + } }, { "name": "User Config Files Path (blank for default)", @@ -6671,7 +6677,12 @@ "default": "", "maxLength": 255, "isPassword": false, - "readOnly": false + "readOnly": false, + "tooltip": { + "title": "User Config Files Path", + "body": "The system path where plugin settings are stored, including custom user State configuration files for sate definitions & the \"SimConnect.cfg\" configuration file.\n Keep it blank for default, which is \"C:\\Users\\\\AppData\\Roaming\\MSFSTouchPortalPlugin\".\n\nNote that using this plugin's installation folder for custom data storage is not recommended, since anything in there will likely get overwritten during a plugin update/re-install.", + "docUrl": "https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki" + } }, { "name": "Ignore Local Number Format Rules (0/1)", @@ -6680,7 +6691,12 @@ "minValue": 0.0, "maxValue": 1.0, "isPassword": false, - "readOnly": false + "readOnly": false, + "tooltip": { + "title": "Ignore Local Number Format Rules", + "body": "Touch Portal cannot perform math or numeric comparison operations on decimal numbers formatted with comma decimal separator, even in locations where this is the norm. Set this setting to 1 (one) to always format numbers in \"neutral\" format with period decimal separators.\n\n**NOTE** that this affects **input** number formatting as well (the plugin will expect all numbers with period decimal separators regardless of your location).", + "docUrl": "https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki" + } }, { "name": "Update HubHop Data on Startup (0/1)", @@ -6689,7 +6705,12 @@ "minValue": 0.0, "maxValue": 1.0, "isPassword": false, - "readOnly": false + "readOnly": false, + "tooltip": { + "title": "Update HubHop Data on Startup", + "body": "Set to 1 (one) to automatically load latest HubHop data when plugin starts. Set to 0 (zero) to disable. Updates can always be triggered manually via the Action \"MSFS - Plugin -> Connect & Update\".\n**Updates require a working Internet connection!**", + "docUrl": "https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki" + } }, { "name": "HubHop Data Update Timeout (seconds)", @@ -6698,7 +6719,12 @@ "minValue": 0.0, "maxValue": 600.0, "isPassword": false, - "readOnly": false + "readOnly": false, + "tooltip": { + "title": "HubHop Data Update Timeout", + "body": "Maximum number of seconds to wait for a HubHop data update check or download via the Internet.", + "docUrl": "https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki" + } }, { "name": "Sort Local Variables Alphabetically (0/1)", @@ -6707,7 +6733,12 @@ "minValue": 0.0, "maxValue": 1.0, "isPassword": false, - "readOnly": false + "readOnly": false, + "tooltip": { + "title": "Sort Local Variables Alphabetically", + "body": "Set to 1 (one) to have all Local ('L') simulator variables sorted in alphabetical order within selection lists. Setting to 0 (zero) will keep them in the original order they're loaded in on the simulator (by ascending ID).", + "docUrl": "https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki" + } } ] } \ No newline at end of file diff --git a/README.md b/README.md index c032a4d..415a988 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ simulated aircraft, component, or system. This project is a continuation of the original [MSFSTouchPortalPlugin by Tim Lewis](https://github.com/tlewis17/MSFSTouchPortalPlugin). - +--- ## Features * Connects to local or remote simulators with SimConnect. @@ -31,22 +31,15 @@ This project is a continuation of the original [MSFSTouchPortalPlugin by Tim Lew (eg. a throttle slider can both control the sim throttle and show the actual position when the throttle is moved with mouse/joystick/keyboard). * Completely configurable to request any variable or trigger any event supported by the connected simulator, including with custom extensions like MobiFlight. * Supports simulator system events (such as "flight loaded" or "sim started") as Touch Portal Events. +* Set and read model-specific "Input Event" values (**new in plugin v1.5** and MSFS SU13). * Allows simultaneous usage from multiple networked Touch Portal devices. -* Optional WASM (Web ASsembly Module) integration allows even greater expansion, with access to many variable types (including "Local" variables) and events/actions not normally - accessible via SimConnect alone. +* Optional WASM (Web ASseMbly) module integration allows even greater expansion, with access to many variable types and events/actions not normally accessible via SimConnect alone. * Categorized lists of all SimConnect Event IDs and Simulator Variables to choose from, custom imported from MSFS online documentation (exclusive feature!). * Integrates live HubHop data for activating thousands of available Input Events provided by the community (requires WASM integration). * Separate plugins available for MSFS 2020 and older sims supporting FS-X versions of SimConnect. -## Documentation - -See the [Wiki](https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki/) for guides, tips, and example -[pages and buttons](https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki/Pages-Buttons-and-Graphics) to get started with - -Auto-generated documentation on all actions, connectors, events, settings, and default included states can be found in [DOCUMENTATION.md](DOCUMENTATION.md). - - +--- ## Editions There are two separate plugins available here, one for MSFS 2020 (and eventually 2024), and another for "legacy" sims like FSX, @@ -57,6 +50,8 @@ which should work with any sim which supports the older SimConnect SDK. * The two plugin editions are completely separate and can be installed and run in Touch Portal at the same time. * Pages and buttons made for one edition will not work in the other (because they're separate plugins as far as TP is concerned). + +--- ## Installation Note: As with all plugins, this requires the Touch Portal Pro (paid) version to function. Use the latest available Touch Portal version for best results. @@ -88,11 +83,13 @@ and further optimizations. 2. Extract the contents into your MSFS _Community_ folder (so that the folder _wasimcommander-module_ is directly inside the _Community_ folder). 3. If already running, MSFS would need to be restarted after adding the module. + ### Updates The plugin can be updated to a new version by following the same installation procedure described above. It is _not_ necessary to remove any previous version first. The only thing to be aware of is that any old plugin log files will be removed during the update process. + ### Installation Guides Keep in mind that while guides can be helpful as an overview and to get started, they do get outdated and also may not cover all that is possible to do or configure. @@ -100,6 +97,16 @@ Keep in mind that while guides can be helpful as an overview and to get started, * A video tutorial about the whole setup process was published by _OverKill Simulations_ on YouTube: [Microsoft Flight Simulator | MSFS Touch Portal | YOU NEED THIS!](https://www.youtube.com/watch?v=S4Pms-7oHf0) * An older installation and usage guide was published on the _Simvol_ Web site: [How to use Touch Portal [with MSFS]](https://www.simvol.org/en/articles/tutorials/use-touch-portal). + +--- +## Documentation + +See the [Wiki](https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki/) for guides, tips, and example +[pages and buttons](https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki/Pages-Buttons-and-Graphics) to get started with + +Auto-generated documentation on all actions, connectors, events, settings, and default included states can be found in [DOCUMENTATION.md](DOCUMENTATION.md). + + --- ## Pages and Examples @@ -107,6 +114,7 @@ Check out the [Pages, Buttons, & Graphics](https://github.com/mpaperno/MSFSTouch The list of known pages has also moved to the Wiki: [List of Published Touch Portal Pages for MSFS Plugin](https://github.com/mpaperno/MSFSTouchPortalPlugin/wiki/List-of-Published-Touch-Portal-Pages-for-MSFS-Plugin) + --- ## Troubleshooting