diff FXAnalyse.c @ 170:a4fcebb5941b

Make data folder configurable in configuration file
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Fri, 14 Feb 2014 16:58:19 +0100
parents 97112b45b838
children d96f0b04f7fe
line wrap: on
line diff
--- a/FXAnalyse.c	Fri Feb 14 16:58:19 2014 +0100
+++ b/FXAnalyse.c	Fri Feb 14 16:58:19 2014 +0100
@@ -22,14 +22,18 @@
 #include "logging.h"
 
 
-#define DATAFOLDER "Z:\\Measures-2014"
-
 #define FREP_STEP_SIZE 50000.0
-
 #define SPEED_OF_LIGHT 299792458.0 // m/s
 #define SR_WAVELENGTH  698.4460    // nm
 #define HG_WAVELENGTH 1062.4000    // nm
 
+// select which data provider to use
+#ifdef NDEBUG
+#define DataProvider KKDataProvider
+#else
+#define DataProvider FakeDataProvider
+#endif
+
 
 // data acquisition status
 int acquiring;
@@ -38,12 +42,6 @@
 // data provider thread
 CmtThreadFunctionID dataProviderThread;
 
-// select which data provider to use
-#ifdef NDEBUG
-#define DataProvider KKDataProvider
-#else
-#define DataProvider FakeDataProvider
-#endif
 
 struct event event;
 double utc;
@@ -269,6 +267,8 @@
 
 
 // data loggging
+static char *datafolder;
+
 struct datafile {
 	char *name;
 	double *data;
@@ -328,7 +328,7 @@
 static inline void datafile_append(struct datafile *d, char *id, char *timestr)
 {
 	if (d->write)
-		write_data(DATAFOLDER, d->name, id, timestr, utc, d->data, d->nchan);
+		write_data(datafolder, d->name, id, timestr, utc, d->data, d->nchan);
 }
 
 
@@ -400,6 +400,14 @@
 	IniText configuration = Ini_New(TRUE);
 	Ini_ReadFromFile(configuration, path);
 
+	// data folder
+	rv = Ini_GetStringCopy(configuration, "data", "folder", &datafolder);
+	if (rv <= 0) {
+		logmessage(ERROR, "data folder not configured in %s", path);
+		// do not allow to start the acquisition
+		SetCtrlAttribute(MainPanel, PANEL_STARTBUTTON, ATTR_DIMMED, TRUE);
+	}
+	
 	// get AD9956 configuration parameters
 	char host[256];
 	int port;