mirror of
https://github.com/opentx/opentx.git
synced 2025-07-25 01:05:10 +03:00
ACCESS support started in Companion
This commit is contained in:
parent
7bffb89089
commit
48fbdbb7a9
6 changed files with 26 additions and 11 deletions
|
@ -195,7 +195,7 @@ class Boards
|
||||||
#define IS_TARANIS_XLITE(board) (board==Board::BOARD_TARANIS_XLITE || board==Board::BOARD_TARANIS_XLITES)
|
#define IS_TARANIS_XLITE(board) (board==Board::BOARD_TARANIS_XLITE || board==Board::BOARD_TARANIS_XLITES)
|
||||||
#define IS_TARANIS_XLITES(board) (board==Board::BOARD_TARANIS_XLITES)
|
#define IS_TARANIS_XLITES(board) (board==Board::BOARD_TARANIS_XLITES)
|
||||||
#define IS_TARANIS_X7(board) (board==Board::BOARD_TARANIS_X7)
|
#define IS_TARANIS_X7(board) (board==Board::BOARD_TARANIS_X7)
|
||||||
#define IS_TARANIS_X9LITE(board) (board==Board::BOARD_TARANIS_X9LITE)
|
#define IS_TARANIS_X9LITE(board) (board==Board::BOARD_TARANIS_X9LITE)
|
||||||
#define IS_TARANIS_X9(board) (board==Board::BOARD_TARANIS_X9D || board==Board::BOARD_TARANIS_X9DP || board==Board::BOARD_TARANIS_X9E)
|
#define IS_TARANIS_X9(board) (board==Board::BOARD_TARANIS_X9D || board==Board::BOARD_TARANIS_X9DP || board==Board::BOARD_TARANIS_X9E)
|
||||||
#define IS_TARANIS_X9D(board) (board==Board::BOARD_TARANIS_X9D || board==Board::BOARD_TARANIS_X9DP)
|
#define IS_TARANIS_X9D(board) (board==Board::BOARD_TARANIS_X9D || board==Board::BOARD_TARANIS_X9DP)
|
||||||
#define IS_TARANIS_PLUS(board) (board==Board::BOARD_TARANIS_X9DP || board==Board::BOARD_TARANIS_X9E)
|
#define IS_TARANIS_PLUS(board) (board==Board::BOARD_TARANIS_X9DP || board==Board::BOARD_TARANIS_X9E)
|
||||||
|
@ -208,6 +208,7 @@ class Boards
|
||||||
#define IS_HORUS_OR_TARANIS(board) (IS_HORUS(board) || IS_TARANIS(board))
|
#define IS_HORUS_OR_TARANIS(board) (IS_HORUS(board) || IS_TARANIS(board))
|
||||||
#define IS_STM32(board) (IS_TARANIS(board) || IS_HORUS(board))
|
#define IS_STM32(board) (IS_TARANIS(board) || IS_HORUS(board))
|
||||||
#define IS_ARM(board) (IS_STM32(board) || IS_SKY9X(board))
|
#define IS_ARM(board) (IS_STM32(board) || IS_SKY9X(board))
|
||||||
|
#define IS_ACCESS_RADIO(board) (IS_TARANIS_X9LITE(board) || IS_TARANIS_XLITES(board))
|
||||||
#define HAS_LARGE_LCD(board) (IS_HORUS(board) || IS_TARANIS_X9(board))
|
#define HAS_LARGE_LCD(board) (IS_HORUS(board) || IS_TARANIS_X9(board))
|
||||||
|
|
||||||
#endif // _BOARDS_H_
|
#endif // _BOARDS_H_
|
||||||
|
|
|
@ -164,7 +164,11 @@ void ModelData::clear()
|
||||||
moduleData[1].ppm.delay = 300;
|
moduleData[1].ppm.delay = 300;
|
||||||
moduleData[2].ppm.delay = 300;
|
moduleData[2].ppm.delay = 300;
|
||||||
int board = getCurrentBoard();
|
int board = getCurrentBoard();
|
||||||
if (IS_HORUS_OR_TARANIS(board)) {
|
if (IS_ACCESS_RADIO(board)) {
|
||||||
|
moduleData[0].protocol = PULSES_ACCESS_ISRM;
|
||||||
|
moduleData[1].protocol = PULSES_OFF;
|
||||||
|
}
|
||||||
|
else if (IS_HORUS_OR_TARANIS(board)) {
|
||||||
moduleData[0].protocol = PULSES_PXX_XJT_X16;
|
moduleData[0].protocol = PULSES_PXX_XJT_X16;
|
||||||
moduleData[1].protocol = PULSES_OFF;
|
moduleData[1].protocol = PULSES_OFF;
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,6 +104,7 @@ QString ModuleData::protocolToString(unsigned protocol)
|
||||||
"TBS Crossfire",
|
"TBS Crossfire",
|
||||||
"DIY Multiprotocol Module",
|
"DIY Multiprotocol Module",
|
||||||
"FrSky PXX R9M",
|
"FrSky PXX R9M",
|
||||||
|
"FrSky PXX R9M Lite",
|
||||||
"SBUS output at VBat",
|
"SBUS output at VBat",
|
||||||
"FrSky ACCESS ISRM",
|
"FrSky ACCESS ISRM",
|
||||||
"FrSky ACCESS R9M",
|
"FrSky ACCESS R9M",
|
||||||
|
|
|
@ -137,7 +137,6 @@ class ModuleData {
|
||||||
unsigned int failsafeMode;
|
unsigned int failsafeMode;
|
||||||
int failsafeChannels[CPN_MAX_CHNOUT];
|
int failsafeChannels[CPN_MAX_CHNOUT];
|
||||||
|
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
int delay;
|
int delay;
|
||||||
bool pulsePol; // false = positive
|
bool pulsePol; // false = positive
|
||||||
|
@ -161,6 +160,11 @@ class ModuleData {
|
||||||
bool sport_out;
|
bool sport_out;
|
||||||
} pxx;
|
} pxx;
|
||||||
|
|
||||||
|
struct {
|
||||||
|
// unsigned int receivers;
|
||||||
|
// char receiverName[3][8];
|
||||||
|
char data[1 + 3 * 8];
|
||||||
|
} access;
|
||||||
|
|
||||||
void clear() { memset(this, 0, sizeof(ModuleData)); }
|
void clear() { memset(this, 0, sizeof(ModuleData)); }
|
||||||
void convert(RadioDataConversionState & cstate);
|
void convert(RadioDataConversionState & cstate);
|
||||||
|
|
|
@ -2207,7 +2207,7 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, Board::Type board, unsig
|
||||||
internalField.Append(new SignedField<8>(this, modelData.moduleData[module].ppm.frameLength));
|
internalField.Append(new SignedField<8>(this, modelData.moduleData[module].ppm.frameLength));
|
||||||
if (version >= 219) {
|
if (version >= 219) {
|
||||||
// TODO ACCESS
|
// TODO ACCESS
|
||||||
internalField.Append(new SpareBitsField<(1 + 3 * 8 - 2) * 8>(this));
|
internalField.Append(new CharField<1 + 3 * 8 - 2>(this, modelData.moduleData[module].access.data));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2310,10 +2310,10 @@ void OpenTxModelData::beforeExport()
|
||||||
{
|
{
|
||||||
// qDebug() << QString("before export model") << modelData.name;
|
// qDebug() << QString("before export model") << modelData.name;
|
||||||
|
|
||||||
for (int module=0; module<3; module++) {
|
for (int module=0; module<2; module++) {
|
||||||
if ((modelData.moduleData[module].protocol >= PULSES_PXX_XJT_X16 && modelData.moduleData[module].protocol <= PULSES_PXX_XJT_LR12) ||
|
if ((modelData.moduleData[module].protocol >= PULSES_PXX_XJT_X16 && modelData.moduleData[module].protocol <= PULSES_PXX_XJT_LR12) ||
|
||||||
modelData.moduleData[module].protocol == PULSES_PXX_R9M) {
|
modelData.moduleData[module].protocol == PULSES_PXX_R9M) {
|
||||||
if (! (modelData.moduleData[module].protocol == PULSES_PXX_R9M)) {
|
if (modelData.moduleData[module].protocol != PULSES_PXX_R9M) {
|
||||||
subprotocols[module] = modelData.moduleData[module].protocol - PULSES_PXX_XJT_X16;
|
subprotocols[module] = modelData.moduleData[module].protocol - PULSES_PXX_XJT_X16;
|
||||||
}
|
}
|
||||||
int pxxByte = (modelData.moduleData[module].pxx.power & 0x03)
|
int pxxByte = (modelData.moduleData[module].pxx.power & 0x03)
|
||||||
|
@ -2362,7 +2362,7 @@ void OpenTxModelData::afterImport()
|
||||||
modelData.moduleData[0].protocol = PULSES_PXX_XJT_X16;
|
modelData.moduleData[0].protocol = PULSES_PXX_XJT_X16;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int module=0; module<3; module++) {
|
for (int module=0; module<2; module++) {
|
||||||
if (modelData.moduleData[module].protocol == PULSES_PXX_XJT_X16 || modelData.moduleData[module].protocol == PULSES_LP45) {
|
if (modelData.moduleData[module].protocol == PULSES_PXX_XJT_X16 || modelData.moduleData[module].protocol == PULSES_LP45) {
|
||||||
if (subprotocols[module] >= 0)
|
if (subprotocols[module] >= 0)
|
||||||
modelData.moduleData[module].protocol += subprotocols[module];
|
modelData.moduleData[module].protocol += subprotocols[module];
|
||||||
|
|
|
@ -255,8 +255,10 @@ ModulePanel::~ModulePanel()
|
||||||
|
|
||||||
bool ModulePanel::moduleHasFailsafes()
|
bool ModulePanel::moduleHasFailsafes()
|
||||||
{
|
{
|
||||||
return (((PulsesProtocol)module.protocol == PulsesProtocol::PULSES_PXX_XJT_X16 || (PulsesProtocol)module.protocol == PulsesProtocol::PULSES_PXX_R9M)
|
return firmware->getCapability(HasFailsafe) && (
|
||||||
&& firmware->getCapability(HasFailsafe));
|
(PulsesProtocol)module.protocol == PulsesProtocol::PULSES_ACCESS_ISRM ||
|
||||||
|
(PulsesProtocol)module.protocol == PulsesProtocol::PULSES_PXX_XJT_X16 ||
|
||||||
|
(PulsesProtocol)module.protocol == PulsesProtocol::PULSES_PXX_R9M);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModulePanel::setupFailsafes()
|
void ModulePanel::setupFailsafes()
|
||||||
|
@ -362,6 +364,9 @@ void ModulePanel::update()
|
||||||
if (moduleIdx >= 0) {
|
if (moduleIdx >= 0) {
|
||||||
mask |= MASK_PROTOCOL;
|
mask |= MASK_PROTOCOL;
|
||||||
switch (protocol) {
|
switch (protocol) {
|
||||||
|
case PULSES_ACCESS_ISRM:
|
||||||
|
mask |= MASK_CHANNELS_RANGE | MASK_CHANNELS_COUNT | MASK_RX_NUMBER;
|
||||||
|
break;
|
||||||
case PULSES_PXX_R9M:
|
case PULSES_PXX_R9M:
|
||||||
mask |= MASK_R9M | MASK_SUBTYPES;
|
mask |= MASK_R9M | MASK_SUBTYPES;
|
||||||
case PULSES_PXX_XJT_X16:
|
case PULSES_PXX_XJT_X16:
|
||||||
|
@ -371,7 +376,7 @@ void ModulePanel::update()
|
||||||
mask |= MASK_CHANNELS_RANGE | MASK_CHANNELS_COUNT;
|
mask |= MASK_CHANNELS_RANGE | MASK_CHANNELS_COUNT;
|
||||||
if (protocol==PULSES_PXX_XJT_X16 || protocol==PULSES_PXX_XJT_LR12 || protocol==PULSES_PXX_R9M)
|
if (protocol==PULSES_PXX_XJT_X16 || protocol==PULSES_PXX_XJT_LR12 || protocol==PULSES_PXX_R9M)
|
||||||
mask |= MASK_RX_NUMBER;
|
mask |= MASK_RX_NUMBER;
|
||||||
if ((IS_HORUS(board) || IS_TARANIS_XLITE(board)) && moduleIdx==0)
|
if ((IS_HORUS(board) || board == Board::BOARD_TARANIS_XLITE) && moduleIdx == 0)
|
||||||
mask |= MASK_ANTENNA;
|
mask |= MASK_ANTENNA;
|
||||||
break;
|
break;
|
||||||
case PULSES_LP45:
|
case PULSES_LP45:
|
||||||
|
@ -555,7 +560,7 @@ void ModulePanel::update()
|
||||||
|
|
||||||
if (mask & MASK_CHANNELS_RANGE) {
|
if (mask & MASK_CHANNELS_RANGE) {
|
||||||
ui->channelsStart->setMaximum(33 - ui->channelsCount->value());
|
ui->channelsStart->setMaximum(33 - ui->channelsCount->value());
|
||||||
ui->channelsCount->setMaximum(qMin(16, 33-ui->channelsStart->value()));
|
ui->channelsCount->setMaximum(qMin(24, 33-ui->channelsStart->value()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue