diff --git a/.gitattributes b/.gitattributes index f77a22c999bae9230fcd84d49ee4005afa9fa588..ff1c1b6693aff4b8752e53528aa053b225f16e7d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -82,9 +82,20 @@ Appl/CEP/CS1/CS1_FrequencyFlagger/test/CS1_FlaggerFlagger.parset -text Appl/CEP/CS1/CS1_FrequencyFlagger/test/Makefile.am -text Appl/CEP/CS1/CS1_Tools/bootstrap -text Appl/CEP/CS1/CS1_Tools/src/cexec-udp-copy -text +Appl/CEP/CS1/CS1_pp_lib/CS1_IDPPP.spec.in -text +Appl/CEP/CS1/CS1_pp_lib/Makefile.am -text +Appl/CEP/CS1/CS1_pp_lib/bootstrap -text +Appl/CEP/CS1/CS1_pp_lib/configure.in -text +Appl/CEP/CS1/CS1_pp_lib/include/CS1_IDPPP/Makefile.am -text +Appl/CEP/CS1/CS1_pp_lib/include/CS1_IDPPP/PipelineProcessControl.h -text +Appl/CEP/CS1/CS1_pp_lib/include/Makefile.am -text +Appl/CEP/CS1/CS1_pp_lib/package.dox -text Appl/CEP/CS1/CS1_pp_lib/scripts/Create_DPPP_Config.py -text Appl/CEP/CS1/CS1_pp_lib/scripts/GuessDataset.py -text Appl/CEP/CS1/CS1_pp_lib/scripts/LOFAR_Parset.py -text +Appl/CEP/CS1/CS1_pp_lib/src/Makefile.am -text +Appl/CEP/CS1/CS1_pp_lib/src/Pipeline.cc -text +Appl/CEP/CS1/CS1_pp_lib/src/PipelineProcessControl.cc -text Appl/USG/VHECR/bootstrap -text Appl/USG/VHECR/src/2008-01-24_TRIGGER.dat -text CEP/BB/BBSKernel/test/tParmMerge.in_mep1/DEFAULTVALUES/table.dat -text svneol=unset#unset diff --git a/Appl/CEP/CS1/CS1_pp_lib/CS1_IDPPP.spec.in b/Appl/CEP/CS1/CS1_pp_lib/CS1_IDPPP.spec.in new file mode 100644 index 0000000000000000000000000000000000000000..2a085a5c3e195e3123435068bf7b0c99d7dc14fc --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/CS1_IDPPP.spec.in @@ -0,0 +1,160 @@ +# -*- Mode:rpm-spec -*- +# CS1_IDPPP.spec.in +# + +############################################################################## +# +# Preamble +# +############################################################################## + +Summary: CS1_IDPPP is a program to do processing for the offline pipeline of CS1 + +%define release @RPM_RELEASE@ +%define version @VERSION@ +%define pkgname @PACKAGE@ +%define pkgdir %{pkgname}-%{version}-%{release} +%define prefix /opt/lofar +%define configure_args @RPM_CONFIGURE_ARGS@ +##define build_kernel_version @BUILD_KERNEL_VERSION@ + +Name: %{pkgname} +Version: %{version} +Release: %{release} +Copyright: LGPL +Group: Application/System +Source: %{pkgname}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{pkgdir}-root +URL: http://www.astron.nl/~renting +Prefix: %{prefix} +BuildArchitectures: i386 # Target platforms, i.e., i586 +##Requires: Common = 1.2 ## define dependent packages here +Packager: %{packager} +Distribution: The LOFAR project +Vendor: ASTRON + +AutoReqProv: no + +%description + +CS1_IDPPP More detailed desciprion will follow. + +############################################################################## +# +# prep +# +############################################################################## +%prep +echo $prefix + +# create the build directory, untar the source +%setup + +############################################################################## +# +# build +# +############################################################################## +%build +./configure %{configure_args} --prefix=%{prefix} && make + +############################################################################## +# +# install +# +############################################################################## +%install +# To make things work with BUILDROOT +if [ "$RPM_BUILD_ROOT" != "%{_tmppath}/%{pkgdir}-root" ] +then + echo + echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + echo @ @ + echo @ RPM_BUILD_ROOT is not what I expected. Please clean it yourself. @ + echo @ @ + echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + echo +else + echo Cleaning RPM_BUILD_ROOT: "$RPM_BUILD_ROOT" + rm -rf "$RPM_BUILD_ROOT" +fi +mkdir -p $RPM_BUILD_ROOT%{prefix} +make DESTDIR="$RPM_BUILD_ROOT" install + +#uninstall + +############################################################################## +# +# verify +# +############################################################################## +#verify + +############################################################################## +# +# clean +# +############################################################################## +%clean +# Call me paranoid, but I do not want to be responsible for nuking +# someone's harddrive! +if [ "$RPM_BUILD_ROOT" != "%{_tmppath}/%{pkgdir}-root" ] +then + echo + echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + echo @ @ + echo @ RPM_BUILD_ROOT is not what I expected. Please clean it yourself. @ + echo @ @ + echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + echo +else + echo Cleaning RPM_BUILD_ROOT: "$RPM_BUILD_ROOT" + rm -rf "$RPM_BUILD_ROOT" +fi + +############################################################################## +# +# files +# +############################################################################## + +# empty 'files' means all distributed files +%files +%defattr(-, root, root) +%{prefix} + +# Your application file list goes here +# %{prefix}/lib/lib*.so* + +# Documentation +# doc COPYING ChangeLog README AUTHORS NEWS +# doc doc/* + +# link the module to the correct path +%post + +# before uninstall +%preun + +# after uninstall +%postun + +############################################################################## +# +# package devel +# +############################################################################## + +#package devel +#Summary: Development files for %{pkgname} +#Group: Applications/System +#description devel +#Development files for %{pkgname}. + +#files devel + +# Your development files go here +# Programmers documentation goes here +#doc doc + +# end of file diff --git a/Appl/CEP/CS1/CS1_pp_lib/Makefile.am b/Appl/CEP/CS1/CS1_pp_lib/Makefile.am new file mode 100644 index 0000000000000000000000000000000000000000..5baf025f3c5eec14bf5f2480af1d3153a4876125 --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/Makefile.am @@ -0,0 +1,15 @@ +SUBDIRS=src test include + +pkgextdir = $(prefix)/config/$(PACKAGE) +pkgext_DATA = pkgext pkgextcppflags pkgextcxxflags pkgextldflags + +DISTCHECK_CONFIGURE_FLAGS= \ + --with-common=$(prefix) \ + --with-aips++ + +EXTRA_DIST = \ + Makefile.common \ + CS1_IDPPP.spec \ + autoconf_share/compiletool + +include $(top_srcdir)/Makefile.common diff --git a/Appl/CEP/CS1/CS1_pp_lib/bootstrap b/Appl/CEP/CS1/CS1_pp_lib/bootstrap new file mode 100755 index 0000000000000000000000000000000000000000..7f674c416802db5e7c438f093a99e63f63c784aa --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/bootstrap @@ -0,0 +1,3 @@ +#!/bin/sh + +../../../../autoconf_share/bootstrap ../../../../autoconf_share diff --git a/Appl/CEP/CS1/CS1_pp_lib/configure.in b/Appl/CEP/CS1/CS1_pp_lib/configure.in new file mode 100644 index 0000000000000000000000000000000000000000..0d8ee5b16cef64149c669c5bc5a16504f0029dba --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/configure.in @@ -0,0 +1,60 @@ +dnl +dnl Process this file with autoconf to produce a configure script. +dnl +AC_INIT +AM_CONFIG_HEADER(config.h) +AM_INIT_AUTOMAKE(CS1_IDPPP, 1.0, no-define) + +dnl Initialize for LOFAR (may set compilers) +lofar_INIT + +dnl Checks for programs. +AC_LANG_CPLUSPLUS +AC_PROG_CXX +AC_PROG_LIBTOOL + +dnl Checks for libraries. + +dnl dnl Replace `main' with a function in -lfl: +dnl AC_CHECK_LIB(fl, main) +dnl dnl Replace `main' with a function in -lcosev_r: +dnl AC_CHECK_LIB(cosev_r, main) +dnl dnl Replace `main' with a function in -lcosnm_r: +dnl AC_CHECK_LIB(cosnm_r, main) +dnl dnl Replace `main' with a function in -lorb_r: +dnl AC_CHECK_LIB(orb_r, main) +dnl dnl Replace `main' with a function in -lpthread: +dnl AC_CHECK_LIB(pthread, main) +dnl dnl Replace `main' with a function in -lvport_r: +dnl AC_CHECK_LIB(vport_r, main) + +dnl Checks for header files. +AC_HEADER_STDC +AC_CHECK_HEADERS(unistd.h) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_TYPE_SIZE_T + +dnl Checks for library functions. +AC_FUNC_VPRINTF + +dnl +dnl Check for LOFAR specific things +dnl +lofar_GENERAL(1) +lofar_AIPSPP(1) +lofar_INTERNAL(LCS/ACC/PLC,PLC,,1,PLC/ProcessControl.h) +lofar_INTERNAL(LCS/ACC/APS,APS,,1,APS/ParameterSet.h) + +dnl +dnl Output Makefiles +dnl +AC_OUTPUT( +include/Makefile +include/CS1_IDPPP/Makefile +src/Makefile +test/Makefile +Makefile +CS1_IDPPP.spec +) diff --git a/Appl/CEP/CS1/CS1_pp_lib/include/CS1_IDPPP/Makefile.am b/Appl/CEP/CS1/CS1_pp_lib/include/CS1_IDPPP/Makefile.am new file mode 100644 index 0000000000000000000000000000000000000000..c471295b641131a59eb6c391bf251dde20a8b565 --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/include/CS1_IDPPP/Makefile.am @@ -0,0 +1,3 @@ +pkginclude_HEADERS = FlaggerProcessControl.h + +include $(top_srcdir)/Makefile.common diff --git a/Appl/CEP/CS1/CS1_pp_lib/include/CS1_IDPPP/PipelineProcessControl.h b/Appl/CEP/CS1/CS1_pp_lib/include/CS1_IDPPP/PipelineProcessControl.h new file mode 100644 index 0000000000000000000000000000000000000000..d7d2821ed25e0a3aa5c92bbe3e8bbb0ba9b7af15 --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/include/CS1_IDPPP/PipelineProcessControl.h @@ -0,0 +1,92 @@ +/*************************************************************************** + * Copyright (C) 2006-8 by Adriaan Renting and ASTRON/LOFAR * + * renting@astron.nl * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ +#ifndef LOFARPIPELINEPROCESSCONTROL_H +#define LOFARPIPELINEPROCESSCONTROL_H + +#include <PLC/ProcessControl.h> +#include <APS/ParameterSet.h> + +/** +@author Adriaan Renting +*/ +//namespace WSRT +//{ +// class MS_File; //foreward declaration +// class ComplexMedianFlagger; +//} //namespace WSRT + +namespace LOFAR +{ + namespace CS1 + { + class PipelineProcessControl : public LOFAR::ACC::PLC::ProcessControl + { + private: + std::string itsMS; +// bool itsFlagData; +// bool itsFlagRMS; +// bool itsExisting; +// int itsWindow; +// bool itsCrosspol; +// double itsMin; +// double itsMax; +// WSRT::MS_File* myMS; +// WSRT::ComplexMedianFlagger* itsFlagger; + public: + PipelineProcessControl(void); + + ~PipelineProcessControl(void); + // \name Command to control the processes. + // There are a dozen commands that can be sent to a application process + // to control its flow. The return values for these command are:<br> + // - True - Command executed succesfully. + // - False - Command could not be executed. + // + // @{ + + // During the \c define state the process check the contents of the + // ParameterSet it received during start-up. When everthing seems ok the + // process constructs the communication channels for exchanging data + // with the other processes. The connection are NOT made in the stage. + tribool define (void); + + // When a process receives an \c init command it allocates the buffers it + // needs an makes the connections with the other processes. When the + // process succeeds in this it is ready for dataprocessing (or whatever + // task the process has). + tribool init (void); + + // During the \c run phase the process does the work it is designed for. + // The run phase stays active until another command is send. + tribool run (void); + + tribool pause(const std::string&); + tribool release(void); + tribool quit(void); + tribool recover(const std::string&); + tribool reinit(const std::string&); + tribool snapshot(const std::string&); + std::string askInfo(const std::string&); + + }; //class PipelineProcessControl + } //namespace CS1 +}; //namespace LOFAR + +#endif diff --git a/Appl/CEP/CS1/CS1_pp_lib/include/Makefile.am b/Appl/CEP/CS1/CS1_pp_lib/include/Makefile.am new file mode 100644 index 0000000000000000000000000000000000000000..ae4f33b4cbcd46b37f110784766f7ead69c7e5c7 --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/include/Makefile.am @@ -0,0 +1,3 @@ +SUBDIRS = CS1_IDPPP + +include $(top_srcdir)/Makefile.common diff --git a/Appl/CEP/CS1/CS1_pp_lib/package.dox b/Appl/CEP/CS1/CS1_pp_lib/package.dox new file mode 100644 index 0000000000000000000000000000000000000000..cba3303aaf26eea64aabd389054afcd9c279be9d --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/package.dox @@ -0,0 +1,2 @@ +// \ingroup CS1 +// \defgroup CS1_IDPPP CS1_IDPPP Description diff --git a/Appl/CEP/CS1/CS1_pp_lib/src/Makefile.am b/Appl/CEP/CS1/CS1_pp_lib/src/Makefile.am new file mode 100644 index 0000000000000000000000000000000000000000..2ff10b80d505949454a6713b25f98d89f07ce823 --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/src/Makefile.am @@ -0,0 +1,12 @@ +bin_PROGRAMS = CS1_IDPPP + +CS1_IDPPP_SOURCES = Pipeline.cc \ + FlaggerStatistics.cc \ + FlaggerStatistics.h \ + MS_Info.cc \ + MS_Info.h \ + FlaggerProcessControl.cc +CS1_IDPPP_LDADD = +CS1_IDPPP_DEPENDENCIES = $(LOFAR_DEPEND) + +include $(top_srcdir)/Makefile.common diff --git a/Appl/CEP/CS1/CS1_pp_lib/src/Pipeline.cc b/Appl/CEP/CS1/CS1_pp_lib/src/Pipeline.cc new file mode 100644 index 0000000000000000000000000000000000000000..a1280bdbb42863ea5c00848bc4b17c06c7f653c9 --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/src/Pipeline.cc @@ -0,0 +1,48 @@ +/*************************************************************************** + * Copyright (C) 2006-8 by ASTRON/LOFAR, Adriaan Renting * + * renting@astron.nl * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif +#include <libgen.h> +#include <PLC/ACCmain.h> +#include <casa/Exceptions.h> +#include <CS1_IDPPP/PipelineProcessControl.h> + +int main(int argc, char *argv[]) +{ + try + { + INIT_LOGGER(basename(argv[0])); + LOFAR::CS1::PipelineProcessControl myProcess; + return LOFAR::ACC::PLC::ACCmain(argc, argv, &myProcess); + } //try + catch(casa::AipsError& err) + { + std::cerr << "Aips++ error detected: " << err.getMesg() << std::endl; + return -2; + } + catch(...) + { + std::cerr << "** PROBLEM **: Unhandled exception caught." << std::endl; + return -3; + } +} diff --git a/Appl/CEP/CS1/CS1_pp_lib/src/PipelineProcessControl.cc b/Appl/CEP/CS1/CS1_pp_lib/src/PipelineProcessControl.cc new file mode 100644 index 0000000000000000000000000000000000000000..4f75056938bc9b415628b0afa46b584f6b9886b6 --- /dev/null +++ b/Appl/CEP/CS1/CS1_pp_lib/src/PipelineProcessControl.cc @@ -0,0 +1,161 @@ +/*************************************************************************** + * Copyright (C) 2006-8 by ASTRON/LOFAR, Adriaan Renting * + * renting@astron.nl * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + ***************************************************************************/ + +#include <iostream> +#include <cstdlib> +#include <iostream> +#include <casa/Inputs/Input.h> +#include <ms/MeasurementSets.h> + +#include <CS1_IDPPP/PipelineProcessControl.h> +//#include "MS_File.h" +//#include "ComplexMedianPipeline.h" + +#define PIPELINE_VERSION "0.10" + +namespace LOFAR +{ + namespace CS1 + { + //===============>>> PipelineProcessControl::PipelineProcessControl <<<=============== + PipelineProcessControl::PipelineProcessControl() + : ProcessControl() + { + myMS = NULL; + itsPipeline = NULL; + } + + //===============>>> PipelineProcessControl::~PipelineProcessControl <<<============== + PipelineProcessControl::~PipelineProcessControl() + { + if (myMS) + { delete myMS; + } + if (itsPipeline) + { delete itsPipeline; + } + } + + //===============>>> PipelineProcessControl::define <<<============================== + tribool PipelineProcessControl::define() + { + LOFAR::ACC::APS::ParameterSet* ParamSet = LOFAR::ACC::APS::globalParameterSet(); + itsMS = ParamSet->getString("ms"); +// itsFlagData = ParamSet->getBool("flagdata"); +// itsFlagRMS = ParamSet->getBool("flagrms"); +// itsExisting = ParamSet->getBool("existing"); +// itsWindow = ParamSet->getInt32("window"); +// itsCrosspol = ParamSet->getBool("crosspol"); +// itsMin = ParamSet->getDouble("min"); +// itsMax = ParamSet->getDouble("max"); + return true; + } + + //===============>>> PipelineProcessControl::run <<<================================= + tribool PipelineProcessControl::run() + { + try{ + std::cout << "Runnning pipeline please wait..." << std::endl; +// itsPipeline->FlagDataOrBaselines(itsFlagData, +// itsFlagRMS, +// itsExisting); + } + catch(casa::AipsError& err) + { + std::cerr << "Aips++ error detected: " << err.getMesg() << std::endl; + return false; + } + return true; + } + + //===============>>> PipelineProcessControl::init <<<================================ + tribool PipelineProcessControl::init() + { + try { + using std::cout; + using std::cerr; + using std::endl; + + cout << string(PIPELINE_VERSION) + string(" Integrated Data Post Processing Pipeline by Adriaan Renting and others for LOFAR CS1 data\n") + + string("This is experimental software, please report errors or requests to renting@astron.nl\n") + + string("Documentation can be found at: www.lofar.org/operations\n"); + cout << itsMS << endl; +// myMS = new WSRT::MS_File(itsMS); +// itsPipeline = new WSRT::ComplexMedianPipeline (myMS, +// itsWindow, +// itsCrosspol, +// itsMin, +// itsMax); + } + catch(casa::AipsError& err) + { + std::cerr << "Aips++ error detected: " << err.getMesg() << std::endl; + return false; + } + return true; + } + + //===============>>> PipelineProcessControl::pause <<<=============================== + tribool PipelineProcessControl::pause(const std::string&) + { return false; + } + + //===============>>> PipelineProcessControl::quit <<<================================ + tribool PipelineProcessControl::quit() + { + if (myMS) + { + delete myMS; + myMS = NULL; + } + if (itsPipeline) + { + delete itsPipeline; + itsPipeline = NULL; + } + return true; + } + + //===============>>> PipelineProcessControl::release <<<============================= + tribool PipelineProcessControl::release() + { return false; + } + + //===============>>> PipelineProcessControl::recover <<<============================= + tribool PipelineProcessControl::recover(const std::string&) + { return false; + } + + //===============>>> PipelineProcessControl::reinit <<<============================== + tribool PipelineProcessControl::reinit(const std::string&) + { return false; + } + + //===============>>> PipelineProcessControl::askInfo <<<============================= + std::string PipelineProcessControl::askInfo(const std::string&) + { return std::string(""); + } + + //===============>>> PipelineProcessControl::snapshot <<<============================ + tribool PipelineProcessControl::snapshot(const std::string&) + { return false; + } + } //namespace CS1 +}; //namespace LOFAR