Index: /trunk/FACT++/Makefile.am
===================================================================
--- /trunk/FACT++/Makefile.am	(revision 13867)
+++ /trunk/FACT++/Makefile.am	(revision 13868)
@@ -39,4 +39,5 @@
 	mcp feedback ratescan ratecontrol \
 	magicweather \
+	tngweather \
 	smartfact \
 	fitsdump fitscheck 
@@ -44,4 +45,8 @@
 if HAS_GUI
 bin_PROGRAMS += fact
+endif
+
+if HAS_SOPRANO
+bin_PROGRAMS += tngweather
 endif
 
@@ -258,4 +263,9 @@
     	libConfiguration.la
 
+tngweather_SOURCES = src/tngweather.cc src/LocalControl.h
+tngweather_LDADD   = libDim++.la libDim.la libDimExtension.la \
+ 	libStateMachine.la libTools.la libTime.la \
+    	libConfiguration.la
+
 smartfact_SOURCES = src/smartfact.cc src/LocalControl.h src/PixelMap.cc
 smartfact_LDADD   = libDim++.la libDim.la libDimExtension.la \
Index: /trunk/FACT++/Makefile.in
===================================================================
--- /trunk/FACT++/Makefile.in	(revision 13867)
+++ /trunk/FACT++/Makefile.in	(revision 13868)
@@ -44,20 +44,21 @@
 bin_PROGRAMS = dns$(EXEEXT) log$(EXEEXT) logtime$(EXEEXT) \
 	time$(EXEEXT) argv$(EXEEXT) dimctrl$(EXEEXT) \
-	datalogger$(EXEEXT) scheduler$(EXEEXT) \
-	triggerschedule$(EXEEXT) ftmctrl$(EXEEXT) ftm$(EXEEXT) \
+	datalogger$(EXEEXT) ftmctrl$(EXEEXT) ftm$(EXEEXT) \
 	fadctrl$(EXEEXT) fad$(EXEEXT) fscctrl$(EXEEXT) fsc$(EXEEXT) \
 	chatclient$(EXEEXT) chatserv$(EXEEXT) biasctrl$(EXEEXT) \
 	drivectrl$(EXEEXT) mcp$(EXEEXT) feedback$(EXEEXT) \
 	ratescan$(EXEEXT) ratecontrol$(EXEEXT) magicweather$(EXEEXT) \
