Commit a1b2b6b9 authored by Andrea Orlat's avatar Andrea Orlat
Browse files

the focusscan procedure ha been replaced with the more generic peakerScan

parent 30fdf2e8
Loading
Loading
Loading
Loading
+31 −16
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ module Management {
		
		/**
		 * Return the fundamental weather parameters
		 * @param temerature external temperature in °C
		 * @param temperature external temperature in °C
		 * @param humidity relative humidity (0..100)
		 * @param pressure atmospheric pressure (mbar)
		 * @param wind wind speed (Km/s) 
@@ -116,34 +116,23 @@ module Management {
		ACS::doubleSeq systemTemperature() raises (ComponentErrors::ComponentErrorsEx,ManagementErrors::ManagementErrorsEx);
					
		/**
		 * Performs a cross scan using the main drives of the telescope. The operation consists of system temperature measurment (the telescope is sent 3 times the current beam size off)
		 * Performs a cross scan using the main drives of the telescope. The operation consists of system temperature measurement (the telescope is sent 3 times the current beam size off)
		 * and then a longitude and a latitude On-The-Fly scans. 
		 * The frame, the span and the duration of both the On-The-Fly scans is determined by the arguments. A prerequisite is that a target has to be commanded to the telescope; this target is
		 * taken as the center of the On-the-Fly scans. The default backend and the defautl data recorder are used as data source and destination respectively.
		 * taken as the center of the On-the-Fly scans. The default backend and the default data recorder are used as data source and destination respectively.
		 * @throw ComponentErrors::ComponentErrorsEx
		 * @throw ManagementErrors::ManagementErrorsEx 
		 * @throw CORBA::SystemExcpetion 
		 * @param coordFrame it gives the frame in which the cross cran is performed. 
		 * @param coordFrame it gives the frame in which the cross scan is performed.
		 * @param span this is the overall length of the single scans (radians)
		 * @param duration this determine how long the single scan has to take.
		 */ 
		void crossScan(in TCoordinateFrame coordFrame,in double span,in ACS::TimeInterval duration) raises (ComponentErrors::ComponentErrorsEx,ManagementErrors::ManagementErrorsEx);
		
		/**
		 * Performs a focus scan moving the subreflector or the receiver along the optical axis of the telescope. The operation consists of system temperature measurement (the telescope is sent
		 * 3 times the current beam size off) and then a focus scan on the source. The default backend and the default data recorder are used as data source and destination respectively.
		 * @throw ComponentErrors::ComponentErrorsEx
		 * @throw ManagementErrors::ManagementErrorsEx
		 * @throw CORBA::SystemExcpetion
		 * @param span this is the overall length of the single scans (mm)
		 * @param duration this determine how long the scan has to take.
		 */
		void focusScan(in double span,in ACS::TimeInterval duration) raises (ComponentErrors::ComponentErrorsEx,ManagementErrors::ManagementErrorsEx);
		
		/**
		 * Performs a skydip using the main drives of the telescope. The scan is done at the current azimuth position and consists of moving the antenna between two elevation  positions. A system temperature measurment
		 * is perfomed at the higher specified elevation. The movement is done from the greater elevation toword the lower. 
		 * The default backend and the defautl data recorder are used as data source and destination respectively.
		 * The default backend and the default data recorder are used as data source and destination respectively.
		 * @throw ComponentErrors::ComponentErrorsEx
		 * @throw ManagementErrors::ManagementErrorsEx 
		 * @throw CORBA::SystemExcpetion 
@@ -153,6 +142,19 @@ module Management {
		 */ 		
		void skydip(in double elevation1,in double elevation2,in ACS::TimeInterval duration);
		
		/**
		 * The operation consists of system temperature measurement (the telescope is sent
		 * 3 times the current beam size off) and then a focus peaker scan on the source.
		 * The default backend and the default data recorder are used as data source and destination respectively.
		 * @param axis name of the involved axis
		 * @param span range to be traveled
		 * @param duration scan time
		 * @throw CORBA::SystemExcpetion
		 * @throw ComponentErrors::ComponentErrorsEx
		 * @throw ManagementErrors::ManagementErrorsEx
		 */
		void peakerScan(in string axis,in double span,in ACS::TimeInterval duration) raises (ComponentErrors::ComponentErrorsEx,ManagementErrors::ManagementErrorsEx);

		/**
		 * Given the default backend. This methods allows to configure the default device. This device is used for calibration purposes and for the computation of the beamwidth, so calling
		 * this method will cause the beam width to be recomputed (usign the configuration of the section and the configuration of the receiver). If the device id is not existent inside the 
@@ -193,6 +195,19 @@ module Management {
		 */
		void setProjectCode(in string code) raises (ManagementErrors::ManagementErrorsEx);

		/**
		 * It allows to immediately start a scan that involves a primary focus axis or a subreflector axis. The scan is performed of the currently
		 * commanded source. If the axis involves a pointing offsets the telescope will try to correct it by moving the antenna by the adequate
		 * beam deviation factor.
		 * @param axis name of the involved axis
		 * @param span range to be traveled
		 * @param duration scan time
		 * @throw CORBA::SystemExcpetion
		 * @throw ComponentErrors::ComponentErrorsEx
		 * @throw ManagementErrors::ManagementErrorsEx
		 */
		void peaker(in string axis,in double span,in ACS::TimeInterval duration) raises (ComponentErrors::ComponentErrorsEx,ManagementErrors::ManagementErrorsEx);

		/**
		 * It allows to immediately start a longitude On The Fly to Antenna. The will be scan over the currently commanded target.
		 * If no target is commanded yet an error is thrown. The current target is used as the central point of the scan (taken from the J2000 equatorial).
+3 −2
Original line number Diff line number Diff line
@@ -98,10 +98,11 @@ public:
	/**
	 * This is a macro operation, it performs a focus scan over the previously commanded source
	 */
	void focusScan(const double& span,const ACS::TimeInterval& duration) throw (ComponentErrors::CouldntGetComponentExImpl,ComponentErrors::ComponentNotActiveExImpl,
	void peakerScan(const char *axis,const double& span,const ACS::TimeInterval& duration) throw (ComponentErrors::CouldntGetComponentExImpl,ComponentErrors::ComponentNotActiveExImpl,
			ManagementErrors::AntennaScanErrorExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::UnexpectedExImpl,ManagementErrors::TsysErrorExImpl,ComponentErrors::OperationErrorExImpl,
			ManagementErrors::UnsupportedOperationExImpl,ManagementErrors::MinorServoScanErrorExImpl,ComponentErrors::TimerErrorExImpl,
			ManagementErrors::AbortedByUserExImpl,ManagementErrors::NotAllowedDuringScheduleExImpl,ManagementErrors::RecordingAlreadyActiveExImpl);
			ManagementErrors::AbortedByUserExImpl,ManagementErrors::NotAllowedDuringScheduleExImpl,ManagementErrors::RecordingAlreadyActiveExImpl,
			ComponentErrors::ValidationErrorExImpl);

	/**
	 * this is a macro operation, it performs a skydip scan from the current azimuth position
+3 −2
Original line number Diff line number Diff line
@@ -24,14 +24,15 @@
 * @throw ComponentErrors::OperationErrorExImpl
 * @throw ComponentErrors::ComponentNotActiveExImpl
 * @throw ComponentErrors::CORBAProblemExImpl
 * @thorw ComponentErrors::CouldntGetComponentExImpl
 * @throw ComponentErrors::CouldntGetComponentExImpl
 * @throw ManagementErrors::UnsupportedOperationExImpl
 * @return true if the scan has been checked successfully
 */
bool checkScan(ACS::Time& ut,const Antenna::TTrackingParameters *const prim,const Antenna::TTrackingParameters *const sec,
	const MinorServo::MinorServoScan*const servoPar, const Receivers::TReceiversParameters*const recvPar,const double& minEl=-1.0,
	const double& maxEl=-1.0) throw (ComponentErrors::UnexpectedExImpl,
	ComponentErrors::OperationErrorExImpl,ComponentErrors::ComponentNotActiveExImpl,ComponentErrors::CORBAProblemExImpl,
	ComponentErrors::CouldntGetComponentExImpl);
	ComponentErrors::CouldntGetComponentExImpl,ManagementErrors::UnsupportedOperationExImpl);

