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 double curForceVal, double minForce, double maxForce);
44 void initPWM(double pwmVal, double pwm);
46
47
48signals:
49 void sendStiffness(int,double,double,double);
50 void sendPositionPid(int jointIndex, Pid pid);
51 void sendVelocityPid(int jointIndex, Pid pid);
52 void sendTorquePid(int jointIndex,Pid,MotorTorqueParameters newTorqueParam);
53 void sendPWM(int jointIndex,double dutyVal);
54 void sendCurrent(int jointIndex,int currentVal);
55 void sendCurrentPid(int jointIndex, Pid pid);
56 void sendSingleRemoteVariable(std::string key, yarp::os::Bottle val);
57 void refreshPids(int jointIndex);
60
61private:
62 Ui::PidDlg *ui;
63 int jointIndex;
64 std::vector <QPushButton*> buttons;
65
66private slots:
67 void onRefresh();
68 void onSend();
69 void onCancel();
70 void onSendRemoteVariable();
71 void onDumpRemoteVariables();
72};
73
74class TableIntDelegate : public QItemDelegate
75{
76public:
77 QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem & option,
78 const QModelIndex & index) const override
79 {
80 Q_UNUSED(option);
81 Q_UNUSED(index);
82 QLineEdit *lineEdit = new QLineEdit(parent);
83 // Set validator
84 QIntValidator *validator = new QIntValidator(-100000, 100000, lineEdit);
85 lineEdit->setValidator(validator);
86 return lineEdit;
87 }
88};
89
90class TableDoubleDelegate : public QItemDelegate
91{
92public:
93 QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem & option,
94 const QModelIndex & index) const override
95 {
96 Q_UNUSED(option);
97 Q_UNUSED(index);
98 QLineEdit *lineEdit = new QLineEdit(parent);
99 // Set validator
100 QDoubleValidator *validator = new QDoubleValidator(-100000, 100000, 4,lineEdit);
101 lineEdit->setValidator(validator);
102 return lineEdit;
103 }
104};
105
106class TableGenericDelegate : public QItemDelegate
107{
108public:
109 QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem & option,
110 const QModelIndex & index) const override
111 {
112 Q_UNUSED(option);
113 Q_UNUSED(index);
114 QLineEdit *lineEdit = new QLineEdit(parent);
115 return lineEdit;
116 }
117};
118
119#endif // PIDDLG_H
define control board standard interfaces
void sendTorquePid(int jointIndex, Pid, MotorTorqueParameters newTorqueParam)
void initVelocity(Pid myPid)
Definition piddlg.cpp:141
~PidDlg()
Definition piddlg.cpp:100
void sendVelocityPid(int jointIndex, Pid pid)
void refreshPids(int jointIndex)
void initPosition(Pid myPid)
Definition piddlg.cpp:111
void sendSingleRemoteVariable(std::string key, yarp::os::Bottle val)
void sendPWM(int jointIndex, double dutyVal)
void updateAllRemoteVariables()
void initStiffness(double curStiffVal, double minStiff, double maxStiff, double curDampVal, double minDamp, double maxDamp, double curForceVal, double minForce, double maxForce)
Definition piddlg.cpp:317
void initTorque(Pid myPid, MotorTorqueParameters TorqueParam)
Definition piddlg.cpp:171
void sendStiffness(int, double, double, double)
void sendCurrent(int jointIndex, int currentVal)
void initCurrent(Pid myPid)
Definition piddlg.cpp:346
void initRemoteVariables(IRemoteVariables *iVar)
Definition piddlg.cpp:251
void dumpRemoteVariables()
void initPWM(double pwmVal, double pwm)
Definition piddlg.cpp:338
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:93
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition piddlg.h:109
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition piddlg.h:77
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.