From 0269ff965f403abbacd1619564f62e89091b88d8 Mon Sep 17 00:00:00 2001 From: Claudio Scafuri <claudio.scafuri@elettra.eu> Date: Fri, 1 Mar 2024 16:01:01 +0100 Subject: [PATCH] fixes and commands --- src/SimulatedE2PS.cpp | 11 ++++++----- src/SimulatedE2PS.h | 6 +++--- src/SimulatedE2PS.xmi | 3 ++- src/SimulatedE2PSClass.cpp | 14 +++++++------- src/SimulatedE2PSClass.h | 12 ++++++------ src/SimulatedE2PSStateMachine.cpp | 15 ++++++++------- 6 files changed, 32 insertions(+), 29 deletions(-) diff --git a/src/SimulatedE2PS.cpp b/src/SimulatedE2PS.cpp index 83025f5..2dc98db 100644 --- a/src/SimulatedE2PS.cpp +++ b/src/SimulatedE2PS.cpp @@ -59,7 +59,7 @@ // Reset | reset // StartCycling | start_cycling // Abort | abort -// fault | fault +// Fault | fault //================================================================ //================================================================ @@ -486,24 +486,25 @@ void SimulatedE2PS::abort() } //-------------------------------------------------------- /** - * Command fault related method + * Command Fault related method * Description: Force a simulated faulty condtion * */ //-------------------------------------------------------- void SimulatedE2PS::fault() { - DEBUG_STREAM << "SimulatedE2PS::fault() - " << device_name << std::endl; + DEBUG_STREAM << "SimulatedE2PS::Fault() - " << device_name << std::endl; /*----- PROTECTED REGION ID(SimulatedE2PS::fault) ENABLED START -----*/ /* clang-format on */ // Add your own code + if (get_state() == Tango::ON) return; // command is idempotent _current_read = 0.0; _current = 0.0; _voltage = 0.0; attr_current->set_write_value(_current); - push_change_event("current",&_current_read); - push_change_event("currentSet",&_current); + push_change_event("current", &_current_read); + push_change_event("currentSet", &_current); set_state(Tango::FAULT); push_change_event("State"); /* clang-format off */ diff --git a/src/SimulatedE2PS.h b/src/SimulatedE2PS.h index e6357f4..dcf8853 100644 --- a/src/SimulatedE2PS.h +++ b/src/SimulatedE2PS.h @@ -81,7 +81,7 @@ class SimulatedE2PS : public TANGO_BASE_CLASS class cyclethread *cycleloop; bool thread_running; bool abortflag; - void psdelay(); + //void psdelay(); Tango::WAttribute *attr_current; /* clang-format off */ /*----- PROTECTED REGION END -----*/ // SimulatedE2PS::Data Members @@ -245,12 +245,12 @@ public: virtual void abort(); virtual bool is_Abort_allowed(const CORBA::Any &any); /** - * Command fault related method + * Command Fault related method * Description: Force a simulated faulty condtion * */ virtual void fault(); - virtual bool is_fault_allowed(const CORBA::Any &any); + virtual bool is_Fault_allowed(const CORBA::Any &any); //-------------------------------------------------------- diff --git a/src/SimulatedE2PS.xmi b/src/SimulatedE2PS.xmi index 90c8112..3b12b35 100644 --- a/src/SimulatedE2PS.xmi +++ b/src/SimulatedE2PS.xmi @@ -53,6 +53,7 @@ </argout> <status abstract="false" inherited="false" concrete="true" concreteHere="true"/> <excludedStates>UNKNOWN</excludedStates> + <excludedStates>FAULT</excludedStates> </commands> <commands name="Reset" description="Reset the powersupply to a well known state." execMethod="reset" displayLevel="OPERATOR" polledPeriod="0" isDynamic="false"> <argin description=""> @@ -86,7 +87,7 @@ <excludedStates>UNKNOWN</excludedStates> <excludedStates>FAULT</excludedStates> </commands> - <commands name="fault" description="Force a simulated faulty condtion" execMethod="fault" displayLevel="EXPERT" polledPeriod="0" isDynamic="false"> + <commands name="Fault" description="Force a simulated faulty condtion" execMethod="fault" displayLevel="EXPERT" polledPeriod="0" isDynamic="false"> <argin description=""> <type xsi:type="pogoDsl:VoidType"/> </argin> diff --git a/src/SimulatedE2PSClass.cpp b/src/SimulatedE2PSClass.cpp index 32c3963..26d339e 100644 --- a/src/SimulatedE2PSClass.cpp +++ b/src/SimulatedE2PSClass.cpp @@ -246,7 +246,7 @@ CORBA::Any *AbortClass::execute(Tango::DeviceImpl *device, TANGO_UNUSED(const CO //-------------------------------------------------------- /** - * method : faultClass::execute() + * method : FaultClass::execute() * description : method to trigger the execution of the command. * * @param device The device on which the command must be executed @@ -255,9 +255,9 @@ CORBA::Any *AbortClass::execute(Tango::DeviceImpl *device, TANGO_UNUSED(const CO * returns The command output data (packed in the Any object) */ //-------------------------------------------------------- -CORBA::Any *faultClass::execute(Tango::DeviceImpl *device, TANGO_UNUSED(const CORBA::Any &in_any)) +CORBA::Any *FaultClass::execute(Tango::DeviceImpl *device, TANGO_UNUSED(const CORBA::Any &in_any)) { - TANGO_LOG_INFO << "faultClass::execute(): arrived" << std::endl; + TANGO_LOG_INFO << "FaultClass::execute(): arrived" << std::endl; ((static_cast<SimulatedE2PS *>(device))->fault()); return new CORBA::Any(); } @@ -610,14 +610,14 @@ void SimulatedE2PSClass::command_factory() Tango::OPERATOR); command_list.push_back(pAbortCmd); - // Command fault - faultClass *pfaultCmd = - new faultClass("fault", + // Command Fault + FaultClass *pFaultCmd = + new FaultClass("Fault", Tango::DEV_VOID, Tango::DEV_VOID, "", "", Tango::EXPERT); - command_list.push_back(pfaultCmd); + command_list.push_back(pFaultCmd); /*----- PROTECTED REGION ID(SimulatedE2PSClass::command_factory_after) ENABLED START -----*/ /* clang-format on */ diff --git a/src/SimulatedE2PSClass.h b/src/SimulatedE2PSClass.h index 64d6ec1..c24a21a 100644 --- a/src/SimulatedE2PSClass.h +++ b/src/SimulatedE2PSClass.h @@ -216,11 +216,11 @@ public: {return (static_cast<SimulatedE2PS *>(dev))->is_Abort_allowed(any);} }; -// Command fault class definition -class faultClass : public Tango::Command +// Command Fault class definition +class FaultClass : public Tango::Command { public: - faultClass(const char *cmd_name, + FaultClass(const char *cmd_name, Tango::CmdArgType in, Tango::CmdArgType out, const char *in_desc, @@ -228,15 +228,15 @@ public: Tango::DispLevel level) :Command(cmd_name,in,out,in_desc,out_desc, level) {}; - faultClass(const char *cmd_name, + FaultClass(const char *cmd_name, Tango::CmdArgType in, Tango::CmdArgType out) :Command(cmd_name,in,out) {}; - ~faultClass() {}; + ~FaultClass() {}; virtual CORBA::Any *execute (Tango::DeviceImpl *dev, const CORBA::Any &any); virtual bool is_allowed (Tango::DeviceImpl *dev, const CORBA::Any &any) - {return (static_cast<SimulatedE2PS *>(dev))->is_fault_allowed(any);} + {return (static_cast<SimulatedE2PS *>(dev))->is_Fault_allowed(any);} }; diff --git a/src/SimulatedE2PSStateMachine.cpp b/src/SimulatedE2PSStateMachine.cpp index 7861495..d2a8df9 100644 --- a/src/SimulatedE2PSStateMachine.cpp +++ b/src/SimulatedE2PSStateMachine.cpp @@ -185,7 +185,8 @@ bool SimulatedE2PS::is_On_allowed(TANGO_UNUSED(const CORBA::Any &any)) bool SimulatedE2PS::is_Off_allowed(TANGO_UNUSED(const CORBA::Any &any)) { // Compare device state with not allowed states. - if (get_state()==Tango::UNKNOWN) + if (get_state()==Tango::UNKNOWN || + get_state()==Tango::FAULT) { /*----- PROTECTED REGION ID(SimulatedE2PS::OffStateAllowed) ENABLED START -----*/ /* clang-format on */ @@ -260,17 +261,17 @@ bool SimulatedE2PS::is_Abort_allowed(TANGO_UNUSED(const CORBA::Any &any)) //-------------------------------------------------------- /** - * Method : SimulatedE2PS::is_fault_allowed() - * Description: Execution allowed for fault attribute + * Method : SimulatedE2PS::is_Fault_allowed() + * Description: Execution allowed for Fault attribute */ //-------------------------------------------------------- -bool SimulatedE2PS::is_fault_allowed(TANGO_UNUSED(const CORBA::Any &any)) +bool SimulatedE2PS::is_Fault_allowed(TANGO_UNUSED(const CORBA::Any &any)) { - // Not any excluded states for fault command. - /*----- PROTECTED REGION ID(SimulatedE2PS::faultStateAllowed) ENABLED START -----*/ + // Not any excluded states for Fault command. + /*----- PROTECTED REGION ID(SimulatedE2PS::FaultStateAllowed) ENABLED START -----*/ /* clang-format on */ /* clang-format off */ - /*----- PROTECTED REGION END -----*/ // SimulatedE2PS::faultStateAllowed + /*----- PROTECTED REGION END -----*/ // SimulatedE2PS::FaultStateAllowed return true; } -- GitLab