Commit b13049f1 authored by Marco Buttu's avatar Marco Buttu
Browse files

New SRT version (fixed bug in tracking and status)

To test, missed MinorServoBoss.idl (to be installed after Medicina updating)
parent 1f115aaa
Loading
Loading
Loading
Loading
+29 −61
Original line number Diff line number Diff line
@@ -170,12 +170,9 @@ int main(int argc, char *argv[]) {

    /* Add frame controls declaration */
    TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_ROSTRING> * actualSetup_field;
    TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN> * ready_display;
    TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN> * starting_display;
    // TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN> * asConfiguration_display;
    TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN> * elevationTrack_display;
    TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN> * scanActive_display;
    TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN> * scanning_display;
    TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN> * tracking_display;
	TW::CPropertyStatusBox<TEMPLATE_4_ROTSYSTEMSTATUS,Management::TSystemStatus> * status_box;
    TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_ROSTRING> * motionInfo_field;

    /* ******************************* */
    TW::CLabel *output_label;
@@ -269,21 +266,15 @@ int main(int argc, char *argv[]) {
    ACE_OS::sleep(1);
    try {
        _GET_ACS_PROPERTY(ACS::ROstring, actualSetup);
        _GET_ACS_PROPERTY(Management::ROTBoolean, ready);
        _GET_ACS_PROPERTY(Management::ROTBoolean, starting);
        // _GET_ACS_PROPERTY(Management::ROTBoolean, asConfiguration);
        _GET_ACS_PROPERTY(Management::ROTBoolean, elevationTrack);
        _GET_ACS_PROPERTY(Management::ROTBoolean, scanActive);
        _GET_ACS_PROPERTY(Management::ROTBoolean, scanning);
        _GET_ACS_PROPERTY(Management::ROTBoolean, tracking);
		_GET_ACS_PROPERTY(Management::ROTSystemStatus,status);
        _GET_ACS_PROPERTY(ACS::ROstring, motionInfo);
        /* ********************************* */
        ACE_OS::sleep(1);
        actualSetup_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_ROSTRING>(actualSetup.in());
        ready_display=new TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>(ready.in());
        starting_display=new TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>(starting.in());
        // asConfiguration_display=new TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>(asConfiguration.in());
        elevationTrack_display=new TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>(elevationTrack.in());
        scanActive_display=new TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>(scanActive.in());
        scanning_display=new TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>(scanning.in());
        tracking_display=new TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>(tracking.in());
		status_box=new TW::CPropertyStatusBox<TEMPLATE_4_ROTSYSTEMSTATUS,Management::TSystemStatus> (status.in(),Management::MNG_OK);
        motionInfo_field=new TW::CPropertyText<_TW_PROPERTYCOMPONENT_T_ROSTRING>(motionInfo.in());
        /* ************************ */
        #if USE_OUTPUT_FIELD >=1 
            output_label=new TW::CLabel("");
@@ -294,30 +285,16 @@ int main(int argc, char *argv[]) {
        
        /** setting up the properties of the components of the frame controls */
        _TW_SET_COMPONENT(actualSetup_field,18,0,12,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);
        ready_display->setPosition(CPoint(18,1));
        ready_display->setOrientation(TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>::HORIZONTAL);
        ready_display->setFormatFunction(boolFormat,NULL);
        ready_display->setLedStyle(0,TW::CStyle(CColorPair::GREEN_BLACK,0),TW::CStyle(CColorPair::RED_BLACK,0));
        starting_display->setPosition(CPoint(18,2));
        starting_display->setOrientation(TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>::HORIZONTAL);
        starting_display->setFormatFunction(boolFormat,NULL);
        starting_display->setLedStyle(0,TW::CStyle(CColorPair::GREEN_BLACK,0),TW::CStyle(CColorPair::RED_BLACK,0));
        // asConfiguration_display->setPosition(CPoint(18,3));
        // asConfiguration_display->setOrientation(TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>::HORIZONTAL);
        // asConfiguration_display->setFormatFunction(boolFormat,NULL);
        // asConfiguration_display->setLedStyle(0,TW::CStyle(CColorPair::GREEN_BLACK,0),TW::CStyle(CColorPair::RED_BLACK,0));
        elevationTrack_display->setPosition(CPoint(18,3));
        elevationTrack_display->setOrientation(TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>::HORIZONTAL);
        elevationTrack_display->setFormatFunction(boolFormat,NULL);
        elevationTrack_display->setLedStyle(0,TW::CStyle(CColorPair::GREEN_BLACK,0),TW::CStyle(CColorPair::RED_BLACK,0));
        scanActive_display->setPosition(CPoint(18,4));
        scanActive_display->setOrientation(TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>::HORIZONTAL);
        scanActive_display->setFormatFunction(boolFormat,NULL);
        scanActive_display->setLedStyle(0,TW::CStyle(CColorPair::GREEN_BLACK,0),TW::CStyle(CColorPair::RED_BLACK,0));
        scanning_display->setPosition(CPoint(18,5));
        scanning_display->setOrientation(TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>::HORIZONTAL);
        scanning_display->setFormatFunction(boolFormat,NULL);
        scanning_display->setLedStyle(0,TW::CStyle(CColorPair::GREEN_BLACK,0),TW::CStyle(CColorPair::RED_BLACK,0));
        tracking_display->setPosition(CPoint(18,1));
        tracking_display->setOrientation(TW::CPropertyLedDisplay<TEMPLATE_4_ROTBOOLEAN>::HORIZONTAL);
        tracking_display->setFormatFunction(boolFormat,NULL);
        tracking_display->setLedStyle(0,TW::CStyle(CColorPair::GREEN_BLACK,0),TW::CStyle(CColorPair::RED_BLACK,0));
        //status_box
		_TW_SET_COMPONENT(status_box,18,2,10,1,BLACK_GREEN,CStyle::BOLD,output_label);
		status_box->setStatusLook(Management::MNG_OK,CStyle(BLACK_GREEN,CStyle::BOLD));
		status_box->setStatusLook(Management::MNG_WARNING,CStyle(BLACK_YELLOW,CStyle::BOLD));
		status_box->setStatusLook(Management::MNG_FAILURE,CStyle(BLACK_RED,CStyle::BOLD));
        _TW_SET_COMPONENT(motionInfo_field,18,3,23,1,CColorPair::WHITE_BLACK,CStyle::BOLD,output_label);

        /* ****************************************************************** */
        _TW_SET_COMPONENT(userInput,0,WINDOW_HEIGHT-6,WINDOW_WIDTH-1,1,USER_INPUT_COLOR_PAIR,USER_INPUT_STYLE,NULL);
@@ -329,33 +306,24 @@ int main(int argc, char *argv[]) {
        ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::MONITORS_INSTALLATION"));
        /** Add all required monitor installation here */
        _INSTALL_MONITOR(actualSetup_field,3000);
        _INSTALL_MONITOR(ready_display,3000);
        _INSTALL_MONITOR(starting_display,3000);
        // _INSTALL_MONITOR(asConfiguration_display,3000);
        _INSTALL_MONITOR(elevationTrack_display,3000);
        _INSTALL_MONITOR(scanActive_display,3000);
        _INSTALL_MONITOR(scanning_display,3000);
        _INSTALL_MONITOR(tracking_display,3000);
		_INSTALL_MONITOR(status_box,3000);
        _INSTALL_MONITOR(motionInfo_field,3000);
        /* ****************************************** */
        ACS_LOG(LM_FULL_INFO,MODULE_NAME"::Main()",(LM_INFO,MODULE_NAME"::DONE"));
        
        /* Add all the static labels */
        _TW_ADD_LABEL("Current Setup   :",0,0,17,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
        _TW_ADD_LABEL("Ready           :",0,1,17,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
        _TW_ADD_LABEL("Starting        :",0,2,17,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
        // _TW_ADD_LABEL("AS Conf         :",0,3,17,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
        _TW_ADD_LABEL("Elevation Track :",0,3,17,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
        _TW_ADD_LABEL("Scan Active     :",0,4,17,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
        _TW_ADD_LABEL("Scanning        :",0,5,17,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
        _TW_ADD_LABEL("Current Setup :",0,0,27,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
        _TW_ADD_LABEL("Tracking      :",0,1,27,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
		_TW_ADD_LABEL("Status        :",0,2,27,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
        _TW_ADD_LABEL("Motion Info   :",0,3,27,1,CColorPair::WHITE_BLACK,CStyle::UNDERLINE,window);
        /* ************************* */
        
        /** Add all required association: components/Frame */
        window.addComponent((CFrameComponent*)actualSetup_field);
        window.addComponent((CFrameComponent*)ready_display);
        window.addComponent((CFrameComponent*)starting_display);
        // window.addComponent((CFrameComponent*)asConfiguration_display);
        window.addComponent((CFrameComponent*)elevationTrack_display);
        window.addComponent((CFrameComponent*)scanActive_display);
        window.addComponent((CFrameComponent*)scanning_display);
        window.addComponent((CFrameComponent*)tracking_display);
		window.addComponent((CFrameComponent*)status_box);
        window.addComponent((CFrameComponent*)motionInfo_field);
        /* ********************************************** */
        window.addComponent((CFrameComponent*)userInput);       
        #if USE_OUTPUT_FIELD >=1 
+2 −0
Original line number Diff line number Diff line
@@ -117,12 +117,14 @@
    <!-- MinorServo Status -->
	<status description="The summary status of MinorServoBoss"/>
    <actualSetup description="Mnemonic code that defines a setup" />
    <motionInfo description="Elevation Track, No Elevation Track, Starting, Parking, ..." />
    <ready description="True if the system is ready" />
    <starting description="True if the system is starting" />
    <asConfiguration description="True if the the AS configuration is active" />
    <elevationTrack description="True if the M2 position is tracking the elevation" />
    <scanActive description="True if a scan is active" />
    <scanning description="True if the system is performing a scan" />
    <tracking description="Is the minor servo system in tracking?" />
              
    <!--
   MinorServoBoss Verbose Status (ROpattern)
+2 −0
Original line number Diff line number Diff line
@@ -117,12 +117,14 @@
    <!-- MinorServo Status -->
	<status description="The summary status of MinorServoBoss"/>
    <actualSetup description="Mnemonic code that defines a setup" />
    <motionInfo description="Elevation Track, No Elevation Track, Starting, Parking, ..." />
    <ready description="True if the system is ready" />
    <starting description="True if the system is starting" />
    <asConfiguration description="True if the the AS configuration is active" />
    <elevationTrack description="True if the M2 position is tracking the elevation" />
    <scanActive description="True if a scan is active" />
    <scanning description="True if the system is performing a scan" />
    <tracking description="Is the minor servo system in tracking?" />
              
    <!--
   MinorServoBoss Verbose Status (ROpattern)
+2 −0
Original line number Diff line number Diff line
@@ -116,12 +116,14 @@
        <xs:sequence>
            <xs:element name="status" type="mng:SystemStatusType" />
            <xs:element name="actualSetup" type="baci:ROstring" />
            <xs:element name="motionInfo" type="baci:ROstring" />
            <xs:element name="ready" type="mng:BooleanType" />
            <xs:element name="starting" type="mng:BooleanType" />
            <xs:element name="asConfiguration" type="mng:BooleanType" />
            <xs:element name="elevationTrack" type="mng:BooleanType" />
            <xs:element name="scanActive" type="mng:BooleanType" />
            <xs:element name="scanning" type="mng:BooleanType" />
            <xs:element name="tracking" type="mng:BooleanType" />
        </xs:sequence>

        <!-- Subsystem attributes -->
+40 −0
Original line number Diff line number Diff line
#ifndef _DEVIOMOTIONINFO_H_
#define _DEVIOMOTIONINFO_H_

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

using namespace baci;

class DevIOMotionInfo: public virtual DevIO<ACE_CString>
{
public:

	DevIOMotionInfo(MSBossConfiguration* conf): m_configuration(conf) {
		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();
		return (m_configuration->motionInfo()).c_str();
    }

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

private:
	MSBossConfiguration *m_configuration;
};


#endif
Loading