Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • cs/ds/alarm-handler
  • francesco.tripaldi/alarm-handler
2 results
Show changes
Showing
with 5624 additions and 1042 deletions
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
/*----- PROTECTED REGION ID(Alarm::DynAttrUtils.cpp) ENABLED START -----*/
static const char *RcsId = "$Id: $";
/*----- PROTECTED REGION ID(AlarmHandler::DynAttrUtils.cpp) ENABLED START -----*/
//=============================================================================
//
// file : AlarmDynAttrUtils.cpp
// file : AlarmHandlerDynAttrUtils.cpp
//
// description : Dynamic attributes utilities file for the Alarm class
// description : Dynamic attributes utilities file for the AlarmHandler class
//
// project : Elettra alarm device server
// project : Elettra alarm handler device server
//
// This file is part of Tango device class.
//
......@@ -23,12 +22,7 @@ static const char *RcsId = "$Id: $";
// You should have received a copy of the GNU General Public License
// along with Tango. If not, see <http://www.gnu.org/licenses/>.
//
// $Author: $
//
// $Revision: $
// $Date: $
//
// $HeadURL: $
//
//=============================================================================
// This file is generated by POGO
......@@ -36,18 +30,19 @@ static const char *RcsId = "$Id: $";
//=============================================================================
#include <Alarm.h>
#include <AlarmClass.h>
#include <AlarmHandler.h>
#include <AlarmHandlerClass.h>
/*----- PROTECTED REGION END -----*/ // Alarm::DynAttrUtils.cpp
/*----- PROTECTED REGION END -----*/ // AlarmHandler::DynAttrUtils.cpp
//================================================================
// Attributes managed is:
// Attributes managed are:
//================================================================
// AlarmState | Tango::DevBoolean Scalar
// AlarmState | Tango::DevEnum Scalar
// AlarmFormula | Tango::DevString Scalar
//================================================================
// For compatibility reason, this file (AlarmDynAttrUtils)
// For compatibility reason, this file (AlarmHandlerDynAttrUtils)
// manage also the dynamic command utilities.
//================================================================
// The following table gives the correspondence
......@@ -57,7 +52,7 @@ static const char *RcsId = "$Id: $";
//================================================================
//================================================================
namespace Alarm_ns
namespace AlarmHandler_ns
{
//=============================================================
// Add/Remove dynamic attribute methods
......@@ -70,7 +65,7 @@ namespace Alarm_ns
* parameter attname: attribute name to be cretated and added.
*/
//--------------------------------------------------------
void Alarm::add_AlarmState_dynamic_attribute(string attname)
void AlarmHandler::add_AlarmState_dynamic_attribute(string attname)
{
// Attribute : AlarmState
AlarmStateAttrib *alarmstate = new AlarmStateAttrib(attname);
......@@ -90,17 +85,38 @@ void Alarm::add_AlarmState_dynamic_attribute(string attname)
// delta_t not set for AlarmState
// delta_val not set for AlarmState
/*----- PROTECTED REGION ID(Alarm::att_AlarmState_dynamic_attribute) ENABLED START -----*/
/*----- PROTECTED REGION ID(AlarmHandler::att_AlarmState_dynamic_attribute) ENABLED START -----*/
DEBUG_STREAM << __func__<<": entering name="<<attname;
alarm_container_t::iterator i = alarms.v_alarm.find(attname);
if(i != alarms.v_alarm.end())
{
alarmstate_prop.set_description(i->second.formula.c_str());
}
else
{
INFO_STREAM << __func__<<": name="<<attname<<" NOT FOUND while looking for formula to add as attribute description";
}
/*----- PROTECTED REGION END -----*/ // Alarm::att_AlarmState_dynamic_attribute
/*----- PROTECTED REGION END -----*/ // AlarmHandler::att_AlarmState_dynamic_attribute
{
vector<string> labels;
labels.push_back("NORM");
labels.push_back("UNACK");
labels.push_back("ACKED");
labels.push_back("RTNUN");
labels.push_back("SHLVD");
labels.push_back("DSUPR");
labels.push_back("OOSRV");
labels.push_back("ERROR");
alarmstate_prop.set_enum_labels(labels);
}
alarmstate->set_default_properties(alarmstate_prop);
// Not Polled
alarmstate->set_disp_level(Tango::OPERATOR);
// Not Memorized
alarmstate->set_change_event(true, true);
alarmstate->set_archive_event(true, true);
AlarmState_data.insert(make_pair(attname, false));
AlarmState_data.insert(make_pair(attname, 0));
add_attribute(alarmstate);
}
//--------------------------------------------------------
......@@ -110,18 +126,79 @@ void Alarm::add_AlarmState_dynamic_attribute(string attname)
* parameter attname: attribute name to be removed.
*/
//--------------------------------------------------------
void Alarm::remove_AlarmState_dynamic_attribute(string attname)
void AlarmHandler::remove_AlarmState_dynamic_attribute(string attname)
{
remove_attribute(attname, true);
map<string,Tango::DevBoolean>::iterator ite;
remove_attribute(attname, true, Tango::Util::instance()->_UseDb);
map<string,Tango::DevEnum>::iterator ite;
if ((ite=AlarmState_data.find(attname))!=AlarmState_data.end())
{
/*----- PROTECTED REGION ID(Alarm::remove_AlarmState_dynamic_attribute) ENABLED START -----*/
/*----- PROTECTED REGION ID(AlarmHandler::remove_AlarmState_dynamic_attribute) ENABLED START -----*/
DEBUG_STREAM << __func__<<": entering name="<<attname;
/*----- PROTECTED REGION END -----*/ // Alarm::remove_AlarmState_dynamic_attribute
/*----- PROTECTED REGION END -----*/ // AlarmHandler::remove_AlarmState_dynamic_attribute
AlarmState_data.erase(ite);
}
}
//--------------------------------------------------------
/**
* Add a AlarmFormula dynamic attribute.
*
* parameter attname: attribute name to be cretated and added.
*/
//--------------------------------------------------------
void AlarmHandler::add_AlarmFormula_dynamic_attribute(string attname)
{
// Attribute : AlarmFormula
AlarmFormulaAttrib *alarmformula = new AlarmFormulaAttrib(attname);
Tango::UserDefaultAttrProp alarmformula_prop;
// description not set for AlarmFormula
// label not set for AlarmFormula
// unit not set for AlarmFormula
// standard_unit not set for AlarmFormula
// display_unit not set for AlarmFormula
// format not set for AlarmFormula
// max_value not set for AlarmFormula
// min_value not set for AlarmFormula
// max_alarm not set for AlarmFormula
// min_alarm not set for AlarmFormula
// max_warning not set for AlarmFormula
// min_warning not set for AlarmFormula
// delta_t not set for AlarmFormula
// delta_val not set for AlarmFormula
/*----- PROTECTED REGION ID(AlarmHandler::att_AlarmFormula_dynamic_attribute) ENABLED START -----*/
DEBUG_STREAM << __func__<<": entering name="<<attname;
/*----- PROTECTED REGION END -----*/ // AlarmHandler::att_AlarmFormula_dynamic_attribute
alarmformula->set_default_properties(alarmformula_prop);
// Not Polled
alarmformula->set_disp_level(Tango::OPERATOR);
// Not Memorized
alarmformula->set_change_event(true, true);
alarmformula->set_archive_event(true, true);
char array[1];
array[0] = '\0';
AlarmFormula_data.insert(make_pair(attname, array));
add_attribute(alarmformula);
}
//--------------------------------------------------------
/**
* remove a AlarmFormula dynamic attribute.
*
* parameter attname: attribute name to be removed.
*/
//--------------------------------------------------------
void AlarmHandler::remove_AlarmFormula_dynamic_attribute(string attname)
{
remove_attribute(attname, true, Tango::Util::instance()->_UseDb);
map<string,Tango::DevString>::iterator ite;
if ((ite=AlarmFormula_data.find(attname))!=AlarmFormula_data.end())
{
/*----- PROTECTED REGION ID(AlarmHandler::remove_AlarmFormula_dynamic_attribute) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // AlarmHandler::remove_AlarmFormula_dynamic_attribute
AlarmFormula_data.erase(ite);
}
}
//============================================================
......@@ -134,9 +211,9 @@ void Alarm::remove_AlarmState_dynamic_attribute(string attname)
* parameter attname: the specified attribute name.
*/
//--------------------------------------------------------
Tango::DevBoolean *Alarm::get_AlarmState_data_ptr(string &name)
Tango::DevEnum *AlarmHandler::get_AlarmState_data_ptr(string &name)
{
map<string,Tango::DevBoolean>::iterator ite;
map<string,Tango::DevEnum>::iterator ite;
if ((ite=AlarmState_data.find(name))==AlarmState_data.end())
{
TangoSys_OMemStream tms;
......@@ -144,7 +221,28 @@ Tango::DevBoolean *Alarm::get_AlarmState_data_ptr(string &name)
Tango::Except::throw_exception(
(const char *)"ATTRIBUTE_NOT_FOUND",
tms.str().c_str(),
(const char *)"Alarm::get_AlarmState_data_ptr()");
(const char *)"AlarmHandler::get_AlarmState_data_ptr()");
}
return &(ite->second);
}
//--------------------------------------------------------
/**
* Return a pointer on AlarmFormula data.
*
* parameter attname: the specified attribute name.
*/
//--------------------------------------------------------
Tango::DevString *AlarmHandler::get_AlarmFormula_data_ptr(string &name)
{
map<string,Tango::DevString>::iterator ite;
if ((ite=AlarmFormula_data.find(name))==AlarmFormula_data.end())
{
TangoSys_OMemStream tms;
tms << "Dynamic attribute " << name << " has not been created";
Tango::Except::throw_exception(
(const char *)"ATTRIBUTE_NOT_FOUND",
tms.str().c_str(),
(const char *)"AlarmHandler::get_AlarmFormula_data_ptr()");
}
return &(ite->second);
}
......
This diff is collapsed.
/*----- PROTECTED REGION ID(AlarmStateMachine.cpp) ENABLED START -----*/
static const char *RcsId = "$Id: $";
//=============================================================================
//
// file : AlarmStateMachine.cpp
//
// description : State machine file for the Alarm class
//
// project : alarm
//
// This file is part of Tango device class.
//
// Tango is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Tango is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Tango. If not, see <http://www.gnu.org/licenses/>.
//
// $Author: $
//
// $Revision: $
// $Date: $
//
// $HeadURL: $
//
//=============================================================================
// This file is generated by POGO
// (Program Obviously used to Generate tango Object)
//=============================================================================
#include <Alarm.h>
/*----- PROTECTED REGION END -----*/ // Alarm::AlarmStateMachine.cpp
//================================================================
// States | Description
//================================================================
namespace Alarm_ns
{
//=================================================
// Attributes Allowed Methods
//=================================================
//--------------------------------------------------------
/**
* Method : Alarm::is_alarm_allowed()
* Description : Execution allowed for alarm attribute
*/
//--------------------------------------------------------
bool Alarm::is_alarm_allowed(TANGO_UNUSED(Tango::AttReqType type))
{
// Not any excluded states for alarm attribute in read access.
/*----- PROTECTED REGION ID(Alarm::alarmStateAllowed_READ) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // Alarm::alarmStateAllowed_READ
return true;
}
//--------------------------------------------------------
/**
* Method : Alarm::is_AlarmState_allowed()
* Description : Execution allowed for AlarmState attribute
*/
//--------------------------------------------------------
bool Alarm::is_AlarmState_allowed(TANGO_UNUSED(Tango::AttReqType type))
{
// Not any excluded states for AlarmState attribute in read access.
/*----- PROTECTED REGION ID(Alarm::AlarmStateStateAllowed_READ) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // Alarm::AlarmStateStateAllowed_READ
return true;
}
//=================================================
// Commands Allowed Methods
//=================================================
//--------------------------------------------------------
/**
* Method : Alarm::is_Ack_allowed()
* Description : Execution allowed for Ack attribute
*/
//--------------------------------------------------------
bool Alarm::is_Ack_allowed(TANGO_UNUSED(const CORBA::Any &any))
{
// Not any excluded states for Ack command.
/*----- PROTECTED REGION ID(Alarm::AckStateAllowed) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // Alarm::AckStateAllowed
return true;
}
//--------------------------------------------------------
/**
* Method : Alarm::is_Load_allowed()
* Description : Execution allowed for Load attribute
*/
//--------------------------------------------------------
bool Alarm::is_Load_allowed(TANGO_UNUSED(const CORBA::Any &any))
{
// Not any excluded states for Load command.
/*----- PROTECTED REGION ID(Alarm::LoadStateAllowed) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // Alarm::LoadStateAllowed
return true;
}
//--------------------------------------------------------
/**
* Method : Alarm::is_Remove_allowed()
* Description : Execution allowed for Remove attribute
*/
//--------------------------------------------------------
bool Alarm::is_Remove_allowed(TANGO_UNUSED(const CORBA::Any &any))
{
// Not any excluded states for Remove command.
/*----- PROTECTED REGION ID(Alarm::RemoveStateAllowed) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // Alarm::RemoveStateAllowed
return true;
}
//--------------------------------------------------------
/**
* Method : Alarm::is_Configured_allowed()
* Description : Execution allowed for Configured attribute
*/
//--------------------------------------------------------
bool Alarm::is_Configured_allowed(TANGO_UNUSED(const CORBA::Any &any))
{
// Not any excluded states for Configured command.
/*----- PROTECTED REGION ID(Alarm::ConfiguredStateAllowed) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // Alarm::ConfiguredStateAllowed
return true;
}
//--------------------------------------------------------
/**
* Method : Alarm::is_StopNew_allowed()
* Description : Execution allowed for StopNew attribute
*/
//--------------------------------------------------------
bool Alarm::is_StopNew_allowed(TANGO_UNUSED(const CORBA::Any &any))
{
// Not any excluded states for StopNew command.
/*----- PROTECTED REGION ID(Alarm::StopNewStateAllowed) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // Alarm::StopNewStateAllowed
return true;
}
//--------------------------------------------------------
/**
* Method : Alarm::is_Silence_allowed()
* Description : Execution allowed for Silence attribute
*/
//--------------------------------------------------------
bool Alarm::is_Silence_allowed(TANGO_UNUSED(const CORBA::Any &any))
{
// Not any excluded states for Silence command.
/*----- PROTECTED REGION ID(Alarm::SilenceStateAllowed) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // Alarm::SilenceStateAllowed
return true;
}
//--------------------------------------------------------
/**
* Method : Alarm::is_Modify_allowed()
* Description : Execution allowed for Modify attribute
*/
//--------------------------------------------------------
bool Alarm::is_Modify_allowed(TANGO_UNUSED(const CORBA::Any &any))
{
// Not any excluded states for Modify command.
/*----- PROTECTED REGION ID(Alarm::ModifyStateAllowed) ENABLED START -----*/
/*----- PROTECTED REGION END -----*/ // Alarm::ModifyStateAllowed
return true;
}
/*----- PROTECTED REGION ID(Alarm::AlarmStateAllowed.AdditionalMethods) ENABLED START -----*/
// Additional Methods
/*----- PROTECTED REGION END -----*/ // Alarm::AlarmStateAllowed.AdditionalMethods
} // End of namespace
cmake_minimum_required(VERSION 3.2)
# source files
set(SRC_FILES ${SRC_FILES}
${CMAKE_CURRENT_SOURCE_DIR}/AlarmHandler.cpp
${CMAKE_CURRENT_SOURCE_DIR}/AlarmHandlerClass.cpp
${CMAKE_CURRENT_SOURCE_DIR}/AlarmHandlerDynAttrUtils.cpp
${CMAKE_CURRENT_SOURCE_DIR}/AlarmHandlerStateMachine.cpp
${CMAKE_CURRENT_SOURCE_DIR}/alarm_table.cpp
${CMAKE_CURRENT_SOURCE_DIR}/alarm-thread.cpp
${CMAKE_CURRENT_SOURCE_DIR}/ClassFactory.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cmd_thread.cpp
${CMAKE_CURRENT_SOURCE_DIR}/event_table.cpp
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
${CMAKE_CURRENT_SOURCE_DIR}/SubscribeThread.cpp
${CMAKE_CURRENT_SOURCE_DIR}/update-thread.cpp
PARENT_SCOPE)
/*----- PROTECTED REGION ID(Alarm::ClassFactory.cpp) ENABLED START -----*/
static const char *RcsId = "$Header: /home/cvsadm/cvsroot/utils/alarm/tango/server/src/ClassFactory.cpp,v 1.2 2008-03-27 09:25:29 graziano Exp $";
//+=============================================================================
/*----- PROTECTED REGION ID(AlarmHandler::ClassFactory.cpp) ENABLED START -----*/
//=============================================================================
//
// file : ClassFactory.cpp
//
// description : C++ source for the class_factory method of the DServer
// device class. This method is responsible to create
// all class singletin for a device server. It is called
// at device server startup
//
// project : TANGO Device Server
//
// $Author: graziano $
//
// $Revision: 1.2 $
//
// copyleft : Sincrotrone Trieste S.C.p.A. di interesse nazionale
// Strada Statale 14 - km 163,5 in AREA Science Park
// 34012 Basovizza, Trieste ITALY
// Tel. +39 040 37581
// Fax. +39 040 9380902
// device class. This method is responsible for the creation of
// all class singleton for a device server. It is called
// at device server startup.
//
// project : Elettra alarm handler device server
//
// This file is part of Tango device class.
//
// Tango is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Tango is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Tango. If not, see <http://www.gnu.org/licenses/>.
//
//
//-=============================================================================
//
// This file is generated by POGO
// (Program Obviously used to Generate tango Object)
//
// (c) - ELETTRA U.O. Controlli
//=============================================================================
// This file is generated by POGO
// (Program Obviously used to Generate tango Object)
//=============================================================================
#include <tango/tango.h>
#include <AlarmHandlerClass.h>
// Add class header files if needed
#include <tango.h>
#include <AlarmClass.h>
/**
* Create AlarmClass singleton and store it in DServer object.
*
* @author $Author: graziano $
* @version $Revision: 1.2 $ $
* Create AlarmHandler Class singleton and store it in DServer object.
*/
void Tango::DServer::class_factory()
{
add_class(Alarm_ns::AlarmClass::init("Alarm"));
// Add method class init if needed
add_class(AlarmHandler_ns::AlarmHandlerClass::init("AlarmHandler"));
}
/*----- PROTECTED REGION END -----*/ // Alarm::ClassFactory.cpp
/*----- PROTECTED REGION END -----*/ // AlarmHandler::ClassFactory.cpp
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.