From 4a2050f8c0aad9975f494b92067408ce5c50822b Mon Sep 17 00:00:00 2001 From: karthikmurakonda Date: Sat, 29 Oct 2022 15:58:45 +0530 Subject: [PATCH] added interactability --- iPDC/assets/utility_tools.ui | 816 ++++++++++++++++++++++++++++------ iPDC/assets/utility_tools.ui~ | 815 ++++++++++++++++++++++++++++----- iPDC/inc/utility_tools.h | 15 +- iPDC/src/utility_tools.c | 122 ++++- 4 files changed, 1506 insertions(+), 262 deletions(-) diff --git a/iPDC/assets/utility_tools.ui b/iPDC/assets/utility_tools.ui index 2989aee..2edcca0 100644 --- a/iPDC/assets/utility_tools.ui +++ b/iPDC/assets/utility_tools.ui @@ -3,8 +3,8 @@ - 900 - 700 + 985 + 800 False @@ -15,7 +15,7 @@ 3 - 800 + 900 True False True @@ -169,7 +169,7 @@ - + 100 80 @@ -309,7 +309,7 @@ - + 150 True False @@ -320,131 +320,538 @@ - + + True False - vertical - - True + False - Legend - True - - - False - True - 0 - - - - - - True - False - - - True - True - True - red - rgb(238,29,0) - - - 0 - 0 - - - - - True - False - Attack/Event - - - 1 - 0 - - - - - False - True - 1 - - - - - - True - False - - - True - True - True - rgb(0,255,0) - - - 0 - 0 - - + vertical True False - Normal + Legend + True - 1 - 0 + False + True + 0 + + + + True + False + + + True + True + True + red + rgb(238,29,0) + + + 0 + 0 + + + + + True + False + Attack/Event + + + 1 + 0 + + + + + False + True + 1 + + + + + + True + False + + + True + True + True + rgb(0,255,0) + + + 0 + 0 + + + + + True + False + Normal + + + 1 + 0 + + + + + False + True + 2 + + + + + + True + False + + + True + True + True + rgb(119,118,123) + + + 0 + 0 + + + + + True + False + No data + + + 1 + 0 + + + + + False + True + 3 + + + + + - False - True - 2 + 0 + 0 - - - True + False - - - True - True - True - rgb(119,118,123) - - - 0 - 0 - - + vertical True False - No data + Legend + True - 1 - 0 + False + True + 0 + + + + True + False + + + True + True + True + red + rgb(238,29,0) + + + 0 + 0 + + + + + True + False + >6900V + + + 1 + 0 + + + + + False + True + 1 + + + + + + True + False + + + True + True + True + rgb(0,255,0) + + + 0 + 0 + + + + + True + False + <6800V +<6300V + + + 1 + 0 + + + + + False + True + 2 + + + + + + True + False + + + True + True + True + rgb(119,118,123) + + + 0 + 0 + + + + + True + False + No data + + + 1 + 0 + + + + + False + True + 3 + + + + + - False - True - 3 + 1 + 0 - + + True + False + vertical + + + True + False + Legend + True + + + False + True + 0 + + + + + + True + False + + + True + True + True + red + rgb(238,29,0) + + + 0 + 0 + + + + + True + False + Deviation > 0.5 mHz + + + 1 + 0 + + + + + False + True + 1 + + + + + + True + False + + + True + True + True + rgb(0,255,0) + + + 0 + 0 + + + + + True + False + deviation < 0.5mHz + + + 1 + 0 + + + + + False + True + 2 + + + + + + True + False + + + True + True + True + rgb(119,118,123) + + + 0 + 0 + + + + + True + False + No data + + + 1 + 0 + + + + + False + True + 3 + + + + + + + + 2 + 0 + + + + + False + vertical + + + True + False + Legend + True + + + False + True + 0 + + + + + + True + False + + + True + True + True + red + rgb(238,29,0) + + + 0 + 0 + + + + + True + False + + + 1 + 0 + + + + + False + True + 1 + + + + + + True + False + + + True + True + True + rgb(0,255,0) + + + 0 + 0 + + + + + True + False + Normal + + + 1 + 0 + + + + + False + True + 2 + + + + + + True + False + + + True + True + True + rgb(119,118,123) + + + 0 + 0 + + + + + True + False + No data + + + 1 + 0 + + + + + False + True + 3 + + + + + + + + 3 + 0 + @@ -453,7 +860,28 @@ - + + 150 + True + False + + + 1 + 2 + + + + + 150 + False + + + 1 + 3 + + + + True True in @@ -462,7 +890,83 @@ True False - + + True + False + vertical + + + True + False + Graph Legend + + + False + True + 0 + + + + + + True + False + + + True + True + True + rgb(253,0,0) + + + 0 + 0 + + + + + True + False + RSS + + + 1 + 0 + + + + + False + True + 1 + + + + + + + + + + + + + + + 2 + 1 + + + + + True + in + + + True + False + + True False vertical @@ -488,7 +992,7 @@ True True True - rgb(255,120,0) + rgb(253,0,0) 0 @@ -499,7 +1003,7 @@ True False - Pmu + RSS 1 @@ -514,28 +1018,10 @@ - - True - True - True - - - False - True - 2 - + - - True - True - True - - - False - True - 3 - + @@ -544,9 +1030,91 @@ 2 - 1 + 2 + + + True + in + + + True + False + + + True + False + vertical + + + True + False + Graph Legend + + + False + True + 0 + + + + + + True + False + + + True + True + True + rgb(253,0,0) + + + 0 + 0 + + + + + True + False + RSS + + + 1 + 0 + + + + + False + True + 1 + + + + + + + + + + + + + + + 2 + 3 + + + + + + + + diff --git a/iPDC/assets/utility_tools.ui~ b/iPDC/assets/utility_tools.ui~ index 94ca09a..f0a7144 100644 --- a/iPDC/assets/utility_tools.ui~ +++ b/iPDC/assets/utility_tools.ui~ @@ -3,8 +3,8 @@ - 800 - 700 + 985 + 800 False @@ -15,7 +15,7 @@ 3 - 800 + 900 True False True @@ -169,7 +169,7 @@ - + 100 80 @@ -309,7 +309,7 @@ - + 150 True False @@ -320,131 +320,539 @@ - + + True False - vertical - + True False - Legend - True - - - False - True - 0 - - - - - - True - False - - - True - True - True - red - rgb(238,29,0) - - - 0 - 0 - - - - - True - False - Attack/Event - - - 1 - 0 - - - - - False - True - 1 - - - - - - True - False - - - True - True - True - rgb(0,255,0) - - - 0 - 0 - - + vertical True False - Normal + Legend + True - 1 - 0 + False + True + 0 + + + + True + False + + + True + True + True + red + rgb(238,29,0) + + + 0 + 0 + + + + + True + False + Attack/Event + + + 1 + 0 + + + + + False + True + 1 + + + + + + True + False + + + True + True + True + rgb(0,255,0) + + + 0 + 0 + + + + + True + False + Normal + + + 1 + 0 + + + + + False + True + 2 + + + + + + True + False + + + True + True + True + rgb(119,118,123) + + + 0 + 0 + + + + + True + False + No data + + + 1 + 0 + + + + + False + True + 3 + + + + + - False - True - 2 + 0 + 0 - - - True + False - - - True - True - True - rgb(119,118,123) - - - 0 - 0 - - + vertical True False - No data + Legend + True - 1 - 0 + False + True + 0 + + + + True + False + + + True + True + True + red + rgb(238,29,0) + + + 0 + 0 + + + + + True + False + >6900V + + + 1 + 0 + + + + + False + True + 1 + + + + + + True + False + + + True + True + True + rgb(0,255,0) + + + 0 + 0 + + + + + True + False + <6800V +<6300V + + + 1 + 0 + + + + + False + True + 2 + + + + + + True + False + + + True + True + True + rgb(119,118,123) + + + 0 + 0 + + + + + True + False + No data + + + 1 + 0 + + + + + False + True + 3 + + + + + - False - True - 3 + 1 + 0 - + + False + vertical + + + True + False + Legend + True + + + False + True + 0 + + + + + + True + False + + + True + True + True + red + rgb(238,29,0) + + + 0 + 0 + + + + + True + False + Attack/Event + + + 1 + 0 + + + + + False + True + 1 + + + + + + True + False + + + True + True + True + rgb(0,255,0) + + + 0 + 0 + + + + + True + False + Normal + + + 1 + 0 + + + + + False + True + 2 + + + + + + True + False + + + True + True + True + rgb(119,118,123) + + + 0 + 0 + + + + + True + False + No data + + + 1 + 0 + + + + + False + True + 3 + + + + + + + + 2 + 0 + + + + + False + vertical + + + True + False + Legend + True + + + False + True + 0 + + + + + + True + False + + + True + True + True + red + rgb(238,29,0) + + + 0 + 0 + + + + + True + False + Attack/Event + + + 1 + 0 + + + + + False + True + 1 + + + + + + True + False + + + True + True + True + rgb(0,255,0) + + + 0 + 0 + + + + + True + False + Normal + + + 1 + 0 + + + + + False + True + 2 + + + + + + True + False + + + True + True + True + rgb(119,118,123) + + + 0 + 0 + + + + + True + False + No data + + + 1 + 0 + + + + + False + True + 3 + + + + + + + + 3 + 0 + @@ -453,7 +861,28 @@ - + + 150 + True + False + + + 1 + 2 + + + + + 150 + False + + + 1 + 3 + + + + True True in @@ -462,7 +891,83 @@ True False - + + True + False + vertical + + + True + False + Graph Legend + + + False + True + 0 + + + + + + True + False + + + True + True + True + rgb(253,0,0) + + + 0 + 0 + + + + + True + False + RSS + + + 1 + 0 + + + + + False + True + 1 + + + + + + + + + + + + + + + 2 + 1 + + + + + True + in + + + True + False + + True False vertical @@ -488,7 +993,7 @@ True True True - rgb(255,120,0) + rgb(253,0,0) 0 @@ -499,7 +1004,7 @@ True False - Pmu + RSS 1 @@ -514,28 +1019,10 @@ - - True - True - True - - - False - True - 2 - + - - True - True - True - - - False - True - 3 - + @@ -544,9 +1031,91 @@ 2 - 1 + 2 + + + True + in + + + True + False + + + True + False + vertical + + + True + False + Graph Legend + + + False + True + 0 + + + + + + True + False + + + True + True + True + rgb(253,0,0) + + + 0 + 0 + + + + + True + False + RSS + + + 1 + 0 + + + + + False + True + 1 + + + + + + + + + + + + + + + 2 + 3 + + + + + + + + diff --git a/iPDC/inc/utility_tools.h b/iPDC/inc/utility_tools.h index 455bf27..425f8e1 100644 --- a/iPDC/inc/utility_tools.h +++ b/iPDC/inc/utility_tools.h @@ -20,12 +20,25 @@ struct _UtData /* ui buttons */ GtkWidget *voltage; GtkWidget *frequency; + GtkWidget *dfreq; GtkWidget *attack_detection; GtkWidget *algorithm; GtkWidget *dimmension; OsmGpsMap *util_map; GtkContainer *map_layout; - GtkContainer *graph_layout; + GtkContainer *graph_layoutvol; + GtkContainer *graph_layoutfreq; + GtkContainer *graph_layoutdfreq; + GtkLabel *algo_label; + GtkLabel *dimm_label; + GtkBox * ml_vol; + GtkBox * ml_freq; + GtkBox * ml_dfreq; + GtkBox * ml_ad; + GtkWidget *swvol; + GtkWidget *swfreq; + GtkWidget *swdfreq; + GtkWidget *swad; }; UtData *utdata; diff --git a/iPDC/src/utility_tools.c b/iPDC/src/utility_tools.c index 36db571..3db4ac9 100644 --- a/iPDC/src/utility_tools.c +++ b/iPDC/src/utility_tools.c @@ -126,44 +126,110 @@ void on_window_destroy(GtkWidget *widget, gpointer data) gtk_main_quit(); } +// on clicking the button voltage +void on_voltage_clicked(GtkButton *but, gpointer udata) +{ + curr_measurement = 0; + + gtk_widget_show(utdata->ml_vol); + gtk_widget_hide(utdata->ml_freq); + gtk_widget_hide(utdata->ml_dfreq); + gtk_widget_hide(utdata->ml_ad); + + gtk_widget_hide(utdata->algorithm); + gtk_widget_hide(utdata->dimmension); + gtk_widget_hide(utdata->algo_label); + gtk_widget_hide(utdata->dimm_label); + gtk_widget_set_sensitive(utdata->voltage, FALSE); + gtk_widget_set_sensitive(utdata->frequency, TRUE); + gtk_widget_set_sensitive(utdata->dfreq, TRUE); + gtk_widget_set_sensitive(utdata->attack_detection, TRUE); + printf("Voltage\n"); +} + // on clicking the button frequency void on_frequency_clicked(GtkButton *but, gpointer udata) { curr_measurement = 1; + + gtk_widget_show(utdata->ml_freq); + gtk_widget_hide(utdata->ml_vol); + gtk_widget_hide(utdata->ml_dfreq); + gtk_widget_hide(utdata->ml_ad); + gtk_widget_hide(utdata->algorithm); gtk_widget_hide(utdata->dimmension); + gtk_widget_hide(utdata->algo_label); + gtk_widget_hide(utdata->dimm_label); gtk_widget_set_sensitive(utdata->voltage, TRUE); gtk_widget_set_sensitive(utdata->frequency, FALSE); + gtk_widget_set_sensitive(utdata->dfreq, TRUE); gtk_widget_set_sensitive(utdata->attack_detection, TRUE); printf("Frequency\n"); } +// on clicking the button dfreq +void on_dfreq_clicked(GtkButton *but, gpointer udata) +{ + curr_measurement = 2; + + gtk_widget_show(utdata->ml_dfreq); + gtk_widget_hide(utdata->ml_vol); + gtk_widget_hide(utdata->ml_freq); + gtk_widget_hide(utdata->ml_ad); + + + gtk_widget_hide(utdata->algorithm); + gtk_widget_hide(utdata->dimmension); + gtk_widget_hide(utdata->algo_label); + gtk_widget_hide(utdata->dimm_label); + gtk_widget_set_sensitive(utdata->voltage, TRUE); + gtk_widget_set_sensitive(utdata->frequency, TRUE); + gtk_widget_set_sensitive(utdata->dfreq, FALSE); + gtk_widget_set_sensitive(utdata->attack_detection, TRUE); + + printf("dfreq\n"); +} + // on clicking the button attack_detection void on_attack_detection_clicked(GtkButton *but, gpointer udata) { - curr_measurement = 2; + curr_measurement = 3; gtk_widget_set_sensitive(utdata->voltage, TRUE); gtk_widget_set_sensitive(utdata->frequency, TRUE); + gtk_widget_set_sensitive(utdata->dfreq, TRUE); gtk_widget_set_sensitive(utdata->attack_detection, FALSE); gtk_widget_show(utdata->algorithm); gtk_widget_show(utdata->dimmension); + gtk_widget_show(utdata->algo_label); + gtk_widget_show(utdata->dimm_label); + gtk_widget_show(utdata->ml_ad); + + gtk_widget_hide(utdata->ml_vol); + gtk_widget_hide(utdata->ml_freq); + gtk_widget_hide(utdata->ml_dfreq); + printf("Attack Detection\n"); } -// on clicking the button voltage -void on_voltage_clicked(GtkButton *but, gpointer udata) +void set_algo(GtkComboBox *combo, gpointer udata) { - curr_measurement = 0; - gtk_widget_hide(utdata->algorithm); - gtk_widget_hide(utdata->dimmension); - gtk_widget_set_sensitive(utdata->voltage, FALSE); - gtk_widget_set_sensitive(utdata->frequency, TRUE); - gtk_widget_set_sensitive(utdata->attack_detection, TRUE); - printf("Voltage\n"); + algorithm = gtk_combo_box_get_active(combo); + printf("Algorithm: %d\n", algorithm); } +void set_dimm(GtkComboBox *combo, gpointer udata) +{ + dimmension = gtk_combo_box_get_active(combo); + + printf("dimmension = %d\n", dimmension); +} + + + + void utility_tools(GtkButton *but, gpointer udata) { GdkPixbuf *g_red_image; @@ -184,20 +250,40 @@ void utility_tools(GtkButton *but, gpointer udata) utdata->util_window = GTK_WIDGET(gtk_builder_get_object(builder, "util_window")); utdata->voltage = GTK_WIDGET(gtk_builder_get_object(builder, "voltage")); utdata->frequency = GTK_WIDGET(gtk_builder_get_object(builder, "freq")); + utdata->dfreq = GTK_WIDGET(gtk_builder_get_object(builder, "dfreq")); utdata->attack_detection = GTK_WIDGET(gtk_builder_get_object(builder, "attack_detection")); utdata->algorithm = GTK_WIDGET(gtk_builder_get_object(builder, "algorithm")); utdata->dimmension = GTK_WIDGET(gtk_builder_get_object(builder, "dimmension")); // utdata->util_map = GTK_WIDGET(gtk_builder_get_object(builder, "util_map")); utdata->map_layout = GTK_CONTAINER(gtk_builder_get_object(builder, "map_layout")); - utdata->graph_layout = GTK_CONTAINER(gtk_builder_get_object(builder, "graph_layout")); + utdata->graph_layoutvol = GTK_CONTAINER(gtk_builder_get_object(builder, "graph_layoutvol")); + utdata->graph_layoutfreq = GTK_CONTAINER(gtk_builder_get_object(builder, "graph_layoutfreq")); + utdata->graph_layoutdfreq = GTK_CONTAINER(gtk_builder_get_object(builder, "graph_layoutdfreq")); + utdata->algo_label = GTK_WIDGET(gtk_builder_get_object(builder, "algo_label")); + utdata->dimm_label = GTK_WIDGET(gtk_builder_get_object(builder, "dimm_label")); + utdata->ml_vol = GTK_WIDGET(gtk_builder_get_object(builder, "mlvol")); + utdata->ml_freq = GTK_WIDGET(gtk_builder_get_object(builder, "mlfreq")); + utdata->ml_dfreq = GTK_WIDGET(gtk_builder_get_object(builder, "mldfreq")); + utdata->ml_ad = GTK_WIDGET(gtk_builder_get_object(builder, "mlad")); + utdata->swvol = GTK_WIDGET(gtk_builder_get_object(builder, "swvol")); + utdata->swfreq = GTK_WIDGET(gtk_builder_get_object(builder, "swfreq")); + utdata->swdfreq = GTK_WIDGET(gtk_builder_get_object(builder, "swdfreq")); + utdata->swad = GTK_WIDGET(gtk_builder_get_object(builder, "swad")); gtk_widget_set_sensitive(utdata->voltage, FALSE); gtk_widget_set_visible(utdata->algorithm, FALSE); gtk_widget_set_visible(utdata->dimmension, FALSE); - g_signal_connect(utdata->attack_detection, "clicked", G_CALLBACK(on_attack_detection_clicked), NULL); - g_signal_connect(utdata->frequency, "clicked", G_CALLBACK(on_frequency_clicked), NULL); + gtk_widget_set_visible(utdata->graph_layoutfreq, FALSE); + gtk_widget_set_visible(utdata->graph_layoutdfreq, FALSE); + + g_signal_connect(utdata->voltage, "clicked", G_CALLBACK(on_voltage_clicked), NULL); + g_signal_connect(utdata->frequency, "clicked", G_CALLBACK(on_frequency_clicked), NULL); + g_signal_connect(utdata->dfreq, "clicked", G_CALLBACK(on_dfreq_clicked), NULL); + g_signal_connect(utdata->attack_detection, "clicked", G_CALLBACK(on_attack_detection_clicked), NULL); + g_signal_connect(utdata->algorithm, "changed", G_CALLBACK(set_algo), NULL); + g_signal_connect(utdata->dimmension, "changed", G_CALLBACK(set_dimm), NULL); g_red_image = gdk_pixbuf_new_from_file_at_size(RED_IMAGE, 24, 24, NULL); g_green_image = gdk_pixbuf_new_from_file_at_size(GREEN_IMAGE, 24, 24, NULL); @@ -271,7 +357,7 @@ void utility_tools(GtkButton *but, gpointer udata) // gtk_widget_set_vexpand(GTK_WIDGET(chart), TRUE); gtk_widget_set_size_request(GTK_WIDGET(chart), 600, 150); - gtk_container_add(utdata->graph_layout, GTK_WIDGET(chart)); + gtk_container_add(utdata->graph_layoutvol, GTK_WIDGET(chart)); @@ -290,6 +376,14 @@ void utility_tools(GtkButton *but, gpointer udata) gtk_widget_hide(utdata->algorithm); gtk_widget_hide(utdata->dimmension); + gtk_widget_hide(utdata->algo_label); + gtk_widget_hide(utdata->dimm_label); + gtk_widget_hide(utdata->ml_freq); + gtk_widget_hide(utdata->ml_dfreq); + gtk_widget_hide(utdata->ml_ad); + gtk_widget_hide(utdata->swfreq); + gtk_widget_hide(utdata->swdfreq); + gtk_widget_hide(utdata->swad); gtk_main(); } \ No newline at end of file