/**
 * Send to the telescope the commands required to start scan.
+12 −2
Original line number Diff line number Diff line
@@ -55,6 +55,16 @@ void _latOTF(const Antenna::TCoordinateFrame& scanFrame,const double& span,const
		ManagementErrors::TelescopeSubScanErrorExImpl,ManagementErrors::TargetOrSubscanNotFeasibleExImpl,
		ManagementErrors::CloseTelescopeScanErrorExImpl);

/**
 * Starts a peaker operation, which is indeed maximizing the focusing or in general the position of the subreflector.
 * @param axis name of the axis to be maximized
 * @param span range to be traveled by the axis
 * @param duration total allotted time
 */
void _peaker(const char *axis,const double& span,const ACS::TimeInterval& duration) throw (
		ManagementErrors::TelescopeSubScanErrorExImpl,ManagementErrors::TargetOrSubscanNotFeasibleExImpl,
		ManagementErrors::CloseTelescopeScanErrorExImpl,ComponentErrors::ValidationErrorExImpl);

/**
 * Starts a skydip OnTheFly scan
 * @param el1 first elevation border of the scan
@@ -218,8 +228,8 @@ void _startRecording(const long& subScanId,const ACS::TimeInterval& duration) th
/**
 * Immediately stops the data recording
 */
