Files
edgetx-gx12/radio/src/pulses/modules_constants.h
T
c4f1e7127d chores(flysky): Separate AFHDS2A and AFHDS3 into 2 different module type (#3783)
* chores(flysky): separate AFHDS2A and AFHDS3 into 2 different module type

This should allow to remove some of the hacks added earlier.

* chore: Add some EL18 CI bits

* fix(afhds): cmake defs

* fix(ci): add el18 to commit-tests.sh

* chore(cpn): separate AFHDS2A and AFHDS3

* chore(cpn): remove binary import of afhds and legacy fxFreq field for afhds3

* fix(cpn): limit available internal afhds protocols to those supported by hardware

* chore(cpn): update Flysky int module test

* fix(cpn): compile error

* fix(cpn): afhds2a max channels

* fix: TR_MODULE_PROTOCOLS

* enh(cpn): more support for afhds2a and 3

* fix(cpn): rebase compile error

* fix(cpn): bit indexes

* fix(cpn): emi toString

* fix(cpn): limit available internal afhds protocols to those supported by hardware

* enh(cpn): add support for Flysky EL18

* fix(cpn): available protocols

* fix(cpn): rebase moduledata

* chore(cpn): add module fields to model print

* Separate AFHDS2A and AFHDS3 UI settings.

* Fix AFHDS3 conversion from old subtype value.
Fix 'Channel Range' layout on portrait LCD.

* Fix name.

---------

Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
Co-authored-by: elecpower <neilh713@tpg.com.au>
Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
2023-09-07 19:24:03 +10:00

164 lines
3.9 KiB
C

/*
* Copyright (C) EdgeTX
*
* Based on code named
* opentx - https://github.com/opentx/opentx
* th9x - http://code.google.com/p/th9x
* er9x - http://code.google.com/p/er9x
* gruvin9x - http://code.google.com/p/gruvin9x
*
* License GPLv2: http://www.gnu.org/licenses/gpl-2.0.html
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _MODULES_CONSTANTS_H_
#define _MODULES_CONSTANTS_H_
#include "storage/yaml/yaml_defs.h"
enum ModuleType {
MODULE_TYPE_NONE = 0,
MODULE_TYPE_PPM,
MODULE_TYPE_XJT_PXX1,
MODULE_TYPE_ISRM_PXX2,
MODULE_TYPE_DSM2,
MODULE_TYPE_CROSSFIRE,
MODULE_TYPE_MULTIMODULE,
MODULE_TYPE_R9M_PXX1, // R9M
MODULE_TYPE_R9M_PXX2, // R9M ACCESS
MODULE_TYPE_R9M_LITE_PXX1, //R9MLite
MODULE_TYPE_R9M_LITE_PXX2, //R9MLP
MODULE_TYPE_GHOST,
MODULE_TYPE_R9M_LITE_PRO_PXX2,
MODULE_TYPE_SBUS,
MODULE_TYPE_XJT_LITE_PXX2,
MODULE_TYPE_FLYSKY_AFHDS2A,
MODULE_TYPE_FLYSKY_AFHDS3,
MODULE_TYPE_LEMON_DSMP,
MODULE_TYPE_COUNT SKIP,
MODULE_TYPE_MAX SKIP = MODULE_TYPE_COUNT - 1
};
/* FrSky XJT / ISRM */
enum ModuleSubtypePXX1 {
MODULE_SUBTYPE_PXX1_OFF = -1,
MODULE_SUBTYPE_PXX1_ACCST_D16,
MODULE_SUBTYPE_PXX1_ACCST_D8,
MODULE_SUBTYPE_PXX1_ACCST_LR12,
MODULE_SUBTYPE_PXX1_LAST = MODULE_SUBTYPE_PXX1_ACCST_LR12
};
enum ModuleSubtypeISRM_PXX2 {
MODULE_SUBTYPE_ISRM_PXX2_ACCESS,
MODULE_SUBTYPE_ISRM_PXX2_ACCST_D16,
MODULE_SUBTYPE_ISRM_PXX2_ACCST_LR12,
MODULE_SUBTYPE_ISRM_PXX2_ACCST_D8,
MODULE_SUBTYPE_ISRM_PXX2_LAST = MODULE_SUBTYPE_ISRM_PXX2_ACCST_D8
};
enum R9MLiteLBTPowerValues {
R9M_LITE_LBT_POWER_25_8CH = 0,
R9M_LITE_LBT_POWER_25_16CH,
R9M_LITE_LBT_POWER_100_16CH_NOTELEM,
R9M_LITE_LBT_POWER_MAX = R9M_LITE_LBT_POWER_100_16CH_NOTELEM
};
enum R9MFCCPowerValues {
R9M_FCC_POWER_10 = 0,
R9M_FCC_POWER_100,
R9M_FCC_POWER_500,
R9M_FCC_POWER_1000,
R9M_FCC_POWER_MAX = R9M_FCC_POWER_1000
};
enum R9MLBTPowerValues {
R9M_LBT_POWER_25_8CH = 0,
R9M_LBT_POWER_25_16CH,
R9M_LBT_POWER_200_16CH_NOTELEM,
R9M_LBT_POWER_500_16CH_NOTELEM,
R9M_LBT_POWER_MAX = R9M_LBT_POWER_500_16CH_NOTELEM
};
enum AFHDS3PowerValues {
AFHDS3_POWER_25 = 0,
AFHDS3_POWER_50,
AFHDS3_POWER_100,
AFHDS3_POWER_250,
AFHDS3_POWER_500,
AFHDS3_POWER_1000,
AFHDS3_POWER_2000,
AFHDS3_FRM303_POWER_MAX = AFHDS3_POWER_2000,
};
enum AntennaTypes {
XJT_INTERNAL_ANTENNA = 0,
XJT_EXTERNAL_ANTENNA
};
/* FrSky R9M / R9M-Lite & co */
enum ModuleSubtypeR9M {
MODULE_SUBTYPE_R9M_FCC,
MODULE_SUBTYPE_R9M_EU,
MODULE_SUBTYPE_R9M_EUPLUS,
MODULE_SUBTYPE_R9M_AUPLUS,
MODULE_SUBTYPE_R9M_LAST=MODULE_SUBTYPE_R9M_AUPLUS
};
enum MMDSM2Subtypes {
MM_RF_DSM2_SUBTYPE_DSM2_22,
MM_RF_DSM2_SUBTYPE_DSM2_11,
MM_RF_DSM2_SUBTYPE_DSMX_22,
MM_RF_DSM2_SUBTYPE_DSMX_11,
MM_RF_DSM2_SUBTYPE_AUTO
};
enum ModuleSubtypePPM {
PPM_PROTO_TLM_NONE,
PPM_PROTO_TLM_MLINK
};
enum ModuleSubtypeDSM2 {
DSM2_PROTO_LP45,
DSM2_PROTO_DSM2,
DSM2_PROTO_DSMX,
};
enum FailsafeModes {
FAILSAFE_NOT_SET,
FAILSAFE_HOLD,
FAILSAFE_CUSTOM,
FAILSAFE_NOPULSES,
FAILSAFE_RECEIVER,
FAILSAFE_LAST SKIP = FAILSAFE_RECEIVER
};
enum AntennaModes {
ANTENNA_MODE_INTERNAL = -2,
ANTENNA_MODE_ASK = -1,
ANTENNA_MODE_PER_MODEL = 0,
ANTENNA_MODE_EXTERNAL = 1,
ANTENNA_MODE_FIRST SKIP = ANTENNA_MODE_INTERNAL,
ANTENNA_MODE_LAST SKIP = ANTENNA_MODE_EXTERNAL
};
enum AfhdsModes {
AFHDS_SUBTYPE_FIRST,
AFHDS_SUBTYPE_PWM_IBUS = AFHDS_SUBTYPE_FIRST,
AFHDS_SUBTYPE_PWM_SBUS,
AFHDS_SUBTYPE_PPM_IBUS,
AFHDS_SUBTYPE_PPM_SBUS,
AFHDS_SUBTYPE_LAST = AFHDS_SUBTYPE_PPM_SBUS
};
#endif // _MODULES_CONSTANTS_H_