diff options
author | Thomas White <taw@physics.org> | 2019-09-25 15:24:23 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2019-09-25 15:24:23 +0200 |
commit | 7826ef576f01887eff5b61ab696a7850773c8b6e (patch) | |
tree | 477e0e1ffdfd92282bf1b7a6b941f756d7dbea1c | |
parent | 36ead763ccbf868ef3230d11828bae979a119b92 (diff) |
More work on demo
-rw-r--r-- | crystfel-demo.c | 104 | ||||
-rw-r--r-- | data/crystfel-demo.glade | 6 |
2 files changed, 98 insertions, 12 deletions
diff --git a/crystfel-demo.c b/crystfel-demo.c index 365dd40..3bde9d8 100644 --- a/crystfel-demo.c +++ b/crystfel-demo.c @@ -36,6 +36,7 @@ struct crystfeldemo { GSubprocess *examine_raw_files; GSubprocess *check_peak_detection; + GSubprocess *check_near_bragg; }; @@ -64,9 +65,9 @@ gint examine_raw_files(GtkWidget *widget, struct crystfeldemo *demo) } demo->examine_raw_files = g_subprocess_new(G_SUBPROCESS_FLAGS_NONE, - &error, - "/home/taw/crystfel-demo/files/random-image", - "/home/taw/crystfel-demo/files/files.lst", + &error, "sh", "-c", + "${CRYSTFEL_DEMO_FILES}/random-image " + "${CRYSTFEL_DEMO_FILES}/files.lst", NULL); if ( demo->examine_raw_files == NULL ) { @@ -101,10 +102,10 @@ gint check_peak_detection(GtkWidget *widget, struct crystfeldemo *demo) } demo->check_peak_detection = g_subprocess_new(G_SUBPROCESS_FLAGS_NONE, - &error, - "/home/taw/crystfel-demo/files/check-peak-detection", - "/home/taw/crystfel-demo/files/peaks.stream", - "--geometry=/home/taw/crystfel-demo/files/5HT2B.geom", + &error, "sh", "-c", + "${CRYSTFEL_DEMO_FILES}/check-peak-detection " + "${CRYSTFEL_DEMO_FILES}/peaks.stream " + "--geometry=${CRYSTFEL_DEMO_FILES}/5HT2B-Liu-2013.geom", NULL); if ( demo->check_peak_detection == NULL ) { @@ -124,10 +125,10 @@ gint examine_geom_files(GtkWidget *widget, struct crystfeldemo *demo) } demo->examine_raw_files = g_subprocess_new(G_SUBPROCESS_FLAGS_NONE, - &error, - "/home/taw/crystfel-demo/files/random-image", - "/home/taw/crystfel-demo/files/files.lst", - "--geometry=/home/taw/crystfel-demo/files/5HT2B.geom", + &error, "sh", "-c", + "${CRYSTFEL_DEMO_FILES}/random-image " + "${CRYSTFEL_DEMO_FILES}/files.lst " + "--geometry=${CRYSTFEL_DEMO_FILES}/5HT2B-Liu-2013.geom", NULL); if ( demo->examine_raw_files == NULL ) { @@ -155,6 +156,78 @@ gint show_stream(GtkWidget *widget, struct crystfeldemo *demo) } +gint cell_explorer_nocell(GtkWidget *widget, struct crystfeldemo *demo) +{ + GError *error = NULL; + GSubprocess *sub; + + sub = g_subprocess_new(G_SUBPROCESS_FLAGS_NONE, + &error, "sh", "-c", + "cell_explorer ${CRYSTFEL_DEMO_FILES}/nocell.stream", + NULL); + + if ( sub == NULL ) { + printf("Failed to start demo process\n"); + } + return 0; +} + + +gint cell_explorer_cell(GtkWidget *widget, struct crystfeldemo *demo) +{ + GError *error = NULL; + GSubprocess *sub; + + sub = g_subprocess_new(G_SUBPROCESS_FLAGS_NONE, + &error, "sh", "-c", + "cell_explorer ${CRYSTFEL_DEMO_FILES}/final.stream", + NULL); + + if ( sub == NULL ) { + printf("Failed to start demo process\n"); + } + return 0; +} + + +gint stop_near_bragg(GtkWidget *widget, struct crystfeldemo *demo) +{ + if ( demo->check_near_bragg == NULL ) { + printf("Not running!\n"); + return 0; + } + + g_subprocess_send_signal(demo->check_near_bragg, SIGTERM); + g_subprocess_wait(demo->check_near_bragg, NULL, NULL); + demo->check_near_bragg = NULL; + + return 0; +} + + +gint check_near_bragg(GtkWidget *widget, struct crystfeldemo *demo) +{ + GError *error = NULL; + + if ( demo->check_near_bragg != NULL ) { + printf("Already running!\n"); + return 0; + } + + demo->check_near_bragg = g_subprocess_new(G_SUBPROCESS_FLAGS_NONE, + &error, "sh", "-c", + "${CRYSTFEL_DEMO_FILES}/check-near-bragg " + "${CRYSTFEL_DEMO_FILES}/final.stream " + "--geometry=${CRYSTFEL_DEMO_FILES}/5HT2B-Liu-2013.geom", + NULL); + + if ( demo->check_near_bragg == NULL ) { + printf("Failed to start demo process\n"); + } + return 0; +} + + static int change_to_tempdir() { char tmpdir[64]; @@ -219,6 +292,15 @@ int main(int argc, char *argv[]) gtk_builder_add_callback_symbol(builder, "show_stream", G_CALLBACK(show_stream)); + gtk_builder_add_callback_symbol(builder, "cell_explorer_nocell", + G_CALLBACK(cell_explorer_nocell)); + + gtk_builder_add_callback_symbol(builder, "cell_explorer_cell", + G_CALLBACK(cell_explorer_cell)); + gtk_builder_add_callback_symbol(builder, "check_near_bragg", + G_CALLBACK(check_near_bragg)); + gtk_builder_add_callback_symbol(builder, "stop_near_bragg", + G_CALLBACK(stop_near_bragg)); gtk_builder_connect_signals(builder, &demo); gtk_widget_show_all(window); diff --git a/data/crystfel-demo.glade b/data/crystfel-demo.glade index 78289c6..f214fd6 100644 --- a/data/crystfel-demo.glade +++ b/data/crystfel-demo.glade @@ -215,7 +215,7 @@ <object class="GtkLabel"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="label" translatable="yes">indexamajig -i files.lst -o output.stream --indexing=none --peaks=zaef</property> + <property name="label" translatable="yes">indexamajig -i files.lst -o 5HT2B-all.stream -j `nproc` --peaks=peakfinder8 --threshold=400 --min-pix-count=2 --min-snr=8</property> <property name="wrap">True</property> <property name="selectable">True</property> </object> @@ -250,6 +250,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> + <signal name="clicked" handler="cell_explorer_nocell" swapped="no"/> </object> <packing> <property name="expand">True</property> @@ -327,6 +328,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> + <signal name="clicked" handler="cell_explorer_cell" swapped="no"/> </object> <packing> <property name="expand">True</property> @@ -340,6 +342,7 @@ <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">True</property> + <signal name="clicked" handler="check_near_bragg" swapped="no"/> </object> <packing> <property name="expand">True</property> @@ -355,6 +358,7 @@ <property name="receives_default">True</property> <property name="use_stock">True</property> <property name="always_show_image">True</property> + <signal name="clicked" handler="stop_near_bragg" swapped="no"/> </object> <packing> <property name="expand">False</property> |