|
36 | 36 |
|
37 | 37 | mbClientDialogDevice::Strings::Strings() : |
38 | 38 | mbCoreDialogDevice::Strings(), |
39 | | - createDeviceForPort(QStringLiteral("create_device_for_port")){ |
40 | | - |
| 39 | + createDeviceForPort(QStringLiteral("create_device_for_port")), |
| 40 | + portName (QStringLiteral("portName")) |
| 41 | +{ |
41 | 42 | } |
42 | 43 |
|
43 | 44 | const mbClientDialogDevice::Strings &mbClientDialogDevice::Strings::instance() |
@@ -178,13 +179,66 @@ mbClientDialogDevice::~mbClientDialogDevice() |
178 | 179 |
|
179 | 180 | MBSETTINGS mbClientDialogDevice::cachedSettings() const |
180 | 181 | { |
| 182 | + const mbClientPort::Strings &ms = mbClientPort::Strings(); |
| 183 | + const Modbus::Strings ss = Modbus::Strings::instance(); |
| 184 | + const Strings &ds = Strings(); |
| 185 | + const QString &prefix = Strings().settings_prefix; |
| 186 | + |
181 | 187 | MBSETTINGS m = mbCoreDialogDevice::cachedSettings(); |
| 188 | + |
| 189 | + m[prefix+ds.portName ] = ui->lnPortName ->text (); |
| 190 | + m[prefix+ms.type ] = ui->cmbPortType ->currentText(); |
| 191 | + m[prefix+ss.serialPortName ] = ui->cmbSerialPortName->currentText(); |
| 192 | + m[prefix+ss.baudRate ] = ui->cmbBaudRate ->currentText(); |
| 193 | + m[prefix+ss.dataBits ] = ui->cmbDataBits ->currentText(); |
| 194 | + m[prefix+ss.parity ] = ui->cmbParity ->currentText(); |
| 195 | + m[prefix+ss.stopBits ] = ui->cmbStopBits ->currentText(); |
| 196 | + m[prefix+ss.flowControl ] = ui->cmbFlowControl ->currentText(); |
| 197 | + m[prefix+ss.timeoutFirstByte] = ui->spTimeoutFB ->value (); |
| 198 | + m[prefix+ss.timeoutInterByte] = ui->spTimeoutIB ->value (); |
| 199 | + m[prefix+ss.host ] = ui->lnHost ->text (); |
| 200 | + m[prefix+ss.port ] = ui->spPort ->value (); |
| 201 | + m[prefix+ss.timeout ] = ui->spTimeout ->value (); |
| 202 | + |
182 | 203 | return m; |
183 | 204 | } |
184 | 205 |
|
185 | 206 | void mbClientDialogDevice::setCachedSettings(const MBSETTINGS &m) |
186 | 207 | { |
187 | 208 | mbCoreDialogDevice::setCachedSettings(m); |
| 209 | + |
| 210 | + const mbClientPort::Strings &ms = mbClientPort::Strings(); |
| 211 | + const Modbus::Strings ss = Modbus::Strings::instance(); |
| 212 | + const Strings &ds = Strings(); |
| 213 | + const QString &prefix = Strings().settings_prefix; |
| 214 | + |
| 215 | + MBSETTINGS::const_iterator it; |
| 216 | + MBSETTINGS::const_iterator end = m.end(); |
| 217 | + |
| 218 | + it = m.find(prefix+ds.portName ); if (it != end) ui->lnPortName ->setText (it.value().toString()); |
| 219 | + it = m.find(prefix+ms.type ); if (it != end) ui->cmbPortType ->setCurrentText(it.value().toString()); |
| 220 | + it = m.find(prefix+ss.serialPortName ); if (it != end) ui->cmbSerialPortName->setCurrentText(it.value().toString()); |
| 221 | + it = m.find(prefix+ss.baudRate ); if (it != end) ui->cmbBaudRate ->setCurrentText(it.value().toString()); |
| 222 | + it = m.find(prefix+ss.dataBits ); if (it != end) ui->cmbDataBits ->setCurrentText(it.value().toString()); |
| 223 | + it = m.find(prefix+ss.parity ); if (it != end) ui->cmbParity ->setCurrentText(it.value().toString()); |
| 224 | + it = m.find(prefix+ss.stopBits ); if (it != end) ui->cmbStopBits ->setCurrentText(it.value().toString()); |
| 225 | + it = m.find(prefix+ss.flowControl ); if (it != end) ui->cmbFlowControl ->setCurrentText(it.value().toString()); |
| 226 | + it = m.find(prefix+ss.timeoutFirstByte); if (it != end) ui->spTimeoutFB ->setValue (it.value().toInt()); |
| 227 | + it = m.find(prefix+ss.timeoutInterByte); if (it != end) ui->spTimeoutIB ->setValue (it.value().toInt()); |
| 228 | + it = m.find(prefix+ss.host ); if (it != end) ui->lnHost ->setText (it.value().toString()); |
| 229 | + it = m.find(prefix+ss.port ); if (it != end) ui->spPort ->setValue (it.value().toInt()); |
| 230 | + it = m.find(prefix+ss.timeout ); if (it != end) ui->spTimeout ->setValue (it.value().toInt()); |
| 231 | + |
| 232 | + QString portName = ui->lnPortName->text(); |
| 233 | + if (!portName.isEmpty()) |
| 234 | + ui->cmbPort->setCurrentText(portName); |
| 235 | +} |
| 236 | + |
| 237 | +MBSETTINGS mbClientDialogDevice::getSettings(const MBSETTINGS &settings, const QString &title) |
| 238 | +{ |
| 239 | + fillPortNames(); |
| 240 | + return mbCoreDialogDevice::getSettings(settings, title); |
| 241 | + |
188 | 242 | } |
189 | 243 |
|
190 | 244 | void mbClientDialogDevice::fillForm(const MBSETTINGS &m) |
@@ -255,48 +309,42 @@ void mbClientDialogDevice::setPortName(const QString &portName) |
255 | 309 |
|
256 | 310 | void mbClientDialogDevice::fillPortForm(const MBSETTINGS &m) |
257 | 311 | { |
258 | | - mbClientPort::Strings ms = mbClientPort::Strings(); |
| 312 | + mbClientPort::Strings ms = mbClientPort::Strings(); |
259 | 313 | Modbus::Strings ss = Modbus::Strings::instance(); |
260 | 314 |
|
261 | | - QString portName = m.value(ms.name).toString(); |
262 | | - //ui->cmbPort->setCurrentText(portName); |
263 | | - ui->lnPortName->setText(portName); |
264 | | - ui->cmbPortType->setCurrentText(m.value(ms.type).toString()); |
265 | | - //--------------------- SERIAL --------------------- |
266 | | - ui->cmbSerialPortName->setCurrentText(m.value(ss.serialPortName).toString()); |
267 | | - ui->cmbBaudRate->setCurrentText(m.value(ss.baudRate).toString()); |
268 | | - ui->cmbDataBits->setCurrentText(m.value(ss.dataBits).toString()); |
269 | | - ui->cmbParity->setCurrentText(m.value(ss.parity).toString()); |
270 | | - ui->cmbStopBits->setCurrentText(m.value(ss.stopBits).toString()); |
271 | | - ui->cmbFlowControl->setCurrentText(m.value(ss.flowControl).toString()); |
272 | | - ui->spTimeoutFB->setValue(m.value(ss.timeoutFirstByte).toInt()); |
273 | | - ui->spTimeoutIB->setValue(m.value(ss.timeoutInterByte).toInt()); |
274 | | - //--------------------- TCP --------------------- |
275 | | - ui->lnHost ->setText (m.value(ss.host ).toString()); |
276 | | - ui->spPort ->setValue(m.value(ss.port ).toInt()); |
277 | | - ui->spTimeout->setValue(m.value(ss.timeout).toInt()); |
| 315 | + ui->lnPortName ->setText (m.value(ms.name ).toString()); |
| 316 | + ui->cmbPortType ->setCurrentText(m.value(ms.type ).toString()); |
| 317 | + ui->cmbSerialPortName->setCurrentText(m.value(ss.serialPortName ).toString()); |
| 318 | + ui->cmbBaudRate ->setCurrentText(m.value(ss.baudRate ).toString()); |
| 319 | + ui->cmbDataBits ->setCurrentText(m.value(ss.dataBits ).toString()); |
| 320 | + ui->cmbParity ->setCurrentText(m.value(ss.parity ).toString()); |
| 321 | + ui->cmbStopBits ->setCurrentText(m.value(ss.stopBits ).toString()); |
| 322 | + ui->cmbFlowControl ->setCurrentText(m.value(ss.flowControl ).toString()); |
| 323 | + ui->spTimeoutFB ->setValue (m.value(ss.timeoutFirstByte).toInt()); |
| 324 | + ui->spTimeoutIB ->setValue (m.value(ss.timeoutInterByte).toInt()); |
| 325 | + ui->lnHost ->setText (m.value(ss.host ).toString()); |
| 326 | + ui->spPort ->setValue (m.value(ss.port ).toInt()); |
| 327 | + ui->spTimeout ->setValue (m.value(ss.timeout ).toInt()); |
278 | 328 | } |
279 | 329 |
|
280 | 330 | void mbClientDialogDevice::fillPortData(MBSETTINGS &m) const |
281 | 331 | { |
282 | | - mbClientPort::Strings ms = mbClientPort::Strings(); |
| 332 | + mbClientPort::Strings ms = mbClientPort::Strings(); |
283 | 333 | Modbus::Strings ss = Modbus::Strings::instance(); |
284 | 334 |
|
285 | | - m[ms.name] = ui->lnPortName->text(); |
286 | | - m[ms.type] = ui->cmbPortType->currentText(); |
287 | | - //--------------------- SERIAL --------------------- |
| 335 | + m[ms.name ] = ui->lnPortName ->text (); |
| 336 | + m[ms.type ] = ui->cmbPortType ->currentText(); |
288 | 337 | m[ss.serialPortName ] = ui->cmbSerialPortName->currentText(); |
289 | 338 | m[ss.baudRate ] = ui->cmbBaudRate ->currentText(); |
290 | 339 | m[ss.dataBits ] = ui->cmbDataBits ->currentText(); |
291 | 340 | m[ss.parity ] = ui->cmbParity ->currentText(); |
292 | 341 | m[ss.stopBits ] = ui->cmbStopBits ->currentText(); |
293 | 342 | m[ss.flowControl ] = ui->cmbFlowControl ->currentText(); |
294 | | - m[ss.timeoutFirstByte] = ui->spTimeoutFB ->value(); |
295 | | - m[ss.timeoutInterByte] = ui->spTimeoutIB ->value(); |
296 | | - //--------------------- TCP --------------------- |
297 | | - m[ss.host ] = ui->lnHost ->text(); |
298 | | - m[ss.port ] = ui->spPort ->value(); |
299 | | - m[ss.timeout] = ui->spTimeout->value(); |
| 343 | + m[ss.timeoutFirstByte] = ui->spTimeoutFB ->value (); |
| 344 | + m[ss.timeoutInterByte] = ui->spTimeoutIB ->value (); |
| 345 | + m[ss.host ] = ui->lnHost ->text (); |
| 346 | + m[ss.port ] = ui->spPort ->value (); |
| 347 | + m[ss.timeout ] = ui->spTimeout ->value (); |
300 | 348 | } |
301 | 349 |
|
302 | 350 | void mbClientDialogDevice::setPort(int i) |
|
0 commit comments