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

fixed a bug in waitOnSource (scheduler)

parent 90be0a85
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -62,5 +62,11 @@ void getCurrentBackend(IRA::CString& bck);
 */
bool isTracking() const;

/**
 * This is not thread safe but is almost atomic.
 * @return true if the antenna subsystem is tracking or not
 */
bool isOnSource() const;


#endif /* CORE_GETTER_H_ */
+10 −0
Original line number Diff line number Diff line
@@ -63,3 +63,13 @@ bool CCore::isTracking() const
	return (m_isAntennaTracking && m_isMinorServoTracking && m_isReceiversTracking && (diff>5000000));
}

bool CCore::isOnSource() const
{
	TIMEVALUE now;
	IRA::CIRATools::getTime(now);
	ACS::TimeInterval diff=now.value().value-m_clearTrackingTime;
	return (m_isAntennaTracking && (diff>5000000));
}


+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ void CCore::_nop() const
void CCore::_waitOnSource() throw (ManagementErrors::AbortedByUserExImpl)
{
	m_abortCurrentOperation=false;
	while (!m_isAntennaTracking) {
	while (!isOnSource()) {
		if (m_abortCurrentOperation) {
			m_abortCurrentOperation=false;
			_EXCPT(ManagementErrors::AbortedByUserExImpl,dummy,"CCore::_waitOnSource()");