chore: JSON Python generator docs (#3775)

This commit is contained in:
Raphael Coeffic
2023-07-14 14:57:37 +10:00
committed by GitHub
parent 1bb27e7011
commit 6a8141f859
4 changed files with 399 additions and 304 deletions
+43
View File
@@ -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.
+21 -6
View File
@@ -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']
+100 -82
View File
@@ -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)
+235 -216
View File
@@ -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)