Select Git revision
WinCCManager.cc
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
WinCCManager.cc 26.97 KiB
//# Copyright (C) 2017
//# 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/>.
#include <sstream>
#include <StartDpInitSysMsg.hxx>
#include "WinCCManager.h"
#include "ConnectWaitForAnswer.h"
#include <DrvManager.hxx>
#include <PeriphAddr.hxx>
#include <AbstractHWMapper.hxx>
#include <BitVar.hxx>
#include <TimeVar.hxx>
#include <Variable.hxx>
#include <IntegerVar.hxx>
#include <LongVar.hxx>
#include <TextVar.hxx>
#include <DynVar.hxx>
#include <DynPtrArray.hxx>
#include <Resources.hxx>
#include <cassert>
#include <vector>
#include <boost/python.hpp>
#include <Manager.hxx>
#include <DpElement.hxx>
#include <DpIdentification.hxx>
#include <DpIdentificationResultType.hxx>
#include <boost/any.hpp>
#include <exceptions.h>
namespace LOFAR {
namespace WINCCWRAPPER {
using namespace std;
volatile bool WinCCManager::doExit = false;
WinCCManager::WinCCManager() :
Manager(ManagerIdentifier(API_MAN, Resources::getManNum()))
{
init();
}
void WinCCManager::init()
{
// First connect to Data manager.
// We want Typecontainer and Identification so we can resolve names
// This call succeeds or the manager will exit
connectToData(StartDpInitSysMsg::TYPE_CONTAINER | StartDpInitSysMsg::DP_IDENTIFICATION);
// While we are in STATE_INIT we are initialized by the Data manager
while (getManagerState() == STATE_INIT)