diff --git a/ActuatorPlugins/GalilAxisPlugin/pom.xml b/ActuatorPlugins/GalilAxisPlugin/pom.xml deleted file mode 100644 index 311edaa08da6758e238dc42f2e636b4639de0d58..0000000000000000000000000000000000000000 --- a/ActuatorPlugins/GalilAxisPlugin/pom.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>fr.soleil.device.ActuatorSystem</groupId> - <artifactId>ActuatorPlugins</artifactId> - <version>1.0.8-SNAPSHOT</version> - </parent> - - <groupId>fr.soleil.device.ActuatorSystem.ActuatorPlugins</groupId> - <artifactId>GalilAxisPlugin-${aol}-shared-${mode}</artifactId> - - <packaging>nar</packaging> - <name>GalilAxisPlugin</name> <!-- used for the name of executable --> - <description>Plugin in order to work with galil axis device</description> - - - <build> - <plugins> - <plugin> - <groupId>org.freehep</groupId> - <artifactId>freehep-nar-plugin</artifactId> - </plugin> - </plugins> - </build> - - <dependencies> - <dependency> - <groupId>fr.soleil.lib</groupId> - <artifactId>YAT4Tango-${aol}-${library}-${mode}</artifactId> - </dependency> - <dependency> - <groupId>fr.soleil.lib</groupId> - <artifactId>YAT-${aol}-${library}-${mode}</artifactId> - </dependency> - </dependencies> - -</project> diff --git a/ActuatorPlugins/SimulatedAxisPlugin/src/SimulatedAxisPlugin.cpp b/ActuatorPlugins/SimulatedAxisPlugin/src/SimulatedAxisPlugin.cpp deleted file mode 100644 index 63d9d2847e072449927bead981b51bd028355186..0000000000000000000000000000000000000000 --- a/ActuatorPlugins/SimulatedAxisPlugin/src/SimulatedAxisPlugin.cpp +++ /dev/null @@ -1,203 +0,0 @@ -//============================================================================= -// SimulatedAxisPlugin.cpp -//============================================================================= -// abstraction.......Plugin to use SimulatedAxisDevice in BeamPositionTracking application -// class.............SimulatedAxisPlugin -// original author...thiam - SOLEIL -//============================================================================= - -#include <SimulatedAxisPlugin.h> -#include <yat/plugin/PlugInSymbols.h> -#include <yat/utils/StringTokenizer.h> -#include <yat/threading/Thread.h> -#include <iostream> - -EXPORT_SINGLECLASS_PLUGIN(SimulatedAxisPlugin::SimulatedAxisPlugin, SimulatedAxisPlugin::SimulatedAxisPluginInfo); - -namespace SimulatedAxisPlugin -{ -std::string SIMULTATED_AXIS_DEVICE_ADRESS_STR = "SimulatedAxisDeviceDeviceUrl"; -std::string CMD_MOVE_AXIS_RELATIVE_STR = "MoveRelativeWithSpeed"; -std::string CMD_STOP_MOVEMENT = "Stop"; -// ============================================================================ -// SimulatedAxisPlugin::SimulatedAxisPlugin -// ============================================================================ -SimulatedAxisPlugin::SimulatedAxisPlugin() -: yat4tango::TangoLogAdapter(NULL) -{ - _simulatedAxisDevice = NULL; - this->_stateStatus.isConnexionOperational = false; -} - -// ============================================================================ -// SimulatedAxisPlugin::~SimulatedAxisPlugin -// ============================================================================ -SimulatedAxisPlugin::~SimulatedAxisPlugin() -{ - if(_simulatedAxisDevice) - delete _simulatedAxisDevice; - _simulatedAxisDevice = NULL; -} -// ============================================================================ -// SPECIFIC PLUGIN PROPERTIES -// ============================================================================ -// ============================================================================ -// SimulatedAxisPlugin::enumerate_properties -// ============================================================================ -void SimulatedAxisPlugin::enumerate_properties (yat4tango::PlugInPropertyInfoList& propInfoList) const -throw (Tango::DevFailed) -{ - //NO properties here .. -} -// ============================================================================ -// SimulatedAxisPlugin::set_properties -// ============================================================================ -void SimulatedAxisPlugin::set_properties (yat4tango::PlugInPropertyValueList& propValueList) -throw (Tango::DevFailed) -{ - //NO properties here .. -} -// ============================================================================ -// SimulatedAxisPlugin::enumerate_attributes -// ============================================================================ -void SimulatedAxisPlugin::enumerate_attributes (yat4tango::DynamicAttributeDescriptionList& attrDescList) const -throw (Tango::DevFailed) -{ - -} - -// ============================================================================ -// SimulatedAxisPlugin::initialize_connection -// ============================================================================ -void SimulatedAxisPlugin::initialize_connection (std::string deviceAdress) -{ - this->_simulatedAxisDevice = new Tango::DeviceProxy (deviceAdress); - Tango::DeviceData test = this->_simulatedAxisDevice->command_inout("Status"); - - std::string statusOut; - test>>statusOut; - this->_stateStatus.isConnexionOperational = true; - -} -// ============================================================================ -// SimulatedAxisPlugin::init -// ============================================================================ -void SimulatedAxisPlugin::init(Tango::DeviceImpl * host_device, std::string deviceAdress) throw (Tango::DevFailed){ - - this->initialize_connection(deviceAdress); - if (this->_stateStatus.isConnexionOperational){ - this->_stateStatus.axisStatus = "Plugin is ready"; - this->_stateStatus.axisState = Tango::STANDBY; - } -} - -// ============================================================================ -// SimulatedAxisPlugin::getAxisCurrentPosition -// ============================================================================ -double SimulatedAxisPlugin::getAxisCurrentPosition()throw (Tango::DevFailed){ - Tango::DevShort positionValue = NULL; - //First check if connexion is still alive - this->updateStateStatus(); - if (_stateStatus.isConnexionOperational){ - Tango::DeviceAttribute positionAttr = this->_simulatedAxisDevice->read_attribute("RPositionMoteur"); - positionAttr >> positionValue; - } - - return (double)positionValue; -} -// ============================================================================ -// SimulatedAxisPlugin::getAxisUnit -// ============================================================================ -std::string SimulatedAxisPlugin::getAxisUnit()throw (Tango::DevFailed) -{ - std::string axisUnit = "" ; - //First check if connexion is still alive - this->updateStateStatus(); - if (_stateStatus.isConnexionOperational){ - std::string posAttrName = "RPositionMoteur"; - Tango::AttributeInfoEx posAttributeInfo; - posAttributeInfo = this->_simulatedAxisDevice->get_attribute_config(posAttrName); - axisUnit = posAttributeInfo.unit; - } - - return axisUnit; -} -// ============================================================================ -// SimulatedAxisPlugin::setAxisPosition -// ============================================================================ -void SimulatedAxisPlugin::setAxisPosition(double position)throw (Tango::DevFailed){ - - if (_stateStatus.isConnexionOperational /*&& Normaly check if axe is moving, but its fake anyway*/){ - _stateStatus.axisState = Tango::MOVING; - _stateStatus.axisStatus = "Movement is starting.."; - - double currentPosition = this->getAxisCurrentPosition(); - double relativeMovement = 0; - //Need to estimate relative movement ! - - relativeMovement = position - currentPosition; - - moveAxisRelative(relativeMovement); - } -} -// ============================================================================ -// SimulatedAxisPlugin::moveAxisRelative -// ============================================================================ -void SimulatedAxisPlugin::moveAxisRelative(double relativeMovement)throw (Tango::DevFailed){ - //First check if connexion is still alive - this->updateStateStatus(); - if (_stateStatus.isConnexionOperational /*&& Normaly check if axe is moving, but its fake anyway*/){ - _stateStatus.axisState = Tango::MOVING; - _stateStatus.axisStatus = "Movement is starting.."; - - Tango::DevVarShortArray* w_argsStepsSpeed = new Tango::DevVarShortArray(); - w_argsStepsSpeed->length(2); - (*w_argsStepsSpeed)[0] = (short)relativeMovement; - (*w_argsStepsSpeed)[1] = 1; - - Tango::DeviceData relativeMovmentData; - relativeMovmentData<<w_argsStepsSpeed; - - sendCommandToActuatorSystem(CMD_MOVE_AXIS_RELATIVE_STR, true, relativeMovmentData); - } -} -// ============================================================================ -// SimulatedAxisPlugin::stopAxisMovement -// ============================================================================ -void SimulatedAxisPlugin::stopAxisMovement()throw (Tango::DevFailed){ - Tango::DeviceData emptyData; - sendCommandToActuatorSystem(CMD_STOP_MOVEMENT, false, emptyData); -} -// ============================================================================ -// SimulatedAxisPlugin::getAxisStatus -// ============================================================================ -AS::ActuatorInterface::ActuatorInterface::AxisStateStatus SimulatedAxisPlugin::getAxisStateStatus()throw (Tango::DevFailed){ - this->updateStateStatus(); - return this->_stateStatus; -} -// ============================================================================ -// SimulatedAxisPlugin::updateStateStatus -// ============================================================================ -void SimulatedAxisPlugin::updateStateStatus(){ - try{ - _stateStatus.axisState = this->_simulatedAxisDevice->state(); - //in our case -> standby means ON - if(_stateStatus.axisState == Tango::STANDBY) - _stateStatus.axisState = Tango::ON; - _stateStatus.axisStatus = this->_simulatedAxisDevice->status(); - _stateStatus.isConnexionOperational = true; - - }catch(...){ - _stateStatus.isConnexionOperational = false; - } -} -// ============================================================================ -// SimulatedAxisPlugin::sendCommandToActuatorSystem -// ============================================================================ -void SimulatedAxisPlugin::sendCommandToActuatorSystem(std::string cmdName, bool args, Tango::DeviceData argsData){ - if (args) - this->_simulatedAxisDevice->command_inout(cmdName, argsData); - else - this->_simulatedAxisDevice->command_inout(cmdName); -} -}// namespace SimulatedAxisPlugin diff --git a/ActuatorPlugins/SimulatedAxisPlugin/src/SimulatedAxisPlugin.h b/ActuatorPlugins/SimulatedAxisPlugin/src/SimulatedAxisPlugin.h deleted file mode 100644 index dbf27857760245031ee4af2ac5f6ec05afc53806..0000000000000000000000000000000000000000 --- a/ActuatorPlugins/SimulatedAxisPlugin/src/SimulatedAxisPlugin.h +++ /dev/null @@ -1,125 +0,0 @@ -//============================================================================= -// SimulatedAxisPlugin.h -//============================================================================= -// abstraction.......Plugin to use a simulated axis in beam tracking position -// class.............SimulatedAxisPlugin -// original author...Thiam- SOLEIL -//============================================================================= - -#ifndef _ACTUATOR_AXIS_PLUGIN_H_ -#define _ACTUATOR_AXIS_PLUGIN_H_ - -// ============================================================================ -// DEPENDENCIES -// ============================================================================ -#include <tango.h> - -#include <yat/utils/StringTokenizer.h> -#include <yat/plugin/IPlugInInfo.h> -#include <yat/plugin/IPlugInObject.h> -#include <yat/plugin/PlugInSymbols.h> -#include "../../../PluginInterfaces/include/ActuatorInterface.h" -#include <yat4tango/LogHelper.h> -#include <iostream> - -namespace SimulatedAxisPlugin -{ - -//============================================================================= -//! \class SimulatedAxisPluginInfo -//! \brief Plugin infos class -//! -//! Inherits from yat::IPlugInInfo class. -//============================================================================= -class SimulatedAxisPluginInfo : public yat::IPlugInInfo -{ -public: - std::string get_plugin_id() const - { return "SimulatedAxis"; } - - virtual std::string get_interface_name() const - { return "ActuatorInterface"; } - - virtual std::string get_version_number() const - { return "1.0.0"; } -}; - -//============================================================================= -//! \class SimulatedAxisPlugin -//! -//! Inherits from BeamPositionTracking_ns::ActuatorInterface::ActuatorInterface class. -//============================================================================= -class SimulatedAxisPlugin : public AS::ActuatorInterface::ActuatorInterface, - public yat4tango::TangoLogAdapter -{ - -public: - - SimulatedAxisPlugin(); - ~SimulatedAxisPlugin(); - - - //------------------------------------------------------------------------- - // yat4tango::DevicePlugIn interface - //------------------------------------------------------------------------- - //!\brief Gets the plugin's specific properties. - void enumerate_properties (yat4tango::PlugInPropertyInfoList& propInfoList) const - throw (Tango::DevFailed); - - //!\brief Sets the plugin properties. - void set_properties (yat4tango::PlugInPropertyValueList& propValueList) - throw (Tango::DevFailed); - - //!\brief Gets the plugin dynamic attributes. - void enumerate_attributes (yat4tango::DynamicAttributeDescriptionList& attrDescList) const - throw (Tango::DevFailed); - //------------------------------------------------------------------------- - // yat4tango::DevicePlugIn interface - //------------------------------------------------------------------------- - - void init(Tango::DeviceImpl * host_device, std::string deviceAdress) - throw (Tango::DevFailed); - - void setAxisPosition(double position) - throw (Tango::DevFailed); - - void moveAxisRelative(double relativeMovement) - throw (Tango::DevFailed); - - void stopAxisMovement() - throw (Tango::DevFailed); - - double getAxisCurrentPosition() - throw (Tango::DevFailed); - - - std::string getAxisUnit() - throw (Tango::DevFailed); - - AS::ActuatorInterface::ActuatorInterface::AxisStateStatus getAxisStateStatus() - throw (Tango::DevFailed); - - -private: - - AS::ActuatorInterface::ActuatorInterface::AxisStateStatus _stateStatus; - - bool _simulatedAxisProxyInit; - - void initialize_connection(std::string deviceAdress); - - void sendCommandToActuatorSystem(std::string cmdName, bool args, Tango::DeviceData argsData); - - // mp_SimulatedAxisDevice: device to access axis - Tango::DeviceProxy *_simulatedAxisDevice; - std::string _simulatedAxisDeviceDeviceAdressStr; - - void updateStateStatus(); -}; - - -} // namespace SimulatedAxisPlugin - - - -#endif // _ACTUATOR_AXIS_PLUGIN_H_ diff --git a/ActuatorPlugins/SimulatedAxisPlugin/pom.xml b/ActuatorPlugins/StandardMotorPlugin/pom.xml old mode 100644 new mode 100755 similarity index 80% rename from ActuatorPlugins/SimulatedAxisPlugin/pom.xml rename to ActuatorPlugins/StandardMotorPlugin/pom.xml index 3deba97eb36952b57d6a0a09d18fb8a64a4bec1e..b1fc2893f0ca82260a04cd3b163a597e1e57adeb --- a/ActuatorPlugins/SimulatedAxisPlugin/pom.xml +++ b/ActuatorPlugins/StandardMotorPlugin/pom.xml @@ -4,15 +4,15 @@ <parent> <groupId>fr.soleil.device.ActuatorSystem</groupId> <artifactId>ActuatorPlugins</artifactId> - <version>1.0.8-SNAPSHOT</version> + <version>1.1.0-SNAPSHOT</version> </parent> <groupId>fr.soleil.device.ActuatorSystem.ActuatorPlugins</groupId> - <artifactId>SimulatedAxisPlugin-${aol}-shared-${mode}</artifactId> + <artifactId>StandardMotorPlugin-${aol}-shared-${mode}</artifactId> <packaging>nar</packaging> - <name>SimulatedAxisPlugin</name> <!-- used for the name of executable --> - <description>Fake axis Plugin - Tests purpose</description> + <name>StandardMotorPlugin</name> <!-- used for the name of executable --> + <description>Plugin in order to work with standard motors axis device</description> <build> @@ -35,4 +35,4 @@ </dependency> </dependencies> -</project> +</project> \ No newline at end of file diff --git a/ActuatorPlugins/GalilAxisPlugin/src/GalilAxisPlugin.cpp b/ActuatorPlugins/StandardMotorPlugin/src/StandardMotorPlugin.cpp old mode 100644 new mode 100755 similarity index 50% rename from ActuatorPlugins/GalilAxisPlugin/src/GalilAxisPlugin.cpp rename to ActuatorPlugins/StandardMotorPlugin/src/StandardMotorPlugin.cpp index f48e46226245dfec6b5c4835f65e8ae8999c7ad5..1f790512b777cd7323fdfae1c2d2a61380ce3586 --- a/ActuatorPlugins/GalilAxisPlugin/src/GalilAxisPlugin.cpp +++ b/ActuatorPlugins/StandardMotorPlugin/src/StandardMotorPlugin.cpp @@ -1,35 +1,35 @@ //============================================================================= -// GalilAxisPlugin.cpp +// StandardMotorPlugin.cpp //============================================================================= -// abstraction.......Plugin to use galilAxisDevice in BeamPositionTracking application -// class.............GalilAxisPlugin +// abstraction.......Plugin to use StandardMotorDevice in BeamPositionTracking application +// class.............StandardMotorPlugin // original author...thiam - SOLEIL //============================================================================= -#include <GalilAxisPlugin.h> +#include <StandardMotorPlugin.h> -EXPORT_SINGLECLASS_PLUGIN(GalilAxisPlugin::GalilAxisPlugin, GalilAxisPlugin::GalilAxisPluginInfo); +EXPORT_SINGLECLASS_PLUGIN(StandardMotorPlugin::StandardMotorPlugin, StandardMotorPlugin::StandardMotorPluginInfo); -namespace GalilAxisPlugin +namespace StandardMotorPlugin { -std::string SIMULTATED_AXIS_DEVICE_ADRESS_STR = "galilAxisDeviceDeviceUrl"; +std::string SIMULTATED_AXIS_DEVICE_ADRESS_STR = "StandardMotorDeviceDeviceUrl"; std::string CMD_MOVE_AXIS_RELATIVE_STR = "MoveRelativeWithSpeed"; std::string CMD_STOP_MOVEMENT = "Stop"; std::string ATTR_POSITION_STR = "position"; // ============================================================================ -// GalilAxisPlugin::GalilAxisPlugin +// StandardMotorPlugin::StandardMotorPlugin // ============================================================================ -GalilAxisPlugin::GalilAxisPlugin() +StandardMotorPlugin::StandardMotorPlugin() : yat4tango::TangoLogAdapter(NULL) { } // ============================================================================ -// GalilAxisPlugin::~GalilAxisPlugin +// StandardMotorPlugin::~StandardMotorPlugin // ============================================================================ -GalilAxisPlugin::~GalilAxisPlugin() +StandardMotorPlugin::~StandardMotorPlugin() { } @@ -37,63 +37,60 @@ GalilAxisPlugin::~GalilAxisPlugin() // SPECIFIC PLUGIN PROPERTIES // ============================================================================ // ============================================================================ -// GalilAxisPlugin::enumerate_properties +// StandardMotorPlugin::enumerate_properties // ============================================================================ -void GalilAxisPlugin::enumerate_properties (yat4tango::PlugInPropertyInfoList& propInfoList) const -throw (Tango::DevFailed) +void StandardMotorPlugin::enumerate_properties (yat4tango::PlugInPropertyInfoList& propInfoList) const { //NO properties here .. } // ============================================================================ -// GalilAxisPlugin::set_properties +// StandardMotorPlugin::set_properties // ============================================================================ -void GalilAxisPlugin::set_properties (yat4tango::PlugInPropertyValueList& propValueList) -throw (Tango::DevFailed) +void StandardMotorPlugin::set_properties (yat4tango::PlugInPropertyValueList& propValueList) { //NO properties here .. } // ============================================================================ -// GalilAxisPlugin::enumerate_attributes +// StandardMotorPlugin::enumerate_attributes // ============================================================================ -void GalilAxisPlugin::enumerate_attributes (yat4tango::DynamicAttributeDescriptionList& attrDescList) const -throw (Tango::DevFailed) +void StandardMotorPlugin::enumerate_attributes (yat4tango::DynamicAttributeDescriptionList& attrDescList) const { } // ============================================================================ -// GalilAxisPlugin::initialize_connection +// StandardMotorPlugin::initialize_connection // ============================================================================ -void GalilAxisPlugin::initialize_connection (std::string deviceAdress) +void StandardMotorPlugin::initialize_connection (std::string deviceAdress) { - this->_galilAxisDevice = new Tango::DeviceProxy (deviceAdress); - Tango::DeviceData test = this->_galilAxisDevice->command_inout("Status"); + m_standard_motor_device = new Tango::DeviceProxy (deviceAdress); + Tango::DeviceData test = m_standard_motor_device->command_inout("Status"); std::string statusOut; test>>statusOut; - this->_stateStatus.isConnexionOperational = true; + m_state_status.isConnexionOperational = true; } // ============================================================================ -// GalilAxisPlugin::start +// StandardMotorPlugin::start // ============================================================================ -void GalilAxisPlugin::init(Tango::DeviceImpl * host_device, std::string deviceAdress) - throw (Tango::DevFailed) +void StandardMotorPlugin::init(Tango::DeviceImpl * host_device, std::string deviceAdress) { - this->initialize_connection(deviceAdress); - this->_stateStatus.axisStatus = "GalilAxis plugin is ready"; - this->_stateStatus.axisState = Tango::STANDBY; - this->_deviceURLAdress = deviceAdress; + initialize_connection(deviceAdress); + m_state_status.axisStatus = "StandardMotor plugin is ready"; + m_state_status.axisState = Tango::STANDBY; + _deviceURLAdress = deviceAdress; } // ============================================================================ -// GalilAxisPlugin::getAxisCurrentPosition +// StandardMotorPlugin::getAxisCurrentPosition // ============================================================================ -double GalilAxisPlugin::getAxisCurrentPosition()throw (Tango::DevFailed) +double StandardMotorPlugin::getAxisCurrentPosition() { Tango::DevDouble positionValue = NULL; //First check if connexion is still alive - this->updateStateStatus(); - if (_stateStatus.isConnexionOperational){ - Tango::DeviceAttribute positionAttr = this->_galilAxisDevice->read_attribute(ATTR_POSITION_STR); + update_state_status(); + if (m_state_status.isConnexionOperational) + { + Tango::DeviceAttribute positionAttr = m_standard_motor_device->read_attribute(ATTR_POSITION_STR); positionAttr >> positionValue; } @@ -101,87 +98,100 @@ double GalilAxisPlugin::getAxisCurrentPosition()throw (Tango::DevFailed) } // ============================================================================ -// GalilAxisPlugin::getAxisUnit +// StandardMotorPlugin::getAxisUnit // ============================================================================ -std::string GalilAxisPlugin::getAxisUnit()throw (Tango::DevFailed) +std::string StandardMotorPlugin::getAxisUnit() { std::string axisUnit = "" ; //First check if connexion is still alive - this->updateStateStatus(); - if (_stateStatus.isConnexionOperational){ + update_state_status(); + if (m_state_status.isConnexionOperational) + { std::string posAttrName = "Position"; Tango::AttributeInfoEx posAttributeInfo; - posAttributeInfo = this->_galilAxisDevice->get_attribute_config(posAttrName); + posAttributeInfo = m_standard_motor_device->get_attribute_config(posAttrName); axisUnit = posAttributeInfo.unit; } return axisUnit; } // ============================================================================ -// GalilAxisPlugin::setAxisPosition +// StandardMotorPlugin::setAxisPosition // ============================================================================ -void GalilAxisPlugin::setAxisPosition(double position)throw (Tango::DevFailed){ - - this->updateStateStatus(); - if (_stateStatus.isConnexionOperational){ +void StandardMotorPlugin::setAxisPosition(double position) +{ + update_state_status(); + if (m_state_status.isConnexionOperational) + { Tango::DeviceAttribute* positionAttribute; - _stateStatus.axisState = Tango::MOVING; - _stateStatus.axisStatus = "Movement is starting.."; + m_state_status.axisState = Tango::MOVING; + m_state_status.axisStatus = "Movement is starting.."; positionAttribute = new Tango::DeviceAttribute(ATTR_POSITION_STR, position); - this->_galilAxisDevice->write_attribute(*positionAttribute); + m_standard_motor_device->write_attribute(*positionAttribute); } } // ============================================================================ -// GalilAxisPlugin::moveAxisRelative +// StandardMotorPlugin::moveAxisRelative // ============================================================================ -void GalilAxisPlugin::moveAxisRelative(double relativeMovement)throw (Tango::DevFailed){ +void StandardMotorPlugin::moveAxisRelative(double relativeMovement) +{ //First check if connexion is still alive - this->updateStateStatus(); - if (_stateStatus.isConnexionOperational /*&& Normaly check if axe is moving, but its fake anyway*/){ - _stateStatus.axisState = Tango::MOVING; - _stateStatus.axisStatus = "Movement is starting.."; + update_state_status(); + if (m_state_status.isConnexionOperational /*&& Normaly check if axe is moving, but its fake anyway*/) + { + m_state_status.axisState = Tango::MOVING; + m_state_status.axisStatus = "Movement is starting.."; - double position = this->getAxisCurrentPosition(); + double position = getAxisCurrentPosition(); double positionToWrite = position + relativeMovement; Tango::DeviceAttribute* positionAttribute; positionAttribute = new Tango::DeviceAttribute(ATTR_POSITION_STR, positionToWrite); - this->_galilAxisDevice->write_attribute(*positionAttribute); + m_standard_motor_device->write_attribute(*positionAttribute); } } // ============================================================================ -// GalilAxisPlugin::stopAxisMovement +// StandardMotorPlugin::stopAxisMovement // ============================================================================ -void GalilAxisPlugin::stopAxisMovement()throw (Tango::DevFailed){ +void StandardMotorPlugin::stopAxisMovement() +{ Tango::DeviceData emptyData; - sendCommandToActuatorSystem(CMD_STOP_MOVEMENT, false, emptyData); + send_command_to_actuator_system(CMD_STOP_MOVEMENT, false, emptyData); } // ============================================================================ -// GalilAxisPlugin::getAxisStatus +// StandardMotorPlugin::getAxisStateStatus // ============================================================================ -AS::ActuatorInterface::ActuatorInterface::AxisStateStatus GalilAxisPlugin::getAxisStateStatus()throw (Tango::DevFailed){ - this->updateStateStatus(); - return this->_stateStatus; +AS::ActuatorInterface::ActuatorInterface::AxisStateStatus StandardMotorPlugin::getAxisStateStatus() +{ + update_state_status(); + return m_state_status; } // ============================================================================ -// GalilAxisPlugin::updateStateStatus +// StandardMotorPlugin::update_state_status // ============================================================================ -void GalilAxisPlugin::updateStateStatus(){ - - _stateStatus.axisState = this->_galilAxisDevice->state(); +void StandardMotorPlugin::update_state_status() +{ + m_state_status.axisState = m_standard_motor_device->state(); //in our case -> standby means ON - if(_stateStatus.axisState == Tango::STANDBY) - _stateStatus.axisState = Tango::ON; - _stateStatus.axisStatus = this->_galilAxisDevice->status(); + if(m_state_status.axisState == Tango::STANDBY) + { + m_state_status.axisState = Tango::ON; + } + m_state_status.axisStatus = m_standard_motor_device->status(); } // ============================================================================ -// GalilAxisPlugin::sendCommandToActuatorSystem +// StandardMotorPlugin::send_command_to_actuator_system // ============================================================================ -void GalilAxisPlugin::sendCommandToActuatorSystem(std::string cmdName, bool args, Tango::DeviceData argsData){ +void StandardMotorPlugin::send_command_to_actuator_system(std::string cmdName, bool args, Tango::DeviceData argsData) +{ if (args) - this->_galilAxisDevice->command_inout(cmdName, argsData); + { + m_standard_motor_device->command_inout(cmdName, argsData); + } else - this->_galilAxisDevice->command_inout(cmdName); + { + m_standard_motor_device->command_inout(cmdName); + } } -}// namespace GalilAxisPlugin +}// namespace StandardMotorPlugin diff --git a/ActuatorPlugins/GalilAxisPlugin/src/GalilAxisPlugin.h b/ActuatorPlugins/StandardMotorPlugin/src/StandardMotorPlugin.h old mode 100644 new mode 100755 similarity index 62% rename from ActuatorPlugins/GalilAxisPlugin/src/GalilAxisPlugin.h rename to ActuatorPlugins/StandardMotorPlugin/src/StandardMotorPlugin.h index 9c4bdf52ba195df3be755908f4e3d41a2958cf3e..570d1a104bf06169a2ad70f02ce8257cc2d9c5e0 --- a/ActuatorPlugins/GalilAxisPlugin/src/GalilAxisPlugin.h +++ b/ActuatorPlugins/StandardMotorPlugin/src/StandardMotorPlugin.h @@ -1,8 +1,8 @@ //============================================================================= -// GalilAxisPlugin.h +// StandardMotorPlugin.h //============================================================================= // abstraction.......Plugin to use a simulated axis in beam tracking position -// class.............GalilAxisPlugin +// class.............StandardMotorPlugin // original author...Thiam- SOLEIL //============================================================================= @@ -22,104 +22,100 @@ #include <yat4tango/LogHelper.h> #include <iostream> -namespace GalilAxisPlugin +namespace StandardMotorPlugin { //============================================================================= -//! \class GalilAxisPluginInfo +//! \class StandardMotorPluginInfo //! \brief Plugin infos class //! //! Inherits from yat::IPlugInInfo class. //============================================================================= -class GalilAxisPluginInfo : public yat::IPlugInInfo +class StandardMotorPluginInfo : public yat::IPlugInInfo { public: - std::string get_plugin_id() const - { return "galilAxis"; } - - virtual std::string get_interface_name() const - { return "ActuatorInterface"; } - - virtual std::string get_version_number() const - { return "1.0.0"; } + std::string get_plugin_id() const + { + return "StandardMotor"; + } + + virtual std::string get_interface_name() const + { + return "ActuatorInterface"; + } + + virtual std::string get_version_number() const + { + return "1.0.0"; + } }; //============================================================================= -//! \class GalilAxisPlugin +//! \class StandardMotorPlugin //! //! Inherits from BeamPositionTracking_ns::ActuatorInterface::ActuatorInterface class. //============================================================================= -class GalilAxisPlugin : public AS::ActuatorInterface::ActuatorInterface, +class StandardMotorPlugin : public AS::ActuatorInterface::ActuatorInterface, public yat4tango::TangoLogAdapter { public: - GalilAxisPlugin(); - ~GalilAxisPlugin(); + StandardMotorPlugin(); + ~StandardMotorPlugin(); //------------------------------------------------------------------------- // yat4tango::DevicePlugIn interface //------------------------------------------------------------------------- //!\brief Gets the plugin's specific properties. - void enumerate_properties (yat4tango::PlugInPropertyInfoList& propInfoList) const - throw (Tango::DevFailed); + void enumerate_properties (yat4tango::PlugInPropertyInfoList& propInfoList) const; //!\brief Sets the plugin properties. - void set_properties (yat4tango::PlugInPropertyValueList& propValueList) - throw (Tango::DevFailed); + void set_properties (yat4tango::PlugInPropertyValueList& propValueList); //!\brief Gets the plugin dynamic attributes. - void enumerate_attributes (yat4tango::DynamicAttributeDescriptionList& attrDescList) const - throw (Tango::DevFailed); + void enumerate_attributes (yat4tango::DynamicAttributeDescriptionList& attrDescList) const; //------------------------------------------------------------------------- // yat4tango::DevicePlugIn interface //------------------------------------------------------------------------- - void init(Tango::DeviceImpl * host_device, std::string deviceAdress) - throw (Tango::DevFailed); + void init(Tango::DeviceImpl * host_device, std::string deviceAdress) ; - void setAxisPosition(double position) - throw (Tango::DevFailed); + void setAxisPosition(double position); - void moveAxisRelative(double relativeMovement) - throw (Tango::DevFailed); + void moveAxisRelative(double relativeMovement) ; - void stopAxisMovement() - throw (Tango::DevFailed); + void stopAxisMovement() ; - double getAxisCurrentPosition() - throw (Tango::DevFailed); + double getAxisCurrentPosition() ; - std::string getAxisUnit() - throw (Tango::DevFailed); + std::string getAxisUnit(); - AS::ActuatorInterface::ActuatorInterface::AxisStateStatus getAxisStateStatus() - throw (Tango::DevFailed); + AS::ActuatorInterface::ActuatorInterface::AxisStateStatus getAxisStateStatus(); private: - AS::ActuatorInterface::ActuatorInterface::AxisStateStatus _stateStatus; + AS::ActuatorInterface::ActuatorInterface::AxisStateStatus m_state_status; - bool _galilAxisProxyInit; + bool m_standard_motor_proxy_init; void initialize_connection(std::string deviceAdress); - void sendCommandToActuatorSystem(std::string cmdName, bool args, Tango::DeviceData argsData); + void send_command_to_actuator_system(std::string cmdName, bool args, Tango::DeviceData argsData); - // mp_galilAxisDevice: device to access axis - Tango::DeviceProxy *_galilAxisDevice; - std::string _galilAxisDeviceDeviceAdressStr; + // m_standard_motor_device: device to access axis + Tango::DeviceProxy *m_standard_motor_device; + std::string m_standard_motor_device_adress_str; - void updateStateStatus(); + void update_state_status(); std::string _deviceURLAdress; }; -} // namespace GalilAxisPlugin +} // namespace StandardMotorPlugin diff --git a/ActuatorPlugins/pom.xml b/ActuatorPlugins/pom.xml old mode 100644 new mode 100755 index 8589bc4032e45468d83d669051da47dea5ce8cde..380399348a030a431a5acac2cd5f5844476af499 --- a/ActuatorPlugins/pom.xml +++ b/ActuatorPlugins/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>fr.soleil.device</groupId> <artifactId>ActuatorSystem</artifactId> - <version>1.0.8-SNAPSHOT</version> + <version>1.1.0-SNAPSHOT</version> </parent> <groupId>fr.soleil.device.ActuatorSystem</groupId> @@ -77,8 +77,7 @@ </build> <modules> - <module>SimulatedAxisPlugin</module> - <module>GalilAxisPlugin</module> + <module>StandardMotorPlugin</module> </modules> </project> diff --git a/ActuatorSystem/doc/doc_html/DevCommands.html b/ActuatorSystem/doc/doc_html/DevCommands.html index b49790eb1f1c9bc015c71f134e04fb78d3dfa07c..492e0c60b98d5e55533b5f71bf15a4b2b146022d 100644 --- a/ActuatorSystem/doc/doc_html/DevCommands.html +++ b/ActuatorSystem/doc/doc_html/DevCommands.html @@ -134,7 +134,7 @@ The language device desctructor automatically calls the <i> delete_device() </i> <A NAME="MoveYAxisRelative"><!-- --></A> <h2>6 - MoveYAxisRelative</h2> <ul> -<Li><Strong>Description: </Strong> To move Y axis with a relative movement <Br>  +<Li><Strong>Description: </Strong> To move Y axis with a relative movement<Br>  <Li><Strong>Argin:<Br>DEV_DOUBLE</Strong> : <Br>  <Li><Strong>Argout:<Br>DEV_VOID</Strong> @@ -148,8 +148,7 @@ The language device desctructor automatically calls the <i> delete_device() </i> <A NAME="ApplyRelativeMovementOnAxes"><!-- --></A> <h2>7 - ApplyRelativeMovementOnAxes</h2> <ul> -<Li><Strong>Description: </Strong> Argin[0] = movementOnXAxis; -Argin[1] = movementOnYAxis<Br>  +<Li><Strong>Description: </Strong> Argin[1] = movementOnYAxis<Br>  <Li><Strong>Argin:<Br>DEVVAR_DOUBLEARRAY</Strong> : <Br>  <Li><Strong>Argout:<Br>DEV_VOID</Strong> diff --git a/ActuatorSystem/doc/doc_html/Properties.html b/ActuatorSystem/doc/doc_html/Properties.html index 4f7cdc674d0e5a9e89614a925a4dc84465d61b7b..5b50e76b4d0115113f8cfbf84e9eb7b9ccb62d0a 100644 --- a/ActuatorSystem/doc/doc_html/Properties.html +++ b/ActuatorSystem/doc/doc_html/Properties.html @@ -68,11 +68,13 @@ Revision: - Author: Thiam F. <Tr><Td><b><a href=#Dev_DefaultValues>XAxisPluginType </a></b></Td> <Td><Font Size=-1>Tango::DEV_STRING</Font></Td> -<Td><Font Size=-1>X Axis plugin type</Font></Td></Tr> +<Td><Font Size=-1>X Axis plugin type. +Available values: StandardMotor ( Supports: GalilAxis, SimulatedMotor and PowerPMACAxis )</Font></Td></Tr> <Tr><Td><b><a href=#Dev_DefaultValues>YAxisPluginType </a></b></Td> <Td><Font Size=-1>Tango::DEV_STRING</Font></Td> -<Td><Font Size=-1>Y Axis plugin type</Font></Td></Tr> +<Td><Font Size=-1>Y Axis plugin type. +Available values: StandardMotor ( Supports: GalilAxis, SimulatedMotor and PowerPMACAxis )</Font></Td></Tr> <Tr><Td><b><a href=#Dev_DefaultValues>YAxisPluginPath </a></b></Td> <Td><Font Size=-1>Tango::DEV_STRING</Font></Td> @@ -126,11 +128,11 @@ In simulated mode, this device will only read state/status and positions from ax </Tr> <Tr> <Td>XAxisPluginType</Td> - <td>No default value</td> + <td>StandardMotor</td> </Tr> <Tr> <Td>YAxisPluginType</Td> - <td>No default value</td> + <td>StandardMotor</td> </Tr> <Tr> <Td>YAxisPluginPath</Td> @@ -146,23 +148,23 @@ In simulated mode, this device will only read state/status and positions from ax </Tr> <Tr> <Td>XAxisMaxPosition</Td> - <td>No default value</td> + <td>1</td> </Tr> <Tr> <Td>XAxisMinPosition</Td> - <td>No default value</td> + <td>0</td> </Tr> <Tr> <Td>YAxisMaxPosition</Td> - <td>No default value</td> + <td>1</td> </Tr> <Tr> <Td>YAxisMinPosition</Td> - <td>No default value</td> + <td>0</td> </Tr> <Tr> <Td>DeviceMode</Td> - <td>No default value</td> + <td>SIMULATED</td> </Tr> </Table> diff --git a/ActuatorSystem/doc/doc_html/index.html b/ActuatorSystem/doc/doc_html/index.html index b55ff7b9e320bb850015a1b23e4fd8a3754f262c..99eb2ab273aa5f89c4e81ea75e5a8bde988b38c7 100644 --- a/ActuatorSystem/doc/doc_html/index.html +++ b/ActuatorSystem/doc/doc_html/index.html @@ -58,7 +58,7 @@ Revision: - Author: Thiam F. <Br> <Br> <h2>Introduction:</h2> <ul> - This device should be used for BeamPositionTracking application only. This device's aim is to organize motors movements on two axes ( X and Y ) + This device should be used for BeamPositionTracking application only. This device's aim is to organize motors movements on two axes ( X and Y ) in order to move beam centroid position.<Br> </ul> <Br><h2>Class Identification:</h2> diff --git a/ActuatorSystem/doc/doc_html/user_guide.html b/ActuatorSystem/doc/doc_html/user_guide.html index 1f95c1152d180e99f79681628834bef015e3be8b..f043c7739353c47613457fb0ec5bde93b9a4535d 100644 --- a/ActuatorSystem/doc/doc_html/user_guide.html +++ b/ActuatorSystem/doc/doc_html/user_guide.html @@ -63,7 +63,7 @@ ActuatorSystem Class<Br> <Br></Td></Tr> <Br> <Br><Br> <Br> <h2>Introduction:</h2> <ul> - This device should be used for BeamPositionTracking application only. This device's aim is to organize motors movements on two axes ( X and Y ) + This device should be used for BeamPositionTracking application only. This device's aim is to organize motors movements on two axes ( X and Y ) in order to move beam centroid position.<Br> </ul> <Br> @@ -117,11 +117,13 @@ This device should be used for BeamPositionTracking application only. This devic <Tr><Td><b><a href=#Dev_DefaultValues>XAxisPluginType </a></b></Td> <Td><Font Size=-1>Tango::DEV_STRING</Font></Td> -<Td><Font Size=-1>X Axis plugin type</Font></Td></Tr> +<Td><Font Size=-1>X Axis plugin type. +Available values: StandardMotor ( Supports: GalilAxis, SimulatedMotor and PowerPMACAxis )</Font></Td></Tr> <Tr><Td><b><a href=#Dev_DefaultValues>YAxisPluginType </a></b></Td> <Td><Font Size=-1>Tango::DEV_STRING</Font></Td> -<Td><Font Size=-1>Y Axis plugin type</Font></Td></Tr> +<Td><Font Size=-1>Y Axis plugin type. +Available values: StandardMotor ( Supports: GalilAxis, SimulatedMotor and PowerPMACAxis )</Font></Td></Tr> <Tr><Td><b><a href=#Dev_DefaultValues>YAxisPluginPath </a></b></Td> <Td><Font Size=-1>Tango::DEV_STRING</Font></Td> @@ -175,11 +177,11 @@ In simulated mode, this device will only read state/status and positions from ax </Tr> <Tr> <Td>XAxisPluginType</Td> - <td>No default value</td> + <td>StandardMotor</td> </Tr> <Tr> <Td>YAxisPluginType</Td> - <td>No default value</td> + <td>StandardMotor</td> </Tr> <Tr> <Td>YAxisPluginPath</Td> @@ -195,23 +197,23 @@ In simulated mode, this device will only read state/status and positions from ax </Tr> <Tr> <Td>XAxisMaxPosition</Td> - <td>No default value</td> + <td>1</td> </Tr> <Tr> <Td>XAxisMinPosition</Td> - <td>No default value</td> + <td>0</td> </Tr> <Tr> <Td>YAxisMaxPosition</Td> - <td>No default value</td> + <td>1</td> </Tr> <Tr> <Td>YAxisMinPosition</Td> - <td>No default value</td> + <td>0</td> </Tr> <Tr> <Td>DeviceMode</Td> - <td>No default value</td> + <td>SIMULATED</td> </Tr> </Table> @@ -435,7 +437,7 @@ The language device desctructor automatically calls the <i> delete_device() </i> <A NAME="MoveYAxisRelative"><!-- --></A> <h2>6 - MoveYAxisRelative</h2> <ul> -<Li><Strong>Description: </Strong> To move Y axis with a relative movement <Br>  +<Li><Strong>Description: </Strong> To move Y axis with a relative movement<Br>  <Li><Strong>Argin:<Br>DEV_DOUBLE</Strong> : <Br>  <Li><Strong>Argout:<Br>DEV_VOID</Strong> @@ -449,8 +451,7 @@ The language device desctructor automatically calls the <i> delete_device() </i> <A NAME="ApplyRelativeMovementOnAxes"><!-- --></A> <h2>7 - ApplyRelativeMovementOnAxes</h2> <ul> -<Li><Strong>Description: </Strong> Argin[0] = movementOnXAxis; -Argin[1] = movementOnYAxis<Br>  +<Li><Strong>Description: </Strong> Argin[1] = movementOnYAxis<Br>  <Li><Strong>Argin:<Br>DEVVAR_DOUBLEARRAY</Strong> : <Br>  <Li><Strong>Argout:<Br>DEV_VOID</Strong> diff --git a/ActuatorSystem/pom.xml b/ActuatorSystem/pom.xml old mode 100644 new mode 100755 index a6b6bb0df4247dfb94b40d300d00eaae4ae41bbe..d79d934fbbde63945b5a5a3aed438a7525bba433 --- a/ActuatorSystem/pom.xml +++ b/ActuatorSystem/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>fr.soleil.device</groupId> <artifactId>ActuatorSystem</artifactId> - <version>1.0.8-SNAPSHOT</version> + <version>1.1.0-SNAPSHOT</version> </parent> <groupId>fr.soleil.device.ActuatorSystem</groupId> @@ -37,9 +37,8 @@ <includePath>${project.basedir}/include</includePath> </includePaths> <defines> - <define>PROJECT_NAME=${project.name}</define> - <define>PROJECT_VERSION=${project.version}</define> - <define>actuatorSystem_PROJECT_VERSION=${actuatorSystem.version}</define> + <define>PROJECT_NAME=${project.name}</define> + <define>PROJECT_VERSION=${project.version}</define> </defines> </cpp> </configuration> @@ -62,13 +61,7 @@ </dependency> <dependency> <groupId>fr.soleil.device.ActuatorSystem.ActuatorPlugins</groupId> - <artifactId>GalilAxisPlugin-${aol}-shared-${mode}</artifactId> - <version>${project.version}</version> - <scope>runtime></scope> - </dependency> - <dependency> - <groupId>fr.soleil.device.ActuatorSystem.ActuatorPlugins</groupId> - <artifactId>SimulatedAxisPlugin-${aol}-shared-${mode}</artifactId> + <artifactId>StandardMotorPlugin-${aol}-shared-${mode}</artifactId> <version>${project.version}</version> <scope>runtime></scope> </dependency> diff --git a/ActuatorSystem/src/ASTaskManager.cpp b/ActuatorSystem/src/ASTaskManager.cpp old mode 100644 new mode 100755 index 633ba3c75847483025223655bed6095b5bcc91a6..2e2c50456a2d0d352491b1ed2524b26f0c817ef9 --- a/ActuatorSystem/src/ASTaskManager.cpp +++ b/ActuatorSystem/src/ASTaskManager.cpp @@ -18,7 +18,8 @@ static const unsigned short kPERIODIC_TMOUT_MS = 10; -namespace ActuatorSystem_ns{ +namespace ActuatorSystem_ns +{ std::string X_AXIS_ID = "xAxis"; std::string Y_AXIS_ID = "yAxis"; @@ -98,9 +99,9 @@ ASTaskManager::~ASTaskManager () enable_periodic_msg(false); yat::MutexLock gardDataMutex(m_dataMutex); - delete this->m_xActuatorPlugin; + delete m_xActuatorPlugin; - delete this->m_yActuatorPlugin; + delete m_yActuatorPlugin; m_initCompleted = false; @@ -109,7 +110,6 @@ ASTaskManager::~ASTaskManager () // ASTaskManager::process_message // ============================================================================ void ASTaskManager::process_message (yat::Message& _msg) - throw (Tango::DevFailed) { //DEBUG_STREAM << "ASTaskManager::process_message::receiving msg " <<_msg.to_string() << std::endl; //- handle msg @@ -131,19 +131,21 @@ void ASTaskManager::process_message (yat::Message& _msg) enable_periodic_msg(false); //Try to create both plugins : X and Y axis if (actuatorPluginInitialisation(m_xAxisPluginType, m_xPluginPath, X_AXIS_ID) && - actuatorPluginInitialisation(m_yAxisPluginType, m_yPluginPath, Y_AXIS_ID)){ - //if creation is ok then start them - if(startPlugins()){ - //Init axes units - initAxesUnits(); - //Enable periodic - enable_periodic_msg(true); - stateStatus.state = Tango::STANDBY; - stateStatus.status = "Initialisation done, ready to start ..."; - updateTaskStateStatus(stateStatus); - m_initCompleted = true; - } - } + actuatorPluginInitialisation(m_yAxisPluginType, m_yPluginPath, Y_AXIS_ID)) + { + //if creation is ok then start them + if(startPlugins()) + { + //Init axes units + initAxesUnits(); + //Enable periodic + enable_periodic_msg(true); + stateStatus.state = Tango::STANDBY; + stateStatus.status = "Initialisation done, ready to start ..."; + updateTaskStateStatus(stateStatus); + m_initCompleted = true; + } + } } //- TASK_PERIODIC ------------------ @@ -266,11 +268,11 @@ void ASTaskManager::process_message (yat::Message& _msg) //- UNHANDLED MSG -------------------- default: - DEBUG_STREAM << "ASTaskManager::handle_message::unhandled msg type received" << std::endl; break; } } + //----------------------------------------------------------------------------- // // @@ -283,13 +285,16 @@ void ASTaskManager::process_message (yat::Message& _msg) // method : BPTTaskManager::i_setXAxisCalibrationState(bool state) // //----------------------------------------------------------------------------- -void ASTaskManager::i_setXAxisCalibrationState(bool state)throw (Tango::DevFailed){ - - if(getTaskCurrentState().state != Tango::MOVING){ +void ASTaskManager::i_setXAxisCalibrationState(bool state) +{ + if(getTaskCurrentState().state != Tango::MOVING) + { yat::Message *xCalibrationStateMsg = new yat::Message(kSET_X_AXIS_CALIBRATION_STATE); xCalibrationStateMsg->attach_data(state); post(xCalibrationStateMsg); - }else{ + } + else + { THROW_DEVFAILED("DEVICE_ERROR", "System can't change calibration state in moving state", "ASTaskManager::i_setXAxisCalibrationState"); @@ -300,13 +305,16 @@ void ASTaskManager::i_setXAxisCalibrationState(bool state)throw (Tango::DevFaile // method : BPTTaskManager::i_setYAxisCalibrationState(bool state) // //----------------------------------------------------------------------------- -void ASTaskManager::i_setYAxisCalibrationState(bool state)throw (Tango::DevFailed){ - - if(getTaskCurrentState().state != Tango::MOVING){ +void ASTaskManager::i_setYAxisCalibrationState(bool state) +{ + if(getTaskCurrentState().state != Tango::MOVING) + { yat::Message *yCalibrationStateMsg = new yat::Message(kSET_Y_AXIS_CALIBRATION_STATE); yCalibrationStateMsg->attach_data(state); post(yCalibrationStateMsg); - }else{ + } + else + { THROW_DEVFAILED("DEVICE_ERROR", "System can't change calibration state in moving state", "ASTaskManager::i_setYAxisCalibrationState"); @@ -317,9 +325,10 @@ void ASTaskManager::i_setYAxisCalibrationState(bool state)throw (Tango::DevFaile // method : BPTTaskManager::i_moveAxes(int xAxisRelativeMovement, int yAxisRelativeMovement) // //----------------------------------------------------------------------------- -void ASTaskManager::i_moveAxes(double xAxisRelativeMovement, double yAxisRelativeMovement){ - - if(getTaskCurrentState().state != Tango::MOVING){ +void ASTaskManager::i_moveAxes(double xAxisRelativeMovement, double yAxisRelativeMovement) +{ + if(getTaskCurrentState().state != Tango::MOVING) + { m_movementStarted = true; StateStatus movementStartStateStatus; movementStartStateStatus.state = Tango::MOVING; @@ -332,7 +341,9 @@ void ASTaskManager::i_moveAxes(double xAxisRelativeMovement, double yAxisRelativ xMovementMsg->attach_data(axesTranslations); //Sending message synchronously wait_msg_handled(xMovementMsg, DEFAULT_ACTUATOR_SYSTEM_TIMEOUT); - }else{ + } + else + { THROW_DEVFAILED("DEVICE_ERROR", "System can't move an axis while moving state", "ASTaskManager::i_writeXAxisPosition"); @@ -343,9 +354,11 @@ void ASTaskManager::i_moveAxes(double xAxisRelativeMovement, double yAxisRelativ // method : BPTTaskManager::i_moveXAxis(double movement) // //----------------------------------------------------------------------------- -void ASTaskManager::i_moveXAxis(double movement){ +void ASTaskManager::i_moveXAxis(double movement) +{ - if(getTaskCurrentState().state != Tango::MOVING){ + if(getTaskCurrentState().state != Tango::MOVING) + { m_movementStarted = true; StateStatus movementStartStateStatus; movementStartStateStatus.state = Tango::MOVING; @@ -355,7 +368,9 @@ void ASTaskManager::i_moveXAxis(double movement){ xMovementMsg->attach_data(movement); //Sending message synchronously wait_msg_handled(xMovementMsg, DEFAULT_ACTUATOR_SYSTEM_TIMEOUT); - }else{ + } + else + { THROW_DEVFAILED("DEVICE_ERROR", "System can't move an axis while moving state", "ASTaskManager::i_writeXAxisPosition"); @@ -366,9 +381,11 @@ void ASTaskManager::i_moveXAxis(double movement){ // method : BPTTaskManager::i_moveYAxis(double movement) // //----------------------------------------------------------------------------- -void ASTaskManager::i_moveYAxis(double movement){ +void ASTaskManager::i_moveYAxis(double movement) +{ - if(getTaskCurrentState().state != Tango::MOVING){ + if(getTaskCurrentState().state != Tango::MOVING) + { m_movementStarted = true; StateStatus movementStartStateStatus; movementStartStateStatus.state = Tango::MOVING; @@ -378,7 +395,9 @@ void ASTaskManager::i_moveYAxis(double movement){ yMovementMsg->attach_data(movement); //Sending message synchronously wait_msg_handled(yMovementMsg, DEFAULT_ACTUATOR_SYSTEM_TIMEOUT); - }else{ + } + else + { THROW_DEVFAILED("DEVICE_ERROR", "System can't move an axis while moving state", "ASTaskManager::i_writeYAxisPosition"); @@ -389,7 +408,8 @@ void ASTaskManager::i_moveYAxis(double movement){ // method : BPTTaskManager::i_setXAxisPosition(double position) // //----------------------------------------------------------------------------- -void ASTaskManager::i_setXAxisPosition(double position){ +void ASTaskManager::i_setXAxisPosition(double position) +{ m_movementStarted = true; StateStatus movementStartStateStatus; movementStartStateStatus.state = Tango::MOVING; @@ -405,7 +425,8 @@ void ASTaskManager::i_setXAxisPosition(double position){ // method : BPTTaskManager::i_setYAxisPosition(double position) // //----------------------------------------------------------------------------- -void ASTaskManager::i_setYAxisPosition(double position){ +void ASTaskManager::i_setYAxisPosition(double position) +{ m_movementStarted = true; StateStatus movementStartStateStatus; movementStartStateStatus.state = Tango::MOVING; @@ -421,7 +442,8 @@ void ASTaskManager::i_setYAxisPosition(double position){ // method : BPTTaskManager::i_stopAxes() // //----------------------------------------------------------------------------- -void ASTaskManager::i_stopAxes(){ +void ASTaskManager::i_stopAxes() +{ yat::Message *stopAxesMessage = new yat::Message(kSTOP_AXES, MAX_USER_PRIORITY, true); wait_msg_handled(stopAxesMessage, DEFAULT_ACTUATOR_SYSTEM_TIMEOUT); } @@ -438,7 +460,8 @@ void ASTaskManager::i_stopAxes(){ // method : BPTTaskManager::i_getManagerDataPacket() // //----------------------------------------------------------------------------- -ASTaskManager::TaskManagerDataPacket ASTaskManager::i_getManagerDataPacket(){ +ASTaskManager::TaskManagerDataPacket ASTaskManager::i_getManagerDataPacket() +{ yat::MutexLock gardDataMutex(m_dataMutex); return m_managerDataPacket; @@ -448,7 +471,8 @@ ASTaskManager::TaskManagerDataPacket ASTaskManager::i_getManagerDataPacket(){ // method : BPTTaskManager::i_getAxesUnits() // //----------------------------------------------------------------------------- -ASTaskManager::AxesUnits ASTaskManager::i_getAxesUnits(){ +ASTaskManager::AxesUnits ASTaskManager::i_getAxesUnits() +{ return m_axesUnits; } @@ -466,13 +490,18 @@ ASTaskManager::AxesUnits ASTaskManager::i_getAxesUnits(){ // description : // //----------------------------------------------------------------------------- -void ASTaskManager::stopAxesMovement(){ +void ASTaskManager::stopAxesMovement() +{ StateStatus stopCmd; - if(!m_simulatedMode){ - try{ + if(!m_simulatedMode) + { + try + { m_xActuatorPlugin->stopAxisMovement(); m_yActuatorPlugin->stopAxisMovement(); - }catch(...){ + } + catch(...) + { stopCmd.state = Tango::FAULT; stopCmd.status = "Couldn't stop axes"; updateTaskStateStatus(stopCmd); @@ -493,18 +522,26 @@ void ASTaskManager::moveAxisPosition(double relativeMovement, std::string axisId updateTaskStateStatus(movement); - if (relativeMovement != 0){ + if (relativeMovement != 0) + { double currentAxisPosition = 0; double newPosition = 0; - if(axisId == X_AXIS_ID){ + if(axisId == X_AXIS_ID) + { if (m_simulatedMode) + { m_simulatedXTranslation = relativeMovement; - else { // Act normal + } + else + { // Act normal // check new position - Setting lower/upper limit if out of bounds - try{ + try + { currentAxisPosition = m_xActuatorPlugin->getAxisCurrentPosition(); newPosition = currentAxisPosition + relativeMovement; - }catch(...){ + } + catch(...) + { movement.state = Tango::FAULT; movement.status = "Couldn't getAxisCurrentPosition while axis " + axisId + " positionning.."; updateTaskStateStatus(movement); @@ -513,15 +550,22 @@ void ASTaskManager::moveAxisPosition(double relativeMovement, std::string axisId setAxisPosition(newPosition, X_AXIS_ID); } } - else if (axisId == Y_AXIS_ID){ + else if (axisId == Y_AXIS_ID) + { if (m_simulatedMode) + { m_simulatedYTranslation = relativeMovement; - else { // Act normal + } + else + { // Act normal // check new position - Setting lower or upper limit if out of bounds - try{ + try + { currentAxisPosition = m_yActuatorPlugin->getAxisCurrentPosition(); newPosition = currentAxisPosition + relativeMovement; - }catch(...){ + } + catch(...) + { movement.state = Tango::FAULT; movement.status = "Couldn't getAxisCurrentPosition while axis " + axisId + " positionning.."; updateTaskStateStatus(movement); @@ -546,47 +590,63 @@ void ASTaskManager::setAxisPosition(double position, std::string axisId){ updateTaskStateStatus(movement); - if(axisId == X_AXIS_ID){ - try{ - if (position >= m_xAxisMaxPosition){ - m_axesPositionningState.xLimitReached = true; - m_axesPositionningState.xLimitStatus = "Upper limit has been reached on X axis !"; - m_xActuatorPlugin->setAxisPosition(m_xAxisMaxPosition); - }else if (position <= m_xAxisMinPosition){ - m_axesPositionningState.xLimitReached = true; - m_axesPositionningState.xLimitStatus = "Lower limit has been reached on X axis !"; - m_xActuatorPlugin->setAxisPosition(m_xAxisMinPosition); - }else if ((position < m_xAxisMaxPosition) && (position > m_xAxisMinPosition)){ - m_axesPositionningState.xLimitReached = false; - m_xActuatorPlugin->setAxisPosition(position); - } - }catch(...){ - movement.state = Tango::FAULT; - movement.status = "Couldn't move axis " + axisId; - updateTaskStateStatus(movement); + if(axisId == X_AXIS_ID) + { + try + { + if (position >= m_xAxisMaxPosition) + { + m_axesPositionningState.xLimitReached = true; + m_axesPositionningState.xLimitStatus = "Upper limit has been reached on X axis !"; + m_xActuatorPlugin->setAxisPosition(m_xAxisMaxPosition); + } + else if (position <= m_xAxisMinPosition) + { + m_axesPositionningState.xLimitReached = true; + m_axesPositionningState.xLimitStatus = "Lower limit has been reached on X axis !"; + m_xActuatorPlugin->setAxisPosition(m_xAxisMinPosition); } + else if ((position < m_xAxisMaxPosition) && (position > m_xAxisMinPosition)) + { + m_axesPositionningState.xLimitReached = false; + m_xActuatorPlugin->setAxisPosition(position); + } + } + catch(...) + { + movement.state = Tango::FAULT; + movement.status = "Couldn't move axis " + axisId; + updateTaskStateStatus(movement); + } } - else if (axisId == Y_AXIS_ID){ - try{ - if (position >= m_yAxisMaxPosition){ - m_axesPositionningState.yLimitReached = true; - m_axesPositionningState.yLimitStatus = "Upper limit has been reached on Y axis !"; - m_yActuatorPlugin->setAxisPosition(m_yAxisMaxPosition); - }else if (position <= m_yAxisMinPosition){ - m_axesPositionningState.yLimitReached = true; - m_axesPositionningState.yLimitStatus = "Lower limit has been reached on Y axis !"; - m_yActuatorPlugin->setAxisPosition(m_yAxisMinPosition); - }else if((position < m_yAxisMaxPosition) && (position > m_yAxisMinPosition)){ - m_yActuatorPlugin->setAxisPosition(position); - m_axesPositionningState.yLimitReached = false; - } - }catch(...){ - movement.state = Tango::FAULT; - movement.status = "Couldn't move axis " + axisId; - updateTaskStateStatus(movement); + else if (axisId == Y_AXIS_ID) + { + try{ + if (position >= m_yAxisMaxPosition) + { + m_axesPositionningState.yLimitReached = true; + m_axesPositionningState.yLimitStatus = "Upper limit has been reached on Y axis !"; + m_yActuatorPlugin->setAxisPosition(m_yAxisMaxPosition); + } + else if (position <= m_yAxisMinPosition) + { + m_axesPositionningState.yLimitReached = true; + m_axesPositionningState.yLimitStatus = "Lower limit has been reached on Y axis !"; + m_yActuatorPlugin->setAxisPosition(m_yAxisMinPosition); } + else if((position < m_yAxisMaxPosition) && (position > m_yAxisMinPosition)) + { + m_yActuatorPlugin->setAxisPosition(position); + m_axesPositionningState.yLimitReached = false; + } + } + catch(...) + { + movement.state = Tango::FAULT; + movement.status = "Couldn't move axis " + axisId; + updateTaskStateStatus(movement); + } } - } //+---------------------------------------------------------------------------- // @@ -595,39 +655,55 @@ void ASTaskManager::setAxisPosition(double position, std::string axisId){ // description : // //----------------------------------------------------------------------------- -bool ASTaskManager::refreshAxes(){ +bool ASTaskManager::refreshAxes() +{ yat::MutexLock gardDataMutex(m_dataMutex); //Getting position will refresh state - if ((m_xActuatorPlugin != NULL) && (m_yActuatorPlugin != NULL)){ + if ((m_xActuatorPlugin != NULL) && (m_yActuatorPlugin != NULL)) + { AS::ActuatorInterface::ActuatorInterface::AxisStateStatus xAxisStatus; - try{ + try + { m_managerDataPacket.xAxisPosition = m_xActuatorPlugin->getAxisCurrentPosition(); xAxisStatus = m_xActuatorPlugin->getAxisStateStatus(); - }catch(...){ + } + catch(...) + { m_managerDataPacket.taskStateStatus.state = Tango::FAULT; m_managerDataPacket.taskStateStatus.status = "At least one axis plugin is not correctly initialized! Try to Init..."; return false; } //Check if x axis is out of bounds - if ((m_managerDataPacket.xAxisPosition > m_xAxisMaxPosition) || (m_managerDataPacket.xAxisPosition < m_xAxisMinPosition)) + if ((m_managerDataPacket.xAxisPosition > m_xAxisMaxPosition) || (m_managerDataPacket.xAxisPosition < m_xAxisMinPosition)) + { m_axesPositionningState.xAxisPositionOutOfBounds = true; + } else + { m_axesPositionningState.xAxisPositionOutOfBounds = false; + } AS::ActuatorInterface::ActuatorInterface::AxisStateStatus yAxisStatus; - try{ + try + { m_managerDataPacket.yAxisPosition = m_yActuatorPlugin->getAxisCurrentPosition(); yAxisStatus = m_yActuatorPlugin->getAxisStateStatus(); - }catch(...){ + } + catch(...) + { m_managerDataPacket.taskStateStatus.state = Tango::FAULT; m_managerDataPacket.taskStateStatus.status = "At least one axis plugin is not correctly initialized! Try to Init..."; return false; } //Check if y axis is out of bounds if ((m_managerDataPacket.yAxisPosition > m_yAxisMaxPosition) || (m_managerDataPacket.yAxisPosition < m_yAxisMinPosition)) + { m_axesPositionningState.yAxisPositionOutOfBounds = true; - else + } + else + { m_axesPositionningState.yAxisPositionOutOfBounds = false; + } //Update axes state and status m_managerDataPacket.xStateStatus.state = xAxisStatus.axisState; @@ -636,7 +712,8 @@ bool ASTaskManager::refreshAxes(){ m_managerDataPacket.yStateStatus.status = yAxisStatus.axisStatus; //Only check connexions status - - if(!xAxisStatus.isConnexionOperational){ + if(!xAxisStatus.isConnexionOperational) + { m_managerDataPacket.taskStateStatus.state = Tango::FAULT; m_managerDataPacket.taskStateStatus.status = "Connexion with X Axis not operational! Check X Axis device then try to Init"; m_managerDataPacket.xStateStatus.state = Tango::FAULT; @@ -644,7 +721,9 @@ bool ASTaskManager::refreshAxes(){ m_managerDataPacket.yStateStatus.state = Tango::FAULT; m_managerDataPacket.yStateStatus.status = ""; return false; - }else if(!yAxisStatus.isConnexionOperational){ + } + else if(!yAxisStatus.isConnexionOperational) + { m_managerDataPacket.taskStateStatus.state = Tango::FAULT; m_managerDataPacket.taskStateStatus.status = "Connexion with Y Axis not operational! Check Y Axis device then try to Init"; m_managerDataPacket.xStateStatus.state = Tango::FAULT; @@ -654,7 +733,9 @@ bool ASTaskManager::refreshAxes(){ return false; } return true; - }else{ + } + else + { m_managerDataPacket.taskStateStatus.state = Tango::FAULT; m_managerDataPacket.taskStateStatus.status = "At least one axis plugin is not correctly initialized! Try to Init..."; } @@ -666,40 +747,51 @@ bool ASTaskManager::refreshAxes(){ // description : // //----------------------------------------------------------------------------- -void ASTaskManager::refreshTaskState(){ - +void ASTaskManager::refreshTaskState() +{ yat::MutexLock gardDataMutex(m_dataMutex); - if((m_managerDataPacket.xStateStatus.state == Tango::DISABLE) || (m_managerDataPacket.yStateStatus.state == Tango::DISABLE)){ + if((m_managerDataPacket.xStateStatus.state == Tango::DISABLE) || (m_managerDataPacket.yStateStatus.state == Tango::DISABLE)) + { m_managerDataPacket.taskStateStatus.state = Tango::STANDBY; m_managerDataPacket.taskStateStatus.status = "At least one axis is DISABLE, system is not ready to operate !"; } - if((m_managerDataPacket.xStateStatus.state == Tango::OFF) || (m_managerDataPacket.yStateStatus.state == Tango::OFF)){ + if((m_managerDataPacket.xStateStatus.state == Tango::OFF) || (m_managerDataPacket.yStateStatus.state == Tango::OFF)) + { m_managerDataPacket.taskStateStatus.state = Tango::STANDBY; m_managerDataPacket.taskStateStatus.status = "At least one axis is OFF, system is not ready to operate !"; } - if((m_managerDataPacket.xStateStatus.state == Tango::INIT) || (m_managerDataPacket.yStateStatus.state == Tango::INIT)){ + if((m_managerDataPacket.xStateStatus.state == Tango::INIT) || (m_managerDataPacket.yStateStatus.state == Tango::INIT)) + { m_managerDataPacket.taskStateStatus.state = Tango::STANDBY; m_managerDataPacket.taskStateStatus.status = "At least one axis is not initialize yet, system is not ready to operate !"; } //Recently added -> To test ! - if((m_managerDataPacket.xStateStatus.state == Tango::ALARM) || (m_managerDataPacket.yStateStatus.state == Tango::ALARM)){ + if((m_managerDataPacket.xStateStatus.state == Tango::ALARM) || (m_managerDataPacket.yStateStatus.state == Tango::ALARM)) + { m_managerDataPacket.taskStateStatus.state = Tango::STANDBY; m_managerDataPacket.taskStateStatus.status = "At least one axis is in ALARM state, can't operate !"; } - if((m_managerDataPacket.xStateStatus.state == Tango::MOVING) || (m_managerDataPacket.yStateStatus.state == Tango::MOVING)){ + if((m_managerDataPacket.xStateStatus.state == Tango::MOVING) || (m_managerDataPacket.yStateStatus.state == Tango::MOVING)) + { m_managerDataPacket.taskStateStatus.state = Tango::MOVING; m_managerDataPacket.taskStateStatus.status = "At least one axis is moving"; } - if((m_managerDataPacket.xStateStatus.state == Tango::FAULT) || (m_managerDataPacket.yStateStatus.state == Tango::FAULT)){ + if((m_managerDataPacket.xStateStatus.state == Tango::FAULT) || (m_managerDataPacket.yStateStatus.state == Tango::FAULT)) + { m_managerDataPacket.taskStateStatus.state = Tango::STANDBY; m_managerDataPacket.taskStateStatus.status = "At least one axis is FAULT, system is not ready to operate !"; } - if((m_managerDataPacket.xStateStatus.state == Tango::ON) && (m_managerDataPacket.yStateStatus.state == Tango::ON)){ - if(m_isXAxisCalibrated && m_isYAxisCalibrated){ + if((m_managerDataPacket.xStateStatus.state == Tango::ON) && (m_managerDataPacket.yStateStatus.state == Tango::ON)) + { + if(m_isXAxisCalibrated && m_isYAxisCalibrated) + { m_managerDataPacket.taskStateStatus.state = Tango::ON; if(!m_simulatedMode) + { m_managerDataPacket.taskStateStatus.status = "Actuator System ready"; - else { // Simulated mode : Status with current oreder informations + } + else + { // Simulated mode : Status with current oreder informations yat::MutexLock gardDataMutex(m_dataMutex); ostringstream convertStepsX; convertStepsX<<m_simulatedXTranslation; @@ -713,17 +805,21 @@ void ASTaskManager::refreshTaskState(){ \n-> Y axis should move with " + stepsNbStrY + " setps "; } - }else{ + } + else + { m_managerDataPacket.taskStateStatus.state = Tango::STANDBY; m_managerDataPacket.taskStateStatus.status = "Make sure that both X and Y axes are calibrated !"; } } - if((m_axesPositionningState.xAxisPositionOutOfBounds || m_axesPositionningState.yAxisPositionOutOfBounds)){ + if((m_axesPositionningState.xAxisPositionOutOfBounds || m_axesPositionningState.yAxisPositionOutOfBounds)) + { m_managerDataPacket.taskStateStatus.state = Tango::ALARM; m_managerDataPacket.taskStateStatus.status = "Actuator system can't operate with at least one axis out of bounds !"; - if (m_axesPositionningState.xAxisPositionOutOfBounds){ + if (m_axesPositionningState.xAxisPositionOutOfBounds) + { ostringstream maxPosXStream; maxPosXStream<<m_xAxisMaxPosition; std::string maxPosXStr = maxPosXStream.str(); @@ -733,7 +829,8 @@ void ASTaskManager::refreshTaskState(){ m_managerDataPacket.taskStateStatus.status = m_managerDataPacket.taskStateStatus.status + "\nX Axis is out of bounds : [" + minPosXStr + " - " + maxPosXStr + "]"; } - if (m_axesPositionningState.yAxisPositionOutOfBounds){ + if (m_axesPositionningState.yAxisPositionOutOfBounds) + { ostringstream maxPosYStream; maxPosYStream<<m_yAxisMaxPosition; std::string maxPosYStr = maxPosYStream.str(); @@ -746,12 +843,15 @@ void ASTaskManager::refreshTaskState(){ } if(m_axesPositionningState.xLimitReached) + { m_managerDataPacket.taskStateStatus.status = m_managerDataPacket.taskStateStatus.status + "\n" + m_axesPositionningState.xLimitStatus; - + } if (m_axesPositionningState.yLimitReached) + { m_managerDataPacket.taskStateStatus.status = m_managerDataPacket.taskStateStatus.status + "\n" + m_axesPositionningState.yLimitStatus; + } } //+---------------------------------------------------------------------------- @@ -761,18 +861,24 @@ void ASTaskManager::refreshTaskState(){ // description : To start actuator plugin. // //----------------------------------------------------------------------------- -bool ASTaskManager::startPlugins(){ +bool ASTaskManager::startPlugins() +{ StateStatus stateStatus; - try{ + try + { m_xActuatorPlugin->init(m_hostDev, m_xAxisDeviceAdress); m_yActuatorPlugin->init(m_hostDev, m_yAxisDeviceAdress); return true; - }catch(Tango::DevFailed &df){ + } + catch(Tango::DevFailed &df) + { stateStatus.state = Tango::FAULT; stateStatus.status = "Couldn't start at least one plugin : caught DevFailed exception.."; updateTaskStateStatus(stateStatus); return false; - }catch(...){ + } + catch(...) + { stateStatus.state = Tango::FAULT; stateStatus.status = "Couldn't start at least one plugin : caught (...) exception.."; updateTaskStateStatus(stateStatus); @@ -786,7 +892,8 @@ bool ASTaskManager::startPlugins(){ // description : To init axes units. // //----------------------------------------------------------------------------- -void ASTaskManager::initAxesUnits(){ +void ASTaskManager::initAxesUnits() +{ m_axesUnits.xAxisUnit = m_xActuatorPlugin->getAxisUnit(); m_axesUnits.yAxisUnit = m_yActuatorPlugin->getAxisUnit(); } @@ -798,51 +905,66 @@ void ASTaskManager::initAxesUnits(){ // description : To initialize actuator plugin. // //----------------------------------------------------------------------------- -bool ASTaskManager::actuatorPluginInitialisation(std::string axisPluginType, std::string pluginPath, std::string axisId){ +bool ASTaskManager::actuatorPluginInitialisation(std::string axisPluginType, std::string pluginPath, std::string axisId) +{ StateStatus stateStatus; // STEP 1 : Load actuator plugin - try{ + try + { // use the plugin manager std::pair<yat::IPlugInInfo*, yat::IPlugInFactory*> plugin; plugin = ASPluginManager::instance().load(pluginPath); m_pluginInfo = plugin.first; m_pluginFactory = plugin.second; } - catch (Tango::DevFailed& df){ + catch (Tango::DevFailed& df) + { stateStatus.state = Tango::FAULT; stateStatus.status = "Error on loading Power Supply Control plugin!"; updateTaskStateStatus(stateStatus); return false; } - catch (...){ + catch (...) + { stateStatus.state = Tango::FAULT; - stateStatus.status = "Plugin load failed!"; + stateStatus.status = "Plugin load failed: The plugin path does not exist"; updateTaskStateStatus(stateStatus); return false; } // STEP 2 : Interface name check - if (pluginPath != ""){ - if ( m_pluginInfo->get_plugin_id() == axisPluginType ){ + if (pluginPath != "") + { + std::string plugin_info_id_str = m_pluginInfo->get_plugin_id(); + std::transform(plugin_info_id_str.begin(), plugin_info_id_str.end(), plugin_info_id_str.begin(), ::toupper); + + if ( plugin_info_id_str == axisPluginType ) + { string id = m_pluginInfo->get_plugin_id(); //Plugin factory instanciation: yat::IPlugInObject* obj; m_pluginFactory->create(obj); if(axisId == X_AXIS_ID) + { m_xActuatorPlugin = reinterpret_cast<AS::ActuatorInterface::ActuatorInterface*>(obj); + } else if(axisId == Y_AXIS_ID) + { m_yActuatorPlugin = reinterpret_cast<AS::ActuatorInterface::ActuatorInterface*>(obj); + } } - else{ + else + { stateStatus.state = Tango::FAULT; stateStatus.status = "Error on loading plugin: bad actuator type name : " + axisPluginType + "\nOn axis " + axisId; updateTaskStateStatus(stateStatus); return false; } } - else{ + else + { stateStatus.state = Tango::FAULT; stateStatus.status = "Error on loading plugin: pluginPath for axis " + axisId + "is empty !"; updateTaskStateStatus(stateStatus); @@ -850,22 +972,29 @@ bool ASTaskManager::actuatorPluginInitialisation(std::string axisPluginType, std } // STEP 3 : Init plugin - try{ + try + { // Use the plugin helper yat4tango::DevicePlugInHelper myPluginHelper(m_hostDev, _dynAttrManager); if(axisId == X_AXIS_ID) + { myPluginHelper.register_plugin(m_xActuatorPlugin); + } else if(axisId == Y_AXIS_ID) + { myPluginHelper.register_plugin(m_yActuatorPlugin); + } } - catch (Tango::DevFailed & df){ + catch (Tango::DevFailed & df) + { stateStatus.state = Tango::FAULT; stateStatus.status = "Failed to register Power Supply Control plugin for " + axisId; updateTaskStateStatus(stateStatus); return false; } - catch (...){ + catch (...) + { stateStatus.state = Tango::FAULT; stateStatus.status = "Failed to register Power Supply Control plugin for " + axisId; updateTaskStateStatus(stateStatus); @@ -882,7 +1011,8 @@ bool ASTaskManager::actuatorPluginInitialisation(std::string axisPluginType, std // description : Serialize the state/status update // //----------------------------------------------------------------------------- -void ASTaskManager::updateTaskStateStatus(StateStatus stateStatus){ +void ASTaskManager::updateTaskStateStatus(StateStatus stateStatus) +{ yat::MutexLock gardDataMutex(m_dataMutex); m_managerDataPacket.taskStateStatus = stateStatus; } @@ -893,7 +1023,8 @@ void ASTaskManager::updateTaskStateStatus(StateStatus stateStatus){ // description : // //----------------------------------------------------------------------------- -ASTaskManager::StateStatus ASTaskManager::getTaskCurrentState(){ +ASTaskManager::StateStatus ASTaskManager::getTaskCurrentState() +{ return m_managerDataPacket.taskStateStatus; } } // Namespace ASTaskManager diff --git a/ActuatorSystem/src/ASTaskManager.h b/ActuatorSystem/src/ASTaskManager.h old mode 100644 new mode 100755 index af164aebb3c2a424ee4e3c500d7387401531f72a..1d956fc33cf8ea34660bd7f7c292dd659b95c081 --- a/ActuatorSystem/src/ASTaskManager.h +++ b/ActuatorSystem/src/ASTaskManager.h @@ -88,8 +88,8 @@ public: //COMMANDS - void i_setXAxisCalibrationState(bool state)throw (Tango::DevFailed); - void i_setYAxisCalibrationState(bool state)throw (Tango::DevFailed); + void i_setXAxisCalibrationState(bool state); + void i_setYAxisCalibrationState(bool state); void i_moveXAxis(double movement); void i_moveYAxis(double movement); @@ -103,8 +103,7 @@ public: protected: //- process_message (implements yat4tango::DeviceTask pure virtual method) - virtual void process_message (yat::Message& msg) - throw (Tango::DevFailed); + virtual void process_message (yat::Message& msg); //Mutex for data access yat::Mutex m_dataMutex; diff --git a/ActuatorSystem/src/ActuatorSystem.cpp b/ActuatorSystem/src/ActuatorSystem.cpp old mode 100644 new mode 100755 index 6ebd30e4ed5f83cb818a33f834b1e26af63b6a4c..b9d0fdfe5906969e5d25a6fc020f4c47e0c7cce0 --- a/ActuatorSystem/src/ActuatorSystem.cpp +++ b/ActuatorSystem/src/ActuatorSystem.cpp @@ -104,17 +104,22 @@ void ActuatorSystem::delete_device() { if (_taskManager) + { delete _taskManager; + } - // delete _dynAttrManager - if (this->_dynAttrManager){ - try{ - _dynAttrManager->remove_attributes(); + // delete m_dyn_attr_manager + if (m_dyn_attr_manager) + { + try + { + m_dyn_attr_manager->remove_attributes(); } - catch (...){ + catch (...) + { } - delete this->_dynAttrManager; - this->_dynAttrManager = NULL; + delete m_dyn_attr_manager; + m_dyn_attr_manager = NULL; } // Delete device allocated objects @@ -137,45 +142,52 @@ void ActuatorSystem::delete_device() //----------------------------------------------------------------------------- void ActuatorSystem::init_device() { - // Initialise variables to default values //-------------------------------------------- get_device_property(); CREATE_SCALAR_ATTRIBUTE(attr_isYCalibrated_read, false); CREATE_SCALAR_ATTRIBUTE(attr_isXCalibrated_read, false); CREATE_SCALAR_ATTRIBUTE(attr_isSystemReady_read, false); - _dynAttrManager = 0; + m_dyn_attr_manager = 0; _taskManager = 0; - this->_initDone = false; + _initDone = false; INFO_STREAM << "Create the InnerAppender in order to manage logs." << endl; yat4tango::InnerAppender::initialize(this); INFO_STREAM << "Create the DeviceInfo in order to manage info on versions." << endl; yat4tango::DeviceInfo::initialize( this, YAT_XSTR(PROJECT_NAME), YAT_XSTR(PROJECT_VERSION)); - yat4tango::DeviceInfo::add_dependency(this, "ActuatorSystem ", YAT_XSTR(actuatorSystem_PROJECT_VERSION)); INFO_STREAM << "ActuatorSystem::ActuatorSystem() create device " << device_name << endl; std::string propertiesState = check_properties(); - if (propertiesState != PROPERTIES_OK){ + if (propertiesState != PROPERTIES_OK) + { set_status (propertiesState); set_state (Tango::FAULT); - }else{ + } + else + { bool simulated_mode = true; //check Mode if (deviceMode == NORMAL_MODE) - simulated_mode = false; + { + simulated_mode = false; + } // Creation of dynAttrManager - try{ - _dynAttrManager = new yat4tango::DynamicAttributeManager(this); - }catch( Tango::DevFailed& df ){ + try + { + m_dyn_attr_manager = new yat4tango::DynamicAttributeManager(this); + } + catch( Tango::DevFailed& df ) + { ERROR_STREAM << df << std::endl; set_status ("Initialization error [Tango Exception caught while instantiating DynamicAttributeManager]"); set_state (Tango::FAULT); return; } - catch(...){ + catch(...) + { std::string err_msg = "Initialization error [unknown exception caught while instantiating DynamicAttributeManager]"; ERROR_STREAM << err_msg << std::endl; set_status (err_msg); @@ -192,21 +204,25 @@ void ActuatorSystem::init_device() yAxisMinPositionInt = (int) yAxisMinPosition; // Creation of ASTaskManager - try{ - _taskManager = new ASTaskManager::ASTaskManager(this, _dynAttrManager, + try + { + _taskManager = new ASTaskManager::ASTaskManager(this, m_dyn_attr_manager, xAxisPluginType, xAxisDeviceAdress, yAxisPluginType, yAxisDeviceAdress, xAxisPluginPath, yAxisPluginPath, xAxisMinPositionInt, xAxisMaxPositionInt, yAxisMinPositionInt, yAxisMaxPositionInt, simulated_mode); - }catch( Tango::DevFailed& df ){ + } + catch( Tango::DevFailed& df ) + { ERROR_STREAM << df << std::endl; set_status ("Initialization error [Tango Exception caught while instantiating ASTaskManager]"); set_state (Tango::FAULT); return; } - catch(...){ + catch(...) + { std::string err_msg = "Initialization error [unknown exception caught while instantiating ASTaskManager]"; ERROR_STREAM << err_msg << std::endl; set_status (err_msg); @@ -214,7 +230,7 @@ void ActuatorSystem::init_device() return; } // Start ASTaskManager - try + try { if (_taskManager) _taskManager->go(500); @@ -241,7 +257,7 @@ void ActuatorSystem::init_device() _taskManager = NULL; return; } - this->_initDone = true; + _initDone = true; //Task has been initialized, get axes units setAxesUnits(_taskManager->i_getAxesUnits()); } @@ -253,11 +269,11 @@ void ActuatorSystem::init_device() // description : To set units on xPosition and yPosition attributes // //----------------------------------------------------------------------------- -void ActuatorSystem::setAxesUnits(ASTaskManager::AxesUnits axesUnits){ +void ActuatorSystem::setAxesUnits(ASTaskManager::AxesUnits axesUnits) +{ std::string xAxisUnit = axesUnits.xAxisUnit; std::string yAxisUnit = axesUnits.yAxisUnit; - vector<string> vecPositionsAttributes; Tango::DevVarStringArray dvsa_attribute; vecPositionsAttributes.push_back("xPosition"); @@ -432,8 +448,8 @@ void ActuatorSystem::get_device_property() // End of Automatic code generation //------------------------------------------------------------------ - yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "SimulatedAxis", "XAxisPluginType"); - yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "SimulatedAxis", "YAxisPluginType"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "StandardMotor", "XAxisPluginType"); + yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "StandardMotor", "YAxisPluginType"); yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "Precise/which/device", "XAxisPluginPath"); yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "Precise/which/device", "YAxisPluginPath"); yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "Precise/which/device", "XAxisDeviceAdress"); @@ -444,6 +460,9 @@ void ActuatorSystem::get_device_property() yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "1", "YAxisMaxPosition"); yat4tango::PropertyHelper::create_property_if_empty(this, dev_prop, "SIMULATED", "DeviceMode"); + std::transform(xAxisPluginType.begin(), xAxisPluginType.end(), xAxisPluginType.begin(), ::toupper); + std::transform(yAxisPluginType.begin(), yAxisPluginType.end(), yAxisPluginType.begin(), ::toupper); + } //+---------------------------------------------------------------------------- // @@ -454,8 +473,10 @@ void ActuatorSystem::get_device_property() //----------------------------------------------------------------------------- void ActuatorSystem::always_executed_hook() { - if(_initDone){ - if (_taskManager){ + if(_initDone) + { + if (_taskManager) + { // Refresh beam data ASTaskManager::ASTaskManager::TaskManagerDataPacket managerDataPacket = _taskManager->i_getManagerDataPacket(); // Update attributs values @@ -494,13 +515,18 @@ void ActuatorSystem::write_xPosition(Tango::WAttribute &attr) double newXPosition; attr.get_write_value(newXPosition); - if(_initDone){ - if (_taskManager){ - try{ + if(_initDone) + { + if (_taskManager) + { + try + { set_state(Tango::MOVING); set_status("Starting movement on x axis..."); _taskManager->i_setXAxisPosition(newXPosition); - }catch(Tango::DevFailed &df){ + } + catch(Tango::DevFailed &df) + { RETHROW_DEVFAILED(df,"","",""); } } @@ -520,13 +546,18 @@ void ActuatorSystem::write_yPosition(Tango::WAttribute &attr) double newYPosition; attr.get_write_value(newYPosition); - if(_initDone){ - if(_taskManager){ - try{ + if(_initDone) + { + if(_taskManager) + { + try + { set_state(Tango::MOVING); set_status("Starting movement on y axis..."); _taskManager->i_setYAxisPosition(newYPosition); - }catch(Tango::DevFailed &df){ + } + catch(Tango::DevFailed &df) + { RETHROW_DEVFAILED(df,"","",""); } } @@ -543,7 +574,7 @@ void ActuatorSystem::write_yPosition(Tango::WAttribute &attr) void ActuatorSystem::read_isSystemReady(Tango::Attribute &attr) { DEBUG_STREAM << "ActuatorSystem::read_isSystemReady(Tango::Attribute &attr) entering... "<< endl; - if (*attr_isXCalibrated_read && *attr_isYCalibrated_read && (this->get_state() == Tango::ON)) + if (*attr_isXCalibrated_read && *attr_isYCalibrated_read && (get_state() == Tango::ON)) *attr_isSystemReady_read = true; else *attr_isSystemReady_read = false; @@ -680,13 +711,17 @@ void ActuatorSystem::write_isXCalibrated(Tango::WAttribute &attr) { DEBUG_STREAM << "ActuatorSystem::write_isXCalibrated(Tango::WAttribute &attr) entering... "<< endl; - if(_initDone){ - if (_taskManager){ + if(_initDone) + { + if (_taskManager) + { attr.get_write_value(attr_isXCalibrated_write); double tmpXRatio = attr_xLinearRatio_write; //Check value of xLinearRatio - if(attr_isXCalibrated_write){ - if(tmpXRatio != 0){ + if(attr_isXCalibrated_write) + { + if(tmpXRatio != 0) + { _taskManager->i_setXAxisCalibrationState(true); //Update read value *attr_isXCalibrated_read = attr_isXCalibrated_write; @@ -699,7 +734,8 @@ void ActuatorSystem::write_isXCalibrated(Tango::WAttribute &attr) (const char *)"ActuatorSystem::write_isXCalibrated(Tango::WAttribute &attr)"); } } - else{ + else + { *attr_isXCalibrated_read = attr_isXCalibrated_write; _taskManager->i_setXAxisCalibrationState(false); } @@ -730,13 +766,17 @@ void ActuatorSystem::read_isYCalibrated(Tango::Attribute &attr) void ActuatorSystem::write_isYCalibrated(Tango::WAttribute &attr) { DEBUG_STREAM << "ActuatorSystem::write_isYCalibrated(Tango::WAttribute &attr) entering... "<< endl; - if(_initDone){ - if (_taskManager){ + if(_initDone) + { + if (_taskManager) + { attr.get_write_value(attr_isYCalibrated_write); double tmpYRatio = attr_yLinearRatio_write; //Check value of xLinearRatio - if(attr_isYCalibrated_write){ - if(tmpYRatio != 0){ + if(attr_isYCalibrated_write) + { + if(tmpYRatio != 0) + { //To apply last value of ratio, will also set calibrated state to true _taskManager->i_setYAxisCalibrationState(true); //Update read value @@ -750,7 +790,8 @@ void ActuatorSystem::write_isYCalibrated(Tango::WAttribute &attr) (const char *)"ActuatorSystem::write_isXCalibrated(Tango::WAttribute &attr)"); } } - else{ + else + { *attr_isYCalibrated_read = attr_isYCalibrated_write; _taskManager->i_setYAxisCalibrationState(false); } @@ -823,11 +864,16 @@ void ActuatorSystem::write_yLinearRatio(Tango::WAttribute &attr) void ActuatorSystem::stop_axes() { DEBUG_STREAM << "ActuatorSystem::stop_axes(): entering... !" << endl; - if(_initDone){ - if (_taskManager){ - try{ + if(_initDone) + { + if (_taskManager) + { + try + { _taskManager->i_stopAxes(); - }catch(Tango::DevFailed &df){ + } + catch(Tango::DevFailed &df) + { RETHROW_DEVFAILED(df,"","",""); } } @@ -848,16 +894,22 @@ void ActuatorSystem::stop_axes() void ActuatorSystem::move_xaxis_relative(Tango::DevDouble argin) { DEBUG_STREAM << "ActuatorSystem::move_xaxis_relative(): entering... !" << endl; - if(_initDone){ - if (_taskManager){ - if(argin != 0){ - try{ + if(_initDone) + { + if (_taskManager) + { + if(argin != 0) + { + try + { set_state(Tango::MOVING); set_status("Starting movement on x axis..."); double relativeMovement = argin; _taskManager->i_moveXAxis(relativeMovement); - }catch(Tango::DevFailed &df){ + } + catch(Tango::DevFailed &df) + { RETHROW_DEVFAILED(df,"","",""); } } @@ -870,7 +922,7 @@ void ActuatorSystem::move_xaxis_relative(Tango::DevDouble argin) * method: ActuatorSystem::move_yaxis_relative * * description: method to execute "MoveYAxisRelative" - * To move Y axis with a relative movement + * To move Y axis with a relative movement * * @param argin * @@ -879,16 +931,22 @@ void ActuatorSystem::move_xaxis_relative(Tango::DevDouble argin) void ActuatorSystem::move_yaxis_relative(Tango::DevDouble argin) { DEBUG_STREAM << "ActuatorSystem::move_yaxis_relative(): entering... !" << endl; - if(_initDone){ - if (_taskManager){ - if(argin != 0){ - try{ + if(_initDone) + { + if (_taskManager) + { + if(argin != 0) + { + try + { set_state(Tango::MOVING); set_status("Starting movement on y axis..."); double relativeMovement = argin; _taskManager->i_moveYAxis(relativeMovement); - }catch(Tango::DevFailed &df){ + } + catch(Tango::DevFailed &df) + { RETHROW_DEVFAILED(df,"","",""); } } @@ -901,7 +959,6 @@ void ActuatorSystem::move_yaxis_relative(Tango::DevDouble argin) * method: ActuatorSystem::apply_relative_movement_on_axes * * description: method to execute "ApplyRelativeMovementOnAxes" - * Argin[0] = movementOnXAxis; * Argin[1] = movementOnYAxis * * @param argin @@ -912,23 +969,29 @@ void ActuatorSystem::apply_relative_movement_on_axes(const Tango::DevVarDoubleAr { DEBUG_STREAM << "ActuatorSystem::apply_relative_movement_on_axes(): entering... !" << endl; - if(_initDone){ - if (_taskManager){ + if(_initDone) + { + if (_taskManager) + { double xRelativeMovement; double yRelativeMovement; xRelativeMovement = (double)(*argin)[0]; yRelativeMovement = (double)(*argin)[1]; - if ((xRelativeMovement != 0) || (yRelativeMovement != 0)){ + if ((xRelativeMovement != 0) || (yRelativeMovement != 0)) + { set_state(Tango::MOVING); set_status("Applying pixel correction on axes"); - try{ + try + { double xRelativeMovementToSet = (double)(attr_xLinearRatio_write * xRelativeMovement); double yRelativeMovementToSet = (double)(attr_yLinearRatio_write * yRelativeMovement); _taskManager->i_moveAxes(xRelativeMovementToSet, yRelativeMovementToSet); - }catch(Tango::DevFailed &df){ + } + catch(Tango::DevFailed &df) + { RETHROW_DEVFAILED(df,"","",""); } } @@ -943,7 +1006,8 @@ void ActuatorSystem::apply_relative_movement_on_axes(const Tango::DevVarDoubleAr // description : To check if properties are ok... // //----------------------------------------------------------------------------- -std::string ActuatorSystem::check_properties(){ +std::string ActuatorSystem::check_properties() +{ if (yAxisMinPosition >= yAxisMaxPosition) return "YAxisMinPosition can't be superior to YAxisMaxPosition"; if (xAxisMinPosition >= xAxisMaxPosition) @@ -970,4 +1034,6 @@ std::string ActuatorSystem::check_properties(){ + + } // namespace diff --git a/ActuatorSystem/src/ActuatorSystem.h b/ActuatorSystem/src/ActuatorSystem.h old mode 100644 new mode 100755 index 59978c94c75c405e8553dcec37a8af25e54a1d6e..9f5f4cff4e8edf6c739bf1091ffaceec960aac30 --- a/ActuatorSystem/src/ActuatorSystem.h +++ b/ActuatorSystem/src/ActuatorSystem.h @@ -59,7 +59,7 @@ namespace ActuatorSystem_ns /** * Class Description: - * This device should be used for BeamPositionTracking application only. This device's aim is to organize motors movements on two axes ( X and Y ) + * This device should be used for BeamPositionTracking application only. This device's aim is to organize motors movements on two axes ( X and Y ) * in order to move beam centroid position. */ @@ -119,11 +119,13 @@ public : */ string xAxisPluginPath; /** - * X Axis plugin type + * X Axis plugin type. + * Available values: StandardMotor ( Supports: GalilAxis, SimulatedMotor and PowerPMACAxis ) */ string xAxisPluginType; /** - * Y Axis plugin type + * Y Axis plugin type. + * Available values: StandardMotor ( Supports: GalilAxis, SimulatedMotor and PowerPMACAxis ) */ string yAxisPluginType; /** @@ -379,14 +381,13 @@ public : */ void move_xaxis_relative(Tango::DevDouble); /** - * To move Y axis with a relative movement + * To move Y axis with a relative movement * @param argin * @exception DevFailed */ void move_yaxis_relative(Tango::DevDouble); /** - * Argin[0] = movementOnXAxis; - * Argin[1] = movementOnYAxis + * Argin[1] = movementOnYAxis * @param argin * @exception DevFailed */ @@ -409,7 +410,7 @@ protected : public : - yat4tango::DynamicAttributeManager* _dynAttrManager; + yat4tango::DynamicAttributeManager* m_dyn_attr_manager; private : diff --git a/ActuatorSystem/src/ActuatorSystemClass.cpp b/ActuatorSystem/src/ActuatorSystemClass.cpp index c2854a6c8d158b51656dafbc6bcfdd45fcf3f326..2de2080e4467308d2731a290e111b5fcd00d23cf 100644 --- a/ActuatorSystem/src/ActuatorSystemClass.cpp +++ b/ActuatorSystem/src/ActuatorSystemClass.cpp @@ -511,9 +511,10 @@ void ActuatorSystemClass::set_default_property() add_wiz_dev_prop(prop_name, prop_desc); prop_name = "XAxisPluginType"; - prop_desc = "X Axis plugin type"; - prop_def = ""; + prop_desc = "X Axis plugin type.\nAvailable values: StandardMotor ( Supports: GalilAxis, SimulatedMotor and PowerPMACAxis )"; + prop_def = "StandardMotor"; vect_data.clear(); + vect_data.push_back("StandardMotor"); if (prop_def.length()>0) { Tango::DbDatum data(prop_name); @@ -525,9 +526,10 @@ void ActuatorSystemClass::set_default_property() add_wiz_dev_prop(prop_name, prop_desc); prop_name = "YAxisPluginType"; - prop_desc = "Y Axis plugin type"; - prop_def = ""; + prop_desc = "Y Axis plugin type.\nAvailable values: StandardMotor ( Supports: GalilAxis, SimulatedMotor and PowerPMACAxis )"; + prop_def = "StandardMotor"; vect_data.clear(); + vect_data.push_back("StandardMotor"); if (prop_def.length()>0) { Tango::DbDatum data(prop_name); @@ -582,8 +584,9 @@ void ActuatorSystemClass::set_default_property() prop_name = "XAxisMaxPosition"; prop_desc = "Set maximum position of X axis, in axis position's unit..."; - prop_def = ""; + prop_def = "1"; vect_data.clear(); + vect_data.push_back("1"); if (prop_def.length()>0) { Tango::DbDatum data(prop_name); @@ -596,8 +599,9 @@ void ActuatorSystemClass::set_default_property() prop_name = "XAxisMinPosition"; prop_desc = "Set minimum position of X axis, in axis position's unit..."; - prop_def = ""; + prop_def = "0"; vect_data.clear(); + vect_data.push_back("0"); if (prop_def.length()>0) { Tango::DbDatum data(prop_name); @@ -610,8 +614,9 @@ void ActuatorSystemClass::set_default_property() prop_name = "YAxisMaxPosition"; prop_desc = "Set maximum position of Y axis, in axis position's unit..."; - prop_def = ""; + prop_def = "1"; vect_data.clear(); + vect_data.push_back("1"); if (prop_def.length()>0) { Tango::DbDatum data(prop_name); @@ -624,8 +629,9 @@ void ActuatorSystemClass::set_default_property() prop_name = "YAxisMinPosition"; prop_desc = "Set minimum position of Y axis, in axis position's unit..."; - prop_def = ""; + prop_def = "0"; vect_data.clear(); + vect_data.push_back("0"); if (prop_def.length()>0) { Tango::DbDatum data(prop_name); @@ -638,8 +644,9 @@ void ActuatorSystemClass::set_default_property() prop_name = "DeviceMode"; prop_desc = "Either NORMAL or SIMULATED;\nIn simulated mode, this device will only read state/status and positions from axes, it will not send any new positions...."; - prop_def = ""; + prop_def = "SIMULATED"; vect_data.clear(); + vect_data.push_back("SIMULATED"); if (prop_def.length()>0) { Tango::DbDatum data(prop_name); @@ -679,7 +686,7 @@ void ActuatorSystemClass::write_class_property() // Put Description Tango::DbDatum description("Description"); vector<string> str_desc; - str_desc.push_back("This device should be used for BeamPositionTracking application only. This device's aim is to organize motors movements on two axes ( X and Y ) "); + str_desc.push_back("This device should be used for BeamPositionTracking application only. This device's aim is to organize motors movements on two axes ( X and Y )"); str_desc.push_back("in order to move beam centroid position."); description << str_desc; data.push_back(description); diff --git a/PluginInterfaces/include/ActuatorInterface.h b/PluginInterfaces/include/ActuatorInterface.h old mode 100644 new mode 100755 index 298b3170479c39130bcf6643ee8a25ae128347fd..3d30a3b731c6505df29f18c50eafc6a908f0dbef --- a/PluginInterfaces/include/ActuatorInterface.h +++ b/PluginInterfaces/include/ActuatorInterface.h @@ -29,25 +29,19 @@ class ActuatorInterface : public yat4tango::DevicePlugIn Tango::DevState axisState; }; - virtual void init(Tango::DeviceImpl * host_device, std::string deviceAdress) - throw (Tango::DevFailed) = 0; + virtual void init(Tango::DeviceImpl * host_device, std::string deviceAdress) = 0; //SETTER - virtual void setAxisPosition(double position) - throw (Tango::DevFailed) = 0; + virtual void setAxisPosition(double position) = 0; - virtual void moveAxisRelative(double relativeMovement) - throw (Tango::DevFailed) = 0; + virtual void moveAxisRelative(double relativeMovement) = 0; - virtual void stopAxisMovement() - throw (Tango::DevFailed) = 0; + virtual void stopAxisMovement() = 0; //GETTER - virtual double getAxisCurrentPosition() - throw (Tango::DevFailed) = 0; + virtual double getAxisCurrentPosition() = 0; - virtual std::string getAxisUnit() - throw (Tango::DevFailed) = 0; + virtual std::string getAxisUnit() = 0; // Plugin is supposed to return his state this way: // - ON -> Device is ready to move @@ -55,8 +49,7 @@ class ActuatorInterface : public yat4tango::DevicePlugIn // - STANDBY - > Device is waiting for an action (in this state : init/Standby/off ...) // - FAULT -> Device is not available (off) - virtual AxisStateStatus getAxisStateStatus() - throw (Tango::DevFailed) = 0; + virtual AxisStateStatus getAxisStateStatus() = 0; }; } // namespace Actuator Interface diff --git a/PluginInterfaces/pom.xml b/PluginInterfaces/pom.xml old mode 100644 new mode 100755 index c8707fd365a88fedd5673a09544470f735c5efc8..afa5cb520e280174a6aef7f471d666a1565d0778 --- a/PluginInterfaces/pom.xml +++ b/PluginInterfaces/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>fr.soleil.device</groupId> <artifactId>ActuatorSystem</artifactId> - <version>1.0.8-SNAPSHOT</version> + <version>1.1.0-SNAPSHOT</version> </parent> <groupId>fr.soleil.device.ActuatorSystem</groupId> diff --git a/pom.xml b/pom.xml old mode 100644 new mode 100755 index 24c83258b6c076a2b763da0a79046ae1689ec438..b7ac3d9e7fdb874599bb93b93c708483caa37134 --- a/pom.xml +++ b/pom.xml @@ -10,7 +10,7 @@ <groupId>fr.soleil.device</groupId> <artifactId>ActuatorSystem</artifactId> - <version>1.0.8-SNAPSHOT</version> + <version>1.1.0-SNAPSHOT</version> <packaging>pom</packaging>