Commit 5bfc40ac authored by Marco Bartolini's avatar Marco Bartolini
Browse files

Medicina MinorServoBossImpl modified in trunk to adopt the new interface

parent a75f8fcc
Loading
Loading
Loading
Loading
+51 −0
Original line number Diff line number Diff line
#ifndef _DEVIOMOTIONINFO_H_
#define _DEVIOMOTIONINFO_H_

#include <baciDevIO.h>
#include <IRA>

#include "MedMinorServoParameters.hpp"

using namespace baci;

/**
 * This  class is derived from the template DevIO. It is used by the by the mode  property.
 * @author <a href=mailto:a.orlati@ira.inaf.it>Andrea Orlati</a>,
 * Istituto di Radioastronomia, Italia<br>
 */
class DevIOMotionInfo: public virtual DevIO<ACE_CString>
{
public:

	DevIOMotionInfo(MedMinorServoStatus *status): m_status(status) {
		AUTO_TRACE("DevIOMotionInfo::DevIOMotionInfo()");
	}

	~DevIOMotionInfo() {
		AUTO_TRACE("DevIOMotionInfo::~DevIOMotionInfo()");
	}

	bool initializeValue(){
		return false;
	}

	ACE_CString read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) {
		AUTO_TRACE("DevIOMotionInfo::read()");
		timestamp=getTimeStamp();
        if(m_status){
		    return (m_status->getStatusString()).c_str();
        }else{
            return "unconfigured";
        }
    }

    void write(const ACE_CString& value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) {
    	AUTO_TRACE("DevIOActualSetup::write()");
	}

private:
	MedMinorServoStatus *m_status;
};


#endif
+53 −0
Original line number Diff line number Diff line
#ifndef DEVIOTRACKING_H_
#define DEVIOTRACKING_H_

#include <baciDevIO.h>

#include "MedMinorServoControl.hpp"

using namespace baci;

class DevIOTracking: public virtual DevIO<Management::TBoolean>
{
public:
	
	DevIOTracking(MedMinorServoControl_sp control): m_control(control) {
		AUTO_TRACE("DevIOTracking::DevIOTracking()");
	}
	
	~DevIOTracking() {
		AUTO_TRACE("DevIOTracking::~DevIOTracking()");
	}
	
	bool initializeValue() {
		return false;
	}
	
	Management::TBoolean read(ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) {
		AUTO_TRACE("DevIOTracking::read()");
		timestamp=getTimeStamp();
		if (m_control->is_tracking()) {
			m_val=Management::MNG_TRUE;
		}
		else {
			m_val=Management::MNG_FALSE;
		}
		return m_val;
    }
	
    void write(const ACE_CString &value, ACS::Time& timestamp) throw (ACSErr::ACSbaseExImpl) {
    	AUTO_TRACE("DevIOTracking::write()");
	}
    
private:
	MedMinorServoControl_sp m_control;
	Management::TBoolean m_val;
};







#endif /*DEVIOTRACKING_H_*/
+1 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ class MedMinorServoStatus
        Management::TSystemStatus status;
        void reset();
        MedMinorServoStatus& operator=(const MedMinorServoStatus&);
        std::string getStatusString();
    private:
        MedMinorServoStatus(const MedMinorServoStatus&);
};
+6 −0
Original line number Diff line number Diff line
@@ -64,6 +64,8 @@
#include "DevIOElevationTrack.h"
//#include "DevIOParking.h"
#include "DevIOReady.h"
#include "DevIOMotionInfo.h"
#include "DevIOTracking.h"
#include "DevIOScanActive.h"
#include "DevIOScanning.h"
#include "DevIOStarting.h"
@@ -203,6 +205,8 @@ public:
	 virtual Management::ROTSystemStatus_ptr status() throw (CORBA::SystemException);
     virtual Management::ROTBoolean_ptr ready() throw (CORBA::SystemException);
     virtual ACS::ROstring_ptr actualSetup() throw (CORBA::SystemException);
     virtual ACS::ROstring_ptr motionInfo() throw (CORBA::SystemException);
     virtual Management::ROTBoolean_ptr tracking() throw (CORBA::SystemException);
     virtual Management::ROTBoolean_ptr starting() throw (CORBA::SystemException);
     virtual Management::ROTBoolean_ptr asConfiguration() throw (CORBA::SystemException);
     virtual Management::ROTBoolean_ptr elevationTrack() throw (CORBA::SystemException);
@@ -485,6 +489,8 @@ private:
    baci::SmartPropertyPointer< ROEnumImpl<ACS_ENUM_T(Management::TSystemStatus), POA_Management::ROTSystemStatus> > m_status;
    baci::SmartPropertyPointer< ROEnumImpl<ACS_ENUM_T(Management::TBoolean),POA_Management::ROTBoolean> > m_ready;
	baci::SmartPropertyPointer<baci::ROstring> m_actualSetup;
	baci::SmartPropertyPointer<baci::ROstring> m_motionInfo;
    baci::SmartPropertyPointer< ROEnumImpl<ACS_ENUM_T(Management::TBoolean),POA_Management::ROTBoolean> > m_tracking;
    baci::SmartPropertyPointer< ROEnumImpl<ACS_ENUM_T(Management::TBoolean),POA_Management::ROTBoolean> > m_starting;
    baci::SmartPropertyPointer< ROEnumImpl<ACS_ENUM_T(Management::TBoolean),POA_Management::ROTBoolean> > m_asConfiguration;
    baci::SmartPropertyPointer< ROEnumImpl<ACS_ENUM_T(Management::TBoolean),POA_Management::ROTBoolean> > m_elevationTrack;
+19 −0
Original line number Diff line number Diff line
#include <string>
#include "MedMinorServoStatus.hpp"

MedMinorServoStatus::MedMinorServoStatus():
@@ -15,6 +16,24 @@ MedMinorServoStatus::MedMinorServoStatus():
MedMinorServoStatus::~MedMinorServoStatus()
{}

std::string
MedMinorServoStatus::getStatusString()
{
    if(starting)
        return "STARTING";
    if(ready)
        return "READY";
    if(scan_active)
        return "SCAN_ACTIVE";
    if(scanning)
        return "SCANNING";
    if(parking)
        return "PARKING";
    if(parked)
        return "PARKED";
    return "UNDEFINED";
}

void
MedMinorServoStatus::reset()
{
Loading