Some fixes and proper defaults
This commit is contained in:
@@ -496,3 +496,17 @@ AbstractStaticItemModel * ModuleData::protocolItemModel(GeneralSettings & settin
|
||||
mdl->loadItemList();
|
||||
return mdl;
|
||||
}
|
||||
|
||||
AbstractStaticItemModel * ModuleData::telemetryBaudrateItemModel(unsigned int protocol)
|
||||
{
|
||||
AbstractStaticItemModel * mdl = new AbstractStaticItemModel();
|
||||
mdl->setName("moduledata.baudrate");
|
||||
|
||||
for (int i = 0; i < moduleBaudratesList.size(); i++) {
|
||||
if (protocol == PULSES_GHOST && i >= 2) break;
|
||||
mdl->appendToItemList(moduleBaudratesList.at(i), i);
|
||||
}
|
||||
|
||||
mdl->loadItemList();
|
||||
return mdl;
|
||||
}
|
||||
|
||||
@@ -261,4 +261,5 @@ class ModuleData {
|
||||
static AbstractStaticItemModel * internalModuleItemModel(int board = -1);
|
||||
static bool isProtocolAvailable(int moduleidx, unsigned int protocol, GeneralSettings & settings);
|
||||
static AbstractStaticItemModel * protocolItemModel(GeneralSettings & settings);
|
||||
static AbstractStaticItemModel * telemetryBaudrateItemModel(unsigned int protocol);
|
||||
};
|
||||
|
||||
@@ -281,7 +281,16 @@ void HardwarePanel::on_internalModuleChanged()
|
||||
else {
|
||||
m_internalModule = generalSettings.internalModule;
|
||||
if (m_internalModule == MODULE_TYPE_GHOST || m_internalModule == MODULE_TYPE_CROSSFIRE) {
|
||||
// TODO: set proper default baudrate
|
||||
|
||||
if (Boards::getCapability(getCurrentFirmware()->getBoard(),
|
||||
Board::SportMaxBaudRate) < 400000) {
|
||||
// default to 115k
|
||||
internalModuleBaudRate->setCurrentIndex(0);
|
||||
} else {
|
||||
// default to 400k
|
||||
internalModuleBaudRate->setCurrentIndex(1);
|
||||
}
|
||||
|
||||
internalModuleBaudRate->setVisible(true);
|
||||
} else {
|
||||
generalSettings.internalModuleBaudrate = 0;
|
||||
|
||||
@@ -447,11 +447,13 @@ void ModulePanel::update()
|
||||
case PULSES_CROSSFIRE:
|
||||
mask |= MASK_CHANNELS_RANGE | MASK_RX_NUMBER | MASK_BAUDRATE;
|
||||
module.channelsCount = 16;
|
||||
ui->telemetryBaudrate->setModel(ModuleData::telemetryBaudrateItemModel(protocol));
|
||||
ui->telemetryBaudrate->setField(module.crsf.telemetryBaudrate);
|
||||
break;
|
||||
case PULSES_GHOST:
|
||||
mask |= MASK_CHANNELS_RANGE | MASK_GHOST | MASK_BAUDRATE;
|
||||
module.channelsCount = 16;
|
||||
ui->telemetryBaudrate->setModel(ModuleData::telemetryBaudrateItemModel(protocol));
|
||||
ui->telemetryBaudrate->setField(module.ghost.telemetryBaudrate);
|
||||
break;
|
||||
case PULSES_PPM:
|
||||
@@ -500,16 +502,7 @@ void ModulePanel::update()
|
||||
|
||||
ui->label_protocol->setVisible(mask & MASK_PROTOCOL);
|
||||
ui->protocol->setVisible(mask & MASK_PROTOCOL);
|
||||
|
||||
ui->telemetryBaudrate->setVisible(mask & MASK_BAUDRATE);
|
||||
ui->telemetryBaudrate->clear();
|
||||
if (mask & MASK_BAUDRATE) {
|
||||
// TODO: limit the number of items based on proto (CRSF/GHOST)
|
||||
for (int i = 0; i<moduleBaudratesList.size(); i++) {
|
||||
ui->telemetryBaudrate->addItem(moduleBaudratesList.at(i), i);
|
||||
}
|
||||
}
|
||||
|
||||
ui->label_rxNumber->setVisible(mask & MASK_RX_NUMBER);
|
||||
ui->rxNumber->setVisible(mask & MASK_RX_NUMBER);
|
||||
ui->rxNumber->setMaximum(max_rx_num);
|
||||
@@ -703,6 +696,17 @@ void ModulePanel::onProtocolChanged(int index)
|
||||
if (!lock) {
|
||||
module.channelsCount = module.getMaxChannelCount();
|
||||
update();
|
||||
if (module.protocol == PULSES_GHOST ||
|
||||
module.protocol == PULSES_CROSSFIRE) {
|
||||
if (Boards::getCapability(getCurrentFirmware()->getBoard(),
|
||||
Board::SportMaxBaudRate) < 400000) {
|
||||
// default to 115k
|
||||
ui->telemetryBaudrate->setCurrentIndex(0);
|
||||
} else {
|
||||
// default to 400k
|
||||
ui->telemetryBaudrate->setCurrentIndex(1);
|
||||
}
|
||||
}
|
||||
emit updateItemModels();
|
||||
emit modified();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user