void _stopRecording() throw (ComponentErrors::OperationErrorExImpl,ManagementErrors::BackendNotAvailableExImpl,ComponentErrors::CouldntGetComponentExImpl,
		ComponentErrors::UnexpectedExImpl);
/*void _stopRecording() throw (ComponentErrors::OperationErrorExImpl,ManagementErrors::BackendNotAvailableExImpl,ComponentErrors::CouldntGetComponentExImpl,
		ComponentErrors::UnexpectedExImpl);*/

/**
 * Performs the required operation to close the current scan, including the data acquisition
+18 −3
Original line number Diff line number Diff line
@@ -229,15 +229,16 @@ public:
			ComponentErrors::ComponentErrorsEx,ManagementErrors::ManagementErrorsEx);

	/**
	 * Performs a focus scan moving the subreflector or the receiver along the optical axis of the telescope. The operation consists of system temperature measurement (the telescope is sent
	 * Performs a peaker scan moving the subreflector or the receiver along an axis. The operation consists of system temperature measurement (the telescope is sent
	 * 3 times the current beam size off) and then a focus scan on the source. The default backend and the default data recorder are used as data source and destination respectively.
	 * @throw ComponentErrors::ComponentErrorsEx
	 * @throw ManagementErrors::ManagementErrorsEx
	 * @throw CORBA::SystemExcpetion
	 * @param span this is the overall length of the single scans (mm)
	 * @param axis name of the axis to scan
	 * @param span this is the overall length of the single scans (mm or arcsec according to the selected axis)
	 * @param duration this determine how long the scan has to take.
	 */
	virtual void focusScan(CORBA::Double span,ACS::TimeInterval duration) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ManagementErrors::ManagementErrorsEx);
	virtual void peakerScan(const char *axis,CORBA::Double span,ACS::TimeInterval duration) throw (CORBA::SystemException,ComponentErrors::ComponentErrorsEx,ManagementErrors::ManagementErrorsEx);
	
	/**
	 * This method performs a skydip with the antenna. The scan is done across the current azimuth between the two elevation limits. A system temperature measurement is
@@ -315,6 +316,20 @@ public:
	 */
	virtual void setRestFrequency(const ACS::doubleSeq& rest) throw (CORBA::SystemException);

	/**
	 * It allows to immediately start a scan that involves a primary focus axis or a subreflector axis. The scan is performed of the currently
	 * commanded source. If the axis involves a pointing offsets the telescope will try to correct it by moving the antenna by the adequate
	 * beam deviation factor.
	 * @param axis name of the axis to scan
	 * @param span total length of the scan
	 * @param duration time required by the scan to complete
 	 * @throw CORBA::SystemExcpetion
	 * @throw ComponentErrors::ComponentErrorsEx
	 * @throw ManagementErrors::ManagementErrorsEx
	 */
    virtual void peaker(const char *axis,CORBA::Double span,ACS::TimeInterval duration) throw (
			ComponentErrors::ComponentErrorsEx,ManagementErrors::ManagementErrorsEx,CORBA::SystemException);

	/**
	 * It allows to immediately start an OTF scan along the longitude axis of the given frame.
	 * A visible and observable source must be already commanded in order to take its equatorial J2000 coordinate as
Loading