Loading SRT/Servers/SRTMinorServo/include/MSBossConfiguration.h +2 −3 Original line number Diff line number Diff line Loading @@ -80,8 +80,6 @@ public: inline bool isElevationTrackingEn() { return m_isElevationTrackingEn; } inline bool isTracking() { return m_isTracking; } inline bool isScanning() { return m_isScanning; } inline bool isScanActive() { return m_isScanActive; } Loading Loading @@ -178,6 +176,7 @@ public: bool m_isElevationTracking; // Is it tracking? bool m_isElevationTrackingEn; // Is the tracking enabled? bool m_isTracking; bool m_trackingError; // Set from an TrackingThread; bool m_isASConfiguration; Scan m_scan; Loading SRT/Servers/SRTMinorServo/src/MSBossConfiguration.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ MSBossConfiguration::MSBossConfiguration(maci::ContainerServices *Services, Mino m_isElevationTracking = false; m_isElevationTrackingEn = false; m_isTracking = false; m_trackingError = false; m_isScanning = false; m_isScanLocked = false; m_isScanActive = false; Loading Loading @@ -328,6 +329,10 @@ void MSBossConfiguration::setScan( } bool MSBossConfiguration::isTracking() { return m_isTracking && !m_trackingError; } ACS::doubleSeq MSBossConfiguration::getPosition(string comp_name, ACS::Time time) throw (ManagementErrors::ConfigurationErrorExImpl) { Loading SRT/Servers/SRTMinorServo/src/TrackingThread.cpp +18 −2 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ TrackingThread::TrackingThread( { AUTO_TRACE("TrackingThread::TrackingThread()"); m_ready_error = false; m_configuration->m_trackingError = false; } TrackingThread::~TrackingThread() { AUTO_TRACE("TrackingThread::~TrackingThread()"); } Loading Loading @@ -64,19 +65,34 @@ TrackingThread::TrackingThread( if(component_ref->isReady()) { component_ref->setPosition(positions, NOW); m_ready_error = false; m_configuration->m_trackingError=false; m_configuration->m_isElevationTracking = true; m_configuration->m_status = Management::MNG_OK; } else { if(component_ref->isStarting() || component_ref->isParked() || component_ref->isParking()) { m_ready_error = false; m_configuration->m_trackingError=false; m_configuration->m_isElevationTracking = true; m_configuration->m_status = Management::MNG_OK; } else { ACS::ROdoubleSeq_var refActPos = component_ref->actPos(); ACSErr::Completion_var completion; ACS::doubleSeq * act_pos = refActPos->get_sync(completion.out()); for(size_t i=0; i<act_pos->length(); i++) { // TODO: pay attention, this code is incorrect in case of many dynamic components if(fabs((*act_pos)[i] - position[i]) > component_ref->getTrackingDelta()) { m_configuration->m_status = Management::MNG_FAILURE; m_configuration->m_trackingError=true; m_configuration->m_isElevationTracking = false; break; } } if(!m_ready_error) { string msg(comp_name + " in failure."); ACS_SHORT_LOG((LM_ERROR, msg.c_str())); m_configuration->m_isElevationTracking = false; m_ready_error = true; } } Loading Loading
SRT/Servers/SRTMinorServo/include/MSBossConfiguration.h +2 −3 Original line number Diff line number Diff line Loading @@ -80,8 +80,6 @@ public: inline bool isElevationTrackingEn() { return m_isElevationTrackingEn; } inline bool isTracking() { return m_isTracking; } inline bool isScanning() { return m_isScanning; } inline bool isScanActive() { return m_isScanActive; } Loading Loading @@ -178,6 +176,7 @@ public: bool m_isElevationTracking; // Is it tracking? bool m_isElevationTrackingEn; // Is the tracking enabled? bool m_isTracking; bool m_trackingError; // Set from an TrackingThread; bool m_isASConfiguration; Scan m_scan; Loading
SRT/Servers/SRTMinorServo/src/MSBossConfiguration.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ MSBossConfiguration::MSBossConfiguration(maci::ContainerServices *Services, Mino m_isElevationTracking = false; m_isElevationTrackingEn = false; m_isTracking = false; m_trackingError = false; m_isScanning = false; m_isScanLocked = false; m_isScanActive = false; Loading Loading @@ -328,6 +329,10 @@ void MSBossConfiguration::setScan( } bool MSBossConfiguration::isTracking() { return m_isTracking && !m_trackingError; } ACS::doubleSeq MSBossConfiguration::getPosition(string comp_name, ACS::Time time) throw (ManagementErrors::ConfigurationErrorExImpl) { Loading
SRT/Servers/SRTMinorServo/src/TrackingThread.cpp +18 −2 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ TrackingThread::TrackingThread( { AUTO_TRACE("TrackingThread::TrackingThread()"); m_ready_error = false; m_configuration->m_trackingError = false; } TrackingThread::~TrackingThread() { AUTO_TRACE("TrackingThread::~TrackingThread()"); } Loading Loading @@ -64,19 +65,34 @@ TrackingThread::TrackingThread( if(component_ref->isReady()) { component_ref->setPosition(positions, NOW); m_ready_error = false; m_configuration->m_trackingError=false; m_configuration->m_isElevationTracking = true; m_configuration->m_status = Management::MNG_OK; } else { if(component_ref->isStarting() || component_ref->isParked() || component_ref->isParking()) { m_ready_error = false; m_configuration->m_trackingError=false; m_configuration->m_isElevationTracking = true; m_configuration->m_status = Management::MNG_OK; } else { ACS::ROdoubleSeq_var refActPos = component_ref->actPos(); ACSErr::Completion_var completion; ACS::doubleSeq * act_pos = refActPos->get_sync(completion.out()); for(size_t i=0; i<act_pos->length(); i++) { // TODO: pay attention, this code is incorrect in case of many dynamic components if(fabs((*act_pos)[i] - position[i]) > component_ref->getTrackingDelta()) { m_configuration->m_status = Management::MNG_FAILURE; m_configuration->m_trackingError=true; m_configuration->m_isElevationTracking = false; break; } } if(!m_ready_error) { string msg(comp_name + " in failure."); ACS_SHORT_LOG((LM_ERROR, msg.c_str())); m_configuration->m_isElevationTracking = false; m_ready_error = true; } } Loading