diff --git a/radio/src/lua/CMakeLists.txt b/radio/src/lua/CMakeLists.txt index 938e8a2cd..5da4921d4 100644 --- a/radio/src/lua/CMakeLists.txt +++ b/radio/src/lua/CMakeLists.txt @@ -28,10 +28,16 @@ set(SRC ${SRC} ) AddHWGenTarget(${HW_DESC_JSON} lua_inputs lua_inputs.inc) -set(SRC ${SRC} ${CMAKE_CURRENT_BINARY_DIR}/lua_inputs.inc) +AddHWGenTarget(${HW_DESC_JSON} lua_mixsrc lua_mixsrc.inc) + +set(SRC ${SRC} + ${CMAKE_CURRENT_BINARY_DIR}/lua_inputs.inc + ${CMAKE_CURRENT_BINARY_DIR}/lua_mixsrc.inc +) # helper target for testing purposes add_custom_target(lua_inputs DEPENDS ${HW_DESC_JSON} lua_inputs.inc) +add_custom_target(lua_mixsrc DEPENDS ${HW_DESC_JSON} lua_mixsrc.inc) if(GUI_DIR STREQUAL colorlcd) set(SRC ${SRC} lua/api_colorlcd.cpp lua/widgets.cpp) diff --git a/radio/src/lua/api_general.cpp b/radio/src/lua/api_general.cpp index 2bfc96bdb..02dc9de1d 100644 --- a/radio/src/lua/api_general.cpp +++ b/radio/src/lua/api_general.cpp @@ -2895,25 +2895,7 @@ LROT_BEGIN(etxcst, NULL, 0) LROT_NUMENTRY( REPLACE, MLTPX_REPL ) LROT_NUMENTRY( MIXSRC_MAX, MIXSRC_MAX ) LROT_NUMENTRY( MIXSRC_FIRST_INPUT, MIXSRC_FIRST_INPUT ) - LROT_NUMENTRY( MIXSRC_Rud, MIXSRC_FIRST_STICK ) - LROT_NUMENTRY( MIXSRC_Ele, MIXSRC_FIRST_STICK + 1 ) - LROT_NUMENTRY( MIXSRC_Thr, MIXSRC_FIRST_STICK + 2 ) - LROT_NUMENTRY( MIXSRC_Ail, MIXSRC_FIRST_STICK + 3 ) -// TODO: LUA switch names -// LROT_NUMENTRY( MIXSRC_SA, MIXSRC_SA ) -// LROT_NUMENTRY( MIXSRC_SB, MIXSRC_SB ) -// LROT_NUMENTRY( MIXSRC_SC, MIXSRC_SC ) -// LROT_NUMENTRY( MIXSRC_SD, MIXSRC_SD ) -// #if !defined(PCBX7) && !defined(PCBXLITE) && !defined(PCBX9LITE) -// LROT_NUMENTRY( MIXSRC_SE, MIXSRC_SE ) -// LROT_NUMENTRY( MIXSRC_SG, MIXSRC_SG ) -// #endif -// #if defined(HARDWARE_SWITCH_F) -// LROT_NUMENTRY( MIXSRC_SF, MIXSRC_SF ) -// #endif -// #if defined(HARDWARE_SWITCH_H) -// LROT_NUMENTRY( MIXSRC_SH, MIXSRC_SH ) -// #endif + #include "lua_mixsrc.inc" LROT_NUMENTRY( MIXSRC_CH1, MIXSRC_FIRST_CH ) LROT_NUMENTRY( SWSRC_LAST, SWSRC_LAST_LOGICAL_SWITCH ) LROT_NUMENTRY( SWITCH_COUNT, SWSRC_COUNT ) diff --git a/radio/src/tests/lua.cpp b/radio/src/tests/lua.cpp index 74982ee62..823c32ca9 100644 --- a/radio/src/tests/lua.cpp +++ b/radio/src/tests/lua.cpp @@ -164,4 +164,10 @@ TEST(Lua, testModelInputs) } +TEST(Lua, Switches) +{ + luaExecStr("if MIXSRC_SA == nil then error('failed') end"); + luaExecStr("if MIXSRC_SB == nil then error('failed') end"); +} + #endif // #if defined(LUA) diff --git a/radio/util/hw_defs/lua_mixsrc.jinja b/radio/util/hw_defs/lua_mixsrc.jinja new file mode 100644 index 000000000..11bf4b747 --- /dev/null +++ b/radio/util/hw_defs/lua_mixsrc.jinja @@ -0,0 +1,15 @@ +// +// WARNING: DO NOT EDIT THIS FILE +// This file has been generated from the target's JSON hardware description +// + +{% set main_inputs = adc_inputs.inputs | selectattr('type', '==', 'STICK') | list %} +{% for input in main_inputs %} + {% set label = main_labels[input.name] %} + LROT_NUMENTRY( MIXSRC_{{ label.str }}, MIXSRC_FIRST_STICK + {{ loop.index0 }} ) +{% endfor %} + +{% set regular_switches = switches | selectattr('type','!=','FSWITCH') | list %} +{% for switch in regular_switches %} + LROT_NUMENTRY( MIXSRC_{{ switch.name }}, MIXSRC_FIRST_SWITCH + {{ loop.index0 }} ) +{% endfor %}