Skip to content
Snippets Groups Projects
Commit 97c4dafc authored by Raphael Grimm's avatar Raphael Grimm
Browse files

Change the stop button to prevent deactivation of the ES for 2.5s after it was activated

parent 0001ae81
No related branches found
No related tags found
No related merge requests found
......@@ -59,6 +59,10 @@ namespace armarx
connect(emergencyStopShortcut, SIGNAL(activated()), this, SLOT(clicked()));
connect(button, SIGNAL(clicked(bool)), this, SLOT(clicked(bool)));
std::stringstream str;
str << "After EmergencyStop was activated, you have to wait "
<< deactivationWaitPeriod.count() << " ms before you can deactivate it.";
button->setToolTip(QString::fromStdString(str.str()));
}
QWidget* EmergencyStopWidget::getButtonWidget()
......@@ -106,7 +110,14 @@ namespace armarx
switch (state)
{
case EmergencyStopState::eEmergencyStopActive :
emergencyStopMasterPrx->setEmergencyStopState(EmergencyStopState::eEmergencyStopInactive);
if (clock_t::now() > timeLastActivated + deactivationWaitPeriod)
{
emergencyStopMasterPrx->setEmergencyStopState(EmergencyStopState::eEmergencyStopInactive);
}
else
{
button->setChecked(true);
}
break;
case EmergencyStopState::eEmergencyStopInactive :
emergencyStopMasterPrx->setEmergencyStopState(EmergencyStopState::eEmergencyStopActive);
......@@ -128,6 +139,7 @@ namespace armarx
break;
case EmergencyStopState::eEmergencyStopInactive :
button->setChecked(false);
timeLastActivated = clock_t::now();
break;
default :
button->setChecked(false);
......
......@@ -73,6 +73,10 @@ namespace armarx
EmergencyStopMasterInterfacePrx emergencyStopMasterPrx;
using clock_t = std::chrono::high_resolution_clock;
static constexpr std::chrono::milliseconds deactivationWaitPeriod{2500};
clock_t::time_point timeLastActivated;
// ArmarXWidgetController interface
public:
static QString GetWidgetName()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment