diff --git a/radio/util/hw_defs/README.md b/radio/util/hw_defs/README.md new file mode 100644 index 000000000..3b34f0a38 --- /dev/null +++ b/radio/util/hw_defs/README.md @@ -0,0 +1,43 @@ +# Hardware Definitions + +The Python scripts in this directory are responsible for 2 different tasks: +- generating a JSON definition file for each target, +- and generating different include files used to describe the hardware to the software. + +While the exact format is still moving, the goal of this file is to replace the various +hardware definitions used in EdgeTx at various places and offer a simpler way to define +new targets. + +At the end of the process, the JSON definition will be the *master copy* used by: +- radio firmware, +- radio simlator, +- and Companion. + +## JSON Definition + +Currently, the JSON definition file is still generated during the build process using +the target's `hal.h` and various Python scripts: + +- `generate_hw_def.py`: command line to generate JSON file as well as process + the JSON file into include files. + +- `hal_json.py`: reads the `#define ...` definitions coming from `hal.h` into a dictionary (AVPs). + +- `hal_adc.py`: parse ADC definitions and related analog inputs. + +- `legacy_names.py`: hard-coded definitions providing additional information not present in `hal.h` + related to analog inputs (by target; mostly names and labels). + +- `pot_config.py`: provides default configuration of pots and sliders for each target. + +- `hal_keys.py`: parse keys & trims. + +- `hal_switches.py`: parse switches. + +- `switch_config.py`: default switch configuration (all targets) as well as display positions + (only `stdlcd` targets). + +Once the format is stable enough and does not require editing each target separately +to add or rename each attribute, the JSON definition for each target will be generated +and added to version control. Then the Python scripts will obsoleted and removed. The +target's `hal.h` should be cleaned-up as well with the definitions present in JSON removed. diff --git a/radio/util/hw_defs/legacy_names.py b/radio/util/hw_defs/legacy_names.py index 7c9a41ae9..6a6686b0c 100644 --- a/radio/util/hw_defs/legacy_names.py +++ b/radio/util/hw_defs/legacy_names.py @@ -1,6 +1,8 @@ +"""Legacy names used for each analog input in previous EdgeTx versions.""" + LEGACY_NAMES = [ { - "targets": {"x10","x10express","t16","tx16s","t18"}, + "targets": {"x10", "x10express", "t16", "tx16s", "t18"}, "inputs": { "LH": { "yaml": "Rud" @@ -211,7 +213,7 @@ LEGACY_NAMES = [ "label": "S2", "short_label": "S2", "description": "Right center slider" - } + } } }, { @@ -258,7 +260,7 @@ LEGACY_NAMES = [ "lr3pro", "nv14", "t8", "t12", - "tlite", "tlitef4", "tpro","tprov2", + "tlite", "tlitef4", "tpro", "tprov2", "tx12", "tx12mk2", "x7", "x7access", "xlite", "xlites", @@ -353,7 +355,7 @@ LEGACY_NAMES = [ } }, { - "targets": {"x9lite","x9lites"}, + "targets": {"x9lite", "x9lites"}, "inputs": { "LH": { "yaml": "Rud" @@ -377,7 +379,7 @@ LEGACY_NAMES = [ } }, { - "targets": {"x9d","x9d+","x9d+2019"}, + "targets": {"x9d", "x9d+", "x9d+2019"}, "inputs": { "LH": { "yaml": "Rud" @@ -430,8 +432,21 @@ LEGACY_NAMES = [ } ] -def inputs_by_target(target): +def inputs_by_target(target): + """Retrieve legacy definitions by target. + + Parameters + ---------- + target: str + Name of the target + + Returns + ------- + dict + a dictionary with the basic attributes needed to generate + compatibility mappings + """ for d in LEGACY_NAMES: if target in d['targets']: return d['inputs'] diff --git a/radio/util/hw_defs/pot_config.py b/radio/util/hw_defs/pot_config.py index d8b482e95..2cdc6b100 100644 --- a/radio/util/hw_defs/pot_config.py +++ b/radio/util/hw_defs/pot_config.py @@ -1,138 +1,156 @@ +"""Default configuration of pots and sliders for each target.""" POT_CONFIG = { "boxer": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "WITH_DETENT" }, - "P3": { "default": "MULTIPOS_SWITCH" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "WITH_DETENT"}, + "P3": {"default": "MULTIPOS_SWITCH"} }, "tpro": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "WITH_DETENT"} }, "tprov2": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "WITH_DETENT"} }, "t20": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" }, - "SL3": { "default": "SLIDER_WITH_DETENT" }, - "SL4": { "default": "SLIDER_WITH_DETENT" }, + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"}, + "SL3": {"default": "SLIDER_WITH_DETENT"}, + "SL4": {"default": "SLIDER_WITH_DETENT"}, }, "t12": { - "P1": { "default": "WITHOUT_DETENT" }, - "P2": { "default": "WITHOUT_DETENT" } + "P1": {"default": "WITHOUT_DETENT"}, + "P2": {"default": "WITHOUT_DETENT"} }, "tx12": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "WITH_DETENT"} }, "tx12mk2": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "WITH_DETENT"} }, "t16": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "MULTIPOS_SWITCH" }, - "P3": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "MULTIPOS_SWITCH"}, + "P3": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"} }, "t18": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "MULTIPOS_SWITCH" }, - "P3": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "MULTIPOS_SWITCH"}, + "P3": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"} }, "tx16s": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "MULTIPOS_SWITCH" }, - "P3": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "MULTIPOS_SWITCH"}, + "P3": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"} }, "x7": { - "P1": { "default": "WITHOUT_DETENT" }, - "P2": { "default": "WITH_DETENT" } + "P1": {"default": "WITHOUT_DETENT"}, + "P2": {"default": "WITH_DETENT"} }, "x7access": { - "P1": { "default": "WITHOUT_DETENT" }, - "P2": { "default": "WITH_DETENT" } + "P1": {"default": "WITHOUT_DETENT"}, + "P2": {"default": "WITH_DETENT"} }, "x9d": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"} }, "x9dp": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"} }, "x9dp2019": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"} }, "x9e": { - "P1": { "default": "WITH_DETENT" }, - "P2": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" }, - "SL3": { "default": "SLIDER_WITH_DETENT" }, - "SL4": { "default": "SLIDER_WITH_DETENT" } + "P1": {"default": "WITH_DETENT"}, + "P2": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"}, + "SL3": {"default": "SLIDER_WITH_DETENT"}, + "SL4": {"default": "SLIDER_WITH_DETENT"} }, "x10": { - "P1": { "default": "WITHOUT_DETENT" }, - "P2": { "default": "MULTIPOS_SWITCH" }, - "P3": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" } + "P1": {"default": "WITHOUT_DETENT"}, + "P2": {"default": "MULTIPOS_SWITCH"}, + "P3": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"} }, "x10express": { - "P1": { "default": "WITHOUT_DETENT" }, - "P2": { "default": "MULTIPOS_SWITCH" }, - "P3": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" } + "P1": {"default": "WITHOUT_DETENT"}, + "P2": {"default": "MULTIPOS_SWITCH"}, + "P3": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"} }, "x12s": { - "P1": { "default": "WITHOUT_DETENT" }, - "P2": { "default": "MULTIPOS_SWITCH" }, - "P3": { "default": "WITH_DETENT" }, - "SL1": { "default": "SLIDER_WITH_DETENT" }, - "SL2": { "default": "SLIDER_WITH_DETENT" }, - "SL3": { "default": "SLIDER_WITH_DETENT" }, - "SL4": { "default": "SLIDER_WITH_DETENT" } + "P1": {"default": "WITHOUT_DETENT"}, + "P2": {"default": "MULTIPOS_SWITCH"}, + "P3": {"default": "WITH_DETENT"}, + "SL1": {"default": "SLIDER_WITH_DETENT"}, + "SL2": {"default": "SLIDER_WITH_DETENT"}, + "SL3": {"default": "SLIDER_WITH_DETENT"}, + "SL4": {"default": "SLIDER_WITH_DETENT"} }, "xlite": { - "P1": { "default": "WITHOUT_DETENT" }, - "P2": { "default": "WITHOUT_DETENT" } + "P1": {"default": "WITHOUT_DETENT"}, + "P2": {"default": "WITHOUT_DETENT"} }, "xlites": { - "P1": { "default": "WITHOUT_DETENT" }, - "P2": { "default": "WITHOUT_DETENT" } + "P1": {"default": "WITHOUT_DETENT"}, + "P2": {"default": "WITHOUT_DETENT"} }, "x9lite": { - "P1": { "default": "WITH_DETENT" }, + "P1": {"default": "WITH_DETENT"}, }, "x9lites": { - "P1": { "default": "WITH_DETENT" }, + "P1": {"default": "WITH_DETENT"}, }, "zorro": { - "P1": { "default": "WITHOUT_DETENT" }, - "P2": { "default": "WITHOUT_DETENT" } + "P1": {"default": "WITHOUT_DETENT"}, + "P2": {"default": "WITHOUT_DETENT"} }, } -def pot_cfg_by_target(target, name): +def pot_cfg_by_target(target, name): + """Retrieve default pot config. + + Parameters + ---------- + target: str + Name of the target + name: str + Canonical name of the pot (Px where 'x' is a number) + or slider (SLx where 'x' is a number) + + Returns + ------- + dict + a dictionary with one key for each pot or slider that mapped + to another dictionary with a single attribute ("default") containing + the default configuration for a pot or slider + """ sw = POT_CONFIG.get(target) if sw: return sw.get(name) diff --git a/radio/util/hw_defs/switch_config.py b/radio/util/hw_defs/switch_config.py index 17a616f67..79a0b1f8e 100644 --- a/radio/util/hw_defs/switch_config.py +++ b/radio/util/hw_defs/switch_config.py @@ -1,332 +1,351 @@ +"""Default switches configurations and display positions.""" SWITCH_CONFIG = { "boxer": { # left side - "SA": { "default": "2POS", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display":[ 0, 1 ] }, - "SE": { "default": "2POS", "display": [ 0, 2 ] }, + "SA": {"default": "2POS", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SE": {"default": "2POS", "display": [0, 2]}, # right side - "SC": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "2POS", "display": [ 1, 1 ] }, - "SF": { "default": "TOGGLE", "display": [ 1, 2 ] }, + "SC": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "2POS", "display": [1, 1]}, + "SF": {"default": "TOGGLE", "display": [1, 2]}, }, "commando8": { # left side - "SA": { "default": "2POS", "display": [ 0, 0 ] }, - "SC": { "default": "3POS", "display": [ 0, 1 ] }, + "SA": {"default": "2POS", "display": [0, 0]}, + "SC": {"default": "3POS", "display": [0, 1]}, # right side - "SB": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "2POS", "display": [ 1, 1 ] } + "SB": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "2POS", "display": [1, 1]} }, "lr3pro": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SC": { "default": "3POS", "display": [ 0, 1 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SC": {"default": "3POS", "display": [0, 1]}, # right side - "SB": { "default": "2POS", "display": [ 1, 0 ] }, - "SD": { "default": "2POS", "display": [ 1, 1 ] } + "SB": {"default": "2POS", "display": [1, 0]}, + "SD": {"default": "2POS", "display": [1, 1]} }, "nv14": { - "SA": { "default": "2POS" }, - "SB": { "default": "3POS" }, - "SC": { "default": "TOGGLE" }, - "SD": { "default": "2POS" }, - "SE": { "default": "TOGGLE" }, - "SF": { "default": "3POS" }, - "SG": { "default": "3POS" }, - "SH": { "default": "TOGGLE" } + "SA": {"default": "2POS"}, + "SB": {"default": "3POS"}, + "SC": {"default": "TOGGLE"}, + "SD": {"default": "2POS"}, + "SE": {"default": "TOGGLE"}, + "SF": {"default": "3POS"}, + "SG": {"default": "3POS"}, + "SH": {"default": "TOGGLE"} }, "t8": { # left side - "SA": { "default": "2POS", "display": [ 0, 0 ] }, - "SC": { "default": "3POS", "display": [ 0, 1 ] }, + "SA": {"default": "2POS", "display": [0, 0]}, + "SC": {"default": "3POS", "display": [0, 1]}, # right side - "SB": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "2POS", "display": [ 1, 1 ] } + "SB": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "2POS", "display": [1, 1]} }, "t12": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SG": { "default": "2POS", "display": [ 0, 2 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SG": {"default": "2POS", "display": [0, 2]}, # right side - "SC": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "3POS", "display": [ 1, 1 ] }, - "SH": { "default": "2POS", "display": [ 1, 3 ] } + "SC": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "3POS", "display": [1, 1]}, + "SH": {"default": "2POS", "display": [1, 3]} }, "t16": { - "SA": { "default": "3POS" }, - "SB": { "default": "3POS" }, - "SC": { "default": "3POS" }, - "SD": { "default": "3POS" }, - "SE": { "default": "3POS" }, - "SF": { "default": "2POS" }, - "SG": { "default": "3POS" }, - "SH": { "default": "TOGGLE" } + "SA": {"default": "3POS"}, + "SB": {"default": "3POS"}, + "SC": {"default": "3POS"}, + "SD": {"default": "3POS"}, + "SE": {"default": "3POS"}, + "SF": {"default": "2POS"}, + "SG": {"default": "3POS"}, + "SH": {"default": "TOGGLE"} }, "t18": { - "SA": { "default": "3POS" }, - "SB": { "default": "3POS" }, - "SC": { "default": "3POS" }, - "SD": { "default": "3POS" }, - "SE": { "default": "3POS" }, - "SF": { "default": "2POS" }, - "SG": { "default": "3POS" }, - "SH": { "default": "TOGGLE" } + "SA": {"default": "3POS"}, + "SB": {"default": "3POS"}, + "SC": {"default": "3POS"}, + "SD": {"default": "3POS"}, + "SE": {"default": "3POS"}, + "SF": {"default": "2POS"}, + "SG": {"default": "3POS"}, + "SH": {"default": "TOGGLE"} }, "tlite": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SC": { "default": "3POS", "display": [ 0, 1 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SC": {"default": "3POS", "display": [0, 1]}, # right side - "SB": { "default": "2POS", "display": [ 1, 0 ] }, - "SD": { "default": "2POS", "display": [ 1, 1 ] } + "SB": {"default": "2POS", "display": [1, 0]}, + "SD": {"default": "2POS", "display": [1, 1]} }, "tlitef4": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SC": { "default": "3POS", "display": [ 0, 1 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SC": {"default": "3POS", "display": [0, 1]}, # right side - "SB": { "default": "2POS", "display": [ 1, 0 ] }, - "SD": { "default": "2POS", "display": [ 1, 1 ] } + "SB": {"default": "2POS", "display": [1, 0]}, + "SD": {"default": "2POS", "display": [1, 1]} }, "tpro": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SC": { "default": "TOGGLE", "display": [ 0, 1 ] }, - "SE": { "default": "TOGGLE", "display": [ 0, 2 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SC": {"default": "TOGGLE", "display": [0, 1]}, + "SE": {"default": "TOGGLE", "display": [0, 2]}, # right side - "SB": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "TOGGLE", "display": [ 1, 1 ] }, - "SF": { "default": "TOGGLE", "display": [ 1, 2 ] }, + "SB": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "TOGGLE", "display": [1, 1]}, + "SF": {"default": "TOGGLE", "display": [1, 2]}, }, "tprov2": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SC": { "default": "TOGGLE", "display": [ 0, 1 ] }, - "SE": { "default": "2POS", "display": [ 0, 2 ] }, - "SG": { "default": "TOGGLE", "display": [ 0, 3 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SC": {"default": "TOGGLE", "display": [0, 1]}, + "SE": {"default": "2POS", "display": [0, 2]}, + "SG": {"default": "TOGGLE", "display": [0, 3]}, # right side - "SB": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "TOGGLE", "display": [ 1, 1 ] }, - "SF": { "default": "2POS", "display": [ 1, 2 ] }, - "SH": { "default": "TOGGLE", "display": [ 1, 3 ] }, + "SB": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "TOGGLE", "display": [1, 1]}, + "SF": {"default": "2POS", "display": [1, 2]}, + "SH": {"default": "TOGGLE", "display": [1, 3]}, }, "t20": { # left side - "SA": { "default": "2POS", "display": [ 0, 0 ] }, - "SC": { "default": "3POS", "display": [ 0, 1 ] }, - "SE": { "default": "2POS", "display": [ 0, 2 ] }, - "SG": { "default": "TOGGLE", "display": [ 0, 3 ] }, - "SI": { "default": "TOGGLE", "display": [ 0, 4 ] }, + "SA": {"default": "2POS", "display": [0, 0]}, + "SC": {"default": "3POS", "display": [0, 1]}, + "SE": {"default": "2POS", "display": [0, 2]}, + "SG": {"default": "TOGGLE", "display": [0, 3]}, + "SI": {"default": "TOGGLE", "display": [0, 4]}, # right side - "SB": { "default": "2POS", "display": [ 1, 0 ] }, - "SD": { "default": "3POS", "display": [ 1, 1 ] }, - "SF": { "default": "2POS", "display": [ 1, 2 ] }, - "SH": { "default": "TOGGLE", "display": [ 1, 3 ] }, - "SJ": { "default": "TOGGLE", "display": [ 1, 4 ] } + "SB": {"default": "2POS", "display": [1, 0]}, + "SD": {"default": "3POS", "display": [1, 1]}, + "SF": {"default": "2POS", "display": [1, 2]}, + "SH": {"default": "TOGGLE", "display": [1, 3]}, + "SJ": {"default": "TOGGLE", "display": [1, 4]} }, "tx12": { # left side - "SA": { "default": "TOGGLE", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SE": { "default": "3POS", "display": [ 0, 2 ] }, - "SG": { "default": "NONE", "display": [ 0, 3 ] }, + "SA": {"default": "TOGGLE", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SE": {"default": "3POS", "display": [0, 2]}, + "SG": {"default": "NONE", "display": [0, 3]}, # right side - "SC": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "TOGGLE", "display": [ 1, 1 ] }, - "SF": { "default": "3POS", "display": [ 1, 2 ] }, - "SH": { "default": "NONE", "display": [ 1, 3 ] } + "SC": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "TOGGLE", "display": [1, 1]}, + "SF": {"default": "3POS", "display": [1, 2]}, + "SH": {"default": "NONE", "display": [1, 3]} }, "tx16s": { - "SA": { "default": "3POS" }, - "SB": { "default": "3POS" }, - "SC": { "default": "3POS" }, - "SD": { "default": "3POS" }, - "SE": { "default": "3POS" }, - "SF": { "default": "2POS" }, - "SG": { "default": "3POS" }, - "SH": { "default": "TOGGLE" } + "SA": {"default": "3POS"}, + "SB": {"default": "3POS"}, + "SC": {"default": "3POS"}, + "SD": {"default": "3POS"}, + "SE": {"default": "3POS"}, + "SF": {"default": "2POS"}, + "SG": {"default": "3POS"}, + "SH": {"default": "TOGGLE"} }, "tx12mk2": { # left side - "SA": { "default": "TOGGLE", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SE": { "default": "3POS", "display": [ 0, 2 ] }, + "SA": {"default": "TOGGLE", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SE": {"default": "3POS", "display": [0, 2]}, # right side - "SC": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "TOGGLE", "display": [ 1, 1 ] }, - "SF": { "default": "3POS", "display": [ 1, 2 ] }, + "SC": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "TOGGLE", "display": [1, 1]}, + "SF": {"default": "3POS", "display": [1, 2]}, }, "x7": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SF": { "default": "2POS", "display": [ 0, 2 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SF": {"default": "2POS", "display": [0, 2]}, # right side - "SC": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "3POS", "display": [ 1, 1 ] }, - "SH": { "default": "TOGGLE", "display": [ 1, 2 ] } + "SC": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "3POS", "display": [1, 1]}, + "SH": {"default": "TOGGLE", "display": [1, 2]} }, "x7access": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SF": { "default": "2POS", "display": [ 0, 2 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SF": {"default": "2POS", "display": [0, 2]}, # right side - "SC": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "3POS", "display": [ 1, 1 ] }, - "SH": { "default": "TOGGLE", "display": [ 1, 2 ] } + "SC": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "3POS", "display": [1, 1]}, + "SH": {"default": "TOGGLE", "display": [1, 2]} }, "x9d": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SE": { "default": "3POS", "display": [ 0, 2 ] }, - "SF": { "default": "2POS", "display": [ 0, 3 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SE": {"default": "3POS", "display": [0, 2]}, + "SF": {"default": "2POS", "display": [0, 3]}, # right side - "SC": { "default": "3POS", "display": [ 2, 0 ] }, - "SD": { "default": "3POS", "display": [ 2, 1 ] }, - "SG": { "default": "3POS", "display": [ 2, 2 ] }, - "SH": { "default": "TOGGLE", "display": [ 2, 3 ] } + "SC": {"default": "3POS", "display": [2, 0]}, + "SD": {"default": "3POS", "display": [2, 1]}, + "SG": {"default": "3POS", "display": [2, 2]}, + "SH": {"default": "TOGGLE", "display": [2, 3]} }, "x9d+": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SE": { "default": "3POS", "display": [ 0, 2 ] }, - "SF": { "default": "2POS", "display": [ 0, 3 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SE": {"default": "3POS", "display": [0, 2]}, + "SF": {"default": "2POS", "display": [0, 3]}, # right side - "SC": { "default": "3POS", "display": [ 2, 0 ] }, - "SD": { "default": "3POS", "display": [ 2, 1 ] }, - "SG": { "default": "3POS", "display": [ 2, 2 ] }, - "SH": { "default": "TOGGLE", "display": [ 2, 3 ] } + "SC": {"default": "3POS", "display": [2, 0]}, + "SD": {"default": "3POS", "display": [2, 1]}, + "SG": {"default": "3POS", "display": [2, 2]}, + "SH": {"default": "TOGGLE", "display": [2, 3]} }, "x9d+2019": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SE": { "default": "3POS", "display": [ 0, 2 ] }, - "SF": { "default": "2POS", "display": [ 0, 3 ] }, - "SI": { "default": "TOGGLE", "display": [ 0, 4 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SE": {"default": "3POS", "display": [0, 2]}, + "SF": {"default": "2POS", "display": [0, 3]}, + "SI": {"default": "TOGGLE", "display": [0, 4]}, # right side - "SC": { "default": "3POS", "display": [ 2, 0 ] }, - "SD": { "default": "3POS", "display": [ 2, 1 ] }, - "SG": { "default": "3POS", "display": [ 2, 2 ] }, - "SH": { "default": "TOGGLE", "display": [ 2, 3 ] } + "SC": {"default": "3POS", "display": [2, 0]}, + "SD": {"default": "3POS", "display": [2, 1]}, + "SG": {"default": "3POS", "display": [2, 2]}, + "SH": {"default": "TOGGLE", "display": [2, 3]} }, "x9e": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SE": { "default": "3POS", "display": [ 0, 2 ] }, - "SF": { "default": "2POS", "display": [ 0, 3 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SE": {"default": "3POS", "display": [0, 2]}, + "SF": {"default": "2POS", "display": [0, 3]}, # extra - "SI": { "default": "NONE", "display": [ 0, 4 ] }, - "SK": { "default": "NONE", "display": [ 0, 5 ] }, - "SM": { "default": "NONE", "display": [ 0, 6 ] }, - "SO": { "default": "NONE", "display": [ 0, 7 ] }, - "SQ": { "default": "NONE", "display": [ 0, 8 ] }, + "SI": {"default": "NONE", "display": [0, 4]}, + "SK": {"default": "NONE", "display": [0, 5]}, + "SM": {"default": "NONE", "display": [0, 6]}, + "SO": {"default": "NONE", "display": [0, 7]}, + "SQ": {"default": "NONE", "display": [0, 8]}, # right side - "SC": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "3POS", "display": [ 1, 1 ] }, - "SH": { "default": "3POS", "display": [ 1, 2 ] }, - "SG": { "default": "TOGGLE", "display": [ 1, 3 ] }, + "SC": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "3POS", "display": [1, 1]}, + "SH": {"default": "3POS", "display": [1, 2]}, + "SG": {"default": "TOGGLE", "display": [1, 3]}, # extra - "SJ": { "default": "NONE", "display": [ 1, 4 ] }, - "SL": { "default": "NONE", "display": [ 1, 5 ] }, - "SN": { "default": "NONE", "display": [ 1, 6 ] }, - "SP": { "default": "NONE", "display": [ 1, 7 ] }, - "SR": { "default": "NONE", "display": [ 1, 8 ] } + "SJ": {"default": "NONE", "display": [1, 4]}, + "SL": {"default": "NONE", "display": [1, 5]}, + "SN": {"default": "NONE", "display": [1, 6]}, + "SP": {"default": "NONE", "display": [1, 7]}, + "SR": {"default": "NONE", "display": [1, 8]} }, "xlite": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SC": { "default": "3POS", "display": [ 0, 1 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SC": {"default": "3POS", "display": [0, 1]}, # right side - "SB": { "default": "2POS", "display": [ 1, 0 ] }, - "SD": { "default": "2POS", "display": [ 1, 1 ] } + "SB": {"default": "2POS", "display": [1, 0]}, + "SD": {"default": "2POS", "display": [1, 1]} }, "xlites": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SC": { "default": "3POS", "display": [ 0, 1 ] }, - "SE": { "default": "TOGGLE", "display": [ 0, 2 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SC": {"default": "3POS", "display": [0, 1]}, + "SE": {"default": "TOGGLE", "display": [0, 2]}, # right side - "SB": { "default": "2POS", "display": [ 1, 0 ] }, - "SD": { "default": "2POS", "display": [ 1, 1 ] }, - "SE": { "default": "TOGGLE", "display": [ 1, 2 ] } + "SB": {"default": "2POS", "display": [1, 0]}, + "SD": {"default": "2POS", "display": [1, 1]}, + "SF": {"default": "TOGGLE", "display": [1, 2]} }, "x9lite": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SD": { "default": "2POS", "display": [ 0, 2 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SD": {"default": "2POS", "display": [0, 2]}, # right side - "SC": { "default": "3POS", "display": [ 1, 0 ] }, - "SE": { "default": "TOGGLE", "display": [ 1, 1 ] } + "SC": {"default": "3POS", "display": [1, 0]}, + "SE": {"default": "TOGGLE", "display": [1, 1]} }, "x9lites": { # left side - "SA": { "default": "3POS", "display": [ 0, 0 ] }, - "SB": { "default": "3POS", "display": [ 0, 1 ] }, - "SD": { "default": "2POS", "display": [ 0, 2 ] }, - "SF": { "default": "TOGGLE", "display": [ 0, 3 ] }, + "SA": {"default": "3POS", "display": [0, 0]}, + "SB": {"default": "3POS", "display": [0, 1]}, + "SD": {"default": "2POS", "display": [0, 2]}, + "SF": {"default": "TOGGLE", "display": [0, 3]}, # right side - "SC": { "default": "3POS", "display": [ 1, 1 ] }, - "SE": { "default": "TOGGLE", "display": [ 1, 2 ] }, - "SG": { "default": "TOGGLE", "display": [ 1, 3 ] } + "SC": {"default": "3POS", "display": [1, 1]}, + "SE": {"default": "TOGGLE", "display": [1, 2]}, + "SG": {"default": "TOGGLE", "display": [1, 3]} }, "x10": { - "SA": { "default": "3POS" }, - "SB": { "default": "3POS" }, - "SC": { "default": "3POS" }, - "SD": { "default": "3POS" }, - "SE": { "default": "3POS" }, - "SF": { "default": "2POS" }, - "SG": { "default": "3POS" }, - "SH": { "default": "TOGGLE" }, - "SI": { "default": "NONE"}, - "SJ": { "default": "NONE"} + "SA": {"default": "3POS"}, + "SB": {"default": "3POS"}, + "SC": {"default": "3POS"}, + "SD": {"default": "3POS"}, + "SE": {"default": "3POS"}, + "SF": {"default": "2POS"}, + "SG": {"default": "3POS"}, + "SH": {"default": "TOGGLE"}, + "SI": {"default": "NONE"}, + "SJ": {"default": "NONE"} }, "x12s": { - "SA": { "default": "3POS" }, - "SB": { "default": "3POS" }, - "SC": { "default": "3POS" }, - "SD": { "default": "3POS" }, - "SE": { "default": "3POS" }, - "SF": { "default": "2POS" }, - "SG": { "default": "3POS" }, - "SH": { "default": "TOGGLE" }, - "SI": { "default": "NONE"}, - "SJ": { "default": "NONE"} + "SA": {"default": "3POS"}, + "SB": {"default": "3POS"}, + "SC": {"default": "3POS"}, + "SD": {"default": "3POS"}, + "SE": {"default": "3POS"}, + "SF": {"default": "2POS"}, + "SG": {"default": "3POS"}, + "SH": {"default": "TOGGLE"}, + "SI": {"default": "NONE"}, + "SJ": {"default": "NONE"} }, "x10express": { - "SA": { "default": "3POS" }, - "SB": { "default": "3POS" }, - "SC": { "default": "3POS" }, - "SD": { "default": "3POS" }, - "SE": { "default": "3POS" }, - "SF": { "default": "2POS" }, - "SG": { "default": "3POS" }, - "SH": { "default": "TOGGLE" } + "SA": {"default": "3POS"}, + "SB": {"default": "3POS"}, + "SC": {"default": "3POS"}, + "SD": {"default": "3POS"}, + "SE": {"default": "3POS"}, + "SF": {"default": "2POS"}, + "SG": {"default": "3POS"}, + "SH": {"default": "TOGGLE"} }, "zorro": { # left side - "SB": { "default": "3POS", "display": [ 0, 0 ] }, - "SA": { "default": "TOGGLE", "display": [ 0, 1 ] }, - "SE": { "default": "2POS", "display": [ 0, 2 ] }, - "SG": { "default": "TOGGLE", "display": [ 0, 3 ] }, + "SB": {"default": "3POS", "display": [0, 0]}, + "SA": {"default": "TOGGLE", "display": [0, 1]}, + "SE": {"default": "2POS", "display": [0, 2]}, + "SG": {"default": "TOGGLE", "display": [0, 3]}, # right side - "SC": { "default": "3POS", "display": [ 1, 0 ] }, - "SD": { "default": "TOGGLE", "display": [ 1, 1 ] }, - "SF": { "default": "2POS", "display": [ 1, 2 ] }, - "SH": { "default": "TOGGLE", "display": [ 1, 3 ] }, + "SC": {"default": "3POS", "display": [1, 0]}, + "SD": {"default": "TOGGLE", "display": [1, 1]}, + "SF": {"default": "2POS", "display": [1, 2]}, + "SH": {"default": "TOGGLE", "display": [1, 3]}, }, } -def switch_cfg_by_target(target, name): +def switch_cfg_by_target(target, name): + """Retrieve default switches config. + + Parameters + ---------- + target: str + Name of the target + name: str + Canonical switch name (Sx where 'x' is a capital letter) + + Returns + ------- + dict + a dictionary with one key for each pot or slider that mapped + to another dictionary with a "default" attribute containing + the default switches configuration. On 'stdlcd' targets, a + 'display' 2 dimensional array defining the switch's position + on screen. + """ sw = SWITCH_CONFIG.get(target) if sw: return sw.get(name)