@@ -190,6 +190,13 @@ void ConfigOutputWidget::sendAllChannelTests()
190190 */
191191void 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
709725void ConfigOutputWidget::stopTests ()
0 commit comments