8#include "ui_jointitem.h"
21 ui->sliderTrajectoryPosition->resetTarget();
22 ui->sliderMixedPosition->resetTarget();
137 output =
"Position Direct";
162 output =
"Disconnected";
166 output =
"Hardware Fault";
170 output =
"Calibrating";
174 output =
"Not Configured";
178 output =
"Configured";
191void JointItem::updateTrajectoryPositionTarget(
double val)
193 ui->sliderTrajectoryPosition->updateSliderTarget(val);
196void JointItem::updateMixedPositionTarget(
double val)
198 ui->sliderMixedPosition->updateSliderTarget(val);
209 sliderDirectPositionPressed =
false;
210 sliderMixedPositionPressed =
false;
211 sliderMixedVelocityPressed =
false;
212 sliderTrajectoryPositionPressed =
false;
213 sliderTrajectoryVelocityPressed =
false;
214 sliderTorquePressed =
false;
215 sliderPWMPressed =
false;
216 sliderCurrentPressed =
false;
217 sliderVelocityPressed =
false;
219 joint_speedVisible =
false;
220 joint_motorPositionVisible =
false;
221 joint_currentVisible =
false;
222 joint_dutyVisible =
false;
224 velocityModeEnabled =
false;
231 max_trajectory_velocity = 0;
252 connect(ui->comboMode,
SIGNAL(currentIndexChanged(
int)),
this,SLOT(onModeChanged(
int)));
253 connect(ui->comboInteraction,
SIGNAL(currentIndexChanged(
int)),
this,SLOT(onInteractionChanged(
int)));
255 ui->sliderTrajectoryPosition->installEventFilter(
this);
256 connect(ui->sliderTrajectoryPosition,
SIGNAL(sliderPressed()),
this,SLOT(onSliderTrajectoryPositionPressed()));
257 connect(ui->sliderTrajectoryPosition,
SIGNAL(sliderReleased()),
this, SLOT(onSliderTrajectoryPositionReleased()));
258 ui->sliderTrajectoryPosition->disableClickOutOfHandle=
true;
259 ui->sliderTrajectoryPosition->enableViewTargetBox =
true;
260 ui->sliderTrajectoryPosition->enableViewTargetValue =
false;
262 ui->sliderTorqueTorque->installEventFilter(
this);
263 connect(ui->sliderTorqueTorque,
SIGNAL(sliderPressed()),
this,SLOT(onSliderTorquePressed()));
264 connect(ui->sliderTorqueTorque,
SIGNAL(sliderReleased()),
this,SLOT(onSliderTorqueReleased()));
265 ui->sliderTorqueTorque->disableClickOutOfHandle =
true;
266 ui->sliderTorqueTorque->enableViewTargetBox =
false;
267 ui->sliderTorqueTorque->enableViewTargetValue =
false;
269 ui->sliderPWMOutput->installEventFilter(
this);
270 connect(ui->sliderPWMOutput,
SIGNAL(sliderPressed()),
this, SLOT(onSliderPWMPressed()));
271 connect(ui->sliderPWMOutput,
SIGNAL(sliderReleased()),
this, SLOT(onSliderPWMReleased()));
272 ui->sliderPWMOutput->disableClickOutOfHandle =
true;
273 ui->sliderPWMOutput->enableViewTargetBox =
false;
274 ui->sliderPWMOutput->enableViewTargetValue =
false;
276 ui->sliderCurrentOutput->installEventFilter(
this);
277 connect(ui->sliderCurrentOutput,
SIGNAL(sliderPressed()),
this, SLOT(onSliderCurrentPressed()));
278 connect(ui->sliderCurrentOutput,
SIGNAL(sliderReleased()),
this, SLOT(onSliderCurrentReleased()));
279 ui->sliderCurrentOutput->disableClickOutOfHandle =
true;
280 ui->sliderCurrentOutput->enableViewTargetBox =
false;
281 ui->sliderCurrentOutput->enableViewTargetValue =
false;
283 ui->sliderDirectPosition->installEventFilter(
this);
284 connect(ui->sliderDirectPosition,
SIGNAL(sliderPressed()),
this, SLOT(onSliderDirectPositionPressed()));
285 connect(ui->sliderDirectPosition,
SIGNAL(sliderReleased()),
this, SLOT(onSliderDirectPositionReleased()));
286 ui->sliderDirectPosition->disableClickOutOfHandle =
true;
287 ui->sliderDirectPosition->enableViewTargetBox =
false;
288 ui->sliderDirectPosition->enableViewTargetValue =
false;
290 ui->sliderMixedPosition->installEventFilter(
this);
291 connect(ui->sliderMixedPosition,
SIGNAL(sliderPressed()),
this, SLOT(onSliderMixedPositionPressed()));
292 connect(ui->sliderMixedPosition,
SIGNAL(sliderReleased()),
this, SLOT(onSliderMixedPositionReleased()));
293 ui->sliderMixedPosition->disableClickOutOfHandle =
true;
294 ui->sliderMixedPosition->enableViewTargetBox =
true;
295 ui->sliderMixedPosition->enableViewTargetValue =
false;
297 ui->sliderVelocityVelocity->installEventFilter(
this);
298 connect(ui->sliderVelocityVelocity,
SIGNAL(sliderPressed()),
this,SLOT(onSliderVelocityPressed()));
299 connect(ui->sliderVelocityVelocity,
SIGNAL(sliderReleased()),
this,SLOT(onSliderVelocityReleased()));
300 ui->sliderVelocityVelocity->disableClickOutOfHandle =
true;
301 ui->sliderVelocityVelocity->enableViewTargetBox =
false;
302 ui->sliderVelocityVelocity->enableViewTargetValue =
false;
304 ui->sliderTrajectoryVelocity->installEventFilter(
this);
305 connect(ui->sliderTrajectoryVelocity,
SIGNAL(sliderPressed()),
this, SLOT(onSliderTrajectoryVelocityPressed()));
306 connect(ui->sliderTrajectoryVelocity,
SIGNAL(sliderReleased()),
this, SLOT(onSliderTrajectoryVelocityReleased()));
307 ui->sliderTrajectoryVelocity->disableClickOutOfHandle =
true;
308 ui->sliderTrajectoryVelocity->enableViewTargetBox =
false;
309 ui->sliderTrajectoryVelocity->enableViewTargetValue =
false;
311 ui->sliderMixedVelocity->installEventFilter(
this);
312 connect(ui->sliderMixedVelocity,
SIGNAL(sliderPressed()),
this, SLOT(onSliderMixedVelocityPressed()));
313 connect(ui->sliderMixedVelocity,
SIGNAL(sliderReleased()),
this, SLOT(onSliderMixedVelocityReleased()));
314 ui->sliderMixedVelocity->disableClickOutOfHandle =
true;
315 ui->sliderMixedVelocity->enableViewTargetBox =
false;
316 ui->sliderMixedVelocity->enableViewTargetValue =
false;
318 connect(ui->buttonHome,
SIGNAL(clicked()),
this,SLOT(onHomeClicked()));
319 connect(ui->buttonIdle,
SIGNAL(clicked()),
this,SLOT(onIdleClicked()));
320 connect(ui->buttonRun,
SIGNAL(clicked()),
this,SLOT(onRunClicked()));
321 connect(ui->buttonPid,
SIGNAL(clicked()),
this,SLOT(onPidClicked()));
322 connect(ui->buttonCalib,
SIGNAL(clicked()),
this,SLOT(onCalibClicked()));
324 ui->groupBox->setTitle(QString(
"JOINT %1 (%2)").arg(index).arg(jointName));
330 comboStyle1 =
"QComboBox {"
331 "border: 1px solid gray;"
332 "border-radius: 3px;"
333 "padding: 1px 18px 1px 3px;"
335 "QComboBox:editable {"
337 "foreground: rgb(35, 38, 41);}"
338 "QComboBox::down-arrow {"
339 "image: url(:/images/downArrow.png);}";
342 comboStyle2 =
"QComboBox:on { "
344 "padding-left: 4px;}"
345 "QComboBox::drop-down {"
346 "subcontrol-origin: padding;"
347 "subcontrol-position: top right;"
349 "border-left-width: 1px;"
350 "border-left-color: darkgray;"
351 "border-left-style: solid; "
352 "border-top-right-radius: 3px; "
353 "border-bottom-right-radius: 3px;"
354 "background-color: darkgray;}";
360 ui->comboInteraction->setItemData(0,QColor(Qt::darkGray), Qt::BackgroundRole);
361 ui->comboInteraction->setItemData(1,QColor(0,80,255), Qt::BackgroundRole);
362 ui->comboInteraction->setItemData(1,QColor(35, 38, 41), Qt::ForegroundRole);
364 ui->comboMode->setItemData( IDLE,
idleColor, Qt::BackgroundRole );
365 ui->comboMode->setItemData( POSITION,
positionColor, Qt::BackgroundRole );
367 ui->comboMode->setItemData( MIXED,
mixedColor, Qt::BackgroundRole );
368 ui->comboMode->setItemData( VELOCITY,
velocityColor, Qt::BackgroundRole );
369 ui->comboMode->setItemData( TORQUE,
torqueColor, Qt::BackgroundRole );
370 ui->comboMode->setItemData( PWM,
pwmColor, Qt::BackgroundRole );
371 ui->comboMode->setItemData( CURRENT,
currentColor, Qt::BackgroundRole);
373 ui->comboMode->setItemData( IDLE, QColor(35, 38, 41), Qt::ForegroundRole );
374 ui->comboMode->setItemData( POSITION, QColor(35, 38, 41), Qt::ForegroundRole );
375 ui->comboMode->setItemData( POSITION_DIR, QColor(35, 38, 41), Qt::ForegroundRole );
376 ui->comboMode->setItemData( MIXED, QColor(35, 38, 41), Qt::ForegroundRole );
377 ui->comboMode->setItemData( VELOCITY, QColor(35, 38, 41), Qt::ForegroundRole );
378 ui->comboMode->setItemData( TORQUE, QColor(35, 38, 41), Qt::ForegroundRole );
379 ui->comboMode->setItemData( PWM, QColor(35, 38, 41), Qt::ForegroundRole );
380 ui->comboMode->setItemData( CURRENT, QColor(35, 38, 41), Qt::ForegroundRole );
382 ui->comboMode->setItemData( IDLE,
Idle, Qt::UserRole);
383 ui->comboMode->setItemData( POSITION,
Position, Qt::UserRole );
384 ui->comboMode->setItemData( POSITION_DIR,
PositionDirect, Qt::UserRole );
385 ui->comboMode->setItemData( MIXED,
Mixed, Qt::UserRole );
386 ui->comboMode->setItemData( VELOCITY,
Velocity, Qt::UserRole );
387 ui->comboMode->setItemData( TORQUE,
Torque, Qt::UserRole );
388 ui->comboMode->setItemData( PWM,
Pwm, Qt::UserRole);
389 ui->comboMode->setItemData( CURRENT,
Current, Qt::UserRole);
391 setJointInternalState(IDLE);
393 ui->stackedWidget->widget(VELOCITY)->setEnabled(
false);
394 velocityTimer.setInterval(50);
395 velocityTimer.setSingleShot(
false);
396 connect(&velocityTimer,
SIGNAL(timeout()),
this,SLOT(onVelocityTimer()));
401 if (event->type() == QEvent::KeyPress || event->type() == QEvent::KeyRelease) {
402 auto* keyEvent =
static_cast<QKeyEvent *
>(event);
403 int key = keyEvent->key();
404 if(key == Qt::Key_Left || key == Qt::Key_Right || key == Qt::Key_Up ||
405 key == Qt::Key_Down || key == Qt::Key_PageUp || key == Qt::Key_PageDown){
408 QSlider* slider =
nullptr;
410 if(obj == ui->sliderTrajectoryPosition){
411 slider = ui->sliderTrajectoryPosition;
412 if(keyEvent->type() == QEvent::KeyPress){
413 onSliderTrajectoryPositionPressed();
415 if(keyEvent->type() == QEvent::KeyRelease){
416 onSliderTrajectoryPositionReleased();
419 if(obj == ui->sliderTrajectoryVelocity){
420 slider = ui->sliderTrajectoryVelocity;
421 if (keyEvent->type() == QEvent::KeyPress){
422 onSliderTrajectoryVelocityPressed();
424 if (keyEvent->type() == QEvent::KeyRelease){
425 onSliderTrajectoryVelocityReleased();
428 if(obj == ui->sliderDirectPosition){
429 slider = ui->sliderDirectPosition;
430 if(keyEvent->type() == QEvent::KeyPress){
431 onSliderDirectPositionPressed();
433 if(keyEvent->type() == QEvent::KeyRelease){
434 onSliderDirectPositionReleased();
437 if(obj == ui->sliderMixedPosition){
438 slider = ui->sliderMixedPosition;
439 if(keyEvent->type() == QEvent::KeyPress){
440 onSliderMixedPositionPressed();
442 if(keyEvent->type() == QEvent::KeyRelease){
443 onSliderMixedPositionReleased();
446 if(obj == ui->sliderMixedVelocity){
447 slider = ui->sliderMixedVelocity;
449 if(obj == ui->sliderTorqueTorque){
450 slider = ui->sliderTorqueTorque;
451 if(keyEvent->type() == QEvent::KeyPress){
452 onSliderTorquePressed();
454 if(keyEvent->type() == QEvent::KeyRelease){
455 onSliderTorqueReleased();
458 if (obj == ui->sliderPWMOutput){
459 slider = ui->sliderPWMOutput;
460 if(keyEvent->type() == QEvent::KeyPress){
461 onSliderPWMPressed();
463 if(keyEvent->type() == QEvent::KeyRelease){
464 onSliderPWMReleased();
467 if (obj == ui->sliderCurrentOutput){
468 slider = ui->sliderCurrentOutput;
469 if (keyEvent->type() == QEvent::KeyPress){
470 onSliderCurrentPressed();
472 if (keyEvent->type() == QEvent::KeyRelease){
473 onSliderCurrentReleased();
476 if(obj == ui->sliderVelocityVelocity){
477 slider = ui->sliderVelocityVelocity;
478 if(keyEvent->type() == QEvent::KeyPress){
479 onSliderVelocityPressed();
481 if(keyEvent->type() == QEvent::KeyRelease){
482 onSliderVelocityReleased();
486 if (slider ==
nullptr) {
491 if(keyEvent->type() == QEvent::KeyPress){
492 if(key == Qt::Key_Left || key == Qt::Key_Down){
493 slider->setValue(slider->value() - 1);
495 if(key == Qt::Key_Right || key == Qt::Key_Up){
496 slider->setValue(slider->value() + 1);
498 if(key == Qt::Key_PageUp){
499 slider->setValue(slider->value() + 10);
501 if(key == Qt::Key_PageDown){
502 slider->setValue(slider->value() - 10);
509 return QObject::eventFilter(obj, event);
513 return QObject::eventFilter(obj, event);
519 velocityModeEnabled = control;
520 ui->stackedWidget->widget(VELOCITY)->setEnabled(velocityModeEnabled);
521 if(ui->stackedWidget->currentIndex() == VELOCITY && velocityModeEnabled){
522 velocityTimer.start();
528 ui->stackedWidget->widget(MIXED)->setEnabled(control);
533 ui->stackedWidget->widget(POSITION_DIR)->setEnabled(control);
538 ui->stackedWidget->widget(PWM)->setEnabled(control);
543 ui->stackedWidget->widget(CURRENT)->setEnabled(control);
548 ui->sliderTrajectoryPosition->enableViewTargetBox = visible;
549 ui->sliderMixedPosition->enableViewTargetBox = visible;
554 ui->sliderTrajectoryPosition->enableViewTargetValue = visible;
555 ui->sliderMixedPosition->enableViewTargetValue = visible;
560 QString pos_metric_revolute(
"deg");
561 QString trq_metric_revolute(
"Nm");
562 QString trq_metric_revolute_title(
"Torque:");
563 QString vel_metric_revolute(
"deg/s");
564 QString pos_metric_prism(
"m");
565 QString trq_metric_prism(
"N");
566 QString trq_metric_prism_title(
"Force:");
567 QString vel_metric_prism(
"m/s");
571 ui->labelIdlevelUnits->setText(vel_metric_revolute);
572 ui->labelPositionvelUnits->setText(vel_metric_revolute);
573 ui->labelPositionDirvelUnits->setText(vel_metric_revolute);
574 ui->labelMixedvelUnits->setText(vel_metric_revolute);
575 ui->labelTorquevelUnits->setText(vel_metric_revolute);
576 ui->labelPWMvelUnits->setText(vel_metric_revolute);
577 ui->labelCurrentvelUnits->setText(vel_metric_revolute);
578 ui->labelVelocityvelUnits->setText(vel_metric_revolute);
580 ui->labelIdleTorque->setText(trq_metric_revolute_title);
581 ui->labelPositionTorque->setText(trq_metric_revolute_title);
582 ui->labelPositionDirTorque->setText(trq_metric_revolute_title);
583 ui->labelMixedTorque->setText(trq_metric_revolute_title);
584 ui->labelTorqueTorque->setText(trq_metric_revolute_title);
585 ui->labelPWMTorque->setText(trq_metric_revolute_title);
586 ui->labelCurrentTorque->setText(trq_metric_revolute_title);
587 ui->labelVelocityTorque->setText(trq_metric_revolute_title);
589 ui->labelIdleposUnits->setText(pos_metric_revolute);
590 ui->labelPositionposUnits->setText(pos_metric_revolute);
591 ui->labelPositionDirposUnits->setText(pos_metric_revolute);
592 ui->labelMixedposUnits->setText(pos_metric_revolute);
593 ui->labelTorqueposUnits->setText(pos_metric_revolute);
594 ui->labelPWMposUnits->setText(pos_metric_revolute);
595 ui->labelCurrentposUnits->setText(pos_metric_revolute);
596 ui->labelVelocityposUnits->setText(pos_metric_revolute);
597 ui->labelFaultposUnits->setText(pos_metric_revolute);
602 ui->labelIdletrqUnits->setText(trq_metric_revolute);
603 ui->labelPositiontrqUnits->setText(trq_metric_revolute);
604 ui->labelPositionDirtrqUnits->setText(trq_metric_revolute);
605 ui->labelMixedtrqUnits->setText(trq_metric_revolute);
606 ui->labelTorquetrqUnits->setText(trq_metric_revolute);
607 ui->labelPWMtrqUnits->setText(trq_metric_revolute);
608 ui->labelCurrenttrqUnits->setText(pos_metric_revolute);
609 ui->labelVelocitytrqUnits->setText(trq_metric_revolute);
613 ui->labelIdlevelUnits->setText(vel_metric_prism);
614 ui->labelPositionvelUnits->setText(vel_metric_prism);
615 ui->labelPositionDirvelUnits->setText(vel_metric_prism);
616 ui->labelMixedvelUnits->setText(vel_metric_prism);
617 ui->labelTorquevelUnits->setText(vel_metric_prism);
618 ui->labelPWMvelUnits->setText(vel_metric_prism);
619 ui->labelCurrentvelUnits->setText(vel_metric_prism);
620 ui->labelVelocityvelUnits->setText(vel_metric_prism);
622 ui->labelIdleTorque->setText(trq_metric_prism_title);
623 ui->labelPositionTorque->setText(trq_metric_prism_title);
624 ui->labelPositionDirTorque->setText(trq_metric_prism_title);
625 ui->labelMixedTorque->setText(trq_metric_prism_title);
626 ui->labelTorqueTorque->setText(trq_metric_prism_title);
627 ui->labelPWMTorque->setText(trq_metric_prism_title);
628 ui->labelCurrentTorque->setText(trq_metric_prism_title);
629 ui->labelVelocityTorque->setText(trq_metric_prism_title);
631 ui->labelIdleposUnits->setText(pos_metric_prism);
632 ui->labelPositionposUnits->setText(pos_metric_prism);
633 ui->labelPositionDirposUnits->setText(pos_metric_prism);
634 ui->labelMixedposUnits->setText(pos_metric_prism);
635 ui->labelTorqueposUnits->setText(pos_metric_prism);
636 ui->labelPWMposUnits->setText(pos_metric_prism);
637 ui->labelCurrentposUnits->setText(pos_metric_prism);
638 ui->labelVelocityposUnits->setText(pos_metric_prism);
639 ui->labelFaultposUnits->setText(pos_metric_prism);
644 ui->labelIdletrqUnits->setText(trq_metric_prism);
645 ui->labelPositiontrqUnits->setText(trq_metric_prism);
646 ui->labelPositionDirtrqUnits->setText(trq_metric_prism);
647 ui->labelMixedtrqUnits->setText(trq_metric_prism);
648 ui->labelTorquetrqUnits->setText(trq_metric_prism);
649 ui->labelPWMtrqUnits->setText(trq_metric_prism);
650 ui->labelCurrenttrqUnits->setText(trq_metric_prism);
651 ui->labelVelocitytrqUnits->setText(trq_metric_prism);
655 yFatal(
"Unspecified joint type");
661 joint_motorPositionVisible = visible;
662 ui->editIdleMotorPos->setVisible(visible);
663 ui->editPositionMotorPos->setVisible(visible);
664 ui->editPositionDirMotorPos->setVisible(visible);
665 ui->editMixedMotorPos->setVisible(visible);
666 ui->editTorqueMotorPos->setVisible(visible);
667 ui->editPWMMotorPos->setVisible(visible);
668 ui->editCurrentMotorPos->setVisible(visible);
669 ui->editVelocityMotorPos->setVisible(visible);
670 ui->editFaultMotorPos->setVisible(visible);
672 ui->labelIdleMotorPos->setVisible(visible);
673 ui->labelPositionMotorPos->setVisible(visible);
674 ui->labelPositionDirMotorPos->setVisible(visible);
675 ui->labelMixedMotorPos->setVisible(visible);
676 ui->labelTorqueMotorPos->setVisible(visible);
677 ui->labelPWMMotorPos->setVisible(visible);
678 ui->labelCurrentMotorPos->setVisible(visible);
679 ui->labelVelocityMotorPos->setVisible(visible);
680 ui->labelFaultMotorPos->setVisible(visible);
682 ui->labelIdleMotorPosUnits->setVisible(visible);
683 ui->labelPositionMotorPosUnits->setVisible(visible);
684 ui->labelPositionDirMotorPosUnits->setVisible(visible);
685 ui->labelMixedMotorPosUnits->setVisible(visible);
686 ui->labelTorqueMotorPosUnits->setVisible(visible);
687 ui->labelPWMMotorPosUnits->setVisible(visible);
688 ui->labelCurrentMotorPosUnits->setVisible(visible);
689 ui->labelVelocityMotorPosUnits->setVisible(visible);
690 ui->labelFaultMotorPosUnits->setVisible(visible);
693 ui->editIdleMotorPos->setMinimumHeight(0);
694 ui->editPositionMotorPos->setMinimumHeight(0);
695 ui->editPositionDirMotorPos->setMinimumHeight(0);
696 ui->editMixedMotorPos->setMinimumHeight(0);
697 ui->editTorqueMotorPos->setMinimumHeight(0);
698 ui->editPWMMotorPos->setMinimumHeight(0);
699 ui->editCurrentMotorPos->setMinimumHeight(0);
700 ui->editVelocityMotorPos->setMinimumHeight(0);
701 ui->editFaultMotorPos->setMinimumHeight(0);
703 ui->labelPositionMotorPos->setMinimumHeight(0);
704 ui->labelPositionMotorPosUnits->setMinimumHeight(0);
705 ui->labelPositionDirMotorPos->setMinimumHeight(0);
706 ui->labelPositionDirMotorPosUnits->setMinimumHeight(0);
707 ui->labelMixedMotorPos->setMinimumHeight(0);
708 ui->labelMixedMotorPosUnits->setMinimumHeight(0);
709 ui->labelTorqueMotorPos->setMinimumHeight(0);
710 ui->labelTorqueMotorPosUnits->setMinimumHeight(0);
711 ui->labelPWMMotorPos->setMinimumHeight(0);
712 ui->labelPWMMotorPosUnits->setMinimumHeight(0);
713 ui->labelCurrentMotorPos->setMinimumHeight(0);
714 ui->labelCurrentMotorPosUnits->setMinimumHeight(0);
715 ui->labelVelocityMotorPos->setMinimumHeight(0);
716 ui->labelVelocityMotorPosUnits->setMinimumHeight(0);
717 ui->labelIdleMotorPos->setMinimumHeight(0);
718 ui->labelIdleMotorPosUnits->setMinimumHeight(0);
719 ui->labelFaultMotorPos->setMinimumHeight(0);
720 ui->labelFaultMotorPosUnits->setMinimumHeight(0);
723 ui->editIdleMotorPos->setMinimumHeight(20);
724 ui->editPositionMotorPos->setMinimumHeight(20);
725 ui->editPositionDirMotorPos->setMinimumHeight(20);
726 ui->editMixedMotorPos->setMinimumHeight(20);
727 ui->editTorqueMotorPos->setMinimumHeight(20);
728 ui->editPWMMotorPos->setMinimumHeight(20);
729 ui->editCurrentMotorPos->setMinimumHeight(20);
730 ui->editVelocityMotorPos->setMinimumHeight(20);
731 ui->editFaultMotorPos->setMinimumHeight(20);
733 ui->labelPositionMotorPos->setMinimumHeight(20);
734 ui->labelPositionMotorPosUnits->setMinimumHeight(20);
735 ui->labelPositionDirMotorPos->setMinimumHeight(20);
736 ui->labelPositionDirMotorPosUnits->setMinimumHeight(20);
737 ui->labelMixedMotorPos->setMinimumHeight(20);
738 ui->labelMixedMotorPosUnits->setMinimumHeight(20);
739 ui->labelTorqueMotorPos->setMinimumHeight(20);
740 ui->labelTorqueMotorPosUnits->setMinimumHeight(20);
741 ui->labelPWMMotorPos->setMinimumHeight(20);
742 ui->labelPWMMotorPosUnits->setMinimumHeight(20);
743 ui->labelCurrentMotorPos->setMinimumHeight(20);
744 ui->labelCurrentMotorPosUnits->setMinimumHeight(20);
745 ui->labelVelocityMotorPos->setMinimumHeight(20);
746 ui->labelVelocityMotorPosUnits->setMinimumHeight(20);
747 ui->labelIdleMotorPos->setMinimumHeight(20);
748 ui->labelIdleMotorPosUnits->setMinimumHeight(20);
749 ui->labelFaultMotorPos->setMinimumHeight(20);
750 ui->labelFaultMotorPosUnits->setMinimumHeight(20);
756 joint_dutyVisible = visible;
761 ui->editTorqueDuty->setVisible(visible);
762 ui->editCurrentDuty->setVisible(visible);
775 ui->labelTorqueDuty->setVisible(visible);
776 ui->labelTorqueDutyUnits->setVisible(visible);
778 ui->labelCurrentDuty->setVisible(visible);
780 ui->labelCurrentDutyUnits->setVisible(visible);
801 ui->labelTorqueDuty->setMinimumHeight(0);
802 ui->labelTorqueDutyUnits->setMinimumHeight(0);
805 ui->labelCurrentDuty->setMinimumHeight(0);
806 ui->labelCurrentDutyUnits->setMinimumHeight(0);
817 ui->editTorqueDuty->setMinimumHeight(20);
819 ui->editCurrentDuty->setMinimumHeight(20);
828 ui->labelTorqueDuty->setMinimumHeight(20);
829 ui->labelTorqueDutyUnits->setMinimumHeight(20);
832 ui->labelCurrentDuty->setMinimumHeight(20);
833 ui->labelCurrentDutyUnits->setMinimumHeight(20);
843 joint_currentVisible = visible;
844 ui->editIdleCurrent->setVisible(visible);
845 ui->editPositionCurrent->setVisible(visible);
846 ui->editPositionDirCurrent->setVisible(visible);
847 ui->editMixedCurrent->setVisible(visible);
848 ui->editTorqueCurrent->setVisible(visible);
849 ui->editPWMCurrent->setVisible(visible);
851 ui->editVelocityCurrent->setVisible(visible);
853 ui->labelIdleCurrent->setVisible(visible);
854 ui->labelIdleCurrentUnits->setVisible(visible);
855 ui->labelPositionCurrent->setVisible(visible);
856 ui->labelPositionCurrentUnits->setVisible(visible);
857 ui->labelPositionDirCurrent->setVisible(visible);
858 ui->labelPositionDirCurrentUnits->setVisible(visible);
859 ui->labelMixedCurrent->setVisible(visible);
860 ui->labelMixedCurrentUnits->setVisible(visible);
861 ui->labelTorqueCurrent->setVisible(visible);
862 ui->labelTorqueCurrentUnits->setVisible(visible);
863 ui->labelPWMCurrent->setVisible(visible);
865 ui->labelPWMCurrentUnits->setVisible(visible);
867 ui->labelVelocityCurrent->setVisible(visible);
868 ui->labelVelocityCurrentUnits->setVisible(visible);
872 ui->editIdleCurrent->setMinimumHeight(0);
873 ui->editPositionCurrent->setMinimumHeight(0);
874 ui->editPositionDirCurrent->setMinimumHeight(0);
875 ui->editMixedCurrent->setMinimumHeight(0);
876 ui->editTorqueCurrent->setMinimumHeight(0);
877 ui->editPWMCurrent->setMinimumHeight(0);
879 ui->editVelocityCurrent->setMinimumHeight(0);
881 ui->labelPositionCurrent->setMinimumHeight(0);
882 ui->labelPositionCurrentUnits->setMinimumHeight(0);
883 ui->labelPositionDirCurrent->setMinimumHeight(0);
884 ui->labelPositionDirCurrentUnits->setMinimumHeight(0);
885 ui->labelMixedCurrent->setMinimumHeight(0);
886 ui->labelMixedCurrentUnits->setMinimumHeight(0);
887 ui->labelTorqueCurrent->setMinimumHeight(0);
888 ui->labelTorqueCurrentUnits->setMinimumHeight(0);
889 ui->labelPWMCurrent->setMinimumHeight(0);
890 ui->labelPWMCurrentUnits->setMinimumHeight(0);
893 ui->labelVelocityCurrent->setMinimumHeight(0);
894 ui->labelVelocityCurrentUnits->setMinimumHeight(0);
895 ui->labelIdleCurrent->setMinimumHeight(0);
896 ui->labelIdleCurrentUnits->setMinimumHeight(0);
899 ui->editIdleCurrent->setMinimumHeight(20);
900 ui->editPositionCurrent->setMinimumHeight(20);
901 ui->editPositionDirCurrent->setMinimumHeight(20);
902 ui->editMixedCurrent->setMinimumHeight(20);
903 ui->editTorqueCurrent->setMinimumHeight(20);
904 ui->editPWMCurrent->setMinimumHeight(20);
906 ui->editVelocityCurrent->setMinimumHeight(20);
908 ui->labelPositionCurrent->setMinimumHeight(20);
909 ui->labelPositionCurrentUnits->setMinimumHeight(20);
910 ui->labelPositionDirCurrent->setMinimumHeight(20);
911 ui->labelPositionDirCurrentUnits->setMinimumHeight(20);
912 ui->labelMixedCurrent->setMinimumHeight(20);
913 ui->labelMixedCurrentUnits->setMinimumHeight(20);
914 ui->labelTorqueCurrent->setMinimumHeight(20);
915 ui->labelTorqueCurrentUnits->setMinimumHeight(20);
916 ui->labelPWMCurrent->setMinimumHeight(20);
917 ui->labelPWMCurrentUnits->setMinimumHeight(20);
920 ui->labelVelocityCurrent->setMinimumHeight(20);
921 ui->labelVelocityCurrentUnits->setMinimumHeight(20);
922 ui->labelIdleCurrent->setMinimumHeight(20);
923 ui->labelIdleCurrentUnits->setMinimumHeight(20);
929 joint_speedVisible = visible;
930 ui->editIdleSpeed->setVisible(visible);
931 ui->editPositionSpeed->setVisible(visible);
932 ui->editPositionDirSpeed->setVisible(visible);
933 ui->editMixedSpeed->setVisible(visible);
934 ui->editTorqueSpeed->setVisible(visible);
935 ui->editPWMSpeed->setVisible(visible);
936 ui->editCurrentSpeed->setVisible(visible);
937 ui->editVelocitySpeed->setVisible(visible);
939 ui->labelIdleSpeed->setVisible(visible);
940 ui->labelIdlevelUnits->setVisible(visible);
941 ui->labelPositionSpeed->setVisible(visible);
942 ui->labelPositionvelUnits->setVisible(visible);
943 ui->labelPositionDirSpeed->setVisible(visible);
944 ui->labelPositionDirvelUnits->setVisible(visible);
945 ui->labelMixedSpeed->setVisible(visible);
946 ui->labelMixedvelUnits->setVisible(visible);
947 ui->labelTorqueSpeed->setVisible(visible);
948 ui->labelTorquevelUnits->setVisible(visible);
949 ui->labelPWMSpeed->setVisible(visible);
950 ui->labelCurrentSpeed->setVisible(visible);
951 ui->labelPWMvelUnits->setVisible(visible);
952 ui->labelCurrentvelUnits->setVisible(visible);
953 ui->labelVelocitySpeed->setVisible(visible);
954 ui->labelVelocityvelUnits->setVisible(visible);
958 ui->editIdleSpeed->setMinimumHeight(0);
959 ui->editPositionSpeed->setMinimumHeight(0);
960 ui->editPositionDirSpeed->setMinimumHeight(0);
961 ui->editMixedSpeed->setMinimumHeight(0);
962 ui->editTorqueSpeed->setMinimumHeight(0);
963 ui->editPWMSpeed->setMinimumHeight(0);
964 ui->editCurrentSpeed->setMinimumHeight(0);
965 ui->editVelocitySpeed->setMinimumHeight(0);
967 ui->labelPositionSpeed->setMinimumHeight(0);
968 ui->labelPositionvelUnits->setMinimumHeight(0);
969 ui->labelPositionDirSpeed->setMinimumHeight(0);
970 ui->labelPositionDirvelUnits->setMinimumHeight(0);
971 ui->labelMixedSpeed->setMinimumHeight(0);
972 ui->labelMixedvelUnits->setMinimumHeight(0);
973 ui->labelTorqueSpeed->setMinimumHeight(0);
974 ui->labelTorquevelUnits->setMinimumHeight(0);
975 ui->labelPWMSpeed->setMinimumHeight(0);
976 ui->labelPWMvelUnits->setMinimumHeight(0);
977 ui->labelCurrentSpeed->setMinimumHeight(0);
978 ui->labelCurrentvelUnits->setMinimumHeight(0);
979 ui->labelVelocitySpeed->setMinimumHeight(0);
980 ui->labelVelocityvelUnits->setMinimumHeight(0);
981 ui->labelIdleSpeed->setMinimumHeight(0);
982 ui->labelIdlevelUnits->setMinimumHeight(0);
984 ui->editIdleSpeed->setMinimumHeight(20);
985 ui->editPositionSpeed->setMinimumHeight(20);
986 ui->editPositionDirSpeed->setMinimumHeight(20);
987 ui->editMixedSpeed->setMinimumHeight(20);
988 ui->editTorqueSpeed->setMinimumHeight(20);
989 ui->editPWMSpeed->setMinimumHeight(20);
990 ui->editCurrentSpeed->setMinimumHeight(20);
991 ui->editVelocitySpeed->setMinimumHeight(20);
993 ui->labelPositionSpeed->setMinimumHeight(20);
994 ui->labelPositionvelUnits->setMinimumHeight(20);
995 ui->labelPositionDirSpeed->setMinimumHeight(20);
996 ui->labelPositionDirvelUnits->setMinimumHeight(20);
997 ui->labelMixedSpeed->setMinimumHeight(20);
998 ui->labelMixedvelUnits->setMinimumHeight(20);
999 ui->labelTorqueSpeed->setMinimumHeight(20);
1000 ui->labelTorquevelUnits->setMinimumHeight(20);
1001 ui->labelPWMSpeed->setMinimumHeight(20);
1002 ui->labelPWMvelUnits->setMinimumHeight(20);
1003 ui->labelCurrentSpeed->setMinimumHeight(20);
1004 ui->labelCurrentvelUnits->setMinimumHeight(20);
1005 ui->labelVelocitySpeed->setMinimumHeight(20);
1006 ui->labelVelocityvelUnits->setMinimumHeight(20);
1007 ui->labelIdleSpeed->setMinimumHeight(20);
1008 ui->labelIdlevelUnits->setMinimumHeight(20);
1014 double positionSliderStep = 1 / (fabs(min_position - max_position) / 100.0);
1015 ui->sliderMixedPosition->setSliderStep(positionSliderStep);
1016 ui->sliderTrajectoryPosition->setSliderStep(positionSliderStep);
1017 ui->sliderDirectPosition->setSliderStep(positionSliderStep);
1018 ui->sliderMixedPosition->setIsDouble(
true);
1019 ui->sliderTrajectoryPosition->setIsDouble(
true);
1020 ui->sliderDirectPosition->setIsDouble(
true);
1021 int sliderMin = min_position*positionSliderStep;
1022 int sliderMax = max_position*positionSliderStep;
1023 ui->sliderMixedPosition->setRange(sliderMin, sliderMax);
1024 ui->sliderTrajectoryPosition->setRange(sliderMin, sliderMax);
1025 ui->sliderDirectPosition->setRange(sliderMin, sliderMax);
1026 ui->sliderMixedPosition->resetTarget();
1027 ui->sliderTrajectoryPosition->resetTarget();
1028 ui->sliderDirectPosition->resetTarget();
1033 double positionSliderStep = 1 / value;
1034 ui->sliderMixedPosition->setSliderStep(positionSliderStep);
1035 ui->sliderTrajectoryPosition->setSliderStep(positionSliderStep);
1036 ui->sliderDirectPosition->setSliderStep(positionSliderStep);
1037 ui->sliderMixedPosition->setIsDouble(
true);
1038 ui->sliderTrajectoryPosition->setIsDouble(
true);
1039 ui->sliderDirectPosition->setIsDouble(
true);
1040 int sliderMin = min_position*positionSliderStep;
1041 int sliderMax = max_position*positionSliderStep;
1042 ui->sliderMixedPosition->setRange(sliderMin, sliderMax);
1043 ui->sliderTrajectoryPosition->setRange(sliderMin, sliderMax);
1044 ui->sliderDirectPosition->setRange(sliderMin, sliderMax);
1045 ui->sliderMixedPosition->resetTarget();
1046 ui->sliderTrajectoryPosition->resetTarget();
1047 ui->sliderDirectPosition->resetTarget();
1052 ui->sliderMixedPosition->number_of_decimals=num;
1053 ui->sliderTrajectoryPosition->number_of_decimals = num;
1054 ui->sliderDirectPosition->number_of_decimals = num;
1055 ui->sliderMixedPosition->number_of_decimals = num;
1056 ui->sliderTrajectoryPosition->number_of_decimals = num;
1057 ui->sliderDirectPosition->number_of_decimals = num;
1062 if (fabs(max_position - min_position) < 1.0)
1064 yError(
"Unable to set integer position slider");
1067 double positionSliderStep = 1;
1068 ui->sliderMixedPosition->setSliderStep(positionSliderStep);
1069 ui->sliderTrajectoryPosition->setSliderStep(positionSliderStep);
1070 ui->sliderDirectPosition->setSliderStep(positionSliderStep);
1071 ui->sliderMixedPosition->setIsDouble(
false);
1072 ui->sliderTrajectoryPosition->setIsDouble(
false);
1073 ui->sliderDirectPosition->setIsDouble(
false);
1074 int sliderMin = min_position;
1075 int sliderMax = max_position;
1076 ui->sliderMixedPosition->setRange(sliderMin, sliderMax);
1077 ui->sliderTrajectoryPosition->setRange(sliderMin, sliderMax);
1078 ui->sliderDirectPosition->setRange(sliderMin, sliderMax);
1079 ui->sliderMixedPosition->resetTarget();
1080 ui->sliderTrajectoryPosition->resetTarget();
1081 ui->sliderDirectPosition->resetTarget();
1086 double velocitySliderStep = 1 / (fabs(-max_velocity - max_velocity) / 100.0);
1087 ui->sliderVelocityVelocity->setSliderStep(velocitySliderStep);
1088 ui->sliderVelocityVelocity->setIsDouble(
true);
1089 int sliderMin = -max_velocity*velocitySliderStep;
1090 int sliderMax = max_velocity*velocitySliderStep;
1091 ui->sliderVelocityVelocity->setRange(sliderMin, sliderMax);
1092 int v = ui->sliderVelocityVelocity->value();
1093 if (v > sliderMax) {}
1094 if (v < sliderMin) {}
1100 double velocitySliderStep = 1 / value;
1101 ui->sliderVelocityVelocity->setSliderStep(velocitySliderStep);
1102 ui->sliderVelocityVelocity->setIsDouble(
true);
1103 int sliderMin = -max_velocity*velocitySliderStep;
1104 int sliderMax = max_velocity*velocitySliderStep;
1105 ui->sliderVelocityVelocity->setRange(sliderMin, sliderMax);
1106 int v = ui->sliderVelocityVelocity->value();
1107 if (v > sliderMax) {}
1108 if (v < sliderMin) {}
1114 if (fabs(max_velocity) < 1.0)
1116 yError(
"Unable to set integer velocity slider");
1119 double velocitySliderStep = 1;
1120 ui->sliderVelocityVelocity->setSliderStep(velocitySliderStep);
1121 ui->sliderVelocityVelocity->setIsDouble(
false);
1122 int sliderMin = -max_velocity;
1123 int sliderMax = max_velocity;
1124 ui->sliderVelocityVelocity->setRange(sliderMin, sliderMax);
1125 int v = ui->sliderVelocityVelocity->value();
1126 if (v > sliderMax) {}
1127 if (v < sliderMin) {}
1133 double torqueSliderStep = 1 / (fabs(-max_torque - max_torque) / 100.0);
1134 ui->sliderTorqueTorque->setSliderStep(torqueSliderStep);
1135 ui->sliderTorqueTorque->setIsDouble(
true);
1136 int sliderMin = -max_torque*torqueSliderStep;
1137 int sliderMax = max_torque*torqueSliderStep;
1138 ui->sliderTorqueTorque->setRange(sliderMin, sliderMax);
1139 int v = ui->sliderTorqueTorque->value();
1140 if (v > sliderMax) {}
1141 if (v < sliderMin) {}
1147 double torqueSliderStep = 1 / value;
1148 ui->sliderTorqueTorque->setSliderStep(torqueSliderStep);
1149 ui->sliderTorqueTorque->setIsDouble(
true);
1150 int sliderMin = -max_torque*torqueSliderStep;
1151 int sliderMax = max_torque*torqueSliderStep;
1152 ui->sliderTorqueTorque->setRange(sliderMin, sliderMax);
1153 int v = ui->sliderTorqueTorque->value();
1154 if (v > sliderMax) {}
1155 if (v < sliderMin) {}
1161 if (fabs(max_torque) < 1.0)
1163 yError(
"Unable to set integer torque slider");
1166 double torqueSliderStep = 1;
1167 ui->sliderTorqueTorque->setSliderStep(torqueSliderStep);
1168 ui->sliderTorqueTorque->setIsDouble(
false);
1169 int sliderMin = -max_torque;
1170 int sliderMax = max_torque;
1171 ui->sliderTorqueTorque->setRange(sliderMin, sliderMax);
1172 int v = ui->sliderTorqueTorque->value();
1173 if (v > sliderMax) {}
1174 if (v < sliderMin) {}
1180 double currentSliderStep = 1 / (fabs(-max_current - max_current) / 100.0);
1181 ui->sliderCurrentOutput->setSliderStep(currentSliderStep);
1182 ui->sliderCurrentOutput->setIsDouble(
true);
1183 int sliderMin = -max_current*currentSliderStep;
1184 int sliderMax = max_current*currentSliderStep;
1185 ui->sliderCurrentOutput->setRange(sliderMin, sliderMax);
1186 int v = ui->sliderCurrentOutput->value();
1187 if (v > sliderMax) {}
1188 if (v < sliderMin) {}
1194 double currentSliderStep = 1 / value;
1195 ui->sliderCurrentOutput->setSliderStep(currentSliderStep);
1196 ui->sliderCurrentOutput->setIsDouble(
true);
1197 int sliderMin = -max_current*currentSliderStep;
1198 int sliderMax = max_current*currentSliderStep;
1199 ui->sliderCurrentOutput->setRange(sliderMin, sliderMax);
1200 int v = ui->sliderCurrentOutput->value();
1201 if (v > sliderMax) {}
1202 if (v < sliderMin) {}
1208 if (fabs(max_velocity) < 1.0)
1210 yError(
"Unable to set integer velocity slider");
1213 double currentSliderStep = 1;
1214 ui->sliderCurrentOutput->setSliderStep(currentSliderStep);
1215 ui->sliderCurrentOutput->setIsDouble(
false);
1216 int sliderMin = -max_current;
1217 int sliderMax = max_current;
1218 ui->sliderCurrentOutput->setRange(sliderMin, sliderMax);
1219 int v = ui->sliderCurrentOutput->value();
1220 if (v > sliderMax) {}
1221 if (v < sliderMin) {}
1227 double trajectoryVelocitySliderStep = 1 / (fabs(0 - max_trajectory_velocity) / 100.0);
1228 ui->sliderTrajectoryVelocity->setSliderStep(trajectoryVelocitySliderStep);
1229 ui->sliderTrajectoryVelocity->setIsDouble(
true);
1230 int sliderMin = 0 * trajectoryVelocitySliderStep;
1231 int sliderMax = max_trajectory_velocity*trajectoryVelocitySliderStep;
1232 ui->sliderTrajectoryVelocity->setRange(sliderMin, sliderMax);
1233 int v = ui->sliderTrajectoryVelocity->value();
1234 if (v > sliderMax) {}
1235 if (v < sliderMin) {}
1241 double trajectoryVelocitySliderStep = 1 / value;
1242 ui->sliderTrajectoryVelocity->setSliderStep(trajectoryVelocitySliderStep);
1243 ui->sliderTrajectoryVelocity->setIsDouble(
true);
1244 int sliderMin = 0 * trajectoryVelocitySliderStep;
1245 int sliderMax = max_trajectory_velocity*trajectoryVelocitySliderStep;
1246 ui->sliderTrajectoryVelocity->setRange(sliderMin, sliderMax);
1247 int v = ui->sliderTrajectoryVelocity->value();
1248 if (v > sliderMax) {}
1249 if (v < sliderMin) {}
1256 int sliderMax = max_trajectory_velocity;
1257 double trajectoryVelocitySliderStep = 1;
1258 ui->sliderTrajectoryVelocity->setSliderStep(trajectoryVelocitySliderStep);
1259 ui->sliderTrajectoryVelocity->setRange(sliderMin, sliderMax);
1260 ui->sliderTrajectoryVelocity->setIsDouble(
false);
1261 int v = ui->sliderTrajectoryVelocity->value();
1262 if (v > sliderMax) {}
1263 if (v < sliderMin) {}
1276 ui->buttonCalib->setEnabled(
false);
1279 connect(ui->stackedWidget,
SIGNAL(currentChanged(
int)),
this, SLOT(onStackedWidgetChanged(
int)));
1284 disconnect(ui->comboMode,
SIGNAL(currentIndexChanged(
int)),
this,SLOT(onModeChanged(
int)));
1285 disconnect(ui->comboInteraction,
SIGNAL(currentIndexChanged(
int)),
this,SLOT(onInteractionChanged(
int)));
1287 disconnect(ui->sliderTrajectoryPosition,
SIGNAL(sliderPressed()),
this,SLOT(onSliderTrajectoryPositionPressed()));
1288 disconnect(ui->sliderTrajectoryPosition,
SIGNAL(sliderReleased()),
this,SLOT(onSliderTrajectoryPositionReleased()));
1290 disconnect(ui->sliderTorqueTorque,
SIGNAL(sliderPressed()),
this,SLOT(onSliderTorquePressed()));
1291 disconnect(ui->sliderTorqueTorque,
SIGNAL(sliderReleased()),
this,SLOT(onSliderTorqueReleased()));
1293 disconnect(ui->sliderPWMOutput,
SIGNAL(sliderPressed()),
this, SLOT(onSliderPWMPressed()));
1294 disconnect(ui->sliderPWMOutput,
SIGNAL(sliderReleased()),
this, SLOT(onSliderPWMReleased()));
1296 disconnect(ui->sliderCurrentOutput,
SIGNAL(sliderPressed()),
this, SLOT(onSliderCurrentPressed()));
1297 disconnect(ui->sliderCurrentOutput,
SIGNAL(sliderReleased()),
this, SLOT(onSliderCurrentPressed()));
1299 disconnect(ui->sliderDirectPosition,
SIGNAL(sliderPressed()),
this, SLOT(onSliderDirectPositionPressed()));
1300 disconnect(ui->sliderDirectPosition,
SIGNAL(sliderReleased()),
this, SLOT(onSliderDirectPositionReleased()));
1302 disconnect(ui->sliderMixedPosition,
SIGNAL(sliderPressed()),
this,SLOT(onSliderMixedPositionPressed()));
1303 disconnect(ui->sliderMixedPosition,
SIGNAL(sliderReleased()),
this,SLOT(onSliderMixedPositionReleased()));
1305 disconnect(ui->sliderTrajectoryVelocity,
SIGNAL(sliderPressed()),
this, SLOT(onSliderTrajectoryVelocityPressed()));
1306 disconnect(ui->sliderMixedVelocity,
SIGNAL(sliderReleased()),
this, SLOT(onSliderMixedVelocityReleased()));
1308 disconnect(ui->buttonHome,
SIGNAL(clicked()),
this,SLOT(onHomeClicked()));
1309 disconnect(ui->buttonIdle,
SIGNAL(clicked()),
this,SLOT(onIdleClicked()));
1310 disconnect(ui->buttonRun,
SIGNAL(clicked()),
this,SLOT(onRunClicked()));
1311 disconnect(ui->buttonPid,
SIGNAL(clicked()),
this,SLOT(onPidClicked()));
1312 disconnect(ui->buttonCalib,
SIGNAL(clicked()),
this,SLOT(onCalibClicked()));
1321void JointItem::installFilter()
1324 filter->setParent(
this);
1325 ui->comboMode->installEventFilter(filter);
1326 ui->comboInteraction->installEventFilter(filter);
1328 ui->sliderMixedPosition->installEventFilter(filter);
1329 ui->sliderMixedVelocity->installEventFilter(filter);
1330 ui->sliderDirectPosition->installEventFilter(filter);
1331 ui->sliderTrajectoryPosition->installEventFilter(filter);
1332 ui->sliderTrajectoryVelocity->installEventFilter(filter);
1333 ui->sliderTorqueTorque->installEventFilter(filter);
1337void JointItem::onStackedWidgetChanged(
int index)
1339 if(index == VELOCITY){
1340 if(velocityModeEnabled){
1341 velocityTimer.start();
1344 if(velocityModeEnabled)
1346 velocityTimer.stop();
1348 updateSliderVelocity(0);
1353void JointItem::onModeChanged(
int index)
1355 if (this->internalState ==
Velocity){
1356 velocityTimer.stop();
1359 int mode = ui->comboMode->currentData(Qt::UserRole).toInt();
1364void JointItem::onInteractionChanged(
int index)
1379void JointItem::onSliderVelocityPressed()
1381 sliderVelocityPressed =
true;
1384void JointItem::onSliderVelocityReleased()
1386 lastVelocity = (double)ui->sliderVelocityVelocity->value() / ui->sliderVelocityVelocity->getSliderStep();
1387 sliderVelocityPressed =
false;
1390void JointItem::onSliderMixedVelocityPressed()
1392 sliderMixedVelocityPressed =
true;
1395void JointItem::onSliderMixedVelocityReleased()
1397 lastVelocity = ui->sliderMixedVelocity->value();
1399 if (ui->sliderMixedVelocity->getIsDouble())
1401 double val = ui->sliderMixedVelocity->value();
1409 sliderMixedVelocityPressed =
false;
1413void JointItem::onVelocityTimer()
1415 if(velocityModeEnabled)
1421void JointItem::onSliderTrajectoryPositionPressed()
1423 sliderTrajectoryPositionPressed =
true;
1426void JointItem::onSliderTrajectoryPositionReleased()
1428 if (ui->sliderTrajectoryPosition->getIsDouble())
1430 double val = ui->sliderTrajectoryPosition->value();
1432 updateTrajectoryPositionTarget(val / ui->sliderTrajectoryPosition->getSliderStep());
1436 double val = ui->sliderTrajectoryPosition->value();
1438 updateTrajectoryPositionTarget(val);
1440 sliderTrajectoryPositionPressed =
false;
1444void JointItem::onSliderMixedPositionPressed()
1446 sliderMixedPositionPressed =
true;
1449void JointItem::onSliderMixedPositionReleased()
1451 if (ui->sliderMixedPosition->getIsDouble())
1453 double val = ui->sliderMixedPosition->value();
1455 updateMixedPositionTarget(val / ui->sliderMixedPosition->getSliderStep());
1459 double val = ui->sliderMixedPosition->value();
1461 updateMixedPositionTarget(val);
1464 sliderMixedPositionPressed =
false;
1468void JointItem::onSliderDirectPositionPressed()
1470 sliderDirectPositionPressed =
true;
1473void JointItem::onSliderDirectPositionReleased()
1475 double ref_direct_position = (double)ui->sliderDirectPosition->value() / ui->sliderDirectPosition->getSliderStep();
1477 sliderDirectPositionPressed =
false;
1481void JointItem::onSliderTrajectoryVelocityPressed()
1483 sliderTrajectoryVelocityPressed =
true;
1486void JointItem::onSliderTrajectoryVelocityReleased()
1488 ref_trajectory_velocity = (double)ui->sliderTrajectoryVelocity->value() / ui->sliderTrajectoryVelocity->getSliderStep();
1490 sliderTrajectoryVelocityPressed =
false;
1493void JointItem::onSliderPWMPressed()
1495 sliderPWMPressed =
true;
1498void JointItem::onSliderPWMReleased()
1500 ref_pwm = (double)ui->sliderPWMOutput->value() / ui->sliderPWMOutput->getSliderStep();
1502 sliderPWMPressed =
false;
1505void JointItem::onSliderCurrentPressed()
1507 sliderCurrentPressed =
true;
1510void JointItem::onSliderCurrentReleased()
1512 ref_current = (double)ui->sliderCurrentOutput->value() / ui->sliderCurrentOutput->getSliderStep();
1514 sliderCurrentPressed =
false;
1517void JointItem::onSliderTorquePressed()
1519 sliderTorquePressed =
true;
1522void JointItem::onSliderTorqueReleased()
1524 ref_torque = (double)ui->sliderTorqueTorque->value() / ui->sliderTorqueTorque->getSliderStep();
1526 sliderTorquePressed =
false;
1533 double pos = (double)ui->sliderTrajectoryPosition->value() / ui->sliderTrajectoryPosition->getSliderStep();
1534 if (fabs(pos) < 1e-6) {
1543 double vel = (double)ui->sliderTrajectoryVelocity->value() / ui->sliderTrajectoryVelocity->getSliderStep();
1544 if (fabs(vel) < 1e-6) {
1553 int index = ui->stackedWidget->currentIndex();
1554 if (index == POSITION) {
1556 ui->editPositionJointPos->setStyleSheet(
"background-color: rgb(255, 38, 41); color: rgb(35, 38, 41);");
1558 ui->editPositionJointPos->setStyleSheet(
"background-color: rgb(255, 255, 255); color: rgb(35, 38, 41);");
1560 }
else if (index == POSITION_DIR) {
1562 ui->editPositionDirJointPos->setStyleSheet(
"background-color: rgb(255, 38, 41); color: rgb(35, 38, 41);");
1564 ui->editPositionDirJointPos->setStyleSheet(
"background-color: rgb(255, 255, 255); color: rgb(35, 38, 41);");
1566 }
else if (index == MIXED) {
1568 ui->editMixedJointPos->setStyleSheet(
"background-color: rgb(255, 38, 41); color: rgb(35, 38, 41);");
1570 ui->editMixedJointPos->setStyleSheet(
"background-color: rgb(255, 255, 255); color: rgb(35, 38, 41);");
1577 if(sliderTrajectoryPositionPressed ||
1578 sliderMixedPositionPressed ||
1579 sliderDirectPositionPressed)
1593void JointItem::updateSliderVelocity(
double val)
1595 if (sliderVelocityPressed)
1599 ui->sliderVelocityVelocity->setValue(val);
1602void JointItem::updateSliderPWM(
double val)
1604 if (sliderPWMPressed) {
1607 ui->sliderPWMOutput->setValue(val);
1610void JointItem::updateSliderCurrent(
double val)
1612 if (sliderCurrentPressed) {
1615 ui->sliderCurrentOutput->setValue(val);
1620 ui->labelFaultCodeEntry->setText(QString::fromStdString(std::to_string(i)));
1621 ui->labelFaultMessageEntry->setText(QString::fromStdString(message));
1624void JointItem::updateSliderTorque(
double val)
1626 if(sliderTorquePressed){
1629 ui->sliderTorqueTorque->setValue(val);
1632void JointItem::updateSliderTrajectoryVelocity(
double val)
1634 if (sliderTrajectoryVelocityPressed){
1637 ui->sliderTrajectoryVelocity->setValue(val);
1642 if(sliderPWMPressed){
1645 if(ui->stackedWidget->currentIndex() == PWM){
1646 updateSliderPWM(pwmValue);
1648 sVal = QString(
"%L1").arg(pwmValue, 0,
'f', 3);
1649 ui->editPWMDuty->setText(sVal);
1655 if (sliderCurrentPressed){
1658 if (ui->stackedWidget->currentIndex() == CURRENT){
1659 updateSliderCurrent(currentValue);
1661 sVal = QString(
"%L1").arg(currentValue, 0,
'f', 3);
1662 ui->editCurrentCurrent->setText(sVal);
1669 if (ui->sliderTrajectoryPosition->getIsDouble())
1672 sVal = QString(
"%L1").arg(pos, 0,
'f', 3);
1676 double pos = floor(val * 10) / 10;
1677 sVal = QString(
"%1").arg(pos);
1680 if(ui->stackedWidget->currentIndex() == IDLE){
1681 ui->editIdleJointPos->setText(sVal);
1684 if (ui->stackedWidget->currentIndex() == HW_FAULT) {
1685 ui->editFaultJointPos->setText(sVal);
1688 if(ui->stackedWidget->currentIndex() == POSITION){
1689 ui->editPositionJointPos->setText(sVal);
1690 updateSliderPosition(ui->sliderTrajectoryPosition, val);
1693 if(ui->stackedWidget->currentIndex() == POSITION_DIR){
1694 ui->editPositionDirJointPos->setText(sVal);
1695 updateSliderPosition(ui->sliderDirectPosition, val);
1698 if(ui->stackedWidget->currentIndex() == MIXED){
1699 ui->editMixedJointPos->setText(sVal);
1700 updateSliderPosition(ui->sliderMixedPosition, val);
1703 if(ui->stackedWidget->currentIndex() == VELOCITY){
1704 ui->editVelocityJointPos->setText(sVal);
1707 if(ui->stackedWidget->currentIndex() == TORQUE){
1708 ui->editTorqueJointPos->setText(sVal);
1710 if(ui->stackedWidget->currentIndex() == PWM){
1711 ui->editPWMJointPos->setText(sVal);
1713 if (ui->stackedWidget->currentIndex() == CURRENT){
1714 ui->editCurrentJointPos->setText(sVal);
1721 if(ui->stackedWidget->currentIndex() == TORQUE){
1722 updateSliderTorque(val);
1729 if (ui->stackedWidget->currentIndex() == VELOCITY){
1730 updateSliderVelocity(val);
1737 if (ui->stackedWidget->currentIndex() == POSITION){
1738 updateSliderTrajectoryVelocity(val);
1739 ref_trajectory_velocity = val;
1743 ui->groupBox_12->setStyleSheet(
"background-color:orange; color: rgb(35, 38, 41);");
1744 ui->groupBox_12->setTitle(
"Velocity is ZERO!");
1748 ui->groupBox_12->setStyleSheet(
"background-color:transparent; color: rgb(35, 38, 41);");
1749 ui->groupBox_12->setTitle(
"Velocity");
1756 if (ui->stackedWidget->currentIndex() == POSITION){
1757 updateTrajectoryPositionTarget(val);
1763 QString sVal = QString(
"%L1").arg(val,0,
'f',3);
1765 if(ui->stackedWidget->currentIndex() == IDLE){
1766 ui->editIdleTorque->setText(sVal);
1769 if(ui->stackedWidget->currentIndex() == POSITION){
1770 ui->editPositionTorque->setText(sVal);
1773 if(ui->stackedWidget->currentIndex() == POSITION_DIR){
1774 ui->editPositionDirTorque->setText(sVal);
1777 if(ui->stackedWidget->currentIndex() == MIXED){
1778 ui->editMixedTorque->setText(sVal);
1781 if(ui->stackedWidget->currentIndex() == VELOCITY){
1782 ui->editVelocityTorque->setText(sVal);
1784 if(ui->stackedWidget->currentIndex() == TORQUE){
1785 ui->editTorqueTorque->setText(sVal);
1787 if(ui->stackedWidget->currentIndex() == PWM){
1788 ui->editPWMTorque->setText(sVal);
1790 if (ui->stackedWidget->currentIndex() == CURRENT){
1791 ui->editCurrentTorque->setText(sVal);
1797 if (!joint_motorPositionVisible){
1802 QString sVal = QString(
"%1").arg(mot, 0,
'f', 1);
1804 if (ui->stackedWidget->currentIndex() == HW_FAULT) {
1805 ui->editFaultMotorPos->setText(sVal);
1808 if (ui->stackedWidget->currentIndex() == IDLE){
1809 ui->editIdleMotorPos->setText(sVal);
1812 if (ui->stackedWidget->currentIndex() == POSITION){
1813 ui->editPositionMotorPos->setText(sVal);
1816 if (ui->stackedWidget->currentIndex() == POSITION_DIR) {
1817 ui->editPositionDirMotorPos->setText(sVal);
1820 if (ui->stackedWidget->currentIndex() == MIXED) {
1821 ui->editMixedMotorPos->setText(sVal);
1824 if (ui->stackedWidget->currentIndex() == VELOCITY) {
1825 ui->editVelocityMotorPos->setText(sVal);
1828 if (ui->stackedWidget->currentIndex() == TORQUE) {
1829 ui->editTorqueMotorPos->setText(sVal);
1832 if (ui->stackedWidget->currentIndex() == PWM) {
1833 ui->editPWMMotorPos->setText(sVal);
1836 if (ui->stackedWidget->currentIndex() == CURRENT) {
1837 ui->editCurrentMotorPos->setText(sVal);
1843 if (!joint_dutyVisible) {
1848 QString sVal = QString(
"%1").arg(mot, 0,
'f', 1);
1870 if (ui->stackedWidget->currentIndex() == TORQUE) {
1871 ui->editTorqueDuty->setText(sVal);
1874 if (ui->stackedWidget->currentIndex() == PWM) {
1875 ui->editPWMDuty->setText(sVal);
1878 if (ui->stackedWidget->currentIndex() == CURRENT) {
1879 ui->editCurrentDuty->setText(sVal);
1885 if (!joint_speedVisible){
1890 double speed = meas;
1891 QString sVal = QString(
"%1").arg(speed,0,
'f',1);
1893 if(ui->stackedWidget->currentIndex() == IDLE){
1894 ui->editIdleSpeed->setText(sVal);
1897 if(ui->stackedWidget->currentIndex() == POSITION){
1898 ui->editPositionSpeed->setText(sVal);
1901 if(ui->stackedWidget->currentIndex() == POSITION_DIR){
1902 ui->editPositionDirSpeed->setText(sVal);
1905 if(ui->stackedWidget->currentIndex() == MIXED){
1906 ui->editMixedSpeed->setText(sVal);
1909 if(ui->stackedWidget->currentIndex() == VELOCITY){
1910 if(!sliderVelocityPressed){
1911 ui->editVelocitySpeed->setText(sVal);
1915 if(ui->stackedWidget->currentIndex() == TORQUE){
1916 ui->editTorqueSpeed->setText(sVal);
1919 if(ui->stackedWidget->currentIndex() == PWM){
1920 ui->editPWMSpeed->setText(sVal);
1922 if (ui->stackedWidget->currentIndex() == CURRENT){
1923 ui->editCurrentSpeed->setText(sVal);
1930 if (!joint_currentVisible) {
1935 double current = meas;
1936 QString sVal = QString(
"%1").arg(current, 0,
'f', 3);
1938 if (ui->stackedWidget->currentIndex() == IDLE) {
1939 ui->editIdleCurrent->setText(sVal);
1942 if (ui->stackedWidget->currentIndex() == POSITION) {
1943 ui->editPositionCurrent->setText(sVal);
1946 if (ui->stackedWidget->currentIndex() == POSITION_DIR) {
1947 ui->editPositionDirCurrent->setText(sVal);
1950 if (ui->stackedWidget->currentIndex() == MIXED) {
1951 ui->editMixedCurrent->setText(sVal);
1954 if (ui->stackedWidget->currentIndex() == VELOCITY) {
1955 ui->editVelocityCurrent->setText(sVal);
1957 if (ui->stackedWidget->currentIndex() == TORQUE) {
1958 ui->editTorqueCurrent->setText(sVal);
1960 if (ui->stackedWidget->currentIndex() == PWM) {
1961 ui->editPWMCurrent->setText(sVal);
1963 if (ui->stackedWidget->currentIndex() == CURRENT) {
1964 ui->editCurrentCurrent->setText(sVal);
1972void JointItem::setJointInternalInteraction(
int interaction)
1974 disconnect(ui->comboInteraction,
SIGNAL(currentIndexChanged(
int)),
this,SLOT(onInteractionChanged(
int)));
1975 ui->comboInteraction->setCurrentIndex(interaction);
1976 connect(ui->comboInteraction,
SIGNAL(currentIndexChanged(
int)),
this,SLOT(onInteractionChanged(
int)));
1979void JointItem::setJointInternalState(
int mode)
1981 disconnect(ui->comboMode,
SIGNAL(currentIndexChanged(
int)),
this,SLOT(onModeChanged(
int)));
1982 ui->comboMode->setCurrentIndex(mode);
1983 connect(ui->comboMode,
SIGNAL(currentIndexChanged(
int)),
this,SLOT(onModeChanged(
int)));
1985 ui->stackedWidget->setCurrentIndex(mode);
1986 if(ui->stackedWidget->widget(mode)){
1987 QVariant variant = ui->comboMode->itemData(mode,Qt::BackgroundRole);
1989 switch(internalState)
1995 ui->groupBox->setTitle(QString(
"JOINT %1 (%2) - HARDWARE FAULT").arg(jointIndex).arg(jointName));
1996 ui->stackedWidget->setEnabled(
false);
1998 ui->buttonHome->setEnabled(
false);
1999 ui->buttonCalib->setEnabled(
false);
2000 ui->buttonRun->setEnabled(
false);
2001 ui->comboMode->setEnabled(
false);
2002 ui->comboInteraction->setEnabled(
false);
2003 ui->buttonIdle->setEnabled(
true);
2004 ui->buttonPid->setEnabled(
true);
2017 c = variant.value<QColor>();
2018 if(ui->groupBox->title() != QString(
"JOINT %1 (%2)").arg(jointIndex).arg(jointName))
2020 ui->groupBox->setTitle(QString(
"JOINT %1 (%2)").arg(jointIndex).arg(jointName));
2022 ui->stackedWidget->setEnabled(
true);
2023 ui->buttonsContainer->setEnabled(
true);
2028 setStyleSheet(QString(
"font: 8pt; background-color: rgb(%1,%2,%3); color: rgb(35, 38, 41);").arg(c.red()).arg(c.green()).arg(c.blue()));
2034 if(internalInteraction == interaction){
2038 internalInteraction = interaction;
2040 switch (internalInteraction) {
2042 setJointInternalInteraction(
STIFF);
2055 if(internalState == newState){
2059 internalState = newState;
2061 switch (internalState) {
2063 ui->groupBox->setTitle(QString(
"JOINT %1 (%2) - UNKNOWN").arg(jointIndex).arg(jointName));
2064 ui->stackedWidget->setEnabled(
false);
2065 ui->buttonsContainer->setEnabled(
false);
2067 int index = ui->stackedWidget->currentIndex();
2068 if(ui->stackedWidget->widget(index)){
2070 setStyleSheet(QString(
"font: 8pt; background-color: rgb(%1,%2,%3); color: rgb(35, 38, 41);").arg(c.red()).arg(c.green()).arg(c.blue()));
2075 ui->groupBox->setTitle(QString(
"JOINT %1 (%2) - CONFIGURED").arg(jointIndex).arg(jointName));
2076 ui->stackedWidget->setEnabled(
true);
2077 ui->buttonsContainer->setEnabled(
true);
2079 int index = ui->stackedWidget->currentIndex();
2080 if(ui->stackedWidget->widget(index)){
2082 setStyleSheet(QString(
"font: 8pt; background-color: rgb(%1,%2,%3); color: rgb(35, 38, 41);").arg(c.red()).arg(c.green()).arg(c.blue()));
2088 ui->groupBox->setTitle(QString(
"JOINT %1 (%2) - NOT CONFIGURED").arg(jointIndex).arg(jointName));
2089 ui->stackedWidget->setEnabled(
false);
2094 ui->buttonsContainer->setEnabled(
true);
2095 ui->buttonIdle->setEnabled(
false);
2096 ui->buttonPid->setEnabled(
true);
2097 ui->buttonHome->setEnabled(
false);
2098 ui->buttonCalib->setEnabled(
true);
2099 ui->buttonRun->setEnabled(
false);
2100 ui->comboMode->setEnabled(
false);
2101 ui->comboInteraction->setEnabled(
false);
2106 ui->buttonsContainer->setEnabled(
false);
2109 int index = ui->stackedWidget->currentIndex();
2110 if(ui->stackedWidget->widget(index)){
2112 setStyleSheet(QString(
"font: 8pt; background-color: rgb(%1,%2,%3); color: rgb(35, 38, 41);").arg(c.red()).arg(c.green()).arg(c.blue()));
2118 ui->groupBox->setTitle(QString(
"JOINT %1 (%2) - CALIBRATING DONE").arg(jointIndex).arg(jointName));
2119 ui->stackedWidget->setEnabled(
true);
2120 ui->buttonsContainer->setEnabled(
true);
2122 int index = ui->stackedWidget->currentIndex();
2123 if(ui->stackedWidget->widget(index)){
2125 setStyleSheet(QString(
"font: 8pt; background-color: rgb(%1,%2,%3); color: rgb(35, 38, 41);").arg(c.red()).arg(c.green()).arg(c.blue()));
2130 ui->groupBox->setTitle(QString(
"JOINT %1 (%2) - CALIBRATING").arg(jointIndex).arg(jointName));
2131 ui->stackedWidget->setEnabled(
false);
2132 ui->buttonsContainer->setEnabled(
false);
2134 int index = ui->stackedWidget->currentIndex();
2135 if(ui->stackedWidget->widget(index)){
2137 setStyleSheet(QString(
"font: 8pt; background-color: rgb(%1,%2,%3); color: rgb(35, 38, 41);").arg(c.red()).arg(c.green()).arg(c.blue()));
2142 setJointInternalState(HW_FAULT);
2146 ui->groupBox->setTitle(QString(
"JOINT %1 (%2) - DISCONNECTED").arg(jointIndex).arg(jointName));
2147 ui->stackedWidget->setEnabled(
false);
2148 ui->buttonsContainer->setEnabled(
false);
2150 int index = ui->stackedWidget->currentIndex();
2151 if(ui->stackedWidget->widget(index)){
2153 setStyleSheet(QString(
"font: 8pt; background-color: rgb(%1,%2,%3); color: rgb(35, 38, 41);").arg(c.red()).arg(c.green()).arg(c.blue()));
2158 setJointInternalState(IDLE);
2162 setJointInternalState(POSITION);
2166 setJointInternalState(POSITION_DIR);
2170 setJointInternalState(MIXED);
2174 setJointInternalState(VELOCITY);
2178 setJointInternalState(TORQUE);
2182 setJointInternalState(PWM);
2186 setJointInternalState(CURRENT);
2195void JointItem::enableAll()
2197 ui->stackedWidget->setEnabled(
true);
2198 ui->buttonsContainer->setEnabled(
true);
2199 ui->buttonIdle->setEnabled(
true);
2200 ui->buttonPid->setEnabled(
true);
2201 ui->buttonHome->setEnabled(
true);
2203 ui->buttonCalib->setEnabled(
true);
2205 ui->buttonRun->setEnabled(
true);
2206 ui->comboMode->setEnabled(
true);
2207 ui->comboInteraction->setEnabled(
true);
2213 ui->sliderPWMOutput->setRange(min,max);
2227 ui->sliderCurrentOutput->setRange(min, max);
2247 min_velocity = -100;
2262 max_trajectory_velocity = 100;
2265 max_trajectory_velocity = max;
2286void JointItem::onCalibClicked()
2288 if (this->internalState ==
Velocity)
2290 velocityTimer.stop();
2295void JointItem::onHomeClicked()
2300void JointItem::onIdleClicked()
2305void JointItem::onRunClicked()
2310void JointItem::onPidClicked()
2317 ui->sliderMixedPosition->setEnabled(
false);
2318 ui->sliderMixedVelocity->setEnabled(
false);
2319 ui->sliderPWMOutput->setEnabled(
false);
2320 ui->sliderCurrentOutput->setEnabled(
false);
2321 ui->sliderDirectPosition->setEnabled(
false);
2322 ui->sliderTrajectoryPosition->setEnabled(
false);
2323 ui->sliderTrajectoryVelocity->setEnabled(
false);
2324 ui->sliderTorqueTorque->setEnabled(
false);
2330 ui->sliderMixedPosition->setEnabled(
true);
2331 ui->sliderMixedVelocity->setEnabled(
true);
2332 ui->sliderPWMOutput->setEnabled(
true);
2333 ui->sliderCurrentOutput->setEnabled(
true);
2334 ui->sliderDirectPosition->setEnabled(
true);
2335 ui->sliderTrajectoryPosition->setEnabled(
true);
2336 ui->sliderTrajectoryVelocity->setEnabled(
true);
2337 ui->sliderTorqueTorque->setEnabled(
true);
2343 if (event->type() == QEvent::Wheel) {
2347 return QObject::eventFilter(obj, event);
int SIGNAL(int pid, int signum)
void setMotorPosition(double meas)
void viewPositionTargetValue(bool)
void setVelocityRange(double min, double max)
void setDutyVisible(bool)
void enableTrajectoryVelocitySliderDoubleAuto()
void updateJointFault(int i, std::string message)
void enableControlPositionDirect(bool control)
void enableVelocitySliderDoubleAuto()
void setCurrentsVisible(bool)
void setUnits(yarp::dev::JointTypeEnum t)
static QColor GetModeColor(JointState mode)
void setPositionRange(double min, double max)
void enableControlMixed(bool control)
void setRefTrajectoryPosition(double ref)
void sliderVelocityCommand(double val, int jointIndex)
void enablePositionSliderDoubleValue(double value)
void sliderCurrentCommand(double val, int jointIndex)
void enableCurrentSliderDoubleValue(double value)
void viewPositionTargetBox(bool)
void setJointState(JointState)
void enableControlPWM(bool control)
void disablePositionSliderDouble()
void disableCurrentSliderDouble()
void enableTorqueSliderDoubleValue(double value)
void homeClicked(JointItem *joint)
void setPosition(double val)
void sliderPWMCommand(double val, int jointIndex)
void setRefVelocitySpeed(double ref)
static QString GetModeString(JointState mode)
void sliderTrajectoryPositionCommand(double val, int jointIndex)
void setCurrentRange(double min, double max)
void setJointName(QString name)
void pidClicked(JointItem *joint)
void setPWMRange(double min, double max)
void updateMotionDone(bool done)
void setRefCurrent(double ref)
double getTrajectoryVelocityValue()
void setTrajectoryVelocityRange(double max)
void setSpeed(double val)
void enableCurrentSliderDoubleAuto()
bool eventFilter(QObject *obj, QEvent *event) override
void sliderMixedPositionCommand(double val, int jointIndex)
void sliderDirectPositionCommand(double val, int jointIndex)
void disableTrajectoryVelocitySliderDouble()
void setJointInteraction(JointInteraction interaction)
void calibClicked(JointItem *joint)
void runClicked(JointItem *joint)
void setMotorPositionVisible(bool)
void enableControlVelocity(bool control)
void setDutyCycles(double duty)
double getTrajectoryPositionValue()
void setCurrent(double meas)
void setRefTrajectorySpeed(double ref)
void disableVelocitySliderDouble()
void sliderTrajectoryVelocityCommand(double val, int jointIndex)
void setRefPWM(double ref)
void sliderTorqueCommand(double val, int jointIndex)
void enableControlCurrent(bool control)
void enableTrajectoryVelocitySliderDoubleValue(double value)
void setEnabledOptions(bool debug_param_enabled, bool speedview_param_enabled, bool enable_calib_all)
void changeMode(int mode, JointItem *joint)
void enableTorqueSliderDoubleAuto()
void setSpeedVisible(bool)
JointItem(int index, QWidget *parent=0)
void setNumberOfPositionSliderDecimals(size_t num)
void enableVelocitySliderDoubleValue(double value)
void enablePositionSliderDoubleAuto()
void disableTorqueSliderDouble()
void setTorque(double meas)
void sliderMixedVelocityCommand(double val, int jointIndex)
void idleClicked(JointItem *joint)
void setTorqueRange(double max)
void setRefTorque(double ref)
void changeInteraction(int interaction, JointItem *joint)
void setValue(double val)
bool eventFilter(QObject *obj, QEvent *event) override
bool speedview_param_enabled
@ VOCAB_JOINTTYPE_REVOLUTE
@ VOCAB_JOINTTYPE_PRISMATIC
const QColor disconnectColor
const QColor hwFaultColor
const QColor positionColor
const QColor positionDirectColor
const QColor velocityColor
const QColor calibratingColor
const QColor currentColor