Preliminary T18 support (#7581)
|
@ -351,6 +351,8 @@ elseif(PCB STREQUAL X10 AND PCBREV STREQUAL T16)
|
|||
set(FLAVOUR t16)
|
||||
elseif(PCB STREQUAL X10 AND PCBREV STREQUAL TX16S)
|
||||
set(FLAVOUR tx16s)
|
||||
elseif(PCB STREQUAL X10 AND PCBREV STREQUAL T18)
|
||||
set(FLAVOUR t18)
|
||||
else()
|
||||
string(TOLOWER ${PCB} FLAVOUR)
|
||||
endif()
|
||||
|
|
|
@ -190,6 +190,16 @@
|
|||
<file>images/simulator/JumperT16/left_tele.png</file>
|
||||
<file>images/simulator/JumperT16/right_ent.png</file>
|
||||
<file>images/simulator/JumperT16/right_rtn.png</file>
|
||||
<file>images/simulator/JumperT18/left.png</file>
|
||||
<file>images/simulator/JumperT18/right.png</file>
|
||||
<file>images/simulator/JumperT18/top.png</file>
|
||||
<file>images/simulator/JumperT18/bottom.png</file>
|
||||
<file>images/simulator/JumperT18/left_mdl.png</file>
|
||||
<file>images/simulator/JumperT18/left_page.png</file>
|
||||
<file>images/simulator/JumperT18/left_sys.png</file>
|
||||
<file>images/simulator/JumperT18/left_tele.png</file>
|
||||
<file>images/simulator/JumperT18/right_ent.png</file>
|
||||
<file>images/simulator/JumperT18/right_rtn.png</file>
|
||||
<file>images/simulator/TX16S/left.png</file>
|
||||
<file>images/simulator/TX16S/right.png</file>
|
||||
<file>images/simulator/TX16S/top.png</file>
|
||||
|
|
|
@ -81,6 +81,8 @@ uint32_t Boards::getFourCC(Type board)
|
|||
return 0x3D78746F;
|
||||
case BOARD_JUMPER_T16:
|
||||
return 0x3F78746F;
|
||||
case BOARD_JUMPER_T18:
|
||||
return 0x4078746F;
|
||||
case BOARD_RADIOMASTER_TX16S:
|
||||
return 0x3878746F;
|
||||
case BOARD_UNKNOWN:
|
||||
|
@ -116,6 +118,7 @@ int Boards::getEEpromSize(Board::Type board)
|
|||
case BOARD_X10:
|
||||
case BOARD_X10_EXPRESS:
|
||||
case BOARD_JUMPER_T16:
|
||||
case BOARD_JUMPER_T18:
|
||||
case BOARD_RADIOMASTER_TX16S:
|
||||
return 0;
|
||||
}
|
||||
|
@ -147,6 +150,7 @@ int Boards::getFlashSize(Type board)
|
|||
case BOARD_X10:
|
||||
case BOARD_X10_EXPRESS:
|
||||
case BOARD_JUMPER_T16:
|
||||
case BOARD_JUMPER_T18:
|
||||
case BOARD_RADIOMASTER_TX16S:
|
||||
return FSIZE_HORUS;
|
||||
case BOARD_UNKNOWN:
|
||||
|
@ -507,6 +511,8 @@ QString Boards::getBoardName(Board::Type board)
|
|||
return "Horus X10/X10S Express";
|
||||
case BOARD_JUMPER_T16:
|
||||
return "Jumper T16";
|
||||
case BOARD_JUMPER_T18:
|
||||
return "Jumper T18";
|
||||
case BOARD_RADIOMASTER_TX16S:
|
||||
return "Radiomaster TX16S";
|
||||
default:
|
||||
|
|
|
@ -51,9 +51,10 @@ namespace Board {
|
|||
BOARD_JUMPER_T12,
|
||||
BOARD_JUMPER_T16,
|
||||
BOARD_RADIOMASTER_TX16S,
|
||||
BOARD_JUMPER_T18,
|
||||
};
|
||||
|
||||
constexpr int BOARD_TYPE_MAX = BOARD_RADIOMASTER_TX16S ;
|
||||
constexpr int BOARD_TYPE_MAX = BOARD_JUMPER_T18;
|
||||
|
||||
enum PotType
|
||||
{
|
||||
|
@ -207,6 +208,11 @@ inline bool IS_JUMPER_T16(Board::Type board)
|
|||
return board == Board::BOARD_JUMPER_T16;
|
||||
}
|
||||
|
||||
inline bool IS_JUMPER_T18(Board::Type board)
|
||||
{
|
||||
return board == Board::BOARD_JUMPER_T18;
|
||||
}
|
||||
|
||||
inline bool IS_RADIOMASTER_TX16S(Board::Type board)
|
||||
{
|
||||
return board == Board::BOARD_RADIOMASTER_TX16S;
|
||||
|
@ -214,7 +220,7 @@ inline bool IS_RADIOMASTER_TX16S(Board::Type board)
|
|||
|
||||
inline bool IS_FAMILY_T16(Board::Type board)
|
||||
{
|
||||
return board == Board::BOARD_JUMPER_T16 || board == Board::BOARD_RADIOMASTER_TX16S;
|
||||
return board == Board::BOARD_JUMPER_T16 || board == Board::BOARD_RADIOMASTER_TX16S || board == Board::BOARD_JUMPER_T18;
|
||||
}
|
||||
|
||||
inline bool IS_TARANIS_XLITE(Board::Type board)
|
||||
|
|
|
@ -142,6 +142,7 @@ class GeneralSettings {
|
|||
unsigned int countryCode;
|
||||
bool jitterFilter;
|
||||
bool rtcCheckDisable;
|
||||
bool keysBacklight;
|
||||
unsigned int imperial;
|
||||
char ttsLanguage[2+1];
|
||||
int beepVolume;
|
||||
|
|
|
@ -26,8 +26,8 @@
|
|||
#define STR_MULTI_SUBTYPE QT_TRANSLATE_NOOP("Multiprotocols", "Subtype")
|
||||
#define STR_MULTI_VIDFREQ QT_TRANSLATE_NOOP("Multiprotocols", "Video TX frequency")
|
||||
#define STR_MULTI_RFTUNE QT_TRANSLATE_NOOP("Multiprotocols", "CC2500 frequency fine tune")
|
||||
#define STR_MULTI_RFPOWER QT_TRANSLATE_NOOP("Multiprotocols", "RF power")
|
||||
#define STR_MULTI_TELEMETRY QT_TRANSLATE_NOOP("Multiprotocols", "Telemetry")
|
||||
#define STR_MULTI_RFPOWER QT_TRANSLATE_NOOP("Multiprotocols", "Radio output power")
|
||||
#define STR_MULTI_SERVOFREQ QT_TRANSLATE_NOOP("Multiprotocols", "Servo output frequency")
|
||||
#define STR_MULTI_OPTION QT_TRANSLATE_NOOP("Multiprotocols", "Option value")
|
||||
#define STR_MULTI_FIXEDID QT_TRANSLATE_NOOP("Multiprotocols", "Fixed ID value")
|
||||
|
|
|
@ -2607,7 +2607,13 @@ OpenTxGeneralData::OpenTxGeneralData(GeneralSettings & generalData, Board::Type
|
|||
else
|
||||
internalField.Append(new SpareBitsField<2>(this));
|
||||
internalField.Append(new BoolField<1>(this, generalData.rtcCheckDisable));
|
||||
if (IS_JUMPER_T18(board)) {
|
||||
internalField.Append(new BoolField<1>(this, generalData.keysBacklight));
|
||||
internalField.Append(new SpareBitsField<1>(this));
|
||||
}
|
||||
else {
|
||||
internalField.Append(new SpareBitsField<2>(this));
|
||||
}
|
||||
|
||||
for (int i=0; i<4; i++) {
|
||||
internalField.Append(new SignedField<16>(this, generalData.trainer.calib[i]));
|
||||
|
|
|
@ -62,6 +62,8 @@ const char * OpenTxEepromInterface::getName()
|
|||
return "OpenTX for Jumper T12";
|
||||
case BOARD_JUMPER_T16:
|
||||
return "OpenTX for Jumper T16";
|
||||
case BOARD_JUMPER_T18:
|
||||
return "OpenTX for Jumper T18";
|
||||
case BOARD_RADIOMASTER_TX16S:
|
||||
return "OpenTX for Radiomaster TX16S";
|
||||
case BOARD_TARANIS_X9D:
|
||||
|
@ -738,7 +740,7 @@ bool OpenTxFirmware::isAvailable(PulsesProtocol proto, int port)
|
|||
case PULSES_ACCST_ISRM_D16:
|
||||
return IS_ACCESS_RADIO(board, id);
|
||||
case PULSES_MULTIMODULE:
|
||||
return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board);
|
||||
return id.contains("internalmulti") || IS_RADIOMASTER_TX16S(board) || IS_JUMPER_T18(board);
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
@ -1276,6 +1278,13 @@ void registerOpenTxFirmwares()
|
|||
firmware->addOptionsGroup({opt_bt, opt_internal_gps});
|
||||
registerOpenTxFirmware(firmware);
|
||||
|
||||
/* Jumper T18 board */
|
||||
firmware = new OpenTxFirmware("opentx-t18", Firmware::tr("Jumper T18"), BOARD_JUMPER_T18);
|
||||
addOpenTxFrskyOptions(firmware);
|
||||
firmware->addOption("bluetooth", Firmware::tr("Support for bluetooth module"));
|
||||
registerOpenTxFirmware(firmware);
|
||||
addOpenTxRfOptions(firmware, FLEX);
|
||||
|
||||
/* 9XR-Pro */
|
||||
firmware = new OpenTxFirmware("opentx-9xrpro", Firmware::tr("Turnigy 9XR-PRO"), BOARD_9XRPRO);
|
||||
addOpenTxArm9xOptions(firmware, false);
|
||||
|
|
|
@ -197,6 +197,12 @@ ui(new Ui::GeneralSetup)
|
|||
ui->label_OFFBright->hide();
|
||||
}
|
||||
|
||||
if (!IS_JUMPER_T18(firmware->getBoard())) {
|
||||
ui->keysBl_ChkB->hide();
|
||||
ui->keysBl_ChkB->setDisabled(true);
|
||||
ui->label_KeysBl->hide();
|
||||
}
|
||||
|
||||
if (!firmware->getCapability(SoundMod)) {
|
||||
ui->soundModeCB->setDisabled(true);
|
||||
ui->label_soundMode->hide();
|
||||
|
|
|
@ -554,348 +554,13 @@
|
|||
</item>
|
||||
<item row="0" column="3">
|
||||
<layout class="QGridLayout" name="gridLayout_3" columnstretch="0,0">
|
||||
<item row="2" column="1">
|
||||
<widget class="QSpinBox" name="volume_SB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>23</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="0">
|
||||
<widget class="QLabel" name="re_label">
|
||||
<property name="text">
|
||||
<string>RotEnc Navigation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="1">
|
||||
<widget class="QCheckBox" name="blAlarm_ChkB">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="stickReverseLB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Stick reverse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QComboBox" name="backlightswCB">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>This is the switch selectrion for turning on the backlight (if installed).
|
||||
|
||||
</string>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>-1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="blAlarm_LB">
|
||||
<property name="text">
|
||||
<string>Backlight flash on alarm</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Backlight Auto OFF after</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Backlight Switch</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QSpinBox" name="varioR0_SB">
|
||||
<property name="suffix">
|
||||
<string> ms</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>200</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>500</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="18" column="0">
|
||||
<widget class="QLabel" name="VoiceLang_label">
|
||||
<property name="text">
|
||||
<string>Voice Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="varioP0_SB">
|
||||
<property name="suffix">
|
||||
<string> Hz</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>300</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1100</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>700</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse1">
|
||||
<property name="text">
|
||||
<string notr="true">1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse2">
|
||||
<property name="text">
|
||||
<string notr="true">2</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse3">
|
||||
<property name="text">
|
||||
<string notr="true">3</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse4">
|
||||
<property name="text">
|
||||
<string notr="true">4</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="varioR0_label">
|
||||
<property name="text">
|
||||
<string>Vario repeat at zero</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="varioP0_label">
|
||||
<property name="text">
|
||||
<string>Vario pitch at zero</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="0">
|
||||
<widget class="QLabel" name="label_faimode">
|
||||
<property name="text">
|
||||
<string>FAI Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="label_OFFBright">
|
||||
<property name="text">
|
||||
<string>Backlight OFF Brightness</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QSpinBox" name="BLBright_SB">
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QSpinBox" name="backlightautoSB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>If this value is not 0, any keypress will turn on the backlight and turn it off after the specified number of seconds.</string>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string> sec</string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>600</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>5</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="speakerPitchSB">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">LCD Screen Contrast</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Values can be 20-45</span></p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QSpinBox" name="varioPMax_SB">
|
||||
<property name="suffix">
|
||||
<string> Hz</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1300</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>2900</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>1700</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="0">
|
||||
<widget class="QLabel" name="label_timezone">
|
||||
<property name="text">
|
||||
<string>Timeshift from UTC</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QSpinBox" name="OFFBright_SB">
|
||||
<property name="minimum">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<widget class="QComboBox" name="countrycode_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>America</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Japan</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Europe</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="1">
|
||||
<widget class="QCheckBox" name="faimode_CB">
|
||||
<property name="toolTip">
|
||||
<string>If you enable FAI, only RSSI and RxBt sensors will keep working. This function cannot be disabled by the radio.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="soundModeCB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Beeper</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Speaker</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>BeeperVoice</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>SpeakerVoice</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_BLBright">
|
||||
<property name="text">
|
||||
<string>Backlight Brightness</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0" colspan="2">
|
||||
<layout class="QGridLayout" name="gridLayout_9" columnstretch="1,0,1,0">
|
||||
<item row="0" column="0">
|
||||
|
@ -992,24 +657,288 @@ p, li { white-space: pre-wrap; }
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="12" column="0">
|
||||
<widget class="QLabel" name="backlightColor_label">
|
||||
<item row="19" column="1">
|
||||
<widget class="QComboBox" name="voiceLang_CB"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_soundMode">
|
||||
<property name="text">
|
||||
<string>Backlight color</string>
|
||||
<string>Sound Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="varioPMax_label">
|
||||
<item row="9" column="1">
|
||||
<widget class="QCheckBox" name="blAlarm_ChkB">
|
||||
<property name="text">
|
||||
<string>Vario pitch at max</string>
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_speakerPitch">
|
||||
<item row="15" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse1">
|
||||
<property name="text">
|
||||
<string>Speaker Pitch (spkr only)</string>
|
||||
<string notr="true">1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse2">
|
||||
<property name="text">
|
||||
<string notr="true">2</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse3">
|
||||
<property name="text">
|
||||
<string notr="true">3</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="stickReverse4">
|
||||
<property name="text">
|
||||
<string notr="true">4</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="7" column="1">
|
||||
<widget class="QComboBox" name="backlightswCB">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>This is the switch selectrion for turning on the backlight (if installed).
|
||||
|
||||
</string>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>-1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="varioP0_SB">
|
||||
<property name="suffix">
|
||||
<string> Hz</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>300</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1100</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>700</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="21" column="0">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="6" column="1">
|
||||
<widget class="QSpinBox" name="varioR0_SB">
|
||||
<property name="suffix">
|
||||
<string> ms</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>200</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>1000</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>500</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="15" column="0">
|
||||
<widget class="QLabel" name="stickReverseLB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Stick reverse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="20" column="1">
|
||||
<widget class="QLineEdit" name="registrationId">
|
||||
<property name="inputMask">
|
||||
<string>nnnnnnNN</string>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>8</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QComboBox" name="soundModeCB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Beeper</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Speaker</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>BeeperVoice</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>SpeakerVoice</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="0">
|
||||
<widget class="QLabel" name="label_OFFBright">
|
||||
<property name="text">
|
||||
<string>Backlight OFF Brightness</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QSpinBox" name="volume_SB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>23</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="0">
|
||||
<widget class="QLabel" name="re_label">
|
||||
<property name="text">
|
||||
<string>RotEnc Navigation</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="11" column="1">
|
||||
<widget class="QSpinBox" name="OFFBright_SB">
|
||||
<property name="minimum">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>Backlight Switch</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="1">
|
||||
<widget class="QComboBox" name="countrycode_CB">
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>America</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Japan</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Europe</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="varioP0_label">
|
||||
<property name="text">
|
||||
<string>Vario pitch at zero</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="1">
|
||||
<widget class="QCheckBox" name="faimode_CB">
|
||||
<property name="toolTip">
|
||||
<string>If you enable FAI, only RSSI and RxBt sensors will keep working. This function cannot be disabled by the radio.</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Backlight Auto OFF after</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<widget class="QSpinBox" name="varioPMax_SB">
|
||||
<property name="suffix">
|
||||
<string> Hz</string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1300</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>2900</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>10</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>1700</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="10" column="1">
|
||||
<widget class="QSpinBox" name="BLBright_SB">
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<widget class="QLabel" name="label_faimode">
|
||||
<property name="text">
|
||||
<string>FAI Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -1044,31 +973,56 @@ p, li { white-space: pre-wrap; }
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="16" column="0">
|
||||
<item row="12" column="0">
|
||||
<widget class="QLabel" name="backlightColor_label">
|
||||
<property name="text">
|
||||
<string>Backlight color</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="20" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>Owner Registration ID</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="1">
|
||||
<widget class="QSpinBox" name="backlightautoSB">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string>If this value is not 0, any keypress will turn on the backlight and turn it off after the specified number of seconds.</string>
|
||||
</property>
|
||||
<property name="suffix">
|
||||
<string> sec</string>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>600</number>
|
||||
</property>
|
||||
<property name="singleStep">
|
||||
<number>5</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="0">
|
||||
<widget class="QLabel" name="countrycode_label">
|
||||
<property name="text">
|
||||
<string>Country Code</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<widget class="QComboBox" name="re_CB"/>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_soundMode">
|
||||
<property name="text">
|
||||
<string>Sound Mode</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_volume">
|
||||
<property name="text">
|
||||
<string>Speaker Volume</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="17" column="1">
|
||||
<item row="18" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QSpinBox" name="timezoneSB">
|
||||
|
@ -1098,36 +1052,96 @@ p, li { white-space: pre-wrap; }
|
|||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="18" column="1">
|
||||
<widget class="QComboBox" name="voiceLang_CB"/>
|
||||
</item>
|
||||
<item row="20" column="0">
|
||||
<spacer name="verticalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="19" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<item row="10" column="0">
|
||||
<widget class="QLabel" name="label_BLBright">
|
||||
<property name="text">
|
||||
<string>Owner Registration ID</string>
|
||||
<string>Backlight Brightness</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="1">
|
||||
<widget class="QLineEdit" name="registrationId">
|
||||
<property name="inputMask">
|
||||
<string>nnnnnnNN</string>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="varioR0_label">
|
||||
<property name="text">
|
||||
<string>Vario repeat at zero</string>
|
||||
</property>
|
||||
<property name="maxLength">
|
||||
<number>8</number>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="19" column="0">
|
||||
<widget class="QLabel" name="VoiceLang_label">
|
||||
<property name="text">
|
||||
<string>Voice Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QLabel" name="blAlarm_LB">
|
||||
<property name="text">
|
||||
<string>Backlight flash on alarm</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="varioPMax_label">
|
||||
<property name="text">
|
||||
<string>Vario pitch at max</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="14" column="1">
|
||||
<widget class="QComboBox" name="re_CB"/>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_speakerPitch">
|
||||
<property name="text">
|
||||
<string>Speaker Pitch (spkr only)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_volume">
|
||||
<property name="text">
|
||||
<string>Speaker Volume</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QSpinBox" name="speakerPitchSB">
|
||||
<property name="toolTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;">
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">LCD Screen Contrast</span></p>
|
||||
<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Values can be 20-45</span></p></body></html></string>
|
||||
</property>
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>1</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="0">
|
||||
<widget class="QLabel" name="label_KeysBl">
|
||||
<property name="text">
|
||||
<string>Keys Backlight</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="13" column="1">
|
||||
<widget class="QCheckBox" name="keysBl_ChkB">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
BIN
companion/src/images/simulator/JumperT18/bottom.png
Normal file
After Width: | Height: | Size: 250 B |
BIN
companion/src/images/simulator/JumperT18/left.png
Executable file
After Width: | Height: | Size: 37 KiB |
BIN
companion/src/images/simulator/JumperT18/left_mdl.png
Executable file
After Width: | Height: | Size: 37 KiB |
BIN
companion/src/images/simulator/JumperT18/left_page.png
Executable file
After Width: | Height: | Size: 37 KiB |
BIN
companion/src/images/simulator/JumperT18/left_sys.png
Executable file
After Width: | Height: | Size: 37 KiB |
BIN
companion/src/images/simulator/JumperT18/left_tele.png
Executable file
After Width: | Height: | Size: 37 KiB |
BIN
companion/src/images/simulator/JumperT18/right.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
companion/src/images/simulator/JumperT18/right_ent.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
companion/src/images/simulator/JumperT18/right_rtn.png
Normal file
After Width: | Height: | Size: 36 KiB |
BIN
companion/src/images/simulator/JumperT18/top.png
Normal file
After Width: | Height: | Size: 439 B |
|
@ -14,6 +14,7 @@ set(simulation_SRCS
|
|||
simulateduiwidgetX12.cpp
|
||||
simulateduiwidgetJumperT12.cpp
|
||||
simulateduiwidgetJumperT16.cpp
|
||||
simulateduiwidgetJumperT18.cpp
|
||||
simulateduiwidgetTX16S.cpp
|
||||
simulatorinterface.cpp
|
||||
simulatormainwindow.cpp
|
||||
|
@ -39,6 +40,7 @@ set(simulation_UIS
|
|||
simulateduiwidgetX12.ui
|
||||
simulateduiwidgetJumperT12.ui
|
||||
simulateduiwidgetJumperT16.ui
|
||||
simulateduiwidgetJumperT18.ui
|
||||
simulateduiwidgetTX16S.ui
|
||||
simulatormainwindow.ui
|
||||
simulatorstartupdialog.ui
|
||||
|
|
|
@ -113,6 +113,7 @@ namespace Ui {
|
|||
class SimulatedUIWidgetX12;
|
||||
class SimulatedUIWidgetJumperT12;
|
||||
class SimulatedUIWidgetJumperT16;
|
||||
class SimulatedUIWidgetJumperT18;
|
||||
class SimulatedUIWidgetTX16S;
|
||||
}
|
||||
|
||||
|
@ -252,6 +253,18 @@ class SimulatedUIWidgetJumperT16: public SimulatedUIWidget
|
|||
Ui::SimulatedUIWidgetJumperT16 * ui;
|
||||
};
|
||||
|
||||
class SimulatedUIWidgetJumperT18: public SimulatedUIWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SimulatedUIWidgetJumperT18(SimulatorInterface * simulator, QWidget * parent = nullptr);
|
||||
virtual ~SimulatedUIWidgetJumperT18();
|
||||
|
||||
private:
|
||||
Ui::SimulatedUIWidgetJumperT18 * ui;
|
||||
};
|
||||
|
||||
class SimulatedUIWidgetTX16S: public SimulatedUIWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
|
69
companion/src/simulation/simulateduiwidgetJumperT18.cpp
Normal file
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
* Copyright (C) OpenTX
|
||||
*
|
||||
* Based on code named
|
||||
* 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.
|
||||
*/
|
||||
|
||||
// NOTE: RadioUiAction(NUMBER,...): NUMBER relates to enum EnumKeys in the specific board.h
|
||||
|
||||
#include "simulateduiwidget.h"
|
||||
#include "ui_simulateduiwidgetJumperT18.h"
|
||||
|
||||
SimulatedUIWidgetJumperT18::SimulatedUIWidgetJumperT18(SimulatorInterface *simulator, QWidget * parent):
|
||||
SimulatedUIWidget(simulator, parent),
|
||||
ui(new Ui::SimulatedUIWidgetJumperT18)
|
||||
{
|
||||
RadioUiAction * act;
|
||||
|
||||
ui->setupUi(this);
|
||||
|
||||
// add actions in order of appearance on the help menu
|
||||
|
||||
act = new RadioUiAction(3, QList<int>() << Qt::Key_Up, SIMU_STR_HLP_KEY_UP, SIMU_STR_HLP_ACT_MDL);
|
||||
addRadioWidget(ui->leftbuttons->addArea(QRect(60, 90, 80, 35), "JumperT18/left_mdl.png", act));
|
||||
|
||||
act = new RadioUiAction(6, QList<int>() << Qt::Key_Left, SIMU_STR_HLP_KEY_LFT, SIMU_STR_HLP_ACT_SYS);
|
||||
addRadioWidget(ui->leftbuttons->addArea(QRect(25, 5, 100, 40), "JumperT18/left_sys.png", act));
|
||||
|
||||
act = new RadioUiAction(5, QList<int>() << Qt::Key_Right, SIMU_STR_HLP_KEY_RGT, SIMU_STR_HLP_ACT_TELE);
|
||||
addRadioWidget(ui->leftbuttons->addArea(QRect(60, 180, 80, 35), "JumperT18/left_tele.png", act));
|
||||
|
||||
act = new RadioUiAction(4, QList<int>() << Qt::Key_Down << Qt::Key_Delete << Qt::Key_Escape << Qt::Key_Backspace,
|
||||
SIMU_STR_HLP_KEY_DN % "<br>" % SIMU_STR_HLP_KEYS_EXIT, SIMU_STR_HLP_ACT_RTN);
|
||||
addRadioWidget(ui->rightbuttons->addArea(QRect(20, 5, 100, 40), "JumperT18/right_rtn.png", act));
|
||||
|
||||
act = new RadioUiAction(1, QList<int>() << Qt::Key_PageDown, SIMU_STR_HLP_KEY_PGDN, SIMU_STR_HLP_ACT_PGDN);
|
||||
addRadioWidget(ui->leftbuttons->addArea(QRect(60, 140, 80, 35), "JumperT18/left.png", act));
|
||||
|
||||
m_scrollUpAction = new RadioUiAction(-1, QList<int>() << Qt::Key_Minus, SIMU_STR_HLP_KEY_MIN % "|" % SIMU_STR_HLP_MOUSE_UP, SIMU_STR_HLP_ACT_ROT_LFT);
|
||||
m_scrollDnAction = new RadioUiAction(-1, QList<int>() << Qt::Key_Plus << Qt::Key_Equal, SIMU_STR_HLP_KEY_PLS % "|" % SIMU_STR_HLP_MOUSE_DN, SIMU_STR_HLP_ACT_ROT_RGT);
|
||||
connectScrollActions();
|
||||
|
||||
m_mouseMidClickAction = new RadioUiAction(2, QList<int>() << Qt::Key_Enter << Qt::Key_Return, SIMU_STR_HLP_KEYS_ACTIVATE, SIMU_STR_HLP_ACT_ROT_DN);
|
||||
addRadioWidget(ui->rightbuttons->addArea(QRect(25, 90, 70, 130), "JumperT18/right_ent.png", m_mouseMidClickAction));
|
||||
|
||||
addRadioWidget(ui->leftbuttons->addArea(QRect(10, 245, 30, 30), "JumperT18/left_scrnsht.png", m_screenshotAction));
|
||||
|
||||
m_backlightColors << QColor(47, 123, 227);
|
||||
|
||||
setLcd(ui->lcd);
|
||||
}
|
||||
|
||||
SimulatedUIWidgetJumperT18::~SimulatedUIWidgetJumperT18()
|
||||
{
|
||||
delete ui;
|
||||
}
|
197
companion/src/simulation/simulateduiwidgetJumperT18.ui
Normal file
|
@ -0,0 +1,197 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>SimulatedUIWidgetJumperT18</class>
|
||||
<widget class="QWidget" name="SimulatedUIWidgetJumperT18">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>825</width>
|
||||
<height>292</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>825</width>
|
||||
<height>292</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>825</width>
|
||||
<height>292</height>
|
||||
</size>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item row="0" column="2" rowspan="3">
|
||||
<widget class="ButtonsWidget" name="rightbuttons" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>131 </width>
|
||||
<height>289</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>131</width>
|
||||
<height>289</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background:url(:/images/simulator/JumperT18/right.png)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="LcdWidget" name="lcd" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>480</width>
|
||||
<height>272</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>480</width>
|
||||
<height>272</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>5</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0" rowspan="3">
|
||||
<widget class="ButtonsWidget" name="leftbuttons" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>131</width>
|
||||
<height>289</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>131</width>
|
||||
<height>289</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="mouseTracking">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background:url(:/images/simulator/JumperT18/left.png);</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QWidget" name="top" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>480</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>480</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>5</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background:url(:/images/simulator/JumperT18/top.png)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QWidget" name="bottom" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>480</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>480</width>
|
||||
<height>10</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>5</pointsize>
|
||||
<kerning>false</kerning>
|
||||
</font>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true">background:url(:/images/simulator/JumperT18/bottom.png)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>LcdWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>lcdwidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>ButtonsWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>buttonswidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -86,7 +86,7 @@ void SimulatorStartupDialog::changeEvent(QEvent *e)
|
|||
// FIXME : need a better way to check for this
|
||||
bool SimulatorStartupDialog::usesCategorizedStorage(const QString & name)
|
||||
{
|
||||
return name.contains(QRegExp("(x12|x10|horus|16)", Qt::CaseInsensitive));
|
||||
return name.contains(QRegExp("(x12|x10|horus|16|18)", Qt::CaseInsensitive));
|
||||
}
|
||||
|
||||
bool SimulatorStartupDialog::usesCategorizedStorage()
|
||||
|
|
|
@ -94,6 +94,9 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato
|
|||
case Board::BOARD_JUMPER_T16:
|
||||
radioUiWidget = new SimulatedUIWidgetJumperT16(simulator, this);
|
||||
break;
|
||||
case Board::BOARD_JUMPER_T18:
|
||||
radioUiWidget = new SimulatedUIWidgetJumperT18(simulator, this);
|
||||
break;
|
||||
case Board::BOARD_RADIOMASTER_TX16S:
|
||||
radioUiWidget = new SimulatedUIWidgetTX16S(simulator, this);
|
||||
break;
|
||||
|
|
BIN
radio/sdcard/horus/THEMES/Darkblue/t18.bmp
Executable file
After Width: | Height: | Size: 161 KiB |
BIN
radio/sdcard/horus/THEMES/Default/t18.bmp
Executable file
After Width: | Height: | Size: 161 KiB |
|
@ -1,6 +1,9 @@
|
|||
if(PCB STREQUAL X12S)
|
||||
set(BITMAP_TARGET_PREFIX x12s)
|
||||
set(BITMAP_FMT_SUFFIX "")
|
||||
elseif(PCB STREQUAL X10 AND PCBREV STREQUAL T18)
|
||||
set(BITMAP_TARGET_PREFIX x10)
|
||||
set(BITMAP_FMT_SUFFIX "")
|
||||
else()
|
||||
set(BITMAP_TARGET_PREFIX x10)
|
||||
set(BITMAP_FMT_SUFFIX "-R")
|
||||
|
|
|
@ -744,7 +744,12 @@ PACK(struct RadioData {
|
|||
uint8_t backlightMode:3;
|
||||
int8_t antennaMode:2;
|
||||
uint8_t disableRtcWarning:1;
|
||||
#if defined(KEYS_BACKLIGHT_GPIO)
|
||||
uint8_t keysBacklight:1;
|
||||
int8_t spare1:1;
|
||||
#else
|
||||
int8_t spare1:2;
|
||||
#endif
|
||||
NOBACKUP(TrainerData trainer);
|
||||
NOBACKUP(uint8_t view); // index of view in main screen
|
||||
NOBACKUP(BUZZER_FIELD); /* 2bits */
|
||||
|
|
|
@ -1544,6 +1544,9 @@ void menuModelSetup(event_t event)
|
|||
if (multi_proto == MODULE_SUBTYPE_MULTI_FS_AFHDS2A)
|
||||
optionValue = 50 + 5 * optionValue;
|
||||
|
||||
if (multi_proto == MODULE_SUBTYPE_MULTI_FRSKY_R9)
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MULTI_POWER, optionValue, LEFT | attr);
|
||||
else
|
||||
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, optionValue, LEFT | attr);
|
||||
if (attr) {
|
||||
int8_t min, max;
|
||||
|
|
|
@ -76,6 +76,6 @@ void menuRadioDiagKeys(event_t event)
|
|||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
coord_t y = MENU_HEADER_HEIGHT + 1 + FH*KEY_COUNT;
|
||||
lcdDrawText(0, y, STR_ROTARY_ENCODER);
|
||||
lcdDrawNumber(5*FW+FWNUM+2, y, rotencValue, RIGHT);
|
||||
lcdDrawNumber(5*FW+FWNUM+2, y, rotencValue / ROTARY_ENCODER_GRANULARITY, RIGHT);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -1309,6 +1309,9 @@ void menuModelSetup(event_t event)
|
|||
if (multi_proto == MODULE_SUBTYPE_MULTI_FS_AFHDS2A)
|
||||
optionValue = 50 + 5 * optionValue;
|
||||
|
||||
if (multi_proto == MODULE_SUBTYPE_MULTI_FRSKY_R9)
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MULTI_POWER, optionValue, LEFT | attr);
|
||||
else
|
||||
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, optionValue, LEFT | attr);
|
||||
if (attr) {
|
||||
int8_t min, max;
|
||||
|
|
|
@ -59,6 +59,6 @@ void menuRadioDiagKeys(event_t event)
|
|||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
coord_t y = MENU_HEADER_HEIGHT + 1 + FH*KEY_COUNT;
|
||||
lcdDrawText(0, y, STR_ROTARY_ENCODER);
|
||||
lcdDrawNumber(5*FW+FWNUM+2, y, rotencValue, RIGHT);
|
||||
lcdDrawNumber(5*FW+FWNUM+2, y, rotencValue / ROTARY_ENCODER_GRANULARITY, RIGHT);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include "colors.h"
|
||||
#include "rle.h"
|
||||
|
||||
#if defined(PCBX10) && !defined(SIMU)
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
#define MOVE_PIXEL_RIGHT(p, count) p -= count
|
||||
#else
|
||||
#define MOVE_PIXEL_RIGHT(p, count) p += count
|
||||
|
@ -100,7 +100,7 @@ class BitmapBufferBase
|
|||
|
||||
inline const display_t * getPixelPtr(coord_t x, coord_t y) const
|
||||
{
|
||||
#if defined(PCBX10) && !defined(SIMU)
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
x = width - x - 1;
|
||||
y = height - y - 1;
|
||||
#endif
|
||||
|
@ -201,7 +201,7 @@ class BitmapBuffer: public BitmapBufferBase<uint16_t>
|
|||
|
||||
inline const display_t * getPixelPtr(coord_t x, coord_t y) const
|
||||
{
|
||||
#if defined(PCBX10) && !defined(SIMU)
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
x = width - x - 1;
|
||||
y = height - y - 1;
|
||||
#endif
|
||||
|
@ -210,7 +210,7 @@ class BitmapBuffer: public BitmapBufferBase<uint16_t>
|
|||
|
||||
inline display_t * getPixelPtr(coord_t x, coord_t y)
|
||||
{
|
||||
#if defined(PCBX10) && !defined(SIMU)
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
x = width - x - 1;
|
||||
y = height - y - 1;
|
||||
#endif
|
||||
|
|
|
@ -156,7 +156,7 @@ void putsChnLetter(coord_t x, coord_t y, uint8_t idx, LcdFlags attr);
|
|||
#define DOTTED 0x55
|
||||
#define STASHED 0x33
|
||||
|
||||
#if defined(PCBX10) && !defined(SIMU)
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
#define PIXEL_PTR(x, y) &displayBuf[(LCD_H*LCD_W-1) - (y)*LCD_W - (x)]
|
||||
#else
|
||||
#define PIXEL_PTR(x, y) &displayBuf[(y)*LCD_W + (x)]
|
||||
|
|
|
@ -1686,6 +1686,9 @@ bool menuModelSetup(event_t event)
|
|||
if (multi_proto == MODULE_SUBTYPE_MULTI_FS_AFHDS2A)
|
||||
optionValue = 50 + 5 * optionValue;
|
||||
|
||||
if (multi_proto == MODULE_SUBTYPE_MULTI_FRSKY_R9)
|
||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MULTI_POWER, optionValue, LEFT | attr);
|
||||
else
|
||||
lcdDrawNumber(MODEL_SETUP_2ND_COLUMN, y, optionValue, LEFT | attr);
|
||||
if (attr) {
|
||||
int8_t min, max;
|
||||
|
|
|
@ -73,7 +73,7 @@ bool menuRadioDiagKeys(event_t event)
|
|||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
coord_t y = MENU_HEADER_HEIGHT + FH * (8 - KEY_START);
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_ROTARY_ENCODER);
|
||||
lcdDrawNumber(70, y, rotencValue, 0);
|
||||
lcdDrawNumber(70, y, rotencValue / ROTARY_ENCODER_GRANULARITY, 0);
|
||||
#endif
|
||||
|
||||
return true;
|
||||
|
|
|
@ -65,6 +65,9 @@ enum menuRadioSetupItems {
|
|||
ITEM_SETUP_BACKLIGHT_DELAY,
|
||||
ITEM_SETUP_BRIGHTNESS,
|
||||
ITEM_SETUP_DIM_LEVEL,
|
||||
#if defined(KEYS_BACKLIGHT_GPIO)
|
||||
ITEM_SETUP_KEYS_BACKLIGHT,
|
||||
#endif
|
||||
ITEM_SETUP_FLASH_BEEP,
|
||||
CASE_PWR_BUTTON_PRESS(ITEM_SETUP_PWR_OFF_SPEED)
|
||||
#if defined(PXX2)
|
||||
|
@ -110,6 +113,11 @@ bool menuRadioSetup(event_t event)
|
|||
#else
|
||||
#define FAI_CHOICE_ROW
|
||||
#endif
|
||||
#if defined(KEYS_BACKLIGHT_GPIO)
|
||||
#define BACKLIGHT_ROWS LABEL(BACKLIGHT), 0, 0, 0, 0, 0, 0,
|
||||
#else
|
||||
#define BACKLIGHT_ROWS LABEL(BACKLIGHT), 0, 0, 0, 0, 0,
|
||||
#endif
|
||||
|
||||
MENU(STR_MENURADIOSETUP, RADIO_ICONS, menuTabGeneral, MENU_RADIO_SETUP, ITEM_SETUP_MAX, {
|
||||
2|NAVIGATION_LINE_BY_LINE, 2|NAVIGATION_LINE_BY_LINE, 1|NAVIGATION_LINE_BY_LINE, // Date Time Bat range
|
||||
|
@ -117,7 +125,7 @@ bool menuRadioSetup(event_t event)
|
|||
CASE_VARIO(LABEL(VARIO)) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0) CASE_VARIO(0)
|
||||
CASE_HAPTIC(LABEL(HAPTIC)) CASE_HAPTIC(0) CASE_HAPTIC(0) CASE_HAPTIC(0)
|
||||
LABEL(ALARMS), 0, 0, 0, 0,
|
||||
LABEL(BACKLIGHT), 0, 0, 0, 0, 0,
|
||||
BACKLIGHT_ROWS
|
||||
CASE_PWR_BUTTON_PRESS(0)
|
||||
CASE_PXX2(0) // owner registration ID
|
||||
CASE_GPS(LABEL(GPS))
|
||||
|
@ -373,7 +381,7 @@ bool menuRadioSetup(event_t event)
|
|||
break;
|
||||
|
||||
case ITEM_SETUP_BACKLIGHT_MODE:
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_MODE);
|
||||
lcdDrawText(MENUS_MARGIN_LEFT + INDENT_WIDTH , y, STR_MODE);
|
||||
g_eeGeneral.backlightMode = editChoice(RADIO_SETUP_2ND_COLUMN, y, STR_VBLMODE, g_eeGeneral.backlightMode, e_backlight_mode_off, e_backlight_mode_on, attr, event);
|
||||
break;
|
||||
|
||||
|
@ -388,7 +396,6 @@ bool menuRadioSetup(event_t event)
|
|||
editName(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.ownerRegistrationID, PXX2_LEN_REGISTRATION_ID, event, attr);
|
||||
break;
|
||||
#endif
|
||||
|
||||
case ITEM_SETUP_BACKLIGHT_DELAY:
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_BLDELAY);
|
||||
lcdDrawNumber(RADIO_SETUP_2ND_COLUMN, y, g_eeGeneral.lightAutoOff*5, attr|LEFT, 0, NULL, "s");
|
||||
|
@ -405,6 +412,13 @@ bool menuRadioSetup(event_t event)
|
|||
g_eeGeneral.blOffBright = editSlider(RADIO_SETUP_2ND_COLUMN, y, event, g_eeGeneral.blOffBright, BACKLIGHT_LEVEL_MIN, BACKLIGHT_LEVEL_MAX, attr);
|
||||
break;
|
||||
|
||||
#if defined(KEYS_BACKLIGHT_GPIO)
|
||||
case ITEM_SETUP_KEYS_BACKLIGHT:
|
||||
lcdDrawText(MENUS_MARGIN_LEFT + INDENT_WIDTH , y, STR_KEYS_BACKLIGHT);
|
||||
g_eeGeneral.keysBacklight = editCheckBox(g_eeGeneral.keysBacklight, RADIO_SETUP_2ND_COLUMN, y, attr, event ) ;
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(PWR_BUTTON_PRESS)
|
||||
case ITEM_SETUP_PWR_OFF_SPEED:
|
||||
lcdDrawText(MENUS_MARGIN_LEFT, y, STR_PWR_OFF_DELAY);
|
||||
|
|
|
@ -139,6 +139,8 @@ class DarkblueTheme: public Theme
|
|||
delete calibHorus;
|
||||
#if defined(RADIO_T16)
|
||||
calibHorus = BitmapBuffer::load(getThemePath("t16.bmp"));
|
||||
#elif defined(RADIO_T18)
|
||||
calibHorus = BitmapBuffer::load(getThemePath("t18.bmp"));
|
||||
#elif defined(RADIO_TX16S)
|
||||
calibHorus = BitmapBuffer::load(getThemePath("tx16s.bmp"));
|
||||
#elif defined(PCBX10)
|
||||
|
|
|
@ -176,6 +176,8 @@ class DefaultTheme: public Theme
|
|||
delete calibHorus;
|
||||
#if defined(RADIO_T16)
|
||||
calibHorus = BitmapBuffer::load(getThemePath("t16.bmp"));
|
||||
#elif defined(RADIO_T18)
|
||||
calibHorus = BitmapBuffer::load(getThemePath("t18.bmp"));
|
||||
#elif defined(RADIO_TX16S)
|
||||
calibHorus = BitmapBuffer::load(getThemePath("tx16s.bmp"));
|
||||
#elif defined(PCBX10)
|
||||
|
|
|
@ -921,7 +921,8 @@ const char* mm_options_strings::options[] = {
|
|||
STR_MULTI_TELEMETRY,
|
||||
STR_MULTI_SERVOFREQ,
|
||||
STR_MULTI_MAX_THROW,
|
||||
STR_MULTI_RFCHAN
|
||||
STR_MULTI_RFCHAN,
|
||||
STR_MULTI_RFPOWER
|
||||
};
|
||||
|
||||
const mm_protocol_definition multi_protocols[] = {
|
||||
|
|
|
@ -2073,6 +2073,10 @@ int main()
|
|||
|
||||
inline uint32_t PWR_PRESS_SHUTDOWN_DELAY()
|
||||
{
|
||||
// Instant off when both power button are pressed
|
||||
if (pwrForcePressed())
|
||||
return 0;
|
||||
|
||||
return (2 - g_eeGeneral.pwrOffSpeed) * 100;
|
||||
}
|
||||
|
||||
|
|
|
@ -536,7 +536,7 @@ bool setTrimValue(uint8_t phase, uint8_t idx, int trim);
|
|||
|
||||
#if defined(PCBSKY9X)
|
||||
#define ROTARY_ENCODER_GRANULARITY (2 << g_eeGeneral.rotarySteps)
|
||||
#elif defined(RADIO_FAMILY_T16)
|
||||
#elif defined(RADIO_FAMILY_T16) && !defined(RADIO_T18)
|
||||
#define ROTARY_ENCODER_GRANULARITY (1)
|
||||
#else
|
||||
#define ROTARY_ENCODER_GRANULARITY (2)
|
||||
|
|
|
@ -666,6 +666,10 @@ inline void getMultiOptionValues(int8_t multi_proto, int8_t & min, int8_t & max)
|
|||
min = -1;
|
||||
max = 84;
|
||||
break;
|
||||
case MODULE_SUBTYPE_MULTI_FRSKY_R9:
|
||||
min = 0; // 10mW
|
||||
max = 5; // 300mW
|
||||
break;
|
||||
default:
|
||||
min = -128;
|
||||
max = 127;
|
||||
|
|
|
@ -128,6 +128,8 @@ const char * getBasename(const char * path);
|
|||
#define OTX_FOURCC 0x3478746F // otx for X12S
|
||||
#elif defined(RADIO_T16)
|
||||
#define OTX_FOURCC 0x3F78746F // otx for Jumper T16
|
||||
#elif defined(RADIO_T18)
|
||||
#define OTX_FOURCC 0x4078746F // otx for Jumper T18
|
||||
#elif defined(RADIO_TX16S)
|
||||
#define OTX_FOURCC 0x3878746F // otx for Radiomaster TX16S
|
||||
#elif defined(PCBX10)
|
||||
|
|
|
@ -24,6 +24,8 @@
|
|||
// not needed
|
||||
#elif defined(RADIO_T16)
|
||||
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,1, -1,1, -1,1};
|
||||
#elif defined(RADIO_T18)
|
||||
const int8_t adcDirection[NUM_ANALOGS] = { 1,-1,1,-1, -1,1,-1, -1,1, -1,1 };
|
||||
#elif defined(RADIO_TX16S)
|
||||
const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1,1, -1,1, -1,1};
|
||||
#elif defined(PCBX10)
|
||||
|
|
|
@ -197,7 +197,8 @@ int main()
|
|||
|
||||
RCC_AHB1PeriphClockCmd(PWR_RCC_AHB1Periph | KEYS_RCC_AHB1Periph |
|
||||
LCD_RCC_AHB1Periph | BACKLIGHT_RCC_AHB1Periph |
|
||||
AUX_SERIAL_RCC_AHB1Periph | AUX2_SERIAL_RCC_AHB1Periph | I2C_RCC_AHB1Periph |
|
||||
AUX_SERIAL_RCC_AHB1Periph | AUX2_SERIAL_RCC_AHB1Periph |
|
||||
I2C_RCC_AHB1Periph | KEYS_BACKLIGHT_RCC_AHB1Periph |
|
||||
SD_RCC_AHB1Periph, ENABLE);
|
||||
|
||||
RCC_APB1PeriphClockCmd(ROTARY_ENCODER_RCC_APB1Periph | LCD_RCC_APB1Periph | BACKLIGHT_RCC_APB1Periph |
|
||||
|
|
|
@ -51,6 +51,12 @@ void pwrInit()
|
|||
GPIO_InitStructure.GPIO_Pin = PWR_SWITCH_GPIO_PIN;
|
||||
GPIO_Init(PWR_SWITCH_GPIO, &GPIO_InitStructure);
|
||||
|
||||
#if defined(PWR_EXTRA_SWITCH_GPIO)
|
||||
// PWR Extra switch
|
||||
GPIO_InitStructure.GPIO_Pin = PWR_EXTRA_SWITCH_GPIO_PIN;
|
||||
GPIO_Init(PWR_EXTRA_SWITCH_GPIO, &GPIO_InitStructure);
|
||||
#endif
|
||||
|
||||
#if defined(PCBREV_HARDCODED)
|
||||
hardwareOptions.pcbrev = PCBREV_HARDCODED;
|
||||
#elif defined(PCBREV_GPIO_PIN)
|
||||
|
@ -101,9 +107,20 @@ void pwrOff()
|
|||
GPIO_ResetBits(PWR_ON_GPIO, PWR_ON_GPIO_PIN);
|
||||
}
|
||||
|
||||
#if defined(PWR_EXTRA_SWITCH_GPIO)
|
||||
bool pwrForcePressed()
|
||||
{
|
||||
return (GPIO_ReadInputDataBit(PWR_SWITCH_GPIO, PWR_SWITCH_GPIO_PIN) == Bit_RESET && GPIO_ReadInputDataBit(PWR_EXTRA_SWITCH_GPIO, PWR_EXTRA_SWITCH_GPIO_PIN) == Bit_RESET);
|
||||
}
|
||||
#endif
|
||||
|
||||
bool pwrPressed()
|
||||
{
|
||||
#if defined(PWR_EXTRA_SWITCH_GPIO)
|
||||
return (GPIO_ReadInputDataBit(PWR_SWITCH_GPIO, PWR_SWITCH_GPIO_PIN) == Bit_RESET || GPIO_ReadInputDataBit(PWR_EXTRA_SWITCH_GPIO, PWR_EXTRA_SWITCH_GPIO_PIN) == Bit_RESET);
|
||||
#else
|
||||
return GPIO_ReadInputDataBit(PWR_SWITCH_GPIO, PWR_SWITCH_GPIO_PIN) == Bit_RESET;
|
||||
#endif
|
||||
}
|
||||
|
||||
void pwrResetHandler()
|
||||
|
|
|
@ -71,7 +71,7 @@ void rotaryEncoderInit()
|
|||
|
||||
void rotaryEncoderCheck()
|
||||
{
|
||||
#if defined(RADIO_FAMILY_T16)
|
||||
#if defined(RADIO_FAMILY_T16) && !defined(RADIO_T18)
|
||||
static uint8_t state = 0;
|
||||
uint8_t pins = ROTARY_ENCODER_POSITION();
|
||||
|
||||
|
|
|
@ -71,6 +71,13 @@ if (PCB STREQUAL X10)
|
|||
set(AUX2_SERIAL ON)
|
||||
endif()
|
||||
set(INTERNAL_GPS_BAUDRATE "9600" CACHE STRING "Baud rate for internal GPS")
|
||||
elseif (PCBREV STREQUAL T18)
|
||||
set(FLAVOUR t18)
|
||||
set(LUA_EXPORT lua_export_t16)
|
||||
add_definitions(-DRADIO_T18)
|
||||
add_definitions(-DRADIO_FAMILY_T16)
|
||||
option(INTERNAL_MODULE_MULTI "Support for MULTI internal module" ON)
|
||||
option(BLUETOOTH "Support for bluetooth module" OFF)
|
||||
else()
|
||||
set(FLAVOUR x10)
|
||||
option(INTERNAL_MODULE_PXX1 "Support for PXX1 internal module" ON)
|
||||
|
|
|
@ -32,6 +32,15 @@ void backlightInit()
|
|||
GPIO_Init(BACKLIGHT_GPIO, &GPIO_InitStructure);
|
||||
GPIO_PinAFConfig(BACKLIGHT_GPIO, BACKLIGHT_GPIO_PinSource, BACKLIGHT_GPIO_AF);
|
||||
|
||||
#if defined(KEYS_BACKLIGHT_GPIO)
|
||||
GPIO_InitStructure.GPIO_Pin = KEYS_BACKLIGHT_GPIO_PIN;
|
||||
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
|
||||
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
|
||||
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
|
||||
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
|
||||
GPIO_Init(KEYS_BACKLIGHT_GPIO, &GPIO_InitStructure);
|
||||
#endif
|
||||
|
||||
// TIMER init
|
||||
#if defined(PCBX12S) && PCBREV >= 13
|
||||
BACKLIGHT_TIMER->ARR = 100;
|
||||
|
@ -72,6 +81,15 @@ void backlightEnable(uint8_t dutyCycle)
|
|||
BACKLIGHT_TIMER->CCR3 = BACKLIGHT_LEVEL_MAX - dutyCycle;
|
||||
#endif
|
||||
|
||||
#if defined(KEYS_BACKLIGHT_GPIO) && !defined(BOOT)
|
||||
if (dutyCycle == 0 || g_eeGeneral.keysBacklight == 0) {
|
||||
GPIO_ResetBits(KEYS_BACKLIGHT_GPIO, KEYS_BACKLIGHT_GPIO_PIN);
|
||||
}
|
||||
else {
|
||||
GPIO_SetBits(KEYS_BACKLIGHT_GPIO, KEYS_BACKLIGHT_GPIO_PIN);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (dutyCycle == 0) {
|
||||
BACKLIGHT_TIMER->BDTR &= ~TIM_BDTR_MOE;
|
||||
}
|
||||
|
|
|
@ -103,6 +103,7 @@ void boardInit()
|
|||
LED_RCC_AHB1Periph |
|
||||
LCD_RCC_AHB1Periph |
|
||||
BACKLIGHT_RCC_AHB1Periph |
|
||||
KEYS_BACKLIGHT_RCC_AHB1Periph |
|
||||
SD_RCC_AHB1Periph |
|
||||
AUDIO_RCC_AHB1Periph |
|
||||
KEYS_RCC_AHB1Periph |
|
||||
|
|
|
@ -492,6 +492,11 @@ void pwrOn();
|
|||
void pwrOff();
|
||||
void pwrResetHandler();
|
||||
bool pwrPressed();
|
||||
#if defined(PWR_EXTRA_SWITCH_GPIO)
|
||||
bool pwrForcePressed();
|
||||
#else
|
||||
#define pwrForcePressed() false
|
||||
#endif
|
||||
uint32_t pwrPressedDuration();
|
||||
|
||||
// USB Charger
|
||||
|
@ -555,6 +560,10 @@ void usbJoystickUpdate();
|
|||
#define USB_NAME "Jumper T16"
|
||||
#define USB_MANUFACTURER 'J', 'u', 'm', 'p', 'e', 'r', ' ', ' ' /* 8 bytes */
|
||||
#define USB_PRODUCT 'T', '1', '6', ' ', ' ', ' ', ' ', ' ' /* 8 Bytes */
|
||||
#elif defined(RADIO_T18)
|
||||
#define USB_NAME "Jumper T18"
|
||||
#define USB_MANUFACTURER 'J', 'u', 'm', 'p', 'e', 'r', ' ', ' ' /* 8 bytes */
|
||||
#define USB_PRODUCT 'T', '1', '8', ' ', ' ', ' ', ' ', ' ' /* 8 Bytes */
|
||||
#elif defined(RADIO_TX16S)
|
||||
#define USB_NAME "RadioMas TX16S"
|
||||
#define USB_MANUFACTURER 'R', 'a', 'd', 'i', 'o', 'M', 'a', 's' /* 8 bytes */
|
||||
|
|
|
@ -322,7 +322,7 @@
|
|||
#define ADC_TRANSFER_COMPLETE() (ADC_DMA->LISR & DMA_LISR_TCIF0)
|
||||
#if defined(RADIO_TX16S)
|
||||
#define ADC_VREF_PREC2 330
|
||||
#elif defined(RADIO_T16)
|
||||
#elif defined(RADIO_T16) || defined(RADIO_T18)
|
||||
#define ADC_VREF_PREC2 300
|
||||
#else
|
||||
#define ADC_VREF_PREC2 250
|
||||
|
@ -330,11 +330,21 @@
|
|||
#endif
|
||||
|
||||
// Power
|
||||
#if defined(RADIO_T18)
|
||||
#define PWR_RCC_AHB1Periph RCC_AHB1Periph_GPIOJ | RCC_AHB1Periph_GPIOB
|
||||
#define PWR_ON_GPIO GPIOJ
|
||||
#define PWR_ON_GPIO_PIN GPIO_Pin_1 // PJ.01
|
||||
#define PWR_SWITCH_GPIO GPIOJ
|
||||
#define PWR_SWITCH_GPIO_PIN GPIO_Pin_0 // PJ.00
|
||||
#define PWR_EXTRA_SWITCH_GPIO GPIOB
|
||||
#define PWR_EXTRA_SWITCH_GPIO_PIN GPIO_Pin_0 // PB.00
|
||||
#else
|
||||
#define PWR_RCC_AHB1Periph RCC_AHB1Periph_GPIOJ
|
||||
#define PWR_ON_GPIO GPIOJ
|
||||
#define PWR_ON_GPIO_PIN GPIO_Pin_1 // PJ.01
|
||||
#define PWR_SWITCH_GPIO GPIOJ
|
||||
#define PWR_SWITCH_GPIO_PIN GPIO_Pin_0 // PJ.00
|
||||
#endif
|
||||
|
||||
// USB Charger
|
||||
#if defined(USB_CHARGER)
|
||||
|
@ -514,6 +524,9 @@
|
|||
#define LCD_GPIO_NRST GPIOI
|
||||
#define LCD_GPIO_PIN_NRST GPIO_Pin_10 // PI.10
|
||||
#endif
|
||||
#if defined(PCBX10) && !defined(RADIO_T18) && !defined(SIMU)
|
||||
#define LCD_VERTICAL_INVERT
|
||||
#endif
|
||||
#define LTDC_IRQ_PRIO 4
|
||||
#define DMA_SCREEN_IRQ_PRIO 6
|
||||
|
||||
|
@ -549,6 +562,14 @@
|
|||
#define BACKLIGHT_GPIO_AF GPIO_AF_TIM8
|
||||
#define BACKLIGHT_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2)
|
||||
#endif
|
||||
#if defined(RADIO_T18)
|
||||
#define KEYS_BACKLIGHT_RCC_AHB1Periph RCC_AHB1Periph_GPIOC
|
||||
#define KEYS_BACKLIGHT_GPIO GPIOC
|
||||
#define KEYS_BACKLIGHT_GPIO_PIN GPIO_Pin_4 // PC.04
|
||||
#define KEYS_BACKLIGHT_GPIO_PinSource GPIO_PinSource4
|
||||
#else
|
||||
#define KEYS_BACKLIGHT_RCC_AHB1Periph 0
|
||||
#endif
|
||||
|
||||
// SD
|
||||
#define SD_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_DMA2)
|
||||
|
|
|
@ -20,14 +20,25 @@
|
|||
|
||||
#include "opentx.h"
|
||||
|
||||
#define HBP 42
|
||||
#define VBP 12
|
||||
#if defined(RADIO_T18)
|
||||
#define HBP 43
|
||||
#define VBP 12
|
||||
|
||||
#define HSW 2
|
||||
#define VSW 10
|
||||
#define HSW 2
|
||||
#define VSW 4
|
||||
|
||||
#define HFP 3
|
||||
#define VFP 2
|
||||
#define HFP 8
|
||||
#define VFP 8
|
||||
#else
|
||||
#define HBP 42
|
||||
#define VBP 12
|
||||
|
||||
#define HSW 2
|
||||
#define VSW 10
|
||||
|
||||
#define HFP 3
|
||||
#define VFP 2
|
||||
#endif
|
||||
|
||||
#define LCD_FIRST_LAYER 0
|
||||
#define LCD_SECOND_LAYER 1
|
||||
|
@ -315,7 +326,11 @@ void LCD_Init(void)
|
|||
{
|
||||
/* Reset the LCD --------------------------------------------------------*/
|
||||
LCD_NRSTConfig();
|
||||
#if defined(RADIO_T18) // T18 seems to have eractic display issue if NRST is ever driven low
|
||||
NRST_HIGH();
|
||||
#else
|
||||
lcd_reset();
|
||||
#endif
|
||||
|
||||
/* Configure the LCD Control pins */
|
||||
LCD_AF_GPIOConfig();
|
||||
|
@ -383,7 +398,7 @@ void lcdInit(void)
|
|||
|
||||
void DMAFillRect(uint16_t * dest, uint16_t destw, uint16_t desth, uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color)
|
||||
{
|
||||
#if defined(PCBX10)
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
x = destw - (x + w);
|
||||
y = desth - (y + h);
|
||||
#endif
|
||||
|
@ -415,7 +430,7 @@ void DMAFillRect(uint16_t * dest, uint16_t destw, uint16_t desth, uint16_t x, ui
|
|||
|
||||
void DMACopyBitmap(uint16_t * dest, uint16_t destw, uint16_t desth, uint16_t x, uint16_t y, const uint16_t * src, uint16_t srcw, uint16_t srch, uint16_t srcx, uint16_t srcy, uint16_t w, uint16_t h)
|
||||
{
|
||||
#if defined(PCBX10)
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
x = destw - (x + w);
|
||||
y = desth - (y + h);
|
||||
srcx = srcw - (srcx + w);
|
||||
|
@ -458,7 +473,7 @@ void DMACopyBitmap(uint16_t * dest, uint16_t destw, uint16_t desth, uint16_t x,
|
|||
|
||||
void DMACopyAlphaBitmap(uint16_t * dest, uint16_t destw, uint16_t desth, uint16_t x, uint16_t y, const uint16_t * src, uint16_t srcw, uint16_t srch, uint16_t srcx, uint16_t srcy, uint16_t w, uint16_t h)
|
||||
{
|
||||
#if defined(PCBX10)
|
||||
#if defined(LCD_VERTICAL_INVERT)
|
||||
x = destw - (x + w);
|
||||
y = desth - (y + h);
|
||||
srcx = srcw - (srcx + w);
|
||||
|
|
|
@ -377,6 +377,7 @@ void pwrOn();
|
|||
uint32_t pwrCheck();
|
||||
bool pwrPressed();
|
||||
#define UNEXPECTED_SHUTDOWN() (g_eeGeneral.unexpectedShutdown)
|
||||
#define pwrForcePressed() (false)
|
||||
|
||||
// EEPROM driver
|
||||
#define EEPROM_SIZE (4*1024*1024/8)
|
||||
|
|
|
@ -648,6 +648,7 @@ bool pwrPressed();
|
|||
uint32_t pwrPressedDuration();
|
||||
#endif
|
||||
void pwrResetHandler();
|
||||
#define pwrForcePressed() false
|
||||
|
||||
#if defined(SIMU)
|
||||
#define UNEXPECTED_SHUTDOWN() false
|
||||
|
|
|
@ -1639,6 +1639,7 @@
|
|||
#define BACKLIGHT_GPIO_PinSource GPIO_PinSource8
|
||||
#define BACKLIGHT_GPIO_AF GPIO_AF_TIM10
|
||||
#endif
|
||||
#define KEYS_BACKLIGHT_RCC_AHB1Periph 0
|
||||
|
||||
// LCD driver
|
||||
#if defined(PCBX9E)
|
||||
|
|
|
@ -96,6 +96,7 @@ ISTR(INPUTNAMES);
|
|||
|
||||
#if defined(MULTIMODULE)
|
||||
ISTR(MULTI_PROTOCOLS);
|
||||
ISTR(MULTI_POWER);
|
||||
#endif
|
||||
|
||||
#if defined(BLUETOOTH)
|
||||
|
@ -654,6 +655,7 @@ const char STR_GYRO_MAX[] = TR_GYRO_MAX;
|
|||
#if defined(PWM_BACKLIGHT) || defined(COLORLCD)
|
||||
const char STR_BLONBRIGHTNESS[] = TR_BLONBRIGHTNESS;
|
||||
const char STR_BLOFFBRIGHTNESS[] = TR_BLOFFBRIGHTNESS;
|
||||
const char STR_KEYS_BACKLIGHT[] = TR_KEYS_BACKLIGHT;
|
||||
#endif
|
||||
|
||||
const char STR_TIMEZONE[] = TR_TIMEZONE;
|
||||
|
@ -694,6 +696,7 @@ const char STR_BIND_OK[] = TR_BIND_OK;
|
|||
|
||||
const char STR_MULTI_CUSTOM[] = TR_MULTI_CUSTOM;
|
||||
const char STR_MULTI_RFTUNE[] = TR_MULTI_RFTUNE;
|
||||
const char STR_MULTI_RFPOWER[] = TR_MULTI_RFPOWER;
|
||||
const char STR_MULTI_TELEMETRY[] = TR_MULTI_TELEMETRY;
|
||||
const char STR_MULTI_VIDFREQ[] = TR_MULTI_VIDFREQ;
|
||||
const char STR_MULTI_OPTION[] = TR_MULTI_OPTION;
|
||||
|
|
|
@ -159,10 +159,8 @@ extern const char STR_XJT_ACCST_RF_PROTOCOLS[];
|
|||
extern const char STR_ISRM_RF_PROTOCOLS[];
|
||||
extern const char STR_R9M_PXX2_RF_PROTOCOLS[];
|
||||
extern const char STR_DSM_PROTOCOLS[];
|
||||
|
||||
#if defined(MULTIMODULE)
|
||||
extern const char STR_MULTI_PROTOCOLS[];
|
||||
#endif
|
||||
extern const char STR_MULTI_POWER[];
|
||||
|
||||
#if defined(AFHDS3)
|
||||
extern const char STR_AFHDS3_ONE_TO_ONE_TELEMETRY[];
|
||||
|
@ -305,6 +303,7 @@ extern const char STR_BLDELAY[];
|
|||
#if defined(PWM_BACKLIGHT) || defined(COLORLCD)
|
||||
extern const char STR_BLONBRIGHTNESS[];
|
||||
extern const char STR_BLOFFBRIGHTNESS[];
|
||||
extern const char STR_KEYS_BACKLIGHT[];
|
||||
#endif
|
||||
|
||||
extern const char STR_SPLASHSCREEN[];
|
||||
|
@ -399,6 +398,7 @@ extern const char STR_MULTI_FIXEDID[];
|
|||
extern const char STR_MULTI_OPTION[];
|
||||
extern const char STR_MULTI_VIDFREQ[];
|
||||
extern const char STR_MULTI_RFTUNE[];
|
||||
extern const char STR_MULTI_RFPOWER[];
|
||||
extern const char STR_MULTI_TELEMETRY[];
|
||||
extern const char STR_MULTI_AUTOBIND[];
|
||||
extern const char STR_DISABLE_CH_MAP[];
|
||||
|
|
|
@ -522,6 +522,7 @@
|
|||
#define TR_BLDELAY INDENT"Zhasnout po"
|
||||
#define TR_BLONBRIGHTNESS TR3(INDENT"Jas Zap.", INDENT"Jas Zap.", INDENT"Jas zapnutého LCD")
|
||||
#define TR_BLOFFBRIGHTNESS TR3(INDENT"Jas Vyp.", INDENT"Jas Vyp.", INDENT"Jas vypnutého LCD")
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_BLCOLOR INDENT "Barva"
|
||||
#define TR_SPLASHSCREEN TR("úvodní logo", "Zobrazit úvodní logo")
|
||||
#define TR_PWR_ON_DELAY "Pwr On delay"
|
||||
|
@ -628,6 +629,7 @@
|
|||
#define TR_RECEIVER_NUM TR("RX číslo", "Číslo přijímače")
|
||||
#define TR_RECEIVER "Přijímač"
|
||||
#define TR_MULTI_RFTUNE TR(INDENT "Ladění frek", INDENT "Jemné ladění frek. RF")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Telemetrie"
|
||||
#define TR_MULTI_VIDFREQ TR(INDENT "Freq. videa", INDENT "Frekvence videa")
|
||||
#define TR_RFPOWER "Výkon RF"
|
||||
|
|
|
@ -524,6 +524,7 @@
|
|||
#define TR_BLDELAY INDENT "Dauer"
|
||||
#define TR_BLONBRIGHTNESS INDENT "An-Helligkeit"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "Aus-Helligkeit"
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_BLCOLOR INDENT "Farbe"
|
||||
#define TR_SPLASHSCREEN TR("Startbild Ein", "Startbild Anzeigedauer")
|
||||
#define TR_PWR_ON_DELAY "Pwr On delay"
|
||||
|
@ -630,6 +631,7 @@
|
|||
#define TR_RECEIVER_NUM TR("Empf Nr.", "Empfänger Nummer")
|
||||
#define TR_RECEIVER "Empfänger"
|
||||
#define TR_MULTI_RFTUNE TR(INDENT "RF Freq.", INDENT "RF Freq. Feintuning")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Telemetry"
|
||||
#define TR_MULTI_VIDFREQ TR(INDENT "Vid. Freq.", INDENT "Video Frequenz")
|
||||
#define TR_RFPOWER "RF Power"
|
||||
|
|
|
@ -523,6 +523,7 @@
|
|||
#define TR_BLDELAY INDENT "Duration"
|
||||
#define TR_BLONBRIGHTNESS INDENT "ON brightness"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "OFF brightness"
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_BLCOLOR INDENT "Color"
|
||||
#define TR_SPLASHSCREEN "Splash screen"
|
||||
#define TR_PWR_ON_DELAY "Pwr On delay"
|
||||
|
@ -629,6 +630,7 @@
|
|||
#define TR_RECEIVER_NUM TR("RxNum", "Receiver No.")
|
||||
#define TR_RECEIVER "Receiver"
|
||||
#define TR_MULTI_RFTUNE TR("Freq tune", "RF Freq. fine tune")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Telemetry"
|
||||
#define TR_MULTI_VIDFREQ TR("Vid. freq.", "Video frequency")
|
||||
#define TR_RFPOWER "RF Power"
|
||||
|
|
|
@ -522,6 +522,7 @@
|
|||
#define TR_BLDELAY INDENT"Duración"
|
||||
#define TR_BLONBRIGHTNESS INDENT"MAS brillo"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT"MENOS brillo"
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_BLCOLOR INDENT "Color"
|
||||
#define TR_SPLASHSCREEN "Pantalla inicio"
|
||||
#define TR_PWR_ON_DELAY TR("Atraso On", "Atraso encendido")
|
||||
|
@ -631,6 +632,7 @@
|
|||
#define TR_RECEIVER_NUM TR("Num Rx", "Receptor No.")
|
||||
#define TR_RECEIVER "Receptor"
|
||||
#define TR_MULTI_RFTUNE TR("Sint.freq.", "RF Freq. sint.fina")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Telemetría"
|
||||
#define TR_MULTI_VIDFREQ TR("Freq.vídeo", "Frecuencia vídeo")
|
||||
#define TR_RFPOWER "RF Power"
|
||||
|
|
|
@ -536,6 +536,7 @@
|
|||
#define TR_BLDELAY INDENT"Duration"
|
||||
#define TR_BLONBRIGHTNESS INDENT"ON Brightness"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT"OFF Brightness"
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_BLCOLOR INDENT "Color"
|
||||
#define TR_SPLASHSCREEN "Splash screen"
|
||||
#define TR_PWR_ON_DELAY "Pwr On delay"
|
||||
|
@ -647,6 +648,7 @@
|
|||
#define TR_RECEIVER_NUM TR("RxNum", "Receiver No.")
|
||||
#define TR_RECEIVER "Receiver"
|
||||
#define TR_MULTI_RFTUNE TR("Freq tune", "RF Freq. fine tune")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Telemetry"
|
||||
#define TR_MULTI_VIDFREQ TR("Vid. freq.", "Video frequency")
|
||||
#define TR_RFPOWER "RF Power"
|
||||
|
|
|
@ -542,6 +542,7 @@
|
|||
#define TR_BLDELAY INDENT "Durée"
|
||||
#define TR_BLONBRIGHTNESS INDENT "Luminosité ON"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "Luminosité OFF"
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_BLCOLOR INDENT "Couleur"
|
||||
#define TR_SPLASHSCREEN "Logo d'accueil"
|
||||
#define TR_PWR_ON_DELAY "Délai btn ON"
|
||||
|
@ -650,6 +651,7 @@
|
|||
#define TR_RECEIVER_NUM TR("NumRx", "No. récepteur")
|
||||
#define TR_RECEIVER "Récept."
|
||||
#define TR_MULTI_RFTUNE TR(INDENT "Ajust.fréq", INDENT "Ajustement fréq.")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Télémétrie"
|
||||
#define TR_MULTI_VIDFREQ TR(INDENT "Fréq. vidéo", INDENT "Fréquence vidéo")
|
||||
#define TR_RFPOWER TR("Puiss. RF", "Puissance RF")
|
||||
|
|
|
@ -544,6 +544,7 @@
|
|||
#define TR_BLDELAY INDENT "Durata"
|
||||
#define TR_BLONBRIGHTNESS TR(INDENT "Lumin. ON", INDENT "Luminosità ON")
|
||||
#define TR_BLOFFBRIGHTNESS TR(INDENT "Lumin. OFF", INDENT "Luminosità OFF")
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_BLCOLOR INDENT "Colore"
|
||||
#define TR_SPLASHSCREEN TR("Sch. avvio", "Schermata d'avvio")
|
||||
#define TR_PWR_ON_DELAY "Rit. accens."
|
||||
|
@ -649,6 +650,7 @@
|
|||
#define TR_RECEIVER_NUM TR("RxNum", "Ricevente N.")
|
||||
#define TR_RECEIVER "Ricevente"
|
||||
#define TR_MULTI_RFTUNE TR("Tune RF", "Tune fine Freq. RF")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Telemetria"
|
||||
#define TR_MULTI_VIDFREQ TR("Freq. video", "Frequenza video")
|
||||
#define TR_RFPOWER "Potenza RF"
|
||||
|
|
|
@ -525,6 +525,7 @@
|
|||
#define TR_BLDELAY INDENT "Duur"
|
||||
#define TR_BLONBRIGHTNESS INDENT "Aan-Helderheid"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "Uit-Helderheid"
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_BLCOLOR INDENT "Kleur"
|
||||
#define TR_SPLASHSCREEN "Startscherm Aan"
|
||||
#define TR_PWR_ON_DELAY "Pwr On delay"
|
||||
|
@ -635,6 +636,7 @@
|
|||
#define TR_RECEIVER_NUM TR("RxNum", "Receiver Nr.")
|
||||
#define TR_RECEIVER "Receiver"
|
||||
#define TR_MULTI_RFTUNE TR("Freq tune", "RF Freq. fine tune")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Telemetry"
|
||||
#define TR_MULTI_VIDFREQ TR("Vid. freq.", "Video frequency")
|
||||
#define TR_RFPOWER "RF Power"
|
||||
|
|
|
@ -543,6 +543,7 @@
|
|||
#define TR_BLDELAY INDENT"Czas trwania"
|
||||
#define TR_BLONBRIGHTNESS INDENT"Jasnośc wł."
|
||||
#define TR_BLOFFBRIGHTNESS INDENT"Jasność wył."
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_BLCOLOR INDENT "Color"
|
||||
#define TR_SPLASHSCREEN "Logo ekranu"
|
||||
#define TR_PWR_ON_DELAY "Pwr On delay"
|
||||
|
@ -648,6 +649,7 @@
|
|||
#define TR_RECEIVER_NUM TR("Nr RX", "Nr odbiornika")
|
||||
#define TR_RECEIVER INDENT "Receiver"
|
||||
#define TR_MULTI_RFTUNE TR("Freq tune", "RF Freq. fine tune")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Telemetry"
|
||||
#define TR_MULTI_VIDFREQ TR("Vid. freq.", "Video frequency")
|
||||
#define TR_RFPOWER "RF Power"
|
||||
|
|
|
@ -529,6 +529,7 @@
|
|||
#define TR_BLDELAY INDENT "Tempo Backlight"
|
||||
#define TR_BLONBRIGHTNESS INDENT "ON Brightness"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "OFF Brightness"
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_BLCOLOR INDENT "Color"
|
||||
#define TR_SPLASHSCREEN "Splash screen"
|
||||
#define TR_PWR_ON_DELAY "Pwr On delay"
|
||||
|
@ -639,6 +640,7 @@
|
|||
#define TR_RECEIVER "Receiver"
|
||||
#define TR_SYNCMENU "Sync [MENU]"
|
||||
#define TR_MULTI_RFTUNE TR("Freq tune", "RF Freq. fine tune")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Telemetry"
|
||||
#define TR_MULTI_VIDFREQ TR("Vid. freq.", "Video frequency")
|
||||
#define TR_RFPOWER "RF Power"
|
||||
|
|
|
@ -542,6 +542,7 @@
|
|||
#define TR_BLDELAY INDENT "Av efter"
|
||||
#define TR_BLONBRIGHTNESS INDENT "På Ljusstyrka"
|
||||
#define TR_BLOFFBRIGHTNESS INDENT "Av Ljusstyrka"
|
||||
#define TR_KEYS_BACKLIGHT "Keys backlight"
|
||||
#define TR_SPLASHSCREEN "Startbild"
|
||||
#define TR_PWR_ON_DELAY "Pwr On delay"
|
||||
#define TR_PWR_OFF_DELAY "Pwr Off delay"
|
||||
|
@ -648,6 +649,7 @@
|
|||
#define TR_RECEIVER "Receiver"
|
||||
#define TR_SYNCMENU "Synk [MENU]"
|
||||
#define TR_MULTI_RFTUNE TR("Freq tune", "RF Freq. fine tune")
|
||||
#define TR_MULTI_RFPOWER "RF power"
|
||||
#define TR_MULTI_TELEMETRY "Telemetry"
|
||||
#define TR_MULTI_VIDFREQ TR("Vid. freq.", "Video frequency")
|
||||
#define TR_RFPOWER "RF Power"
|
||||
|
|
|
@ -125,8 +125,10 @@
|
|||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_MULTI_PROTOCOLS "\007"
|
||||
#define TR_MULTI_PROTOCOLS "FlySky\0""Hubsan\0""FrSky\0 ""Hisky\0 ""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0 ""KN\0 ""SymaX\0 ""SLT\0 ""CX10\0 ""CG023\0 ""Bayang\0""ESky\0 ""MT99XX\0""MJXq\0 ""Shenqi\0""FY326\0 ""SFHSS\0 ""J6 Pro\0""FQ777\0 ""Assan\0 ""Hontai\0""OpenLrs""FlSky2A""Q2x2\0 ""Walkera""Q303\0 ""GW008\0 ""DM002\0 ""Cabell\0""Esky150""H8 3D\0 ""Corona\0""CFlie\0 ""Hitec\0 ""WFly\0 ""Bugs\0 ""BugMini""Traxxas""NCC1701""E01X\0 ""V911S\0 ""GD00X\0 ""V761\0 ""KF606\0 ""Redpine""Potensi""ZSX\0 ""FlyZone""Scanner""FrSkyRX""FS2A_RX""HoTT\0 ""FX816\0 ""BayanRX""Pelikan""Tiger\0 ""XK\0 ""XN297DU""FrSkyX2""FrSkyR9""Propel\0""FrSkyL\0""Skyarte""ESky-v2""DSM RX\0""JJRC345""Q90C\0 "
|
||||
|
||||
#define TR_MULTI_PROTOCOLS "FlySky\0""Hubsan\0""FrSky\0 ""Hisky\0 ""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0 ""KN\0 ""SymaX\0 ""SLT\0 ""CX10\0 ""CG023\0 ""Bayang\0""ESky\0 ""MT99XX\0""MJXq\0 ""Shenqi\0""FY326\0 ""SFHSS\0 ""J6 Pro\0""FQ777\0 ""Assan\0 ""Hontai\0""OpenLrs""FlSky2A""Q2x2\0 ""Walkera""Q303\0 ""GW008\0 ""DM002\0 ""Cabell\0""Esky150""H8 3D\0 ""Corona\0""CFlie\0 ""Hitec\0 ""WFly\0 ""Bugs\0 ""BugMini""Traxxas""NCC1701""E01X\0 ""V911S\0 ""GD00X\0 ""V761\0 ""KF606\0 ""Redpine""Potensi""ZSX\0 ""FlyZone""Scanner""FrSkyRX""FS2A_RX""HoTT\0 ""FX816\0 ""BayanRX""Pelikan""Tiger\0 ""XK\0 ""XN297DU""FrSkyX2""FrSkyR9""Propel\0""FrSkyL\0""Skyartc""ESky-v2""DSM RX\0""JJRC345""Q90C\0 "
|
||||
#define LEN_MULTI_POWER "\005"
|
||||
#define TR_MULTI_POWER "10mW\0""25mW\0""50mW\0""100mW""200mW""300mW""500mW""1W\0 ""2W\0 "
|
||||
|
||||
#define LEN_AFHDS3_PROTOCOLS "\x008"
|
||||
#define TR_AFHDS3_PROTOCOLS "PWM/IBUS""PWM/SBUS""PPM/IBUS""PPM/SBUS"
|
||||
|
|
|
@ -148,6 +148,11 @@ def main():
|
|||
cmake_options["PCBREV"] = "T16"
|
||||
firmware_options = options_jumper_t16
|
||||
maxsize = 2 * 1024 * 1024
|
||||
elif board_name == "t18":
|
||||
cmake_options["PCB"] = "X10"
|
||||
cmake_options["PCBREV"] = "T18"
|
||||
firmware_options = options_jumper_t16
|
||||
maxsize = 2 * 1024 * 1024
|
||||
elif board_name == "tx16s":
|
||||
cmake_options["PCB"] = "X10"
|
||||
cmake_options["PCBREV"] = "TX16S"
|
||||
|
|
|
@ -106,6 +106,10 @@ cmake ${COMMON_OPTIONS} -DPCB=X10 -DPCBREV=TX16S ${SRCDIR}
|
|||
make -j${JOBS} libsimulator
|
||||
rm CMakeCache.txt
|
||||
|
||||
cmake ${COMMON_OPTIONS} -DPCB=X10 -DPCBREV=T18 ${SRCDIR}
|
||||
make -j${JOBS} libsimulator
|
||||
rm CMakeCache.txt
|
||||
|
||||
cmake ${COMMON_OPTIONS} -DPCB=X10 -DPCBREV=EXPRESS ${SRCDIR}
|
||||
make -j${JOBS} libsimulator
|
||||
rm CMakeCache.txt
|
||||
|
|
|
@ -25,6 +25,12 @@ boards = {
|
|||
"PCBREV": "T16",
|
||||
"INTERNAL_MODULE_MULTI": "YES",
|
||||
"DEFAULT_MODE": "2",
|
||||
},
|
||||
"T18": {
|
||||
"PCB": "X10",
|
||||
"PCBREV": "T18",
|
||||
"INTERNAL_MODULE_MULTI": "YES",
|
||||
"DEFAULT_MODE": "2",
|
||||
}
|
||||
}
|
||||
|
||||
|
|