|
|
|
|
@ -431,26 +431,21 @@ gboolean cb_thread_network_data_add (gpointer data) {
|
|
|
|
|
struct modbus_data *mbdata = (struct modbus_data *)data;
|
|
|
|
|
std::string text;
|
|
|
|
|
char timetext[255];
|
|
|
|
|
GtkTextTag *tag_datetime;
|
|
|
|
|
GtkTextTag *tag_data;
|
|
|
|
|
GtkTextTag *tag_info;
|
|
|
|
|
GtkTextTag *tag_modbus;
|
|
|
|
|
GtkTextTag *tag_error;
|
|
|
|
|
time_t _tm =time(NULL);
|
|
|
|
|
struct tm * curtime = localtime (&_tm);
|
|
|
|
|
static int _once = 0;
|
|
|
|
|
|
|
|
|
|
if (_once == 0) {
|
|
|
|
|
_once = 1;
|
|
|
|
|
tag_datetime = gtk_text_buffer_create_tag (textbuffer, "Date_Time",
|
|
|
|
|
gtk_text_buffer_create_tag (textbuffer, "Date_Time",
|
|
|
|
|
"foreground", "blue", "style", PANGO_WEIGHT_BOLD, "family", "Monospace", NULL);
|
|
|
|
|
tag_data = gtk_text_buffer_create_tag (textbuffer, "Data",
|
|
|
|
|
gtk_text_buffer_create_tag (textbuffer, "Data",
|
|
|
|
|
"foreground", "black", "style", PANGO_WEIGHT_NORMAL, "family", "Monospace", NULL);
|
|
|
|
|
tag_info = gtk_text_buffer_create_tag (textbuffer, "Info",
|
|
|
|
|
gtk_text_buffer_create_tag (textbuffer, "Info",
|
|
|
|
|
"foreground", "green", "style", PANGO_WEIGHT_THIN, "family", "Sans", NULL);
|
|
|
|
|
tag_error = gtk_text_buffer_create_tag (textbuffer, "Error",
|
|
|
|
|
gtk_text_buffer_create_tag (textbuffer, "Error",
|
|
|
|
|
"foreground", "red", "style", PANGO_WEIGHT_BOLD, "family", "Sans", NULL);
|
|
|
|
|
tag_modbus = gtk_text_buffer_create_tag (textbuffer, "Modbus",
|
|
|
|
|
gtk_text_buffer_create_tag (textbuffer, "Modbus",
|
|
|
|
|
"foreground", "black", "style", PANGO_WEIGHT_NORMAL, "family", "Sans", NULL);
|
|
|
|
|
}
|
|
|
|
|
strftime (timetext, 255, "%H:%M:%S", curtime);
|
|
|
|
|
@ -459,7 +454,7 @@ gboolean cb_thread_network_data_add (gpointer data) {
|
|
|
|
|
// build hex dump
|
|
|
|
|
//
|
|
|
|
|
text = "";
|
|
|
|
|
for (int i = 0; i < mbdata->bufferlen; i++) {
|
|
|
|
|
for (size_t i = 0; i < mbdata->bufferlen; i++) {
|
|
|
|
|
unsigned char c = mbdata->buffer[i];
|
|
|
|
|
char hexnum[] = "0123456789ABCDEF";
|
|
|
|
|
|
|
|
|
|
@ -558,9 +553,7 @@ gboolean cb_thread_network_text_add (gpointer data) {
|
|
|
|
|
char timetext[255];
|
|
|
|
|
GtkWidget *textview = GTK_WIDGET(gtk_builder_get_object (_builder_, "network_text"));
|
|
|
|
|
GtkTextBuffer *textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
|
|
|
|
|
GtkTextIter start, end;
|
|
|
|
|
GtkTextTag *tag_datetime;
|
|
|
|
|
GtkTextTag *tag_info;
|
|
|
|
|
GtkTextIter start;
|
|
|
|
|
char *textprm = (char*) data;
|
|
|
|
|
time_t _tm =time(NULL);
|
|
|
|
|
struct tm * curtime = localtime (&_tm);
|
|
|
|
|
@ -568,9 +561,9 @@ gboolean cb_thread_network_text_add (gpointer data) {
|
|
|
|
|
|
|
|
|
|
if (_once == 0) {
|
|
|
|
|
_once = 1;
|
|
|
|
|
tag_datetime = gtk_text_buffer_create_tag (textbuffer, "Date_Time",
|
|
|
|
|
gtk_text_buffer_create_tag (textbuffer, "Date_Time",
|
|
|
|
|
"foreground", "blue", "style", PANGO_WEIGHT_BOLD, "family", "Monospace", NULL);
|
|
|
|
|
tag_info = gtk_text_buffer_create_tag (textbuffer, "Connection",
|
|
|
|
|
gtk_text_buffer_create_tag (textbuffer, "Connection",
|
|
|
|
|
"foreground", "red", "style", PANGO_WEIGHT_BOLD, "family", "Sans", NULL);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -608,10 +601,7 @@ gboolean cb_thread_status (gpointer data) {
|
|
|
|
|
|
|
|
|
|
void cb_networkdata_show (GtkWidget *widget, gpointer data) {
|
|
|
|
|
GtkWidget *textview = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(data), "network_text"));
|
|
|
|
|
GtkTextBuffer *textbuffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
|
|
|
|
|
|
|
|
|
|
printf ("*************************** \n");
|
|
|
|
|
|
|
|
|
|
gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void cb_addvar_close (GtkWidget *widget, gpointer data) {
|
|
|
|
|
@ -669,7 +659,7 @@ void cb_menu_about(GtkWidget *widget, gpointer data) {
|
|
|
|
|
GtkWidget *dlg = GTK_WIDGET (gtk_builder_get_object (builder, "dlgabout"));
|
|
|
|
|
GtkWidget *label = GTK_WIDGET (gtk_builder_get_object (builder, "dlgabout_version"));
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(label), VERSION);
|
|
|
|
|
gint result = gtk_dialog_run(GTK_DIALOG(dlg));
|
|
|
|
|
gtk_dialog_run(GTK_DIALOG(dlg));
|
|
|
|
|
gtk_widget_hide(GTK_WIDGET(dlg));
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
@ -826,8 +816,6 @@ void load_file(std::string fn) {
|
|
|
|
|
GtkWidget *guiautovalue = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "conf_autoaddvalues"));
|
|
|
|
|
GtkWidget *guiport = GTK_WIDGET(gtk_builder_get_object (GTK_BUILDER(_builder_), "port_entry"));
|
|
|
|
|
GuiValue g;
|
|
|
|
|
int autoadd = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
modbussrv.EnableAll(0);
|
|
|
|
|
MBData_EnableAll(0);
|
|
|
|
|
@ -867,14 +855,21 @@ void load_file(std::string fn) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; json.GetObjectIdx("values", i, &value); i++) {
|
|
|
|
|
uint16_t regvals[4];
|
|
|
|
|
int regstowrite = 1;
|
|
|
|
|
|
|
|
|
|
value.GetValue("name", &g.name);
|
|
|
|
|
value.GetValue("type", &g.type);
|
|
|
|
|
value.GetValue("sim", &g.sim);
|
|
|
|
|
value.GetValue("value", &g.value);
|
|
|
|
|
value.GetValue("fc", &temp); g.fc = atoi(temp.c_str());
|
|
|
|
|
value.GetValue("reg", &temp); g.reg = atoi(temp.c_str());
|
|
|
|
|
value.GetValueInt("fc", &g.fc);
|
|
|
|
|
value.GetValueInt("reg", &g.reg);
|
|
|
|
|
|
|
|
|
|
Value_Add(&g);
|
|
|
|
|
|
|
|
|
|
if (Value_SetValue(g.value, g.type, g.fc, ®stowrite, regvals)) {
|
|
|
|
|
modbussrv.SetRegValue(g.fc, g.reg, regstowrite, (uint16_t*)regvals);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@ -884,9 +879,7 @@ void load_bulkfile(std::string fn) {
|
|
|
|
|
|
|
|
|
|
FILE *f;
|
|
|
|
|
char buffer[FILEBUFFER];
|
|
|
|
|
char field[LEN_FIELD];
|
|
|
|
|
char *pos, *next;
|
|
|
|
|
int i;
|
|
|
|
|
JSONParse json;
|
|
|
|
|
JSONParse value;
|
|
|
|
|
std::string temp;
|
|
|
|
|
@ -941,7 +934,7 @@ void load_bulkfile(std::string fn) {
|
|
|
|
|
modbussrv.SetRegValue(g.fc, g.reg, regstowrite, (uint16_t*)regvals);
|
|
|
|
|
printf ("%s add %s type:%s with value %s\n", __FUNCTION__, g.name.c_str(), g.type.c_str(), g.value.c_str());
|
|
|
|
|
}
|
|
|
|
|
else printf ("%s add %s without value\n", __FUNCTION__, g.name);
|
|
|
|
|
else printf ("%s add %s without value\n", __FUNCTION__, g.name.c_str());
|
|
|
|
|
}
|
|
|
|
|
fclose (f);
|
|
|
|
|
}
|
|
|
|
|
|