From 7826ef576f01887eff5b61ab696a7850773c8b6e Mon Sep 17 00:00:00 2001 From: Thomas White Date: Wed, 25 Sep 2019 15:24:23 +0200 Subject: More work on demo --- crystfel-demo.c | 104 ++++++++++++++++++++++++++++++++++++++++++----- 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 @@ True False - indexamajig -i files.lst -o output.stream --indexing=none --peaks=zaef + indexamajig -i files.lst -o 5HT2B-all.stream -j `nproc` --peaks=peakfinder8 --threshold=400 --min-pix-count=2 --min-snr=8 True True @@ -250,6 +250,7 @@ True True True + True @@ -327,6 +328,7 @@ True True True + True @@ -340,6 +342,7 @@ True True True + True @@ -355,6 +358,7 @@ True True True + False -- cgit v1.2.3