diff --git a/.gitattributes b/.gitattributes index b2b797e2f3b7e81790d6a195f69ce6564e8c4c34..a6704427e179a4a1242521252c7cd1d8addc530e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2142,7 +2142,6 @@ LCS/AMC/AMCImpl/src/AMCServer.cc -text LCS/AMC/amc_main_classes.png -text LCS/AMC/amc_package.png -text LCS/ApplCommon/include/ApplCommon/StationDatatypes.h -text -LCS/ApplCommon/src/PosixTime.cc -text LCS/ApplCommon/src/StationDatatypes.cc -text LCS/ApplCommon/test/tAntField.in_de -text LCS/ApplCommon/test/tAntField.in_rs -text @@ -3345,6 +3344,7 @@ MAC/Navigator2/scripts/monitorStateReset.ctl -text MAC/Navigator2/scripts/monitorStationAlarms.ctl -text MAC/Navigator2/scripts/readStationBGPconnections.ctl -text MAC/Navigator2/scripts/readStationConfigs.ctl -text +MAC/Navigator2/scripts/transferMPs.ctl -text MAC/Test/APL/PVSSproject/colorDB/Lofar[!!-~]colors -text svneol=native#application/octet-stream MAC/Test/APL/PVSSproject/colorDB/colorDB_de -text svneol=native#application/octet-stream MAC/Test/APL/PVSSproject/config/config -text svneol=native#application/octet-stream diff --git a/.subversion/config b/.subversion/config index b7f6f49ab1c76afa7d0d352a43ebe45f16763000..0812a72b3c6ce9fbb316ebb838bc54fee336b3d1 100644 --- a/.subversion/config +++ b/.subversion/config @@ -5,22 +5,37 @@ ### Section for authentication and authorization customizations. [auth] -### Set store-passwords to 'no' to avoid storing passwords in the -### auth/ area of your config directory. It defaults to 'yes'. -### Note that this option only prevents saving of *new* passwords; -### it doesn't invalidate existing passwords. (To do that, remove -### the cache files by hand as described in the Subversion book.) +### Set password stores used by Subversion. They should be +### delimited by spaces or commas. The order of values determines +### the order in which password stores are used. +### Valid password stores: +### gnome-keyring (Unix-like systems) +### kwallet (Unix-like systems) +### keychain (Mac OS X) +### windows-cryptoapi (Windows) +password-stores = gnome-keyring,kwallet +### To disable all password stores, use an empty list: +# password-stores = +### +### Set KWallet wallet used by Subversion. If empty or unset, +### then the default network wallet will be used. +# kwallet-wallet = +### +### Include PID (Process ID) in Subversion application name when +### using KWallet. It defaults to 'no'. +# kwallet-svn-application-name-with-pid = yes +### +### The rest of the [auth] section in this file has been deprecated. +### Both 'store-passwords' and 'store-auth-creds' can now be +### specified in the 'servers' file in your config directory +### and are documented there. Anything specified in this section +### is overridden by settings specified in the 'servers' file. # store-passwords = no -### Set store-auth-creds to 'no' to avoid storing any subversion -### credentials in the auth/ area of your config directory. -### It defaults to 'yes'. Note that this option only prevents -### saving of *new* credentials; it doesn't invalidate existing -### caches. (To do that, remove the cache files by hand.) # store-auth-creds = no ### Section for configuring external helper applications. [helpers] -### Set editor to the command used to invoke your text editor. +### Set editor-cmd to the command used to invoke your text editor. ### This will override the environment variables that Subversion ### examines by default to find this information ($EDITOR, ### et al). @@ -29,13 +44,21 @@ ### This will override the compile-time default, which is to use ### Subversion's internal diff implementation. # diff-cmd = diff_program (diff, gdiff, etc.) +### Diff-extensions are arguments passed to an external diff +### program or to Subversion's internal diff implementation. +### Set diff-extensions to override the default arguments ('-u'). +# diff-extensions = -u -p ### Set diff3-cmd to the absolute path of your 'diff3' program. ### This will override the compile-time default, which is to use ### Subversion's internal diff3 implementation. # diff3-cmd = diff3_program (diff3, gdiff3, etc.) -### Set diff3-has-program-arg to 'true' or 'yes' if your 'diff3' -### program accepts the '--diff-program' option. -# diff3-has-program-arg = [true | false] +### Set diff3-has-program-arg to 'yes' if your 'diff3' program +### accepts the '--diff-program' option. +# diff3-has-program-arg = [yes | no] +### Set merge-tool-cmd to the command used to invoke your external +### merging tool of choice. Subversion will pass 5 arguments to +### the specified command: base theirs mine merged wcfile +# merge-tool-cmd = merge_command ### Section for configuring tunnel agents. [tunnels] @@ -52,7 +75,7 @@ ### passed to the tunnel agent as <user>@<hostname>.) If the ### built-in ssh scheme were not predefined, it could be defined ### as: -# ssh = $SVN_SSH ssh +# ssh = $SVN_SSH ssh -q -o ControlMaster=no ### If you wanted to define a new 'rsh' scheme, to be used with ### 'svn+rsh:' URLs, you could do so as follows: # rsh = rsh @@ -66,14 +89,11 @@ ### Section for configuring miscelleneous Subversion options. [miscellany] ### Set global-ignores to a set of whitespace-delimited globs -### which Subversion will ignore in its 'status' output. -global-ignores = *~ *.log *.private *.result *.tmp installed \ - aclocal.m4 autom4te.cache boot.md5 boot.md5-check \ - build config.guess config.h.in config.sub configure \ - depcomp install-sh libtool.m4 ltmain.sh lt~obsolete.m4 \ - ltoptions.m4 ltsugar.m4 ltversion.m4 Makefile.in missing \ - *.pyc - +### which Subversion will ignore in its 'status' output, and +### while importing or adding files and directories. +### '*' matches leading dots, e.g. '*.rej' matches '.foo.rej'. +# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo +# *.rej *~ #*# .#* .*.swp .DS_Store ### Set log-encoding to the default encoding for log messages # log-encoding = latin1 ### Set use-commit-times to make checkout/update/switch/revert @@ -82,19 +102,37 @@ global-ignores = *~ *.log *.private *.result *.tmp installed \ ### Set no-unlock to prevent 'svn commit' from automatically ### releasing locks on files. # no-unlock = yes +### Set mime-types-file to a MIME type registry file, used to +### provide hints to Subversion's MIME type auto-detection +### algorithm. +# mime-types-file = /path/to/mime.types +### Set preserved-conflict-file-exts to a whitespace-delimited +### list of patterns matching file extensions which should be +### preserved in generated conflict file names. By default, +### conflict files use custom extensions. +# preserved-conflict-file-exts = doc ppt xls od? ### Set enable-auto-props to 'yes' to enable automatic properties ### for 'svn add' and 'svn import', it defaults to 'no'. ### Automatic properties are defined in the section 'auto-props'. -enable-auto-props = yes +# enable-auto-props = yes +### Set interactive-conflicts to 'no' to disable interactive +### conflict resolution prompting. It defaults to 'yes'. +# interactive-conflicts = no +### Set memory-cache-size to define the size of the memory cache +### used by the client when accessing a FSFS repository via +### ra_local (the file:// scheme). The value represents the number +### of MB used by the cache. +# memory-cache-size = 16 ### Section for configuring automatic properties. [auto-props] ### The format of the entries is: ### file-name-pattern = propname[=value][;propname[=value]...] ### The file-name-pattern can contain wildcards (such as '*' and -### '?'). All entries which match will be applied to the file. -### Note that auto-props functionality must be enabled, which -### is typically done by setting the 'enable-auto-props' option. +### '?'). All entries which match (case-insensitively) will be +### applied to the file. Note that auto-props functionality +### must be enabled, which is typically done by setting the +### 'enable-auto-props' option. *.am = svn:eol-style=native;svn:keywords=Author Date Id Revision *.bat = svn:eol-style=CRLF;svn:keywords=Author Date Id Revision *.bib = svn:eol-style=native diff --git a/CMake/FindPVSS.cmake b/CMake/FindPVSS.cmake index d85eee3719f1addeb6c214f616888f9f53f7fdf3..da4b64c8fb7251813e65c65f3db11aff2a9f6b44 100644 --- a/CMake/FindPVSS.cmake +++ b/CMake/FindPVSS.cmake @@ -72,25 +72,21 @@ if(NOT PVSS_FOUND) # Use hard-coded value if version information file cannot be found. find_file(PVSS_VERSINFO_MK NAMES VersInfo.mk - HINTS ${PVSS_PROJ_DIR}) + HINTS ${PVSS_ROOT_DIR} + PATH_SUFFIXES api) mark_as_advanced(PVSS_VERSINFO_MK) if(NOT PVSS_VERSINFO_MK) set(pvss_version "V37_304") - set(PVSS_ROOT_DIR "/opt/pvss/pvss2_v3.7") else() file(STRINGS ${PVSS_VERSINFO_MK} match REGEX "^PVSS_VERSION_MAIN") string(REGEX REPLACE "^.*= *([^ ]+)$" "\\1" pvss_version_main ${match}) file(STRINGS ${PVSS_VERSINFO_MK} match REGEX "^PVSS_VERSION_BUILD") string(REGEX REPLACE "^.*= *([^ ]+)$" "\\1" pvss_version_build ${match}) - file(STRINGS ${PVSS_VERSINFO_MK} match REGEX "^PVSS_ROOT_DIR") - string(REGEX REPLACE "^.*= *([^ ]+)$" "\\1" pvss_root_dir ${match}) set(pvss_version "V${pvss_version_main}_${pvss_version_build}") - - file(STRINGS ${PVSS_VERSINFO_MK} match REGEX "^PVSS_ROOT_DIR") - string(REGEX REPLACE "^.*= *([^ ]+)$" "\\1" pvss_root ${match}) - set(PVSS_ROOT_DIR "${pvss_root}") endif(NOT PVSS_VERSINFO_MK) + message(STATUS "Searching for PVSS ${pvss_version}") + # Search for the PVSS include directory find_path(PVSS_INCLUDE_DIR NAMES Basics/Utilities/Util.hxx @@ -105,7 +101,7 @@ if(NOT PVSS_FOUND) find_library(PVSS_${lib}_LIBRARY NAMES ${lib}${pvss_version} HINTS ${PVSS_ROOT_DIR} - PATH_SUFFIXES api/lib.${osname}) + PATH_SUFFIXES api/lib.${osname} bin) list(APPEND pvss_check_list PVSS_${lib}_LIBRARY) endforeach(lib Manager Messages Datapoint Basics bcm) diff --git a/CMake/LofarGeneral.cmake b/CMake/LofarGeneral.cmake index b72c4c4e76ce66a28b3526673926b4186671b401..8b3d76537acbfd9eee7277da09d7409bb386e6a5 100644 --- a/CMake/LofarGeneral.cmake +++ b/CMake/LofarGeneral.cmake @@ -126,6 +126,18 @@ if(NOT DEFINED LOFAR_GENERAL_INCLUDED) }" HAVE_GETPROTOBYNAME_R) endif(HAVE_NETDB_H) + ## -------------------------------------------------------------------------- + ## Define `STRNLEN', if the strnlen() function exists. + ## -------------------------------------------------------------------------- + check_c_source_compiles(" + #include <string.h> + #include <stdio.h> + int main() { + char *s = \"test\"; + int i = 3; + unsigned l = strnlen(s,i); + }" HAVE_STRNLEN) + ## -------------------------------------------------------------------------- ## Define custom target 'check', so that we can do 'make check', like we did ## with the GNU Autotools. Tests should be added with lofar_add_test(). diff --git a/CMake/TODO b/CMake/TODO index c1966dd2b442a31b139d021f4374bee9a4b962fe..b6019b07c7304971e63bd297fa73cec3823adb45 100644 --- a/CMake/TODO +++ b/CMake/TODO @@ -3,6 +3,12 @@ = TODO - List of things to do = ============================================================================== +* When not configuring explicitly for PyBDSM, a warning is printed that the + Fortran compiler could not be determined, which may cause trouble later on. + PyBDSM builds without problems, though. Probable cause: the Fortran + language is added too late to the CMake project, i.e. only after F2Py + searches for a suitable Fortran compiler. + * Python byte-code compilation fails during install when using DESTDIR option to specify a different install directory. @@ -26,14 +32,6 @@ 2) For every target, the library prefix must be cleared and an (additional) install directory -- python/site-packages -- must be added. -* Use something like set_if_not_set() in the variants files for non-cached - CMake variables. Contrary to options, which are just cached variables of - type bool, non-cached variables will be overwritten. So, in fact, for - non-cached variables the include-order of variants file should be exactly - the opposite of the order for cached variables. The proper way to solve - this, IMO, is to use something like set_if_not_set(), which will only set a - non-cached variable when it has not already been set. - * Switch from FindPthread to FindThreads, which is the "standard" CMake module to use (and it also used by FindBLAS and FindLAPACK). Unfortunately, the variables that FindThreads sets are completely non-standard, so we may diff --git a/CMake/variants/BGPCN.cmake b/CMake/variants/BGPCN.cmake index 62330b11285c1e999a96bcb293a6be8ae9106ab8..1a007a642db493e5bda460ec83519587c856ef1d 100644 --- a/CMake/variants/BGPCN.cmake +++ b/CMake/variants/BGPCN.cmake @@ -10,6 +10,7 @@ set(LOFAR_BUILD_VARIANTS DEBUG OPT) # Options option(BUILD_STATIC_EXECUTABLES "Build static executables" ON) +option(BUILD_SHARED_LIBS "Build shared libraries" OFF) option(USE_BACKTRACE "Use backtrace" ON) option(USE_LOG4CPLUS "Use log4cplus" OFF) option(USE_SHMEM "Use shmem" OFF) diff --git a/CMake/variants/variants b/CMake/variants/variants index 6910205634b051f9c1e44a482642bd8f90926980..818a6a35ab83ba6df329ac7eac236f9bd816b69d 100644 --- a/CMake/variants/variants +++ b/CMake/variants/variants @@ -22,7 +22,7 @@ set_if_not_set(LOFAR_SEARCH_PATH # NOT IMPLEMENTED YET: These options may be overridden for a given compiler # suite. For example: option(USE_BOOST_GNU "Use Boost for GNU" OFF) option(BUILD_DOCUMENTATION "Build code documentation" OFF) -option(BUILD_SHARED_LIBS "Build shared libraries" OFF) +option(BUILD_SHARED_LIBS "Build shared libraries" ON) option(BUILD_STATIC_EXECUTABLES "Build static executables" OFF) option(BUILD_TESTING "Build the testing tree" ON) option(LOFAR_VERBOSE_CONFIGURE "Be verbose when configuring" ON) diff --git a/CMake/variants/variants.RS005C b/CMake/variants/variants.RS005C index 2fb3ca3b231ba6d8a6861d380307be03647505e1..07b2fa35cef162b44bb0ef5b20a6c48c1dbc9fa1 100644 --- a/CMake/variants/variants.RS005C +++ b/CMake/variants/variants.RS005C @@ -11,7 +11,7 @@ set(CPPLAPACK_ROOT_DIR /usr) set(LOG4CPLUS_ROOT_DIR /usr/local/log4cplus) # Path to PVSS -set(PVSS_PROJ_DIR /opt/pvss/pvssproj) +set(PVSS_ROOT_DIR /opt/WinCC_OA/3.10) set(PVSS_DEFINITIONS "-Wno-deprecated") # Path to Matlab diff --git a/CMake/variants/variants.dop131 b/CMake/variants/variants.dop131 index c62db6ec07951e328fd392c6bc0b6b9c8232d35d..4a466bc69b697581e3ce49fb9d0480ddea36873a 100644 --- a/CMake/variants/variants.dop131 +++ b/CMake/variants/variants.dop131 @@ -1,3 +1,2 @@ -option(BUILD_SHARED_LIBS "Build shared libraries" ON) #set(CASACORE_ROOT_DIR /opt/lofar/external/casacore) set(ENV{JAVA_HOME} /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0) diff --git a/CMake/variants/variants.kis001 b/CMake/variants/variants.kis001 index bb3f6b1974c6aa945c17b7f3cb2ed4dba4b8b7d6..13d9387ba28c6956cbe3a313173695d1eed50f5e 100644 --- a/CMake/variants/variants.kis001 +++ b/CMake/variants/variants.kis001 @@ -1,7 +1,6 @@ set(ENV{JAVA_HOME} /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0) #set(PVSS_ROOT_DIR /opt/pvss/pvss2_v3.7) -#set(PVSS_ROOT_DIR /opt/WinCC_OA/3.10) -set(PVSS_PROJ_DIR /opt/pvss/pvssproj) +set(PVSS_ROOT_DIR /opt/WinCC_OA/3.10) set(PVSS_DEFINITIONS "-Wno-deprecated") set(LOG4CPLUS_ROOT_DIR "/usr/local/log4cplus") diff --git a/CMake/variants/variants.lce072 b/CMake/variants/variants.lce072 index ccc44214f64da8c438048ba78bd35ec0fa4466de..f203bc5dd0409bdd3c64b22f3c418f6a2d4b105c 100644 --- a/CMake/variants/variants.lce072 +++ b/CMake/variants/variants.lce072 @@ -1,5 +1,3 @@ -option(BUILD_SHARED_LIBS "Build shared libraries" ON) - set(CASACORE_ROOT_DIR /opt/cep/LofIm/daily/casacore) set(CASAREST_ROOT_DIR /opt/cep/LofIm/daily/casarest) set(LDA_ROOT_DIR /opt/cep/lda) diff --git a/CMake/variants/variants.lfe001 b/CMake/variants/variants.lfe001 index 2bf1ea99e27ec8d83f6efed367896d69f09b17d4..b72d84db644a764f932c92f9f744e0cd00792729 100644 --- a/CMake/variants/variants.lfe001 +++ b/CMake/variants/variants.lfe001 @@ -1,5 +1,3 @@ -option(BUILD_SHARED_LIBS "Build shared libraries" ON) - set(CASACORE_ROOT_DIR /opt/cep/casacore) set(CASAREST_ROOT_DIR /opt/cep/casarest) set(LDA_ROOT_DIR /opt/cep/lda) diff --git a/CMake/variants/variants.lfe002 b/CMake/variants/variants.lfe002 index 2bf1ea99e27ec8d83f6efed367896d69f09b17d4..b72d84db644a764f932c92f9f744e0cd00792729 100644 --- a/CMake/variants/variants.lfe002 +++ b/CMake/variants/variants.lfe002 @@ -1,5 +1,3 @@ -option(BUILD_SHARED_LIBS "Build shared libraries" ON) - set(CASACORE_ROOT_DIR /opt/cep/casacore) set(CASAREST_ROOT_DIR /opt/cep/casarest) set(LDA_ROOT_DIR /opt/cep/lda) diff --git a/CMake/variants/variants.lhn001 b/CMake/variants/variants.lhn001 index ec7471769b4689da707dea90afe625bd4ea0a0a6..70a36aa44504a824a7791f7b349b22ce172cb3ed 100644 --- a/CMake/variants/variants.lhn001 +++ b/CMake/variants/variants.lhn001 @@ -1,5 +1,3 @@ -option(BUILD_SHARED_LIBS "Build shared libraries" ON) - set(CASACORE_ROOT_DIR /opt/cep/casacore) set(CASAREST_ROOT_DIR /opt/cep/casarest) set(DAL_ROOT_DIR /opt/cep/dal/current) diff --git a/CMake/variants/variants.macdiepen b/CMake/variants/variants.macdiepen index ebfc84d2dda6a51f8ebbfc37e47ee1ac42ffc06e..63018fbdc3d0c3a93fd0478938de8d0d2d1f0715 100644 --- a/CMake/variants/variants.macdiepen +++ b/CMake/variants/variants.macdiepen @@ -1,5 +1,4 @@ # Specific options -option(BUILD_SHARED_LIBS "Build shared libraries" ON) option(USE_BACKTRACE "No backtrace" OFF) option(USE_LOG4CPLUS "log4cxx is used" OFF) option(USE_LOG4CXX "log4cxx is used" OFF) diff --git a/LCS/ApplCommon/include/ApplCommon/CMakeLists.txt b/LCS/ApplCommon/include/ApplCommon/CMakeLists.txt index 573101c6971d27095cc8ea6d642d014aa4b0a7ea..b301c20b43812d75a86f5437477ae5c4b247d247 100644 --- a/LCS/ApplCommon/include/ApplCommon/CMakeLists.txt +++ b/LCS/ApplCommon/include/ApplCommon/CMakeLists.txt @@ -6,7 +6,6 @@ set(inst_HEADERS AntennaSets.h LofarDirs.h Observation.h - PosixTime.h StationConfig.h StationDatatypes.h StationInfo.h) diff --git a/LCS/ApplCommon/include/ApplCommon/Observation.h b/LCS/ApplCommon/include/ApplCommon/Observation.h index 1e5f7db02f30b3290846b0ac73ba3ee861319cc5..4ff478784dc46dbcc97db4f78858c7910c1f6173 100644 --- a/LCS/ApplCommon/include/ApplCommon/Observation.h +++ b/LCS/ApplCommon/include/ApplCommon/Observation.h @@ -34,7 +34,6 @@ #include <Common/lofar_vector.h> #include <Common/lofar_string.h> #include <Common/LofarConstants.h> -#include <ctime> namespace LOFAR { diff --git a/LCS/ApplCommon/src/CMakeLists.txt b/LCS/ApplCommon/src/CMakeLists.txt index ecb6bd4c9e3628e13865c01c5dce78e1e082dbd9..b5f596ea6096113e02712c01f5d7cfd664f8c43c 100644 --- a/LCS/ApplCommon/src/CMakeLists.txt +++ b/LCS/ApplCommon/src/CMakeLists.txt @@ -7,7 +7,6 @@ lofar_add_library(applcommon AntField.cc AntennaSets.cc Observation.cc - PosixTime.cc StationConfig.cc StationDatatypes.cc StationInfo.cc) diff --git a/LCS/ApplCommon/src/Observation.cc b/LCS/ApplCommon/src/Observation.cc index edd8fef0ae84ed2ff2cf62191615e6afcde30bd4..3f33ef36bd2d34a5ed22c66ebe0feacb7a54d5aa 100644 --- a/LCS/ApplCommon/src/Observation.cc +++ b/LCS/ApplCommon/src/Observation.cc @@ -25,7 +25,7 @@ //# Includes #include <Common/LofarLogger.h> -#include <ApplCommon/PosixTime.h> +#include <Common/lofar_datetime.h> #include <Common/lofar_set.h> #include <Common/lofar_string.h> #include <Common/lofar_vector.h> @@ -35,11 +35,9 @@ #include <ApplCommon/Observation.h> #include <Common/lofar_map.h> -#include <boost/date_time/posix_time/posix_time.hpp> #include <boost/format.hpp> using boost::format; -using namespace boost::posix_time; namespace LOFAR { diff --git a/LCS/ApplCommon/src/PosixTime.cc b/LCS/ApplCommon/src/PosixTime.cc deleted file mode 100644 index ef9a540310bf1773014ab53e7c91c93c40daee0a..0000000000000000000000000000000000000000 --- a/LCS/ApplCommon/src/PosixTime.cc +++ /dev/null @@ -1,46 +0,0 @@ -//# PosixTime.h: conversion routines from/to Unix to/from Posix time. -//# -//# Copyright (C) 2002-2012 -//# ASTRON (Netherlands Institute for Radio Astronomy) -//# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands -//# -//# This file is part of the LOFAR software suite. -//# The LOFAR software suite 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 3 of the License, or -//# (at your option) any later version. -//# -//# The LOFAR software suite 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 the LOFAR software suite. If not, see <http://www.gnu.org/licenses/>. -//# -//# $Id: PosixTime.h 22959 2012-11-23 11:09:22Z loose $ - -#include <lofar_config.h> -#include <ApplCommon/PosixTime.h> -#include <boost/date_time/posix_time/posix_time.hpp> - -namespace LOFAR -{ - using namespace boost; - - time_t to_time_t(posix_time::ptime aPtime) - { - posix_time::ptime epoch(gregorian::date(1970, 1, 1)); - posix_time::time_duration diff(aPtime - epoch); - return diff.total_seconds(); - } - - posix_time::ptime from_ustime_t(double secsEpoch1970) - { - time_t sec(static_cast<time_t>(secsEpoch1970)); - long usec(static_cast<long>(1000000 * (secsEpoch1970 - sec))); - return posix_time::from_time_t(sec) + posix_time::microseconds(usec); - } - -} - diff --git a/LCS/Common/include/Common/CMakeLists.txt b/LCS/Common/include/Common/CMakeLists.txt index 404b806c127824333e27f90a6072058515239907..6ab3bf84263d9683836f751d9e625790b29e18b0 100644 --- a/LCS/Common/include/Common/CMakeLists.txt +++ b/LCS/Common/include/Common/CMakeLists.txt @@ -30,6 +30,7 @@ install(FILES LofarBitModeInfo.h LofarConstants.h lofar_complex.h + lofar_datetime.h lofar_deque.h lofar_fstream.h lofar_iomanip.h diff --git a/LCS/ApplCommon/include/ApplCommon/PosixTime.h b/LCS/Common/include/Common/lofar_datetime.h similarity index 57% rename from LCS/ApplCommon/include/ApplCommon/PosixTime.h rename to LCS/Common/include/Common/lofar_datetime.h index 90c6d55b2254ccd46851c823398faa65ae307ad3..3ffbb23b654587ebbca1127654e2362466fb00a7 100644 --- a/LCS/ApplCommon/include/ApplCommon/PosixTime.h +++ b/LCS/Common/include/Common/lofar_datetime.h @@ -1,6 +1,6 @@ -//# PosixTime.h: conversion routines from/to Unix to/from Posix time. +//# lofar_datetime.h: namespace wrapper for Boost.Date_Time Posix classes //# -//# Copyright (C) 2002-2012 +//# Copyright (C) 2002 //# ASTRON (Netherlands Institute for Radio Astronomy) //# P.O.Box 2, 7990 AA Dwingeloo, The Netherlands //# @@ -20,26 +20,31 @@ //# //# $Id$ -#ifndef APPLCOMMON_POSIXTIME_H -#define APPLCOMMON_POSIXTIME_H +#ifndef LOFAR_COMMON_DATETIME_H +#define LOFAR_COMMON_DATETIME_H // \file -// Conversion routines from/to Unix to/from Posix time. +// namespace wrapper for Boost.Date_Time Posix classes -#if !defined(HAVE_BOOST_DATE_TIME) +#if !defined(HAVE_BOOST) #error Boost.Date_Time is required. #endif -#include <ctime> - -//# Forward declarations -namespace boost { namespace posix_time { class ptime; } } +#include <boost/date_time/posix_time/posix_time.hpp> namespace LOFAR { - time_t to_time_t(boost::posix_time::ptime aPtime); + using namespace boost::posix_time; + + inline time_t to_time_t(ptime aPtime) { + ptime epoch(boost::gregorian::date(1970, 1, 1)); + time_duration diff(aPtime - epoch); + return diff.total_seconds(); + } - boost::posix_time::ptime from_ustime_t(double secsEpoch1970); + inline ptime from_ustime_t(double secsEpoch1970) { + return (from_time_t((time_t)trunc(secsEpoch1970)) + microseconds((int64_t)((secsEpoch1970-trunc(secsEpoch1970))*1000000))); + } } #endif diff --git a/LCS/Stream/CMakeLists.txt b/LCS/Stream/CMakeLists.txt index 123c1d6978efd59d434781506cc6097363e62497..028948ec56c37ef7f46f7cf2efe8ff12be418bfe 100644 --- a/LCS/Stream/CMakeLists.txt +++ b/LCS/Stream/CMakeLists.txt @@ -2,9 +2,6 @@ lofar_package(Stream 0.1 DEPENDS Common) -include(LofarFindPackage) -lofar_find_package(Boost REQUIRED) - add_subdirectory(include/Stream) add_subdirectory(src) add_subdirectory(test) diff --git a/MAC/APL/APLCommon/CMakeLists.txt b/MAC/APL/APLCommon/CMakeLists.txt index 6186630b3104455c203bb1ece8253aaed5bb1e11..7669476b48c5f1fe66a8881a14ac70bc7421ec08 100644 --- a/MAC/APL/APLCommon/CMakeLists.txt +++ b/MAC/APL/APLCommon/CMakeLists.txt @@ -4,7 +4,6 @@ lofar_package(APLCommon 3.1 DEPENDS Common ApplCommon GCFTM MACIO) include(LofarFindPackage) lofar_find_package(Blitz REQUIRED) -lofar_find_package(Boost REQUIRED COMPONENTS date_time) add_definitions(-DBOOST_DISABLE_THREADS) diff --git a/MAC/APL/APLCommon/include/APL/APLCommon/ParentControl.h b/MAC/APL/APLCommon/include/APL/APLCommon/ParentControl.h index 06cadb000f20d27a0578203e28504c8d586d9507..1ddc0da6a14e0144275d7eb5421435d7376a97ba 100644 --- a/MAC/APL/APLCommon/include/APL/APLCommon/ParentControl.h +++ b/MAC/APL/APLCommon/include/APL/APLCommon/ParentControl.h @@ -29,6 +29,7 @@ //# Never #include <config.h> or #include <lofar_config.h> in a header file! //# Includes #include <Common/lofar_string.h> +#include <Common/lofar_datetime.h> #include <Common/lofar_list.h> #include <GCF/TM/GCF_Control.h> #include <GCF/TM/GCF_TCPPort.h> @@ -37,8 +38,6 @@ #include <APL/APLCommon/APL_Defines.h> #include "CTState.h" -#include <boost/date_time/posix_time/posix_time.hpp> - // Avoid 'using namespace' in headerfiles namespace LOFAR { @@ -51,8 +50,6 @@ namespace LOFAR { using APLCommon::CTState; namespace APLCommon { -using boost::posix_time::ptime; - // \addtogroup APLCommon // @{ diff --git a/MAC/APL/APLCommon/src/ParentControl.cc b/MAC/APL/APLCommon/src/ParentControl.cc index 9c9474299629a218623bb0b72d469d97954fc6a2..538726e7f495a9f0f9b0248b2e3d2c061f7f1619 100644 --- a/MAC/APL/APLCommon/src/ParentControl.cc +++ b/MAC/APL/APLCommon/src/ParentControl.cc @@ -37,7 +37,6 @@ namespace LOFAR { using namespace GCF::TM; - using namespace boost::posix_time; namespace APLCommon { typedef struct stateFlow_t { diff --git a/MAC/APL/APLCommon/src/swlevel.conf b/MAC/APL/APLCommon/src/swlevel.conf index 48ee9d1b738d2853d2880ac4d660afe5c0f6a54f..5ffd797cad27a3737f2f25e0b085ce30e300b456 100644 --- a/MAC/APL/APLCommon/src/swlevel.conf +++ b/MAC/APL/APLCommon/src/swlevel.conf @@ -10,8 +10,7 @@ #1:u:d:::LogClient 1:u:d:::CEPlogProcessor 1:u:d:::ServiceBroker -1:u:d:::SoftwareMonitor -1:u:d:::SASGateway +#1:u:d:::SASGateway 1:u:d:::ACDaemon # 2:u:d:r::_EPAStub diff --git a/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc index 64b50993a527ac17702aae0049bab4a7f29b0241..e2a9fbc7d22e61a68fa7283a3b6c4a61844a5c96 100644 --- a/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc +++ b/MAC/APL/CEPCU/src/CEPHardwareMonitor/CEPHardwareMonitorMain.cc @@ -36,49 +36,54 @@ using namespace LOFAR::CEPCU; int main(int argc, char* argv[]) { - // args: cntlrname, parentHost, parentService - GCFScheduler::instance()->init(argc, argv, "CEPHardwareMonitor"); + try { + // args: cntlrname, parentHost, parentService + GCFScheduler::instance()->init(argc, argv, "CEPHardwareMonitor"); - LOG_INFO("MACProcessScope: LOFAR_PermSW_HardwareMonitor"); - LOG_INFO(Version::getInfo<CEPCUVersion>("CEPHardwareMonitor")); + LOG_INFO("MACProcessScope: LOFAR_PermSW_HardwareMonitor"); + LOG_INFO(Version::getInfo<CEPCUVersion>("CEPHardwareMonitor")); - // Create tasks and call initial routines - BlueGeneMonitor* bgm(0); - ClusterMonitor* ctm(0); - - // monitor BLUEGENE? - if (globalParameterSet()->getUint32("WatchBlueGene",0)) { - bgm = new BlueGeneMonitor("BlueGeneMonitor"); - bgm->start(); - LOG_INFO("Monitoring the BlueGene"); - } + // Create tasks and call initial routines + BlueGeneMonitor* bgm(0); + ClusterMonitor* ctm(0); + + // monitor BLUEGENE? + if (globalParameterSet()->getUint32("WatchBlueGene",0)) { + bgm = new BlueGeneMonitor("BlueGeneMonitor"); + bgm->start(); + LOG_INFO("Monitoring the BlueGene"); + } - // monitor CEP2Cluster? - if (globalParameterSet()->getUint32("WatchCluster",0)) { - ctm = new ClusterMonitor("ClusterMonitor"); - ctm->start(); - LOG_INFO("Monitoring the Cluster"); - } + // monitor CEP2Cluster? + if (globalParameterSet()->getUint32("WatchCluster",0)) { + ctm = new ClusterMonitor("ClusterMonitor"); + ctm->start(); + LOG_INFO("Monitoring the Cluster"); + } - // sanity check - if (!bgm && !ctm) { - LOG_FATAL_STR("Non of the monitortask (WatchBlueGene, WatchCluster) " - "was switched on in the configfile, terminating program"); - return (0); - } + // sanity check + if (!bgm && !ctm) { + LOG_FATAL_STR("Non of the monitortask (WatchBlueGene, WatchCluster) " + "was switched on in the configfile, terminating program"); + return (0); + } - // ok, we have something to do, do it. - GCFScheduler::instance()->setDelayedQuit(true); // we need a clean shutdown - GCFScheduler::instance()->run(); // until stop was called + // ok, we have something to do, do it. + GCFScheduler::instance()->setDelayedQuit(true); // we need a clean shutdown + GCFScheduler::instance()->run(); // until stop was called - if (bgm) { - bgm->quit(); // let task quit nicely - } - if (ctm) { - ctm->quit(); // let task quit nicely + if (bgm) { + bgm->quit(); // let task quit nicely + } + if (ctm) { + ctm->quit(); // let task quit nicely + } + double postRunTime = globalParameterSet()->getDouble("closingDelay", 1.5); + GCFScheduler::instance()->run(postRunTime); // let processes die. + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; } - double postRunTime = globalParameterSet()->getDouble("closingDelay", 1.5); - GCFScheduler::instance()->run(postRunTime); // let processes die. return (0); } diff --git a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessorMain.cc b/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessorMain.cc index 79d6d55cfa8b21488b43576deadea44cc8d2baea..146070a681404d3e1aa9a20039926418214f1dec 100644 --- a/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessorMain.cc +++ b/MAC/APL/CEPCU/src/CEPlogProcessor/CEPlogProcessorMain.cc @@ -49,15 +49,11 @@ int main (int argc, char* argv[]) loggerTask.start(); // make initial transition GCFScheduler::instance()->run(); - - LOG_INFO_STR("Shutting down: " << argv[0]); } catch (LOFAR::Exception& ex) { LOG_FATAL_STR("Caught exception: " << ex); - LOG_FATAL ("Terminated by exception!"); return (1); } - LOG_INFO("Terminated normally"); return (0); } diff --git a/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.cc b/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.cc index 8da5578db85ed3e87acd999ab7a5bdfe80b23d1f..6eaaed5618060f2f38d7b8d84b3e4794321de319 100644 --- a/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.cc +++ b/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.cc @@ -50,7 +50,6 @@ using namespace LOFAR::GCF::PVSS; using namespace LOFAR::GCF::TM; using namespace LOFAR::GCF::RTDB; using namespace std; -using namespace boost::posix_time; namespace LOFAR { using namespace APLCommon; @@ -615,7 +614,7 @@ GCFEvent::TResult OnlineControl::finishing_state(GCFEvent& event, GCFPortInterfa int32 result = system (startCmd.c_str()); LOG_INFO_STR ("Result of command = " << result); - itsTimerPort->setTimer(2.0); + itsTimerPort->setTimer(302.0); // IONProc, and thus CEPlogProcessor, can take up to 5 minutes to wrap up break; } diff --git a/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.h b/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.h index 9a0b674f790cf5445e2f812c6e9dc9c08d7366c2..09e695da178ecd507c4aea046f97d215ec09545e 100644 --- a/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.h +++ b/MAC/APL/CEPCU/src/OnlineControl/OnlineControl.h @@ -26,6 +26,7 @@ //# Common Includes #include <Common/lofar_string.h> #include <Common/lofar_vector.h> +#include <Common/lofar_datetime.h> #include <Common/LofarLogger.h> //# ACC Includes @@ -42,8 +43,6 @@ #include <CEPApplMgr.h> -#include <boost/date_time/posix_time/posix_time.hpp> - // forward declaration namespace LOFAR { @@ -57,7 +56,7 @@ using GCF::TM::GCFPortInterface; using GCF::TM::GCFTask; using GCF::RTDB::RTDBPropertySet; using APLCommon::ParentControl; -using boost::posix_time::ptime; + class OnlineControl : public GCFTask, public CEPApplMgrInterface diff --git a/MAC/APL/CEPCU/src/OnlineControl/OnlineControlMain.cc b/MAC/APL/CEPCU/src/OnlineControl/OnlineControlMain.cc index 1a0dadbfb119ca7d17b1862b81eb7be052a8122b..a1daffe7a2df34771e53c0ce7385552c3a9f6403 100644 --- a/MAC/APL/CEPCU/src/OnlineControl/OnlineControlMain.cc +++ b/MAC/APL/CEPCU/src/OnlineControl/OnlineControlMain.cc @@ -42,15 +42,20 @@ int main(int argc, char* argv[]) return(-1); } - GCFScheduler::instance()->init(argc, argv, argv[1]); + try { + GCFScheduler::instance()->init(argc, argv, argv[1]); - ParentControl* pc = ParentControl::instance(); - pc->start(); // make initial transition + ParentControl* pc = ParentControl::instance(); + pc->start(); // make initial transition - OnlineControl olc(argv[1]); - olc.start(); // make initial transition + OnlineControl olc(argv[1]); + olc.start(); // make initial transition - GCFScheduler::instance()->run(); + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return (0); } diff --git a/MAC/APL/CEPCU/src/PythonControl/PythonControl.cc b/MAC/APL/CEPCU/src/PythonControl/PythonControl.cc index 9fa935bd723bc8ab05211317dd12e71ebacb2340..60cdd0b0f9490d54a624a18df6ca438c0e1e1e7e 100644 --- a/MAC/APL/CEPCU/src/PythonControl/PythonControl.cc +++ b/MAC/APL/CEPCU/src/PythonControl/PythonControl.cc @@ -50,10 +50,7 @@ #include "PythonControl.h" #include "PVSSDatapointDefs.h" -#include <boost/date_time/posix_time/posix_time.hpp> - using namespace std; -using namespace boost::posix_time; namespace LOFAR { using namespace APLCommon; diff --git a/MAC/APL/CEPCU/src/PythonControl/PythonControl.h b/MAC/APL/CEPCU/src/PythonControl/PythonControl.h index a28d4309a6980cb8476ef36a2e80ff56083a0331..f07c3fce92ca6cdaf85dc8e07e3971572468addb 100644 --- a/MAC/APL/CEPCU/src/PythonControl/PythonControl.h +++ b/MAC/APL/CEPCU/src/PythonControl/PythonControl.h @@ -26,6 +26,7 @@ //# Common Includes #include <Common/lofar_string.h> #include <Common/lofar_vector.h> +#include <Common/lofar_datetime.h> #include <Common/LofarLogger.h> //# ACC Includes diff --git a/MAC/APL/CEPCU/src/PythonControl/PythonControlMain.cc b/MAC/APL/CEPCU/src/PythonControl/PythonControlMain.cc index a9ff9f09e88a9be79c372158d32099135c2e48e7..3ee05cbb8fdf0fc1c96ddf69190c729761d091c5 100644 --- a/MAC/APL/CEPCU/src/PythonControl/PythonControlMain.cc +++ b/MAC/APL/CEPCU/src/PythonControl/PythonControlMain.cc @@ -43,7 +43,7 @@ int main(int argc, char* argv[]) } try { - GCFScheduler::instance()->init(argc, argv, argv[1]); + GCFScheduler::instance()->init(argc, argv, "PythonControl"); ParentControl* pc = ParentControl::instance(); pc->start(); // make initial transition diff --git a/MAC/APL/CEPCU/src/_OfflineControl/OfflineControl.cc b/MAC/APL/CEPCU/src/_OfflineControl/OfflineControl.cc index 2a624c31c01c6821fc8f276cf96a711d007ca636..3f09b4c7612d4a9aacb689ef4347ef7bdfd02b7a 100644 --- a/MAC/APL/CEPCU/src/_OfflineControl/OfflineControl.cc +++ b/MAC/APL/CEPCU/src/_OfflineControl/OfflineControl.cc @@ -25,7 +25,6 @@ #include <boost/shared_array.hpp> #include <Common/ParameterSet.h> #include <Common/Exceptions.h> -#include <ApplCommon/PosixTime.h> #include <GCF/GCF_PVTypes.h> #include <GCF/PAL/GCF_PVSSInfo.h> #include <GCF/Utils.h> diff --git a/MAC/APL/CEPCU/src/_OfflineControl/OfflineControl.h b/MAC/APL/CEPCU/src/_OfflineControl/OfflineControl.h index 1a5ce55f7d36a726bf127c123d1a9c60295f790f..85d4a2bbaa69e9ede57178f8c2ba9217514c2d6c 100644 --- a/MAC/APL/CEPCU/src/_OfflineControl/OfflineControl.h +++ b/MAC/APL/CEPCU/src/_OfflineControl/OfflineControl.h @@ -26,6 +26,7 @@ //# Common Includes #include <Common/lofar_string.h> #include <Common/lofar_vector.h> +#include <Common/lofar_datetime.h> #include <Common/LofarLogger.h> //# ACC Includes diff --git a/MAC/APL/CEPCU/src/_OfflineControl/OfflineControlMain.cc b/MAC/APL/CEPCU/src/_OfflineControl/OfflineControlMain.cc index f827d1fedfbff9aef19b27e08e6fe62e95fb27cb..48941455ee2b756ad49f5ffc744ee1597eb90a65 100644 --- a/MAC/APL/CEPCU/src/_OfflineControl/OfflineControlMain.cc +++ b/MAC/APL/CEPCU/src/_OfflineControl/OfflineControlMain.cc @@ -38,15 +38,21 @@ int main(int argc, char* argv[]) printf("%s usage: %s <controller name>\n",argv[0],argv[0]); exit(-1); } - GCFTask::init(argc, argv); - ParentControl* pc = ParentControl::instance(); - pc->start(); // make initial transition + try { + GCFTask::init(argc, argv); - OfflineControl ofc(argv[1]); - ofc.start(); // make initial transition + ParentControl* pc = ParentControl::instance(); + pc->start(); // make initial transition - GCFTask::run(); + OfflineControl ofc(argv[1]); + ofc.start(); // make initial transition + + GCFTask::run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return 0; } diff --git a/MAC/APL/CUDaemons/src/CTStartDaemon/CTStartDaemonMain.cc b/MAC/APL/CUDaemons/src/CTStartDaemon/CTStartDaemonMain.cc index d78c0e9c4784d7c5a2554f017e6ccfd2a60fde8b..48b47c13aedc3b642327af449300352cf318983b 100644 --- a/MAC/APL/CUDaemons/src/CTStartDaemon/CTStartDaemonMain.cc +++ b/MAC/APL/CUDaemons/src/CTStartDaemon/CTStartDaemonMain.cc @@ -35,15 +35,20 @@ int main(int argc, char* argv[]) { // signal (SIGCHLD, SIG_IGN); - GCFScheduler::instance()->init(argc, argv, "CTStartDaemon"); + try { + GCFScheduler::instance()->init(argc, argv, "CTStartDaemon"); - LOG_INFO("MACProcessScope: LOFAR_PermSW_Daemons_CTStartDaemon"); + LOG_INFO("MACProcessScope: LOFAR_PermSW_Daemons_CTStartDaemon"); - CUDaemons::CTStartDaemon sd("StartDaemon"); // give myself a name + CUDaemons::CTStartDaemon sd("StartDaemon"); // give myself a name - sd.start(); // make initial transition + sd.start(); // make initial transition - GCFScheduler::instance()->run(); + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return 0; } diff --git a/MAC/APL/CUDaemons/src/ServiceBroker/ServiceBrokerMain.cc b/MAC/APL/CUDaemons/src/ServiceBroker/ServiceBrokerMain.cc index cc23478288b343a04a449c0f6131eeba52bdf26b..fa9848e6985357e178cb252c9cd6d24f57697081 100644 --- a/MAC/APL/CUDaemons/src/ServiceBroker/ServiceBrokerMain.cc +++ b/MAC/APL/CUDaemons/src/ServiceBroker/ServiceBrokerMain.cc @@ -36,15 +36,20 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char *argv[]) { - GCFScheduler::instance()->init(argc, argv, "ServiceBroker"); - - LOG_INFO("MACProcessScope: LOFAR_PermSW_Daemons_ServiceBroker"); + try { + GCFScheduler::instance()->init(argc, argv, "ServiceBroker"); + + LOG_INFO("MACProcessScope: LOFAR_PermSW_Daemons_ServiceBroker"); - ServiceBroker sb; - - sb.start(); // make initial transition - - GCFScheduler::instance()->run(); + ServiceBroker sb; + + sb.start(); // make initial transition + + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } - return 0; + return 0; } diff --git a/MAC/APL/CURTDBDaemons/src/KeyValueLogger/KeyValueLogger.cc b/MAC/APL/CURTDBDaemons/src/KeyValueLogger/KeyValueLogger.cc index 96337bed91b4bc585ff4880ea69685eac0795795..3ed26dc0fc9d20885f667f80e171003480dda02a 100644 --- a/MAC/APL/CURTDBDaemons/src/KeyValueLogger/KeyValueLogger.cc +++ b/MAC/APL/CURTDBDaemons/src/KeyValueLogger/KeyValueLogger.cc @@ -21,7 +21,7 @@ //# $Id$ #include <lofar_config.h> -#include <ApplCommon/PosixTime.h> +#include <Common/lofar_datetime.h> #include <Common/LofarLogger.h> #include <Common/Version.h> #include <Common/ParameterSet.h> @@ -36,7 +36,6 @@ #include <OTDB/TreeValue.h> #include "KeyValueLogger.h" #include <CURTDBDaemons/Package__Version.h> -#include <boost/date_time/posix_time/posix_time.hpp> namespace LOFAR { using namespace MACIO; @@ -47,8 +46,6 @@ namespace LOFAR { using namespace RTDB; namespace RTDBDaemons { -using namespace boost::posix_time; - // // CodeloggingProcessor() // diff --git a/MAC/APL/CURTDBDaemons/src/KeyValueLogger/KeyValueLoggerMain.cc b/MAC/APL/CURTDBDaemons/src/KeyValueLogger/KeyValueLoggerMain.cc index bfb6138b975dd939d9e8e3cb7cd5b02b6bec2bb0..10e89211e210afbd86b76e38289219758c586494 100644 --- a/MAC/APL/CURTDBDaemons/src/KeyValueLogger/KeyValueLoggerMain.cc +++ b/MAC/APL/CURTDBDaemons/src/KeyValueLogger/KeyValueLoggerMain.cc @@ -35,13 +35,18 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char *argv[]) { - GCFScheduler::instance()->init(argc, argv, "KeyValueLogger"); - LOG_INFO("MACProcessScope: LOFAR_PermSW_Daemons_KVLogger"); - - KeyValueLogger kvl("KeyValueLogger"); - kvl.start(); // make initial transition - - GCFScheduler::instance()->run(); + try { + GCFScheduler::instance()->init(argc, argv, "KeyValueLogger"); + LOG_INFO("MACProcessScope: LOFAR_PermSW_Daemons_KVLogger"); + + KeyValueLogger kvl("KeyValueLogger"); + kvl.start(); // make initial transition + + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return (0); } diff --git a/MAC/APL/CURTDBDaemons/src/LogProcessor/LogProcessorMain.cc b/MAC/APL/CURTDBDaemons/src/LogProcessor/LogProcessorMain.cc index 65cd3c3ceddb4333eda0613478c95cc015df3471..9b4132e8c3b68ceec69a7e7867ea99796c836ba8 100644 --- a/MAC/APL/CURTDBDaemons/src/LogProcessor/LogProcessorMain.cc +++ b/MAC/APL/CURTDBDaemons/src/LogProcessor/LogProcessorMain.cc @@ -35,13 +35,18 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char *argv[]) { - GCFScheduler::instance()->init(argc, argv, "LogProcessor"); -// LOG_INFO("MACProcessScope: LOFAR_PermSW_Daemons_LogProcessor"); - - LogProcessor clp("LogProcessor"); - clp.start(); // make initial transition - - GCFScheduler::instance()->run(); + try { + GCFScheduler::instance()->init(argc, argv, "LogProcessor"); + // LOG_INFO("MACProcessScope: LOFAR_PermSW_Daemons_LogProcessor"); + + LogProcessor clp("LogProcessor"); + clp.start(); // make initial transition + + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return (0); } diff --git a/MAC/APL/CURTDBDaemons/src/SASGateway/SASGateway.cc b/MAC/APL/CURTDBDaemons/src/SASGateway/SASGateway.cc index ef752bda6579d54f8c40247c58dd17ceeb3ff0d5..e5d22c19c22182a988e43de45c2b42bc596f4cb9 100644 --- a/MAC/APL/CURTDBDaemons/src/SASGateway/SASGateway.cc +++ b/MAC/APL/CURTDBDaemons/src/SASGateway/SASGateway.cc @@ -36,7 +36,6 @@ #include <OTDB/TreeValue.h> #include "SASGateway.h" #include <CURTDBDaemons/Package__Version.h> -#include <boost/date_time/posix_time/posix_time.hpp> namespace LOFAR { using namespace MACIO; @@ -47,8 +46,6 @@ namespace LOFAR { using namespace RTDB; namespace RTDBDaemons { -using namespace boost::posix_time; - // // SASGateway() // diff --git a/MAC/APL/CURTDBDaemons/src/SASGateway/SASGatewayMain.cc b/MAC/APL/CURTDBDaemons/src/SASGateway/SASGatewayMain.cc index e7c3000739a1cd3acc7befd7d4740cca83226a40..d265a8f6b058d41f18639a9a2a82fe8c4189fd35 100644 --- a/MAC/APL/CURTDBDaemons/src/SASGateway/SASGatewayMain.cc +++ b/MAC/APL/CURTDBDaemons/src/SASGateway/SASGatewayMain.cc @@ -35,13 +35,18 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char *argv[]) { - GCFScheduler::instance()->init(argc, argv, "SASGateway"); - LOG_INFO("MACProcessScope: LOFAR_PermSW_Daemons_SASGateway"); - - SASGateway SGW("SASGateway"); - SGW.start(); // make initial transition - - GCFScheduler::instance()->run(); + try { + GCFScheduler::instance()->init(argc, argv, "SASGateway"); + LOG_INFO("MACProcessScope: LOFAR_PermSW_Daemons_SASGateway"); + + SASGateway SGW("SASGateway"); + SGW.start(); // make initial transition + + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return (0); } diff --git a/MAC/APL/CURTDBDaemons/src/SoftwareMonitor/SoftwareMonitorMain.cc b/MAC/APL/CURTDBDaemons/src/SoftwareMonitor/SoftwareMonitorMain.cc index a1c9969cd39aefcf263acc2452843d0a418c049a..fe578f42de9fbb06606e0b87893c5cbd4a38a88f 100644 --- a/MAC/APL/CURTDBDaemons/src/SoftwareMonitor/SoftwareMonitorMain.cc +++ b/MAC/APL/CURTDBDaemons/src/SoftwareMonitor/SoftwareMonitorMain.cc @@ -40,28 +40,33 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char* argv[]) { - // args: cntlrname, parentHost, parentService - GCFScheduler::instance()->init(argc, argv, "SoftwareMonitor"); + try { + // args: cntlrname, parentHost, parentService + GCFScheduler::instance()->init(argc, argv, "SoftwareMonitor"); - LOG_INFO("MACProcessScope: LOFAR_PermSW_SoftwareMonitor"); - LOG_INFO(Version::getInfo<CURTDBDaemonsVersion>("SoftwareMonitor")); + LOG_INFO("MACProcessScope: LOFAR_PermSW_SoftwareMonitor"); + LOG_INFO(Version::getInfo<CURTDBDaemonsVersion>("SoftwareMonitor")); - // for debugging purposes - registerProtocol (DP_PROTOCOL, DP_PROTOCOL_STRINGS); + // for debugging purposes + registerProtocol (DP_PROTOCOL, DP_PROTOCOL_STRINGS); - // Create tasks and call initial routines - SoftwareMonitor* swm = new SoftwareMonitor("SoftwareMonitor"); - ASSERTSTR(swm, "Can't create an software monitortask"); - swm->start(); + // Create tasks and call initial routines + SoftwareMonitor* swm = new SoftwareMonitor("SoftwareMonitor"); + ASSERTSTR(swm, "Can't create an software monitortask"); + swm->start(); - // ok, we have something to do, do it. - GCFScheduler::instance()->setDelayedQuit(true); // we need a clean shutdown - GCFScheduler::instance()->run(); // until stop was called + // ok, we have something to do, do it. + GCFScheduler::instance()->setDelayedQuit(true); // we need a clean shutdown + GCFScheduler::instance()->run(); // until stop was called - swm->quit(); // let task quit nicely + swm->quit(); // let task quit nicely - double postRunTime = globalParameterSet()->getDouble("closingDelay", 1.5); - GCFScheduler::instance()->run(postRunTime); // let processes die. + double postRunTime = globalParameterSet()->getDouble("closingDelay", 1.5); + GCFScheduler::instance()->run(postRunTime); // let processes die. + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return (0); } diff --git a/MAC/APL/MainCU/src/CRTriggerControl/TriggerControl.cc b/MAC/APL/MainCU/src/CRTriggerControl/TriggerControl.cc index 13e674d03b55176e431946c95b17bd1d95eb40cf..c3b12b9db1808233973140ad54981c1e26e7ea4d 100644 --- a/MAC/APL/MainCU/src/CRTriggerControl/TriggerControl.cc +++ b/MAC/APL/MainCU/src/CRTriggerControl/TriggerControl.cc @@ -34,7 +34,6 @@ #include <ApplCommon/LofarDirs.h> #include <ApplCommon/StationInfo.h> #include <ApplCommon/Observation.h> -#include <ApplCommon/PosixTime.h> #include <MACIO/MACServiceInfo.h> #include <GCF/PVSS/GCF_PVTypes.h> @@ -50,12 +49,10 @@ #include "TriggerControl.h" #include "PVSSDatapointDefs.h" -#include <boost/date_time/posix_time/posix_time.hpp> using namespace LOFAR::GCF::TM; using namespace LOFAR::GCF::PVSS; using namespace LOFAR::GCF::RTDB; -using namespace boost::posix_time; using namespace std; using namespace LOFAR::StringUtil; diff --git a/MAC/APL/MainCU/src/CRTriggerControl/TriggerControl.h b/MAC/APL/MainCU/src/CRTriggerControl/TriggerControl.h index 1b45866c32587cb4a0d327a2416a42e1f942db74..ec99d33d702008432db9fd9b1a27ee77e85bbbc0 100644 --- a/MAC/APL/MainCU/src/CRTriggerControl/TriggerControl.h +++ b/MAC/APL/MainCU/src/CRTriggerControl/TriggerControl.h @@ -26,6 +26,7 @@ //# Common Includes #include <Common/LofarLogger.h> #include <Common/lofar_string.h> +#include <Common/lofar_datetime.h> //# GCF Includes #include <MACIO/GCF_Event.h> @@ -34,8 +35,6 @@ #include <GCF/RTDB/GCF_RTDBPort.h> #include <GCF/RTDB/DPservice.h> -#include <boost/date_time/posix_time/posix_time.hpp> - // forward declaration namespace LOFAR { @@ -49,8 +48,6 @@ namespace LOFAR { using GCF::RTDB::GCFRTDBPort; namespace MainCU { -using boost::posix_time::ptime; - class TriggerControl : public GCFTask { public: diff --git a/MAC/APL/MainCU/src/CRTriggerControl/TriggerControlMain.cc b/MAC/APL/MainCU/src/CRTriggerControl/TriggerControlMain.cc index 7fd6086d47c292ecdd95fd09da16a1cee8d4df23..19e80f6cc378bf4bec08c7f130f9853cacff9cc0 100644 --- a/MAC/APL/MainCU/src/CRTriggerControl/TriggerControlMain.cc +++ b/MAC/APL/MainCU/src/CRTriggerControl/TriggerControlMain.cc @@ -35,14 +35,18 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char* argv[]) { - - // args: cntlrname - GCFScheduler::instance()->init(argc, argv, argv[0]); - - TriggerControl tc(argv[0]); - tc.start(); // make initial transition - - GCFScheduler::instance()->run(); + try { + // args: cntlrname + GCFScheduler::instance()->init(argc, argv, argv[0]); + + TriggerControl tc(argv[0]); + tc.start(); // make initial transition + + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return 0; } diff --git a/MAC/APL/MainCU/src/MACScheduler/MACScheduler.cc b/MAC/APL/MainCU/src/MACScheduler/MACScheduler.cc index f0311610aa37e54666afa660000e5090c23c1455..639fc98adb5a8d199609969d8bfdcc580173b64a 100644 --- a/MAC/APL/MainCU/src/MACScheduler/MACScheduler.cc +++ b/MAC/APL/MainCU/src/MACScheduler/MACScheduler.cc @@ -41,13 +41,10 @@ #include "PVSSDatapointDefs.h" #include <MainCU/Package__Version.h> -#include <boost/date_time/posix_time/posix_time.hpp> - using namespace LOFAR::GCF::PVSS; using namespace LOFAR::GCF::TM; using namespace LOFAR::GCF::RTDB; using namespace LOFAR::OTDB; -using namespace boost::posix_time; using namespace std; namespace LOFAR { diff --git a/MAC/APL/MainCU/src/MACScheduler/MACScheduler.h b/MAC/APL/MainCU/src/MACScheduler/MACScheduler.h index d45b6280b397e95fefae5e66a0ad91454acc0ad1..280f13b64f6947a4449696d3297c88ae9deed77c 100644 --- a/MAC/APL/MainCU/src/MACScheduler/MACScheduler.h +++ b/MAC/APL/MainCU/src/MACScheduler/MACScheduler.h @@ -48,8 +48,6 @@ #include "ObsClaimer.h" -#include <boost/date_time/posix_time/posix_time.hpp> - // forward declaration namespace LOFAR { @@ -63,8 +61,6 @@ namespace LOFAR { using APLCommon::ChildControl; namespace MainCU { -using boost::posix_time::ptime; -using boost::posix_time::min_date_time; class MACScheduler : public GCFTask { diff --git a/MAC/APL/MainCU/src/MACScheduler/MACSchedulerMain.cc b/MAC/APL/MainCU/src/MACScheduler/MACSchedulerMain.cc index 5f6b5ab611740cd6d905fcf605ffe06a88305c9b..d03e2036e340e3bc829865fa96bf144bf1a8fa7e 100644 --- a/MAC/APL/MainCU/src/MACScheduler/MACSchedulerMain.cc +++ b/MAC/APL/MainCU/src/MACScheduler/MACSchedulerMain.cc @@ -36,15 +36,20 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char* argv[]) { - GCFScheduler::instance()->init(argc, argv, "MACScheduler"); - - ChildControl* cc = ChildControl::instance(); - cc->start(); // make initial transition - - MACScheduler ms; - ms.start(); // make initial transition - - GCFScheduler::instance()->run(); + try { + GCFScheduler::instance()->init(argc, argv, "MACScheduler"); + + ChildControl* cc = ChildControl::instance(); + cc->start(); // make initial transition + + MACScheduler ms; + ms.start(); // make initial transition + + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return 0; } diff --git a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc index 8c36a9e70d185ef5f5b9697b451fe17ac611ea23..9cede9a2715854810a00ad25a68bc07a6624eaec 100644 --- a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc +++ b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.cc @@ -27,7 +27,6 @@ #include <Common/SystemUtil.h> #include <ApplCommon/StationInfo.h> #include <ApplCommon/LofarDirs.h> -#include <ApplCommon/PosixTime.h> #include <MACIO/MACServiceInfo.h> #include <APL/APLCommon/APL_Defines.h> @@ -43,9 +42,6 @@ #include "PVSSDatapointDefs.h" #include <MainCU/Package__Version.h> -#include <boost/date_time/posix_time/posix_time.hpp> - -using namespace boost::posix_time; namespace LOFAR { using namespace APLCommon; diff --git a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h index c9c2c56a2bdfe55bf76054256f41eea784a256dd..93ce5299b9bec3f8b4a0b6f57f438213b30a4e0a 100644 --- a/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h +++ b/MAC/APL/MainCU/src/ObservationControl/ObservationControl.h @@ -42,12 +42,11 @@ #include <Common/lofar_string.h> #include <Common/lofar_vector.h> #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> //# ACC Includes #include <Common/ParameterSet.h> -#include <boost/date_time/posix_time/posix_time.hpp> - // forward declaration namespace LOFAR { @@ -65,8 +64,6 @@ namespace LOFAR { using APLCommon::CTState; namespace MainCU { -using boost::posix_time::ptime; - class ObservationControl : public GCFTask { public: diff --git a/MAC/APL/MainCU/src/ObservationControl/ObservationControlMain.cc b/MAC/APL/MainCU/src/ObservationControl/ObservationControlMain.cc index 7c52a1dce68ffbf319b2daf6e4837b9f902396f3..e3ed26971c012aaae0dc4df06a50dd57a39871dd 100644 --- a/MAC/APL/MainCU/src/ObservationControl/ObservationControlMain.cc +++ b/MAC/APL/MainCU/src/ObservationControl/ObservationControlMain.cc @@ -36,19 +36,24 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char* argv[]) { - // args: cntlrname, parentHost, parentService - GCFScheduler::instance()->init(argc, argv, argv[1]); + try { + // args: cntlrname, parentHost, parentService + GCFScheduler::instance()->init(argc, argv, argv[1]); - ChildControl* cc = ChildControl::instance(); - cc->start(); // make initial transition + ChildControl* cc = ChildControl::instance(); + cc->start(); // make initial transition - ParentControl* pc = ParentControl::instance(); - pc->start(); // make initial transition + ParentControl* pc = ParentControl::instance(); + pc->start(); // make initial transition - ObservationControl oc(argv[1]); - oc.start(); // make initial transition + ObservationControl oc(argv[1]); + oc.start(); // make initial transition - GCFScheduler::instance()->run(); + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return 0; } diff --git a/MAC/APL/PAC/IBS_Protocol/CMakeLists.txt b/MAC/APL/PAC/IBS_Protocol/CMakeLists.txt index e768a7a1adfbf4949dcd2b97db9fbb9e897f7e95..585054ed8cd5861bece37dbf51ad0496034bc07c 100644 --- a/MAC/APL/PAC/IBS_Protocol/CMakeLists.txt +++ b/MAC/APL/PAC/IBS_Protocol/CMakeLists.txt @@ -20,9 +20,6 @@ lofar_package(IBS_Protocol 1.0 DEPENDS Common MACIO RTCCommon RSP_Protocol) -include(LofarFindPackage) -lofar_find_package(Boost REQUIRED) - add_subdirectory(include/APL/IBS_Protocol) add_subdirectory(src) #add_subdirectory(test) diff --git a/MAC/APL/PIC/RSP_Driver/src/rspctl.cc b/MAC/APL/PIC/RSP_Driver/src/rspctl.cc index 362a1491c092ffed4118ffa87768350fcaec4ad4..3a5fc4a405f36658b878e987bb3c236fc6ed2541 100644 --- a/MAC/APL/PIC/RSP_Driver/src/rspctl.cc +++ b/MAC/APL/PIC/RSP_Driver/src/rspctl.cc @@ -1251,7 +1251,7 @@ void SICommand::send() request.settings()(0).setXSI(m_siOn); request.settings()(0).setYSI(m_siOn); - logMessage(cout,formatString("bypassSetting =%02X", request.settings()(0).getAsUint16())); + logMessage(cout,formatString("bypassSetting =%02X", request.settings()(0).getAsUint8())); m_rspport.send(request); } diff --git a/MAC/APL/PIC/RSP_Protocol/include/APL/RSP_Protocol/BypassSettings.h b/MAC/APL/PIC/RSP_Protocol/include/APL/RSP_Protocol/BypassSettings.h index c8811409b9b142a42a2f16a7ec2366d3817a1340..f1dd042faf3b51b3594a4ab861daa0a30b769d4d 100644 --- a/MAC/APL/PIC/RSP_Protocol/include/APL/RSP_Protocol/BypassSettings.h +++ b/MAC/APL/PIC/RSP_Protocol/include/APL/RSP_Protocol/BypassSettings.h @@ -56,7 +56,7 @@ public: void setYSI(bool on) { bypass.siy_enable = on ? 1 : 0; } bool getXSI() const { return (bypass.six_enable); } bool getYSI() const { return (bypass.siy_enable); } - uint16 getAsUint16() const { return (*((uint16*) &bypass)); } // Yak + uint8 getAsUint8() const { return *reinterpret_cast<const uint8*>(&bypass); } // Yak DIAGBypass getRaw() const { return (bypass); } void setRaw(const DIAGBypass newBypass) { bypass = newBypass; } private: diff --git a/MAC/APL/StationCU/CMakeLists.txt b/MAC/APL/StationCU/CMakeLists.txt index 349378323fbd919b378db84129c65cc9897799df..e33cd2f466a86670ea65e6c9734013ef8d4802f4 100644 --- a/MAC/APL/StationCU/CMakeLists.txt +++ b/MAC/APL/StationCU/CMakeLists.txt @@ -8,7 +8,6 @@ IBS_Protocol CAL_Protocol RSP_Protocol TBB_Protocol VHECR CR_Protocol) include(LofarFindPackage) lofar_find_package(Blitz REQUIRED) -lofar_find_package(Boost REQUIRED date_time) add_subdirectory(include/APL/ClockProtocol) add_subdirectory(src) diff --git a/MAC/APL/StationCU/src/BeamControl/BeamControl.cc b/MAC/APL/StationCU/src/BeamControl/BeamControl.cc index cc7235dc47f23ef00d2aa6348ccdadb0954c912b..e12b87698223b87085be122a0f8aafeafa655a0f 100644 --- a/MAC/APL/StationCU/src/BeamControl/BeamControl.cc +++ b/MAC/APL/StationCU/src/BeamControl/BeamControl.cc @@ -44,13 +44,10 @@ #include "PVSSDatapointDefs.h" #include <StationCU/Package__Version.h> -#include <boost/date_time/posix_time/posix_time.hpp> - using namespace LOFAR::GCF::TM; using namespace LOFAR::GCF::PVSS; using namespace LOFAR::GCF::RTDB; using namespace LOFAR::APL::RTDBCommon; -using namespace boost::posix_time; using namespace std; namespace LOFAR { diff --git a/MAC/APL/StationCU/src/BeamControl/BeamControl.h b/MAC/APL/StationCU/src/BeamControl/BeamControl.h index 2e8ab10378b0a725d8b0e5dc1f2634b6d0b00f8e..5909b4e6366875563433b55d6cb86a94ee17de3d 100644 --- a/MAC/APL/StationCU/src/BeamControl/BeamControl.h +++ b/MAC/APL/StationCU/src/BeamControl/BeamControl.h @@ -25,6 +25,7 @@ //# Common Includes #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <Common/lofar_set.h> #include <Common/lofar_string.h> #include <Common/ParameterSet.h> diff --git a/MAC/APL/StationCU/src/BeamControl/BeamControlMain.cc b/MAC/APL/StationCU/src/BeamControl/BeamControlMain.cc index b6eab6f10ce6c4614fec117fd03e0d1546945448..b42ebef64418622035cabf50fe041321077be0b0 100644 --- a/MAC/APL/StationCU/src/BeamControl/BeamControlMain.cc +++ b/MAC/APL/StationCU/src/BeamControl/BeamControlMain.cc @@ -34,16 +34,21 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char* argv[]) { - // args: cntlrname, parentHost, parentService - GCFScheduler::instance()->init(argc, argv, argv[1]); + try { + // args: cntlrname, parentHost, parentService + GCFScheduler::instance()->init(argc, argv, argv[1]); - ParentControl* pc = ParentControl::instance(); - pc->start(); // make initial transition + ParentControl* pc = ParentControl::instance(); + pc->start(); // make initial transition - BeamControl bc(argv[1]); - bc.start(); // make initial transition + BeamControl bc(argv[1]); + bc.start(); // make initial transition - GCFScheduler::instance()->run(); + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return 0; } diff --git a/MAC/APL/StationCU/src/CalibrationControl/CalibrationControl.cc b/MAC/APL/StationCU/src/CalibrationControl/CalibrationControl.cc index fe1d2cb3e3022d1e3ea700144bdef7fb5ece0feb..de7558ab56baa62fe1eba0c0c7d2f01bd0e8a3c0 100644 --- a/MAC/APL/StationCU/src/CalibrationControl/CalibrationControl.cc +++ b/MAC/APL/StationCU/src/CalibrationControl/CalibrationControl.cc @@ -21,6 +21,7 @@ //# $Id$ #include <lofar_config.h> #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <Common/Version.h> #include <ApplCommon/LofarDirs.h> #include <ApplCommon/StationConfig.h> @@ -39,13 +40,10 @@ #include "PVSSDatapointDefs.h" #include <StationCU/Package__Version.h> -#include <boost/date_time/posix_time/posix_time.hpp> - using namespace LOFAR::GCF::TM; using namespace LOFAR::GCF::PVSS; using namespace LOFAR::GCF::RTDB; using namespace LOFAR::APL::RTDBCommon; -using namespace boost::posix_time; namespace LOFAR { using namespace APLCommon; diff --git a/MAC/APL/StationCU/src/CalibrationControl/CalibrationControlMain.cc b/MAC/APL/StationCU/src/CalibrationControl/CalibrationControlMain.cc index d6f05db5fba6edbc54b9fd47394b87275b09edf7..3fb2dac4b0b3b0f31a3a9fc7a89c3e373818c4ea 100644 --- a/MAC/APL/StationCU/src/CalibrationControl/CalibrationControlMain.cc +++ b/MAC/APL/StationCU/src/CalibrationControl/CalibrationControlMain.cc @@ -34,16 +34,21 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char* argv[]) { - // args: cntlrname, parentHost, parentService - GCFScheduler::instance()->init(argc, argv, argv[1]); + try { + // args: cntlrname, parentHost, parentService + GCFScheduler::instance()->init(argc, argv, argv[1]); - ParentControl* pc = ParentControl::instance(); - pc->start(); // make initial transition + ParentControl* pc = ParentControl::instance(); + pc->start(); // make initial transition - CalibrationControl cc(argv[1]); - cc.start(); // make initial transition + CalibrationControl cc(argv[1]); + cc.start(); // make initial transition - GCFScheduler::instance()->run(); + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return 0; } diff --git a/MAC/APL/StationCU/src/ClockControl/ClockControlMain.cc b/MAC/APL/StationCU/src/ClockControl/ClockControlMain.cc index 23e3a6158a5e16f9e97c05c35a80e2b56f708055..6e3105283f9bac999db0f5e8e6e064aa86dffd3a 100644 --- a/MAC/APL/StationCU/src/ClockControl/ClockControlMain.cc +++ b/MAC/APL/StationCU/src/ClockControl/ClockControlMain.cc @@ -39,16 +39,21 @@ int main(int argc, char* argv[]) return (1); } - // args: cntlrname, parentHost, parentService - GCFScheduler::instance()->init(argc, argv, "ClockControl"); + try { + // args: cntlrname, parentHost, parentService + GCFScheduler::instance()->init(argc, argv, "ClockControl"); - ParentControl* pc = ParentControl::instance(); - pc->start(); // make initial transition + ParentControl* pc = ParentControl::instance(); + pc->start(); // make initial transition - ClockControl cc(argv[1]); - cc.start(); // make initial transition + ClockControl cc(argv[1]); + cc.start(); // make initial transition - GCFScheduler::instance()->run(); + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return 0; } diff --git a/MAC/APL/StationCU/src/HardwareMonitor/ECMonitor.cc b/MAC/APL/StationCU/src/HardwareMonitor/ECMonitor.cc index 344af412a745a6eeb81d9d5be86aa2d25381f5c6..f2934a228ad9991a50d0eb34f628c8b132664392 100644 --- a/MAC/APL/StationCU/src/HardwareMonitor/ECMonitor.cc +++ b/MAC/APL/StationCU/src/HardwareMonitor/ECMonitor.cc @@ -24,6 +24,7 @@ #include <Common/ParameterSet.h> #include <Common/LofarLogger.h> #include <Common/LofarConstants.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include <Common/hexdump.h> diff --git a/MAC/APL/StationCU/src/HardwareMonitor/HardwareMonitorMain.cc b/MAC/APL/StationCU/src/HardwareMonitor/HardwareMonitorMain.cc index f671ca5b3a421f529ff1bbb7034bdcf2c5824f7d..281322d4a6f98718a6e6cd639e695b2a87878732 100644 --- a/MAC/APL/StationCU/src/HardwareMonitor/HardwareMonitorMain.cc +++ b/MAC/APL/StationCU/src/HardwareMonitor/HardwareMonitorMain.cc @@ -42,65 +42,70 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char* argv[]) { - // args: cntlrname, parentHost, parentService - GCFScheduler::instance()->init(argc, argv, "HardwareMonitor"); + try { + // args: cntlrname, parentHost, parentService + GCFScheduler::instance()->init(argc, argv, "HardwareMonitor"); - LOG_INFO("MACProcessScope: LOFAR_PermSW_HardwareMonitor"); - LOG_INFO(Version::getInfo<StationCUVersion>("HardwareMonitor")); + LOG_INFO("MACProcessScope: LOFAR_PermSW_HardwareMonitor"); + LOG_INFO(Version::getInfo<StationCUVersion>("HardwareMonitor")); - // for debugging purposes - registerProtocol (RSP_PROTOCOL, RSP_PROTOCOL_STRINGS); - registerProtocol (TBB_PROTOCOL, TBB_PROTOCOL_STRINGS); - registerProtocol (DP_PROTOCOL, DP_PROTOCOL_STRINGS); + // for debugging purposes + registerProtocol (RSP_PROTOCOL, RSP_PROTOCOL_STRINGS); + registerProtocol (TBB_PROTOCOL, TBB_PROTOCOL_STRINGS); + registerProtocol (DP_PROTOCOL, DP_PROTOCOL_STRINGS); - // Create tasks and call initial routines - RSPMonitor* rsp(0); - TBBMonitor* tbb(0); - ECMonitor* ec(0); - - // monitor RSP? - if (globalParameterSet()->getUint32("WatchRSPboards",0)) { - rsp = new RSPMonitor("RSPMonitor"); - rsp->start(); - LOG_INFO("Monitoring the RSP boards"); - } + // Create tasks and call initial routines + RSPMonitor* rsp(0); + TBBMonitor* tbb(0); + ECMonitor* ec(0); + + // monitor RSP? + if (globalParameterSet()->getUint32("WatchRSPboards",0)) { + rsp = new RSPMonitor("RSPMonitor"); + rsp->start(); + LOG_INFO("Monitoring the RSP boards"); + } - // monitor TBB? - if (globalParameterSet()->getUint32("WatchTBboards",0)) { - tbb = new TBBMonitor("TBBMonitor"); - tbb->start(); - LOG_INFO("Monitoring the TB boards"); - } + // monitor TBB? + if (globalParameterSet()->getUint32("WatchTBboards",0)) { + tbb = new TBBMonitor("TBBMonitor"); + tbb->start(); + LOG_INFO("Monitoring the TB boards"); + } - // monitor EC? - if (globalParameterSet()->getUint32("WatchEnvCntrl",0)) { - ec = new ECMonitor("ECMonitor"); - ec->start(); - LOG_INFO("Monitoring the Environment Controller"); - } + // monitor EC? + if (globalParameterSet()->getUint32("WatchEnvCntrl",0)) { + ec = new ECMonitor("ECMonitor"); + ec->start(); + LOG_INFO("Monitoring the Environment Controller"); + } - // sanity check - if (!tbb && !rsp && !ec) { - LOG_FATAL_STR("Non of the monitortask (WatchRSPboards, WatchTBboards, WatchEnvCntrl) " - "was switched on in the configfile, terminating program"); - return (0); - } + // sanity check + if (!tbb && !rsp && !ec) { + LOG_FATAL_STR("Non of the monitortask (WatchRSPboards, WatchTBboards, WatchEnvCntrl) " + "was switched on in the configfile, terminating program"); + return (0); + } - // ok, we have something to do, do it. - GCFScheduler::instance()->setDelayedQuit(true); // we need a clean shutdown - GCFScheduler::instance()->run(); // until stop was called + // ok, we have something to do, do it. + GCFScheduler::instance()->setDelayedQuit(true); // we need a clean shutdown + GCFScheduler::instance()->run(); // until stop was called - if (rsp) { - rsp->quit(); // let task quit nicely - } - if (tbb) { - tbb->quit(); // let task quit nicely - } - if (ec) { - ec->quit(); // let task quit nicely + if (rsp) { + rsp->quit(); // let task quit nicely + } + if (tbb) { + tbb->quit(); // let task quit nicely + } + if (ec) { + ec->quit(); // let task quit nicely + } + double postRunTime = globalParameterSet()->getDouble("closingDelay", 1.5); + GCFScheduler::instance()->run(postRunTime); // let processes die. + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; } - double postRunTime = globalParameterSet()->getDouble("closingDelay", 1.5); - GCFScheduler::instance()->run(postRunTime); // let processes die. return (0); } diff --git a/MAC/APL/StationCU/src/HardwareMonitor/TBBMonitor.cc b/MAC/APL/StationCU/src/HardwareMonitor/TBBMonitor.cc index e6ecabf756501d1d96282a0b857cf9f2756ddd5f..6e625f85a5f9f9025eaf4d7db426d3ff95a663f3 100644 --- a/MAC/APL/StationCU/src/HardwareMonitor/TBBMonitor.cc +++ b/MAC/APL/StationCU/src/HardwareMonitor/TBBMonitor.cc @@ -22,6 +22,7 @@ #include <lofar_config.h> #include <Common/LofarLogger.h> #include <Common/LofarConstants.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include <GCF/PVSS/GCF_PVTypes.h> @@ -38,9 +39,6 @@ #include "RCUConstants.h" #include "PVSSDatapointDefs.h" -#include <boost/date_time/posix_time/posix_time.hpp> - -using namespace boost::posix_time; namespace LOFAR { using namespace GCF::TM; diff --git a/MAC/APL/StationCU/src/StationControl/StationControl.cc b/MAC/APL/StationCU/src/StationControl/StationControl.cc index 1277b8e67c0199aed60185698d8a363b4a780554..798f6c779acd78e76d1b23b3d576350a35d52f2f 100644 --- a/MAC/APL/StationCU/src/StationControl/StationControl.cc +++ b/MAC/APL/StationCU/src/StationControl/StationControl.cc @@ -34,7 +34,6 @@ #include <ApplCommon/StationConfig.h> #include <ApplCommon/StationInfo.h> #include <ApplCommon/AntennaSets.h> -//#include <ApplCommon/PosixTime.h> #include <Common/ParameterSet.h> #include <GCF/PVSS/GCF_PVTypes.h> @@ -55,13 +54,10 @@ #include "Clock_Protocol.ph" #include <StationCU/Package__Version.h> -#include <boost/date_time/posix_time/posix_time.hpp> - using namespace LOFAR::GCF::TM; using namespace LOFAR::GCF::PVSS; using namespace LOFAR::GCF::RTDB; using namespace LOFAR::APL::RTDBCommon; -using namespace boost::posix_time; using namespace std; namespace LOFAR { @@ -852,6 +848,7 @@ GCFEvent::TResult StationControl::startObservation_state(GCFEvent& event, GCFPor LOG_INFO_STR("new observation also uses clock " << itsClock); itsTimerPort->setTimer(0.0); } + break; } case 1: { @@ -870,6 +867,7 @@ GCFEvent::TResult StationControl::startObservation_state(GCFEvent& event, GCFPor CLKCTRLSetSplittersEvent setEvent; setEvent.splittersOn = splitterState; itsClkCtrlPort->send(setEvent); // will result in CLKCTRL_SET_SPLITTERS_ACK + break; } case 2: { @@ -901,6 +899,7 @@ GCFEvent::TResult StationControl::startObservation_state(GCFEvent& event, GCFPor LOG_INFO_STR("new observation also uses bitmode " << itsBitmode); itsTimerPort->setTimer(0.0); } + break; } default: { @@ -912,6 +911,7 @@ GCFEvent::TResult StationControl::startObservation_state(GCFEvent& event, GCFPor LOG_INFO("Going back to operational state"); itsStartingObs = itsObsMap.end(); TRAN(StationControl::operational_state); + break; } } } diff --git a/MAC/APL/StationCU/src/StationControl/StationControlMain.cc b/MAC/APL/StationCU/src/StationControl/StationControlMain.cc index 38ff113ea9e627c501b9ae2e5eaa6a946e4f8969..f199efe9479233092cfcf823b57fe4c4c92dde7f 100644 --- a/MAC/APL/StationCU/src/StationControl/StationControlMain.cc +++ b/MAC/APL/StationCU/src/StationControl/StationControlMain.cc @@ -37,26 +37,31 @@ int main(int argc, char* argv[]) { using LOFAR::basename; - // args: cntlrname, parentHost, parentService - GCFScheduler::instance()->init(argc, argv, basename(argv[0])); + try { + // args: cntlrname, parentHost, parentService + GCFScheduler::instance()->init(argc, argv, basename(argv[0])); - ParentControl* pc = ParentControl::instance(); - pc->start(); // make initial transition + ParentControl* pc = ParentControl::instance(); + pc->start(); // make initial transition - ChildControl* cc = ChildControl::instance(); - cc->start(); // make initial transition + ChildControl* cc = ChildControl::instance(); + cc->start(); // make initial transition - string myName; - if (argc < 2) { // started by swlevel? - myName = myHostname(false) + ":" + basename(argv[0]); - } - else { - myName = argv[1]; - } - StationControl sc(myName.c_str()); - sc.start(); // make initial transition + string myName; + if (argc < 2) { // started by swlevel? + myName = myHostname(false) + ":" + basename(argv[0]); + } + else { + myName = argv[1]; + } + StationControl sc(myName.c_str()); + sc.start(); // make initial transition - GCFScheduler::instance()->run(); + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return 0; } diff --git a/MAC/APL/StationCU/src/TBBControl/TBBControl.cc b/MAC/APL/StationCU/src/TBBControl/TBBControl.cc index 14a33bb0c7f105f14dfd22026fd964120edaf447..e5c517cbdd45ef26fd3fa8d9c0a278997f60737f 100644 --- a/MAC/APL/StationCU/src/TBBControl/TBBControl.cc +++ b/MAC/APL/StationCU/src/TBBControl/TBBControl.cc @@ -55,11 +55,7 @@ #include "PVSSDatapointDefs.h" #include "TBBObservation.h" -#include <boost/date_time/posix_time/posix_time.hpp> - -using namespace boost::posix_time; using namespace std; - namespace LOFAR { using namespace GCF::TM; using namespace GCF::PVSS; diff --git a/MAC/APL/StationCU/src/TBBControl/TBBControl.h b/MAC/APL/StationCU/src/TBBControl/TBBControl.h index 3a1c2b73f5558acc8c01f72df57e1e5ce3baa144..f3442526106131bfcc338c05766c1c8e2a1ffb8c 100644 --- a/MAC/APL/StationCU/src/TBBControl/TBBControl.h +++ b/MAC/APL/StationCU/src/TBBControl/TBBControl.h @@ -26,6 +26,7 @@ //# Common Includes #include <Common/LofarLogger.h> #include <Common/lofar_string.h> +#include <Common/lofar_datetime.h> #include <APL/APLCommon/AntennaField.h> //# ACC Includes diff --git a/MAC/APL/StationCU/src/TBBControl/TBBControlMain.cc b/MAC/APL/StationCU/src/TBBControl/TBBControlMain.cc index 8b99850b0e7775ca5bca42d05dc256d5cc65d467..162fcef5388c449a8a4ae84f592825620fd1a589 100644 --- a/MAC/APL/StationCU/src/TBBControl/TBBControlMain.cc +++ b/MAC/APL/StationCU/src/TBBControl/TBBControlMain.cc @@ -34,17 +34,22 @@ Exception::TerminateHandler t(Exception::terminate); int main(int argc, char* argv[]) { - // args: cntlrname, parentHost, parentService - GCFScheduler::instance()->init(argc, argv, argv[0]); - GCFScheduler::instance()->disableQueue(); // run as fast as possible - - ParentControl* pc = ParentControl::instance(); - pc->start(); // make initial transition - - TBBControl tc(argv[1]); - tc.start(); // make initial transition - - GCFScheduler::instance()->run(); + try { + // args: cntlrname, parentHost, parentService + GCFScheduler::instance()->init(argc, argv, argv[0]); + GCFScheduler::instance()->disableQueue(); // run as fast as possible + + ParentControl* pc = ParentControl::instance(); + pc->start(); // make initial transition + + TBBControl tc(argv[1]); + tc.start(); // make initial transition + + GCFScheduler::instance()->run(); + } catch( Exception &ex ) { + LOG_FATAL_STR("Caught exception: " << ex); + return 1; + } return 0; } diff --git a/MAC/APL/StationCU/src/TBBControl/TBBObservation.cc b/MAC/APL/StationCU/src/TBBControl/TBBObservation.cc index 0633ae72f1a4ee90ef7a4822c96ce5bff1f33eb4..be208369e8dceb2c983a350f89d77d3091b65951 100644 --- a/MAC/APL/StationCU/src/TBBControl/TBBObservation.cc +++ b/MAC/APL/StationCU/src/TBBControl/TBBObservation.cc @@ -25,6 +25,7 @@ //# Includes #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include "TBBObservation.h" diff --git a/MAC/APL/TestCtlr/CMakeLists.txt b/MAC/APL/TestCtlr/CMakeLists.txt index 13a5ee5761330c911cacdb978fdb7bf5a2ca923d..5cd9c6b2998b58c1c5bd6dda15ba708ec8d06478 100644 --- a/MAC/APL/TestCtlr/CMakeLists.txt +++ b/MAC/APL/TestCtlr/CMakeLists.txt @@ -3,7 +3,7 @@ lofar_package(TestCtlr 1.0 DEPENDS Common ApplCommon APLCommon MACIO GCFTM) include(LofarFindPackage) -lofar_find_package(Boost REQUIRED date_time) +lofar_find_package(Boost REQUIRED) add_definitions(-DBOOST_DISABLE_THREADS) diff --git a/MAC/APL/TestCtlr/src/ControllerMenu.h b/MAC/APL/TestCtlr/src/ControllerMenu.h index 4c79578cc26260c8ad3262a72addc000988fef6d..f30bedb6f2ad3b4eca936ee270f2f9cea40c38c6 100644 --- a/MAC/APL/TestCtlr/src/ControllerMenu.h +++ b/MAC/APL/TestCtlr/src/ControllerMenu.h @@ -38,13 +38,12 @@ //# Common Includes #include <Common/lofar_string.h> #include <Common/lofar_vector.h> +#include <Common/lofar_datetime.h> #include <Common/LofarLogger.h> //# ACC Includes #include <Common/ParameterSet.h> -#include <boost/date_time/posix_time/posix_time.hpp> - // forward declaration namespace LOFAR { @@ -57,7 +56,6 @@ using GCF::TM::GCFPort; using GCF::TM::GCFPortInterface; using GCF::TM::GCFTask; using APLCommon::ChildControl; -using boost::posix_time::ptime; class ControllerMenu : public GCFTask { diff --git a/MAC/APL/VHECR/include/VHECR/VHECRTask.h b/MAC/APL/VHECR/include/VHECR/VHECRTask.h index 12393084ff40ee96054536df05e9f1cd74edf75d..cbc424966da70cd0c1ab654dc7a285d505c38396 100644 --- a/MAC/APL/VHECR/include/VHECR/VHECRTask.h +++ b/MAC/APL/VHECR/include/VHECR/VHECRTask.h @@ -27,6 +27,7 @@ #include <Common/ParameterSet.h> #include <Common/LofarLogger.h> #include <Common/lofar_string.h> +#include <Common/lofar_datetime.h> //# local includes diff --git a/MAC/APL/VHECR/src/TBBReadCmd.cc b/MAC/APL/VHECR/src/TBBReadCmd.cc index 182992613b8d7b5a921b64703db8004902ad78c2..97156db8d67e59afe2ae89ea3058d659c346ca34 100644 --- a/MAC/APL/VHECR/src/TBBReadCmd.cc +++ b/MAC/APL/VHECR/src/TBBReadCmd.cc @@ -25,14 +25,12 @@ //# Includes #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <VHECR/TBBReadCmd.h> -#include <boost/date_time/posix_time/posix_time.hpp> namespace LOFAR { namespace VHECR { -using namespace boost::posix_time; - // // TBBReadCmd(...) // diff --git a/MAC/APL/VHECR/src/TBBTrigger.cc b/MAC/APL/VHECR/src/TBBTrigger.cc index 39e908b082d7261f10b845ca4596aeab22d4bbe0..77ce2f65dba5e1aaa290bf547e5d8ecf515e02b2 100644 --- a/MAC/APL/VHECR/src/TBBTrigger.cc +++ b/MAC/APL/VHECR/src/TBBTrigger.cc @@ -25,6 +25,7 @@ //# Includes #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include "VHECR/TBBTrigger.h" // path for online use diff --git a/MAC/APL/VHECR/src/VHECRsettings.cc b/MAC/APL/VHECR/src/VHECRsettings.cc index 228e23322553198ea1af698c5b30397bb03e35cc..2366d0f71af925b9728f9f9c5119c11645fbf2c8 100644 --- a/MAC/APL/VHECR/src/VHECRsettings.cc +++ b/MAC/APL/VHECR/src/VHECRsettings.cc @@ -25,6 +25,7 @@ //# Includes #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include "VHECR/VHECRsettings.h" diff --git a/MAC/Deployment/data/bin/load_OTDB_comps.cc b/MAC/Deployment/data/bin/load_OTDB_comps.cc index fca64ba2b888d954bbc014961e2825217115f7e9..a0f8db51ae6045e9fce87de849f1cc83ce37b46a 100644 --- a/MAC/Deployment/data/bin/load_OTDB_comps.cc +++ b/MAC/Deployment/data/bin/load_OTDB_comps.cc @@ -29,7 +29,6 @@ #include <Common/lofar_fstream.h> #include <Common/lofar_string.h> #include <Common/lofar_vector.h> -#include <Common/lofar_iomanip.h> #include <Common/Exception.h> #include <OTDB/TreeMaintenance.h> diff --git a/MAC/GCF/LogSys/KVLogSys/src/KeyValueLoggerMaster.cc b/MAC/GCF/LogSys/KVLogSys/src/KeyValueLoggerMaster.cc index 444ad67cf5a6b5178b704853d562bb1c6998d9d6..ac2fd2e1e4840a5dcc3e498732d3f1f5581a8d3f 100644 --- a/MAC/GCF/LogSys/KVLogSys/src/KeyValueLoggerMaster.cc +++ b/MAC/GCF/LogSys/KVLogSys/src/KeyValueLoggerMaster.cc @@ -33,6 +33,7 @@ #include <OTDB/TreeTypeConv.h> #include <OTDB/TreeStateConv.h> #include <OTDB/ClassifConv.h> +#include <Common/lofar_datetime.h> namespace LOFAR { using namespace OTDB; diff --git a/MAC/MACIO/CMakeLists.txt b/MAC/MACIO/CMakeLists.txt index f30d81ebc7d89ef4cca014dfbaacd933d3e6160a..9c6b261c8aa9e6a5db307575c9070b545e67b46e 100644 --- a/MAC/MACIO/CMakeLists.txt +++ b/MAC/MACIO/CMakeLists.txt @@ -1,6 +1,6 @@ # $Id$ -lofar_package(MACIO 1.0 DEPENDS ApplCommon Common) +lofar_package(MACIO 1.0 DEPENDS Common) include(LofarFindPackage) lofar_find_package(Boost COMPONENTS date_time) diff --git a/MAC/MACIO/test/tKVTLogger.cc b/MAC/MACIO/test/tKVTLogger.cc index 63f078e4a02230d49ef5bb6dda6f8c65baae5d6c..c399d9bcac2233db6fe77f62bf93f446eee976a0 100644 --- a/MAC/MACIO/test/tKVTLogger.cc +++ b/MAC/MACIO/test/tKVTLogger.cc @@ -25,6 +25,7 @@ //# Includes #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <MACIO/KVTLogger.h> #include <MACIO/KVT_Protocol.ph> diff --git a/MAC/Navigator2/config/progs.ccu b/MAC/Navigator2/config/progs.ccu index 50869e5d953b4344e9fe559b5d11a11f1635929c..7234d9dea2a73a5c3a59acb226f503d8e81fd8f1 100644 --- a/MAC/Navigator2/config/progs.ccu +++ b/MAC/Navigator2/config/progs.ccu @@ -14,8 +14,9 @@ PVSS00event | always | 30 | 3 | 1 | PVSS00ctrl | always | 30 | 3 | 1 |-f pvss_scripts.lst PVSS00sim | always | 30 | 3 | 1 | PVSS00dist | always | 30 | 3 | 1 | +PVSS00ctrl | once | 30 | 2 | 2 |readStationBGPconnections.ctl +PVSS00ctrl | always | 30 | 2 | 2 |transferMPs.ctl PVSS00ctrl | always | 30 | 2 | 2 |claim.ctl PVSS00ctrl | always | 30 | 2 | 2 |monitorStateChanges.ctl -PVSS00ctrl | once | 30 | 2 | 2 |readStationBGPconnections.ctl PVSS00ctrl | always | 30 | 2 | 2 |monitorStateReset.ctl PVSS00ui | manual | 30 | 2 | 2 |-m para diff --git a/MAC/Navigator2/config/progs.dist.station b/MAC/Navigator2/config/progs.dist.station index 0163de4f87f1d4d94307c4f43b9a98a461d2a205..1456b2e940ba8bf30ace0b3b81c8a6cbba66f3fa 100644 --- a/MAC/Navigator2/config/progs.dist.station +++ b/MAC/Navigator2/config/progs.dist.station @@ -10,8 +10,9 @@ PVSS00event | always | 30 | 3 | 1 | PVSS00ctrl | always | 30 | 3 | 1 |-f pvss_scripts.lst PVSS00sim | always | 30 | 3 | 1 | PVSS00dist | always | 30 | 3 | 1 | -PVSS00ctrl | once | 30 | 2 | 2 |claim.ctl -PVSS00ctrl | always | 30 | 2 | 2 |monitorStateChanges.ctl PVSS00ctrl | once | 30 | 2 | 2 |readStationConfigs.ctl +PVSS00ctrl | always | 30 | 2 | 2 |transferMPs.ctl +PVSS00ctrl | always | 30 | 2 | 2 |claim.ctl +PVSS00ctrl | always | 30 | 2 | 2 |monitorStateChanges.ctl PVSS00ctrl | always | 30 | 2 | 2 |monitorStateReset.ctl PVSS00ui | manual | 30 | 2 | 2 |-m para -display localhost:10.0 diff --git a/MAC/Navigator2/config/progs.maincu b/MAC/Navigator2/config/progs.maincu index af37c7aa87aff90c2e1ab592e136a54984df5ceb..64677f23a81e96527ec599f4fae01817ae2b4576 100644 --- a/MAC/Navigator2/config/progs.maincu +++ b/MAC/Navigator2/config/progs.maincu @@ -10,6 +10,7 @@ PVSS00event | always | 30 | 3 | 1 | PVSS00ctrl | always | 30 | 3 | 1 |-f pvss_scripts.lst PVSS00sim | always | 30 | 3 | 1 | PVSS00dist | always | 30 | 3 | 1 | +PVSS00ctrl | always | 30 | 2 | 2 |transferMPs.ctl PVSS00ctrl | always | 30 | 2 | 2 |claim.ctl PVSS00ctrl | always | 30 | 2 | 2 |monitorStateChanges.ctl PVSS00ctrl | always | 30 | 2 | 2 |monitorStateReset.ctl diff --git a/MAC/Navigator2/config/progs.standalone.station b/MAC/Navigator2/config/progs.standalone.station index dfd4a6710abf356a7a6a7892207f4f1e241e6093..53bdf6f4b0e3e93a07645a75da5faa5eb7f83cc4 100644 --- a/MAC/Navigator2/config/progs.standalone.station +++ b/MAC/Navigator2/config/progs.standalone.station @@ -9,9 +9,10 @@ PVSS00valarch | always | 30 | 3 | 1 |-num 2 PVSS00event | always | 30 | 3 | 1 | PVSS00ctrl | always | 30 | 3 | 1 |-f pvss_scripts.lst PVSS00sim | always | 30 | 3 | 1 | -PVSS00ctrl | once | 30 | 2 | 2 |claim.ctl -PVSS00ctrl | always | 30 | 2 | 2 |monitorStateChanges.ctl PVSS00ctrl | once | 30 | 2 | 2 |readStationConfigs.ctl +PVSS00ctrl | always | 30 | 2 | 2 |claim.ctl +PVSS00ctrl | always | 30 | 2 | 2 |transferMPs.ctl +PVSS00ctrl | always | 30 | 2 | 2 |monitorStateChanges.ctl PVSS00ctrl | always | 30 | 2 | 2 |monitorStateReset.ctl PVSS00ctrl | always | 30 | 2 | 2 |monitorStationAlarms.ctl PVSS00ui | manual | 30 | 2 | 2 |-m para -display localhost:10.0 diff --git a/MAC/Navigator2/panels/Processes/CEP_Processes.pnl b/MAC/Navigator2/panels/Processes/CEP_Processes.pnl index 94cf82ae878db3def26dc8dd64f8f8acad7c252f..4a178dc17d85d6d0a70c86f161f53303646d233e 100644 --- a/MAC/Navigator2/panels/Processes/CEP_Processes.pnl +++ b/MAC/Navigator2/panels/Processes/CEP_Processes.pnl @@ -374,7 +374,7 @@ LANG:1 0 3 41 "PANEL_REF42" -1 "objects\\Processes\\controller_small.pnl" 0 280 T 55 1 0 1 0 15 1 -"$name""SoftwareMonitor" +"$name""Daemons_SoftwareMonitor" 3 42 "PANEL_REF42" -1 "objects\\Processes\\daemon_small.pnl" 0 40 T 55 1 0 1 0 20 1 diff --git a/MAC/Navigator2/panels/Processes/MainCU_Processes.pnl b/MAC/Navigator2/panels/Processes/MainCU_Processes.pnl index e0e6e35b6aeefb4c88f262014908a1a600d2bc30..54a1439643026c914129e00521b776d854122496 100644 --- a/MAC/Navigator2/panels/Processes/MainCU_Processes.pnl +++ b/MAC/Navigator2/panels/Processes/MainCU_Processes.pnl @@ -400,9 +400,9 @@ LANG:1 0 1 "$name""MACScheduler" 3 20 "PANEL_REF21" -1 -"objects\\Processes\\controller_small.pnl" 0 280 T 35 1 0 1 0 -32 +"objects\\Processes\\controller_small.pnl" 0 280 T 35 1 0 1 0 -30 1 -"$name""SoftwareMonitor" +"$name""Daemons_SoftwareMonitor" 3 21 "PANEL_REF22" -1 "objects\\Processes\\daemon_small.pnl" 0 140 T 35 1 0 1 0 12 1 diff --git a/MAC/Navigator2/panels/Processes/Station_Processes.pnl b/MAC/Navigator2/panels/Processes/Station_Processes.pnl index b2bd0c83af1a82cbd7e22058148d40fa48c21d62..04e65629561017e2aa1075a4e1637f70f415974b 100644 --- a/MAC/Navigator2/panels/Processes/Station_Processes.pnl +++ b/MAC/Navigator2/panels/Processes/Station_Processes.pnl @@ -524,5 +524,5 @@ LANG:1 0 3 38 "PANEL_REF39" -1 "objects\\Processes\\controller_small.pnl" 10 470 T 44 1 0 1 -10 14 1 -"$name""SoftwareMonitor" -0 \ No newline at end of file +"$name""Daemons_SoftwareMonitor" +0 diff --git a/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl b/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl index 05fe78fa9d2516ba6f5c0e0ef0e9932cfe9754f0..6f45caea2b8a35a38940d957d457afd60250c8b0 100644 --- a/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl +++ b/MAC/Navigator2/panels/objects/Processes/SWControler_small.pnl @@ -22,10 +22,10 @@ PANEL,-1 -1 388 166 N "_3DFace" 2 if (dpExists(\"MCU001:LOFAR_PermSW_MACScheduler.activeObservations\")) { if (dpConnect(\"observationChanged\", \"MCU001:LOFAR_PermSW_MACScheduler.activeObservations:_online.._value\", \"MCU001:LOFAR_PermSW_MACScheduler.activeObservations:_online.._invalid\") == -1) { - LOG_ERROR(\"Observation_small.pnl:main|Couldn't connect to: MCU001:LOFAR_PermSW_MACScheduler.activeObservations\"); + LOG_ERROR(\"SWController_small.pnl:main|Couldn't connect to: MCU001:LOFAR_PermSW_MACScheduler.activeObservations\"); } } else { - if (!isStandalone()) LOG_ERROR(\"Observation_small.pnl:main|Couldn't find DP to connect to: MCU001:LOFAR_PermSW_MACScheduler.activeObservations\"); + if (!isStandalone()) LOG_ERROR(\"SWController_small.pnl:main|Couldn't find DP to connect to: MCU001:LOFAR_PermSW_MACScheduler.activeObservations\"); } } else { reload(); @@ -118,7 +118,8 @@ void dblClick() { if (dpExists(baseDP) ) { LOG_DEBUG(\"SWcontroller_small.pnl:DoubleClick|Setting currentDatapoint from : \"+g_currentDatapoint+\" to \"+baseDP); g_currentDatapoint=baseDP; - navPanel_setEvent(station,\"ChangePanel\"); + //we also have to set the tabctrl to think this was initiated from the ProcessesTab, otherwise we will get the wrong panel. + navPanel_setEvent(\"Processes\",\"ChangeTab\"); } // set delay to avoid click event will be triggered diff --git a/MAC/Navigator2/panels/objects/Processes/daemon_big.pnl b/MAC/Navigator2/panels/objects/Processes/daemon_big.pnl index eaa9901f02d2b0fa8cefc1cf076500b9c1077904..46d485e4b37b53bf3a5937bc11eafdc8f77a7449 100644 --- a/MAC/Navigator2/panels/objects/Processes/daemon_big.pnl +++ b/MAC/Navigator2/panels/objects/Processes/daemon_big.pnl @@ -1,4 +1,4 @@ -V 10 +V 11 1 LANG:1 0 PANEL,-1 -1 1013 750 N "_3DFace" 1 @@ -45,8 +45,6 @@ PANEL,-1 -1 1013 750 N "_3DFace" 1 showSelfState(baseDP); reload(); - - LOG_DEBUG($daemonName+\".pnl:main|HardwareTree found: \"+ result); } updateStates(string dp1, string message, @@ -153,9 +151,8 @@ LANG:1 0 0 1 -LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" - 28 168 992 462 +LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0 +0 28 168 992 462 EE 1 0 1 5 1 "time" 12 1 0 "s" 1 LANG:1 4 time E @@ -191,9 +188,8 @@ LANG:1 0 LANG:1 2 #1 10 30 1 -LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-13-*-100-100-*-*-iso8859-1|-13,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" -0 1 2 1 7 +LANG:1 33 MS Shell Dlg,-1,13,5,50,0,0,0,0,0 +0 0 1 2 1 7 1 0 1 21 0 "" 1 0 @@ -210,9 +206,8 @@ LANG:1 0 0 1 -LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" - 138 48 991 69 +LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0 +0 138 48 991 69 2 "0s" 0 0 0 0 0 -1 E E E 2 3 "TopLabel" @@ -227,12 +222,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 1 E 480 10 677 31 +E E 0 1 1 2 1 E U 1 E 480 10 677 30 0 2 2 "0s" 0 0 0 192 0 0 480 10 1 1 -LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-16-*-100-100-*-*-iso8859-1|-16,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" -1 +LANG:1 33 MS Shell Dlg,-1,16,5,75,0,0,0,0,0 +0 1 LANG:1 22 Station: CTStartDaemon 2 7 "PRIMITIVE_TEXT2" @@ -247,12 +241,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 1 E 34 84 115 98 +E E 0 1 1 2 1 E U 1 E 34 84 115 97 0 2 2 "0s" 0 0 0 192 0 0 34 84 1 1 -LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" -1 +LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0 +0 1 LANG:1 14 Current Action 2 8 "PRIMITIVE_TEXT3" @@ -267,12 +260,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 1 E 34 51 128 65 +E E 0 1 1 2 1 E U 1 E 34 51 128 64 0 2 2 "0s" 0 0 0 192 0 0 34 51 1 1 -LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" -1 +LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0 +0 1 LANG:1 15 Status Message: 14 9 "processAction" @@ -287,9 +279,8 @@ LANG:1 0 0 1 -LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" - 138 78 432 99 +LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0 +0 138 78 432 99 2 "0s" 0 0 0 0 0 -1 E E E 2 10 "PRIMITIVE_TEXT4" @@ -304,12 +295,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 1 E 34 114 106 128 +E E 0 1 1 2 1 E U 1 E 34 114 106 127 0 2 2 "0s" 0 0 0 192 0 0 34 114 1 1 -LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" -1 +LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0 +0 1 LANG:1 13 Current Error 14 11 "processError" @@ -324,9 +314,8 @@ LANG:1 0 0 1 -LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" - 138 108 432 129 +LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0 +0 138 108 432 129 2 "0s" 0 0 0 0 0 -1 E E E 2 12 "PRIMITIVE_TEXT5" @@ -341,12 +330,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 1 E 34 150 119 164 +E E 0 1 1 2 1 E U 1 E 34 150 119 163 0 2 2 "0s" 0 0 0 192 0 0 34 150 1 1 -LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" -1 +LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0 +0 1 LANG:1 13 Log Messages: 2 13 "PRIMITIVE_TEXT6" @@ -361,12 +349,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 1 E 32 472 124 486 +E E 0 1 1 2 1 E U 1 E 32 472 124 485 0 2 2 "0s" 0 0 0 192 0 0 32 472 1 1 -LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" -1 +LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0 +0 1 LANG:1 14 Daemon Values: 2 15 "PRIMITIVE_TEXT7" @@ -381,12 +368,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 1 E 462 84 516 98 +E E 0 1 1 2 1 E U 1 E 462 84 516 97 0 2 2 "0s" 0 0 0 192 0 0 462 84 1 1 -LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" -1 +LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0 +0 1 LANG:1 9 StartTime 2 16 "PRIMITIVE_TEXT8" @@ -401,12 +387,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 1 E 462 114 515 128 +E E 0 1 1 2 1 E U 1 E 462 114 515 127 0 2 2 "0s" 0 0 0 192 0 0 462 114 1 1 -LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" -1 +LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0 +0 1 LANG:1 8 StopTime 14 17 "processStartTime" @@ -421,9 +406,8 @@ LANG:1 0 0 1 -LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" - 530 78 824 99 +LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0 +0 530 78 824 99 2 "0s" 0 0 0 0 0 -1 E E E 14 18 "processStopTime" @@ -438,9 +422,8 @@ LANG:1 0 0 1 -LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" - 530 108 824 129 +LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0 +0 530 108 824 129 2 "0s" 0 0 0 0 0 -1 E E E 2 19 "PRIMITIVE_TEXT9" @@ -455,12 +438,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 1 E 852 84 869 98 +E E 0 1 1 2 1 E U 1 E 852 84 869 97 0 2 2 "0s" 0 0 0 192 0 0 852 84 1 1 -LANG:1 101 -*-MS Shell Dlg-bold-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,758,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" -1 +LANG:1 33 MS Shell Dlg,-1,11,5,75,0,0,0,0,0 +0 1 LANG:1 3 ID: 14 20 "processID" @@ -475,9 +457,8 @@ LANG:1 0 0 1 -LANG:1 98 -*-MS Shell Dlg-*-r-normal-*-11-*-100-100-*-*-iso8859-1|-11,0,0,0,505,0,0,0,0,0,0,0,0,MS Shell Dlg -0 "" - 870 78 990 99 +LANG:1 33 MS Shell Dlg,-1,11,5,50,0,0,0,0,0 +0 870 78 990 99 2 "0s" 0 0 0 0 0 -1 E E E 0 LAYER, 1 @@ -508,7 +489,7 @@ LAYER, 7 1 LANG:1 0 0 -3 0 "selfState" +3 0 "selfState" -1 "objects\\lofar_self_state.pnl" 9.500000000000011 10.5 T 1 1 0 1 0.499999999999993 2.5 0 -0 \ No newline at end of file +0 diff --git a/MAC/Navigator2/panels/objects/Processes/stationSWLevelView.pnl b/MAC/Navigator2/panels/objects/Processes/stationSWLevelView.pnl index 932c6f11710c0c24af609fa6287edca8a8c40ce2..c38abba4a042ebb95737e7d3d41f8cf8ba3b5523 100644 --- a/MAC/Navigator2/panels/objects/Processes/stationSWLevelView.pnl +++ b/MAC/Navigator2/panels/objects/Processes/stationSWLevelView.pnl @@ -103,7 +103,7 @@ LANG:1 0 3 1 "PANEL_REF1" -1 "objects\\Processes\\SWControler_small.pnl" 0 0 T 18 U 2 -"$name""PermSW_SoftwareMonitor" +"$name""PermSW_Daemons_SoftwareMonitor" "$station""$station" 3 2 "PANEL_REF2" -1 "objects\\Processes\\SWControler_small.pnl" 20 0 T 19 1 0 1 -4 0 diff --git a/MAC/Navigator2/panels/objects/swlevel.pnl b/MAC/Navigator2/panels/objects/swlevel.pnl index c2b4d265795bcd1b89b8c505829619d967690bfa..a88023126f034dd3a4a857f2634977bfb6b8106f 100644 --- a/MAC/Navigator2/panels/objects/swlevel.pnl +++ b/MAC/Navigator2/panels/objects/swlevel.pnl @@ -10,7 +10,7 @@ PANEL,-1 -1 251 88 N "_3DFace" 1 station = $station; station_text.text = station; - baseDP = station+\":LOFAR_PermSW_SoftwareMonitor\"; + baseDP = station+\":LOFAR_PermSW_Daemons_SoftwareMonitor\"; if (dpExists(baseDP)) { showLevels(); @@ -19,14 +19,56 @@ PANEL,-1 -1 251 88 N "_3DFace" 1 } } " 0 - E E E E 1 -1 -1 0 0 0 + E "main(int x, int y) +{ + click(); +}" 0 + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 1 -1 -1 0 0 0 ""0 1 E "#uses \"navPanel.ctl\" string station = \"\"; string baseDP=\"\"; +bool bDoubleClicked = false; int filled=0; +// routine for single mouse click +void click() { + // set delay in case double click was meant + delay(0, 100); + if (!bDoubleClicked) { + navPanel_setEvent(station,\"EventClick\"); + } +} + +// routine for double mouse click +void dblClick() { + // indicate this is a doubleClick + bDoubleClicked = true; + + if (dpExists(baseDP) ) { + LOG_DEBUG(\"swlevel.pnl:DoubleClick|Setting currentDatapoint from : \"+g_currentDatapoint+\" to \"+baseDP); + g_currentDatapoint=baseDP; + navPanel_setEvent(station,\"ChangePanel\"); + } + + // set delay to avoid click event will be triggered + delay(0, 500); + bDoubleClicked = false; +} + +// routine for right mouse click +void rClick() { + +} // **************************************** // Name: showLogging @@ -155,7 +197,15 @@ LANG:1 0 "level1_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 0 0 0 0 0 0 E E E 0 @@ -164,12 +214,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -180 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -180 -140 1 E 230 150 234 159 2 1 "station_text" "" 1 10 9 E E E 1 E 1 E N "_WindowText" E N "_Transparent" E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 1 0 0 0 0 0 E E E 0 @@ -178,7 +240,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E U 0 E 10 9 38 22 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E U 0 E 10 9 38 22 0 2 2 "0s" 0 0 0 192 0 0 10 9 1 1 LANG:1 34 MS Shell Dlg 2,8,-1,5,50,0,0,0,0,0 @@ -188,7 +254,15 @@ LANG:1 5 cs001 "level2_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 2 0 0 0 0 0 E E E 0 @@ -197,12 +271,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -175 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -175 -140 1 E 230 150 234 159 6 3 "level3_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 3 0 0 0 0 0 E E E 0 @@ -211,12 +297,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -170 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -170 -140 1 E 230 150 234 159 6 4 "level4_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 4 0 0 0 0 0 E E E 0 @@ -225,12 +323,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -165 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -165 -140 1 E 230 150 234 159 6 5 "level5_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 5 0 0 0 0 0 E E E 0 @@ -239,12 +349,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -160 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -160 -140 1 E 230 150 234 159 6 6 "level6_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 6 0 0 0 0 0 E E E 0 @@ -253,12 +375,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -155 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -155 -140 1 E 230 150 234 159 6 7 "level7_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 7 0 0 0 0 0 E E E 0 @@ -267,12 +401,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -150 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -150 -140 1 E 230 150 234 159 6 8 "level8_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 8 0 0 0 0 0 E E E 0 @@ -281,12 +427,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -145 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -145 -140 1 E 230 150 234 159 6 9 "level9_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 9 0 0 0 0 0 E E E 0 @@ -295,12 +453,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -140 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -140 -140 1 E 230 150 234 159 6 10 "level10_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 10 0 0 0 0 0 E E E 0 @@ -309,12 +479,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -135 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -135 -140 1 E 230 150 234 159 6 11 "level11_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 11 0 0 0 0 0 E E E 0 @@ -323,12 +505,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -130 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -130 -140 1 E 230 150 234 159 6 12 "level12_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 12 0 0 0 0 0 E E E 0 @@ -337,12 +531,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -125 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -125 -140 1 E 230 150 234 159 6 13 "level13_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 13 0 0 0 0 0 E E E 0 @@ -351,12 +557,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -120 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -120 -140 1 E 230 150 234 159 6 14 "level14_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 14 0 0 0 0 0 E E E 0 @@ -365,12 +583,24 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -115 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -115 -140 1 E 230 150 234 159 6 15 "level15_text" "" 1 230 150 E E E 1 E 1 E N {0,0,0} E N {255,255,255} E E - E E + "main() +{ + rClick(); +}" 0 + "main(int x, int y) +{ + dblClick(); +}" 0 + 15 0 0 0 0 0 E E E 0 @@ -379,7 +609,11 @@ LANG:1 0 1 "dashclr"N "_Transparent" -E E 0 1 1 2 1 E 1 0 1 -110 -140 1 E 230 150 234 159 +E "main(int x, int y) +{ + click(); +}" 0 + 0 1 1 2 1 E 1 0 1 -110 -140 1 E 230 150 234 159 0 LAYER, 1 1 diff --git a/MAC/Navigator2/scripts/transferMPs.ctl b/MAC/Navigator2/scripts/transferMPs.ctl new file mode 100644 index 0000000000000000000000000000000000000000..df3585c138e95c0c3b66906f9f6587ad801625db --- /dev/null +++ b/MAC/Navigator2/scripts/transferMPs.ctl @@ -0,0 +1,121 @@ +#uses "da.ctl" + +// To copy all _mp defined functionality (archives , dp_fct etc to the real DP's +// we use this script after setup (or each time that the scriptInfo.paramDone is set to false) +// we run this script +bool bDebug=false; + +void main() +{ + // connect to debugflag to be able to switch debug on/off during run + if (dpExists("scriptInfo.transferMPs.debug")) { + dpConnect("debugCB",true,"scriptInfo.transferMPs.debug"); + } else { + DebugTN("transferMPs.ctl:main|scriptInfo.transferMPs.runDone point not found in Database"); + exit(); + } + + if (dpExists("scriptInfo.transferMPs.runDone")) { + dpConnect("startTransferMP",true,"scriptInfo.transferMPs.runDone"); + } else { + DebugTN("transferMPs.ctl:main|scriptInfo.transferMPs.runDone point not found in Database"); + exit(); + } +} + +private void debugCB(string dp1, bool debug) { + if (bDebug != debug) bDebug=debug; +} + +// Transfer all _mp_settings to all DP's +private void startTransferMP(string dp1, bool done ) { + int i, j, k, l, ll, l1, iError; + dyn_float df; + dyn_string dsConfigs, ds; + string sDestinationDPE; + + if (done) return; + + DebugTN("transferMPs.ctl:main|start transfer of MPconfigs to all DP's"); + + + string query="SELECT '_original.._value' FROM '_mp_*'"; + dyn_dyn_anytype tab; + dyn_string dps; + dpQuery(query,tab); + string olddp=""; + for(int z=2;z<=dynlen(tab);z++) { + string dp = dpSubStr(tab[z][1],DPSUB_DP); + if (olddp != dp) { + olddp=dp; + if (!skipDP(dp)) { + dynAppend(dps,dp); + } + } + } + + for (k=1;k <= dynlen(dps); k++) { + string dpstr = dps[k]; + dyn_string dsDpes = dpNames( dpstr + ".**"), + dsDps = dpNames("*",dpTypeName(dpstr)); + + // no datapoints found + if ( dynlen(dsDps) > 1 ) { + + l = dynlen(dsDpes); + l1 = dynlen(dsDps); + ll = l * (l1 - 1); + // !!! dynlen(dsDpes) * dynlen(dsDps) verwenden mit der 2-Sek-Verzögerung + + for ( i = 1; i <= l; i++ ) { + if ( strpos(dsDpes[i],".") < 1 ) dsDpes[i] += "."; + dsConfigs = dpNames( dsDpes[i] + ":*" ); + for ( j = dynlen(dsConfigs); j > 0; j--) { + strreplace(dsConfigs[j], dsDpes[i] + ":", ""); + } + if ( dynlen(dsConfigs) < 1 ) continue; + + for ( j = 1; j <= dynlen(dsDps); j++ ) { + + if ( dpSubStr(dsDps[j],DPSUB_DP) == dpSubStr(dsDpes[i],DPSUB_DP) ) { + continue; + } + sDestinationDPE = dsDpes[i]; + strreplace( sDestinationDPE, dpSubStr(dsDpes[i], DPSUB_DP), dpSubStr(dsDps[j], DPSUB_DP)); + daCheckDPE(sDestinationDPE); + + dpCopyConfig(dsDpes[i], sDestinationDPE, dsConfigs, iError); + } + } + } + } + dpSet("scriptInfo.transferMPs.runDone",true); + DebugTN("MPTransfer Done."); +} + +bool skipDP(string dp) { +// We only want to look at our own DB points that have a _mp_ sadly enough PVSS +// keeps some of their own datapoints in the database, and there is no way to +// determine what are theirs and what are or own points, other then a hard compare. + if (strpos(dp,"_mp__") > -1) return true; + if (strpos(dp,"WH_SC_SUB") > -1) return true; + if (strpos(dp,"WH_SC1") > -1) return true; + if (strpos(dp,"ANALOG1") > -1) return true; + if (strpos(dp,"ANALOG2") > -1) return true; + if (strpos(dp,"DRIVE1") > -1) return true; + if (strpos(dp,"DRIVE2") > -1) return true; + if (strpos(dp,"SETPOINT") > -1) return true; + if (strpos(dp,"SLIDE_VALVE1") > -1) return true; + if (strpos(dp,"SLIDE_VALVE2") > -1) return true; + if (strpos(dp,"PUMP2") > -1) return true; + if (strpos(dp,"PUMP1") > -1) return true; + if (strpos(dp,"BIT_CONDITION") > -1) return true; + if (strpos(dp,"COUNTER1") > -1) return true; + if (strpos(dp,"COUNTER_SUB") > -1) return true; + if (strpos(dp,"LABOR_ANALOG") > -1) return true; + if (strpos(dp,"LABOR_COUNTER") > -1) return true; + if (strpos(dp,"SLIDE_VALVE_HAND1") > -1) return true; + if (strpos(dp,"WH_SC_SERVICE") > -1) return true; + if (strpos(dp,"MODE_CMD") > -1) return true; + return false; +} diff --git a/RTCP/CNProc/src/CN_Processing.cc b/RTCP/CNProc/src/CN_Processing.cc index e6f868ee21d1f37e4be00baf3e8fa795b02dc007..fb9d3488d0cef29ee2382b480bfb3667ef456e21 100644 --- a/RTCP/CNProc/src/CN_Processing.cc +++ b/RTCP/CNProc/src/CN_Processing.cc @@ -54,7 +54,7 @@ #endif #include <boost/format.hpp> -#include <sys/time.h> + #if defined HAVE_BGP //#define LOG_CONDITION (itsLocationInfo.rankInPset() == 0) diff --git a/RTCP/IONProc/CMakeLists.txt b/RTCP/IONProc/CMakeLists.txt index 280e6ef1c0ab79cd9936e422441a7a17a08c7e76..80e705e18b524895175c253d744d35d1b42d049f 100644 --- a/RTCP/IONProc/CMakeLists.txt +++ b/RTCP/IONProc/CMakeLists.txt @@ -6,7 +6,6 @@ lofar_package(IONProc 1.0 include(LofarFindPackage) lofar_find_package(Boost REQUIRED) lofar_find_package(Libssh2) -lofar_find_package(OpenSSL) lofar_find_package(Valgrind) lofar_find_package(Casacore COMPONENTS measures REQUIRED) diff --git a/RTCP/IONProc/src/BeamletBufferToComputeNode.cc b/RTCP/IONProc/src/BeamletBufferToComputeNode.cc index 808e82573d13b95f52e876539b6dffd3cbd26e80..09f0b3596eaea59f213b2195b584371eaa5e4a96 100644 --- a/RTCP/IONProc/src/BeamletBufferToComputeNode.cc +++ b/RTCP/IONProc/src/BeamletBufferToComputeNode.cc @@ -41,7 +41,6 @@ #include <cstdio> #include <stdexcept> -#include <iomanip> #include <boost/format.hpp> diff --git a/RTCP/IONProc/src/CommandServer.cc b/RTCP/IONProc/src/CommandServer.cc index 730378c978cb57db24030da001f941b0e5bc3b76..dc34f03f2c0431ef3134a8eff9b36770044612a9 100644 --- a/RTCP/IONProc/src/CommandServer.cc +++ b/RTCP/IONProc/src/CommandServer.cc @@ -31,7 +31,6 @@ #include <Stream/SocketStream.h> #include <string> -#include <boost/lexical_cast.hpp> //#if defined HAVE_MPI //#include <mpi.h> diff --git a/RTCP/IONProc/src/ION_main.cc b/RTCP/IONProc/src/ION_main.cc index 809284530d617ff0f810359b66ae8dab11cd948a..339a197ef1d3af035956e417650538dd1c66a69a 100644 --- a/RTCP/IONProc/src/ION_main.cc +++ b/RTCP/IONProc/src/ION_main.cc @@ -51,7 +51,6 @@ #include <sys/mman.h> #include <boost/format.hpp> -#include <boost/lexical_cast.hpp> #if defined HAVE_MPI #include <mpi.h> diff --git a/RTCP/IONProc/src/SSH.cc b/RTCP/IONProc/src/SSH.cc index 81cad86e2fbe24cf236560e436100dd48d0444f9..f7d56708ce85a3af64506cd450d58539213037ab 100644 --- a/RTCP/IONProc/src/SSH.cc +++ b/RTCP/IONProc/src/SSH.cc @@ -43,9 +43,10 @@ #ifdef HAVE_LIBSSH2 #include <Scheduling.h> #include <Interface/SmartPtr.h> +#include <sstream> #include <sys/select.h> +#include <Common/lofar_string.h> #include <Stream/SocketStream.h> -#include <openssl/crypto.h> #endif using namespace std; @@ -566,6 +567,8 @@ const char *explainLibSSH2Error( int error ) return explanation; } +#include <openssl/crypto.h> + std::vector< SmartPtr<Mutex> > openssl_mutexes; static void lock_callback(int mode, int type, const char *file, int line) diff --git a/RTCP/Interface/CMakeLists.txt b/RTCP/Interface/CMakeLists.txt index 065dde3690838a64d098f8cca0c983d3507fb03c..2b21d242021b5022ae698ce1ad7c4ce81ddc1d38 100644 --- a/RTCP/Interface/CMakeLists.txt +++ b/RTCP/Interface/CMakeLists.txt @@ -1,6 +1,6 @@ # $Id$ -lofar_package(Interface 1.0 DEPENDS ApplCommon Common Stream) +lofar_package(Interface 1.0 DEPENDS Common Stream) include(LofarFindPackage) lofar_find_package(Boost REQUIRED COMPONENTS date_time) diff --git a/RTCP/Interface/include/Interface/Parset.h b/RTCP/Interface/include/Interface/Parset.h index d3340b800d06854f2f9b51b82edcbfeac8e224eb..25f289cc0e7f408d82a3c04395884132d5d812dc 100644 --- a/RTCP/Interface/include/Interface/Parset.h +++ b/RTCP/Interface/include/Interface/Parset.h @@ -33,6 +33,7 @@ #include <Common/LofarBitModeInfo.h> #include <Common/StreamUtil.h> #include <Common/StringUtil.h> +#include <Common/lofar_datetime.h> #include <Common/LofarLogger.h> #include <Interface/BeamCoordinates.h> #include <Interface/Config.h> @@ -47,6 +48,9 @@ #include <vector> #include <string> +#include <boost/date_time/c_local_time_adjustor.hpp> +#include <boost/format.hpp> + namespace LOFAR { namespace RTCP { @@ -54,6 +58,19 @@ class Transpose2; class CN_Transpose2; enum StokesType { STOKES_I = 0, STOKES_IQUV, STOKES_XXYY, INVALID_STOKES = -1 }; + +static StokesType stokesType( const std::string &name ) { + if (name == "I") + return STOKES_I; + + if (name == "IQUV") + return STOKES_IQUV; + + if (name == "XXYY") + return STOKES_XXYY; + + return INVALID_STOKES; +}; // The Parset class is a public struct that can be used as base-class @@ -287,39 +304,89 @@ struct StreamInfo { std::vector<unsigned> subbands; - void log() const; + void log() const { + LOG_DEBUG_STR( "Stream " << stream << " is sap " << sap << " beam " << beam << " stokes " << stokes << " part " << part << " consisting of subbands " << subbands ); + } }; class Transpose2 { public: - Transpose2( const Parset &parset ); - - unsigned nrStreams() const; + Transpose2( const Parset &parset ) + : + phaseThreeDisjunct( parset.phaseThreeDisjunct() ), + + nrChannels( parset.nrChannelsPerSubband() ), + nrCoherentChannels( parset.coherentStokesChannelsPerSubband() ), + nrIncoherentChannels( parset.incoherentStokesChannelsPerSubband() ), + nrSamples( parset.CNintegrationSteps() ), + coherentTimeIntFactor( parset.coherentStokesTimeIntegrationFactor() ), + incoherentTimeIntFactor( parset.incoherentStokesTimeIntegrationFactor() ), + + nrBeams( parset.totalNrTABs() ), + coherentNrSubbandsPerFile( parset.coherentStokesNrSubbandsPerFile() ), + incoherentNrSubbandsPerFile( parset.incoherentStokesNrSubbandsPerFile() ), + + nrPhaseTwoPsets( parset.phaseTwoPsets().size() ), + nrPhaseTwoCores( parset.phaseOneTwoCores().size() ), + nrPhaseThreePsets( parset.phaseThreePsets().size() ), + nrPhaseThreeCores( parset.phaseThreeCores().size() ), + + nrSubbandsPerPset( parset.nrSubbandsPerPset() ), + streamInfo( generateStreamInfo(parset) ), + nrStreamsPerPset( divideRoundUp( nrStreams(), parset.phaseThreePsets().size() ) ) + { + } + + unsigned nrStreams() const { return streamInfo.size(); } // compose and decompose a stream number - unsigned stream( unsigned sap, unsigned beam, unsigned stokes, unsigned part, unsigned startAt = 0) const; - void decompose( unsigned stream, unsigned &sap, unsigned &beam, unsigned &stokes, unsigned &part ) const; + unsigned stream( unsigned sap, unsigned beam, unsigned stokes, unsigned part, unsigned startAt = 0) const { + for (unsigned i = startAt; i < streamInfo.size(); i++) { + const struct StreamInfo &info = streamInfo[i]; + + if (sap == info.sap && beam == info.beam && stokes == info.stokes && part == info.part) + return i; + } + + // shouldn't reach this point + ASSERTSTR(false, "Requested non-existing sap " << sap << " beam " << beam << " stokes " << stokes << " part " << part); + + return 0; + } - std::vector<unsigned> subbands( unsigned stream ) const; - unsigned nrSubbands( unsigned stream ) const; - unsigned maxNrSubbands() const; - unsigned maxNrChannels() const; - unsigned maxNrSamples() const; + void decompose( unsigned stream, unsigned &sap, unsigned &beam, unsigned &stokes, unsigned &part ) const { + const struct StreamInfo &info = streamInfo[stream]; - size_t subbandSize( unsigned stream ) const; + sap = info.sap; + beam = info.beam; + stokes = info.stokes; + part = info.part; + } + + std::vector<unsigned> subbands( unsigned stream ) const { ASSERT(stream < streamInfo.size()); return streamInfo[stream].subbands; } + unsigned nrSubbands( unsigned stream ) const { return stream >= streamInfo.size() ? 0 : subbands(stream).size(); } + unsigned maxNrSubbands() const { return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoSubbandsComp )->subbands.size(); } + unsigned maxNrChannels() const { return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoChannelsComp )->nrChannels; } + unsigned maxNrSamples() const { return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoSamplesComp )->nrSamples; } + + size_t subbandSize( unsigned stream ) const { const StreamInfo &info = streamInfo[stream]; return (size_t)info.nrChannels * (info.nrSamples|2) * sizeof(float); } + + //unsigned maxNrSubbandsPerStream() const { return std::min(nrSubbands, nrSubbandsPerFile); } // the pset/core which processes a certain block of a certain subband // note: AsyncTransposeBeams applied the mapping of phaseThreePsets - unsigned sourceCore( unsigned subband, unsigned block ) const; - unsigned sourcePset( unsigned subband, unsigned block ) const; + unsigned sourceCore( unsigned subband, unsigned block ) const { return (block * nrSubbandsPerPset + subband % nrSubbandsPerPset) % nrPhaseTwoCores; } + unsigned sourcePset( unsigned subband, unsigned block ) const { (void)block; return subband / nrSubbandsPerPset; } // the pset/core which processes a certain block of a certain stream // note: AsyncTransposeBeams applied the mapping of phaseTwoPsets - unsigned destCore( unsigned stream, unsigned block ) const; - unsigned destPset( unsigned stream, unsigned block ) const; + unsigned destCore( unsigned stream, unsigned block ) const { return (block * phaseThreeGroupSize() + stream % nrStreamsPerPset) % nrPhaseThreeCores; } + unsigned destPset( unsigned stream, unsigned block ) const { (void)block; return stream / nrStreamsPerPset; } // if phase2 == phase3, each block in phase3 is processed by more cores (more cores idle to align phases 2 and 3) - unsigned phaseThreeGroupSize() const; + unsigned phaseThreeGroupSize() const { + return phaseThreeDisjunct ? nrStreamsPerPset : nrSubbandsPerPset; + } const bool phaseThreeDisjunct; @@ -344,20 +411,146 @@ public: const std::vector<struct StreamInfo> streamInfo; const unsigned nrStreamsPerPset; - private: - std::vector<struct StreamInfo> generateStreamInfo( const Parset &parset ) const; + + static bool streamInfoSubbandsComp( const struct StreamInfo &a, const struct StreamInfo &b ) { + return a.subbands.size() < b.subbands.size(); + } + + static bool streamInfoChannelsComp( const struct StreamInfo &a, const struct StreamInfo &b ) { + return a.nrChannels < b.nrChannels; + } + + static bool streamInfoSamplesComp( const struct StreamInfo &a, const struct StreamInfo &b ) { + return a.nrSamples < b.nrSamples; + } + + static unsigned divideRoundUp( unsigned a, unsigned b ) { + return b == 0 ? 0 : (a + b - 1) / b; + } + + std::vector<struct StreamInfo> generateStreamInfo( const Parset &parset ) const { + // get all info from parset, since we will be called while constructing our members + + // ParameterSets are SLOW, so cache any info we need repeatedly + + std::vector<struct StreamInfo> infoset; + const std::vector<unsigned> sapMapping = parset.subbandToSAPmapping(); + const unsigned nrSAPs = parset.nrBeams(); + const unsigned nrSubbands = parset.nrSubbands(); + const unsigned nrCoherentSubbandsPerFile = parset.coherentStokesNrSubbandsPerFile(); + const unsigned nrIncoherentSubbandsPerFile = parset.incoherentStokesNrSubbandsPerFile(); + + const unsigned nrCoherentStokes = parset.coherentStokes().size(); + const StokesType coherentType = stokesType( parset.coherentStokes() ); + const unsigned nrCoherentChannels = parset.coherentStokesChannelsPerSubband(); + const unsigned nrCoherentTimeIntFactor = parset.coherentStokesTimeIntegrationFactor(); + + const unsigned nrIncoherentStokes = parset.incoherentStokes().size(); + const StokesType incoherentType = stokesType( parset.incoherentStokes() ); + const unsigned nrIncoherentChannels = parset.incoherentStokesChannelsPerSubband(); + const unsigned nrIncoherentTimeIntFactor = parset.incoherentStokesTimeIntegrationFactor(); + + const unsigned nrSamples = parset.CNintegrationSteps(); + + struct StreamInfo info; + info.stream = 0; + + for (unsigned sap = 0; sap < nrSAPs; sap++) { + const unsigned nrBeams = parset.nrTABs(sap); + + info.sap = sap; + + std::vector<unsigned> sapSubbands; + + for (unsigned sb = 0; sb < nrSubbands; sb++) + if (sapMapping[sb] == sap) + sapSubbands.push_back(sb); + + for (unsigned beam = 0; beam < nrBeams; beam++) { + info.beam = beam; + + const bool coherent = parset.isCoherent(sap, beam); + const unsigned nrStokes = coherent ? nrCoherentStokes : nrIncoherentStokes; + + info.coherent = coherent; + info.nrChannels = coherent ? nrCoherentChannels : nrIncoherentChannels; + info.timeIntFactor = coherent ? nrCoherentTimeIntFactor : nrIncoherentTimeIntFactor; + info.nrStokes = nrStokes; + info.stokesType = coherent ? coherentType : incoherentType; + info.nrSamples = nrSamples / info.timeIntFactor; + + const unsigned nrSubbandsPerFile = coherent ? nrCoherentSubbandsPerFile : nrIncoherentSubbandsPerFile; + + for (unsigned stokes = 0; stokes < nrStokes; stokes++) { + info.stokes = stokes; + info.part = 0; + + // split into parts of at most nrSubbandsPerFile + for (unsigned sb = 0; sb < sapSubbands.size(); sb += nrSubbandsPerFile ) { + for (unsigned i = 0; sb + i < sapSubbands.size() && i < nrSubbandsPerFile; i++) + info.subbands.push_back(sapSubbands[sb + i]); + + infoset.push_back(info); + + info.subbands.clear(); + info.part++; + info.stream++; + } + } + } + } + + return infoset; + } }; class CN_Transpose2: public Transpose2 { public: - CN_Transpose2( const Parset &parset, unsigned myPset, unsigned myCore ); + CN_Transpose2( const Parset &parset, unsigned myPset, unsigned myCore ) + : + Transpose2( parset ), + myPset( myPset ), + myCore( myCore ), + + phaseTwoPsetIndex( parset.phaseTwoPsetIndex(myPset) ), + phaseTwoCoreIndex( parset.phaseTwoCoreIndex(myCore) ), + phaseThreePsetIndex( parset.phaseThreePsetIndex(myPset) ), + phaseThreeCoreIndex( parset.phaseThreeCoreIndex(myCore) ) + { + } // the stream to process on (myPset, myCore) - int myStream( unsigned block ) const; + int myStream( unsigned block ) const { + unsigned first = phaseThreePsetIndex * nrStreamsPerPset; + unsigned blockShift = (phaseThreeGroupSize() * block) % nrPhaseThreeCores; + unsigned relative = (nrPhaseThreeCores + phaseThreeCoreIndex - blockShift) % nrPhaseThreeCores; + + // such a stream does not exist + if (first + relative >= nrStreams()) + return -1; + + // we could handle this stream, but it's handled by a subsequent pset + if (relative >= nrStreamsPerPset) + return -1; + + return first + relative; + } // the part number of a subband with an absolute index - unsigned myPart( unsigned subband, bool coherent ) const; + unsigned myPart( unsigned subband, bool coherent ) const { + for (unsigned i = 0; i < streamInfo.size(); i++) { + const struct StreamInfo &info = streamInfo[i]; + + if ( info.coherent == coherent + && info.subbands[0] <= subband + && info.subbands[info.subbands.size()-1] >= subband ) + return info.part; + } + + // we reach this point if there are no beams of this coherency + return 0; + } const unsigned myPset; const unsigned myCore; @@ -368,6 +561,667 @@ public: const int phaseThreeCoreIndex; }; +inline std::string Parset::name() const +{ + return itsName; +} + +inline const Transpose2 &Parset::transposeLogic() const +{ + if (!itsTransposeLogic) + itsTransposeLogic = new Transpose2(*this); + + return *itsTransposeLogic; +} + +inline const CN_Transpose2 &Parset::CN_transposeLogic( unsigned pset, unsigned core ) const +{ + if (!itsCN_TransposeLogic) + itsCN_TransposeLogic = new CN_Transpose2(*this, pset, core); + + return *itsCN_TransposeLogic; +} + + +inline unsigned Parset::observationID() const +{ + return getUint32("Observation.ObsID"); +} + +inline double Parset::getTime(const char *name) const +{ + return to_time_t(time_from_string(getString(name))); +} + +inline double Parset::startTime() const +{ + return getTime("Observation.startTime"); +} + +inline double Parset::stopTime() const +{ + return getTime("Observation.stopTime"); +} + +inline unsigned Parset::nrCorrelatedBlocks() const +{ + return static_cast<unsigned>(floor( (stopTime() - startTime()) / IONintegrationTime())); +} + +inline unsigned Parset::nrBeamFormedBlocks() const +{ + return static_cast<unsigned>(floor( (stopTime() - startTime()) / CNintegrationTime())); +} + +inline string Parset::stationName(int index) const +{ + return allStationNames()[index]; +} + +inline int Parset::stationIndex(const std::string &name) const +{ + std::vector<std::string> names = allStationNames(); + for (unsigned i = 0; i < names.size(); i++) + if (names[i] == name) + return i; + + return -1; +} + +inline std::vector<std::string> Parset::allStationNames() const +{ + return getStringVector("OLAP.storageStationNames",true); +} + +inline bool Parset::hasStorage() const +{ + return getString("OLAP.OLAP_Conn.IONProc_Storage_Transport") != "NULL"; +} + +inline string Parset::getTransportType(const string& prefix) const +{ + return getString(prefix + "_Transport"); +} + +inline unsigned Parset::nrStations() const +{ + return allStationNames().size(); +} + +inline unsigned Parset::nrTabStations() const +{ + return getStringVector("OLAP.tiedArrayStationNames",true).size(); +} + +inline std::vector<std::string> Parset::mergedStationNames() const +{ + std::vector<string> tabStations = getStringVector("OLAP.tiedArrayStationNames",true); + + if (tabStations.empty()) + return getStringVector("OLAP.storageStationNames",true); + else + return tabStations; +} + +inline unsigned Parset::nrMergedStations() const +{ + const std::vector<unsigned> list = tabList(); + + if (list.empty()) + return nrStations(); + + return *std::max_element( list.begin(), list.end() ) + 1; +} + +inline unsigned Parset::nrBaselines() const +{ + unsigned stations; + + if (nrTabStations() > 0) + stations = nrTabStations(); + else + stations = nrStations(); + + return stations * (stations + 1) / 2; +} + +inline unsigned Parset::nrCrossPolarisations() const +{ + return (getUint32("Observation.nrPolarisations") * getUint32("Observation.nrPolarisations")); +} + +inline unsigned Parset::clockSpeed() const +{ + return getUint32("Observation.sampleClock") * 1000000; +} + +inline double Parset::subbandBandwidth() const +{ + return 1.0 * clockSpeed() / 1024; +} + +inline double Parset::sampleDuration() const +{ + return 1.0 / subbandBandwidth(); +} + +inline unsigned Parset::dedispersionFFTsize() const +{ + return isDefined("OLAP.CNProc.dedispersionFFTsize") ? getUint32("OLAP.CNProc.dedispersionFFTsize") : CNintegrationSteps(); +} + +inline unsigned Parset::nrBitsPerSample() const +{ + const std::string key = "Observation.nrBitsPerSample"; + + if (isDefined(key)) { + return getUint32(key); + } else { +#ifndef HAVE_BGP_CN + LOG_WARN_STR( "Missing key " << key << ", using the depricated key OLAP.nrBitsPerSample"); +#endif + return getUint32("OLAP.nrBitsPerSample", 16); + } +} + +inline size_t Parset::nrBytesPerComplexSample() const +{ + return 2 * nrBitsPerSample() / 8; +} + +inline unsigned Parset::CNintegrationSteps() const +{ + return getUint32("OLAP.CNProc.integrationSteps"); +} + +inline unsigned Parset::IONintegrationSteps() const +{ + return getUint32("OLAP.IONProc.integrationSteps"); +} + +inline unsigned Parset::integrationSteps() const +{ + return CNintegrationSteps() * IONintegrationSteps(); +} + +inline unsigned Parset::coherentStokesTimeIntegrationFactor() const +{ + return getUint32("OLAP.CNProc_CoherentStokes.timeIntegrationFactor"); +} + +inline unsigned Parset::incoherentStokesTimeIntegrationFactor() const +{ + return getUint32("OLAP.CNProc_IncoherentStokes.timeIntegrationFactor"); +} + +inline unsigned Parset::coherentStokesChannelsPerSubband() const +{ + unsigned numch = getUint32("OLAP.CNProc_CoherentStokes.channelsPerSubband"); + + if (numch == 0) + return nrChannelsPerSubband(); + else + return numch; +} + +inline unsigned Parset::incoherentStokesChannelsPerSubband() const +{ + unsigned numch = getUint32("OLAP.CNProc_IncoherentStokes.channelsPerSubband"); + + if (numch == 0) + return nrChannelsPerSubband(); + else + return numch; +} + +inline std::string Parset::coherentStokes() const +{ + return getString("OLAP.CNProc_CoherentStokes.which"); +} + +inline std::string Parset::incoherentStokes() const +{ + return getString("OLAP.CNProc_IncoherentStokes.which"); +} + +inline bool Parset::outputFilteredData() const +{ + return getBool("Observation.DataProducts.Output_FilteredData.enabled", false); +} + +inline bool Parset::outputCorrelatedData() const +{ + return getBool("Observation.DataProducts.Output_Correlated.enabled", false); +} + +inline bool Parset::outputBeamFormedData() const +{ + return getBool("Observation.DataProducts.Output_Beamformed.enabled", false); +} + +inline bool Parset::outputTrigger() const +{ + return getBool("Observation.DataProducts.Output_Trigger.enabled", false); +} + +inline bool Parset::outputThisType(OutputType outputType) const +{ + return getBool(keyPrefix(outputType) + ".enabled", false); +} + +inline bool Parset::onlineFlagging() const +{ + return getBool("OLAP.CNProc.onlineFlagging", false); +} + +inline bool Parset::onlinePreCorrelationFlagging() const +{ + return getBool("OLAP.CNProc.onlinePreCorrelationFlagging", false); +} + +inline bool Parset::onlinePreCorrelationNoChannelsFlagging() const +{ + return getBool("OLAP.CNProc.onlinePreCorrelationNoChannelsFlagging", false); +} + +inline bool Parset::onlinePostCorrelationFlagging() const +{ + return getBool("OLAP.CNProc.onlinePostCorrelationFlagging", false); +} + + inline unsigned Parset::onlinePreCorrelationFlaggingIntegration() const +{ + return getUint32("OLAP.CNProc.onlinePostCorrelationFlaggingIntegration", 0); +} + + +inline string Parset::onlinePreCorrelationFlaggingType(std::string defaultVal) const +{ + return getString("OLAP.CNProc.onlinePreCorrelationFlaggingType", defaultVal); +} + +inline string Parset::onlinePreCorrelationFlaggingStatisticsType(std::string defaultVal) const +{ + return getString("OLAP.CNProc.onlinePreCorrelationFlaggingStatisticsType", defaultVal); +} + +inline string Parset::onlinePostCorrelationFlaggingType(std::string defaultVal) const +{ + return getString("OLAP.CNProc.onlinePostCorrelationFlaggingType", defaultVal); +} + +inline string Parset::onlinePostCorrelationFlaggingStatisticsType(std::string defaultVal) const +{ + return getString("OLAP.CNProc.onlinePostCorrelationFlaggingStatisticsType", defaultVal); +} + +inline bool Parset::onlinePostCorrelationFlaggingDetectBrokenStations() const +{ + return getBool("OLAP.CNProc.onlinePostCorrelationFlaggingDetectBrokenStations", false); +} + +inline bool Parset::fakeInputData() const +{ + return getBool("OLAP.CNProc.fakeInputData", false); +} + +inline bool Parset::checkFakeInputData() const +{ + return getBool("OLAP.CNProc.checkFakeInputData", false); +} + +inline double Parset::CNintegrationTime() const +{ + return nrSamplesPerSubband() / subbandBandwidth(); +} + +inline double Parset::IONintegrationTime() const +{ + return CNintegrationTime() * IONintegrationSteps(); +} + +inline unsigned Parset::nrSamplesPerChannel() const +{ + return CNintegrationSteps(); +} + +inline unsigned Parset::nrSamplesPerSubband() const +{ + return nrSamplesPerChannel() * nrChannelsPerSubband(); +} + +inline unsigned Parset::nrHistorySamples() const +{ + return nrChannelsPerSubband() > 1 ? (nrPPFTaps() - 1) * nrChannelsPerSubband() : 0; +} + +inline unsigned Parset::nrSamplesToCNProc() const +{ + return nrSamplesPerSubband() + nrHistorySamples() + 32 / (NR_POLARIZATIONS * 2 * nrBitsPerSample() / 8); +} + +inline unsigned Parset::inputBufferSize() const +{ + return (unsigned) (getDouble("OLAP.nrSecondsOfBuffer") * subbandBandwidth()); +} + +inline unsigned Parset::maxNetworkDelay() const +{ + return (unsigned) (getDouble("OLAP.maxNetworkDelay") * subbandBandwidth()); +} + +inline unsigned Parset::nrSubbandsPerPset() const +{ + unsigned psets = phaseTwoPsets().size(); + unsigned subbands = nrSubbands(); + + return (psets == 0 ? 0 : subbands + psets - 1) / psets; +} + +inline unsigned Parset::coherentStokesNrSubbandsPerFile() const +{ + return std::min( getUint32("OLAP.CNProc_CoherentStokes.subbandsPerFile"), nrSubbands() ); +} + +inline unsigned Parset::incoherentStokesNrSubbandsPerFile() const +{ + return std::min( getUint32("OLAP.CNProc_IncoherentStokes.subbandsPerFile"), nrSubbands() ); +} + +inline unsigned Parset::nrPhase3StreamsPerPset() const +{ + return maxNrStreamsPerPset(BEAM_FORMED_DATA) + maxNrStreamsPerPset(TRIGGER_DATA); +} + +inline unsigned Parset::nrPPFTaps() const +{ + return getUint32("OLAP.CNProc.nrPPFTaps"); +} + +inline unsigned Parset::nrChannelsPerSubband() const +{ + return getUint32("Observation.channelsPerSubband"); +} + +inline std::vector<unsigned> Parset::phaseOneTwoCores() const +{ + return getUint32Vector("OLAP.CNProc.phaseOneTwoCores", true); +} + +inline std::vector<unsigned> Parset::phaseThreeCores() const +{ + return getUint32Vector("OLAP.CNProc.phaseThreeCores",true); +} + +inline unsigned Parset::nrCoresPerPset() const +{ + return usedCoresInPset().size(); +} + +inline vector<unsigned> Parset::subbandList() const +{ + return getUint32Vector("Observation.subbandList",true); +} + +inline unsigned Parset::nrSubbands() const +{ + return getUint32Vector("Observation.subbandList",true).size(); +} + +inline unsigned Parset::nrSubbandsPerSAP(unsigned sap) const +{ + std::vector<unsigned> mapping = subbandToSAPmapping(); + + return std::count(mapping.begin(), mapping.end(), sap); +} + +inline std::vector<unsigned> Parset::subbandToSAPmapping() const +{ + return getUint32Vector("Observation.beamList",true); +} + +inline double Parset::channelWidth() const +{ + return subbandBandwidth() / nrChannelsPerSubband(); +} + +inline bool Parset::delayCompensation() const +{ + return getBool("OLAP.delayCompensation"); +} + +inline unsigned Parset::nrCalcDelays() const +{ + return getUint32("OLAP.DelayComp.nrCalcDelays"); +} + +inline string Parset::positionType() const +{ + return getString("OLAP.DelayComp.positionType"); +} + +inline double Parset::clockCorrectionTime(const std::string &station) const +{ + return getDouble(std::string("PIC.Core.") + station + ".clockCorrectionTime",0.0); +} + +inline bool Parset::correctBandPass() const +{ + return getBool("OLAP.correctBandPass"); +} + +inline unsigned Parset::nrPsetsPerStorage() const +{ + return getUint32("OLAP.psetsPerStorage"); +} + +inline unsigned Parset::getLofarStManVersion() const +{ + return getUint32("OLAP.LofarStManVersion", 2); +} + +inline vector<unsigned> Parset::phaseOnePsets() const +{ + return getUint32Vector("OLAP.CNProc.phaseOnePsets",true); +} + +inline vector<unsigned> Parset::phaseTwoPsets() const +{ + return getUint32Vector("OLAP.CNProc.phaseTwoPsets",true); +} + +inline vector<unsigned> Parset::phaseThreePsets() const +{ + return getUint32Vector("OLAP.CNProc.phaseThreePsets",true); +} + +inline unsigned Parset::totalNrPsets() const +{ + const std::string key = "OLAP.IONProc.psetList"; + + if (isDefined(key)) { + return getStringVector(key,true).size(); + } else { + LOG_WARN_STR( "Missing key " << key << ", using the used psets as a fallback"); + return usedPsets().size(); + } +} + +inline vector<unsigned> Parset::tabList() const +{ + return getUint32Vector("OLAP.CNProc.tabList",true); +} + +inline int Parset::phaseOnePsetIndex(unsigned pset) const +{ + return findIndex(pset, phaseOnePsets()); +} + +inline int Parset::phaseTwoPsetIndex(unsigned pset) const +{ + return findIndex(pset, phaseTwoPsets()); +} + +inline int Parset::phaseThreePsetIndex(unsigned pset) const +{ + return findIndex(pset, phaseThreePsets()); +} + +inline int Parset::phaseOneCoreIndex(unsigned core) const +{ + return findIndex(core, phaseOneTwoCores()); +} + +inline int Parset::phaseTwoCoreIndex(unsigned core) const +{ + return findIndex(core, phaseOneTwoCores()); +} + +inline int Parset::phaseThreeCoreIndex(unsigned core) const +{ + return findIndex(core, phaseThreeCores()); +} + +inline double Parset::channel0Frequency(size_t subband) const +{ + double sbFreq = subbandToFrequencyMapping()[subband]; + + if (nrChannelsPerSubband() == 1) + return sbFreq; + + // if the 2nd PPF is used, the subband is shifted half a channel + // downwards, so subtracting half a subband results in the + // center of channel 0 (instead of the bottom). + return sbFreq - 0.5 * subbandBandwidth(); +} + +inline unsigned Parset::nrSlotsInFrame() const +{ + unsigned nrSlots = 0; + + nrSlots = getUint32("Observation.nrSlotsInFrame", 0); + + if (nrSlots == 0) { + // return default + return maxBeamletsPerRSP(nrBitsPerSample()); + } + + return nrSlots; +} + +inline string Parset::partitionName() const +{ + return getString("OLAP.CNProc.partition"); +} + +inline bool Parset::realTime() const +{ + return getBool("OLAP.realTime"); +} + +inline unsigned Parset::nrTABs(unsigned beam) const +{ + using boost::format; + + return getUint32(str(format("Observation.Beam[%u].nrTiedArrayBeams") % beam)); +} + +inline std::vector<unsigned> Parset::nrTABs() const +{ + std::vector<unsigned> counts(nrBeams()); + + for (unsigned beam = 0; beam < nrBeams(); beam++) + counts[beam] = nrTABs(beam); + + return counts; +} + +inline unsigned Parset::totalNrTABs() const +{ + std::vector<unsigned> beams = nrTABs(); + + return std::accumulate(beams.begin(), beams.end(), 0); +} + +inline unsigned Parset::maxNrTABs() const +{ + std::vector<unsigned> beams = nrTABs(); + + return *std::max_element(beams.begin(), beams.end()); +} + +inline BeamCoordinates Parset::TABs(unsigned beam) const +{ + BeamCoordinates coordinates; + + for (unsigned pencil = 0; pencil < nrTABs(beam); pencil ++) { + const std::vector<double> coords = getTAB(beam, pencil); + + // assume ra,dec + coordinates += BeamCoord3D(coords[0],coords[1]); + } + + return coordinates; +} + +inline string Parset::bandFilter() const +{ + return getString("Observation.bandFilter"); +} + +inline string Parset::antennaSet() const +{ + return getString("Observation.antennaSet"); +} + +inline bool Parset::PLC_controlled() const +{ + return getBool("OLAP.IONProc.PLC_controlled",false); +} + +inline string Parset::PLC_ProcID() const +{ + return getString("_processName","CNProc"); +} + +inline string Parset::PLC_Host() const +{ + using boost::format; + + string prefix = getString("_parsetPrefix"); // includes a trailing dot! + + return getString(str(format("%s_ACnode") % prefix)); +} + +inline uint32 Parset::PLC_Port() const +{ + using boost::format; + + string prefix = getString("_parsetPrefix"); // includes a trailing dot! + + return getUint32(str(format("%s_ACport") % prefix)); +} + +inline string Parset::PVSS_TempObsName() const +{ + return getString("_DPname",""); +} + +inline string Parset::AntennaSetsConf() const +{ + return getString("OLAP.Storage.AntennaSetsConf",""); +} + +inline string Parset::AntennaFieldsDir() const +{ + return getString("OLAP.Storage.AntennaFieldsDir",""); +} + +inline string Parset::HBADeltasDir() const +{ + return getString("OLAP.Storage.HBADeltasDir",""); +} + } // namespace RTCP } // namespace LOFAR diff --git a/RTCP/Interface/src/Parset.cc b/RTCP/Interface/src/Parset.cc index d6e3c4bc0a44192ebbbb30fcde969907c52e85df..48718807f5235601544171ede6a52ad837f76601 100644 --- a/RTCP/Interface/src/Parset.cc +++ b/RTCP/Interface/src/Parset.cc @@ -25,7 +25,7 @@ #include <Common/LofarLogger.h> #include <Common/DataConvert.h> -#include <ApplCommon/PosixTime.h> +#include <Common/lofar_datetime.h> #include <Interface/Parset.h> #include <Interface/SmartPtr.h> #include <Interface/Exceptions.h> @@ -34,7 +34,6 @@ #include <boost/algorithm/string/classification.hpp> #include <boost/format.hpp> -#include <boost/date_time/posix_time/posix_time.hpp> #include <boost/lexical_cast.hpp> #include <boost/algorithm/string/split.hpp> #include <boost/algorithm/string.hpp> @@ -47,20 +46,6 @@ namespace LOFAR { namespace RTCP { -static StokesType stokesType( const std::string &name ) { - if (name == "I") - return STOKES_I; - - if (name == "IQUV") - return STOKES_IQUV; - - if (name == "XXYY") - return STOKES_XXYY; - - return INVALID_STOKES; -}; - - Parset::Parset() { } @@ -335,10 +320,6 @@ unsigned Parset::maxNrStreamsPerPset(OutputType outputType, bool force) const return nrPsets == 0 ? 0 : (nrOutputStreams + nrPsets - 1) / nrPsets; } -size_t Parset::nrBytesPerComplexSample() const -{ - return 2 * nrBitsPerSample() / 8; -} unsigned Parset::nyquistZone() const { @@ -479,12 +460,12 @@ double Parset::beamDuration(unsigned beam) const std::vector<double> Parset::getTAB(unsigned beam, unsigned pencil) const { - std::vector<double> TAB(2); + std::vector<double> pencilBeam(2); - TAB[0] = getDouble(str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].angle1") % beam % pencil)); - TAB[1] = getDouble(str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].angle2") % beam % pencil)); + pencilBeam[0] = getDouble(str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].angle1") % beam % pencil)); + pencilBeam[1] = getDouble(str(boost::format("Observation.Beam[%u].TiedArrayBeam[%u].angle2") % beam % pencil)); - return TAB; + return pencilBeam; } @@ -667,922 +648,5 @@ int Parset::findIndex(unsigned pset, const vector<unsigned> &psets) return index != psets.size() ? static_cast<int>(index) : -1; } -double Parset::getTime(const char *name) const -{ - return to_time_t(boost::posix_time::time_from_string(getString(name))); -} - -unsigned Parset::nrTABs(unsigned beam) const -{ - using boost::format; - return getUint32(str(format("Observation.Beam[%u].nrTiedArrayBeams") % beam)); -} - -string Parset::PLC_Host() const -{ - using boost::format; - string prefix = getString("_parsetPrefix"); // includes a trailing dot! - return getString(str(format("%s_ACnode") % prefix)); -} - -uint32 Parset::PLC_Port() const -{ - using boost::format; - string prefix = getString("_parsetPrefix"); // includes a trailing dot! - return getUint32(str(format("%s_ACport") % prefix)); -} - - -std::string Parset::name() const -{ - return itsName; -} - -const Transpose2 &Parset::transposeLogic() const -{ - if (!itsTransposeLogic) - itsTransposeLogic = new Transpose2(*this); - - return *itsTransposeLogic; -} - -const CN_Transpose2 &Parset::CN_transposeLogic( unsigned pset, unsigned core ) const -{ - if (!itsCN_TransposeLogic) - itsCN_TransposeLogic = new CN_Transpose2(*this, pset, core); - - return *itsCN_TransposeLogic; -} - - -unsigned Parset::observationID() const -{ - return getUint32("Observation.ObsID"); -} - -double Parset::startTime() const -{ - return getTime("Observation.startTime"); -} - -double Parset::stopTime() const -{ - return getTime("Observation.stopTime"); -} - -unsigned Parset::nrCorrelatedBlocks() const -{ - return static_cast<unsigned>(floor( (stopTime() - startTime()) / IONintegrationTime())); -} - -unsigned Parset::nrBeamFormedBlocks() const -{ - return static_cast<unsigned>(floor( (stopTime() - startTime()) / CNintegrationTime())); -} - -string Parset::stationName(int index) const -{ - return allStationNames()[index]; -} - -int Parset::stationIndex(const std::string &name) const -{ - std::vector<std::string> names = allStationNames(); - for (unsigned i = 0; i < names.size(); i++) - if (names[i] == name) - return i; - - return -1; -} - -std::vector<std::string> Parset::allStationNames() const -{ - return getStringVector("OLAP.storageStationNames",true); -} - -bool Parset::hasStorage() const -{ - return getString("OLAP.OLAP_Conn.IONProc_Storage_Transport") != "NULL"; -} - -string Parset::getTransportType(const string& prefix) const -{ - return getString(prefix + "_Transport"); -} - -unsigned Parset::nrStations() const -{ - return allStationNames().size(); -} - -unsigned Parset::nrTabStations() const -{ - return getStringVector("OLAP.tiedArrayStationNames",true).size(); -} - -std::vector<std::string> Parset::mergedStationNames() const -{ - std::vector<string> tabStations = getStringVector("OLAP.tiedArrayStationNames",true); - - if (tabStations.empty()) - return getStringVector("OLAP.storageStationNames",true); - else - return tabStations; -} - -unsigned Parset::nrMergedStations() const -{ - const std::vector<unsigned> list = tabList(); - - if (list.empty()) - return nrStations(); - - return *std::max_element( list.begin(), list.end() ) + 1; -} - -unsigned Parset::nrBaselines() const -{ - unsigned stations; - - if (nrTabStations() > 0) - stations = nrTabStations(); - else - stations = nrStations(); - - return stations * (stations + 1) / 2; -} - -unsigned Parset::nrCrossPolarisations() const -{ - return (getUint32("Observation.nrPolarisations") * getUint32("Observation.nrPolarisations")); -} - -unsigned Parset::clockSpeed() const -{ - return getUint32("Observation.sampleClock") * 1000000; -} - -double Parset::subbandBandwidth() const -{ - return 1.0 * clockSpeed() / 1024; -} - -double Parset::sampleDuration() const -{ - return 1.0 / subbandBandwidth(); -} - -unsigned Parset::dedispersionFFTsize() const -{ - return isDefined("OLAP.CNProc.dedispersionFFTsize") ? getUint32("OLAP.CNProc.dedispersionFFTsize") : CNintegrationSteps(); -} - -unsigned Parset::nrBitsPerSample() const -{ - const std::string key = "Observation.nrBitsPerSample"; - - if (isDefined(key)) { - return getUint32(key); - } else { -#ifndef HAVE_BGP_CN - LOG_WARN_STR( "Missing key " << key << ", using the depricated key OLAP.nrBitsPerSample"); -#endif - return getUint32("OLAP.nrBitsPerSample", 16); - } -} - -unsigned Parset::CNintegrationSteps() const -{ - return getUint32("OLAP.CNProc.integrationSteps"); -} - -unsigned Parset::IONintegrationSteps() const -{ - return getUint32("OLAP.IONProc.integrationSteps"); -} - -unsigned Parset::integrationSteps() const -{ - return CNintegrationSteps() * IONintegrationSteps(); -} - -unsigned Parset::coherentStokesTimeIntegrationFactor() const -{ - return getUint32("OLAP.CNProc_CoherentStokes.timeIntegrationFactor"); -} - -unsigned Parset::incoherentStokesTimeIntegrationFactor() const -{ - return getUint32("OLAP.CNProc_IncoherentStokes.timeIntegrationFactor"); -} - -unsigned Parset::coherentStokesChannelsPerSubband() const -{ - unsigned numch = getUint32("OLAP.CNProc_CoherentStokes.channelsPerSubband"); - - if (numch == 0) - return nrChannelsPerSubband(); - else - return numch; -} - -unsigned Parset::incoherentStokesChannelsPerSubband() const -{ - unsigned numch = getUint32("OLAP.CNProc_IncoherentStokes.channelsPerSubband"); - - if (numch == 0) - return nrChannelsPerSubband(); - else - return numch; -} - -std::string Parset::coherentStokes() const -{ - return getString("OLAP.CNProc_CoherentStokes.which"); -} - -std::string Parset::incoherentStokes() const -{ - return getString("OLAP.CNProc_IncoherentStokes.which"); -} - -bool Parset::outputFilteredData() const -{ - return getBool("Observation.DataProducts.Output_FilteredData.enabled", false); -} - -bool Parset::outputCorrelatedData() const -{ - return getBool("Observation.DataProducts.Output_Correlated.enabled", false); -} - -bool Parset::outputBeamFormedData() const -{ - return getBool("Observation.DataProducts.Output_Beamformed.enabled", false); -} - -bool Parset::outputTrigger() const -{ - return getBool("Observation.DataProducts.Output_Trigger.enabled", false); -} - -bool Parset::outputThisType(OutputType outputType) const -{ - return getBool(keyPrefix(outputType) + ".enabled", false); -} - -bool Parset::onlineFlagging() const -{ - return getBool("OLAP.CNProc.onlineFlagging", false); -} - -bool Parset::onlinePreCorrelationFlagging() const -{ - return getBool("OLAP.CNProc.onlinePreCorrelationFlagging", false); -} - -bool Parset::onlinePreCorrelationNoChannelsFlagging() const -{ - return getBool("OLAP.CNProc.onlinePreCorrelationNoChannelsFlagging", false); -} - -bool Parset::onlinePostCorrelationFlagging() const -{ - return getBool("OLAP.CNProc.onlinePostCorrelationFlagging", false); -} - - unsigned Parset::onlinePreCorrelationFlaggingIntegration() const -{ - return getUint32("OLAP.CNProc.onlinePostCorrelationFlaggingIntegration", 0); -} - - -string Parset::onlinePreCorrelationFlaggingType(std::string defaultVal) const -{ - return getString("OLAP.CNProc.onlinePreCorrelationFlaggingType", defaultVal); -} - -string Parset::onlinePreCorrelationFlaggingStatisticsType(std::string defaultVal) const -{ - return getString("OLAP.CNProc.onlinePreCorrelationFlaggingStatisticsType", defaultVal); -} - -string Parset::onlinePostCorrelationFlaggingType(std::string defaultVal) const -{ - return getString("OLAP.CNProc.onlinePostCorrelationFlaggingType", defaultVal); -} - -string Parset::onlinePostCorrelationFlaggingStatisticsType(std::string defaultVal) const -{ - return getString("OLAP.CNProc.onlinePostCorrelationFlaggingStatisticsType", defaultVal); -} - -bool Parset::onlinePostCorrelationFlaggingDetectBrokenStations() const -{ - return getBool("OLAP.CNProc.onlinePostCorrelationFlaggingDetectBrokenStations", false); -} - -bool Parset::fakeInputData() const -{ - return getBool("OLAP.CNProc.fakeInputData", false); -} - -bool Parset::checkFakeInputData() const -{ - return getBool("OLAP.CNProc.checkFakeInputData", false); -} - -double Parset::CNintegrationTime() const -{ - return nrSamplesPerSubband() / subbandBandwidth(); -} - -double Parset::IONintegrationTime() const -{ - return CNintegrationTime() * IONintegrationSteps(); -} - -unsigned Parset::nrSamplesPerSubband() const -{ - return CNintegrationSteps() * nrChannelsPerSubband(); -} - -unsigned Parset::nrSamplesPerChannel() const -{ - return CNintegrationSteps(); -} - -unsigned Parset::nrHistorySamples() const -{ - return nrChannelsPerSubband() > 1 ? (nrPPFTaps() - 1) * nrChannelsPerSubband() : 0; -} - -unsigned Parset::nrSamplesToCNProc() const -{ - return nrSamplesPerSubband() + nrHistorySamples() + 32 / (NR_POLARIZATIONS * 2 * nrBitsPerSample() / 8); -} - -unsigned Parset::inputBufferSize() const -{ - return (unsigned) (getDouble("OLAP.nrSecondsOfBuffer") * subbandBandwidth()); -} - -unsigned Parset::maxNetworkDelay() const -{ - return (unsigned) (getDouble("OLAP.maxNetworkDelay") * subbandBandwidth()); -} - -unsigned Parset::nrSubbandsPerPset() const -{ - unsigned psets = phaseTwoPsets().size(); - unsigned subbands = nrSubbands(); - - return (psets == 0 ? 0 : subbands + psets - 1) / psets; -} - -unsigned Parset::coherentStokesNrSubbandsPerFile() const -{ - return std::min( getUint32("OLAP.CNProc_CoherentStokes.subbandsPerFile"), nrSubbands() ); -} - -unsigned Parset::incoherentStokesNrSubbandsPerFile() const -{ - return std::min( getUint32("OLAP.CNProc_IncoherentStokes.subbandsPerFile"), nrSubbands() ); -} - -unsigned Parset::nrPhase3StreamsPerPset() const -{ - return maxNrStreamsPerPset(BEAM_FORMED_DATA) + maxNrStreamsPerPset(TRIGGER_DATA); -} - -unsigned Parset::nrPPFTaps() const -{ - return getUint32("OLAP.CNProc.nrPPFTaps"); -} - -unsigned Parset::nrChannelsPerSubband() const -{ - return getUint32("Observation.channelsPerSubband"); -} - -std::vector<unsigned> Parset::phaseOneTwoCores() const -{ - return getUint32Vector("OLAP.CNProc.phaseOneTwoCores", true); -} - -std::vector<unsigned> Parset::phaseThreeCores() const -{ - return getUint32Vector("OLAP.CNProc.phaseThreeCores",true); -} - -unsigned Parset::nrCoresPerPset() const -{ - return usedCoresInPset().size(); -} - -vector<unsigned> Parset::subbandList() const -{ - return getUint32Vector("Observation.subbandList",true); -} - -unsigned Parset::nrSubbands() const -{ - return getUint32Vector("Observation.subbandList",true).size(); -} - -unsigned Parset::nrSubbandsPerSAP(unsigned sap) const -{ - std::vector<unsigned> mapping = subbandToSAPmapping(); - - return std::count(mapping.begin(), mapping.end(), sap); -} - -std::vector<unsigned> Parset::subbandToSAPmapping() const -{ - return getUint32Vector("Observation.beamList",true); -} - -double Parset::channelWidth() const -{ - return subbandBandwidth() / nrChannelsPerSubband(); -} - -bool Parset::delayCompensation() const -{ - return getBool("OLAP.delayCompensation"); -} - -unsigned Parset::nrCalcDelays() const -{ - return getUint32("OLAP.DelayComp.nrCalcDelays"); -} - -string Parset::positionType() const -{ - return getString("OLAP.DelayComp.positionType"); -} - -double Parset::clockCorrectionTime(const std::string &station) const -{ - return getDouble(std::string("PIC.Core.") + station + ".clockCorrectionTime",0.0); -} - -bool Parset::correctBandPass() const -{ - return getBool("OLAP.correctBandPass"); -} - -unsigned Parset::nrPsetsPerStorage() const -{ - return getUint32("OLAP.psetsPerStorage"); -} - -unsigned Parset::getLofarStManVersion() const -{ - return getUint32("OLAP.LofarStManVersion", 2); -} - -vector<unsigned> Parset::phaseOnePsets() const -{ - return getUint32Vector("OLAP.CNProc.phaseOnePsets",true); -} - -vector<unsigned> Parset::phaseTwoPsets() const -{ - return getUint32Vector("OLAP.CNProc.phaseTwoPsets",true); -} - -vector<unsigned> Parset::phaseThreePsets() const -{ - return getUint32Vector("OLAP.CNProc.phaseThreePsets",true); -} - -unsigned Parset::totalNrPsets() const -{ - const std::string key = "OLAP.IONProc.psetList"; - - if (isDefined(key)) { - return getStringVector(key,true).size(); - } else { - LOG_WARN_STR( "Missing key " << key << ", using the used psets as a fallback"); - return usedPsets().size(); - } -} - -vector<unsigned> Parset::tabList() const -{ - return getUint32Vector("OLAP.CNProc.tabList",true); -} - -int Parset::phaseOnePsetIndex(unsigned pset) const -{ - return findIndex(pset, phaseOnePsets()); -} - -int Parset::phaseTwoPsetIndex(unsigned pset) const -{ - return findIndex(pset, phaseTwoPsets()); -} - -int Parset::phaseThreePsetIndex(unsigned pset) const -{ - return findIndex(pset, phaseThreePsets()); -} - -int Parset::phaseOneCoreIndex(unsigned core) const -{ - return findIndex(core, phaseOneTwoCores()); -} - -int Parset::phaseTwoCoreIndex(unsigned core) const -{ - return findIndex(core, phaseOneTwoCores()); -} - -int Parset::phaseThreeCoreIndex(unsigned core) const -{ - return findIndex(core, phaseThreeCores()); -} - -double Parset::channel0Frequency(size_t subband) const -{ - double sbFreq = subbandToFrequencyMapping()[subband]; - - if (nrChannelsPerSubband() == 1) - return sbFreq; - - // if the 2nd PPF is used, the subband is shifted half a channel - // downwards, so subtracting half a subband results in the - // center of channel 0 (instead of the bottom). - return sbFreq - 0.5 * subbandBandwidth(); -} - -unsigned Parset::nrSlotsInFrame() const -{ - unsigned nrSlots = 0; - - nrSlots = getUint32("Observation.nrSlotsInFrame", 0); - - if (nrSlots == 0) { - // return default - return maxBeamletsPerRSP(nrBitsPerSample()); - } - - return nrSlots; -} - -string Parset::partitionName() const -{ - return getString("OLAP.CNProc.partition"); -} - -bool Parset::realTime() const -{ - return getBool("OLAP.realTime"); -} - -std::vector<unsigned> Parset::nrTABs() const -{ - std::vector<unsigned> counts(nrBeams()); - - for (unsigned beam = 0; beam < nrBeams(); beam++) - counts[beam] = nrTABs(beam); - - return counts; -} - -unsigned Parset::totalNrTABs() const -{ - std::vector<unsigned> beams = nrTABs(); - - return std::accumulate(beams.begin(), beams.end(), 0); -} - -unsigned Parset::maxNrTABs() const -{ - std::vector<unsigned> beams = nrTABs(); - - return *std::max_element(beams.begin(), beams.end()); -} - -BeamCoordinates Parset::TABs(unsigned beam) const -{ - BeamCoordinates coordinates; - - for (unsigned pencil = 0; pencil < nrTABs(beam); pencil ++) { - const std::vector<double> coords = getTAB(beam, pencil); - - // assume ra,dec - coordinates += BeamCoord3D(coords[0],coords[1]); - } - - return coordinates; -} - -string Parset::bandFilter() const -{ - return getString("Observation.bandFilter"); -} - -string Parset::antennaSet() const -{ - return getString("Observation.antennaSet"); -} - -bool Parset::PLC_controlled() const -{ - return getBool("OLAP.IONProc.PLC_controlled",false); -} - -string Parset::PLC_ProcID() const -{ - return getString("_processName","CNProc"); -} - -string Parset::PVSS_TempObsName() const -{ - return getString("_DPname",""); -} - -string Parset::AntennaSetsConf() const -{ - return getString("OLAP.Storage.AntennaSetsConf",""); -} - -string Parset::AntennaFieldsDir() const -{ - return getString("OLAP.Storage.AntennaFieldsDir",""); -} - -string Parset::HBADeltasDir() const -{ - return getString("OLAP.Storage.HBADeltasDir",""); -} - -void StreamInfo::log() const -{ - LOG_DEBUG_STR( "Stream " << stream << " is sap " << sap << " beam " << beam << " stokes " << stokes << " part " << part << " consisting of subbands " << subbands ); -} - -static unsigned divideRoundUp( unsigned a, unsigned b ) -{ - return b == 0 ? 0 : (a + b - 1) / b; -} - -Transpose2::Transpose2( const Parset &parset ) -: - phaseThreeDisjunct( parset.phaseThreeDisjunct() ), - - nrChannels( parset.nrChannelsPerSubband() ), - nrCoherentChannels( parset.coherentStokesChannelsPerSubband() ), - nrIncoherentChannels( parset.incoherentStokesChannelsPerSubband() ), - nrSamples( parset.CNintegrationSteps() ), - coherentTimeIntFactor( parset.coherentStokesTimeIntegrationFactor() ), - incoherentTimeIntFactor( parset.incoherentStokesTimeIntegrationFactor() ), - - nrBeams( parset.totalNrTABs() ), - coherentNrSubbandsPerFile( parset.coherentStokesNrSubbandsPerFile() ), - incoherentNrSubbandsPerFile( parset.incoherentStokesNrSubbandsPerFile() ), - - nrPhaseTwoPsets( parset.phaseTwoPsets().size() ), - nrPhaseTwoCores( parset.phaseOneTwoCores().size() ), - nrPhaseThreePsets( parset.phaseThreePsets().size() ), - nrPhaseThreeCores( parset.phaseThreeCores().size() ), - - nrSubbandsPerPset( parset.nrSubbandsPerPset() ), - streamInfo( generateStreamInfo(parset) ), - nrStreamsPerPset( divideRoundUp( nrStreams(), parset.phaseThreePsets().size() ) ) -{ -} - -unsigned Transpose2::nrStreams() const -{ - return streamInfo.size(); -} - -// compose and decompose a stream number -unsigned Transpose2::stream( unsigned sap, unsigned beam, unsigned stokes, unsigned part, unsigned startAt ) const -{ - for (unsigned i = startAt; i < streamInfo.size(); i++) { - const struct StreamInfo &info = streamInfo[i]; - - if (sap == info.sap && beam == info.beam && stokes == info.stokes && part == info.part) - return i; - } - - // shouldn't reach this point - ASSERTSTR(false, "Requested non-existing sap " << sap << " beam " << beam << " stokes " << stokes << " part " << part); - - return 0; -} - -void Transpose2::decompose( unsigned stream, unsigned &sap, unsigned &beam, unsigned &stokes, unsigned &part ) const -{ - const struct StreamInfo &info = streamInfo[stream]; - - sap = info.sap; - beam = info.beam; - stokes = info.stokes; - part = info.part; -} - -std::vector<unsigned> Transpose2::subbands( unsigned stream ) const -{ - ASSERT(stream < streamInfo.size()); - - return streamInfo[stream].subbands; -} - -unsigned Transpose2::nrSubbands( unsigned stream ) const -{ - return stream >= streamInfo.size() ? 0 : subbands(stream).size(); -} - -static bool streamInfoSubbandsComp( const struct StreamInfo &a, const struct StreamInfo &b ) -{ - return a.subbands.size() < b.subbands.size(); -} - -unsigned Transpose2::maxNrSubbands() const -{ - return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoSubbandsComp )->subbands.size(); -} - -static bool streamInfoChannelsComp( const struct StreamInfo &a, const struct StreamInfo &b ) -{ - return a.nrChannels < b.nrChannels; -} - -unsigned Transpose2::maxNrChannels() const { - return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoChannelsComp )->nrChannels; -} - -static bool streamInfoSamplesComp( const struct StreamInfo &a, const struct StreamInfo &b ) -{ - return a.nrSamples < b.nrSamples; -} - -unsigned Transpose2::maxNrSamples() const -{ - return streamInfo.size() == 0 ? 0 : std::max_element( streamInfo.begin(), streamInfo.end(), &streamInfoSamplesComp )->nrSamples; -} - -size_t Transpose2::subbandSize( unsigned stream ) const -{ - const StreamInfo &info = streamInfo[stream]; - - return (size_t)info.nrChannels * (info.nrSamples|2) * sizeof(float); -} - -unsigned Transpose2::sourceCore( unsigned subband, unsigned block ) const -{ - return (block * nrSubbandsPerPset + subband % nrSubbandsPerPset) % nrPhaseTwoCores; -} - -unsigned Transpose2::sourcePset( unsigned subband, unsigned block ) const -{ - (void)block; - return subband / nrSubbandsPerPset; -} - -unsigned Transpose2::destCore( unsigned stream, unsigned block ) const -{ - return (block * phaseThreeGroupSize() + stream % nrStreamsPerPset) % nrPhaseThreeCores; -} - -unsigned Transpose2::destPset( unsigned stream, unsigned block ) const -{ - (void)block; - return stream / nrStreamsPerPset; -} - -unsigned Transpose2::phaseThreeGroupSize() const -{ - return phaseThreeDisjunct ? nrStreamsPerPset : nrSubbandsPerPset; -} - - -std::vector<struct StreamInfo> Transpose2::generateStreamInfo( const Parset &parset ) const -{ - // get all info from parset, since we will be called while constructing our members - - // ParameterSets are SLOW, so cache any info we need repeatedly - - std::vector<struct StreamInfo> infoset; - const std::vector<unsigned> sapMapping = parset.subbandToSAPmapping(); - const unsigned nrSAPs = parset.nrBeams(); - const unsigned nrSubbands = parset.nrSubbands(); - const unsigned nrCoherentSubbandsPerFile = parset.coherentStokesNrSubbandsPerFile(); - const unsigned nrIncoherentSubbandsPerFile = parset.incoherentStokesNrSubbandsPerFile(); - - const unsigned nrCoherentStokes = parset.coherentStokes().size(); - const StokesType coherentType = stokesType( parset.coherentStokes() ); - const unsigned nrCoherentChannels = parset.coherentStokesChannelsPerSubband(); - const unsigned nrCoherentTimeIntFactor = parset.coherentStokesTimeIntegrationFactor(); - - const unsigned nrIncoherentStokes = parset.incoherentStokes().size(); - const StokesType incoherentType = stokesType( parset.incoherentStokes() ); - const unsigned nrIncoherentChannels = parset.incoherentStokesChannelsPerSubband(); - const unsigned nrIncoherentTimeIntFactor = parset.incoherentStokesTimeIntegrationFactor(); - - const unsigned nrSamples = parset.CNintegrationSteps(); - - struct StreamInfo info; - info.stream = 0; - - for (unsigned sap = 0; sap < nrSAPs; sap++) { - const unsigned nrBeams = parset.nrTABs(sap); - - info.sap = sap; - - std::vector<unsigned> sapSubbands; - - for (unsigned sb = 0; sb < nrSubbands; sb++) - if (sapMapping[sb] == sap) - sapSubbands.push_back(sb); - - for (unsigned beam = 0; beam < nrBeams; beam++) { - info.beam = beam; - - const bool coherent = parset.isCoherent(sap, beam); - const unsigned nrStokes = coherent ? nrCoherentStokes : nrIncoherentStokes; - - info.coherent = coherent; - info.nrChannels = coherent ? nrCoherentChannels : nrIncoherentChannels; - info.timeIntFactor = coherent ? nrCoherentTimeIntFactor : nrIncoherentTimeIntFactor; - info.nrStokes = nrStokes; - info.stokesType = coherent ? coherentType : incoherentType; - info.nrSamples = nrSamples / info.timeIntFactor; - - const unsigned nrSubbandsPerFile = coherent ? nrCoherentSubbandsPerFile : nrIncoherentSubbandsPerFile; - - for (unsigned stokes = 0; stokes < nrStokes; stokes++) { - info.stokes = stokes; - info.part = 0; - - // split into parts of at most nrSubbandsPerFile - for (unsigned sb = 0; sb < sapSubbands.size(); sb += nrSubbandsPerFile ) { - for (unsigned i = 0; sb + i < sapSubbands.size() && i < nrSubbandsPerFile; i++) - info.subbands.push_back(sapSubbands[sb + i]); - - infoset.push_back(info); - - info.subbands.clear(); - info.part++; - info.stream++; - } - } - } - } - - return infoset; -} - -CN_Transpose2::CN_Transpose2( const Parset &parset, unsigned myPset, unsigned myCore ) -: - Transpose2( parset ), - myPset( myPset ), - myCore( myCore ), - - phaseTwoPsetIndex( parset.phaseTwoPsetIndex(myPset) ), - phaseTwoCoreIndex( parset.phaseTwoCoreIndex(myCore) ), - phaseThreePsetIndex( parset.phaseThreePsetIndex(myPset) ), - phaseThreeCoreIndex( parset.phaseThreeCoreIndex(myCore) ) -{ -} - -int CN_Transpose2::myStream( unsigned block ) const -{ - unsigned first = phaseThreePsetIndex * nrStreamsPerPset; - unsigned blockShift = (phaseThreeGroupSize() * block) % nrPhaseThreeCores; - unsigned relative = (nrPhaseThreeCores + phaseThreeCoreIndex - blockShift) % nrPhaseThreeCores; - - // such a stream does not exist - if (first + relative >= nrStreams()) - return -1; - - // we could handle this stream, but it's handled by a subsequent pset - if (relative >= nrStreamsPerPset) - return -1; - - return first + relative; -} - -unsigned CN_Transpose2::myPart( unsigned subband, bool coherent ) const -{ - for (unsigned i = 0; i < streamInfo.size(); i++) { - const struct StreamInfo &info = streamInfo[i]; - - if ( info.coherent == coherent - && info.subbands[0] <= subband - && info.subbands[info.subbands.size()-1] >= subband ) - return info.part; - } - - // we reach this point if there are no beams of this coherency - return 0; -} - - } // namespace RTCP } // namespace LOFAR diff --git a/RTCP/MetaDataGatherer/CMakeLists.txt b/RTCP/MetaDataGatherer/CMakeLists.txt index cae4d0d207636f1e7b014978819c8911a684d858..e99cda10c7d864d1e44e836f2241dd9adbb20c4e 100644 --- a/RTCP/MetaDataGatherer/CMakeLists.txt +++ b/RTCP/MetaDataGatherer/CMakeLists.txt @@ -3,8 +3,7 @@ lofar_package(MetaDataGatherer 1.0 DEPENDS Common Stream OTDB Interface Storage) include(LofarFindPackage) -lofar_find_package(Casacore COMPONENTS casa measures REQUIRED) -lofar_find_package(Boost REQUIRED date_time) +lofar_find_package(Casacore COMPONENTS casa ms tables REQUIRED) add_subdirectory(src) add_subdirectory(test) diff --git a/RTCP/MetaDataGatherer/src/FinalMetaDataGatherer.cc b/RTCP/MetaDataGatherer/src/FinalMetaDataGatherer.cc index cfaf246c7d34030d4847740e20e5234901d87126..69b9d4d011acccd7fda71334884ef9dbf5765f2d 100644 --- a/RTCP/MetaDataGatherer/src/FinalMetaDataGatherer.cc +++ b/RTCP/MetaDataGatherer/src/FinalMetaDataGatherer.cc @@ -45,8 +45,6 @@ // boost #include <boost/format.hpp> -#include <boost/lexical_cast.hpp> -#include <boost/date_time/posix_time/posix_time.hpp> // Casacore #include <measures/Measures/MEpoch.h> @@ -60,7 +58,6 @@ using namespace LOFAR::RTCP; using namespace LOFAR::OTDB; using namespace std; using namespace casa; -using namespace boost::posix_time; // Use a terminate handler that can produce a backtrace. Exception::TerminateHandler t(Exception::terminate); diff --git a/RTCP/MetaDataGatherer/src/failedtilesinfo.cc b/RTCP/MetaDataGatherer/src/failedtilesinfo.cc index 1730236d5f0ad434df75b18a7d0ceadd3190f482..4e5750ec447f1ad5c5861af63992cefb5a28b0c6 100644 --- a/RTCP/MetaDataGatherer/src/failedtilesinfo.cc +++ b/RTCP/MetaDataGatherer/src/failedtilesinfo.cc @@ -47,14 +47,10 @@ #include <measures/Measures/MEpoch.h> #include <casa/Quanta/MVTime.h> -// Boost -#include <boost/date_time/posix_time/posix_time.hpp> - using namespace std; using namespace LOFAR; using namespace LOFAR::OTDB; using namespace casa; -using namespace boost::posix_time; // Use a terminate handler that can produce a backtrace. Exception::TerminateHandler t(Exception::terminate); diff --git a/RTCP/RTCPTools/CMakeLists.txt b/RTCP/RTCPTools/CMakeLists.txt index 1e5a1625fe5c75aa13feb1f97afe9c9e7a6a124b..5d2d743e3456d925e09ae25836f080402fc59953 100644 --- a/RTCP/RTCPTools/CMakeLists.txt +++ b/RTCP/RTCPTools/CMakeLists.txt @@ -2,7 +2,4 @@ lofar_package(RTCPTools 1.0) -include(LofarFindPackage) -lofar_find_package(Boost REQUIRED) - add_subdirectory(src) diff --git a/RTCP/Storage/CMakeLists.txt b/RTCP/Storage/CMakeLists.txt index cb43c00703f619687d3070b31e5d45fc1de9dd53..1ec905111dc543c0ea6458f7d8fcfb1999dfab4d 100644 --- a/RTCP/Storage/CMakeLists.txt +++ b/RTCP/Storage/CMakeLists.txt @@ -6,7 +6,6 @@ include(LofarFindPackage) lofar_find_package(Casacore COMPONENTS casa ms tables REQUIRED) lofar_find_package(DAL REQUIRED) lofar_find_package(HDF5 REQUIRED) -lofar_find_package(Boost REQUIRED) add_subdirectory(include/Storage) add_subdirectory(src) diff --git a/RTCP/Storage/src/Storage_main.cc b/RTCP/Storage/src/Storage_main.cc index 06d0a903e7dee9963b0de3d9e32a6e278cf1cc6c..f282b0db84567f72d5e003b01de293c0e9cbe468 100644 --- a/RTCP/Storage/src/Storage_main.cc +++ b/RTCP/Storage/src/Storage_main.cc @@ -42,7 +42,6 @@ #include <vector> #include <boost/format.hpp> -#include <boost/lexical_cast.hpp> // install a new handler to produce backtraces for bad_alloc diff --git a/RTCP/Storage/src/createHeaders.cc b/RTCP/Storage/src/createHeaders.cc index fd82618fc7c50959c988eaf272ea106368f53792..adb1547b12c417b39a804f4f2f2456ee3a9b563c 100644 --- a/RTCP/Storage/src/createHeaders.cc +++ b/RTCP/Storage/src/createHeaders.cc @@ -20,7 +20,6 @@ #include <string> #include <boost/format.hpp> -#include <boost/lexical_cast.hpp> using namespace LOFAR; using namespace LOFAR::RTCP; diff --git a/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jCommon.cc b/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jCommon.cc index aa24f69d4a90b2862b28a3be632d922b4447105a..a32f60924cfea7b061d20d85d695ec96a6b78c88 100644 --- a/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jCommon.cc +++ b/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jCommon.cc @@ -25,7 +25,8 @@ #include <Common/LofarLogger.h> #include <Common/StringUtil.h> #include <jOTDB3/nl_astron_lofar_sas_otb_jotdb3_jCommon.h> -#include <boost/date_time/posix_time/posix_time.hpp> +#include <boost/date_time/posix_time/ptime.hpp> +#include <boost/date_time/posix_time/time_formatters.hpp> #include <string> #include <iostream> #include <map> diff --git a/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jOTDBconnection.cc b/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jOTDBconnection.cc index dc87044ed098bb7802491d4ec39db2b34532cc73..634cf75eb8673d5fbd22334242df9560bb63f414 100644 --- a/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jOTDBconnection.cc +++ b/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jOTDBconnection.cc @@ -22,6 +22,7 @@ //# Always #include <lofar_config.h> first! #include <lofar_config.h> +# #include <Common/LofarLogger.h> #include <Common/StringUtil.h> #include <jni.h> @@ -35,7 +36,8 @@ #include <OTDB/TreeStateConv.h> #include <OTDB/TreeTypeConv.h> #include <OTDB/UnitConv.h> -#include <boost/date_time/posix_time/posix_time.hpp> +#include <boost/date_time/posix_time/ptime.hpp> +#include <boost/date_time/posix_time/time_formatters.hpp> #include <string> #include <iostream> diff --git a/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jTreeValue.cc b/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jTreeValue.cc index 7abb84e4a5ddf242520e7936f66b10161675061c..95df2ce4e028d4cfd04d249ed8e5f8d88ce33432 100644 --- a/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jTreeValue.cc +++ b/SAS/OTB/jOTDB3/src/nl_astron_lofar_sas_otb_jotdb3_jTreeValue.cc @@ -29,7 +29,9 @@ #include <jOTDB3/nl_astron_lofar_sas_otb_jotdb3_jCommon.h> #include <jOTDB3/nl_astron_lofar_sas_otb_jotdb3_jOTDBconnection.h> #include <jOTDB3/nl_astron_lofar_sas_otb_jotdb3_jTreeValue.h> -#include <boost/date_time/posix_time/posix_time.hpp> +#include <boost/date_time/posix_time/ptime.hpp> +#include <boost/date_time/posix_time/time_formatters.hpp> +#include <boost/date_time/posix_time/time_parsers.hpp> #include <string> #include <iostream> diff --git a/SAS/OTDB/CMakeLists.txt b/SAS/OTDB/CMakeLists.txt index 89150c3510ddf291ce25e07f4e63cb378bb2907e..36bd8e2e438c871fb5609864c6890eecf89bad45 100644 --- a/SAS/OTDB/CMakeLists.txt +++ b/SAS/OTDB/CMakeLists.txt @@ -1,6 +1,6 @@ # $Id$ -lofar_package(OTDB 1.0 DEPENDS ApplCommon Common) +lofar_package(OTDB 1.0 DEPENDS Common) include(LofarFindPackage) lofar_find_package(Boost REQUIRED COMPONENTS date_time) diff --git a/SAS/OTDB/include/OTDB/CampaignInfo.h b/SAS/OTDB/include/OTDB/CampaignInfo.h index 05e849699a2c8ba3c6bf7159c5e57a0d552956bd..3a35bac2900a5008c6a82429752c5fdeb9e8dfe0 100644 --- a/SAS/OTDB/include/OTDB/CampaignInfo.h +++ b/SAS/OTDB/include/OTDB/CampaignInfo.h @@ -30,7 +30,9 @@ //# Includes #include <OTDB/OTDBconstants.h> #include <OTDB/OTDBtypes.h> -#include <pqxx/result> +#include <pqxx/pqxx> + +using namespace boost::posix_time; namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/include/OTDB/Converter.h b/SAS/OTDB/include/OTDB/Converter.h index 74240d53534377e5090adc314ceed1a3586c5835..0f2ec9abbfb5f0674e971a786220c037a56e815c 100644 --- a/SAS/OTDB/include/OTDB/Converter.h +++ b/SAS/OTDB/include/OTDB/Converter.h @@ -31,6 +31,7 @@ #include <Common/lofar_map.h> #include <Common/lofar_string.h> #include <Common/LofarTypes.h> +#include <pqxx/pqxx> namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/include/OTDB/DefaultTemplate.h b/SAS/OTDB/include/OTDB/DefaultTemplate.h index 47ebe27cb6949d055d4c9a7afd661979094de9a3..299b7d0f759a3aa182c6031f49a45bdab7bcfd6b 100644 --- a/SAS/OTDB/include/OTDB/DefaultTemplate.h +++ b/SAS/OTDB/include/OTDB/DefaultTemplate.h @@ -30,7 +30,10 @@ //# Includes #include <OTDB/OTDBconstants.h> #include <OTDB/OTDBtypes.h> -#include <pqxx/result> +#include <boost/date_time/posix_time/ptime.hpp> +#include <pqxx/pqxx> + +using namespace boost::posix_time; namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/include/OTDB/OTDBaction.h b/SAS/OTDB/include/OTDB/OTDBaction.h index be62bea0b9ad2b16c847525528a5c8913b6deee7..cbe7eeb36c16f435c6c857b456c252671f64fc30 100644 --- a/SAS/OTDB/include/OTDB/OTDBaction.h +++ b/SAS/OTDB/include/OTDB/OTDBaction.h @@ -28,6 +28,7 @@ //# Never #include <config.h> or #include <lofar_config.h> in a header file! //# Includes +#include <Common/lofar_datetime.h> #include <OTDB/OTDBtypes.h> namespace LOFAR { diff --git a/SAS/OTDB/include/OTDB/OTDBconnection.h b/SAS/OTDB/include/OTDB/OTDBconnection.h index 52a4fc2b7cb80f18b2c561e3ea13db380cde31d5..318030b4124a54f0471b98ee2858c74415befb28 100644 --- a/SAS/OTDB/include/OTDB/OTDBconnection.h +++ b/SAS/OTDB/include/OTDB/OTDBconnection.h @@ -33,14 +33,12 @@ #include <OTDB/DefaultTemplate.h> #include <Common/lofar_vector.h> #include <Common/lofar_map.h> -#include <pqxx/connection> + +using namespace pqxx; namespace LOFAR { namespace OTDB { -using boost::posix_time::min_date_time; -using boost::posix_time::max_date_time; - // \addtogroup OTDB // @{ @@ -122,7 +120,7 @@ public: //# --- accessor functions --- inline string errorMsg() const; inline uint32 getAuthToken() const; - inline pqxx::connection* getConn() const; + inline connection* getConn() const; inline string getDBName() const; private: @@ -137,7 +135,7 @@ private: string itsHost; string itsPort; bool itsIsConnected; - pqxx::connection* itsConnection; + connection* itsConnection; uint32 itsAuthToken; string itsError; }; @@ -167,7 +165,7 @@ inline uint32 OTDBconnection::getAuthToken() const //# a non copyable object, making it difficult to define a call like: //# work(*) OTDBconnection::transaction(transactionName); //# -inline pqxx::connection* OTDBconnection::getConn() const +inline connection* OTDBconnection::getConn() const { return (itsConnection); } diff --git a/SAS/OTDB/include/OTDB/OTDBeventList.h b/SAS/OTDB/include/OTDB/OTDBeventList.h index ea8968cae8b5503f5afe6439859de6001a56fba7..b57f4a9b81269681531bc0ab5e3a3340633fa0ed 100644 --- a/SAS/OTDB/include/OTDB/OTDBeventList.h +++ b/SAS/OTDB/include/OTDB/OTDBeventList.h @@ -28,6 +28,7 @@ //# Never #include <config.h> or #include <lofar_config.h> in a header file! //# Includes +#include <Common/lofar_datetime.h> #include <Common/lofar_vector.h> #include <OTDB/OTDBtypes.h> #include <OTDB/OTDBevent.h> diff --git a/SAS/OTDB/include/OTDB/OTDBnode.h b/SAS/OTDB/include/OTDB/OTDBnode.h index 1985bf1c8acdeedb64620cee096405598f053d63..d65b788a704a277e21d792b91686248033c15003 100644 --- a/SAS/OTDB/include/OTDB/OTDBnode.h +++ b/SAS/OTDB/include/OTDB/OTDBnode.h @@ -30,7 +30,10 @@ //# Includes #include <OTDB/OTDBconstants.h> #include <OTDB/OTDBtypes.h> -#include <pqxx/result> +#include <boost/date_time/posix_time/ptime.hpp> +#include <pqxx/pqxx> + +using namespace boost::posix_time; namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/include/OTDB/OTDBparam.h b/SAS/OTDB/include/OTDB/OTDBparam.h index b5a403bec80bb2da6fe3cb942fd548c7d08e8aff..89b918dab6bf59906c8283551497c7acdb7505db 100644 --- a/SAS/OTDB/include/OTDB/OTDBparam.h +++ b/SAS/OTDB/include/OTDB/OTDBparam.h @@ -31,7 +31,9 @@ #include <OTDB/OTDBconstants.h> #include <OTDB/OTDBtypes.h> #include <boost/date_time/posix_time/ptime.hpp> -#include <pqxx/result> +#include <pqxx/pqxx> + +using namespace boost::posix_time; namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/include/OTDB/OTDBtree.h b/SAS/OTDB/include/OTDB/OTDBtree.h index c8f846cc847d94ffff77ac63f60d652f9a889d45..6df6132bf868091f2496f1bdcd6498d7a047a65c 100644 --- a/SAS/OTDB/include/OTDB/OTDBtree.h +++ b/SAS/OTDB/include/OTDB/OTDBtree.h @@ -30,15 +30,14 @@ //# Includes #include <OTDB/OTDBconstants.h> #include <OTDB/OTDBtypes.h> -#include <Common/lofar_string.h> #include <boost/date_time/posix_time/ptime.hpp> -#include <pqxx/result> +#include <pqxx/pqxx> + +using namespace boost::posix_time; namespace LOFAR { namespace OTDB { -using boost::posix_time::ptime; - // \addtogroup OTDB // @{ diff --git a/SAS/OTDB/include/OTDB/OTDBvalue.h b/SAS/OTDB/include/OTDB/OTDBvalue.h index 885e3436ac4ac74c01cda5285dec5ad51abdacd2..b0714a4441df2b2bf1382872296980e6225d88b7 100644 --- a/SAS/OTDB/include/OTDB/OTDBvalue.h +++ b/SAS/OTDB/include/OTDB/OTDBvalue.h @@ -31,13 +31,13 @@ #include <OTDB/OTDBconstants.h> #include <OTDB/OTDBtypes.h> #include <boost/date_time/posix_time/ptime.hpp> -#include <pqxx/result> +#include <pqxx/pqxx> + +using namespace boost::posix_time; namespace LOFAR { namespace OTDB { -using boost::posix_time::ptime; - // \addtogroup OTDB // @{ diff --git a/SAS/OTDB/include/OTDB/TreeState.h b/SAS/OTDB/include/OTDB/TreeState.h index 212f11af7fbadee524e9bdb4177f2ae16700e399..d2c1d003940f1bfd1e543299cc01fac47a99bd51 100644 --- a/SAS/OTDB/include/OTDB/TreeState.h +++ b/SAS/OTDB/include/OTDB/TreeState.h @@ -29,14 +29,14 @@ //# Never #include <config.h> or #include <lofar_config.h> in a header file! //# Includes #include <OTDB/OTDBtypes.h> -#include <pqxx/result> -#include <boost/date_time/posix_time/ptime.hpp> +#include <Common/lofar_datetime.h> +#include <pqxx/pqxx> + +using namespace boost::posix_time; namespace LOFAR { namespace OTDB { -using boost::posix_time::ptime; - // \addtogroup OTDB // @{ diff --git a/SAS/OTDB/include/OTDB/TreeValue.h b/SAS/OTDB/include/OTDB/TreeValue.h index b4a8fee96f1b2571f03386f760ddf6ecc89aa239..ad59242d723c269f6daac322b6c2277bc27d7ce6 100644 --- a/SAS/OTDB/include/OTDB/TreeValue.h +++ b/SAS/OTDB/include/OTDB/TreeValue.h @@ -40,8 +40,6 @@ namespace LOFAR { // \addtogroup OTDB // @{ -using boost::posix_time::not_a_date_time; - //# --- Forward Declarations --- //# classes mentioned as parameter or returntype without virtual functions. diff --git a/SAS/OTDB/include/OTDB/VICnodeDef.h b/SAS/OTDB/include/OTDB/VICnodeDef.h index 9b0cf656b643c0ef327994ce557a01594dae1d58..da445153e62ed7a303ad405d20e92c96f8550c2e 100644 --- a/SAS/OTDB/include/OTDB/VICnodeDef.h +++ b/SAS/OTDB/include/OTDB/VICnodeDef.h @@ -30,7 +30,9 @@ //# Includes #include <OTDB/OTDBconstants.h> #include <OTDB/OTDBtypes.h> -#include <pqxx/result> +#include <pqxx/pqxx> + +using namespace boost::posix_time; namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/src/Campaign.cc b/SAS/OTDB/src/Campaign.cc index d16381667473088a49cd17a62a7acd15385841af..c59f8300b96a2ab3b87b1a01d88aa87dc66be69c 100644 --- a/SAS/OTDB/src/Campaign.cc +++ b/SAS/OTDB/src/Campaign.cc @@ -25,12 +25,9 @@ //# Includes #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <OTDB/Campaign.h> -#include <pqxx/transaction> - -using namespace pqxx; - namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/src/CampaignInfo.cc b/SAS/OTDB/src/CampaignInfo.cc index 1e9564f18a6fba2eaaeeaffec198b6e9b573b8a2..acee4a2210b7cb409ca7faf634ba4846051b3565 100644 --- a/SAS/OTDB/src/CampaignInfo.cc +++ b/SAS/OTDB/src/CampaignInfo.cc @@ -25,6 +25,7 @@ //# Includes #include<Common/LofarLogger.h> +#include<Common/lofar_datetime.h> #include<OTDB/CampaignInfo.h> using namespace pqxx; diff --git a/SAS/OTDB/src/Converter.cc b/SAS/OTDB/src/Converter.cc index a035e490d6f23ef7f2cd2e9479ddba8a9d800b51..d432c501b718330e61a0c71bea0d47d7bfde604f 100644 --- a/SAS/OTDB/src/Converter.cc +++ b/SAS/OTDB/src/Converter.cc @@ -29,8 +29,6 @@ #include <OTDB/OTDBconnection.h> #include <OTDB/Converter.h> -#include <pqxx/transaction> - using namespace pqxx; namespace LOFAR { diff --git a/SAS/OTDB/src/DefaultTemplate.cc b/SAS/OTDB/src/DefaultTemplate.cc index 79fe77d437b8a404768c4407b200042f87428242..e37df318dfc7b6d45ee489ecb58df6a0304b560d 100644 --- a/SAS/OTDB/src/DefaultTemplate.cc +++ b/SAS/OTDB/src/DefaultTemplate.cc @@ -25,6 +25,7 @@ //# Includes #include<Common/LofarLogger.h> +#include<Common/lofar_datetime.h> #include<OTDB/DefaultTemplate.h> using namespace pqxx; diff --git a/SAS/OTDB/src/OTDBconnection.cc b/SAS/OTDB/src/OTDBconnection.cc index 335920f42665dbeb8963cc9e57aebf362ec81c1e..cb9fe71ef91e147afd184911bcb2d05e17f01412 100644 --- a/SAS/OTDB/src/OTDBconnection.cc +++ b/SAS/OTDB/src/OTDBconnection.cc @@ -26,15 +26,10 @@ //# Includes #include<Common/LofarLogger.h> #include<Common/StringUtil.h> +#include<Common/lofar_datetime.h> #include<OTDB/OTDBconnection.h> #include<OTDB/OTDBconstants.h> -#include <boost/date_time/posix_time/posix_time.hpp> -#include <pqxx/transaction> - -using namespace pqxx; -using namespace boost::posix_time; - namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/src/OTDBevent.cc b/SAS/OTDB/src/OTDBevent.cc index bb54c19b153640195871db6a238d521853b76721..57334f63375765c651873e5015a35b0275b9cf8f 100644 --- a/SAS/OTDB/src/OTDBevent.cc +++ b/SAS/OTDB/src/OTDBevent.cc @@ -24,6 +24,7 @@ #include <lofar_config.h> //# Includes +#include <Common/lofar_datetime.h> #include <Common/LofarLogger.h> #include <OTDB/OTDBevent.h> diff --git a/SAS/OTDB/src/OTDBnode.cc b/SAS/OTDB/src/OTDBnode.cc index fb9f15e2a890f2d813792a12fa05c1597913203c..46ed23ef63f7800b9cab2b99821e52b595d8d1b8 100644 --- a/SAS/OTDB/src/OTDBnode.cc +++ b/SAS/OTDB/src/OTDBnode.cc @@ -25,6 +25,7 @@ //# Includes #include<Common/LofarLogger.h> +#include<Common/lofar_datetime.h> #include<OTDB/OTDBnode.h> using namespace pqxx; diff --git a/SAS/OTDB/src/OTDBparam.cc b/SAS/OTDB/src/OTDBparam.cc index 8fd13bb0c1c55628ab94aea50ab906e3038ac284..714ea941f79613b854d5d8d26c6022a92387df2e 100644 --- a/SAS/OTDB/src/OTDBparam.cc +++ b/SAS/OTDB/src/OTDBparam.cc @@ -25,6 +25,7 @@ //# Includes #include<Common/LofarLogger.h> +#include<Common/lofar_datetime.h> #include<OTDB/OTDBparam.h> using namespace pqxx; diff --git a/SAS/OTDB/src/OTDBtree.cc b/SAS/OTDB/src/OTDBtree.cc index 099d51da4b7d8d88632fa490264e278b56fbfd4d..590de2cda9edb8e9d6a93d703f50562e9d55a632 100644 --- a/SAS/OTDB/src/OTDBtree.cc +++ b/SAS/OTDB/src/OTDBtree.cc @@ -25,10 +25,9 @@ //# Includes #include<Common/LofarLogger.h> +#include<Common/lofar_datetime.h> #include<OTDB/OTDBtree.h> -#include <boost/date_time/posix_time/posix_time.hpp> -using namespace boost::posix_time; using namespace pqxx; namespace LOFAR { diff --git a/SAS/OTDB/src/OTDBvalue.cc b/SAS/OTDB/src/OTDBvalue.cc index dbc869b1a9389e0d49b7de5b3784b8ec3c32a0ed..4ce3e8dd08c6d1d5bc3adf7333ca8545058d6d1f 100644 --- a/SAS/OTDB/src/OTDBvalue.cc +++ b/SAS/OTDB/src/OTDBvalue.cc @@ -25,10 +25,9 @@ //# Includes #include<Common/LofarLogger.h> +#include<Common/lofar_datetime.h> #include<OTDB/OTDBvalue.h> -#include <boost/date_time/posix_time/posix_time.hpp> -using namespace boost::posix_time; using namespace pqxx; namespace LOFAR { diff --git a/SAS/OTDB/src/TreeMaintenance.cc b/SAS/OTDB/src/TreeMaintenance.cc index 8445c95b2af593d818915d445839599cbd1083d9..a1fbd4c91008efed6b8ebc40a41a0377ed7954cf 100644 --- a/SAS/OTDB/src/TreeMaintenance.cc +++ b/SAS/OTDB/src/TreeMaintenance.cc @@ -26,6 +26,7 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/StringUtil.h> +#include <Common/lofar_datetime.h> #include <Common/lofar_string.h> #include <fstream> #include <OTDB/TreeMaintenance.h> @@ -33,10 +34,6 @@ #include <OTDB/OTDBparam.h> #include <OTDB/misc.h> -#include <pqxx/transaction> - -using namespace pqxx; - namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/src/TreeState.cc b/SAS/OTDB/src/TreeState.cc index 4763b63bfe897b4b014fa7d9191dde58931c812c..494b29a9e0ef562fc1f6e3d1908052adfd2393fa 100644 --- a/SAS/OTDB/src/TreeState.cc +++ b/SAS/OTDB/src/TreeState.cc @@ -25,12 +25,10 @@ //# Includes #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <OTDB/TreeState.h> -#include <boost/date_time/posix_time/posix_time.hpp> - using namespace pqxx; -using namespace boost::posix_time; namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/src/TreeValue.cc b/SAS/OTDB/src/TreeValue.cc index c782fa0f765127aef7fbd7f63a6ed7c3e1208343..0a88ff474f1e41368218500a76ac6c2d46172a0e 100644 --- a/SAS/OTDB/src/TreeValue.cc +++ b/SAS/OTDB/src/TreeValue.cc @@ -25,14 +25,9 @@ //# Includes #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <OTDB/TreeValue.h> -#include <pqxx/transaction> -#include <boost/date_time/posix_time/posix_time.hpp> - -using namespace pqxx; -using namespace boost::posix_time; - namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/src/VICnodeDef.cc b/SAS/OTDB/src/VICnodeDef.cc index 8d2a42638f7a1d957384378ff807cedec88563df..62e5d5d3872c834c09ff1f6360f329b6b3cff0ae 100644 --- a/SAS/OTDB/src/VICnodeDef.cc +++ b/SAS/OTDB/src/VICnodeDef.cc @@ -25,6 +25,7 @@ //# Includes #include <Common/LofarLogger.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include <OTDB/VICnodeDef.h> #include <OTDB/misc.h> diff --git a/SAS/OTDB/src/loadCompFile.cc b/SAS/OTDB/src/loadCompFile.cc index 6ce898f1009a20d330f00712b01dd64b325e735b..4b59b2f09f7833ee2d04710d1477e45c225174eb 100644 --- a/SAS/OTDB/src/loadCompFile.cc +++ b/SAS/OTDB/src/loadCompFile.cc @@ -39,10 +39,6 @@ #include <OTDB/ClassifConv.h> #include <OTDB/misc.h> -#include <pqxx/transaction> - -using namespace pqxx; - namespace LOFAR { namespace OTDB { diff --git a/SAS/OTDB/test/tBrokenHardware.cc b/SAS/OTDB/test/tBrokenHardware.cc index 88c27d70f501264970c1052b119231764035823b..a66c1a5adba09b28493f90cb1ad4db44594487eb 100644 --- a/SAS/OTDB/test/tBrokenHardware.cc +++ b/SAS/OTDB/test/tBrokenHardware.cc @@ -26,6 +26,7 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/lofar_fstream.h> +#include <Common/lofar_datetime.h> #include <Common/ParameterSet.h> #include <OTDB/TreeMaintenance.h> #include <OTDB/TreeValue.h> @@ -36,11 +37,9 @@ #include <OTDB/ClassifConv.h> #include <libgen.h> // for basename -#include <boost/date_time/posix_time/posix_time.hpp> - using namespace LOFAR; using namespace LOFAR::OTDB; -using namespace boost::posix_time; + // // showTreeList diff --git a/SAS/OTDB/test/tCampaign.cc b/SAS/OTDB/test/tCampaign.cc index 09604f66eb9277a1ef424a037183b4b722d1bd5a..2b29b4dd695d4cf91594cff6b5ccf358e94daaee 100644 --- a/SAS/OTDB/test/tCampaign.cc +++ b/SAS/OTDB/test/tCampaign.cc @@ -30,7 +30,6 @@ #include <OTDB/OTDBconnection.h> #include <OTDB/Campaign.h> #include <libgen.h> // for basename -#include <cstring> using namespace LOFAR; using namespace LOFAR::OTDB; diff --git a/SAS/OTDB/test/tConnection.cc b/SAS/OTDB/test/tConnection.cc index 942254b3e9270a5733e29db7f9ed6d5a20031596..558a92c41bd871891f7b9d4ca1b4262352a47a21 100644 --- a/SAS/OTDB/test/tConnection.cc +++ b/SAS/OTDB/test/tConnection.cc @@ -26,6 +26,7 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/lofar_fstream.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include <OTDB/OTDBconnection.h> #include <OTDB/TreeState.h> @@ -33,11 +34,8 @@ #include <OTDB/TreeMaintenance.h> #include <libgen.h> // for basename -#include <boost/date_time/posix_time/posix_time.hpp> - using namespace LOFAR; using namespace LOFAR::OTDB; -using namespace boost::posix_time; // // show tree result diff --git a/SAS/OTDB/test/tPICtree.cc b/SAS/OTDB/test/tPICtree.cc index 870b2ca4401c3c7d688a0377fa0d874608591773..bb7eea8c7dc14c35848d7e17257e2ca79f7e46b7 100644 --- a/SAS/OTDB/test/tPICtree.cc +++ b/SAS/OTDB/test/tPICtree.cc @@ -26,6 +26,7 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/lofar_fstream.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include <OTDB/TreeMaintenance.h> #include <OTDB/OTDBtypes.h> @@ -34,7 +35,6 @@ #include <OTDB/TreeStateConv.h> #include <OTDB/ClassifConv.h> #include <libgen.h> // for basename -#include <cstring> using namespace LOFAR; using namespace LOFAR::OTDB; diff --git a/SAS/OTDB/test/tPICvalue.cc b/SAS/OTDB/test/tPICvalue.cc index fcb3095d5c940468d03cbd1cf60dded8dc75e6bb..7cd6167c98a6fdaacc8f14e821b597d3fd3d12fe 100644 --- a/SAS/OTDB/test/tPICvalue.cc +++ b/SAS/OTDB/test/tPICvalue.cc @@ -26,6 +26,7 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/lofar_fstream.h> +#include <Common/lofar_datetime.h> #include <Common/ParameterSet.h> #include <OTDB/TreeMaintenance.h> #include <OTDB/TreeValue.h> @@ -35,13 +36,10 @@ #include <OTDB/TreeStateConv.h> #include <OTDB/ClassifConv.h> #include <libgen.h> // for basename -#include <cstring> - -#include <boost/date_time/posix_time/posix_time.hpp> using namespace LOFAR; using namespace LOFAR::OTDB; -using namespace boost::posix_time; + // // showTreeList diff --git a/SAS/OTDB/test/tParamTypeConv.cc b/SAS/OTDB/test/tParamTypeConv.cc index 990514c8ae0a86c0f6639f85d163a3c59dc6604d..8eef75079caec84b05f0a69914ba07300a65d913 100644 --- a/SAS/OTDB/test/tParamTypeConv.cc +++ b/SAS/OTDB/test/tParamTypeConv.cc @@ -26,10 +26,10 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/lofar_fstream.h> +#include <Common/lofar_datetime.h> #include <Common/SystemUtil.h> #include <OTDB/OTDBconnection.h> #include <OTDB/ParamTypeConv.h> -#include <cstring> using namespace LOFAR; using namespace LOFAR::OTDB; diff --git a/SAS/OTDB/test/tQueryPIC.cc b/SAS/OTDB/test/tQueryPIC.cc index b3acaea190ce523ff7ab2eaceb63a4e9a1ef2d06..99f85c5be5433d332d098bf83c1897ff897dc0ae 100644 --- a/SAS/OTDB/test/tQueryPIC.cc +++ b/SAS/OTDB/test/tQueryPIC.cc @@ -26,6 +26,7 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/lofar_fstream.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include <OTDB/TreeMaintenance.h> #include <OTDB/TreeValue.h> @@ -36,13 +37,9 @@ #include <OTDB/TreeTypeConv.h> #include <OTDB/ClassifConv.h> #include <libgen.h> // for basename -#include <cstring> - -#include <boost/date_time/posix_time/posix_time.hpp> using namespace LOFAR; using namespace LOFAR::OTDB; -using namespace boost::posix_time; // // show the resulting list of Values diff --git a/SAS/OTDB/test/tVHtree.cc b/SAS/OTDB/test/tVHtree.cc index 152e395160b58fa51e873dafe87ec029c3749b95..6bbf31616cb0c5a8bdc3c8b39dacf87114f45d7c 100644 --- a/SAS/OTDB/test/tVHtree.cc +++ b/SAS/OTDB/test/tVHtree.cc @@ -26,6 +26,7 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/lofar_fstream.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include <OTDB/TreeMaintenance.h> #include <OTDB/OTDBtypes.h> @@ -35,13 +36,9 @@ #include <OTDB/TreeStateConv.h> #include <OTDB/ClassifConv.h> #include <libgen.h> // for basename -#include <cstring> - -#include <boost/date_time/posix_time/posix_time.hpp> using namespace LOFAR; using namespace LOFAR::OTDB; -using namespace boost::posix_time; // // showTreeList diff --git a/SAS/OTDB/test/tVHvalue.cc b/SAS/OTDB/test/tVHvalue.cc index 10e7047521ece408d629d53dbb0a88918d371829..7bfb095c59d1bc0272d0e3d0a2814388e14e9351 100644 --- a/SAS/OTDB/test/tVHvalue.cc +++ b/SAS/OTDB/test/tVHvalue.cc @@ -26,6 +26,7 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/lofar_fstream.h> +#include <Common/lofar_datetime.h> #include <Common/ParameterSet.h> #include <OTDB/TreeMaintenance.h> #include <OTDB/TreeValue.h> @@ -35,13 +36,9 @@ #include <OTDB/TreeStateConv.h> #include <OTDB/ClassifConv.h> #include <libgen.h> // for basename -#include <cstring> - -#include <boost/date_time/posix_time/posix_time.hpp> using namespace LOFAR; using namespace LOFAR::OTDB; -using namespace boost::posix_time; // diff --git a/SAS/OTDB/test/tVICcomp.cc b/SAS/OTDB/test/tVICcomp.cc index a1dfefac19f7a5b561b36216fa1449e7133abb95..81d9edcf556b30ea5e6ba473d9b8c0e98a314336 100644 --- a/SAS/OTDB/test/tVICcomp.cc +++ b/SAS/OTDB/test/tVICcomp.cc @@ -26,6 +26,7 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/lofar_fstream.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include <OTDB/TreeMaintenance.h> #include <OTDB/OTDBtypes.h> @@ -33,7 +34,6 @@ #include <OTDB/OTDBparam.h> #include <OTDB/ClassifConv.h> #include <libgen.h> // for basename -#include <cstring> using namespace LOFAR; using namespace LOFAR::OTDB; diff --git a/SAS/OTDB/test/tVTtree.cc b/SAS/OTDB/test/tVTtree.cc index 3a16cb8e338c820cbd2893577e4a14836de87916..e3cc919019b0954f011e156b910a44d763ed5755 100644 --- a/SAS/OTDB/test/tVTtree.cc +++ b/SAS/OTDB/test/tVTtree.cc @@ -26,6 +26,7 @@ //# Includes #include <Common/LofarLogger.h> #include <Common/lofar_fstream.h> +#include <Common/lofar_datetime.h> #include <Common/StringUtil.h> #include <OTDB/TreeMaintenance.h> #include <OTDB/OTDBtypes.h> @@ -35,13 +36,9 @@ #include <OTDB/TreeStateConv.h> #include <OTDB/ClassifConv.h> #include <libgen.h> // for basename -#include <cstring> - -#include <boost/date_time/posix_time/posix_time.hpp> using namespace LOFAR; using namespace LOFAR::OTDB; -using namespace boost::posix_time; // // showTreeList diff --git a/lofar_config.h.cmake b/lofar_config.h.cmake index bc66715589fb890db06f5b1da9045001c9a40314..901d33f20771617c31a4353b92837aa818243921 100644 --- a/lofar_config.h.cmake +++ b/lofar_config.h.cmake @@ -172,3 +172,6 @@ /* Define to 1 if you have a declaration for the `getprotobyname_r' function. */ #cmakedefine HAVE_GETPROTOBYNAME_R 1 + +/* Define to 1 if you have a declaration for the `strnlen' function. */ +#cmakedefine HAVE_STRNLEN 1