Loading Common/Interfaces/ReceiversInterface/idl/CommonReceiverInterface.idl +2 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ module Receivers { */ interface CommonReceiverInterface { /** This attribute reports the current value of the local oscillator of the current receiver. Generally one LO for each IFs. */ /** This attribute reports the current value of the local oscillator of the current receiver. Generally one LO for each IFs for each feed (14 in case of the MF SRT receiver). */ readonly attribute ACS::ROdoubleSeq LO; /** This attribute reports the number of feeds of the current receiver */ Loading Loading @@ -100,7 +100,7 @@ module Receivers { * It allows to set the local oscillators of the current recevier. Generally this function allows to give one value for each * supported IF, but in many cases the receiver does not support different LOs, so the asnwer of the system may vary from * receiver to receiver according the implementation. A -1 will be interpreted as "keep present value". * @param list of local oscillators values to be applied (MHz). * @param list of local oscillators values to be applied (MHz), one for each IF (typically 0,1) * @throw ComponentErrors::ComponentErrorsEx * @throw ReceiversErrors::ReceiversErrorsEx * @throw CORBA::SystemExcpetion Loading Common/Servers/Scheduler/src/Core_Operations.i +52 −17 Original line number Diff line number Diff line Loading @@ -505,7 +505,7 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent throw impl; } try { inputs=backend->getInputs(bckinputFreq,bckinputBW,bckinputFeed,bckinputIF); inputs=backend->getInputs(bckinputFreq.out(),bckinputBW.out(),bckinputFeed.out(),bckinputIF.out()); } catch (CORBA::SystemException& ex) { _EXCPT(ComponentErrors::CORBAProblemExImpl,impl,"CCore::_fTrack()"); Loading @@ -526,6 +526,11 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent impl.setComponentName(backend->name()); throw impl; } for (unsigned t=0;t<bckinputFreq->length();t++) { printf("bck freq :%lf\n",bckinputFreq[t]); printf("bck bw:%lf\n",bckinputBW[t]); } if (inputSection->length()!=(unsigned)inputs) { _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCore::_fTrack()"); impl.setReason("inconsistent data from the backend inputs number"); Loading @@ -533,6 +538,7 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent } //--------------------------------------------------------------------------------------------------- //4) info from antenna-------------------------------------------------------------------------------- printf("RestFrequency : %lf\n",m_restFrequency[0]); try { m_antennaBoss->getTopocentricFrequency(m_restFrequency,topocentricFreq.out()); } Loading Loading @@ -560,7 +566,7 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"CCore::_fTrack()"); throw impl; } //for (unsigned t=0;t<topocentricFreq->length();t++) //printf("topocentric Freq :%lf\n",topocentricFreq[t]); for (unsigned t=0;t<topocentricFreq->length();t++) printf("topocentric Freq :%lf\n",topocentricFreq[t]); // just to make sure the topocentric sequence has the right dimension! if (topocentricFreq->length()!=m_restFrequency.length()) { topocentricFreq->length(m_restFrequency.length()); Loading @@ -577,7 +583,7 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent throw impl; } IFNumber=IFNumberRO->get_sync(comp.out()); // number of output IFs of the receeever //printf("if number :%ld\n",IFNumber); printf("if number :%ld\n",IFNumber); try { m_receiversBoss->getIFOutput(bckinputFeed,bckinputIF,fndoutputFreq.out(),fndoutputBw.out(),fndoutputPol.out(),fndoutputLO.out()); } Loading @@ -604,6 +610,10 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent impl.setReason("inconsistent data from the receivers if outputs"); throw impl; } for (unsigned t=0;t<fndoutputFreq->length();t++) { printf("Frequency :%lf\n",fndoutputFreq[t]); printf("BandWidth :%lf\n",fndoutputBw[t]); } //--------------------------------------------------------------------------------------------------- //5) let's start with some computations ----------------------------------------------------------------------------- sectionFreq.length(sections); Loading @@ -611,33 +621,58 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent lo.length(IFNumber); long currentSection; for (long j=0;j<inputs;j++) { inputLO[j]=fndoutputLO[j]; //if (device=="BCK") if ((device=="ALL") || (device=="LO")) { currentSection=inputSection[j]; //printf("currentSection :%ld\n",currentSection); printf("currentSection :%ld\n",currentSection); if (topocentricFreq->length()==1) { inputLO[j]=IRA::CIRATools::roundNearest(topocentricFreq[0]-bckinputFreq[currentSection]- (bckinputBW[currentSection]/2.0),digits); //printf("inputLO[j] :%lf\n",inputLO[j]); inputLO[j]=IRA::CIRATools::roundNearest(topocentricFreq[0]-bckinputFreq[j]- (bckinputBW[j]/2.0),digits); printf("inputLO[j] :%lf\n",inputLO[j]); } else { inputLO[j]=IRA::CIRATools::roundNearest(topocentricFreq[currentSection]-bckinputFreq[currentSection]- (bckinputBW[currentSection]/2.0),digits); //printf("inputLO[j] :%lf\n",inputLO[j]); inputLO[j]=IRA::CIRATools::roundNearest(topocentricFreq[currentSection]-bckinputFreq[j]- (bckinputBW[j]/2.0),digits); printf("inputLO[j] :%lf\n",inputLO[j]); } //lo[bckinputIF[j]]=inputLO[j]; // local oscillator per IFs } //else { // inputLO[j]=fndoutputLO[j]; //} } for(long j=0;j<IFNumber;j++) { lo[j] = -1.0; // keep the default value if no inputs is associated to the current IF. for (long i=0;i<inputs;i++) { if (bckinputIF[i]==j) { if((lo[j] < 0.0 ) || (inputLO[i] < lo[j])) { // change the local oscillator value if ...... lo[j] = inputLO[i]; printf("lo changed: #if: %ld, value: %lf \n",j,lo[j]); } } lo[bckinputIF[j]]=inputLO[j]; // local oscillator per IFs } } if (device=="ALL") { for (long j=0;j<inputs;j++) { currentSection=inputSection[j]; if (topocentricFreq->length()==1) { //sectionFreq[currentSection]=topocentricFreq[0]-inputLO[j]-(bckinputBW[currentSection]/2.0); sectionFreq[currentSection]=topocentricFreq[0]-lo[bckinputIF[j]]-(bckinputBW[j]/2.0); } else { inputLO[j]=fndoutputLO[j]; sectionFreq[currentSection]=topocentricFreq[currentSection]-lo[bckinputIF[j]]-(bckinputBW[j]/2.0); } } } else if (device=="BCK") { for (long j=0;j<inputs;j++) { if ((device=="ALL") || (device=="BCK")) { currentSection=inputSection[j]; if (topocentricFreq->length()==1) { sectionFreq[currentSection]=topocentricFreq[0]-inputLO[j]-(bckinputBW[currentSection]/2.0); //sectionFreq[currentSection]=topocentricFreq[0]-inputLO[j]-(bckinputBW[currentSection]/2.0); sectionFreq[currentSection]=topocentricFreq[0]-fndoutputLO[j]-(bckinputBW[j]/2.0); } else { sectionFreq[currentSection]=topocentricFreq[currentSection]-inputLO[j]-(bckinputBW[currentSection]/2.0); sectionFreq[currentSection]=topocentricFreq[currentSection]-fndoutputLO[j]-(bckinputBW[j]/2.0); } } } Loading Medicina/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml +1 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" MinorServoBossInterface="" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" MeteoInstance="WEATHERSTATION/WeatherStation" > Loading Loading
Common/Interfaces/ReceiversInterface/idl/CommonReceiverInterface.idl +2 −2 Original line number Diff line number Diff line Loading @@ -25,7 +25,7 @@ module Receivers { */ interface CommonReceiverInterface { /** This attribute reports the current value of the local oscillator of the current receiver. Generally one LO for each IFs. */ /** This attribute reports the current value of the local oscillator of the current receiver. Generally one LO for each IFs for each feed (14 in case of the MF SRT receiver). */ readonly attribute ACS::ROdoubleSeq LO; /** This attribute reports the number of feeds of the current receiver */ Loading Loading @@ -100,7 +100,7 @@ module Receivers { * It allows to set the local oscillators of the current recevier. Generally this function allows to give one value for each * supported IF, but in many cases the receiver does not support different LOs, so the asnwer of the system may vary from * receiver to receiver according the implementation. A -1 will be interpreted as "keep present value". * @param list of local oscillators values to be applied (MHz). * @param list of local oscillators values to be applied (MHz), one for each IF (typically 0,1) * @throw ComponentErrors::ComponentErrorsEx * @throw ReceiversErrors::ReceiversErrorsEx * @throw CORBA::SystemExcpetion Loading
Common/Servers/Scheduler/src/Core_Operations.i +52 −17 Original line number Diff line number Diff line Loading @@ -505,7 +505,7 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent throw impl; } try { inputs=backend->getInputs(bckinputFreq,bckinputBW,bckinputFeed,bckinputIF); inputs=backend->getInputs(bckinputFreq.out(),bckinputBW.out(),bckinputFeed.out(),bckinputIF.out()); } catch (CORBA::SystemException& ex) { _EXCPT(ComponentErrors::CORBAProblemExImpl,impl,"CCore::_fTrack()"); Loading @@ -526,6 +526,11 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent impl.setComponentName(backend->name()); throw impl; } for (unsigned t=0;t<bckinputFreq->length();t++) { printf("bck freq :%lf\n",bckinputFreq[t]); printf("bck bw:%lf\n",bckinputBW[t]); } if (inputSection->length()!=(unsigned)inputs) { _EXCPT(ComponentErrors::ValidationErrorExImpl,impl,"CCore::_fTrack()"); impl.setReason("inconsistent data from the backend inputs number"); Loading @@ -533,6 +538,7 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent } //--------------------------------------------------------------------------------------------------- //4) info from antenna-------------------------------------------------------------------------------- printf("RestFrequency : %lf\n",m_restFrequency[0]); try { m_antennaBoss->getTopocentricFrequency(m_restFrequency,topocentricFreq.out()); } Loading Loading @@ -560,7 +566,7 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent _EXCPT(ComponentErrors::UnexpectedExImpl,impl,"CCore::_fTrack()"); throw impl; } //for (unsigned t=0;t<topocentricFreq->length();t++) //printf("topocentric Freq :%lf\n",topocentricFreq[t]); for (unsigned t=0;t<topocentricFreq->length();t++) printf("topocentric Freq :%lf\n",topocentricFreq[t]); // just to make sure the topocentric sequence has the right dimension! if (topocentricFreq->length()!=m_restFrequency.length()) { topocentricFreq->length(m_restFrequency.length()); Loading @@ -577,7 +583,7 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent throw impl; } IFNumber=IFNumberRO->get_sync(comp.out()); // number of output IFs of the receeever //printf("if number :%ld\n",IFNumber); printf("if number :%ld\n",IFNumber); try { m_receiversBoss->getIFOutput(bckinputFeed,bckinputIF,fndoutputFreq.out(),fndoutputBw.out(),fndoutputPol.out(),fndoutputLO.out()); } Loading @@ -604,6 +610,10 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent impl.setReason("inconsistent data from the receivers if outputs"); throw impl; } for (unsigned t=0;t<fndoutputFreq->length();t++) { printf("Frequency :%lf\n",fndoutputFreq[t]); printf("BandWidth :%lf\n",fndoutputBw[t]); } //--------------------------------------------------------------------------------------------------- //5) let's start with some computations ----------------------------------------------------------------------------- sectionFreq.length(sections); Loading @@ -611,33 +621,58 @@ void CCore::_fTrack(const char *dev) throw (ComponentErrors::CouldntGetComponent lo.length(IFNumber); long currentSection; for (long j=0;j<inputs;j++) { inputLO[j]=fndoutputLO[j]; //if (device=="BCK") if ((device=="ALL") || (device=="LO")) { currentSection=inputSection[j]; //printf("currentSection :%ld\n",currentSection); printf("currentSection :%ld\n",currentSection); if (topocentricFreq->length()==1) { inputLO[j]=IRA::CIRATools::roundNearest(topocentricFreq[0]-bckinputFreq[currentSection]- (bckinputBW[currentSection]/2.0),digits); //printf("inputLO[j] :%lf\n",inputLO[j]); inputLO[j]=IRA::CIRATools::roundNearest(topocentricFreq[0]-bckinputFreq[j]- (bckinputBW[j]/2.0),digits); printf("inputLO[j] :%lf\n",inputLO[j]); } else { inputLO[j]=IRA::CIRATools::roundNearest(topocentricFreq[currentSection]-bckinputFreq[currentSection]- (bckinputBW[currentSection]/2.0),digits); //printf("inputLO[j] :%lf\n",inputLO[j]); inputLO[j]=IRA::CIRATools::roundNearest(topocentricFreq[currentSection]-bckinputFreq[j]- (bckinputBW[j]/2.0),digits); printf("inputLO[j] :%lf\n",inputLO[j]); } //lo[bckinputIF[j]]=inputLO[j]; // local oscillator per IFs } //else { // inputLO[j]=fndoutputLO[j]; //} } for(long j=0;j<IFNumber;j++) { lo[j] = -1.0; // keep the default value if no inputs is associated to the current IF. for (long i=0;i<inputs;i++) { if (bckinputIF[i]==j) { if((lo[j] < 0.0 ) || (inputLO[i] < lo[j])) { // change the local oscillator value if ...... lo[j] = inputLO[i]; printf("lo changed: #if: %ld, value: %lf \n",j,lo[j]); } } lo[bckinputIF[j]]=inputLO[j]; // local oscillator per IFs } } if (device=="ALL") { for (long j=0;j<inputs;j++) { currentSection=inputSection[j]; if (topocentricFreq->length()==1) { //sectionFreq[currentSection]=topocentricFreq[0]-inputLO[j]-(bckinputBW[currentSection]/2.0); sectionFreq[currentSection]=topocentricFreq[0]-lo[bckinputIF[j]]-(bckinputBW[j]/2.0); } else { inputLO[j]=fndoutputLO[j]; sectionFreq[currentSection]=topocentricFreq[currentSection]-lo[bckinputIF[j]]-(bckinputBW[j]/2.0); } } } else if (device=="BCK") { for (long j=0;j<inputs;j++) { if ((device=="ALL") || (device=="BCK")) { currentSection=inputSection[j]; if (topocentricFreq->length()==1) { sectionFreq[currentSection]=topocentricFreq[0]-inputLO[j]-(bckinputBW[currentSection]/2.0); //sectionFreq[currentSection]=topocentricFreq[0]-inputLO[j]-(bckinputBW[currentSection]/2.0); sectionFreq[currentSection]=topocentricFreq[0]-fndoutputLO[j]-(bckinputBW[j]/2.0); } else { sectionFreq[currentSection]=topocentricFreq[currentSection]-inputLO[j]-(bckinputBW[currentSection]/2.0); sectionFreq[currentSection]=topocentricFreq[currentSection]-fndoutputLO[j]-(bckinputBW[j]/2.0); } } } Loading
Medicina/CDB/alma/MANAGEMENT/FitsZilla/FitsZilla.xml +1 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ AntennaBossInterface="IDL:alma/Antenna/AntennaBoss:1.0" ObservatoryInterface="IDL:alma/Antenna/Observatory:1.0" ReceiversBossInterface="IDL:alma/Receivers/ReceiversBoss:1.0" MinorServoBossInterface="IDL:alma/MinorServo/MinorServoBoss:1.0" MinorServoBossInterface="" SchedulerInterface="IDL:alma/Management/Scheduler:1.0" MeteoInstance="WEATHERSTATION/WeatherStation" > Loading