Skip to content

Commit ac0811c

Browse files
committed
Fix server action (simulation) edit bugs
1 parent 11a481e commit ac0811c

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

src/server/gui/dialogs/server_dialogaction.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -114,14 +114,14 @@ mbServerDialogAction::mbServerDialogAction(QWidget *parent) :
114114
//--------------------- ADVANCED ---------------------
115115
// Byte Order
116116
cmb = ui->cmbByteOrder;
117-
ls = mb::enumDataTypeKeyList();
117+
ls = mb::enumDataOrderKeyList();
118118
for (int i = 1; i < ls.count(); i++) // i = 1 (i != 0) => pass 'DefaultOrder' for byte order
119119
cmb->addItem(ls.at(i));
120120
cmb->setCurrentIndex(0);
121121

122122
// Register Order
123123
cmb = ui->cmbRegisterOrder;
124-
ls = mb::enumDataTypeKeyList();
124+
ls = mb::enumDataOrderKeyList();
125125
for (int i = 1; i < ls.count(); i++) // i = 1 (i != 0) => pass 'DefaultOrder' for byte order
126126
cmb->addItem(ls.at(i));
127127
cmb->setCurrentIndex(0);
@@ -181,17 +181,17 @@ void mbServerDialogAction::fillForm(const MBSETTINGS &settings)
181181
cmb->setCurrentText(dev->name());
182182

183183
mb::Address adr = mb::toAddress(settings.value(sAction.address).toInt());
184-
mb::DataType dataType = static_cast<mb::DataType>(settings.value(sAction.dataType).toInt());
184+
mb::DataType dataType = mb::enumDataTypeValue(settings.value(sAction.dataType));
185185
ui->cmbAdrType->setCurrentText(mb::toModbusMemoryTypeString(adr.type));
186186
ui->spOffset->setValue(adr.offset+1);
187187
ui->cmbDataType->setCurrentText(mb::enumDataTypeKey(dataType));
188188
ui->spPeriod->setValue(settings.value(sAction.period).toInt());
189189
ui->spCount->setValue(count);
190190
fillFormActionType(settings);
191-
mb::DataOrder byteOrder = static_cast<mb::DataOrder>(settings.value(sAction.byteOrder).toInt());
191+
mb::DataOrder byteOrder = mb::enumDataOrderValue(settings.value(sAction.byteOrder));
192192
fillFormByteOrder(byteOrder);
193193

194-
mb::DataOrder registerOrder = static_cast<mb::DataOrder>(settings.value(sAction.registerOrder).toInt());
194+
mb::DataOrder registerOrder = mb::enumDataOrderValue(settings.value(sAction.registerOrder));
195195
fillFormRegisterOrder(registerOrder);
196196

197197
ui->spCount->setDisabled(true);
@@ -295,8 +295,7 @@ void mbServerDialogAction::fillDataByteOrder(MBSETTINGS &settings)
295295

296296
void mbServerDialogAction::fillDataRegisterOrder(MBSETTINGS &settings)
297297
{
298-
QComboBox* cmb = ui->cmbRegisterOrder;
299-
settings[mbServerAction::Strings::instance().registerOrder] = mb::enumDataOrderValueByIndex(cmb->currentIndex());
298+
settings[mbServerAction::Strings::instance().registerOrder] = mb::enumDataOrderValue(ui->cmbRegisterOrder->currentIndex());
300299
}
301300

302301
void mbServerDialogAction::setActionType(int i)

src/server/project/server_action.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,22 @@ void mbServerAction::setCommonSettings(const MBSETTINGS &settings)
194194
if (ok)
195195
setActionType(v);
196196
}
197+
198+
it = settings.find(s.byteOrder);
199+
if (it != end)
200+
{
201+
mb::DataOrder v = mb::enumDataOrderValue(it.value(), &ok);
202+
if (ok)
203+
setByteOrder(v);
204+
}
205+
206+
it = settings.find(s.registerOrder);
207+
if (it != end)
208+
{
209+
mb::DataOrder v = mb::enumDataOrderValue(it.value(), &ok);
210+
if (ok)
211+
setRegisterOrder(v);
212+
}
197213
}
198214

199215
MBSETTINGS mbServerAction::extendedSettings() const

0 commit comments

Comments
 (0)