diff --git a/CHANGELOG.md b/CHANGELOG.md index 60f4a102a49f0953ee1dcefa54323d9c6cd26ac9..3d7336631296d38694be9ef8d2f707c8ee2e3e36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -68,3 +68,16 @@ and this project adheres to [Semantic Versioning](http://semver.org/ ### Fixed issue #452 - The Total Power component erroneously assigned a timestamp to the samples in case more samples were needed to reach total integration time issue #473 - The SRT AS USDs now retry 5 times to communicate with the hardware before setting their state to unavailable + +## [discos1.0.4] 03-02-2020 +### Added + issue #505 - CALMUX integrated and tested into the SRT production line (it has been successfully tested with DBBC and DFB backends) +### Changed + issue #477 - removed the SecureArea from some AntennaBoss methods + issue #476 - replaced all occurrencies of DPI/2 with the defined variable DPIBY2, this should improve precision + issue #489 - new focus curve for SRT X band receiver + issue #506 - each SRT local oscillator now has its dedicated container + issue #510 - fixed SRT TotalPower CDB configuration in order to use the correct IP address +### Fixed + issue #433 - limited refraction correction values to a meaningful range in order to avoid flooding the jlog with warning messages whenever the elevation is close to 90 degrees + issue #502 - removed last service daemon reference from Manager.xml io SRT production line diff --git a/Common/Libraries/IRALibrary/src/IRATools.cpp b/Common/Libraries/IRALibrary/src/IRATools.cpp index f73c99b39b051d51e990dbbfc1ff0dbea7d1ae26..e4f11d8972bdb9eca1d1f5875a98bcbc1c3ed82d 100644 --- a/Common/Libraries/IRALibrary/src/IRATools.cpp +++ b/Common/Libraries/IRALibrary/src/IRATools.cpp @@ -841,7 +841,7 @@ bool CIRATools::latitudeToRad(const IRA::CString& lat,double& rad,bool complete, res=sexagesimalAngleToRad(lat,rad,complete,delimiter); } if (complete) { - if ((rad<-(DPI/2)) || (rad>(DPI/2))) return false; + if (rad<-DPIBY2 || rad>DPIBY2) return false; else return res; } else return res; @@ -915,7 +915,7 @@ bool CIRATools::elevationToRad(const IRA::CString& el,double& rad,bool complete) { bool res=angleToRad(el,rad); if (complete) { - if ((rad<0) || (rad>DPI/2)) return false; + if (rad<0 || rad>DPIBY2) return false; else return res; } else return res; diff --git a/Common/Misc/UserTools/src/SourceTrack.cpp b/Common/Misc/UserTools/src/SourceTrack.cpp index 7323c2642ab4351cbc52286a992bac999f4ebd4d..3c0c98a634f99358447af2adae7430c6cbcd9307 100644 --- a/Common/Misc/UserTools/src/SourceTrack.cpp +++ b/Common/Misc/UserTools/src/SourceTrack.cpp @@ -202,7 +202,7 @@ int main(int argc, char *argv[]) _CP_ printf("Horizontal coordinates:\tazimuth %.8lf°, elevation %.8lf°\n",az*DR2D,el*DR2D); - double obsZenithDistance=(DPI/2.0)-el; + double obsZenithDistance=DPIBY2-el; double corZenithDistance; double tdk = 13 + 273.0; // temperature double wl = 36000.0; diff --git a/Common/Servers/AntennaBoss/include/AntennaBossImpl.h b/Common/Servers/AntennaBoss/include/AntennaBossImpl.h index c7f561bce51603bd9e5847f392dffdd3dbb3a8b0..1a22972dcc4f69788f7be3dd4ddeb38b5e57f9f4 100644 --- a/Common/Servers/AntennaBoss/include/AntennaBossImpl.h +++ b/Common/Servers/AntennaBoss/include/AntennaBossImpl.h @@ -673,6 +673,7 @@ private: SmartPropertyPointer<ROdouble> m_pdeclinationOffset; SmartPropertyPointer<ROdouble> m_plongitudeOffset; SmartPropertyPointer<ROdouble> m_platitudeOffset; + CBossCore *m_boss; IRA::CSecureArea<CBossCore> *m_core; CWorkingThread *m_workingThread; CWatchingThread *m_watchingThread; diff --git a/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp b/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp index f40a15fd01f67e128c66721ed19c9b0a60bf7f2b..54d5dc27e252b38f0af1dd0ffca66578ea2dd91e 100644 --- a/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp +++ b/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp @@ -56,6 +56,7 @@ AntennaBossImpl::AntennaBossImpl(const ACE_CString &CompName,maci::ContainerServ m_pdeclinationOffset(this), m_plongitudeOffset(this), m_platitudeOffset(this), + m_boss(NULL), m_core(NULL) { AUTO_TRACE("AntennaBossImpl::AntennaBossImpl()"); @@ -71,7 +72,6 @@ AntennaBossImpl::~AntennaBossImpl() void AntennaBossImpl::initialize() throw (ACSErr::ACSbaseExImpl) { AUTO_TRACE("AntennaBossImpl::initialize()"); - CBossCore *boss; ACS_LOG(LM_FULL_INFO,"AntennaBossImpl::initialize()",(LM_INFO,"AntennaBoss::COMPSTATE_INITIALIZING")); try { m_config.init(getContainerServices()); //throw CDBAcessExImpl; @@ -81,8 +81,8 @@ void AntennaBossImpl::initialize() throw (ACSErr::ACSbaseExImpl) throw _dummy; } try { - boss=(CBossCore *)new CBossCore(getContainerServices(),&m_config,this); - m_core=new IRA::CSecureArea<CBossCore>(boss); + m_boss=(CBossCore *)new CBossCore(getContainerServices(),&m_config,this); + m_core=new IRA::CSecureArea<CBossCore>(m_boss); m_ptarget=new ROstring(getContainerServices()->getName()+":target",getComponent(),new DevIOTargetName(m_core),true); m_prawAzimuth=new ROdouble(getContainerServices()->getName()+":rawAzimuth",getComponent(), new DevIORawHorizontal(m_core,DevIORawHorizontal::AZIMUTH),true); @@ -143,16 +143,16 @@ void AntennaBossImpl::initialize() throw (ACSErr::ACSbaseExImpl) new DevIOOffsets(m_core,DevIOOffsets::LATITUDEOFF),true); // create the parser for command line execution - m_parser = new SimpleParser::CParser<CBossCore>(boss,10); + m_parser = new SimpleParser::CParser<CBossCore>(m_boss,10); } catch (std::bad_alloc& ex) { _EXCPT(ComponentErrors::MemoryAllocationExImpl,dummy,"AntennaBossImpl::initialize()"); throw dummy; } - boss->initialize(); //could throw (ComponentErrors::UnexpectedExImpl) + m_boss->initialize(); //could throw (ComponentErrors::UnexpectedExImpl) try { m_watchingThread=getContainerServices()->getThreadManager()->create<CWatchingThread,CBossCore*> - ("BOSSWATCHER",boss); + ("BOSSWATCHER",m_boss); m_workingThread=getContainerServices()->getThreadManager()->create<CWorkingThread,CSecureArea<CBossCore> *> ("BOSSWORKER",m_core); } @@ -164,30 +164,30 @@ void AntennaBossImpl::initialize() throw (ACSErr::ACSbaseExImpl) _THROW_EXCPT(ComponentErrors::UnexpectedExImpl,"AntennaBossImpl::initialize()"); } // inform the boss core of the thread in charge of trajectory update - boss->setWorkingThread(m_workingThread); + m_boss->setWorkingThread(m_workingThread); // configure the parser..... - m_parser->add("antennaDisable",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::disable),0); - m_parser->add("antennaEnable",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::enable),0); - m_parser->add("antennaCorrectionOn",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::enableCorrection),0); - m_parser->add("antennaCorrectionOff",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::disableCorrection),0); - m_parser->add("antennaPark",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::stow),0); - m_parser->add("antennaStop",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::stop),0); - m_parser->add("antennaAzEl",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::setPreset),0); - m_parser->add("antennaTrack",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::setProgramTrack),0); - m_parser->add("antennaUnstow",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::unstow),0); - m_parser->add("antennaSetup",new function1<CBossCore,non_constant,void_type,I<string_type> >(boss,&CBossCore::setup),1); - m_parser->add("preset",new function2<CBossCore,non_constant,void_type,I<angle_type<rad> >,I<angle_type<rad> > >(boss,&CBossCore::preset),2); - //m_parser->add("vlsr",new function1<CBossCore,non_constant,void_type,I<double_type> >(boss,&CBossCore::setVlsr),1); - m_parser->add("fwhm",new function2<CBossCore,non_constant,void_type,I<angle_type<rad> >, I<double_type> >(boss,&CBossCore::setFWHM),2); - m_parser->add("azelOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setHorizontalOffsets),2); - m_parser->add("radecOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setEquatorialOffsets),2); - m_parser->add("lonlatOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(boss,&CBossCore::setGalacticOffsets),2); - //m_parser->add("skydipOTF",new function3<CBossCore,non_constant,time_type,I<elevation_type<rad,false> >,I<elevation_type<rad,false> >,I<interval_type> >(boss,&CBossCore::skydip),3); - m_parser->add("antennaReset",new function0<CBossCore,non_constant,void_type >(boss,&CBossCore::resetFailures),0); - //m_parser->add("goOff",new function2<CBossCore,non_constant,void_type,I<enum_type<AntennaFrame2String,Antenna::TCoordinateFrame > >,I<double_type > >(boss,&CBossCore::goOff),2); + m_parser->add("antennaDisable",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::disable),0); + m_parser->add("antennaEnable",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::enable),0); + m_parser->add("antennaCorrectionOn",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::enableCorrection),0); + m_parser->add("antennaCorrectionOff",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::disableCorrection),0); + m_parser->add("antennaPark",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::stow),0); + m_parser->add("antennaStop",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::stop),0); + m_parser->add("antennaAzEl",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::setPreset),0); + m_parser->add("antennaTrack",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::setProgramTrack),0); + m_parser->add("antennaUnstow",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::unstow),0); + m_parser->add("antennaSetup",new function1<CBossCore,non_constant,void_type,I<string_type> >(m_boss,&CBossCore::setup),1); + m_parser->add("preset",new function2<CBossCore,non_constant,void_type,I<angle_type<rad> >,I<angle_type<rad> > >(m_boss,&CBossCore::preset),2); + //m_parser->add("vlsr",new function1<CBossCore,non_constant,void_type,I<double_type> >(m_boss,&CBossCore::setVlsr),1); + m_parser->add("fwhm",new function2<CBossCore,non_constant,void_type,I<angle_type<rad> >, I<double_type> >(m_boss,&CBossCore::setFWHM),2); + m_parser->add("azelOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(m_boss,&CBossCore::setHorizontalOffsets),2); + m_parser->add("radecOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(m_boss,&CBossCore::setEquatorialOffsets),2); + m_parser->add("lonlatOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad> >,I<angleOffset_type<rad> > >(m_boss,&CBossCore::setGalacticOffsets),2); + //m_parser->add("skydipOTF",new function3<CBossCore,non_constant,time_type,I<elevation_type<rad,false> >,I<elevation_type<rad,false> >,I<interval_type> >(m_boss,&CBossCore::skydip),3); + m_parser->add("antennaReset",new function0<CBossCore,non_constant,void_type >(m_boss,&CBossCore::resetFailures),0); + //m_parser->add("goOff",new function2<CBossCore,non_constant,void_type,I<enum_type<AntennaFrame2String,Antenna::TCoordinateFrame > >,I<double_type > >(m_boss,&CBossCore::goOff),2); m_parser->add("radialVelocity",new function3<CBossCore,non_constant,void_type,I< basic_type<double,double_converter,VRad_WildCard> >, I<enum_type<ReferenceFrame_converter,Antenna::TReferenceFrame,ReferenceFrame_WildCard> >, - I<enum_type<VradDefinition_converter,Antenna::TVradDefinition,VradDefinition_WildCard> > >(boss,&CBossCore::radialVelocity),3); + I<enum_type<VradDefinition_converter,Antenna::TVradDefinition,VradDefinition_WildCard> > >(m_boss,&CBossCore::radialVelocity),3); ACS_LOG(LM_FULL_INFO,"AntennaBossImpl::initialize()",(LM_INFO,"COMPSTATE_INITIALIZED")); } @@ -543,9 +543,12 @@ void AntennaBossImpl::getRawCoordinates(ACS::Time time,CORBA::Double_out az,CORB { double Az=0.0; double El=0.0; + //workaround for strange behavior: this method seems so be called at startup before initialize() completes + //this result in a segmentation fault because m_boss is not initialized yet. Has it something to do with the + //CoordinateGrabber? it strangely uses the methods that are affected by this problem. + if (!m_boss) return; TIMEVALUE requestTime(time); - CSecAreaResourceWrapper<CBossCore> resource=m_core->Get("IMPL:getRawcoordinate"); - resource->getRawHorizontal(requestTime,Az,El); + m_boss->getRawHorizontal(requestTime,Az,El); az=(CORBA::Double)Az; el=(CORBA::Double)El; } @@ -562,14 +565,10 @@ void AntennaBossImpl::getObservedEquatorial(ACS::Time time,ACS::TimeInterval dur { double Ra=0.0; double Dec=0.0; - //workaround for strange behavior: this method seems so be called at startup before initialize() completes - //this result in a segmentation fault because m_core is not created yet. Has it something to do with the - //CoordinateGrabber? it strangely uses the methods that are affected by this problem. - if (!m_core) return; + if (!m_boss) return; TIMEVALUE requestTime(time); TIMEDIFFERENCE requestedDuration(duration); - CSecAreaResourceWrapper<CBossCore> resource=m_core->Get("IMPL:getObservedEquatorial"); - resource->getObservedEquatorial(requestTime,requestedDuration,Ra,Dec); + m_boss->getObservedEquatorial(requestTime,requestedDuration,Ra,Dec); ra=(CORBA::Double)Ra; dec=(CORBA::Double)Dec; } @@ -579,11 +578,10 @@ void AntennaBossImpl::getObservedGalactic(ACS::Time time,ACS::TimeInterval durat { double Long=0.0; double Lat=0.0; - if (!m_core) return; + if (!m_boss) return; TIMEVALUE requestTime(time); TIMEDIFFERENCE requestedDuration(duration); - CSecAreaResourceWrapper<CBossCore> resource=m_core->Get("IMPL:getObservedgalactic"); - resource->getObservedGalactic(requestTime,requestedDuration,Long,Lat); + m_boss->getObservedGalactic(requestTime,requestedDuration,Long,Lat); longitude=(CORBA::Double)Long; latitude=(CORBA::Double)Lat; } @@ -593,12 +591,10 @@ void AntennaBossImpl::getObservedHorizontal(ACS::Time time,ACS::TimeInterval dur { double Az=0.0; double El=0.0; - // see GetObservedEquatorial for a comment - if (!m_core) return; + if (!m_boss) return; TIMEVALUE requestTime(time); TIMEDIFFERENCE requestedDuration(duration); - CSecAreaResourceWrapper<CBossCore> resource=m_core->Get("IMPL:getObservedHorizontal"); - resource->getObservedHorizontal(requestTime,requestedDuration,Az,El); + m_boss->getObservedHorizontal(requestTime,requestedDuration,Az,El); az=(CORBA::Double)Az; el=(CORBA::Double)El; } diff --git a/Common/Servers/AntennaBoss/src/BossCore.cpp b/Common/Servers/AntennaBoss/src/BossCore.cpp index 476b0484dcadd9c560a5d096b41502e97f648d9a..9241a9eed8b612af73e7e19cc2a5930c2f794662 100644 --- a/Common/Servers/AntennaBoss/src/BossCore.cpp +++ b/Common/Servers/AntennaBoss/src/BossCore.cpp @@ -1023,7 +1023,7 @@ bool CBossCore::updateAttributes() throw (ComponentErrors::CORBAProblemExImpl,Co loadPointingModel(m_pointingModel); // throw ComponentErrors::CouldntGetComponentExImpl // get Offset from refraction; try { - m_refraction->getCorrection(DPI/2.0-el,m_waveLength,m_refractionOffset); + m_refraction->getCorrection(DPIBY2-el,m_waveLength,m_refractionOffset); } catch (AntennaErrors::AntennaErrorsEx& ex) { _ADD_BACKTRACE(ComponentErrors::CouldntCallOperationExImpl,impl,ex,"CBossCore::updateAttributes()"); @@ -1249,7 +1249,7 @@ void CBossCore::loadTrackingPoint(const TIMEVALUE& time,bool restart) throw (Com refOff=0.0; try { if (el>0.0) { - m_refraction->getCorrection(DPI/2.0-el,m_waveLength,refOff); + m_refraction->getCorrection(DPIBY2-el,m_waveLength,refOff); } } catch (AntennaErrors::AntennaErrorsEx& ex) { diff --git a/Common/Servers/Refraction/src/RefractionCore.cpp b/Common/Servers/Refraction/src/RefractionCore.cpp index 473fd107dd4401ef248a8f3ce09fb06875e714b2..6622cb455f40cb20880a3a93a44a4a135fb499bc 100644 --- a/Common/Servers/Refraction/src/RefractionCore.cpp +++ b/Common/Servers/Refraction/src/RefractionCore.cpp @@ -118,11 +118,9 @@ void CRefractionCore::cleanUp() void CRefractionCore::getCorrection(double obsZenithDistance,double waveLen, double &corZenithDistance) { AUTO_TRACE("CRefractionCore::getCorrection()"); - //double elevation; + double correction = 0.0; baci::ThreadSyncGuard guardParametes(&m_parametersMutex); - //elevation = 90.0 - obsZenithDistance*DR2D; - //if (elevation >= 0.0 && elevation <= 90.0) { - if ((obsZenithDistance>=0.0) && (obsZenithDistance<=(DPI/2.0))) { + if (obsZenithDistance>=0.0 && obsZenithDistance<DPIBY2) { double hm = m_site.getHeight(); // meters double tdk = m_temperature + 273.0; double wl = waveLen*1000000; //micro meters @@ -130,9 +128,14 @@ void CRefractionCore::getCorrection(double obsZenithDistance,double waveLen, dou double tlr = 0.0065; double eps = 1e-8; - slaRefro(obsZenithDistance, hm, tdk, m_pressure, m_humidity, wl, phi, tlr, eps, &corZenithDistance); + slaRefro(obsZenithDistance, hm, tdk, m_pressure, m_humidity, wl, phi, tlr, eps, &correction); + correction = std::min(correction, 2.0e17); + if(correction < 1.0e-9) { + correction = 0.0; + } } - else corZenithDistance = 0.0; + + corZenithDistance = correction; } void CRefractionCore::getMeteoParameters() diff --git a/Common/Servers/Sardara/include/CommandLine.h b/Common/Servers/Sardara/include/CommandLine.h index ae5d41cda45ed10e996c5ccb30d5ecdbaaf91328..48cfa2fbfa0cf27668bc17a790e1766dc9841c68 100644 --- a/Common/Servers/Sardara/include/CommandLine.h +++ b/Common/Servers/Sardara/include/CommandLine.h @@ -751,21 +751,34 @@ private: inline void clearStatusField(TstatusFields field) { m_backendStatus &= ~(1 << field); } bool m_SK77; + bool m_SK00; + bool m_SK01; + bool m_SK02; bool m_SK03; + bool m_SK04; + bool m_SK05; bool m_SK06; - bool m_SK00; bool m_SC00; bool m_SL00; bool m_SP00; bool m_SK77S; + bool m_SK00S; + bool m_SK01S; + bool m_SK02S; bool m_SK03S; + bool m_SK04S; + bool m_SK05S; bool m_SK06S; - bool m_SK00S; bool m_SC00S; bool m_SL00S; bool m_SP00S; + bool m_SCC00; + bool m_SCH00; + bool m_SCC00S; + bool m_SCH00S; bool m_stationSRT; + bool m_stationMED; }; diff --git a/Common/Servers/Sardara/src/CommandLine.cpp b/Common/Servers/Sardara/src/CommandLine.cpp index f8c6cf132f4b0f22454a776ee916d1ac6ac5a984..7ddbc24efbc6c9a3f39e50a9189e8fe561796269 100644 --- a/Common/Servers/Sardara/src/CommandLine.cpp +++ b/Common/Servers/Sardara/src/CommandLine.cpp @@ -41,21 +41,37 @@ CCommandLine::CCommandLine(ContainerServices *service): CSocket(), m_backendStatus=0; setStatus(NOTCNTD); m_setTpiIntegration=true; - m_SK77=false; + m_SK00=false; + m_SK01=false; + m_SK02=false; m_SK03=false; + m_SK04=false; + m_SK05=false; m_SK06=false; - m_SK00=false; + m_SK77=false; m_SC00=false; m_SL00=false; m_SP00=false; - m_SK77S=false; + m_SK00S=false; + m_SK01S=false; + m_SK02S=false; m_SK03S=false; + m_SK04S=false; + m_SK05S=false; m_SK06S=false; - m_SK00S=false; + m_SK77S=false; m_SC00S=false; m_SL00S=false; m_SP00S=false; + // SARDARA Medicina configurations + m_SCC00=false; + m_SCH00=false; + m_SCC00S=false; + m_SCH00S=false; m_stationSRT=false; + m_stationMED=false; + m_sectionsNumber=0; + m_inputsNumber=0; } CCommandLine::~CCommandLine() @@ -156,8 +172,10 @@ void CCommandLine::Init(CConfiguration *config) throw (ComponentErrors::SocketEr cStation = IRA::CString (Station); if((cStation.Compare("SRT")==0)) m_stationSRT = true; + if((cStation.Compare("Medicina")==0)) + m_stationMED = true; - try { + /*try { setup (m_configuration->getConfiguration()); } catch (...) { @@ -165,7 +183,7 @@ void CCommandLine::Init(CConfiguration *config) throw (ComponentErrors::SocketEr } //Waits a bit so that everything can settle down - IRA::CIRATools::Wait(0,200000); + IRA::CIRATools::Wait(0,200000);*/ } void CCommandLine::stopDataAcquisition() throw (BackendsErrors::ConnectionExImpl,BackendsErrors::NakExImpl, @@ -437,6 +455,7 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const else newBins = m_bins[inputId]; + if (m_stationSRT == true) { try { Message request = Command::setSection(inputId, newFreq, newBW, newFeed, newPol, newSR, newBins); Message reply = sendBackendCommand(request); @@ -444,7 +463,7 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const for (int j=0;j<m_sectionsNumber;j++) m_sampleRate[j]=newSR; //the given sample rate is taken also for all the others m_commonSampleRate=newSR; - if (m_SK00S==true || m_SC00S==true || m_SK77S==true || m_SK03S==true || m_SK06S==true || m_SL00S==true || m_SP00S==true) { + if (m_SK00S==true || m_SC00S==true || m_SK77S==true || m_SK03S==true || m_SK06S==true || m_SL00S==true || m_SP00S==true || m_SK01S==true || m_SK02S==true || m_SK04S==true || m_SK05S==true) { m_frequency[2*inputId]=newFreq; m_frequency[2*inputId+1]=newFreq; m_bandWidth[2*inputId]=newBW; @@ -466,7 +485,8 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const temp="FULL_STOKES"; ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",inputId,m_frequency[inputId],newBW,m_feedNumber[inputId], (const char *)temp,newSR,m_bins[inputId])); - if (m_SK00==true || m_SC00==true || m_SK00S==true || m_SC00S==true || m_SK77==true || m_SK77S==true || m_SK03==true || m_SK03S==true || m_SK06==true || m_SK06S==true) { + if (m_SK00==true || m_SC00==true || m_SK00S==true || m_SC00S==true || m_SK77==true || m_SK77S==true || m_SK03==true || m_SK03S==true || m_SK06==true || m_SK06S==true || m_SK01==true || m_SK01S==true + || m_SK02==true || m_SK02S==true || m_SK04==true || m_SK04S==true || m_SK05==true || m_SK05S==true) { if (newBW==420.00) filter=300.00; if (newBW==1500.00) @@ -478,6 +498,26 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const m_totalPower->setSection(2*inputId,-1, filter, -1, -1, -1, -1); m_totalPower->setSection(2*inputId+1,-1, filter, -1, -1, -1, -1); } + else if (m_SK01S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+2,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK02S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+3,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+4,-1, filter, -1, -1, -1, -1); + } + } else if (m_SK03S==true) { if (inputId == 0) { m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); @@ -488,6 +528,26 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const m_totalPower->setSection(inputId+6,-1, filter, -1, -1, -1, -1); } } + else if (m_SK04S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+7,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+8,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK05S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+9,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+10,-1, filter, -1, -1, -1, -1); + } + } else if (m_SK06S==true) { if (inputId == 0) { m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); @@ -498,6 +558,22 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const m_totalPower->setSection(inputId+12,-1, filter, -1, -1, -1, -1); } } + else if (m_SK01==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK02==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId+2,-1, filter, -1, -1, -1, -1); + } + } else if (m_SK03==true) { if (inputId == 0 || inputId == 1) { m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); @@ -506,6 +582,22 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const m_totalPower->setSection(inputId+4,-1, filter, -1, -1, -1, -1); } } + else if (m_SK04==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId+6,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK01==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId+8,-1, filter, -1, -1, -1, -1); + } + } else if (m_SK06==true) { if (inputId == 0 || inputId == 1) { m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); @@ -548,6 +640,78 @@ void CCommandLine::setConfiguration(const long& inputId,const double& freq,const catch (...) { ACS_LOG(LM_FULL_INFO,"CCommandLine::setSection()",(LM_NOTICE,"BACKEND_SARDARA_SET_SECTION ERROR")); } + } + if (m_stationMED == true) { + try { + Message request = Command::setSection(inputId, newFreq, newBW, newFeed, newPol, newSR, newBins); + Message reply = sendBackendCommand(request); + if (reply.is_success_reply()) { + for (int j=0;j<m_sectionsNumber;j++) + m_sampleRate[j]=newSR; //the given sample rate is taken also for all the others + m_commonSampleRate=newSR; + if (m_SK00S==true || m_SCC00S==true || m_SCH00S==true || m_SK01S==true || m_SL00S==true || m_SP00S==true) { + m_frequency[2*inputId]=newFreq; + m_frequency[2*inputId+1]=newFreq; + m_bandWidth[2*inputId]=newBW; + m_bandWidth[2*inputId+1]=newBW; + } + else { + m_frequency[inputId]=newFreq; + m_bandWidth[inputId]=newBW; + } + m_feedNumber[inputId]=newFeed; + m_bins[inputId]=newBins; + m_polarization[inputId]=newPol; + IRA::CString temp; + if (m_polarization[inputId]==Backends::BKND_LCP) + temp="LCP"; + else if (m_polarization[inputId]==Backends::BKND_RCP) + temp="RCP"; + else + temp="FULL_STOKES"; + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"SECTION_CONFIGURED %ld,FREQ=%lf,BW=%lf,FEED=%ld,POL=%s,SR=%lf,BINS=%ld",inputId,m_frequency[inputId],newBW,m_feedNumber[inputId], + (const char *)temp,newSR,m_bins[inputId])); + if (m_SK00==true || m_SCC00==true || m_SK00S==true || m_SCC00S==true || m_SK01==true || m_SK01S==true || m_SCH00==true || m_SCH00S==true) { + if (newBW==420.00) + filter=300.00; + if (newBW==1500.00) + filter=1250.00; + if (newBW==2300.00) + filter=2350.00; + if (newBW == 420.00 || newBW == 1500.00 || newBW == 2300.00) { + if (m_SK00S==true || m_SCC00S==true || m_SCH00S==true) { + m_totalPower->setSection(2*inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(2*inputId+1,-1, filter, -1, -1, -1, -1); + } + else if (m_SK01S==true) { + if (inputId == 0) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + } + if (inputId == 1) { + m_totalPower->setSection(inputId+1,-1, filter, -1, -1, -1, -1); + m_totalPower->setSection(inputId+2,-1, filter, -1, -1, -1, -1); + } + } + else if (m_SK01==true) { + if (inputId == 0 || inputId == 1) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + if (inputId == 2 || inputId == 3) { + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + } + else + m_totalPower->setSection(inputId,-1, filter, -1, -1, -1, -1); + } + ACS_LOG(LM_FULL_INFO,"CCommandLine::setConfiguration()",(LM_NOTICE,"TOTALPOWER_FILTER_CONFIGURED %ld,FILTER=%lf",inputId,filter)); + } + } + } + catch (...) { + ACS_LOG(LM_FULL_INFO,"CCommandLine::setSection()",(LM_NOTICE,"BACKEND_SARDARA_SET_SECTION ERROR")); + } + } } void CCommandLine::getZeroTPI(DWORD *tpi) throw (ComponentErrors::TimeoutExImpl,BackendsErrors::ConnectionExImpl, @@ -738,41 +902,66 @@ void CCommandLine::setDefaultConfiguration(const IRA::CString & config) throw (C ComponentErrors::SocketErrorExImpl,BackendsErrors::NakExImpl,BackendsErrors::MalformedAnswerExImpl,BackendsErrors::ReplyNotValidExImpl,BackendsErrors::BackendFailExImpl) { AUTO_TRACE("CCommandLine::setDefaultConfiguration()"); + if (m_stationSRT==true) { if (config.Compare("SK77")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; m_SK77=true; - m_SK00=m_SK03=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK00")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK00=true; + m_SK77=m_SK03=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK01")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK01=true; + m_SK77=m_SK00=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK02")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK02=true; + m_SK77=m_SK00=m_SK01=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; } if (config.Compare("SK03")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; m_SK03=true; - m_SK77=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; } - if (config.Compare("SK06")==0) { + if (config.Compare("SK04")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; - m_SK06=true; - m_SK77=m_SK03=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK04=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; } - if (config.Compare("SK00")==0) { + if (config.Compare("SK05")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; - m_SK00=true; - m_SK77=m_SK03=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK05=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK06")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK06=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; } if (config.Compare("SC00")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; m_SC00=true; - m_SK77=m_SK03=m_SK06=m_SK00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; } if (config.Compare("SL00")==0) { m_filter = 2300.0; m_inputsNumber=m_sectionsNumber; m_SL00=true; - m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; /*if (m_stationSRT == true) { m_ifDistributor->setup("BW-UNFILTERED"); ACS_LOG(LM_FULL_INFO,"CCommandLine::setDefaultConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_BW-UNFILTERED_CONFIGURED")); @@ -782,49 +971,161 @@ void CCommandLine::setDefaultConfiguration(const IRA::CString & config) throw (C m_filter = 730.0; m_inputsNumber=m_sectionsNumber; m_SP00=true; - m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; } if (config.Compare("SK77S")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; m_sectionsNumber=m_sectionsNumber/2; m_SK77S=true; - m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK00S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK00S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK01S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK01S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK02S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK02S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; } if (config.Compare("SK03S")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; m_sectionsNumber=m_sectionsNumber/2; m_SK03S=true; - m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK04S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK04S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK05S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SK05S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; } if (config.Compare("SK06S")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; m_sectionsNumber=m_sectionsNumber/2; m_SK06S=true; - m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK00S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SC00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SC00S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SC00S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SL00S")==0) { + m_filter = 2300.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SL00S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SP00S=false; + /*if (m_stationSRT == true) { + m_ifDistributor->setup("BW-UNFILTERED"); + ACS_LOG(LM_FULL_INFO,"CCommandLine::setDefaultConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_BW-UNFILTERED_CONFIGURED")); + }*/ + } + if (config.Compare("SP00S")==0) { + m_filter = 730.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SP00S=true; + m_SK77=m_SK00=m_SK01=m_SK02=m_SK03=m_SK04=m_SK05=m_SK06=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK00S=m_SK01S=m_SK02S=m_SK03S=m_SK04S=m_SK05S=m_SK06S=m_SC00S=m_SL00S=false; + } + } + if (m_stationMED==true) { + if (config.Compare("SK01")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK01=true; + m_SK00=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK01S=m_SK00S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SK00")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SK00=true; + m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK01S=m_SK00S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SCC00")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SCC00=true; + m_SK00=m_SK01=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCH00=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SCH00")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_SCH00=true; + m_SK00=m_SK01=m_SL00=m_SP00=m_SCC00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SL00")==0) { + m_filter = 2300.0; + m_inputsNumber=m_sectionsNumber; + m_SL00=true; + m_SK00=m_SK01=m_SCC00=m_SP00=m_SCH00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SP00")==0) { + m_filter = 730.0; + m_inputsNumber=m_sectionsNumber; + m_SP00=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; } if (config.Compare("SK00S")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; m_sectionsNumber=m_sectionsNumber/2; m_SK00S=true; - m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SC00S=m_SL00S=m_SP00S=false; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; } - if (config.Compare("SC00S")==0) { + if (config.Compare("SK01S")==0) { m_filter=1250.0; m_inputsNumber=m_sectionsNumber; m_sectionsNumber=m_sectionsNumber/2; - m_SC00S=true; - m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SL00S=m_SP00S=false; + m_SK01S=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SCC00S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SCC00S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SCC00S=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCH00S=m_SL00S=m_SP00S=false; + } + if (config.Compare("SCH00S")==0) { + m_filter=1250.0; + m_inputsNumber=m_sectionsNumber; + m_sectionsNumber=m_sectionsNumber/2; + m_SCH00S=true; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCC00S=m_SL00S=m_SP00S=false; } if (config.Compare("SL00S")==0) { m_filter = 2300.0; m_inputsNumber=m_sectionsNumber; m_sectionsNumber=m_sectionsNumber/2; m_SL00S=true; - m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SP00S=false; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SP00S=false; /*if (m_stationSRT == true) { m_ifDistributor->setup("BW-UNFILTERED"); ACS_LOG(LM_FULL_INFO,"CCommandLine::setDefaultConfiguration()",(LM_NOTICE,"IFDISTRIBUTOR_BW-UNFILTERED_CONFIGURED")); @@ -835,7 +1136,8 @@ void CCommandLine::setDefaultConfiguration(const IRA::CString & config) throw (C m_inputsNumber=m_sectionsNumber; m_sectionsNumber=m_sectionsNumber/2; m_SP00S=true; - m_SK77=m_SK03=m_SK06=m_SK00=m_SC00=m_SL00=m_SP00=m_SK77S=m_SK03S=m_SK06S=m_SK00S=m_SC00S=m_SL00S=false; + m_SK00=m_SK01=m_SCC00=m_SCH00=m_SL00=m_SP00=m_SK00S=m_SK01S=m_SCC00S=m_SCH00S=m_SL00S=false; + } } } @@ -905,6 +1207,14 @@ void CCommandLine::setup(const char *conf) throw (BackendsErrors::BackendBusyExI if(reply.is_success_reply()) { setDefaultConfiguration(conf); for (int i=0;i<m_inputsNumber;i++) { + if (m_SK02S==true || m_SK02==true) { + if (i == 0 || i == 1) { + m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); + } + if (i == 2 || i == 3) { + m_totalPower->setSection(i+2,-1, m_filter, -1, -1, -1, -1); + } + } if (m_SK03S==true || m_SK03==true) { if (i == 0 || i == 1) { m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); @@ -913,6 +1223,22 @@ void CCommandLine::setup(const char *conf) throw (BackendsErrors::BackendBusyExI m_totalPower->setSection(i+4,-1, m_filter, -1, -1, -1, -1); } } + if (m_SK04S==true || m_SK04==true) { + if (i == 0 || i == 1) { + m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); + } + if (i == 2 || i == 3) { + m_totalPower->setSection(i+6,-1, m_filter, -1, -1, -1, -1); + } + } + if (m_SK05S==true || m_SK03==true) { + if (i == 0 || i == 1) { + m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); + } + if (i == 2 || i == 3) { + m_totalPower->setSection(i+8,-1, m_filter, -1, -1, -1, -1); + } + } else if (m_SK06S==true || m_SK06==true) { if (i == 0 || i == 1) { m_totalPower->setSection(i,-1, m_filter, -1, -1, -1, -1); @@ -1208,7 +1534,8 @@ void CCommandLine::getPolarization(ACS::longSeq& pol) const { pol.length(m_sectionsNumber); for (int i=0;i<m_sectionsNumber;i++) { - if (m_SK77S==true || m_SC00S==true || m_SK00S==true || m_SL00S==true || m_SP00S==true) + if (m_SK77S==true || m_SC00S==true || m_SK00S==true || m_SL00S==true || m_SP00S==true || m_SK01S==true || m_SK02S==true || m_SK03S==true || m_SK04S==true || m_SK05S==true || m_SK06S==true + || m_SCC00S==true || m_SCH00S==true) pol[i]=2; else pol[i]=(long)m_polarization[i]; @@ -1229,12 +1556,20 @@ void CCommandLine::getFeedAttr(ACS::longSeq& feed) const for (int i=0;i<m_sectionsNumber;i++) { if (m_SK77S == true) feed[i]=m_feedNumber[2*i]; - else if (m_SK03S == true || m_SK06S == true) { + else if (m_SK01S == true || m_SK02S == true || m_SK03S==true || m_SK04S==true || m_SK05S==true || m_SK06S==true) { if (i < 1) feed[i] = 0; else { + if (m_SK01S == true) + feed[i] = 1; + if (m_SK02S == true) + feed[i] = 2; if (m_SK03S == true) feed[i] = 3; + if (m_SK04S == true) + feed[i] = 4; + if (m_SK05S == true) + feed[i] = 5; if (m_SK06S == true) feed[i] = 6; } @@ -1264,9 +1599,9 @@ void CCommandLine::getInputSectionAttr(ACS::longSeq& inpSection) const { long index=0; - if (m_SK00==true || m_SC00==true || m_SK77==true || m_SK03==true || m_SK06==true || m_SL00==true || m_SP00==true) + if (m_SK00==true || m_SC00==true || m_SK77==true || m_SK03==true || m_SK06==true || m_SL00==true || m_SP00==true || m_SK01==true || m_SK02==true || m_SK04==true || m_SK05==true || m_SCC00==true || m_SCH00==true) index = m_inputsNumber; - if (m_SK00S==true || m_SC00S==true || m_SK77S==true || m_SK03S==true || m_SK06S==true || m_SL00S==true || m_SP00S==true) + if (m_SK00S==true || m_SC00S==true || m_SK77S==true || m_SK03S==true || m_SK06S==true || m_SL00S==true || m_SP00S==true || m_SK01S==true || m_SK02S==true || m_SK04S==true || m_SK05S==true || m_SCC00S==true || m_SCH00S==true) index = m_sectionsNumber; inpSection.length(index); diff --git a/Common/Simulators/Components/PyPositioner/config/CDB/schemas/Positioner.xsd b/Common/Simulators/Components/PyPositioner/config/CDB/schemas/Positioner.xsd new file mode 100644 index 0000000000000000000000000000000000000000..3571fbb9b64344895f905dd53a4754f98fb05777 --- /dev/null +++ b/Common/Simulators/Components/PyPositioner/config/CDB/schemas/Positioner.xsd @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!-- Marco Buttu, marco.buttu@inaf.it --> + +<xs:schema + targetNamespace="urn:schemas-cosylab-com:Positioner:1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xmlns="urn:schemas-cosylab-com:Positioner:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + elementFormDefault="qualified" + attributeFormDefault="unqualified"> + + <xs:import namespace="urn:schemas-cosylab-com:CDB:1.0" schemaLocation="CDB.xsd" /> + <xs:import namespace="urn:schemas-cosylab-com:BACI:1.0" schemaLocation="BACI.xsd" /> + + <xs:complexType name="PositionerType"> + <xs:complexContent> + <xs:extension base="baci:CharacteristicComponent"> + + <xs:sequence> + <xs:element name="status" type="baci:ROpattern" /> + <xs:element name="position" type="baci:ROdouble" /> + <xs:element name="current" type="baci:ROdouble" /> + <xs:element name="seq" type="baci:ROdoubleSeq" /> + </xs:sequence> + + </xs:extension> + </xs:complexContent> + </xs:complexType> + + <xs:element name="Positioner" type="PositionerType"/> + +</xs:schema> diff --git a/Common/Simulators/Components/PyPositioner/idl/TestNamespaceInterface.idl b/Common/Simulators/Components/PyPositioner/idl/TestNamespaceInterface.idl new file mode 100755 index 0000000000000000000000000000000000000000..03d884602426cd129c0e87402a30b8f02edc5bd1 --- /dev/null +++ b/Common/Simulators/Components/PyPositioner/idl/TestNamespaceInterface.idl @@ -0,0 +1,56 @@ +/*************************************************\ + * Author: Marco Buttu <marco.buttu@inaf.it> +\*************************************************/ + +#ifndef __TESTNAMESPACE_INTERFACE__IDL__ +#define __TESTNAMESPACE_INTERFACE__IDL__ + +#include <baci.idl> + +#pragma prefix "alma" + + +module TestNamespaceInterface { + + struct PositionerDataBlock { + boolean ready; + }; + + const string POSITIONER_DATA_CHANNEL = "PositionerData"; + + + interface Positioner: ACS::CharacteristicComponent + { + + /** Set the position */ + void setPosition(in double position); + + + /** Return the actual position */ + double getPosition(); + + + /** Set a dummy sequence */ + void setSequence(in ACS::doubleSeq seq); + + + /** Return a dummy sequence */ + ACS::doubleSeq getSequence(); + + + /** This property reports the status (4 bits pattern) of the Positioner. */ + readonly attribute ACS::ROpattern status; + + /** This property reports the position of the Positioner. */ + readonly attribute ACS::ROdouble position; + + /** This property reports the current of the Positioner engine. */ + readonly attribute ACS::ROdouble current; + + /** A dummy sequence */ + readonly attribute ACS::ROdoubleSeq seq; + + }; +}; + +#endif diff --git a/Common/Simulators/Components/PyPositioner/src/Makefile b/Common/Simulators/Components/PyPositioner/src/Makefile new file mode 100755 index 0000000000000000000000000000000000000000..c752516f6edd4ad18b71a6c63bdacfd15eea0d29 --- /dev/null +++ b/Common/Simulators/Components/PyPositioner/src/Makefile @@ -0,0 +1,74 @@ +#***************************************************************** +# Positioner Makefile +# =================== +# A Component to be used for testing purpose +# Marco Buttu <marco.buttu@inaf.it> +#***************************************************************** + + +# Interface +# ---------------------------- +CDB_SCHEMAS = Positioner +IDL_FILES = TestNamespaceInterface +TestNamespaceInterfaceStubs_LIBS = baciStubs acscomponentStubs + + +# Python directives +PY_PACKAGES = Positioner + +# Documentation +MAKE_PDF = ON + + +# List of all possible C-sources (used to create automatic dependencies) +CSOURCENAMES = \ + $(foreach exe, $(EXECUTABLES) $(EXECUTABLES_L), $($(exe)_OBJECTS)) \ + $(foreach rtos, $(RTAI_MODULES) , $($(rtos)_OBJECTS)) \ + $(foreach lib, $(LIBRARIES) $(LIBRARIES_L), $($(lib)_OBJECTS)) + + +TMP := $(shell searchFile /tmp/tmp.txt) +ifeq ($(TMP),\#error\#) +PERM:=$(shell stat --format=%a $(ERRXMLFILE)) +else +PERM=$(shell cat /tmp/tmp.txt) +endif + + +# Include standards +MAKEDIRTMP := $(shell searchFile include/acsMakefile) +ifneq ($(MAKEDIRTMP),\#error\#) + MAKEDIR := $(MAKEDIRTMP)/include + include $(MAKEDIR)/acsMakefile +endif + + +# TARGETS +all: do_all + @echo " . . . 'all' done" + +clean : clean_all + # Clear INTROOT interface + $(RM) $(INTROOT)/lib/python/site-packages/TestNamespace* + # Clear INTROOT Impl + $(RM) $(INTROOT)/lib/python/site-packages/Positioner* + $(RM) $(INTROOT)/lib/python/site-packages/libPositionerStubs.* + # Clear local lib + $(RM) *~ *Impl/*~ Positioner/*.pyc + $(RM) ../bin/ + $(RM) ../include/ + $(RM) ../lib/ + $(RM) ../object/ + $(RM) ../rtai/ + @echo " . . . clean done" + +clean_dist : clean_all clean_dist_all + @echo " . . . clean_dist done" + +man : do_man + @echo " . . . man page(s) done" + +install : install_all + @rm -rf /tmp/tmp.txt + @echo " . . . installation done" + @echo " . . . installation done" diff --git a/Common/Simulators/Components/PyPositioner/src/Positioner/PositionerImpl.py b/Common/Simulators/Components/PyPositioner/src/Positioner/PositionerImpl.py new file mode 100755 index 0000000000000000000000000000000000000000..b0b705782206df8ffee98a9fdc3d3ef774f2e598 --- /dev/null +++ b/Common/Simulators/Components/PyPositioner/src/Positioner/PositionerImpl.py @@ -0,0 +1,46 @@ +from __future__ import print_function +import time + +from Acspy.Servants.CharacteristicComponent import CharacteristicComponent as cc +from Acspy.Servants.ContainerServices import ContainerServices as services +from Acspy.Servants.ComponentLifecycle import ComponentLifecycle as lcycle +from Acspy.Util.BaciHelper import addProperty +from Acspy.Common.Log import getLogger + +from TestNamespaceInterface__POA import Positioner as POA + + +from Positioner.devios import GenericDevIO, PositionDevIO, SequenceDevIO + +__copyright__ = "Marco Buttu <marco.buttu@inaf.it>" + + +logger = getLogger() + +class PositionerImpl(POA, cc, services, lcycle): + + def __init__(self): + cc.__init__(self) + services.__init__(self) + self.position = 0 + self.sequence = [1.1, 2.2, 3.3] + + def initialize(self): + addProperty(self, 'status', devio_ref=GenericDevIO()) + addProperty(self, 'position', devio_ref=PositionDevIO(self)) + addProperty(self, 'current', devio_ref=GenericDevIO()) + addProperty(self, 'seq', devio_ref=SequenceDevIO(self)) + print('Component initialized') + + def setPosition(self, position): + print('Setting the position to ', position) + self.position = position + + def getPosition(self): + return self.position + + def setSequence(self, sequence): + self.sequence = sequence + + def getSequence(self): + return self.sequence diff --git a/Common/Simulators/Components/PyPositioner/src/Positioner/__init__.py b/Common/Simulators/Components/PyPositioner/src/Positioner/__init__.py new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/Common/Simulators/Components/PyPositioner/src/Positioner/devios.py b/Common/Simulators/Components/PyPositioner/src/Positioner/devios.py new file mode 100755 index 0000000000000000000000000000000000000000..b3016d33b5bc842bc9421ed13ac2b996dee5679a --- /dev/null +++ b/Common/Simulators/Components/PyPositioner/src/Positioner/devios.py @@ -0,0 +1,28 @@ +from ACSImpl.DevIO import DevIO + +class GenericDevIO(DevIO): + def __init__(self, value=0): + DevIO.__init__(self, value) + + def read(self): + return self.value + + def write(self, value): + self.value = value + + +class PositionDevIO(DevIO): + def __init__(self, device): + self.device = device + DevIO.__init__(self, device.getPosition()) + + def read(self): + return self.device.getPosition() + +class SequenceDevIO(DevIO): + def __init__(self, device): + self.device = device + DevIO.__init__(self, self.read()) + + def read(self): + return self.device.getSequence() diff --git a/Medicina/Configuration/CDB/alma/BACKENDS/Sardara/Sardara.xml b/Medicina/Configuration/CDB/alma/BACKENDS/Sardara/Sardara.xml index 6c39010261320d36af4c05f27021472bd89ce5ed..f530a203896b9b410fd7f61c62c740fc0ee4c91d 100644 --- a/Medicina/Configuration/CDB/alma/BACKENDS/Sardara/Sardara.xml +++ b/Medicina/Configuration/CDB/alma/BACKENDS/Sardara/Sardara.xml @@ -13,7 +13,7 @@ CommandLineTimeout="10000000" ConnectTimeout="3000000" PropertyRefreshTime="1000000" - Configuration="SC00" + Configuration="SCC00" TimeTollerance="250000" RepetitionCacheTime="2000000" RepetitionExpireTime="5000000" diff --git a/Medicina/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml b/Medicina/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml index 177d103b2019c9625e5a1745976dd32b1fe6e0a3..2ecfd12e9b6eb482f04383d39b7ff14afedf4aab 100644 --- a/Medicina/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml +++ b/Medicina/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml @@ -21,7 +21,7 @@ </Configuration> <Configuration> - <configurationID>SK03</configurationID> + <configurationID>SK01</configurationID> <sections>4</sections> <calSwitchingEnabled>TRUE</calSwitchingEnabled> <inputPort>GREGORIAN</inputPort> @@ -30,43 +30,28 @@ <attenuation>7.0</attenuation> <section_boards>0 1 2 3</section_boards> <polarizations>L R L R</polarizations> - <feed>0 0 3 3</feed> + <feed>0 0 1 1</feed> <IF>0 1 0 1</IF> <bins>1024</bins> </Configuration> <Configuration> - <configurationID>SK06</configurationID> - <sections>4</sections> - <calSwitchingEnabled>TRUE</calSwitchingEnabled> - <inputPort>GREGORIAN</inputPort> - <beams>2</beams> - <bandWidth>1500.0</bandWidth> - <attenuation>7.0</attenuation> - <section_boards>0 1 2 3</section_boards> - <polarizations>L R L R</polarizations> - <feed>0 0 6 6</feed> - <IF>0 1 0 1</IF> - <bins>1024</bins> -</Configuration> - -<Configuration> - <configurationID>SK77</configurationID> - <sections>14</sections> - <calSwitchingEnabled>TRUE</calSwitchingEnabled> - <inputPort>GREGORIAN</inputPort> - <beams>7</beams> + <configurationID>SCC00</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>BWG</inputPort> + <beams>1</beams> <bandWidth>1500.0</bandWidth> - <attenuation>7.0</attenuation> - <section_boards>0 1 2 3 4 5 6 7 8 9 10 11 12 13</section_boards> - <polarizations>L R L R L R L R L R L R L R</polarizations> - <feed>0 0 1 1 2 2 3 3 4 4 5 5 6 6</feed> - <IF>0 1 0 1 0 1 0 1 0 1 0 1 0 1</IF> + <attenuation>9.0</attenuation> + <section_boards>0 1</section_boards> + <polarizations>L R</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> <bins>1024</bins> </Configuration> <Configuration> - <configurationID>SC00</configurationID> + <configurationID>SCH00</configurationID> <sections>2</sections> <calSwitchingEnabled>TRUE</calSwitchingEnabled> <inputPort>BWG</inputPort> @@ -126,7 +111,7 @@ </Configuration> <Configuration> - <configurationID>SK03S</configurationID> + <configurationID>SK01S</configurationID> <sections>4</sections> <calSwitchingEnabled>TRUE</calSwitchingEnabled> <inputPort>GREGORIAN</inputPort> @@ -135,43 +120,28 @@ <attenuation>7.0</attenuation> <section_boards>0 1 2 3</section_boards> <polarizations>S S S S</polarizations> - <feed>0 0 3 3</feed> + <feed>0 0 1 1</feed> <IF>0 1 0 1</IF> <bins>1024</bins> </Configuration> <Configuration> - <configurationID>SK06S</configurationID> - <sections>4</sections> - <calSwitchingEnabled>TRUE</calSwitchingEnabled> - <inputPort>GREGORIAN</inputPort> - <beams>2</beams> - <bandWidth>1500.0</bandWidth> - <attenuation>7.0</attenuation> - <section_boards>0 1 2 3</section_boards> - <polarizations>S S S S</polarizations> - <feed>0 0 6 6</feed> - <IF>0 1 0 1</IF> - <bins>1024</bins> -</Configuration> - -<Configuration> - <configurationID>SK77S</configurationID> - <sections>14</sections> - <calSwitchingEnabled>TRUE</calSwitchingEnabled> - <inputPort>GREGORIAN</inputPort> - <beams>7</beams> + <configurationID>SCC00S</configurationID> + <sections>2</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>BWG</inputPort> + <beams>1</beams> <bandWidth>1500.0</bandWidth> - <attenuation>7.0</attenuation> - <section_boards>0 1 2 3 4 5 6 7 8 9 10 11 12 13</section_boards> - <polarizations>S S S S S S S S S S S S S S</polarizations> - <feed>0 0 1 1 2 2 3 3 4 4 5 5 6 6</feed> - <IF>0 1 0 1 0 1 0 1 0 1 0 1 0 1</IF> + <attenuation>9.0</attenuation> + <section_boards>0 1</section_boards> + <polarizations>S S</polarizations> + <feed>0 0</feed> + <IF>0 1</IF> <bins>1024</bins> </Configuration> <Configuration> - <configurationID>SC00S</configurationID> + <configurationID>SCH00S</configurationID> <sections>2</sections> <calSwitchingEnabled>TRUE</calSwitchingEnabled> <inputPort>BWG</inputPort> diff --git a/SRT/CDB/MACI/Channels/PositionerData/PositionerData.xml b/SRT/CDB/MACI/Channels/PositionerData/PositionerData.xml new file mode 100755 index 0000000000000000000000000000000000000000..96691d442c8ad41a046df740c3b57a233a0127b4 --- /dev/null +++ b/SRT/CDB/MACI/Channels/PositionerData/PositionerData.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<EventChannel xmlns="urn:schemas-cosylab-com:EventChannel:1.0" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + IntegrationLogs="false" + MaxQueueLength="5" + MaxSuppliers="20" + RejectNewEvents="false" + DiscardPolicy="FifoOrder" + EventReliability="BestEffort" + ConnectionReliability="Persistent"> + <Events> + <_ Name="PositionerDataBlock" MaxProcessTime="2.0"/> + </Events> +</EventChannel> + diff --git a/SRT/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml b/SRT/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml new file mode 100644 index 0000000000000000000000000000000000000000..46583798773e85cea63de52652496d767c0bc3b7 --- /dev/null +++ b/SRT/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Giuseppe Carboni <giuseppe.carboni@inaf.it> +--> + +<Component + xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="PyCalmux" + Code="Calmux.PyCalmuxImpl" + Type="IDL:alma/Backends/CalMux:1.0" + Container="PyCalmuxContainer" + ImplLang="py" + KeepAliveTime="-1" + Default="false" +/> diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner/Positioner.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner/Positioner.xml new file mode 100755 index 0000000000000000000000000000000000000000..d11888eb356669e5d346e21897cc33ed3df69b63 --- /dev/null +++ b/SRT/CDB/MACI/Components/TestNamespace/Positioner/Positioner.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Marco Buttu <mbuttu@oa-cagliari.inaf.it> --> + +<Component + xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="Positioner" + Code="Positioner.PositionerImpl" + Type="IDL:alma/TestNamespaceInterface/Positioner:1.0" + Container="PositionerContainer" + ImplLang="py" + Default="true" +/> diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner00/Positioner00.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner00/Positioner00.xml new file mode 100755 index 0000000000000000000000000000000000000000..b81a3edf3e87e5c8c71b1674f14b59d9b6f9f1ac --- /dev/null +++ b/SRT/CDB/MACI/Components/TestNamespace/Positioner00/Positioner00.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Marco Buttu <mbuttu@oa-cagliari.inaf.it> --> + +<Component + xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="Positioner00" + Code="Positioner.PositionerImpl" + Type="IDL:alma/TestNamespaceInterface/Positioner:1.0" + Container="PositionerContainer" + ImplLang="py" + Default="true" +/> diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner01/Positioner01.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner01/Positioner01.xml new file mode 100755 index 0000000000000000000000000000000000000000..b9442ed060350b31d292b2a24843474d42c8945e --- /dev/null +++ b/SRT/CDB/MACI/Components/TestNamespace/Positioner01/Positioner01.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Marco Buttu <mbuttu@oa-cagliari.inaf.it> --> + +<Component + xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="Positioner01" + Code="Positioner.PositionerImpl" + Type="IDL:alma/TestNamespaceInterface/Positioner:1.0" + Container="PositionerContainer" + ImplLang="py" + Default="true" +/> diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner02/Positioner02.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner02/Positioner02.xml new file mode 100755 index 0000000000000000000000000000000000000000..a229149617a47d20077d12213d362b5c0e4f9a79 --- /dev/null +++ b/SRT/CDB/MACI/Components/TestNamespace/Positioner02/Positioner02.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Marco Buttu <mbuttu@oa-cagliari.inaf.it> --> + +<Component + xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="Positioner02" + Code="Positioner.PositionerImpl" + Type="IDL:alma/TestNamespaceInterface/Positioner:1.0" + Container="PositionerContainer" + ImplLang="py" + Default="true" +/> diff --git a/SRT/CDB/MACI/Components/TestNamespace/Positioner03/Positioner03.xml b/SRT/CDB/MACI/Components/TestNamespace/Positioner03/Positioner03.xml new file mode 100755 index 0000000000000000000000000000000000000000..ccda3a0c2dac6200f0bd714bdc8dc402dca16714 --- /dev/null +++ b/SRT/CDB/MACI/Components/TestNamespace/Positioner03/Positioner03.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Marco Buttu <mbuttu@oa-cagliari.inaf.it> --> + +<Component + xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="Positioner03" + Code="Positioner.PositionerImpl" + Type="IDL:alma/TestNamespaceInterface/Positioner:1.0" + Container="PositionerContainer" + ImplLang="py" + Default="true" +/> diff --git a/SRT/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml b/SRT/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml new file mode 100644 index 0000000000000000000000000000000000000000..645ee4c3a80e6ffb3db572aa99ba974944d582be --- /dev/null +++ b/SRT/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Author Infos + * ============ + * Name: Giuseppe Carboni + * E-mail: giuseppe.carboni@inaf.it +--> +<Container xmlns="urn:schemas-cosylab-com:Container:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + Timeout="30.0" + UseIFR="true" + ManagerRetry="10" + ImplLang="py" + Recovery="false"> + + <Autoload> + <cdb:_ string="baci" /> + </Autoload> + + <LoggingConfig + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1" + > + </LoggingConfig> + +</Container> diff --git a/SRT/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml b/SRT/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml new file mode 100644 index 0000000000000000000000000000000000000000..645ee4c3a80e6ffb3db572aa99ba974944d582be --- /dev/null +++ b/SRT/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Author Infos + * ============ + * Name: Giuseppe Carboni + * E-mail: giuseppe.carboni@inaf.it +--> +<Container xmlns="urn:schemas-cosylab-com:Container:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + Timeout="30.0" + UseIFR="true" + ManagerRetry="10" + ImplLang="py" + Recovery="false"> + + <Autoload> + <cdb:_ string="baci" /> + </Autoload> + + <LoggingConfig + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1" + > + </LoggingConfig> + +</Container> diff --git a/SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml b/SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml new file mode 100755 index 0000000000000000000000000000000000000000..75b8b71c05b60e3ccbfe3485d0385593a79ea875 --- /dev/null +++ b/SRT/CDB/MACI/Containers/PositionerContainer/PositionerContainer.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<Container xmlns="urn:schemas-cosylab-com:Container:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + ImplLang="py" + Timeout="30.0" + UseIFR="true" + ManagerRetry="10" + Recovery="false"> + + <Autoload> + <cdb:_ string="baci" /> + </Autoload> + + <LoggingConfig + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1" + > + </LoggingConfig> + +</Container> + + + diff --git a/SRT/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/SRT/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml new file mode 100644 index 0000000000000000000000000000000000000000..6563a97be273ebaf5e0081e044894672271110e2 --- /dev/null +++ b/SRT/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<Container xmlns="urn:schemas-cosylab-com:Container:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + ImplLang="py" + Timeout="30.0" + UseIFR="true" + ManagerRetry="10" + Recovery="false"> + + <Autoload> + <cdb:_ string="baci" /> + </Autoload> + + <LoggingConfig + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1" + > + </LoggingConfig> + +</Container> diff --git a/SRT/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml b/SRT/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml new file mode 100644 index 0000000000000000000000000000000000000000..1b7485cf85fdd45bf0d57b8447741e2d76dcef4a --- /dev/null +++ b/SRT/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml @@ -0,0 +1,11 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<PyCalmux + xmlns="urn:schemas-cosylab-com:PyCalmux:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + IP="127.0.0.1" + PORT="12500"/> diff --git a/SRT/CDB/alma/BACKENDS/TotalPower/TotalPower.xml b/SRT/CDB/alma/BACKENDS/TotalPower/TotalPower.xml index 38c98a3fe8f32d738a65a3f3121777aa5ebd71ba..59741c7d714acb45d6cca343887eb6ff7e24db3d 100644 --- a/SRT/CDB/alma/BACKENDS/TotalPower/TotalPower.xml +++ b/SRT/CDB/alma/BACKENDS/TotalPower/TotalPower.xml @@ -8,17 +8,17 @@ xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" sender_protocols="TCP=${HOST}:14000" - IPAddress="192.168.51.94" + IPAddress="192.168.200.129" Port="5003" CommandLineTimeout="3500000" ConnectTimeout="3000000" PropertyRefreshTime="1000000" - Configuration="CCC" + Configuration="CCB" TimeTollerance="250000" RepetitionCacheTime="2000000" RepetitionExpireTime="5000000" DataPort="6001" - DataIPAddress="192.167.189.8" + DataIPAddress="192.168.200.203" DataLatency="3000000" SenderSleepTime="300000" SenderResponseTime="1000000" diff --git a/SRT/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml b/SRT/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml new file mode 100755 index 0000000000000000000000000000000000000000..96f1386831e09a6f0a254424d58c9ef5f9bc6400 --- /dev/null +++ b/SRT/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml @@ -0,0 +1,10 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<CalMuxTable xmlns="urn:schemas-cosylab-com:CalMuxTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<BackendEntry><Backend>DBBC</Backend><Channel>6</Channel><Polarity>0</Polarity></BackendEntry> + +</CalMuxTable> diff --git a/SRT/CDB/alma/TestNamespace/Positioner/Positioner.xml b/SRT/CDB/alma/TestNamespace/Positioner/Positioner.xml new file mode 100755 index 0000000000000000000000000000000000000000..ed5e832ba7e17be806175c3996ecf13c55d2c696 --- /dev/null +++ b/SRT/CDB/alma/TestNamespace/Positioner/Positioner.xml @@ -0,0 +1,26 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<Positioner + xmlns="urn:schemas-cosylab-com:Positioner:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +> + + <status + description="integer that represents the Positioner status" + /> + + <position + description="Device position" + /> + + <current + description="Engine current" + /> + + + <seq + description="a dummy sequence" + /> + +</Positioner> diff --git a/SRT/CDB/alma/TestNamespace/Positioner00/Positioner00.xml b/SRT/CDB/alma/TestNamespace/Positioner00/Positioner00.xml new file mode 100755 index 0000000000000000000000000000000000000000..ed5e832ba7e17be806175c3996ecf13c55d2c696 --- /dev/null +++ b/SRT/CDB/alma/TestNamespace/Positioner00/Positioner00.xml @@ -0,0 +1,26 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<Positioner + xmlns="urn:schemas-cosylab-com:Positioner:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +> + + <status + description="integer that represents the Positioner status" + /> + + <position + description="Device position" + /> + + <current + description="Engine current" + /> + + + <seq + description="a dummy sequence" + /> + +</Positioner> diff --git a/SRT/CDB/alma/TestNamespace/Positioner01/Positioner01.xml b/SRT/CDB/alma/TestNamespace/Positioner01/Positioner01.xml new file mode 100755 index 0000000000000000000000000000000000000000..ed5e832ba7e17be806175c3996ecf13c55d2c696 --- /dev/null +++ b/SRT/CDB/alma/TestNamespace/Positioner01/Positioner01.xml @@ -0,0 +1,26 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<Positioner + xmlns="urn:schemas-cosylab-com:Positioner:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +> + + <status + description="integer that represents the Positioner status" + /> + + <position + description="Device position" + /> + + <current + description="Engine current" + /> + + + <seq + description="a dummy sequence" + /> + +</Positioner> diff --git a/SRT/CDB/alma/TestNamespace/Positioner02/Positioner02.xml b/SRT/CDB/alma/TestNamespace/Positioner02/Positioner02.xml new file mode 100755 index 0000000000000000000000000000000000000000..ed5e832ba7e17be806175c3996ecf13c55d2c696 --- /dev/null +++ b/SRT/CDB/alma/TestNamespace/Positioner02/Positioner02.xml @@ -0,0 +1,26 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<Positioner + xmlns="urn:schemas-cosylab-com:Positioner:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +> + + <status + description="integer that represents the Positioner status" + /> + + <position + description="Device position" + /> + + <current + description="Engine current" + /> + + + <seq + description="a dummy sequence" + /> + +</Positioner> diff --git a/SRT/CDB/alma/TestNamespace/Positioner03/Positioner03.xml b/SRT/CDB/alma/TestNamespace/Positioner03/Positioner03.xml new file mode 100755 index 0000000000000000000000000000000000000000..ed5e832ba7e17be806175c3996ecf13c55d2c696 --- /dev/null +++ b/SRT/CDB/alma/TestNamespace/Positioner03/Positioner03.xml @@ -0,0 +1,26 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<Positioner + xmlns="urn:schemas-cosylab-com:Positioner:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +> + + <status + description="integer that represents the Positioner status" + /> + + <position + description="Device position" + /> + + <current + description="Engine current" + /> + + + <seq + description="a dummy sequence" + /> + +</Positioner> diff --git a/SRT/Configuration/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml b/SRT/Configuration/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml new file mode 100644 index 0000000000000000000000000000000000000000..46583798773e85cea63de52652496d767c0bc3b7 --- /dev/null +++ b/SRT/Configuration/CDB/MACI/Components/BACKENDS/PyCalmux/PyCalmux.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Giuseppe Carboni <giuseppe.carboni@inaf.it> +--> + +<Component + xmlns="urn:schemas-cosylab-com:Component:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + + Name="PyCalmux" + Code="Calmux.PyCalmuxImpl" + Type="IDL:alma/Backends/CalMux:1.0" + Container="PyCalmuxContainer" + ImplLang="py" + KeepAliveTime="-1" + Default="false" +/> diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CBAND/LO_CBAND.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CBAND/LO_CBAND.xml index fd19e1383324891cd6a1afa6d0bbab18bfa0f31e..10c819853d9ee5b4665e96653f65029264f2e226 100644 --- a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CBAND/LO_CBAND.xml +++ b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_CBAND/LO_CBAND.xml @@ -11,7 +11,7 @@ Name="LO_CBAND" Code="LocalOscillatorImpl.LocalOscillator" Type="IDL:alma/Receivers/LocalOscillator:1.0" - Container="LocalOscillatorLPContainer" + Container="LocalOscillatorCContainer" KeepAliveTime="10" Default="false" ImplLang="py" diff --git a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_KBAND/LO_KBAND.xml b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_KBAND/LO_KBAND.xml index eb9a4c43a3444834af72354f9b447ac762a70227..266c353b109590e190fbeca276bc6fdf82ff3292 100644 --- a/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_KBAND/LO_KBAND.xml +++ b/SRT/Configuration/CDB/MACI/Components/RECEIVERS/LO_KBAND/LO_KBAND.xml @@ -11,7 +11,7 @@ Name="LO_KBAND" Code="LocalOscillatorImpl.LocalOscillator" Type="IDL:alma/Receivers/LocalOscillator:1.0" - Container="LocalOscillatorLPContainer" + Container="LocalOscillatorKContainer" KeepAliveTime="10" Default="false" ImplLang="py" diff --git a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml new file mode 100644 index 0000000000000000000000000000000000000000..645ee4c3a80e6ffb3db572aa99ba974944d582be --- /dev/null +++ b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorCContainer/LocalOscillatorCContainer.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Author Infos + * ============ + * Name: Giuseppe Carboni + * E-mail: giuseppe.carboni@inaf.it +--> +<Container xmlns="urn:schemas-cosylab-com:Container:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + Timeout="30.0" + UseIFR="true" + ManagerRetry="10" + ImplLang="py" + Recovery="false"> + + <Autoload> + <cdb:_ string="baci" /> + </Autoload> + + <LoggingConfig + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1" + > + </LoggingConfig> + +</Container> diff --git a/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml new file mode 100644 index 0000000000000000000000000000000000000000..645ee4c3a80e6ffb3db572aa99ba974944d582be --- /dev/null +++ b/SRT/Configuration/CDB/MACI/Containers/LocalOscillatorKContainer/LocalOscillatorKContainer.xml @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + * Author Infos + * ============ + * Name: Giuseppe Carboni + * E-mail: giuseppe.carboni@inaf.it +--> +<Container xmlns="urn:schemas-cosylab-com:Container:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + Timeout="30.0" + UseIFR="true" + ManagerRetry="10" + ImplLang="py" + Recovery="false"> + + <Autoload> + <cdb:_ string="baci" /> + </Autoload> + + <LoggingConfig + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1" + > + </LoggingConfig> + +</Container> diff --git a/SRT/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml b/SRT/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml new file mode 100644 index 0000000000000000000000000000000000000000..6563a97be273ebaf5e0081e044894672271110e2 --- /dev/null +++ b/SRT/Configuration/CDB/MACI/Containers/PyCalmuxContainer/PyCalmuxContainer.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<Container xmlns="urn:schemas-cosylab-com:Container:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:log="urn:schemas-cosylab-com:LoggingConfig:1.0" + ImplLang="py" + Timeout="30.0" + UseIFR="true" + ManagerRetry="10" + Recovery="false"> + + <Autoload> + <cdb:_ string="baci" /> + </Autoload> + + <LoggingConfig + centralizedLogger="Log" + minLogLevel="5" + minLogLevelLocal="5" + dispatchPacketSize="0" + immediateDispatchLevel="8" + flushPeriodSeconds="1" + > + </LoggingConfig> + +</Container> diff --git a/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml b/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml index 2b019586d2a886858daa2121598aec44618ef176..89a110563349da1b04a2d6ef42d675dcac526df9 100755 --- a/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml +++ b/SRT/Configuration/CDB/MACI/Managers/Manager/Manager.xml @@ -33,7 +33,6 @@ </ServiceComponents> <ServiceDaemons> - <cdb:_ string="nuraghe-mng.srt.inaf.it"/> </ServiceDaemons> diff --git a/SRT/Configuration/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml b/SRT/Configuration/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml new file mode 100644 index 0000000000000000000000000000000000000000..efff824a196945c61b59e43312440c33b5a00de3 --- /dev/null +++ b/SRT/Configuration/CDB/alma/BACKENDS/PyCalmux/PyCalmux.xml @@ -0,0 +1,11 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> +<!-- + Giuseppe Carboni, giuseppe.carboni@inaf.it +--> +<PyCalmux + xmlns="urn:schemas-cosylab-com:PyCalmux:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + IP="192.168.200.123" + PORT="5003"/> diff --git a/SRT/Configuration/CDB/alma/BACKENDS/TotalPower/TotalPower.xml b/SRT/Configuration/CDB/alma/BACKENDS/TotalPower/TotalPower.xml index ddd1531743470443f346bd62e1d0bf4985c91839..59741c7d714acb45d6cca343887eb6ff7e24db3d 100644 --- a/SRT/Configuration/CDB/alma/BACKENDS/TotalPower/TotalPower.xml +++ b/SRT/Configuration/CDB/alma/BACKENDS/TotalPower/TotalPower.xml @@ -18,7 +18,7 @@ RepetitionCacheTime="2000000" RepetitionExpireTime="5000000" DataPort="6001" - DataIPAddress="192.168.200.200" + DataIPAddress="192.168.200.203" DataLatency="3000000" SenderSleepTime="300000" SenderResponseTime="1000000" diff --git a/SRT/Configuration/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml b/SRT/Configuration/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml new file mode 100755 index 0000000000000000000000000000000000000000..091831a26a432fad08ac5d4d4e0ad0ecc7de3c86 --- /dev/null +++ b/SRT/Configuration/CDB/alma/DataBlock/PyCalmux/Mapping/Mapping.xml @@ -0,0 +1,11 @@ +<?xml version='1.0' encoding='ISO-8859-1'?> + +<CalMuxTable xmlns="urn:schemas-cosylab-com:CalMuxTable:1.0" + xmlns:baci="urn:schemas-cosylab-com:BACI:1.0" + xmlns:cdb="urn:schemas-cosylab-com:CDB:1.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + +<BackendEntry><Backend>DBBC</Backend><Channel>6</Channel><Polarity>0</Polarity></BackendEntry> +<BackendEntry><Backend>DFB</Backend><Channel>8</Channel><Polarity>0</Polarity></BackendEntry> + +</CalMuxTable> diff --git a/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml b/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml index 177d103b2019c9625e5a1745976dd32b1fe6e0a3..43975da9bd07daf3678e6c360d6df2cff09e1314 100644 --- a/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml +++ b/SRT/Configuration/CDB/alma/DataBlock/Sardara/Sardara.xml @@ -20,6 +20,36 @@ <bins>1024</bins> </Configuration> +<Configuration> + <configurationID>SK01</configurationID> + <sections>4</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>2</beams> + <bandWidth>1500.0</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>L R L R</polarizations> + <feed>0 0 1 1</feed> + <IF>0 1 0 1</IF> + <bins>1024</bins> +</Configuration> + +<Configuration> + <configurationID>SK02</configurationID> + <sections>4</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>2</beams> + <bandWidth>1500.0</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>L R L R</polarizations> + <feed>0 0 2 2</feed> + <IF>0 1 0 1</IF> + <bins>1024</bins> +</Configuration> + <Configuration> <configurationID>SK03</configurationID> <sections>4</sections> @@ -35,6 +65,36 @@ <bins>1024</bins> </Configuration> +<Configuration> + <configurationID>SK04</configurationID> + <sections>4</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>2</beams> + <bandWidth>1500.0</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>L R L R</polarizations> + <feed>0 0 4 4</feed> + <IF>0 1 0 1</IF> + <bins>1024</bins> +</Configuration> + +<Configuration> + <configurationID>SK05</configurationID> + <sections>4</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>2</beams> + <bandWidth>1500.0</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>L R L R</polarizations> + <feed>0 0 5 5</feed> + <IF>0 1 0 1</IF> + <bins>1024</bins> +</Configuration> + <Configuration> <configurationID>SK06</configurationID> <sections>4</sections> @@ -125,6 +185,36 @@ <bins>1024</bins> </Configuration> +<Configuration> + <configurationID>SK01S</configurationID> + <sections>4</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>2</beams> + <bandWidth>1500.0</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>S S S S</polarizations> + <feed>0 0 1 1</feed> + <IF>0 1 0 1</IF> + <bins>1024</bins> +</Configuration> + +<Configuration> + <configurationID>SK02S</configurationID> + <sections>4</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>2</beams> + <bandWidth>1500.0</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>S S S S</polarizations> + <feed>0 0 2 2</feed> + <IF>0 1 0 1</IF> + <bins>1024</bins> +</Configuration> + <Configuration> <configurationID>SK03S</configurationID> <sections>4</sections> @@ -140,6 +230,36 @@ <bins>1024</bins> </Configuration> +<Configuration> + <configurationID>SK04S</configurationID> + <sections>4</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>2</beams> + <bandWidth>1500.0</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>S S S S</polarizations> + <feed>0 0 4 4</feed> + <IF>0 1 0 1</IF> + <bins>1024</bins> +</Configuration> + +<Configuration> + <configurationID>SK05S</configurationID> + <sections>4</sections> + <calSwitchingEnabled>TRUE</calSwitchingEnabled> + <inputPort>GREGORIAN</inputPort> + <beams>2</beams> + <bandWidth>1500.0</bandWidth> + <attenuation>7.0</attenuation> + <section_boards>0 1 2 3</section_boards> + <polarizations>S S S S</polarizations> + <feed>0 0 5 5</feed> + <IF>0 1 0 1</IF> + <bins>1024</bins> +</Configuration> + <Configuration> <configurationID>SK06S</configurationID> <sections>4</sections> diff --git a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml index ef8122fbd93888eb898f0629bb12074630619c62..759140ae0667759647440b5223d38ffcc60f6738 100644 --- a/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml +++ b/SRT/Misc/SRTScripts/app-defaults/discosStartup.xml @@ -14,7 +14,7 @@ <toolAgainstInterfaceRepository></toolAgainstInterfaceRepository> <toolAgainstNameService></toolAgainstNameService> <containers> - <select>32</select> + <select>35</select> <againstManagerHost></againstManagerHost> <againstManagerPort></againstManagerPort> <againstCDB></againstCDB> @@ -82,6 +82,24 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> + <container> + <name>LocalOscillatorCContainer</name> + <type>py</type> + <heapSizeMB></heapSizeMB> + <useDedicatedSettings>true</useDedicatedSettings> + <scriptBase>0</scriptBase> + <remoteHost>MASTERHOST</remoteHost> + <remoteAccount>discos</remoteAccount> + </container> + <container> + <name>LocalOscillatorKContainer</name> + <type>py</type> + <heapSizeMB></heapSizeMB> + <useDedicatedSettings>true</useDedicatedSettings> + <scriptBase>0</scriptBase> + <remoteHost>MASTERHOST</remoteHost> + <remoteAccount>discos</remoteAccount> + </container> <container> <name>LoggerContainer</name> <type>cpp</type> @@ -154,6 +172,15 @@ <remoteHost>MASTERHOST</remoteHost> <remoteAccount>discos</remoteAccount> </container> + <container> + <name>PyCalmuxContainer</name> + <type>py</type> + <heapSizeMB></heapSizeMB> + <useDedicatedSettings>true</useDedicatedSettings> + <scriptBase>0</scriptBase> + <remoteHost>MASTERHOST</remoteHost> + <remoteAccount>discos</remoteAccount> + </container> <container> <name>SardaraContainer</name> <type>cpp</type> diff --git a/SystemMake/Makefile b/SystemMake/Makefile index 0cb74ffd3606619609b970c1a52181f80582c8b0..404a25456b47ca720ea1f0c456c2c7ea1e5a05b9 100644 --- a/SystemMake/Makefile +++ b/SystemMake/Makefile @@ -34,7 +34,7 @@ COMMON_LIBRARIES:=SlaLibrary IRALibrary DiscosVersion TextWindowLibrary ParserLi COMMON_SERVERS:=AntennaBoss Observatory OTF PointingModel Refraction SkySource \ Moon FitsWriter Scheduler ReceiversBoss ExternalClients \ CalibrationTool TotalPower NoiseGenerator CustomLogger \ - XBackend PyDewarPositioner Sardara PyLocalOscillator MFKBandBaseReceiver + XBackend PyDewarPositioner Sardara PyLocalOscillator MFKBandBaseReceiver PyCalmux COMMON_CLIENTS:=AntennaBossTextClient ObservatoryTextClient \ GenericBackendTextClient ReceiversBossTextClient \ SystemTerminal CaltoolClient CustomLoggingClient \