5 * th9x - http://code.google.com/p/th9x
6 * er9x - http://code.google.com/p/er9x
7 * gruvin9x - http://code.google.com/p/gruvin9x
9 * License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
21 #ifndef _DATACONSTANTS_H_
22 #define _DATACONSTANTS_H_
29 #define LUA_EXPORT(...) LEXP(__VA_ARGS__)
30 #define LUA_EXPORT_MULTIPLE(...) LEXP_MULTIPLE(__VA_ARGS__)
31 #define LUA_EXPORT_EXTRA(...) LEXP_EXTRA(__VA_ARGS__)
33 #define LUA_EXPORT(...)
34 #define LUA_EXPORT_MULTIPLE(...)
35 #define LUA_EXPORT_EXTRA(...)
40 #define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32
41 #define MAX_FLIGHT_MODES 9
44 #define MAX_LOGICAL_SWITCHES 64
45 #define MAX_SPECIAL_FUNCTIONS 64 // number of functions assigned to switches
48 #define MAX_TRAINER_CHANNELS 16
49 #define MAX_TELEMETRY_SENSORS 60
50 #define MAX_CUSTOM_SCREENS 5
51 #elif defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E)
53 #define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32
54 #define MAX_FLIGHT_MODES 9
57 #define MAX_LOGICAL_SWITCHES 64
58 #define MAX_SPECIAL_FUNCTIONS 64 // number of functions assigned to switches
61 #define MAX_TRAINER_CHANNELS 16
62 #define MAX_TELEMETRY_SENSORS 60
63 #elif defined(PCBTARANIS)
65 #define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32
66 #define MAX_FLIGHT_MODES 9
69 #define MAX_LOGICAL_SWITCHES 64
70 #define MAX_SPECIAL_FUNCTIONS 64 // number of functions assigned to switches
73 #define MAX_TRAINER_CHANNELS 16
74 #define MAX_TELEMETRY_SENSORS 40
75 #elif defined(PCBSKY9X)
77 #define MAX_OUTPUT_CHANNELS 32 // number of real output channels CH1-CH32
78 #define MAX_FLIGHT_MODES 9
81 #define MAX_LOGICAL_SWITCHES 64
82 #define MAX_SPECIAL_FUNCTIONS 64 // number of functions assigned to switches
84 #define MAX_TRAINER_CHANNELS 16
85 #define MAX_TELEMETRY_SENSORS 40
87 #warning "Unknown board!"
96 CURVE_TYPE_LAST
= CURVE_TYPE_CUSTOM
99 #define MIN_POINTS_PER_CURVE 3
100 #define MAX_POINTS_PER_CURVE 17
102 #if defined(PCBHORUS)
103 #define LEN_MODEL_NAME 15
104 #define LEN_TIMER_NAME 8
105 #define LEN_FLIGHT_MODE_NAME 10
106 #define LEN_BITMAP_NAME 14
107 #define LEN_EXPOMIX_NAME 6
108 #define LEN_CHANNEL_NAME 6
109 #define LEN_INPUT_NAME 4
110 #define LEN_CURVE_NAME 3
111 #define LEN_FUNCTION_NAME 6
112 #define MAX_CURVES 32
113 #define MAX_CURVE_POINTS 512
115 #define LEN_MODEL_NAME 12
116 #define LEN_TIMER_NAME 8
117 #define LEN_FLIGHT_MODE_NAME 10
118 #define LEN_BITMAP_NAME 10
119 #define LEN_EXPOMIX_NAME 6
120 #define LEN_CHANNEL_NAME 6
121 #define LEN_INPUT_NAME 4
122 #define LEN_CURVE_NAME 3
123 #define LEN_FUNCTION_NAME 8
124 #define MAX_CURVES 32
125 #define MAX_CURVE_POINTS 512
127 #define LEN_MODEL_NAME 10
128 #define LEN_TIMER_NAME 3
129 #define LEN_FLIGHT_MODE_NAME 6
130 #define LEN_EXPOMIX_NAME 6
131 #define LEN_CHANNEL_NAME 4
132 #define LEN_INPUT_NAME 3
133 #define LEN_CURVE_NAME 3
134 #define LEN_FUNCTION_NAME 6
135 #define MAX_CURVES 32
136 #define MAX_CURVE_POINTS 512
139 #if defined(PCBTARANIS) || defined(PCBSKY9X) || defined(PCBHORUS)
140 #define NUM_MODULES 2
142 #define NUM_MODULES 1
145 #define XPOTS_MULTIPOS_COUNT 6
147 #if defined(COLORLCD)
150 VIEW_TIMERS_ALTITUDE
,
182 #if defined(PCBTARANIS) || defined(PCBHORUS)
189 TRAINER_MODE_MASTER_TRAINER_JACK
,
191 #if defined(PCBTARANIS)
192 TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE
,
193 TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE
,
194 TRAINER_MODE_MASTER_BATTERY_COMPARTMENT
,
196 #if defined(BLUETOOTH)
197 TRAINER_MODE_MASTER_BLUETOOTH
,
198 TRAINER_MODE_SLAVE_BLUETOOTH
,
202 #elif defined(PCBSKY9X)
210 #if defined(MULTIMODULE)
211 #define TRAINER_MODE_MAX() TRAINER_MODE_MULTI
212 #elif defined(BLUETOOTH)
213 #define TRAINER_MODE_MAX() TRAINER_MODE_SLAVE_BLUETOOTH
214 #elif defined(RADIO_T16)
215 #define TRAINER_MODE_MAX() TRAINER_MODE_SLAVE
216 #elif defined(PCBX7) || defined(PCBXLITE)
217 #define TRAINER_MODE_MAX() TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE
219 #define TRAINER_MODE_MAX() HAS_WIRELESS_TRAINER_HARDWARE() ? TRAINER_MODE_MASTER_BATTERY_COMPARTMENT : TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE
222 #if defined(HARDWARE_INTERNAL_MODULE)
223 #define IS_INTERNAL_MODULE_ENABLED() (g_model.moduleData[INTERNAL_MODULE].type != MODULE_TYPE_NONE)
225 #define IS_INTERNAL_MODULE_ENABLED() (false)
228 #define IS_EXTERNAL_MODULE_ENABLED() (g_model.moduleData[EXTERNAL_MODULE].type != MODULE_TYPE_NONE)
230 #if defined(HARDWARE_INTERNAL_MODULE)
231 #define IS_MODULE_ENABLED(moduleIdx) (moduleIdx==INTERNAL_MODULE ? IS_INTERNAL_MODULE_ENABLED() : moduleIdx==EXTERNAL_MODULE ? IS_EXTERNAL_MODULE_ENABLED() : false)
233 #define IS_MODULE_ENABLED(moduleIdx) (moduleIdx==EXTERNAL_MODULE ? IS_EXTERNAL_MODULE_ENABLED() : false)
237 #if defined(CLI) || defined(DEBUG)
242 UART_MODE_TELEMETRY_MIRROR
,
244 UART_MODE_SBUS_TRAINER
,
247 UART_MODE_MAX
= UART_MODE_COUNT
-1
250 #if defined(PCBHORUS)
251 #define LEN_SWITCH_NAME 3
252 #define LEN_ANA_NAME 3
253 #define LEN_MODEL_FILENAME 16
254 #define LEN_BLUETOOTH_NAME 10
256 #define LEN_SWITCH_NAME 3
257 #define LEN_ANA_NAME 3
258 #define LEN_BLUETOOTH_NAME 10
261 enum TelemetryProtocol
263 PROTOCOL_TELEMETRY_FIRST
,
264 PROTOCOL_TELEMETRY_FRSKY_SPORT
= PROTOCOL_TELEMETRY_FIRST
,
265 PROTOCOL_TELEMETRY_FRSKY_D
,
266 PROTOCOL_TELEMETRY_FRSKY_D_SECONDARY
,
267 PROTOCOL_TELEMETRY_CROSSFIRE
,
268 PROTOCOL_TELEMETRY_SPEKTRUM
,
269 PROTOCOL_TELEMETRY_FLYSKY_IBUS
,
270 PROTOCOL_TELEMETRY_HITEC
,
271 PROTOCOL_TELEMETRY_HOTT
,
272 PROTOCOL_TELEMETRY_MULTIMODULE
,
273 PROTOCOL_TELEMETRY_LAST
=PROTOCOL_TELEMETRY_MULTIMODULE
,
274 PROTOCOL_TELEMETRY_LUA
277 #define TELEM_LABEL_LEN 4
284 UNIT_METERS_PER_SECOND
,
285 UNIT_FEET_PER_SECOND
,
287 UNIT_SPEED
= UNIT_KMH
,
290 UNIT_DIST
= UNIT_METERS
,
293 UNIT_TEMPERATURE
= UNIT_CELSIUS
,
306 UNIT_MILLILITERS_PER_MINUTE
,
307 UNIT_MAX
= UNIT_MILLILITERS_PER_MINUTE
,
321 // FrSky format used for these fields, could be another format in the future
323 UNIT_CELLS
= UNIT_FIRST_VIRTUAL
,
328 // Internal units (not stored in sensor unit)
332 UNIT_DATETIME_DAY_MONTH
,
333 UNIT_DATETIME_HOUR_MIN
,
338 #define NUM_LINE_ITEMS 3
340 #define NUM_LINE_ITEMS 2
343 #if defined(PCBTARANIS)
344 #define MAX_TELEM_SCRIPT_INPUTS 8
347 enum TelemetryScreenType
{
348 TELEMETRY_SCREEN_TYPE_NONE
,
349 TELEMETRY_SCREEN_TYPE_VALUES
,
350 TELEMETRY_SCREEN_TYPE_BARS
,
351 TELEMETRY_SCREEN_TYPE_SCRIPT
,
353 TELEMETRY_SCREEN_TYPE_MAX
= TELEMETRY_SCREEN_TYPE_SCRIPT
355 TELEMETRY_SCREEN_TYPE_MAX
= TELEMETRY_SCREEN_TYPE_BARS
358 #define MAX_TELEMETRY_SCREENS 4
359 #define TELEMETRY_SCREEN_TYPE(screenIndex) TelemetryScreenType((g_model.screensType >> (2*(screenIndex))) & 0x03)
360 #define IS_BARS_SCREEN(screenIndex) (TELEMETRY_SCREEN_TYPE(screenIndex) == TELEMETRY_SCREEN_TYPE_BARS)
362 constexpr int16_t FAILSAFE_CHANNEL_HOLD
= 2000;
363 constexpr int16_t FAILSAFE_CHANNEL_NOPULSE
= 2001;
365 #define LEN_SCRIPT_FILENAME 6
366 #define LEN_SCRIPT_NAME 6
367 #define MAX_SCRIPT_INPUTS 6
368 #define MAX_SCRIPT_OUTPUTS 6
376 #define LEN_GVAR_NAME 3
377 #define GVAR_MAX 1024
378 #define GVAR_MIN -GVAR_MAX
380 #define RESERVE_RANGE_FOR_GVARS 10
381 // even we do not spend space in EEPROM for 10 GVARS, we reserve the space inside the range of values, like offset, weight, etc.
390 #if defined(STORAGE_SWITCH_A)
391 SWSRC_SA0
= SWSRC_FIRST_SWITCH
,
396 #if defined(STORAGE_SWITCH_B)
402 #if defined(STORAGE_SWITCH_C)
408 #if defined(STORAGE_SWITCH_D)
414 #if defined(STORAGE_SWITCH_E)
420 #if defined(STORAGE_SWITCH_F)
426 #if defined(STORAGE_SWITCH_G)
432 #if defined(STORAGE_SWITCH_H)
438 #if defined(STORAGE_SWITCH_I)
444 #if defined(STORAGE_SWITCH_J)
450 #if defined(STORAGE_SWITCH_K)
456 #if defined(STORAGE_SWITCH_L)
462 #if defined(STORAGE_SWITCH_M)
468 #if defined(STORAGE_SWITCH_N)
474 #if defined(STORAGE_SWITCH_O)
480 #if defined(STORAGE_SWITCH_P)
486 #if defined(STORAGE_SWITCH_Q)
492 #if defined(STORAGE_SWITCH_R)
498 #if defined(PCBSKY9X)
499 SWSRC_ID0
= SWSRC_FIRST_SWITCH
,
508 SWSRC_TRAINER
= SWSRC_TRN
,
509 SWSRC_LAST_SWITCH
= SWSRC_TRN
,
511 SWSRC_LAST_SWITCH
= SWSRC_FIRST_SWITCH
+ STORAGE_NUM_SWITCHES_POSITIONS
- 1,
515 SWSRC_FIRST_MULTIPOS_SWITCH
,
516 SWSRC_LAST_MULTIPOS_SWITCH
= SWSRC_FIRST_MULTIPOS_SWITCH
+ (NUM_XPOTS
* XPOTS_MULTIPOS_COUNT
) - 1,
520 SWSRC_TrimRudLeft
= SWSRC_FIRST_TRIM
,
539 #if defined(PCBSKY9X)
543 SWSRC_FIRST_LOGICAL_SWITCH
,
544 SWSRC_SW1
= SWSRC_FIRST_LOGICAL_SWITCH
,
547 SWSRC_LAST_LOGICAL_SWITCH
= SWSRC_FIRST_LOGICAL_SWITCH
+MAX_LOGICAL_SWITCHES
-1,
552 SWSRC_FIRST_FLIGHT_MODE
,
553 SWSRC_LAST_FLIGHT_MODE
= SWSRC_FIRST_FLIGHT_MODE
+MAX_FLIGHT_MODES
-1,
555 SWSRC_TELEMETRY_STREAMING
,
558 SWSRC_LAST_SENSOR
= SWSRC_FIRST_SENSOR
+MAX_TELEMETRY_SENSORS
-1,
560 SWSRC_RADIO_ACTIVITY
,
562 #if defined(DEBUG_LATENCY)
563 SWSRC_LATENCY_TOGGLE
,
568 SWSRC_OFF
= -SWSRC_ON
,
570 SWSRC_LAST
= SWSRC_COUNT
-1,
571 SWSRC_FIRST
= -SWSRC_LAST
,
573 SWSRC_LAST_IN_LOGICAL_SWITCHES
= SWSRC_COUNT
-1,
574 SWSRC_LAST_IN_MIXES
= SWSRC_COUNT
-1,
576 SWSRC_FIRST_IN_LOGICAL_SWITCHES
= -SWSRC_LAST_IN_LOGICAL_SWITCHES
,
577 SWSRC_FIRST_IN_MIXES
= -SWSRC_LAST_IN_MIXES
,
579 SWSRC_INVERT
= SWSRC_COUNT
+1,
582 #if NUM_SWITCHES >= 8
583 #define SWSRC_TRAINER SWSRC_SH2
585 #define SWSRC_TRAINER SWSRC_LAST_SWITCH,
588 #define SWSRC_LAST_TRIM (SWSRC_FIRST_TRIM + 2*NUM_TRIMS - 1)
593 MIXSRC_FIRST_INPUT
, LUA_EXPORT_MULTIPLE("input", "Input [I%d]", MAX_INPUTS
)
594 MIXSRC_LAST_INPUT
= MIXSRC_FIRST_INPUT
+MAX_INPUTS
-1,
596 #if defined(LUA_INPUTS)
597 MIXSRC_FIRST_LUA
, LUA_EXPORT_MULTIPLE("lua", "Lua mix output %d", MAX_SCRIPTS
*MAX_SCRIPT_OUTPUTS
)
598 MIXSRC_LAST_LUA
= MIXSRC_FIRST_LUA
+(MAX_SCRIPTS
*MAX_SCRIPT_OUTPUTS
)-1,
602 MIXSRC_Rud
= MIXSRC_FIRST_STICK
, LUA_EXPORT("rud", "Rudder")
603 MIXSRC_Ele
, LUA_EXPORT("ele", "Elevator")
604 MIXSRC_Thr
, LUA_EXPORT("thr", "Throttle")
605 MIXSRC_Ail
, LUA_EXPORT("ail", "Aileron")
608 #if defined(PCBHORUS)
609 MIXSRC_S1
= MIXSRC_FIRST_POT
, LUA_EXPORT("s1", "Potentiometer S1")
610 MIXSRC_6POS
, LUA_EXPORT("6pos", "Multipos Switch")
611 MIXSRC_S2
, LUA_EXPORT("s2", "Potentiometer S2")
613 MIXSRC_EXT1
, LUA_EXPORT("ext1", "Ext 1")
614 MIXSRC_EXT2
, LUA_EXPORT("ext2", "Ext 2")
618 MIXSRC_S3
= MIXSRC_FIRST_SLIDER
, LUA_EXPORT("s3", "Slider S3")
619 MIXSRC_S4
, LUA_EXPORT("s4", "Slider S4")
620 MIXSRC_LS
, LUA_EXPORT("ls", "Left rear slider")
621 MIXSRC_RS
, LUA_EXPORT("rs", "Right rear slider")
623 MIXSRC_LS
= MIXSRC_FIRST_SLIDER
, LUA_EXPORT("ls", "Left slider")
624 MIXSRC_RS
, LUA_EXPORT("rs", "Right slider")
626 MIXSRC_LAST_POT
= MIXSRC_RS
,
627 #elif defined(PCBX9E)
628 MIXSRC_POT1
= MIXSRC_FIRST_POT
, LUA_EXPORT("s1", "Potentiometer 1")
629 MIXSRC_POT2
, LUA_EXPORT("s2", "Potentiometer 2")
630 MIXSRC_POT3
, LUA_EXPORT("s3", "Potentiometer 3")
631 MIXSRC_POT4
, LUA_EXPORT("s4", "Potentiometer 4 (X9E only)")
633 MIXSRC_SLIDER1
= MIXSRC_FIRST_SLIDER
, LUA_EXPORT("ls", "Left slider")
634 MIXSRC_SLIDER2
, LUA_EXPORT("rs", "Right slider")
635 MIXSRC_SLIDER3
, LUA_EXPORT("lcs", "Left center slider (X9E only)")
636 MIXSRC_SLIDER4
, LUA_EXPORT("rcs", "Right center slider (X9E only)")
637 MIXSRC_LAST_POT
= MIXSRC_SLIDER4
,
638 #elif defined(PCBX7) || defined(PCBXLITE)
639 MIXSRC_POT1
= MIXSRC_FIRST_POT
, LUA_EXPORT("s1", "Potentiometer 1")
640 MIXSRC_POT2
, LUA_EXPORT("s2", "Potentiometer 2")
641 MIXSRC_LAST_POT
= MIXSRC_POT2
,
642 #elif defined(PCBX9LITE)
643 MIXSRC_POT1
= MIXSRC_FIRST_POT
, LUA_EXPORT("s1", "Potentiometer 1")
644 MIXSRC_LAST_POT
= MIXSRC_POT1
,
645 #elif defined(PCBTARANIS)
646 MIXSRC_POT1
= MIXSRC_FIRST_POT
, LUA_EXPORT("s1", "Potentiometer 1")
647 MIXSRC_POT2
, LUA_EXPORT("s2", "Potentiometer 2")
648 MIXSRC_POT3
, LUA_EXPORT("s3", "Potentiometer 3")
650 MIXSRC_SLIDER1
= MIXSRC_FIRST_SLIDER
, LUA_EXPORT("ls", "Left slider")
651 MIXSRC_SLIDER2
, LUA_EXPORT("rs", "Right slider")
652 MIXSRC_LAST_POT
= MIXSRC_SLIDER2
,
654 MIXSRC_P1
= MIXSRC_FIRST_POT
,
657 MIXSRC_LAST_POT
= MIXSRC_P3
,
660 #if defined(PCBHORUS)
661 MIXSRC_MOUSE1
, LUA_EXPORT("jsx", "Joystick X")
662 MIXSRC_MOUSE2
, LUA_EXPORT("jsy", "Joystick Y")
666 MIXSRC_GYRO1
, LUA_EXPORT("gyrx", "Gyro X")
667 MIXSRC_GYRO2
, LUA_EXPORT("gyry", "Gyro Y")
673 MIXSRC_CYC1
= MIXSRC_FIRST_HELI
, LUA_EXPORT("cyc1", "Cyclic 1")
674 MIXSRC_CYC2
, LUA_EXPORT("cyc2", "Cyclic 2")
675 MIXSRC_CYC3
, LUA_EXPORT("cyc3", "Cyclic 3")
678 MIXSRC_TrimRud
= MIXSRC_FIRST_TRIM
, LUA_EXPORT("trim-rud", "Rudder trim")
679 MIXSRC_TrimEle
, LUA_EXPORT("trim-ele", "Elevator trim")
680 MIXSRC_TrimThr
, LUA_EXPORT("trim-thr", "Throttle trim")
681 MIXSRC_TrimAil
, LUA_EXPORT("trim-ail", "Aileron trim")
682 #if defined(PCBHORUS)
683 MIXSRC_TrimT5
, LUA_EXPORT("trim-t5", "Aux trim T5")
684 MIXSRC_TrimT6
, LUA_EXPORT("trim-t6", "Aux trim T6")
685 MIXSRC_LAST_TRIM
= MIXSRC_TrimT6
,
687 MIXSRC_LAST_TRIM
= MIXSRC_TrimAil
,
692 #if defined(HARDWARE_SWITCH_A)
693 MIXSRC_SA
= MIXSRC_FIRST_SWITCH
, LUA_EXPORT("sa", "Switch A")
694 MIXSRC_SB
, LUA_EXPORT("sb", "Switch B")
695 MIXSRC_SC
, LUA_EXPORT("sc", "Switch C")
697 #if defined(HARDWARE_SWITCH_D)
698 MIXSRC_SD
, LUA_EXPORT("sd", "Switch D")
699 #elif defined(STORAGE_SWITCH_D)
702 #if defined(HARDWARE_SWITCH_E)
703 MIXSRC_SE
, LUA_EXPORT("se", "Switch E")
704 #elif defined(STORAGE_SWITCH_E)
707 #if defined(HARDWARE_SWITCH_F)
708 MIXSRC_SF
, LUA_EXPORT("sf", "Switch F")
709 #elif defined(STORAGE_SWITCH_F)
712 #if defined(HARDWARE_SWITCH_G)
713 MIXSRC_SG
, LUA_EXPORT("sg", "Switch G")
714 #elif defined(STORAGE_SWITCH_G)
717 #if defined(HARDWARE_SWITCH_H)
718 MIXSRC_SH
, LUA_EXPORT("sh", "Switch H")
719 #elif defined(STORAGE_SWITCH_H)
722 #if defined(HARDWARE_SWITCH_I)
723 MIXSRC_SI
, LUA_EXPORT("si", "Switch I")
724 #elif defined(STORAGE_SWITCH_I)
727 #if defined(HARDWARE_SWITCH_J)
728 MIXSRC_SJ
, LUA_EXPORT("sj", "Switch J")
729 #elif defined(STORAGE_SWITCH_J)
732 #if defined(HARDWARE_SWITCH_K)
733 MIXSRC_SK
, LUA_EXPORT("sk", "Switch K")
734 MIXSRC_SL
, LUA_EXPORT("sl", "Switch L")
735 MIXSRC_SM
, LUA_EXPORT("sm", "Switch M")
736 MIXSRC_SN
, LUA_EXPORT("sn", "Switch N")
737 MIXSRC_SO
, LUA_EXPORT("so", "Switch O")
738 MIXSRC_SP
, LUA_EXPORT("sp", "Switch P")
739 MIXSRC_SQ
, LUA_EXPORT("sq", "Switch Q")
740 MIXSRC_SR
, LUA_EXPORT("sr", "Switch R")
742 #if defined(PCBSKY9X)
743 MIXSRC_3POS
= MIXSRC_FIRST_SWITCH
,
751 MIXSRC_FIRST_LOGICAL_SWITCH
,
752 MIXSRC_SW1
= MIXSRC_FIRST_LOGICAL_SWITCH
, LUA_EXPORT_MULTIPLE("ls", "Logical switch L%d", MAX_LOGICAL_SWITCHES
)
753 MIXSRC_LAST_LOGICAL_SWITCH
= MIXSRC_FIRST_LOGICAL_SWITCH
+MAX_LOGICAL_SWITCHES
-1,
755 MIXSRC_FIRST_TRAINER
, LUA_EXPORT_MULTIPLE("trn", "Trainer input %d", MAX_TRAINER_CHANNELS
)
756 MIXSRC_LAST_TRAINER
= MIXSRC_FIRST_TRAINER
+MAX_TRAINER_CHANNELS
-1,
759 MIXSRC_CH1
= MIXSRC_FIRST_CH
, LUA_EXPORT_MULTIPLE("ch", "Channel CH%d", MAX_OUTPUT_CHANNELS
)
775 MIXSRC_LAST_CH
= MIXSRC_CH1
+MAX_OUTPUT_CHANNELS
-1,
778 MIXSRC_GVAR1
= MIXSRC_FIRST_GVAR
, LUA_EXPORT_MULTIPLE("gvar", "Global variable %d", MAX_GVARS
)
779 MIXSRC_LAST_GVAR
= MIXSRC_FIRST_GVAR
+MAX_GVARS
-1,
781 MIXSRC_TX_VOLTAGE
, LUA_EXPORT("tx-voltage", "Transmitter battery voltage [volts]")
782 MIXSRC_TX_TIME
, LUA_EXPORT("clock", "RTC clock [minutes from midnight]")
783 #if defined(INTERNAL_GPS)
785 MIXSRC_FIRST_RESERVE
,
787 MIXSRC_FIRST_RESERVE
,
794 MIXSRC_TIMER1
= MIXSRC_FIRST_TIMER
, LUA_EXPORT("timer1", "Timer 1 value [seconds]")
795 MIXSRC_TIMER2
, LUA_EXPORT("timer2", "Timer 2 value [seconds]")
796 MIXSRC_TIMER3
, LUA_EXPORT("timer3", "Timer 3 value [seconds]")
797 MIXSRC_LAST_TIMER
= MIXSRC_TIMER3
,
799 MIXSRC_FIRST_TELEM
, LUA_EXPORT_MULTIPLE("telem", "Telemetry sensor %d", MAX_TELEMETRY_SENSORS
)
800 MIXSRC_LAST_TELEM
= MIXSRC_FIRST_TELEM
+3*MAX_TELEMETRY_SENSORS
-1
803 #if defined(__cplusplus)
804 static_assert(MIXSRC_FIRST_LOGICAL_SWITCH
== MIXSRC_FIRST_SWITCH
+ STORAGE_NUM_SWITCHES
, "Wrong switches definition in MIXSRC list");
807 #define MIXSRC_FIRST (MIXSRC_NONE + 1)
808 #define MIXSRC_LAST MIXSRC_LAST_CH
809 #define MIXSRC_LAST_SWITCH (MIXSRC_FIRST_SWITCH + STORAGE_NUM_SWITCHES - 1)
810 #define INPUTSRC_FIRST MIXSRC_Rud
811 #define INPUTSRC_LAST MIXSRC_LAST_TELEM
814 e_backlight_mode_off
= 0,
815 e_backlight_mode_keys
= 1,
816 e_backlight_mode_sticks
= 2,
817 e_backlight_mode_all
= e_backlight_mode_keys
+e_backlight_mode_sticks
,
822 // first the functions which need a checkbox
823 FUNC_OVERRIDE_CHANNEL
,
833 // then the other functions
834 FUNC_FIRST_WITHOUT_ENABLE
,
835 FUNC_PLAY_SOUND
= FUNC_FIRST_WITHOUT_ENABLE
,
842 FUNC_BACKGND_MUSIC_PAUSE
,
849 FUNC_TEST
, // should remain the last before MAX as not added in Companion
863 enum CountDownModes
{
873 enum ResetFunctionParam
{
878 FUNC_RESET_TELEMETRY
,
879 FUNC_RESET_PARAM_FIRST_TELEM
,
880 FUNC_RESET_PARAM_LAST_TELEM
= FUNC_RESET_PARAM_FIRST_TELEM
+ MAX_TELEMETRY_SENSORS
,
881 FUNC_RESET_PARAMS_COUNT
,
882 FUNC_RESET_PARAM_LAST
= FUNC_RESET_PARAMS_COUNT
-1,
885 enum AdjustGvarFunctionParam
{
886 FUNC_ADJUST_GVAR_CONSTANT
,
887 FUNC_ADJUST_GVAR_SOURCE
,
888 FUNC_ADJUST_GVAR_GVAR
,
889 FUNC_ADJUST_GVAR_INCDEC
,
892 enum BluetoothModes
{
899 #define PXX2_LEN_REGISTRATION_ID 8
900 #define PXX2_LEN_RX_NAME 8
901 #define PXX2_MAX_RECEIVERS_PER_MODULE 3
903 #endif // _DATACONSTANTS_H_