gui issues fixed.

master
Steffen Pohle 2 years ago
parent 59614436a2
commit 1d3f575df5

@ -1,4 +1,6 @@
2023-09-17: 2023-09-19:
- performance issues fixed.
- gui issues if more than 200 values where added fixed.
- closing connection if an error occured. - closing connection if an error occured.
2023-09-16: 2023-09-16:

@ -226,8 +226,6 @@ gboolean Value_Loop(gpointer data) {
v.reg = atoi(v_reg); v.reg = atoi(v_reg);
v.type = v_type; v.type = v_type;
v.sim = v_sim; v.sim = v_sim;
Value_Set (&v);
changed = Value_Simulation(&v); changed = Value_Simulation(&v);
if (changed) { if (changed) {
uint16_t regvals[4]; uint16_t regvals[4];
@ -235,6 +233,14 @@ gboolean Value_Loop(gpointer data) {
if (Value_SetValue(v.value, v.type, v.fc, &regstowrite, regvals)) { if (Value_SetValue(v.value, v.type, v.fc, &regstowrite, regvals)) {
modbussrv.SetRegValue(v.fc, v.reg, regstowrite, (uint16_t*)regvals); modbussrv.SetRegValue(v.fc, v.reg, regstowrite, (uint16_t*)regvals);
} }
gtk_list_store_set(GTK_LIST_STORE(model), &iter,
VALDATA_COL_NAME, v.name.c_str(),
VALDATA_COL_FC, std::to_string(v.fc).c_str(),
VALDATA_COL_REGSTART, std::to_string(v.reg).c_str(),
VALDATA_COL_TYPE, v.type.c_str(),
VALDATA_COL_VALUE, Value_GetValue(v.fc, v.reg, v.type).c_str(),
VALDATA_COL_SIM, v.sim.c_str(),
-1);
} }
g_free(v_name); g_free(v_name);
@ -266,6 +272,7 @@ void Value_Set(GuiValue *g) {
if (strcmp(v_name, g->name.c_str()) == 0) { if (strcmp(v_name, g->name.c_str()) == 0) {
Value_ModStore(model, &iter, g); Value_ModStore(model, &iter, g);
changed = 1; changed = 1;
break;
} }
g_free(v_name); g_free(v_name);
} }
@ -312,12 +319,6 @@ void Value_ModStore(GtkTreeModel *model, GtkTreeIter *iter, GuiValue *g) {
VALDATA_COL_VALUE, Value_GetValue(g->fc, g->reg, g->type).c_str(), VALDATA_COL_VALUE, Value_GetValue(g->fc, g->reg, g->type).c_str(),
VALDATA_COL_SIM, g->sim.c_str(), VALDATA_COL_SIM, g->sim.c_str(),
-1); -1);
// for (int i = 0; i < 10; i++) {
// float *f = (float *)&modbusdata[2][i];
// printf ("%f ", *f);
// }
// printf ("\n");
}; };

@ -910,31 +910,6 @@ void ModbusSrv::SetRegValue(int fc, int regstart, int count, uint16_t *values) {
g_mutex_lock(&servermutex); g_mutex_lock(&servermutex);
} }
/* // debug del me
printf ("%s:%d %s regs (", __FILE__, __LINE__, __FUNCTION__);
std::string text;
text = "";
if (fc == 5) fc = 1;
if (fc == 6) fc = 3;
if (fc == 15) fc = 1;
if (fc == 16) fc = 3;
for (int r = 0; r < count; r++) {
unsigned char c;
char hexnum[] = "0123456789ABCDEF";
c = *(((unsigned char *)&mbarray[fc-1][regstart+r])+0);
text += hexnum[c/16];
text += hexnum[c%16];
c = *(((unsigned char *)&mbarray[fc-1][regstart+r])+1);
text += hexnum[c/16];
text += hexnum[c%16];
text += ":";
}
printf ("%s)\n", text.c_str());
*/
g_mutex_unlock(&servermutex); g_mutex_unlock(&servermutex);
}; };

Loading…
Cancel
Save