YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
piddlg.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-FileCopyrightText: 2006-2010 RobotCub Consortium
4 * SPDX-License-Identifier: LGPL-2.1-or-later
5 */
6
7#ifndef PIDDLG_H
8#define PIDDLG_H
9
10#include <QDialog>
11#include <QTableWidgetItem>
12#include <QItemDelegate>
13#include <QModelIndex>
14#include <QLineEdit>
15#include <QIntValidator>
16#include <QDoubleValidator>
17#include <vector>
18
20
21class TableDelegate;
23
24namespace Ui {
25class PidDlg;
26}
27using namespace yarp::dev;
28
29class PidDlg : public QDialog
30{
31 Q_OBJECT
32
33public:
34 explicit PidDlg(QString partname, int jointIndex, QString jointName, QWidget *parent = 0);
35 ~PidDlg();
36
37 void initPosition(Pid myPid);
38 void initVelocity(Pid myPid);
39 void initTorque(Pid myPid, MotorTorqueParameters TorqueParam);
40 void initCurrent(Pid myPid);
41 void initStiffness(double curStiffVal, double minStiff, double maxStiff,
42 double curDampVal, double minDamp, double maxDamp);
43 void initTorqueOffset(double curForceVal, double minForce, double maxForce);
44 void initPWM(double pwmVal, double pwm);
46
47
48signals:
49 void sendStiffness(int,double,double);
50 void sendForceOffset(int,double);
51 void sendPositionPid(int jointIndex, Pid pid);
52 void sendVelocityPid(int jointIndex, Pid pid);
53 void sendTorquePid(int jointIndex,Pid,MotorTorqueParameters newTorqueParam);
54 void sendPWM(int jointIndex,double dutyVal);
55 void sendCurrent(int jointIndex,int currentVal);
56 void sendCurrentPid(int jointIndex, Pid pid);
57 void sendSingleRemoteVariable(std::string key, yarp::os::Bottle val);
58 void refreshPids(int jointIndex);
61
62private:
63 Ui::PidDlg *ui;
64 int jointIndex;
65 std::vector <QPushButton*> buttons;
66 bool forceOffsetChanged = false;
67
68private slots:
69 void onRefresh();
70 void onSend();
71 void onCancel();
72 void onSendRemoteVariable();
73 void onDumpRemoteVariables();
74 void onForceOffsetChanged(QString forceOffset);
75};
76
77class TableIntDelegate : public QItemDelegate
78{
79public:
80 QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem & option,
81 const QModelIndex & index) const override
82 {
83 Q_UNUSED(option);
84 Q_UNUSED(index);
85 QLineEdit *lineEdit = new QLineEdit(parent);
86 // Set validator
87 QIntValidator *validator = new QIntValidator(-100000, 100000, lineEdit);
88 lineEdit->setValidator(validator);
89 return lineEdit;
90 }
91};
92
93class TableDoubleDelegate : public QItemDelegate
94{
95public:
96 QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem & option,
97 const QModelIndex & index) const override
98 {
99 Q_UNUSED(option);
100 Q_UNUSED(index);
101 QLineEdit *lineEdit = new QLineEdit(parent);
102 // Set validator
103 QDoubleValidator *validator = new QDoubleValidator(-100000, 100000, 4,lineEdit);
104 lineEdit->setValidator(validator);
105 return lineEdit;
106 }
107};
108
109class TableGenericDelegate : public QItemDelegate
110{
111public:
112 QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem & option,
113 const QModelIndex & index) const override
114 {
115 Q_UNUSED(option);
116 Q_UNUSED(index);
117 QLineEdit *lineEdit = new QLineEdit(parent);
118 return lineEdit;
119 }
120};
121
122#endif // PIDDLG_H
define control board standard interfaces
void sendTorquePid(int jointIndex, Pid, MotorTorqueParameters newTorqueParam)
void initVelocity(Pid myPid)
Definition piddlg.cpp:154
void sendForceOffset(int, double)
~PidDlg()
Definition piddlg.cpp:113
void sendVelocityPid(int jointIndex, Pid pid)
void refreshPids(int jointIndex)
void initPosition(Pid myPid)
Definition piddlg.cpp:124
void sendSingleRemoteVariable(std::string key, yarp::os::Bottle val)
void sendPWM(int jointIndex, double dutyVal)
void updateAllRemoteVariables()
void initTorque(Pid myPid, MotorTorqueParameters TorqueParam)
Definition piddlg.cpp:184
void initTorqueOffset(double curForceVal, double minForce, double maxForce)
Definition piddlg.cpp:344
void sendCurrent(int jointIndex, int currentVal)
void initCurrent(Pid myPid)
Definition piddlg.cpp:362
void sendStiffness(int, double, double)
void initStiffness(double curStiffVal, double minStiff, double maxStiff, double curDampVal, double minDamp, double maxDamp)
Definition piddlg.cpp:330
void initRemoteVariables(IRemoteVariables *iVar)
Definition piddlg.cpp:264
void dumpRemoteVariables()
void initPWM(double pwmVal, double pwm)
Definition piddlg.cpp:354
void sendPositionPid(int jointIndex, Pid pid)
void sendCurrentPid(int jointIndex, Pid pid)
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition piddlg.h:96
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition piddlg.h:112
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition piddlg.h:80
IRemoteVariables interface.
Contains the parameters for a PID.
A simple collection of objects that can be described and transmitted in a portable way.
Definition Bottle.h:64
Definition aboutdlg.h:11
For streams capable of holding different kinds of content, check what they actually have.