diff --git a/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp b/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp index 931f2aed370a8df1687e3646e7c68966ac495655..2cfe052856dae47e93fd3edb8cc98eddc8010382 100644 --- a/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp +++ b/Common/Clients/AntennaBossTextClient/src/AntennaBossTextClient.cpp @@ -70,7 +70,8 @@ #define TEMPLATE_4_ROTSYSTEMSTATUS Management::ROTSystemStatus_ptr,ACS::Monitorpattern,ACS::Monitorpattern_var,_TW_CBpattern,ACS::CBpattern_var #define TEMPLATE_4_ROTREFERENCEFRAME Antenna::ROTReferenceFrame_ptr,ACS::Monitorpattern,ACS::Monitorpattern_var,_TW_CBpattern,ACS::CBpattern_var -#define TEMPLATE_4_ROTVRADDEFINITION Antenna::ROTVradDefinition_ptr,ACS::Monitorpattern,ACS::Monitorpattern_var,_TW_CBpattern,ACS::CBpattern_var +#define TEMPLATE_4_ROTVRADDEFINITION Antenna::ROTVradDefinition_ptr,ACS::Monitorpattern,ACS::Monitorpattern_var,_TW_CBpattern,ACS::CBpattern_var +#define TEMPLATE_4_ROTCOORDINATEFRAME Antenna::ROTCoordinateFrame_ptr,ACS::Monitorpattern,ACS::Monitorpattern_var,_TW_CBpattern,ACS::CBpattern_var using namespace TW; @@ -130,12 +131,18 @@ int main(int argc, char *argv[]) { TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *targetRA_field; TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *targetDec_field; TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *targetVrad_field; - TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *azOff_field; + /*TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *azOff_field; TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *elOff_field; TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *raOff_field; TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *decOff_field; TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *lonOff_field; - TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *latOff_field; + TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *latOff_field;*/ + + TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *scanLonOff_field; + TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *scanLatOff_field; + TW::CPropertyStatusBox<TEMPLATE_4_ROTCOORDINATEFRAME,Antenna::TCoordinateFrame> *scanFrameOff_box; + TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *sysAzOff_field; + TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *sysElOff_field; TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *rawAzimuth_field; TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *rawElevation_field; TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)> *observedAzimuth_field; @@ -259,12 +266,17 @@ int main(int argc, char *argv[]) { _GET_ACS_PROPERTY(ACS::ROdouble,targetVrad); _GET_ACS_PROPERTY(Antenna::ROTReferenceFrame,vradReferenceFrame); _GET_ACS_PROPERTY(Antenna::ROTVradDefinition,vradDefinition); - _GET_ACS_PROPERTY(ACS::ROdouble,azimuthOffset); + /*_GET_ACS_PROPERTY(ACS::ROdouble,azimuthOffset); _GET_ACS_PROPERTY(ACS::ROdouble,elevationOffset); _GET_ACS_PROPERTY(ACS::ROdouble,rightAscensionOffset); _GET_ACS_PROPERTY(ACS::ROdouble,declinationOffset); _GET_ACS_PROPERTY(ACS::ROdouble,longitudeOffset); - _GET_ACS_PROPERTY(ACS::ROdouble,latitudeOffset); + _GET_ACS_PROPERTY(ACS::ROdouble,latitudeOffset);*/ + _GET_ACS_PROPERTY(ACS::ROdouble,subScanLonOffset); + _GET_ACS_PROPERTY(ACS::ROdouble,subScanLatOffset); + _GET_ACS_PROPERTY(Antenna::ROTCoordinateFrame,subScanOffsetFrame); + _GET_ACS_PROPERTY(ACS::ROdouble,systemAzimuthOffset); + _GET_ACS_PROPERTY(ACS::ROdouble,systemElevationOffset); _GET_ACS_PROPERTY(ACS::ROdouble,rawAzimuth); _GET_ACS_PROPERTY(ACS::ROdouble,rawElevation); _GET_ACS_PROPERTY(ACS::ROdouble,observedAzimuth); @@ -291,12 +303,19 @@ int main(int argc, char *argv[]) { targetRA_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(targetRightAscension.in()); targetDec_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(targetDeclination.in()); targetVrad_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(targetVrad.in()); - azOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(azimuthOffset.in()); + /*azOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(azimuthOffset.in()); elOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(elevationOffset.in()); raOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(rightAscensionOffset.in()); decOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(declinationOffset.in()); lonOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(longitudeOffset.in()); - latOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(latitudeOffset.in()); + latOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(latitudeOffset.in());*/ + + scanLonOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(subScanLonOffset.in()); + scanLatOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(subScanLatOffset.in()); + scanFrameOff_box=new TW::CPropertyStatusBox<TEMPLATE_4_ROTCOORDINATEFRAME,Antenna::TCoordinateFrame>(subScanOffsetFrame.in(),Antenna::ANT_HORIZONTAL); + sysAzOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(systemAzimuthOffset.in()); + sysElOff_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(systemElevationOffset.in()); + rawAzimuth_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(rawAzimuth.in()); rawElevation_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(rawElevation.in()); observedAzimuth_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_RO(double)>(observedAzimuth.in()); @@ -338,18 +357,23 @@ int main(int argc, char *argv[]) { _TW_SET_COMPONENT(targetDec_field,37,1,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); _TW_SET_COMPONENT(targetFlux_field,52,1,11,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); _TW_SET_COMPONENT(target_field,0,1,17,1,CColorPair::GREEN_BLACK,CStyle::UNDERLINE,output_label); - _TW_SET_COMPONENT(targetVrad_field,22,2,11,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); - _TW_SET_COMPONENT(refFrame_box,34,2,12,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); _TW_SET_COMPONENT(velDef_box,47,2,12,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); - _TW_SET_COMPONENT(azOff_field,22,3,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); - _TW_SET_COMPONENT(elOff_field,37,3,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); - _TW_SET_COMPONENT(raOff_field,22,4,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + _TW_SET_COMPONENT(scanLonOff_field,22,3,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + _TW_SET_COMPONENT(scanLatOff_field,37,3,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + _TW_SET_COMPONENT(scanFrameOff_box,52,3,12,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + scanFrameOff_box->setStatusLook(Antenna::ANT_HORIZONTAL); + scanFrameOff_box->setStatusLook(Antenna::ANT_EQUATORIAL); + scanFrameOff_box->setStatusLook(Antenna::ANT_GALACTIC); + _TW_SET_COMPONENT(sysAzOff_field,22,5,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + _TW_SET_COMPONENT(sysElOff_field,37,5,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + + /*_TW_SET_COMPONENT(raOff_field,22,4,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); _TW_SET_COMPONENT(decOff_field,37,4,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); _TW_SET_COMPONENT(lonOff_field,22,5,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); - _TW_SET_COMPONENT(latOff_field,37,5,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); + _TW_SET_COMPONENT(latOff_field,37,5,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);*/ _TW_SET_COMPONENT(rawAzimuth_field,22,6,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); _TW_SET_COMPONENT(rawElevation_field,37,6,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); _TW_SET_COMPONENT(observedAzimuth_field,22,7,14,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label); @@ -386,12 +410,17 @@ int main(int argc, char *argv[]) { targetVrad_field->setFormatFunction(CFormatFunctions::floatingPointFormat,NULL); strcpy(fluxFormat,"(%05.1lf Jy)"); targetFlux_field->setFormatFunction(CFormatFunctions::floatingPointFormat,static_cast<void *>(fluxFormat)); - azOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); + /*azOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); elOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); raOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); //format as hh.mm.ss.ss decOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); lonOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); - latOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); + latOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL);*/ + + scanLonOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); //format as hh.mm.ss.ss + scanLatOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); + sysAzOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); + sysElOff_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); observedGalLongitude_field->setFormatFunction(CFormatFunctions::angleFormat,NULL); observedGalLatitude_field->setFormatFunction(CFormatFunctions::angleFormat,NULL); pointingAzimuthCorrection_field->setFormatFunction(CFormatFunctions::coordinateFormat,NULL); @@ -450,12 +479,20 @@ int main(int argc, char *argv[]) { _INSTALL_MONITOR(refFrame_box,2000); _INSTALL_MONITOR(velDef_box,2000); _INSTALL_MONITOR(targetFlux_field,2000); - _INSTALL_MONITOR(azOff_field,500); + /*_INSTALL_MONITOR(azOff_field,500); _INSTALL_MONITOR(elOff_field,500); _INSTALL_MONITOR(raOff_field,500); _INSTALL_MONITOR(decOff_field,500); _INSTALL_MONITOR(lonOff_field,500); - _INSTALL_MONITOR(latOff_field,500); + _INSTALL_MONITOR(latOff_field,500);*/ + + _INSTALL_MONITOR(scanLonOff_field,500); + _INSTALL_MONITOR(scanLatOff_field,500); + _INSTALL_MONITOR(scanFrameOff_box,500); + _INSTALL_MONITOR(sysAzOff_field,500); + _INSTALL_MONITOR(sysElOff_field,500); + + _INSTALL_MONITOR(rawAzimuth_field,300); _INSTALL_MONITOR(rawElevation_field,300); _INSTALL_MONITOR(observedAzimuth_field,300); diff --git a/Common/Interfaces/AntennaInterface/idl/AntennaBoss.midl b/Common/Interfaces/AntennaInterface/idl/AntennaBoss.midl index b2f0dad0c9514fd8e6190338b2b4a5074cba9d21..f8a697661d7bac45a1a2e2d246217be674f26bc9 100644 --- a/Common/Interfaces/AntennaInterface/idl/AntennaBoss.midl +++ b/Common/Interfaces/AntennaInterface/idl/AntennaBoss.midl @@ -684,14 +684,13 @@ module Antenna { /** * This method should only be used internally to know the user offsets currently commanded * @throw CORBA::SystemExcpetion - * @param azOff user offset for the azimuth (radians) - * @param elOff user offset for the elevation (radians) - * @param raOff user offset for the right ascension (radians) - * @param decOff user offset for the declination (radians) - * @param lonOff user offset for the longitude (radians) - * @param latOff user offset for the latitude (radians) - */ - void getAllOffsets(out double azOff,out double elOff,out double raOff,out double decOff,out double lonOff,out double latOff); + * @param sysAzOff system offset for the azimuth (radians) + * @param sysElOff system offset for the elevation (radians) + * @param lonOff current offset along longitude (radians) + * @param lonOff current offset along latitude (radians) + * @param frame current offset frame + */ + void getAllOffsets(out double sysAzOff,out double sysElOff,out double lonOff,out double latOff,out TCoordinateFrame offFrame); /** * This method is used internally to know the scan axis/direction os the presently commanded scan diff --git a/Common/Servers/AntennaBoss/include/AntennaBossImpl.h b/Common/Servers/AntennaBoss/include/AntennaBossImpl.h index 02bbbaf6e02a1afee34a3a0f00ae53605092b699..13a2a774459617b3120f38c7552671583bce0823 100644 --- a/Common/Servers/AntennaBoss/include/AntennaBossImpl.h +++ b/Common/Servers/AntennaBoss/include/AntennaBossImpl.h @@ -52,6 +52,8 @@ using namespace baci; _SP_WILDCARD_CLASS(ReferenceFrame_WildCard,"UNDEF"); _SP_WILDCARD_CLASS(VradDefinition_WildCard,"UNDEF"); _SP_WILDCARD_CLASS(VRad_WildCard,"nan"); +_SP_WILDCARD_CLASS(Offset_WildCard,"nan"); + class ReferenceFrame_converter { @@ -655,14 +657,14 @@ public: /** * It is used internally to returns the user offsets in all supported frames * @throw CORBA::SystemException - * @param raOff the returned offset azimuth in radians - * @param elOff the returned offset elevation in radians - * @param raOff the returned offset right ascension in radians - * @param decOff the returned offset declination in radians - * @param lonOff the returned offset longitude in radians - * @param latOff the returned offset latitude in radians - */ - void getAllOffsets(CORBA::Double_out azOff,CORBA::Double_out elOff,CORBA::Double_out raOff,CORBA::Double_out decOff,CORBA::Double_out lonOff,CORBA::Double_out latOff) throw (CORBA::SystemException); + * @param sysAzOff current azimuth system offset in radians + * @param sysEllOff current elevation system offset in radians + * @param lonOff current longitude frame in radians + * @param latOff current latitude offset in radians + * @param offFrame current offset frame + */ + virtual void getAllOffsets(CORBA::Double_out sysAzOff,CORBA::Double_out sysElOff,CORBA::Double_out lonOff,CORBA::Double_out latOff, + Antenna::TCoordinateFrame_out offFrame) throw (CORBA::SystemException); /** * It can be called to know which is the axis the antenna is currently performing the scan diff --git a/Common/Servers/AntennaBoss/include/BossCore.h b/Common/Servers/AntennaBoss/include/BossCore.h index bfb14da556c92e16e5ad92eaa5fe690532a31850..446d53042778a839f55b19a9fbe85fdbe41d3ff5 100644 --- a/Common/Servers/AntennaBoss/include/BossCore.h +++ b/Common/Servers/AntennaBoss/include/BossCore.h @@ -201,7 +201,15 @@ public: * @throw ComponentErrors::CORBAProblemExImpl * @thorw ComponentErrors::OperationErrorExImpl */ - void setOffsets(const double& lonOff,const double& latOff,const Antenna::TCoordinateFrame& frame) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl); + void setOffsets(const Antenna::TCoordinateFrame& frame,const double& lonOff,const double& latOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl); + + /** + * This sets new system offsets + * @param azOff new azimuth offset in radians + * @param elOff new elevation offset in radians + */ + void setSystemOffsets(const double& lonOff,const double& latOff); + /** * Sets the <i>m_enable</i> flag to false, i.e. the component will not send command to the mount any more. To enable the component again a call @@ -318,9 +326,9 @@ public: const double& getTargetRightAscension() const { return m_targetRA; } /** - * Get all the user offset (refferred to all supported frames) with a single call. + * Get all the offsets with a single call. */ - void getAllOffsets(double& azOff,double& elOff,double& raOff,double& decOff,double& lonOff,double& latOff) const; + void getAllOffsets(double& sysAzOff,double& sysElOff,double& lonOff,double& latOff,Antenna::TCoordinateFrame& offFrame) const; /** * @return the J2000 right ascension of the target @@ -572,21 +580,21 @@ public: * @param azOff azimuth offset (rad) * @param elOff elevation offset (rad) */ - void setHorizontalOffsets(const double& azOff,const double& elOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl); + //void setHorizontalOffsets(const double& azOff,const double& elOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl); /** * This is a wrapper function for the <i>setOffsets()</i> function when the equatorial frame is implicit. * @param raOff right ascension offset (rad) * @param decOff declination offset (rad) */ - void setEquatorialOffsets(const double& raOff,const double& decOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl); + //void setEquatorialOffsets(const double& raOff,const double& decOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl); /** * This is a wrapper function for the <i>setOffsets()</i> function when the galactic frame is implicit. * @param lonOff galactic longitude offset (rad) * @param latOff galactic latitude offset (rad) */ - void setGalacticOffsets(const double& lonOff,const double& latOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl); + //void setGalacticOffsets(const double& lonOff,const double& latOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl); /** * @return can be called to retrieve the axis of the current scan diff --git a/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp b/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp index 20b70c47df69e9328f4078cf891cd5dd228b0319..1cac781c4f826cc95ad44382a4f40eff845bd7df 100644 --- a/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp +++ b/Common/Servers/AntennaBoss/src/AntennaBossImpl.cpp @@ -198,15 +198,23 @@ void AntennaBossImpl::initialize() throw (ACSErr::ACSbaseExImpl) 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("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("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); + + m_parser->add("setOffsets",new function3<CBossCore,non_constant,void_type,I<enum_type<AntennaFrame2String,Antenna::TCoordinateFrame > >, + I<angleOffset_type<rad,Offset_WildCard> >,I<angleOffset_type<rad,Offset_WildCard> > >(boss,&CBossCore::setOffsets),3); + + m_parser->add("setSysOffsets",new function2<CBossCore,non_constant,void_type,I<angleOffset_type<rad,Offset_WildCard> >,I<angleOffset_type<rad,Offset_WildCard> > > + (boss,&CBossCore::setSystemOffsets),2); + + ACS_LOG(LM_FULL_INFO,"AntennaBossImpl::initialize()",(LM_INFO,"COMPSTATE_INITIALIZED")); } @@ -329,7 +337,7 @@ void AntennaBossImpl::setSubScanOffsets(Antenna::TCoordinateFrame frame,CORBA::D AUTO_TRACE("AntennaBossImpl::setSubScanOffsets()"); CSecAreaResourceWrapper<CBossCore> resource=m_core->Get(); try { - resource->setOffsets(lonOff,latOff,frame); + resource->setOffsets(frame,lonOff,latOff); } catch (AntennaErrors::AntennaErrorsExImpl& ex) { ex.log(LM_DEBUG); @@ -346,7 +354,7 @@ void AntennaBossImpl::setSystemOffsets(CORBA::Double az,CORBA::Double el) throw AUTO_TRACE("AntennaBossImpl::setSystemOffset()"); CSecAreaResourceWrapper<CBossCore> resource=m_core->Get(); try { - //resource->setOffsets(lonOff,latOff,frame); + resource->setSystemOffsets(az,el); } catch (AntennaErrors::AntennaErrorsExImpl& ex) { ex.log(LM_DEBUG); @@ -639,17 +647,19 @@ void AntennaBossImpl::getObservedHorizontal(ACS::Time time,ACS::TimeInterval dur el=(CORBA::Double)El; } -void AntennaBossImpl::getAllOffsets(CORBA::Double_out azOff,CORBA::Double_out elOff,CORBA::Double_out raOff,CORBA::Double_out decOff,CORBA::Double_out lonOff,CORBA::Double_out latOff) throw ( - CORBA::SystemException) +void AntennaBossImpl::getAllOffsets(CORBA::Double_out sysAzOff,CORBA::Double_out sysElOff,CORBA::Double_out lonOff,CORBA::Double_out latOff, + Antenna::TCoordinateFrame_out offFrame) throw (CORBA::SystemException) + { - double az,el,ra,dec,lon,lat; + double az,el,lon,lat; + offFrame=Antenna::ANT_HORIZONTAL; if (!m_core) { - azOff=elOff=raOff=decOff=lonOff=latOff=0.0; + az=el=lon=lat=0.0; return; } CSecAreaResourceWrapper<CBossCore> resource=m_core->Get("IMPL:getAllOffsets"); - resource->getAllOffsets(az,el,ra,dec,lon,lat); - azOff=(CORBA::Double)az; elOff=(CORBA::Double)el; raOff=(CORBA::Double)ra; decOff=(CORBA::Double)dec; lonOff=(CORBA::Double)lon; latOff=(CORBA::Double)lat; + resource->getAllOffsets(az,el,lon,lat,offFrame); + sysAzOff=(CORBA::Double)az; sysElOff=(CORBA::Double)el; lonOff=(CORBA::Double)lon; latOff=(CORBA::Double)lat; } void AntennaBossImpl::getScanAxis (Management::TScanAxis_out axis) throw (CORBA::SystemException) diff --git a/Common/Servers/AntennaBoss/src/BossCore.cpp b/Common/Servers/AntennaBoss/src/BossCore.cpp index 9134c0cbb7151b91ad0c4b8cc21626c1f4741976..a4a998bdadf5bc7f83d5d6eaffeea42587565f54 100644 --- a/Common/Servers/AntennaBoss/src/BossCore.cpp +++ b/Common/Servers/AntennaBoss/src/BossCore.cpp @@ -611,17 +611,23 @@ void CBossCore::getTopocentricFrequency(const ACS::doubleSeq& rest,ACS::doubleSe } } -void CBossCore::setOffsets(const double& lonOff,const double& latOff,const Antenna::TCoordinateFrame& frame) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl) +void CBossCore::setSystemOffsets(const double& azOff,const double& elOff) +{ + m_offsets.setSystemOffset(azOff,elOff); + CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setSystemOffsets()",(LM_NOTICE,"System offsets: az=%lf (rad), el=%lf (rad)",azOff,elOff)); +} + +void CBossCore::setOffsets(const Antenna::TCoordinateFrame& frame,const double& lonOff,const double& latOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl) { m_offsets.setScanOffset(lonOff,latOff,frame); if (frame==Antenna::ANT_HORIZONTAL) { - CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New horizontal user offsets %lf rad, %lf rad",lonOff,latOff)); + CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New horizontal offsets: az=%lf (rad), el=%lf (rad)",lonOff,latOff)); } else if (frame==Antenna::ANT_EQUATORIAL) { - CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New equatorial user offsets %lf rad, %lf rad",lonOff,latOff)); + CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New equatorial offsets: ra=%lf (rad), dec=%lf (rad)",lonOff,latOff)); } else if (frame==Antenna::ANT_GALACTIC) { - CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New galactic user offsets %lfrad, %lf rad",lonOff,latOff)); + CUSTOM_LOG(LM_FULL_INFO,"CBossCore::setOffsets()",(LM_NOTICE,"New galactic offsets: lon=%lf (rad), lat=%lf (rad)",lonOff,latOff)); } if ((!CORBA::is_nil(m_generator)) && (m_generatorType!=Antenna::ANT_NONE)) { try { @@ -651,35 +657,24 @@ void CBossCore::setOffsets(const double& lonOff,const double& latOff,const Anten addOffsets(m_longitudeOffset,m_latitudeOffset,m_offsetFrame,m_userOffset,m_scanOffset);*/ } -void CBossCore::getAllOffsets(double& azOff,double& elOff,double& raOff,double& decOff,double& lonOff,double& latOff) const +void CBossCore::getAllOffsets(double& sysAzOff,double& sysElOff,double& lonOff,double& latOff,Antenna::TCoordinateFrame& offFrame) const { - /*****************************************************************************************************************************************/ - /** TO BE FIXED */ - /*****************************************************************************************************************************************/ - /*if (m_offsetFrame==Antenna::ANT_HORIZONTAL) { - azOff=m_longitudeOffset; - elOff=m_latitudeOffset; - raOff=0.0; - decOff=0.0; - lonOff=0.0; - latOff=0.0; - } - else if (m_offsetFrame==Antenna::ANT_EQUATORIAL) { - azOff=0.0; - elOff=0.0; - raOff=m_longitudeOffset; - decOff=m_latitudeOffset; - lonOff=0.0; - latOff=0.0; - } - else if (m_offsetFrame==Antenna::ANT_GALACTIC) { - azOff=0.0; - elOff=0.0; - raOff=0.0; - decOff=0.0; - lonOff=m_longitudeOffset; - latOff=m_latitudeOffset; - }*/ + TOffset off; + if (m_offsets.isSystemSet()) { + sysAzOff=m_offsets.getSystemAzimuth(); + sysElOff=m_offsets.getSystemElevation(); + } + else { + sysAzOff=sysElOff=0.0; + } + if (m_offsets.isScanSet()) { + off=m_offsets.getScanOffset(); + lonOff=off.lon; latOff=off.lat; offFrame=off.frame; + } + else { + lonOff=latOff=0.0; + offFrame=Antenna::ANT_HORIZONTAL; + } } void CBossCore::stop() throw (ComponentErrors::UnexpectedExImpl,ComponentErrors::CouldntCallOperationExImpl, @@ -1156,7 +1151,7 @@ void CBossCore::publishData() throw (ComponentErrors::NotificationChannelErrorEx } } -void CBossCore::setHorizontalOffsets(const double& azOff,const double& elOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl) +/*void CBossCore::setHorizontalOffsets(const double& azOff,const double& elOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl) { setOffsets(azOff,elOff,Antenna::ANT_HORIZONTAL); // could throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl) } @@ -1169,7 +1164,7 @@ void CBossCore::setEquatorialOffsets(const double& raOff,const double& decOff) t void CBossCore::setGalacticOffsets(const double& lonOff,const double& latOff) throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl) { setOffsets(lonOff,latOff,Antenna::ANT_GALACTIC); // could throw(ComponentErrors::UnexpectedExImpl,ComponentErrors::CORBAProblemExImpl,ComponentErrors::OperationErrorExImpl) -} +}*/ #include "BossCore_startScan.i" diff --git a/Common/Servers/AntennaBoss/src/BossCore_startScan.i b/Common/Servers/AntennaBoss/src/BossCore_startScan.i index 5dbe5f980fa8d94959ef9787faf3db1b47c718b6..e3a7ffd5bc861e1387f8286b6c90405e6b206f05 100644 --- a/Common/Servers/AntennaBoss/src/BossCore_startScan.i +++ b/Common/Servers/AntennaBoss/src/BossCore_startScan.i @@ -18,7 +18,7 @@ void CBossCore::startScan(ACS::Time& startUt,const Antenna::TTrackingParameters& //make sure that scan offset are reset /*m_scanOffset=TOffset(0.0,0.0,m_userOffset.frame); addOffsets(m_longitudeOffset,m_latitudeOffset,m_offsetFrame,m_userOffset,m_scanOffset);*/ - m_offsets.resetScan(); + //m_offsets.resetScan(); try { m_generatorType=Antenna::ANT_NONE; m_generator=Antenna::EphemGenerator::_nil(); // it also releases the previous reference. diff --git a/Common/Servers/AntennaBoss/src/Makefile b/Common/Servers/AntennaBoss/src/Makefile index 32cf39b6274bfb514d0724169278add06f424d48..e4b335391f9e22a6fbd0d8daac99e880e444fac2 100644 --- a/Common/Servers/AntennaBoss/src/Makefile +++ b/Common/Servers/AntennaBoss/src/Makefile @@ -41,10 +41,10 @@ EXECUTABLES = coordinateGrabber EXECUTABLES_L = slewTimeCheck coordinateGrabber_OBJECTS = coordinateGrabber -coordinateGrabber_LIBS = AntennaDefinitionsStubs AntennaBossStubs EphemGeneratorStubs \ - ObservatoryStubs ManagmentDefinitionsStubs \ - IRALibrary ComponentErrors ClientErrors AntennaErrors ManagementErrors\ - baci maci maciClient acserr loki ACSErrTypeCommon +coordinateGrabber_LIBS = AntennaDefinitionsStubs AntennaBossStubs MountStubs ObservatoryStubs \ + EphemGeneratorStubs ManagmentDefinitionsStubs IRALibrary ComponentErrors ManagementErrors ClientErrors\ + AntennaErrors ParserErrors PointingModelStubs RefractionStubs SkySourceStubs OTFStubs MoonStubs acsnc \ + baci maci maciClient acserr loki ACSErrTypeCommon slewTimeCheck_OBJECTS = TestClient SlewCheck slewTimeCheck_LIBS = IRALibrary diff --git a/Common/Servers/CalibrationTool/include/EngineThread.h b/Common/Servers/CalibrationTool/include/EngineThread.h index 71b818265211b2c302add733297c2a5336943cb2..9264f67dc059ff3f733ebb3943aef58077948085 100644 --- a/Common/Servers/CalibrationTool/include/EngineThread.h +++ b/Common/Servers/CalibrationTool/include/EngineThread.h @@ -135,9 +135,12 @@ private: float m_reducedCHI; integer m_ierr; double m_cosLat; - double m_raUserOff, m_decUserOff; + /*double m_raUserOff, m_decUserOff; double m_azUserOff, m_elUserOff; - double m_lonUserOff, m_latUserOff; + double m_lonUserOff, m_latUserOff;*/ + Antenna::TCoordinateFrame m_scanOffsetFrame; + double m_scanLonOff,m_scanLatOff; + double m_sysAzOff,m_sysElOff; double m_focusOffset; int m_latResult, m_lonResult; int m_focusResult; diff --git a/Common/Servers/CalibrationTool/src/EngineThread.cpp b/Common/Servers/CalibrationTool/src/EngineThread.cpp index 4cd2c0f97590a735384295af11b813ba4d2e8677..f4794b803f153442d3eecf644de0a348605a51e0 100644 --- a/Common/Servers/CalibrationTool/src/EngineThread.cpp +++ b/Common/Servers/CalibrationTool/src/EngineThread.cpp @@ -874,7 +874,8 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_file << (const char *) out; m_file << m_errPar[1] * DR2D << " " << m_errPar[2] * DR2D<< " " << m_errPar[0] << " " << m_errPar[3] << " " << m_errPar[4] << " " << m_reducedCHI << std::endl; } - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "LATFIT %lf %lf %lf %lf %lf %d",m_Par[1] * DR2D, m_Par[2] * DR2D, m_Par[0] , m_Par[3], m_Par[4], m_ierr)); + ACS_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()",(LM_NOTICE,"Gauss fitting parameters(lat): peak=%lf (deg), fwhm=%lf (deg), amp=%lf, offset=%lf, slope=%lf, iter=%d", + m_Par[1]*DR2D,m_Par[2]*DR2D, m_Par[0],m_Par[3],m_Par[4],m_ierr)); m_latResult=0; offMin=GETMIN(m_off[0],m_off[m_dataSeqCounter-1]); offMax=GETMAX(m_off[0],m_off[m_dataSeqCounter-1]); @@ -886,19 +887,19 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_latResult = 1; } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_FWHM_IN_LATFIT")); + CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()",(LM_NOTICE,"FWHM outside valid ranges")); } } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_OFFSET_IN_LATFIT")); + CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Peak offset outside valid ranges")); } } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "LATFIT_DID_NOT_CONVERGE")); + CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"fitting did not converge")); } } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "ERROR_DETECTED_DURING_LAT_SCAN")); + CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Error detected during latitude scan")); } m_data->setAmplitude (m_Par[0]); m_data->setPeakOffset (m_Par[1]); @@ -947,7 +948,8 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_file << (const char *) out; m_file << m_errPar[1] * DR2D << " " << m_errPar[2] * DR2D << " " << m_errPar[0] << " " << m_errPar[3] << " " << m_errPar[4] << " " << m_reducedCHI << std::endl; } - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "LONFIT %lf %lf %lf %lf %lf %d",m_Par[1] * DR2D, m_Par[2] * DR2D, m_Par[0] , m_Par[3], m_Par[4], m_ierr)); + ACS_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()",(LM_NOTICE,"Gauss fitting parameters(lon): peak=%lf (deg), fwhm=%lf (deg), amp=%lf, offset=%lf, slope=%lf, iter=%d", + m_Par[1] * DR2D, m_Par[2] * DR2D, m_Par[0] , m_Par[3], m_Par[4], m_ierr)); m_lonResult=0; offMin=GETMIN(m_off[0],m_off[m_dataSeqCounter-1]); offMax=GETMAX(m_off[0],m_off[m_dataSeqCounter-1]); @@ -959,19 +961,19 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_lonResult = 1; } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_FWHM_IN_LONFIT")); + CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"FWHM outside valid ranges")); } } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_OFFSET_IN_LONFIT")); + CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Peak offset outside valid ranges")); } } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "LONFIT_DID_NOT_CONVERGE")); + CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "Fitting did not converge")); } } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "ERROR_DETECTED_DURING_LON_SCAN")); + CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Error detected during longitude scan")); } m_data->setAmplitude (m_Par[0]); m_data->setPeakOffset (m_Par[1]); @@ -997,8 +999,6 @@ void CEngineThread::gaussFit(const ACS::Time& now) //m_cosLat=cos(tempLat); //m_Par[2] = m_fwhm / m_cosLat; m_Par[2] = m_lambda*1000; - - fit2_ (m_off, m_ptsys2, m_secsFromMidnight, m_Par, m_errPar, (integer *)&m_dataSeqCounter, &par, &tol, &ftry, (E_fp) fgaus_, &m_reducedCHI, &m_ierr); //m_Par[2] *=m_cosLat; //m_errPar[2] *=m_cosLat; @@ -1018,7 +1018,10 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_file << (const char *) out; m_file << m_errPar[1] << " " << m_errPar[2] << " " << m_errPar[0] << " " << m_errPar[3] << " " << m_errPar[4] << " " << m_reducedCHI << std::endl; } - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT zP %lf %lf %lf %lf %lf %d",m_Par[1], m_Par[2], m_Par[0] , m_Par[3], m_Par[4], m_ierr)); + ACS_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()",(LM_NOTICE,"Gauss fitting parameters(zP): peak=%lf, fwhm=%lf, amp=%lf, offset=%lf, slope=%lf, iter=%d", + m_Par[1],m_Par[2],m_Par[0],m_Par[3],m_Par[4],m_ierr)); + + //ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT zP %lf %lf %lf %lf %lf %d",m_Par[1], m_Par[2], m_Par[0] , m_Par[3], m_Par[4], m_ierr)); m_focusResult=0; offMin=GETMIN(m_off[0],m_off[m_dataSeqCounter-1]); offMax=GETMAX(m_off[0],m_off[m_dataSeqCounter-1]); @@ -1029,15 +1032,15 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_focusResult=1; } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_IN_FOCUS_FIT")); + CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::gaussFit()",(LM_NOTICE,"Peak offset ouside valid ranges")); } } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT_DID_NOT_CONVERGE")); + CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::gaussFit()",(LM_NOTICE,"Fitting did not converge")); } } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "ERROR_DETECTED_DURING_FOCUS_SCAN")); + CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::gaussFit()",(LM_NOTICE,"Error detected during focus scan")); } m_focusOffset=m_Par[1]; m_data->setAmplitude (m_Par[0]); @@ -1083,7 +1086,9 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_file << (const char *) out; m_file << m_errPar[1] << " " << m_errPar[2] << " " << m_errPar[0] << " " << m_errPar[3] << " " << m_errPar[4] << " " << m_reducedCHI << std::endl; } - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT zS %lf %lf %lf %lf %lf %d",m_Par[1], m_Par[2], m_Par[0] , m_Par[3], m_Par[4], m_ierr)); + ACS_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()",(LM_NOTICE,"Gauss fitting parameters(zS): peak=%lf, fwhm=%lf, amp=%lf, offset=%lf, slope=%lf, iter=%d", + m_Par[1],m_Par[2],m_Par[0],m_Par[3],m_Par[4],m_ierr)); + //ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT zS %lf %lf %lf %lf %lf %d",m_Par[1], m_Par[2], m_Par[0] , m_Par[3], m_Par[4], m_ierr)); m_focusResult=0; offMin=GETMIN(m_off[0],m_off[m_dataSeqCounter-1]); offMax=GETMAX(m_off[0],m_off[m_dataSeqCounter-1]); @@ -1094,15 +1099,15 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_focusResult=1; } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "INVALID_IN_FOCUS_FIT")); + CUSTOM_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Peak offset ouside valid ranges")); } } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "FOCUSFIT_DID_NOT_CONVERGE")); + CUSTOM_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Fitting did not converge")); } } else { - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "ERROR_DETECTED_DURING_FOCUS_SCAN")); + CUSTOM_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE,"Error detected during focus scan")); } m_focusOffset=m_Par[1]; m_data->setAmplitude (m_Par[0]); @@ -1120,6 +1125,7 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_data->setFocusDone(); } // m_CoordIndex == 3 if (m_data->isPointingScan()) { + IRA::CString latOk,lonOk; if (m_data->isPointingScanDone()) { if (m_fileOpened) { // offset m_LonPos, m_LatPos, m_lonOff, m_latOff, m_lonResult, m_latResult @@ -1138,16 +1144,20 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_file << m_LonPos * DR2D << " " << m_LatPos * DR2D << " " << m_lonAmp << " " << m_lonAmpErr << " " << m_latAmp << " " << m_latAmpErr << " " << m_lonFwhm * DR2D << " " << m_lonFwhmErr * DR2D << " " \ << m_latFwhm * DR2D << " " << m_latFwhmErr * DR2D << " " << m_lonTsys << " " << m_latTsys << " " << m_data->getSourceFlux() << " " << m_lonResult << " " << m_latResult << std::endl; } - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "OFFSETS = %lf %lf %lf %lf %d %d", - m_LonPos * DR2D, m_LatPos * DR2D, m_LonOff * DR2D, m_LatOff * DR2D, m_lonResult, m_latResult)); - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "XOFFSETS = %lf %lf %lf %lf %lf %lf %d %d", - m_LonPos * DR2D, m_LatPos * DR2D, m_cosLat * m_LonOff * DR2D, m_LatOff * DR2D, m_cosLat * m_LonErr * DR2D, m_LatErr * DR2D, m_lonResult, m_latResult)); - - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "XGAIN =%s %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %d %d",(const char *)m_data->getSourceName(), + if (m_lonResult) lonOk="ok"; + else lonOk="nok"; + if (m_latResult) latOk="ok"; + else latOk="nok"; + CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "Measured positions: lon=%lf (deg), lat=%lf (rad), lonOff=%lf (deg), latOff=%lf (deg), lonRes=%s, latRes=%s", + m_LonPos * DR2D, m_LatPos * DR2D, m_LonOff * DR2D, m_LatOff * DR2D,(const char *) lonOk,(const char *) latOk)); + CUSTOM_LOG(LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "Measured poistions errors: lon=%lf, lat=%lf, lonOff=%lf, latOff=%lf", + m_LonPos * DR2D, m_LatPos * DR2D, m_cosLat * m_LonOff * DR2D, m_LatOff * DR2D, m_cosLat * m_LonErr * DR2D, m_LatErr * DR2D)); + ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "XGain: %s %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %d %d",(const char *)m_data->getSourceName(), m_LonPos * DR2D, m_LatPos * DR2D, m_lonAmp, m_lonAmpErr, m_latAmp, m_latAmpErr, m_lonFwhm * DR2D, m_lonFwhmErr * DR2D, m_latFwhm * DR2D, m_latFwhmErr * DR2D, m_lonTsys, m_latTsys, m_data->getSourceFlux(), m_lonResult, m_latResult)); } } else if (m_data->isFocusScan()) { + IRA::CString result; if (m_data->isFocusScanDone()) { if (m_fileOpened) { tS.value (now); @@ -1160,7 +1170,10 @@ void CEngineThread::gaussFit(const ACS::Time& now) m_file << (const char *) out; m_file << m_Par[1] << " " << m_focusScanCenter << " " << m_focusScanCenter+m_Par[1] << m_focusResult << std::endl; } - ACS_LOG (LM_FULL_INFO, "CEngineThread::gaussFit()", (LM_NOTICE, "OFFSETS = %lf %lf %lf %lf %d",m_LatPos * DR2D, m_Par[1], m_focusScanCenter, m_focusScanCenter+m_Par[1], m_focusResult)); + if (m_focusResult) result="ok"; + else result="nok"; + CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::gaussFit()",(LM_NOTICE,"Measured positions: lat=%lf (deg), offset=%lf, focus=%lf, newfocus=%lf res=%s",m_LatPos*DR2D,m_Par[1], + m_focusScanCenter,m_focusScanCenter+m_Par[1],(const char *)result)); } } } @@ -1177,15 +1190,18 @@ void CEngineThread::setAxisOffsets() m_antennaBoss=Antenna::AntennaBoss::_nil(); return; } - switch (m_data->getScanAxis ()) { + switch (m_data->getScanAxis()) { case Management::MNG_NO_AXIS: break; case Management::MNG_HOR_LON: try { if (!CORBA::is_nil(m_antennaBoss)) { if ((m_data->isLonDone()) && (m_lonResult)) { - m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff); - m_antennaBoss->setOffsets (m_cosLat * m_LonOff , m_elUserOff, Antenna::ANT_HORIZONTAL); + //m_antennaBoss->getAllOffsets(m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff); + m_antennaBoss->getAllOffsets(m_sysAzOff,m_sysElOff,m_scanLonOff,m_scanLatOff,m_scanOffsetFrame); + m_antennaBoss->setSystemOffsets(m_cosLat*m_LonOff,m_sysElOff); + CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::setAxisOffsets()",(LM_NOTICE,"New system longitude offset in use: lonOff=%lf (rad)",m_cosLat*m_LonOff)); + //m_antennaBoss->setOffsets (m_cosLat * m_LonOff , m_elUserOff, Antenna::ANT_HORIZONTAL); } } } @@ -1216,8 +1232,11 @@ void CEngineThread::setAxisOffsets() try { if (!CORBA::is_nil(m_antennaBoss)) { if ((m_data->isLatDone()) && (m_latResult)) { - m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff); - m_antennaBoss->setOffsets (m_azUserOff, /*m_elUserOff + */m_LatOff, Antenna::ANT_HORIZONTAL); + m_antennaBoss->getAllOffsets(m_sysAzOff,m_sysElOff,m_scanLonOff,m_scanLatOff,m_scanOffsetFrame); + m_antennaBoss->setSystemOffsets(m_sysAzOff,m_LatOff); + CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::setAxisOffsets()",(LM_NOTICE,"New system latitude offset in use: latOff=%lf (rad)",m_LatOff)); + //m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff); + //m_antennaBoss->setOffsets (m_azUserOff,m_LatOff, Antenna::ANT_HORIZONTAL); } } } @@ -1245,7 +1264,7 @@ void CEngineThread::setAxisOffsets() } break; case Management::MNG_EQ_LON: - try { + /*try { if (!CORBA::is_nil(m_antennaBoss)) { if ((m_data->isLonDone()) && (m_lonResult)) { m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff); @@ -1274,14 +1293,14 @@ void CEngineThread::setAxisOffsets() impl.setComponentName((const char *)m_config->getAntennaBossComponent()); impl.log(LM_ERROR); m_data->setStatus(Management::MNG_WARNING); - } + }*/ break; case Management::MNG_EQ_LAT: - try { + /*try { if (!CORBA::is_nil(m_antennaBoss)) { if ((m_data->isLatDone()) && (m_latResult)) { m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff); - m_antennaBoss->setOffsets (m_raUserOff, /*m_decUserOff + */m_LatOff , Antenna::ANT_EQUATORIAL); + m_antennaBoss->setOffsets (m_raUserOff,m_LatOff , Antenna::ANT_EQUATORIAL); } } } @@ -1306,10 +1325,10 @@ void CEngineThread::setAxisOffsets() impl.setComponentName((const char *)m_config->getAntennaBossComponent()); impl.log(LM_ERROR); m_data->setStatus(Management::MNG_WARNING); - } + }*/ break; case Management::MNG_GAL_LON: - try { + /*try { if (!CORBA::is_nil(m_antennaBoss)) { if ((m_data->isLonDone()) && (m_lonResult)) { m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff); @@ -1338,14 +1357,14 @@ void CEngineThread::setAxisOffsets() impl.setComponentName((const char *)m_config->getAntennaBossComponent()); impl.log(LM_ERROR); m_data->setStatus(Management::MNG_WARNING); - } + }*/ break; case Management::MNG_GAL_LAT: - try { + /*try { if (!CORBA::is_nil(m_antennaBoss)) { if ((m_data->isLatDone()) && (m_latResult)) { m_antennaBoss->getAllOffsets (m_azUserOff, m_elUserOff, m_raUserOff, m_decUserOff, m_lonUserOff, m_latUserOff); - m_antennaBoss->setOffsets (m_lonUserOff, /*m_latUserOff + */m_LatOff, Antenna::ANT_GALACTIC); + m_antennaBoss->setOffsets (m_lonUserOff,m_LatOff, Antenna::ANT_GALACTIC); } } } @@ -1370,7 +1389,7 @@ void CEngineThread::setAxisOffsets() impl.setComponentName((const char *)m_config->getAntennaBossComponent()); impl.log(LM_ERROR); m_data->setStatus(Management::MNG_WARNING); - } + }*/ break; case Management::MNG_SUBR_Z: try { @@ -1386,6 +1405,7 @@ void CEngineThread::setAxisOffsets() oldOffset=0.0; } m_minorServoBoss->setUserOffset((const char*)m_data->getMinorServoNameForAxis(),m_focusOffset+oldOffset); + CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::setAxisOffsets()",(LM_NOTICE,"New focus offset in use: offset=%lf (rad)",m_focusOffset+oldOffset)); } } } @@ -1430,6 +1450,7 @@ void CEngineThread::setAxisOffsets() oldOffset=0.0; } m_minorServoBoss->setUserOffset((const char*)m_data->getMinorServoNameForAxis(),m_focusOffset+oldOffset); + CUSTOM_LOG(LM_FULL_INFO,"CEngineThread::setAxisOffsets()",(LM_NOTICE,"New focus offset in use: offset=%lf (rad)",m_focusOffset+oldOffset)); } } } @@ -1491,7 +1512,7 @@ void CEngineThread::prepareFile(const ACS::Time& now) m_file << (const char *) out; m_file << (const char *) observerName << std::endl; // Source Name - ACS_LOG (LM_FULL_INFO, "CEngineThread::prepareFile()", (LM_NOTICE, "FILE_OPENED %s", (const char *) m_data->getFileName ())); + ACS_LOG(LM_FULL_INFO, "CEngineThread::prepareFile()",(LM_NOTICE, "FILE_OPENED %s", (const char *) m_data->getFileName ())); } void CEngineThread::writeFocusFileHeaders(const ACS::Time& now)