-	smartfact$(EXEEXT) fitsdump$(EXEEXT) fitscheck$(EXEEXT) \
-	$(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
-	$(am__EXEEXT_4)
+	tngweather$(EXEEXT) smartfact$(EXEEXT) fitsdump$(EXEEXT) \
+	fitscheck$(EXEEXT) $(am__EXEEXT_1) $(am__EXEEXT_2) \
+	$(am__EXEEXT_3) $(am__EXEEXT_4) $(am__EXEEXT_5)
 @HAS_GUI_TRUE@am__append_1 = fact
-@HAS_VIEWER_TRUE@am__append_2 = viewer
-@HAS_LIBXP_TRUE@am__append_3 = did
+@HAS_SOPRANO_TRUE@am__append_2 = tngweather
+@HAS_VIEWER_TRUE@am__append_3 = viewer
+@HAS_LIBXP_TRUE@am__append_4 = did
 
 # This is a trick to be able to build them but not having them in 'all'
-@IS_FALSE@am__append_4 = \
-@IS_FALSE@	test \
+@IS_FALSE@am__append_5 = \
+@IS_FALSE@	test scheduler \
+@IS_FALSE@	triggerschedule \
 @IS_FALSE@	dclient5 dserver2 \
 @IS_FALSE@	fitsloader fitsgrep \
@@ -65,15 +66,15 @@
 @IS_FALSE@	readfits
 
-@HAS_FITS_TRUE@am__append_5 = src/FitsFile.h src/FitsFile.cc \
+@HAS_FITS_TRUE@am__append_6 = src/FitsFile.h src/FitsFile.cc \
 @HAS_FITS_TRUE@	src/DataWriteFits.cc    src/DataWriteFits.h \
 @HAS_FITS_TRUE@	src/DataWriteFits2.cc    src/DataWriteFits2.h
 
-@HAS_FITS_TRUE@am__append_6 = src/FitsFile.h src/FitsFile.cc src/Fits.h src/Fits.cc
-@HAS_GROFF_TRUE@am__append_7 = $(dist_man1_MANS:.man=.html)
-@HAS_GROFF_TRUE@am__append_8 = $(dist_man1_MANS:.man=.html) 
+@HAS_FITS_TRUE@am__append_7 = src/FitsFile.h src/FitsFile.cc src/Fits.h src/Fits.cc
+@HAS_GROFF_TRUE@am__append_8 = $(dist_man1_MANS:.man=.html)
 @HAS_GROFF_TRUE@am__append_9 = $(dist_man1_MANS:.man=.html) 
-@HAS_GROFF_TRUE@@HAS_PS2PDF_TRUE@am__append_10 = $(dist_man1_MANS:.man=.pdf)
+@HAS_GROFF_TRUE@am__append_10 = $(dist_man1_MANS:.man=.html) 
 @HAS_GROFF_TRUE@@HAS_PS2PDF_TRUE@am__append_11 = $(dist_man1_MANS:.man=.pdf)
 @HAS_GROFF_TRUE@@HAS_PS2PDF_TRUE@am__append_12 = $(dist_man1_MANS:.man=.pdf)
+@HAS_GROFF_TRUE@@HAS_PS2PDF_TRUE@am__append_13 = $(dist_man1_MANS:.man=.pdf)
 subdir = .
 DIST_COMMON = README $(am__configure_deps) $(dist_man1_MANS) \
@@ -173,7 +174,9 @@
 libTools_la_OBJECTS = $(am_libTools_la_OBJECTS)
 @HAS_GUI_TRUE@am__EXEEXT_1 = fact$(EXEEXT)
-@HAS_VIEWER_TRUE@am__EXEEXT_2 = viewer$(EXEEXT)
-@HAS_LIBXP_TRUE@am__EXEEXT_3 = did$(EXEEXT)
-@IS_FALSE@am__EXEEXT_4 = test$(EXEEXT) dclient5$(EXEEXT) \
+@HAS_SOPRANO_TRUE@am__EXEEXT_2 = tngweather$(EXEEXT)
+@HAS_VIEWER_TRUE@am__EXEEXT_3 = viewer$(EXEEXT)
+@HAS_LIBXP_TRUE@am__EXEEXT_4 = did$(EXEEXT)
+@IS_FALSE@am__EXEEXT_5 = test$(EXEEXT) scheduler$(EXEEXT) \
+@IS_FALSE@	triggerschedule$(EXEEXT) dclient5$(EXEEXT) \
 @IS_FALSE@	dserver2$(EXEEXT) fitsloader$(EXEEXT) \
 @IS_FALSE@	fitsgrep$(EXEEXT) sched$(EXEEXT) astro$(EXEEXT) \
@@ -360,4 +363,8 @@
 time_OBJECTS = $(am_time_OBJECTS)
 time_DEPENDENCIES = libTime.la
+am_tngweather_OBJECTS = src/tngweather.$(OBJEXT)
+tngweather_OBJECTS = $(am_tngweather_OBJECTS)
+tngweather_DEPENDENCIES = libDim++.la libDim.la libDimExtension.la \
+	libStateMachine.la libTools.la libTime.la libConfiguration.la
 am_triggerschedule_OBJECTS = src/triggerschedule.$(OBJEXT)
 triggerschedule_OBJECTS = $(am_triggerschedule_OBJECTS)
@@ -447,5 +454,6 @@
 	$(ratescan_SOURCES) $(readfits_SOURCES) sched.c \
 	$(scheduler_SOURCES) $(smartfact_SOURCES) $(test_SOURCES) \
-	$(time_SOURCES) $(triggerschedule_SOURCES) $(viewer_SOURCES)
+	$(time_SOURCES) $(tngweather_SOURCES) \
+	$(triggerschedule_SOURCES) $(viewer_SOURCES)
 DIST_SOURCES = $(libConfiguration_la_SOURCES) $(libDim___la_SOURCES) \
 	$(libDim_la_SOURCES) $(libDimExtension_la_SOURCES) \
@@ -464,6 +472,6 @@
 	$(ratecontrol_SOURCES) $(ratescan_SOURCES) $(readfits_SOURCES) \
 	sched.c $(scheduler_SOURCES) $(smartfact_SOURCES) \
-	$(test_SOURCES) $(time_SOURCES) $(triggerschedule_SOURCES) \
-	$(am__viewer_SOURCES_DIST)
+	$(test_SOURCES) $(time_SOURCES) $(tngweather_SOURCES) \
+	$(triggerschedule_SOURCES) $(am__viewer_SOURCES_DIST)
 man1dir = $(mandir)/man1
 NROFF = nroff
@@ -727,5 +735,5 @@
 
 #-------------------------------------------------------------------------
-CLEANFILES = $(BUILT_SOURCES) $(am__append_9) $(am__append_12)
+CLEANFILES = $(BUILT_SOURCES) $(am__append_10) $(am__append_13)
 dist_noinst_SCRIPTS = autogen.sh
 EXTRA_DIST = Doxyfile dim/DIM_Performance.pdf dim/LICENSE.GPL \
@@ -735,5 +743,5 @@
 	dim/README_v17.txt dim/README_v18.txt dim/README_v19.txt \
 	$(fact_DIALOGS) $(fact_RESOURCES) $(viewer_DIALOGS) \
-	$(viewer_RESOURCES) $(am__append_8) $(am__append_11)
+	$(viewer_RESOURCES) $(am__append_9) $(am__append_12)
 dns_LDADD = libDim.la libDimExtension.la
 dns_SOURCES = src/dns.c
@@ -873,4 +881,9 @@
     	libConfiguration.la
 
+tngweather_SOURCES = src/tngweather.cc src/LocalControl.h
+tngweather_LDADD = libDim++.la libDim.la libDimExtension.la \
+ 	libStateMachine.la libTools.la libTime.la \
+    	libConfiguration.la
+
 smartfact_SOURCES = src/smartfact.cc src/LocalControl.h src/PixelMap.cc
 smartfact_LDADD = libDim++.la libDim.la libDimExtension.la \
@@ -882,5 +895,5 @@
 	src/DataProcessorImp.h src/DataCalib.cc src/DataCalib.h \
 	src/DataWriteRaw.cc src/DataWriteRaw.h src/DrsCalib.h \
-	$(am__append_5)
+	$(am__append_6)
 fadctrl_LDADD = libDim++.la libDim.la  libDimExtension.la \
 	libStateMachine.la libTools.la libTime.la \
@@ -935,5 +948,5 @@
 test_LDADD = libStateMachine.la libTools.la libTime.la libDim++.la libDim.la libConfiguration.la
 datalogger_SOURCES = src/datalogger.cc src/LocalControl.h \
-	$(am__append_6)
+	$(am__append_7)
 datalogger_LDADD = libDim++.la libDim.la libDimExtension.la \
 	libStateMachine.la libTools.la libTime.la \
@@ -1013,5 +1026,5 @@
 
 #-------------------------------------------------------------------------
-MAN_TARGETS = $(dist_man1_MANS) $(am__append_7) $(am__append_10)
+MAN_TARGETS = $(dist_man1_MANS) $(am__append_8) $(am__append_11)
 all: $(BUILT_SOURCES)
 	$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -1471,4 +1484,9 @@
 	@rm -f time$(EXEEXT)
 	$(AM_V_CXXLD)$(CXXLINK) $(time_OBJECTS) $(time_LDADD) $(LIBS)
+src/tngweather.$(OBJEXT): src/$(am__dirstamp) \
+	src/$(DEPDIR)/$(am__dirstamp)
+tngweather$(EXEEXT): $(tngweather_OBJECTS) $(tngweather_DEPENDENCIES) 
+	@rm -f tngweather$(EXEEXT)
+	$(AM_V_CXXLD)$(CXXLINK) $(tngweather_OBJECTS) $(tngweather_LDADD) $(LIBS)
 src/triggerschedule.$(OBJEXT): src/$(am__dirstamp) \
 	src/$(DEPDIR)/$(am__dirstamp)
@@ -1668,4 +1686,5 @@
 	-rm -f src/test.$(OBJEXT)
 	-rm -f src/time.$(OBJEXT)
+	-rm -f src/tngweather.$(OBJEXT)
 	-rm -f src/tools.$(OBJEXT)
 	-rm -f src/tools.lo
@@ -1793,4 +1812,5 @@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/test.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/time.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tngweather.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tools.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/triggerschedule.Po@am__quote@
Index: /trunk/FACT++/configure
===================================================================
--- /trunk/FACT++/configure	(revision 13867)
+++ /trunk/FACT++/configure	(revision 13868)
@@ -624,4 +624,6 @@
 HAS_GUI_FALSE
 HAS_GUI_TRUE
+HAS_SOPRANO_FALSE
+HAS_SOPRANO_TRUE
 HAS_NOVA_FALSE
 HAS_NOVA_TRUE
@@ -960,4 +962,7 @@
 with_qwt_include
 with_qwt_libdir
+with_soprano
+with_soprano_include
+with_soprano_libdir
 with_root
 with_rootsys
@@ -1726,4 +1731,8 @@
   --with-qwt-libdir=DIR        specify exact library dir for qwt library (e.g. libqwt-qt4)
   --without-qwt        disables qwt usage completely
+  --with-soprano=DIR	root directory of soprano installation
+  --with-soprano-include=DIR        specify exact include dir for soprano headers (e.g. Soprano/Soprano)
+  --with-soprano-libdir=DIR        specify exact library dir for soprano library (e.g. libsoprano)
+  --without-soprano        disables soprano usage completely
   --without-root          Disable root, i.e. disable gui support.
   --with-rootsys          path to the ROOT executables or top ROOT
@@ -23637,5 +23646,5 @@
 
 		cat > conftest.$ac_ext <<EOF
-#line 23639 "configure"
+#line 23648 "configure"
 #include "confdefs.h"
 #include <qglobal.h>
@@ -24069,4 +24078,137 @@
 
 
+
+
+# Check whether --with-soprano was given.
+if test "${with_soprano+set}" = set; then :
+  withval=$with_soprano; with_soprano=$withval
+if test "${with_soprano}" != yes; then
+	soprano_include="$withval/include"
+	soprano_libdir="$withval/lib"
+fi
+
+fi
+
+
+
+# Check whether --with-soprano-include was given.
+if test "${with_soprano_include+set}" = set; then :
+  withval=$with_soprano_include; soprano_include="$withval"
+fi
+
+
+
+# Check whether --with-soprano-libdir was given.
+if test "${with_soprano_libdir+set}" = set; then :
+  withval=$with_soprano_libdir; soprano_libdir="$withval"
+fi
+
+
+if test "${with_soprano}" != no ; then
+	OLD_LIBS=$LIBS
+	OLD_LDFLAGS=$LDFLAGS
+	OLD_CFLAGS=$CFLAGS
+	OLD_CPPFLAGS=$CPPFLAGS
+
+	if test "${soprano_libdir}" ; then
+		LDFLAGS="$LDFLAGS -L${soprano_libdir}"
+	fi
+	if test "${soprano_include}" ; then
+		CPPFLAGS="$CPPFLAGS -I${soprano_include}"
+		CFLAGS="$CFLAGS -I${soprano_include}"
+	fi
+
+	ac_fn_cxx_check_header_mongrel "$LINENO" "Soprano/Soprano" "ac_cv_header_Soprano_Soprano" "$ac_includes_default"
+if test "x$ac_cv_header_Soprano_Soprano" = xyes; then :
+
+else
+  no_good=yes
+fi
+
+
+
+        ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+
+
+
+
+
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Soprano::PluginManager::instance in -lsoprano" >&5
+$as_echo_n "checking for Soprano::PluginManager::instance in -lsoprano... " >&6; }
+if ${ac_cv_lib_soprano_Soprano__PluginManager__instance+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+   	ac_check_lib_save_LIBS=$LIBS
+   	LIBS="-lsoprano  $LIBS"
+   	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <Soprano/Soprano>
+int
+main ()
+{
+Soprano::PluginManager::instance
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+  ac_cv_lib_soprano_Soprano__PluginManager__instance=yes
+else
+  ac_cv_lib_soprano_Soprano__PluginManager__instance=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+   	LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_soprano_Soprano__PluginManager__instance" >&5
+$as_echo "$ac_cv_lib_soprano_Soprano__PluginManager__instance" >&6; }
+   	if test $ac_cv_lib_soprano_Soprano__PluginManager__instance = yes; then :
+
+
+           		cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOPRANO 1
+_ACEOF
+
+   			LIBS="-lsoprano $LIBS"
+
+
+else
+  no_good=yes
+fi
+
+
+
+        ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+
+	if test "$no_good" = yes; then
+		HAVE_SOPRANO=no
+
+		LIBS=$OLD_LIBS
+		LDFLAGS=$OLD_LDFLAGS
+		CPPFLAGS=$OLD_CPPFLAGS
+		CFLAGS=$OLD_CFLAGS
+	else
+		HAVE_SOPRANO=yes
+
+		$as_echo "#define HAVE_PKG_soprano 1" >>confdefs.h
+
+	fi
+
+fi
+
+
+
 ######################################################################
 # ROOT SUPPORT
@@ -24647,4 +24789,12 @@
   HAS_NOVA_TRUE='#'
   HAS_NOVA_FALSE=
+fi
+
+ if test "$HAVE_SOPRANO" = yes; then
+  HAS_SOPRANO_TRUE=
+  HAS_SOPRANO_FALSE='#'
+else
+  HAS_SOPRANO_TRUE='#'
+  HAS_SOPRANO_FALSE=
 fi
 
@@ -25046,4 +25196,8 @@
 if test -z "${HAS_NOVA_TRUE}" && test -z "${HAS_NOVA_FALSE}"; then
   as_fn_error $? "conditional \"HAS_NOVA\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${HAS_SOPRANO_TRUE}" && test -z "${HAS_SOPRANO_FALSE}"; then
+  as_fn_error $? "conditional \"HAS_SOPRANO\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
@@ -27534,4 +27688,6 @@
 { $as_echo "$as_me:${as_lineno-$LINENO}:  Qwt                    / qwt_plot.h         found: $HAVE_QWT" >&5
 $as_echo "$as_me:  Qwt                    / qwt_plot.h         found: $HAVE_QWT" >&6;}
+{ $as_echo "$as_me:${as_lineno-$LINENO}:  Soprano                / Soprano/Soprano    found: $HAVE_SOPRANO" >&5
+$as_echo "$as_me:  Soprano                / Soprano/Soprano    found: $HAVE_SOPRANO" >&6;}
 { $as_echo "$as_me:${as_lineno-$LINENO}:  cfitsio                / 'fitsio.h'         found: $HAVE_CFITSIO" >&5
 $as_echo "$as_me:  cfitsio                / 'fitsio.h'         found: $HAVE_CFITSIO" >&6;}
Index: /trunk/FACT++/configure.ac
===================================================================
--- /trunk/FACT++/configure.ac	(revision 13867)
+++ /trunk/FACT++/configure.ac	(revision 13868)
@@ -291,4 +291,6 @@
 AC_CHECK_CLASS(qwt, [QwtPlot qwt],   qwt-qt4,  qwt_plot.h,
 	HAVE_QWT=yes, HAVE_QWT=no)
+AC_CHECK_CLASS(soprano, Soprano::PluginManager::instance, soprano, Soprano/Soprano, 
+	HAVE_SOPRANO=yes, HAVE_SOPRANO=no)
 
 ######################################################################
@@ -374,4 +376,5 @@
 AM_CONDITIONAL(HAS_QWT,       [test "$HAVE_QWT" = yes])
 AM_CONDITIONAL(HAS_NOVA,      [test "$HAVE_NOVA" = yes])
+AM_CONDITIONAL(HAS_SOPRANO,   [test "$HAVE_SOPRANO" = yes])
 
 AM_CONDITIONAL(HAS_GUI,       [test "$QT4_VERSION" -a "$HAVE_GL" = yes -a "$HAVE_GLU" = yes -a "$HAVE_QGL" = yes -a "$HAVE_ROOT_QT" = yes ])
@@ -450,4 +453,5 @@
 AC_MSG_NOTICE([ QtOpenGL               / QtOpenGL/QGLWidget found: $HAVE_QGL])
 AC_MSG_NOTICE([ Qwt                    / qwt_plot.h         found: $HAVE_QWT])
+AC_MSG_NOTICE([ Soprano                / Soprano/Soprano    found: $HAVE_SOPRANO])
 AC_MSG_NOTICE([ cfitsio                / 'fitsio.h'         found: $HAVE_CFITSIO])
 AC_MSG_NOTICE([ CCfits                 / 'CCfits/CCfits'    found: $HAVE_CCFITS])
