diff --git a/ChaosMetadataService/api/node/NodeGetDescription.cpp b/ChaosMetadataService/api/node/NodeGetDescription.cpp index e83c1177786ec945ef82ad3432ae59d72526fc0d..d7d1fed714b2fb74118e697a79f229b2b67e9ff9 100644 --- a/ChaosMetadataService/api/node/NodeGetDescription.cpp +++ b/ChaosMetadataService/api/node/NodeGetDescription.cpp @@ -49,7 +49,9 @@ CDWUniquePtr NodeGetDescription::execute(CDWUniquePtr api_data) { LOG_AND_TROW(USRA_ERR, err, "Error fetching node '"+ api_data->getStringValue(NodeDefinitionKey::NODE_UNIQUE_ID)+"' decription") } } else { - LOG_AND_TROW(USRA_ERR, -3, "Node '"+ api_data->getStringValue(NodeDefinitionKey::NODE_UNIQUE_ID)+"' not found") + // LOG_AND_TROW(USRA_ERR, -3, "Node '"+ api_data->getStringValue(NodeDefinitionKey::NODE_UNIQUE_ID)+"' not found") + + LERR_<< "Node '"+ api_data->getStringValue(NodeDefinitionKey::NODE_UNIQUE_ID)+"' not found"; } return CDWUniquePtr(result); } diff --git a/chaos/cu_toolkit/control_manager/AbstractControlUnit.cpp b/chaos/cu_toolkit/control_manager/AbstractControlUnit.cpp index 2f0c51e1928ec6a9ba4c6293ec2ad4f9ead73f44..3a3c67184de0c9a2a9365fbb351e9223440db410 100644 --- a/chaos/cu_toolkit/control_manager/AbstractControlUnit.cpp +++ b/chaos/cu_toolkit/control_manager/AbstractControlUnit.cpp @@ -2806,7 +2806,8 @@ void AbstractControlUnit::_setBypassState(bool bypass_stage, end = accessor_instances.end(); it != end; it++) { - (*it)->send(&cmd, chaos::common::constants::CUTimersTimeoutinMSec); + // (*it)->send(&cmd, chaos::common::constants::CUTimersTimeoutinMSec); + (*it)->setBypass(bypass_stage); } ACULDBG_ << "BYPASS COMMAND:"<<bypass_stage; setBypassFlag(bypass_stage); diff --git a/chaos/cu_toolkit/control_manager/AbstractControlUnit.h b/chaos/cu_toolkit/control_manager/AbstractControlUnit.h index 0f5f82e82487a3401e593bd339a522920f554a5f..8067625a88710a11d855477a1e6b7f8d5e832692 100644 --- a/chaos/cu_toolkit/control_manager/AbstractControlUnit.h +++ b/chaos/cu_toolkit/control_manager/AbstractControlUnit.h @@ -230,6 +230,16 @@ class AbstractControlUnit : public DeclareAction, return chaos::ControlUnitDatapackSystemKey::CU_ALRM_LEVEL; } + //! set the value on the busy flag + void setBusyFlag(bool state); + + + //! set the value on the bypass flag + void setBypassFlag(bool state); + + //!return the current value of the busi flag + const bool getBusyFlag() const; + inline int stateVariableNameToEnum(const std::string& name) { if (name.compare(chaos::ControlUnitDatapackSystemKey::CU_ALRM_LEVEL) == 0) { return chaos::cu::control_manager::StateVariableTypeAlarmCU; @@ -855,16 +865,6 @@ class AbstractControlUnit : public DeclareAction, */ void setState(const std::string& state,bool update=false); - //! set the value on the busy flag - void setBusyFlag(bool state); - - - //! set the value on the bypass flag - void setBypassFlag(bool state); - - //!return the current value of the busi flag - const bool getBusyFlag() const; - //!called when an alarm has been modified in his severity void alarmChanged(const std::string& state_variable_tag, const std::string& state_variable_name, diff --git a/chaos/cu_toolkit/driver_manager/DriverErogatorInterface.h b/chaos/cu_toolkit/driver_manager/DriverErogatorInterface.h index 594a591564b0f31bd371909f96783feaa6624421..88c0ab629cae0aa862171c625546034767a50f72 100644 --- a/chaos/cu_toolkit/driver_manager/DriverErogatorInterface.h +++ b/chaos/cu_toolkit/driver_manager/DriverErogatorInterface.h @@ -9,8 +9,8 @@ #ifndef CHAOSFramework_DriverErogatorInterface_h #define CHAOSFramework_DriverErogatorInterface_h -#include <chaos/cu_toolkit/driver_manager/driver/DriverTypes.h> -#include <chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h> +#include "driver/DriverTypes.h" +#include "driver/DriverAccessor.h" namespace chaos { namespace cu { diff --git a/chaos/cu_toolkit/driver_manager/DriverManager.h b/chaos/cu_toolkit/driver_manager/DriverManager.h index 45725962f89f36d1f5657a72f3c17071dcf07f7a..504958550d3b7cce1393340570634f4d75b52b39 100644 --- a/chaos/cu_toolkit/driver_manager/DriverManager.h +++ b/chaos/cu_toolkit/driver_manager/DriverManager.h @@ -30,12 +30,9 @@ #include <chaos/common/utility/StartableService.h> #include <chaos/common/plugin/PluginInspector.h> -#include <chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h> -#include <chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h> +#include "driver/AbstractDriver.h" +#include "driver/DriverAccessor.h" -#include <boost/thread.hpp> -#include <boost/shared_ptr.hpp> -#include <boost/ptr_container/ptr_vector.hpp> namespace chaos { namespace cu { diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.cpp b/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.cpp index 0c687f71aceb86ffe48652cc3037812bc2dcbbbd..123a996dc10c8224aa08fd5c5d8f2255cce34d2b 100644 --- a/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.cpp +++ b/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.cpp @@ -22,8 +22,8 @@ #include <chaos/common/utility/UUIDUtil.h> #include <string> -#include <chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h> -#include <chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h> +#include "AbstractDriver.h" +#include "DriverAccessor.h" using namespace chaos::common::data; using namespace chaos::common::utility; @@ -38,7 +38,7 @@ using namespace chaos::cu::driver_manager::driver; ------------------------------------------------------*/ AbstractDriver::AbstractDriver(BaseBypassShrdPtr custom_bypass_driver) - : accessor_count(0), exclusive(false), bypass_driver(MOVE(custom_bypass_driver)), o_exe(this), is_json_param(false), driver_need_to_deinitialize(false), driver_uuid(UUIDUtil::generateUUIDLite()), command_queue(new DriverQueueType()) {} + : accessor_count(0), exclusive(false), bypass_driver(MOVE(custom_bypass_driver)),bypassEnabled(false),o_exe(this), is_json_param(false), driver_need_to_deinitialize(false), driver_uuid(UUIDUtil::generateUUIDLite()), command_queue(new DriverQueueType()) {} /*------------------------------------------------------ @@ -416,12 +416,13 @@ void AbstractDriver::driverDeinit() { ADLDBG_ << "base driver " << identification_string << " DEINIT"; } -const bool AbstractDriver::isBypass() const { - return o_exe != this; + bool AbstractDriver::isBypass() { + return bypassEnabled; } void AbstractDriver::setBypass(bool bypass) { // boost::unique_lock<boost::shared_mutex> lock(accesso_list_shr_mux); + bypassEnabled =bypass; if (bypass) { LBypassDriverUnqPtrReadLock rl = bypass_driver.getReadLockObject(); diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h b/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h index 4524af466dc03850fe25b0d182534fd4d3190125..e93dc85601f95477c6bb99fbb86e693819fcb990 100644 --- a/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h +++ b/chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h @@ -23,16 +23,14 @@ #define __CHAOSFramework__AbstractDriver__ #include <string> -#include <vector> -#include <boost/thread.hpp> #include <chaos/common/data/Property.h> #include <chaos/common/chaos_errors.h> #include <chaos/common/utility/LockableObject.h> #include <chaos/common/utility/InizializableService.h> #include <chaos/common/thread/TemplatedConcurrentQueue.h> -#include <chaos/cu_toolkit/driver_manager/driver/DriverTypes.h> -#include <chaos/cu_toolkit/driver_manager/driver/BaseBypassDriver.h> +#include "DriverTypes.h" +#include "BaseBypassDriver.h" //#include <json/json.h> @@ -74,7 +72,7 @@ namespace chaos{ template<typename T> friend class DriverWrapperPlugin; friend class chaos::cu::driver_manager::DriverManager; - + friend class DriverAccessor; bool driver_need_to_deinitialize; //! unique uuid for the instance @@ -99,7 +97,7 @@ namespace chaos{ bool is_json_param; // Json::Reader json_reader; // Json::Value json_parameter_document; - + bool bypassEnabled; //! command queue used for receive DrvMsg pack //boost::interprocess::message_queue *commandQueue; ChaosUniquePtr<DriverQueueType> command_queue; @@ -148,12 +146,11 @@ namespace chaos{ virtual void driverDeinit(); const bool isDriverParamInJson() const; - const bool isBypass()const; /* * called via rpc or via user to implement the bypass * */ - void setBypass(bool val); - + + //enable lock/unlock mutex handling bool exclusive; // const Json::Value& getDriverParamJsonRootElement() const; @@ -216,6 +213,8 @@ namespace chaos{ * to set last error */ void setLastError(const std::string&str); + virtual void setBypass(bool val); + virtual bool isBypass(); std::string getLastError(){return lastError;} }; diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractDriverInterface.h b/chaos/cu_toolkit/driver_manager/driver/AbstractDriverInterface.h index 1924f1783759f005c7f35c137e1f1622e531e146..8860d2e9d51e9512321b6f09998b3294dc7b50fc 100644 --- a/chaos/cu_toolkit/driver_manager/driver/AbstractDriverInterface.h +++ b/chaos/cu_toolkit/driver_manager/driver/AbstractDriverInterface.h @@ -20,7 +20,7 @@ #ifndef __ASTRACTDRIVERINTERFACE_H__ #define __ASTRACTDRIVERINTERFACE_H__ #include <chaos/common/data/CDataWrapper.h> -#include <chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h> +#include "DriverAccessor.h" namespace chaos_driver=::chaos::cu::driver_manager::driver; namespace chaos { diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.h b/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.h index 21bd32ae673ded8fff20c8b9638b2d9aaa1f4d02..503905f214e0d91b6cc947a043ac580c79a1afb2 100644 --- a/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.h +++ b/chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.h @@ -23,7 +23,7 @@ #define CHAOSFramework_DriverWrapperPlugin_h #include <chaos/common/plugin/PluginDefinition.h> -#include <chaos/cu_toolkit/driver_manager/driver/AbstractDriver.h> +#include "AbstractDriver.h" namespace chaos{ namespace cu { diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h b/chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h index 84cef2ca69c3dbcd77d1f593f9f973d2cf519c98..3ceef30386e4f2fe3ab312a3babe787f56c2f4e6 100644 --- a/chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h +++ b/chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h @@ -29,13 +29,14 @@ #include <chaos/common/thread/FutureHelper.h> #include <chaos/common/utility/LockableObject.h> -#include <chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.h> +#include "AbstractDriverPlugin.h" +/* #include <boost/multi_index/member.hpp> #include <boost/multi_index_container.hpp> #include <boost/multi_index/ordered_index.hpp> #include <boost/multi_index/hashed_index.hpp> - +*/ #define AUTHORIZATION_KEY "message_data" #define INIT_HARDWARE_PARAM "driver_param" #define OPCODE_HARDWARE_PARAM "device_param" diff --git a/chaos/cu_toolkit/driver_manager/driver/AbstractServerRemoteIODriver.h b/chaos/cu_toolkit/driver_manager/driver/AbstractServerRemoteIODriver.h index 95df77d7f3734d32c4b3c541e2f5f6224b9120f2..b73b88ad475c9908a793923c5580f0daa8cee07d 100644 --- a/chaos/cu_toolkit/driver_manager/driver/AbstractServerRemoteIODriver.h +++ b/chaos/cu_toolkit/driver_manager/driver/AbstractServerRemoteIODriver.h @@ -21,7 +21,7 @@ #ifndef chaos_cu_toolkit_driver_manager_driver_AbstractServerRemoteIODriver_h #define chaos_cu_toolkit_driver_manager_driver_AbstractServerRemoteIODriver_h -#include <chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h> +#include "AbstractRemoteIODriver.h" #include <chaos/common/external_unit/ExternalUnitServerEndpoint.h> namespace chaos { diff --git a/chaos/cu_toolkit/driver_manager/driver/BaseBypassDriver.h b/chaos/cu_toolkit/driver_manager/driver/BaseBypassDriver.h index 5fe9a61488ea1453956a7a51ca92c297c86856a8..5056e5c384126c16b3f463338c4415e110088bd5 100644 --- a/chaos/cu_toolkit/driver_manager/driver/BaseBypassDriver.h +++ b/chaos/cu_toolkit/driver_manager/driver/BaseBypassDriver.h @@ -21,7 +21,7 @@ #ifndef __CHAOSFramework_ECA49652_F22D_45D5_A82E_7A29B3D410F6_BaseBypassDriver_h #define __CHAOSFramework_ECA49652_F22D_45D5_A82E_7A29B3D410F6_BaseBypassDriver_h -#include <chaos/cu_toolkit/driver_manager/driver/DriverTypes.h> +#include "DriverTypes.h" namespace chaos{ namespace cu { diff --git a/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.cpp b/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.cpp index c26ea7b6a3b007585ad083b68c2efa339628f6d3..bd7a61b39820073400bc97476226e7e00b6fa173 100644 --- a/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.cpp +++ b/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.cpp @@ -274,3 +274,10 @@ std::string DriverAccessor::getLastError() { #endif } +void DriverAccessor::setBypass(bool val){ + impl->setBypass(val); + +} +const bool DriverAccessor::isBypass() const{ + return impl->isBypass(); +} \ No newline at end of file diff --git a/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h b/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h index 295bb9e27f5b6305ca7a2d0e5957ee1ccf6987f7..241f534ab4c4d4b7c5799e7302ca71cb85762895 100644 --- a/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h +++ b/chaos/cu_toolkit/driver_manager/driver/DriverAccessor.h @@ -22,11 +22,9 @@ #ifndef __CHAOSFramework__DriverAccessor__ #define __CHAOSFramework__DriverAccessor__ -#include <set> -#include <boost/atomic/atomic.hpp> -#include <chaos/cu_toolkit/driver_manager/driver/DriverTypes.h> +#include "DriverTypes.h" #include <chaos/common/thread/TemplatedConcurrentQueue.h> -#include <chaos/cu_toolkit/driver_manager/DriverManager.h> +#include "../DriverManager.h" namespace chaos_thread_ns = chaos::common::thread; namespace chaos{ @@ -177,7 +175,8 @@ namespace chaos{ * @return 0 if success */ int setDrvProperty(const std::string& key, const std::string& value); - + void setBypass(bool val); + const bool isBypass()const; std::string getUID() const; std::string getDriverName() const; std::string getLastError(); diff --git a/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.h b/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.h index 14b7f1c27a56f597a48b5e3052f6e43db1409844..3b30f8989616c7c828253b95400d290955b96554 100644 --- a/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.h +++ b/chaos/cu_toolkit/driver_manager/driver/DriverPluginLoader.h @@ -22,7 +22,7 @@ #ifndef CHAOSFramework_DriverPluginLoader_h #define CHAOSFramework_DriverPluginLoader_h #include <chaos/common/plugin/PluginLoader.h> -#include <chaos/cu_toolkit/driver_manager/driver/AbstractDriverPlugin.h> +#include "AbstractDriverPlugin.h" namespace chaos { namespace cu{ namespace driver_manager { diff --git a/chaos/cu_toolkit/driver_manager/driver/DriverTypes.h b/chaos/cu_toolkit/driver_manager/driver/DriverTypes.h index 9c1b13698b9bbce34fb8c0d8123e990af9a70210..b16c54475ad3ad7028694aa9d442504c92d6124e 100644 --- a/chaos/cu_toolkit/driver_manager/driver/DriverTypes.h +++ b/chaos/cu_toolkit/driver_manager/driver/DriverTypes.h @@ -23,9 +23,6 @@ #define CHAOSFramework_DriverGlobal_h #include <stdint.h> -#include <boost/lockfree/queue.hpp> -#include <boost/lockfree/spsc_queue.hpp> -#include <boost/interprocess/ipc/message_queue.hpp> #include <chaos/common/data/CDataWrapper.h> #include <chaos/common/utility/Atomic.h> diff --git a/chaos/cu_toolkit/driver_manager/driver/ExternalIODriver.h b/chaos/cu_toolkit/driver_manager/driver/ExternalIODriver.h index 7bb5e6d6e630a1d77283a9db1412caa8a725ebf1..211c4a76f1bcf18c867377a33ce2b777db70c5ab 100644 --- a/chaos/cu_toolkit/driver_manager/driver/ExternalIODriver.h +++ b/chaos/cu_toolkit/driver_manager/driver/ExternalIODriver.h @@ -23,7 +23,7 @@ #define __CHAOSFramework__061D444_6ECF_448C_8D63_98139B76FA9D_ExternalIODriver_h #include <chaos/common/chaos_types.h> -#include <chaos/cu_toolkit/driver_manager/driver/AbstractRemoteIODriver.h> +#include "AbstractRemoteIODriver.h" namespace chaos { namespace cu { namespace driver_manager {