summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2019-09-25 15:24:23 +0200
committerThomas White <taw@physics.org>2019-09-25 15:24:23 +0200
commit7826ef576f01887eff5b61ab696a7850773c8b6e (patch)
tree477e0e1ffdfd92282bf1b7a6b941f756d7dbea1c
parent36ead763ccbf868ef3230d11828bae979a119b92 (diff)
More work on demo
-rw-r--r--crystfel-demo.c104
-rw-r--r--data/crystfel-demo.glade6
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>