Skip to content

Commit e5c574b

Browse files
committed
LP-551 Add extra safety while testing outputs - Prevent input calibration start
1 parent 42332c6 commit e5c574b

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

ground/gcs/src/plugins/config/configoutputwidget.cpp

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,13 @@ void ConfigOutputWidget::sendAllChannelTests()
190190
*/
191191
void ConfigOutputWidget::runChannelTests(bool state)
192192
{
193+
if (!checkOutputConfig()) {
194+
m_ui->channelOutTest->setChecked(false);
195+
QMessageBox::warning(this, tr("Warning"), tr("There is something wrong in current config."
196+
"<p>Please fix the issue before starting testing outputs.</p>"), QMessageBox::Ok);
197+
return;
198+
}
199+
193200
SystemAlarms *systemAlarmsObj = SystemAlarms::GetInstance(getObjectManager());
194201
SystemAlarms::DataFields systemAlarms = systemAlarmsObj->getData();
195202

@@ -224,6 +231,13 @@ void ConfigOutputWidget::runChannelTests(bool state)
224231

225232
channelTestsStarted = state;
226233

234+
// Emit signal to be received by Input tab
235+
emit outputConfigSafe(!state);
236+
237+
m_ui->spinningArmed->setEnabled(!state);
238+
m_ui->alwaysStabilizedSwitch->setEnabled((m_ui->spinningArmed->isChecked()) && !state);
239+
m_ui->alwayStabilizedLabel1->setEnabled((m_ui->spinningArmed->isChecked()) && !state);
240+
m_ui->alwayStabilizedLabel2->setEnabled((m_ui->spinningArmed->isChecked()) && !state);
227241
enableBanks(!state);
228242

229243
ActuatorCommand *obj = ActuatorCommand::GetInstance(getObjectManager());
@@ -678,7 +692,7 @@ void ConfigOutputWidget::onBankTypeChange()
678692
updateChannelConfigWarning(warning_found);
679693
}
680694

681-
void ConfigOutputWidget::checkOutputConfig()
695+
bool ConfigOutputWidget::checkOutputConfig()
682696
{
683697
ChannelConfigWarning current_warning = None;
684698
ChannelConfigWarning warning_found = None;
@@ -704,6 +718,8 @@ void ConfigOutputWidget::checkOutputConfig()
704718

705719
// Emit signal to be received by Input tab
706720
emit outputConfigSafe(warning_found == None);
721+
722+
return warning_found == None;
707723
}
708724

709725
void ConfigOutputWidget::stopTests()

ground/gcs/src/plugins/config/configoutputwidget.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public slots:
119119
enum ChannelConfigWarning { None, CannotDriveServo, IsNormalMotorCheckNeutral, IsReversibleMotorCheckNeutral, BiDirectionalDShotNotSupported };
120120
void setChannelLimits(OutputChannelForm *channelForm, OutputBankControls *bankControls);
121121
ChannelConfigWarning checkChannelConfig(OutputChannelForm *channelForm, OutputBankControls *bankControls);
122-
void checkOutputConfig();
122+
bool checkOutputConfig();
123123
void updateChannelConfigWarning(ChannelConfigWarning warning);
124124

125125
private slots:

0 commit comments

Comments
 (0)