YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
sliderOptions.cpp
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#include "sliderOptions.h"
8#include "ui_sliderOptions.h"
9#include <QSettings>
10
12 QDialog(parent),
13 ui(new Ui::sliderOptions)
14{
15 ui->setupUi(this);
16
17 QString title = QString("SliderOptions");
18 setWindowTitle(title);
19
20 QSettings settings("YARP", "yarpmotorgui");
21 val_pos_choice = settings.value("val_pos_choice", 0).toInt();
22 val_vel_choice = settings.value("val_vel_choice", 0).toInt();
23 val_acc_choice = settings.value("val_acc_choice", 0).toInt();
24 val_trq_choice = settings.value("val_trq_choice", 0).toInt();
25 val_cur_choice = settings.value("val_cur_choice", 0).toInt();
26
27 val_pos_digits = settings.value("num_of_pos_decimals", 3).toInt();
28 val_vel_digits = settings.value("num_of_vel_decimals", 3).toInt();
29 val_acc_digits = settings.value("num_of_acc_decimals", 3).toInt();
30 val_trq_digits = settings.value("num_of_trq_decimals", 3).toInt();
31 val_cur_digits = settings.value("num_of_cur_decimals", 3).toInt();
32
33 val_pos_custom_step = settings.value("val_pos_custom_step", 1.0).toDouble();
34 val_vel_custom_step = settings.value("val_vel_custom_step", 1.0).toDouble();
35 val_acc_custom_step = settings.value("val_acc_custom_step", 1.0).toDouble();
36 val_trq_custom_step = settings.value("val_trq_custom_step", 1.0).toDouble();
37 val_cur_custom_step = settings.value("val_cur_custom_step", 1.0).toDouble();
38
39 val_vel_limit = settings.value("velocity_slider_limit", 100.0).toDouble();
40 val_acc_limit = settings.value("acceleration_slider_limit", 100.0).toDouble();
41
42 pos_digits_validator = new QIntValidator(this);
43 vel_digits_validator = new QIntValidator(this);
44 acc_digits_validator = new QIntValidator(this);
45 trq_digits_validator = new QIntValidator(this);
46 cur_digits_validator = new QIntValidator(this);
47
48 pos_step_validator = new QDoubleValidator(this);
49 vel_step_validator = new QDoubleValidator(this);
50 acc_step_validator = new QDoubleValidator(this);
51 trq_step_validator = new QDoubleValidator(this);
52 cur_step_validator = new QDoubleValidator(this);
53
54 vel_lims_validator = new QDoubleValidator(this);
55 vel_lims_validator->setRange(0 , 100);
56 acc_lims_validator = new QDoubleValidator(this);
57 acc_lims_validator->setRange(0 , 100);
58
59 ui->pos_decimal_digits->setValidator(pos_digits_validator);
60 ui->vel_decimal_digits->setValidator(vel_digits_validator);
61 ui->acc_decimal_digits->setValidator(acc_digits_validator);
62 ui->trq_decimal_digits->setValidator(trq_digits_validator);
63 //ui->cur_decimal_digits->setValidator(cur_digits_validator);
64
65 ui->pos_step->setValidator(pos_step_validator);
66 ui->vel_step->setValidator(vel_step_validator);
67 ui->acc_step->setValidator(acc_step_validator);
68 ui->trq_step->setValidator(trq_step_validator);
69 //ui->cur_step->setValidator(cur_step_validator);
70
71 ui->vel_limiter->setValidator(vel_lims_validator);
72 ui->acc_limiter->setValidator(acc_lims_validator);
73
74 ui->pos_decimal_digits->setText(QString("%1").arg(val_pos_digits));
75 ui->vel_decimal_digits->setText(QString("%1").arg(val_vel_digits));
76 ui->acc_decimal_digits->setText(QString("%1").arg(val_acc_digits));
77 ui->trq_decimal_digits->setText(QString("%1").arg(val_trq_digits));
78 //ui->cur_decimal_digits->setText(QString("%1").arg(val_cur_digits));
79
80 ui->pos_step->setText(QString("%1").arg(val_pos_custom_step));
81 ui->vel_step->setText(QString("%1").arg(val_vel_custom_step));
82 ui->acc_step->setText(QString("%1").arg(val_acc_custom_step));
83 ui->trq_step->setText(QString("%1").arg(val_trq_custom_step));
84 //ui->cur_step->setText(QString("%1").arg(val_cur_custom_step));
85
86 ui->vel_limiter->setText(QString("%1").arg(val_vel_limit));
87 ui->acc_limiter->setText(QString("%1").arg(val_acc_limit));
88
89 connect(this, SIGNAL(sig_setPosSliderOptionSO(int, double, int)), parent, SLOT(onSetPosSliderOptionMW(int, double, int)));
90 connect(this, SIGNAL(sig_setVelSliderOptionSO(int, double, int)), parent, SLOT(onSetVelSliderOptionMW(int, double, int)));
91 connect(this, SIGNAL(sig_setAccSliderOptionSO(int, double, int)), parent, SLOT(onSetAccSliderOptionMW(int, double, int)));
92 connect(this, SIGNAL(sig_setTrqSliderOptionSO(int, double, int)), parent, SLOT(onSetTrqSliderOptionMW(int, double, int)));
93 connect(this, SIGNAL(sig_setCurSliderOptionSO(int, double, int)), parent, SLOT(onSetCurSliderOptionMW(int, double, int)));
94
95 switch (val_pos_choice)
96 {
97 case 0:
98 ui->radio_pos_auto->setChecked(true);
99 break;
100 case 1:
101 ui->radio_pos_user->setChecked(true);
102 break;
103 case 2:
104 ui->radio_pos_one->setChecked(true);
105 break;
106 default:
107 ui->radio_pos_auto->setChecked(true);
108 break;
109 }
110 switch (val_vel_choice)
111 {
112 case 0:
113 ui->radio_vel_auto->setChecked(true);
114 break;
115 case 1:
116 ui->radio_vel_user->setChecked(true);
117 break;
118 case 2:
119 ui->radio_vel_one->setChecked(true);
120 break;
121 default:
122 ui->radio_vel_auto->setChecked(true);
123 break;
124 }
125 switch (val_acc_choice)
126 {
127 case 0:
128 ui->radio_acc_auto->setChecked(true);
129 break;
130 case 1:
131 ui->radio_acc_user->setChecked(true);
132 break;
133 case 2:
134 ui->radio_acc_one->setChecked(true);
135 break;
136 default:
137 ui->radio_acc_auto->setChecked(true);
138 break;
139 }
140 switch (val_trq_choice)
141 {
142 case 0:
143 ui->radio_trq_auto->setChecked(true);
144 break;
145 case 1:
146 ui->radio_trq_user->setChecked(true);
147 break;
148 case 2:
149 ui->radio_trq_one->setChecked(true);
150 break;
151 default:
152 ui->radio_trq_auto->setChecked(true);
153 break;
154 }
155 /* switch (val_cur_choice)
156 {
157 case 0:
158 ui->radio_cur_auto->setChecked(true);
159 break;
160 case 1:
161 ui->radio_cur_user->setChecked(true);
162 break;
163 case 2:
164 ui->radio_cur_one->setChecked(true);
165 break;
166 default:
167 ui->radio_cur_auto->setChecked(true);
168 break;
169 }
170 */
171}
172
174{
175 //send all values on windows closure, by emitting signals, then destory the window
176
177 if (ui->radio_pos_auto->isChecked()) {
178 val_pos_choice = 0;
179 } else if (ui->radio_pos_user->isChecked()) {
180 val_pos_choice = 1;
181 } else if (ui->radio_pos_one->isChecked()) {
182 val_pos_choice = 2;
183 }
184
185 if (ui->radio_vel_auto->isChecked()) {
186 val_vel_choice = 0;
187 } else if (ui->radio_vel_user->isChecked()) {
188 val_vel_choice = 1;
189 } else if (ui->radio_vel_one->isChecked()) {
190 val_vel_choice = 2;
191 }
192
193 if (ui->radio_acc_auto->isChecked()) {
194 val_acc_choice = 0;
195 } else if (ui->radio_acc_user->isChecked()) {
196 val_acc_choice = 1;
197 } else if (ui->radio_acc_one->isChecked()) {
198 val_acc_choice = 2;
199 }
200
201 if (ui->radio_trq_auto->isChecked()) {
202 val_trq_choice = 0;
203 } else if (ui->radio_trq_user->isChecked()) {
204 val_trq_choice = 1;
205 } else if (ui->radio_trq_one->isChecked()) {
206 val_trq_choice = 2;
207 }
208
209/*
210 if (ui->radio_cur_auto->isChecked()) {
211 val_cur_choice = 0;
212 } else if (ui->radio_cur_user->isChecked()) {
213 val_cur_choice = 1;
214 } else if (ui->radio_cur_one->isChecked()) {
215 val_cur_choice = 2;
216 }
217*/
218
219 val_pos_custom_step = ui->pos_step->text().toDouble();
220 val_vel_custom_step = ui->vel_step->text().toDouble();
221 val_acc_custom_step = ui->acc_step->text().toDouble();
222 val_trq_custom_step = ui->trq_step->text().toDouble();
223 //val_cur_custom_step = ui->cur_step->text().toDouble();
224
225 val_vel_limit = ui->vel_limiter->text().toDouble();
226 val_acc_limit = ui->acc_limiter->text().toDouble();
227
228 val_pos_digits = ui->pos_decimal_digits->text().toInt();
229 val_vel_digits = ui->vel_decimal_digits->text().toInt();
230 val_acc_digits = ui->acc_decimal_digits->text().toInt();
231 val_trq_digits = ui->trq_decimal_digits->text().toInt();
232 //val_cur_digits = ui->cur_decimal_digits->text().toInt();
233
234 QSettings settings("YARP", "yarpmotorgui");
235 settings.setValue("val_pos_choice", val_pos_choice);
236 settings.setValue("val_vel_choice", val_vel_choice);
237 settings.setValue("val_acc_choice", val_acc_choice);
238 settings.setValue("val_trq_choice", val_trq_choice);
239 settings.setValue("val_cur_choice", val_cur_choice);
240
241 settings.setValue("val_pos_custom_step", val_pos_custom_step);
242 settings.setValue("val_vel_custom_step", val_vel_custom_step);
243 settings.setValue("val_acc_custom_step", val_acc_custom_step);
244 settings.setValue("val_trq_custom_step", val_trq_custom_step);
245 settings.setValue("val_cur_custom_step", val_cur_custom_step);
246
247 settings.setValue("velocity_slider_limit", val_vel_limit);
248 settings.setValue("acceleration_slider_limit", val_acc_limit);
249
250 settings.setValue("num_of_pos_decimals", val_pos_digits);
251 settings.setValue("num_of_vel_decimals", val_vel_digits);
252 settings.setValue("num_of_acc_decimals", val_acc_digits);
253 settings.setValue("num_of_trq_decimals", val_trq_digits);
254 settings.setValue("num_of_cur_decimals", val_cur_digits);
255
256 emit sig_setPosSliderOptionSO(val_pos_choice, val_pos_custom_step, val_pos_digits);
257 emit sig_setVelSliderOptionSO(val_vel_choice, val_vel_custom_step, val_vel_digits);
258 emit sig_setAccSliderOptionSO(val_acc_choice, val_acc_custom_step, val_acc_digits);
259 emit sig_setTrqSliderOptionSO(val_trq_choice, val_trq_custom_step, val_trq_digits);
260 emit sig_setCurSliderOptionSO(val_cur_choice, val_cur_custom_step, val_cur_digits);
261
262 disconnect(this, SIGNAL(sig_setPosSliderOptionSO(int, double, int)), nullptr, nullptr);
263 disconnect(this, SIGNAL(sig_setVelSliderOptionSO(int, double, int)), nullptr, nullptr);
264 disconnect(this, SIGNAL(sig_setAccSliderOptionSO(int, double, int)), nullptr, nullptr);
265 disconnect(this, SIGNAL(sig_setTrqSliderOptionSO(int, double, int)), nullptr, nullptr);
266 disconnect(this, SIGNAL(sig_setCurSliderOptionSO(int, double, int)), nullptr, nullptr);
267
268 delete pos_digits_validator;
269 delete vel_digits_validator;
270 delete acc_digits_validator;
271 delete trq_digits_validator;
272 delete cur_digits_validator;
273
274 delete pos_step_validator;
275 delete vel_step_validator;
276 delete acc_step_validator;
277 delete trq_step_validator;
278 delete cur_step_validator;
279
280 delete vel_lims_validator;
281 delete acc_lims_validator;
282
283 delete ui;
284}
int SIGNAL(int pid, int signum)
void sig_setCurSliderOptionSO(int, double, int)
sliderOptions(QWidget *parent=0)
void sig_setVelSliderOptionSO(int, double, int)
void sig_setAccSliderOptionSO(int, double, int)
void sig_setTrqSliderOptionSO(int, double, int)
void sig_setPosSliderOptionSO(int, double, int)
Definition aboutdlg.h:11