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 2767 additions and 67 deletions
/* /*
* event_table.h * event_table.h
* *
* $Author: graziano $
*
* $Revision: 1.2 $
*
* $Log: event_table.h,v $
*
*
* copyleft: Sincrotrone Trieste S.C.p.A. di interesse nazionale * copyleft: Sincrotrone Trieste S.C.p.A. di interesse nazionale
* Strada Statale 14 - km 163,5 in AREA Science Park * Strada Statale 14 - km 163,5 in AREA Science Park
* 34012 Basovizza, Trieste ITALY * 34012 Basovizza, Trieste ITALY
...@@ -20,7 +13,7 @@ ...@@ -20,7 +13,7 @@
#include <string> #include <string>
#include <map> #include <map>
#include <atomic> #include <atomic>
#include <tango.h> #include <tango/tango.h>
using namespace std; using namespace std;
...@@ -65,7 +58,7 @@ class event { ...@@ -65,7 +58,7 @@ class event {
string attname; string attname;
value_t value; /* event value */ value_t value; /* event value */
string value_string; //added for DevString attributes string value_string; //added for DevString attributes
int quality; int quality{Tango::ATTR_INVALID};
string ex_reason; string ex_reason;
string ex_desc; string ex_desc;
string ex_origin; string ex_origin;
...@@ -73,7 +66,8 @@ class event { ...@@ -73,7 +66,8 @@ class event {
int type, /* attribute data type */ int type, /* attribute data type */
read_size, /* attribute size of read part */ read_size, /* attribute size of read part */
counter, /* molteplicita' */ counter, /* molteplicita' */
err_counter; /* molteplicita' errore */ err_counter; /* molteplicita' errore */
long dim_x, dim_y;
alarm_list m_alarm; alarm_list m_alarm;
bool valid; //TODO: old bool valid; //TODO: old
bool first;//TODO: new bool first;//TODO: new
...@@ -123,6 +117,8 @@ typedef struct basic_event_info_s { ...@@ -123,6 +117,8 @@ typedef struct basic_event_info_s {
string ex_origin; string ex_origin;
int type; int type;
int read_size; int read_size;
long dim_x;
long dim_y;
Tango::TimeVal ts; Tango::TimeVal ts;
string msg; string msg;
} bei_t; } bei_t;
...@@ -161,8 +157,8 @@ class event_table : public Tango::TangoMonitor, public Tango::LogAdapter { ...@@ -161,8 +157,8 @@ class event_table : public Tango::TangoMonitor, public Tango::LogAdapter {
#if 0 #if 0
void init_proxy(void) throw(vector<string> &); void init_proxy(void) throw(vector<string> &);
void free_proxy(void); void free_proxy(void);
void subscribe(EventCallBack& ecb) throw(vector<string> &);//throw(string&); void subscribe(EventCallBack& ecb);
void unsubscribe(void) throw(string&); void unsubscribe(void);
#endif #endif
/** /**
* Add a new signal. * Add a new signal.
...@@ -209,7 +205,7 @@ class EventCallBack : public Tango::CallBack, public Tango::LogAdapter ...@@ -209,7 +205,7 @@ class EventCallBack : public Tango::CallBack, public Tango::LogAdapter
~EventCallBack(void); ~EventCallBack(void);
void push_event(Tango::EventData* ev); void push_event(Tango::EventData* ev);
//void init(event_list* e); //void init(event_list* e);
void extract_values(Tango::DeviceAttribute *attr_value, vector<double> &val, string &val_string, int &type, int &read_size); void extract_values(Tango::DeviceAttribute *attr_value, vector<double> &val, string &val_string, int &type, int &read_size, long &dim_x, long &dim_y);
private: private:
//event_list* e_ptr; //event_list* e_ptr;
Tango::DeviceImpl *mydev; Tango::DeviceImpl *mydev;
......
/* /*
* formula_grammar.h * formula_grammar.h
* *
* $Author: graziano $
*
* $Revision: 1.5 $
*
* $Log: formula_grammar.h,v $
*
*
* copyleft: Sincrotrone Trieste S.C.p.A. di interesse nazionale * copyleft: Sincrotrone Trieste S.C.p.A. di interesse nazionale
* Strada Statale 14 - km 163,5 in AREA Science Park * Strada Statale 14 - km 163,5 in AREA Science Park
* 34012 Basovizza, Trieste ITALY * 34012 Basovizza, Trieste ITALY
...@@ -132,6 +125,8 @@ struct formula_grammar : public grammar<formula_grammar> ...@@ -132,6 +125,8 @@ struct formula_grammar : public grammar<formula_grammar>
static const int val_qualityID = 23; static const int val_qualityID = 23;
static const int val_alarm_enum_stID = 24; static const int val_alarm_enum_stID = 24;
static const int propertyID = 25; static const int propertyID = 25;
static const int index_rangeID = 26;
static const int index_listID = 27;
symbols<unsigned int> tango_states; symbols<unsigned int> tango_states;
...@@ -198,7 +193,7 @@ struct formula_grammar : public grammar<formula_grammar> ...@@ -198,7 +193,7 @@ struct formula_grammar : public grammar<formula_grammar>
= (alnum_p | '.' | '_' | '-' | '+') //any alpha numeric char plus '.', '_', '-' = (alnum_p | '.' | '_' | '-' | '+') //any alpha numeric char plus '.', '_', '-'
; ;
symbol_attr symbol_attr
= (alnum_p | '_' | '.') //any alpha numeric char plus '_', '.' for attribute names = (alnum_p | '_' | '.') - str_p(".normal") - str_p(".alarm") - str_p(".quality") //any alpha numeric char plus '_', '.' for attribute names
; ;
//------------------------------ALARM NAME-------------------------------------- //------------------------------ALARM NAME--------------------------------------
name name
...@@ -214,9 +209,18 @@ struct formula_grammar : public grammar<formula_grammar> ...@@ -214,9 +209,18 @@ struct formula_grammar : public grammar<formula_grammar>
] ]
] ]
// = repeat_p(3)[(+symbol) >> ch_p('/')] >> (+symbol) // = repeat_p(3)[(+symbol) >> ch_p('/')] >> (+symbol)
; ;
index_range
=
( uint_p >> !(discard_node_d[ch_p('-')] >> uint_p)) // n or n-m
;
index_list
= (index_range >> *(discard_node_d[ch_p(',')] >> index_range)) // n-m,k,s-t,..
;
index index
= inner_node_d[ch_p('[') >> uint_p >> ch_p(']')] = discard_node_d[ch_p('[')] >>
(str_p("-1") | index_list) >>
discard_node_d[ch_p(']')]
; ;
property property
= str_p(".quality") = str_p(".quality")
...@@ -270,8 +274,8 @@ struct formula_grammar : public grammar<formula_grammar> ...@@ -270,8 +274,8 @@ struct formula_grammar : public grammar<formula_grammar>
event_ event_
= name = name
>> !( (index) >> ( *(index)//0 or more indexex
| (property) >> !(property) //followed by 0 or 1 property
) )
; ;
...@@ -406,6 +410,8 @@ struct formula_grammar : public grammar<formula_grammar> ...@@ -406,6 +410,8 @@ struct formula_grammar : public grammar<formula_grammar>
rule<ScannerT, parser_context<>, parser_tag<expr_atomID> > expr_atom; rule<ScannerT, parser_context<>, parser_tag<expr_atomID> > expr_atom;
rule<ScannerT, parser_context<>, parser_tag<funcID> > function; rule<ScannerT, parser_context<>, parser_tag<funcID> > function;
rule<ScannerT, parser_context<>, parser_tag<nameID> > name; rule<ScannerT, parser_context<>, parser_tag<nameID> > name;
rule<ScannerT, parser_context<>, parser_tag<index_rangeID> > index_range;
rule<ScannerT, parser_context<>, parser_tag<index_listID> > index_list;
rule<ScannerT, parser_context<>, parser_tag<indexID> > index; rule<ScannerT, parser_context<>, parser_tag<indexID> > index;
rule<ScannerT, parser_context<>, parser_tag<val_stringID> > val_string; rule<ScannerT, parser_context<>, parser_tag<val_stringID> > val_string;
rule<ScannerT, parser_context<>, parser_tag<func_dualID> > function_dual; rule<ScannerT, parser_context<>, parser_tag<func_dualID> > function_dual;
......
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
// This file is generated by POGO // This file is generated by POGO
// (Program Obviously used to Generate tango Object) // (Program Obviously used to Generate tango Object)
//============================================================================= //=============================================================================
#include <tango.h> #include <tango/tango.h>
// Check if crash reporting is used. // Check if crash reporting is used.
#if defined(ENABLE_CRASH_REPORT) #if defined(ENABLE_CRASH_REPORT)
...@@ -43,8 +43,15 @@ ...@@ -43,8 +43,15 @@
DECLARE_CRASH_HANDLER; DECLARE_CRASH_HANDLER;
#ifndef TANGO_LOG
#define TANGO_LOG cout
#endif
int main(int argc,char *argv[]) int main(int argc,char *argv[])
{ {
using std::endl;
using std::bad_alloc;
INSTALL_CRASH_HANDLER INSTALL_CRASH_HANDLER
try try
{ {
...@@ -59,20 +66,20 @@ int main(int argc,char *argv[]) ...@@ -59,20 +66,20 @@ int main(int argc,char *argv[])
// Run the endless loop // Run the endless loop
//---------------------------------------- //----------------------------------------
cout << "Ready to accept request" << endl; TANGO_LOG << "Ready to accept request" << endl;
tg->server_run(); tg->server_run();
} }
catch (bad_alloc &) catch (bad_alloc &)
{ {
cout << "Can't allocate memory to store device object !!!" << endl; TANGO_LOG << "Can't allocate memory to store device object !!!" << endl;
cout << "Exiting" << endl; TANGO_LOG << "Exiting" << endl;
} }
catch (CORBA::Exception &e) catch (CORBA::Exception &e)
{ {
Tango::Except::print_exception(e); Tango::Except::print_exception(e);
cout << "Received a CORBA_Exception" << endl; TANGO_LOG << "Received a CORBA_Exception" << endl;
cout << "Exiting" << endl; TANGO_LOG << "Exiting" << endl;
} }
Tango::Util::instance()->server_cleanup(); Tango::Util::instance()->server_cleanup();
return(0); return(0);
......
/* /*
* update-thread.cpp * update-thread.cpp
*
* $Author: claudio $
*
* $Revision: 1.2 $
*
* $Log: update-thread.cpp,v $
* Revision 1.2 2013-03-06 10:38:43 claudio
* commented out debug print statements
*
* Revision 1.1 2008-11-10 10:54:09 graziano
* thread for update of alarms with time threshold > 0
*
*
*
*
* copyleft: Sincrotrone Trieste S.C.p.A. di interesse nazionale
* Strada Statale 14 - km 163,5 in AREA Science Park
* 34012 Basovizza, Trieste ITALY
*/ */
#include "update-thread.h" #include "update-thread.h"
...@@ -28,7 +10,7 @@ static const char __FILE__rev[] = __FILE__ " $Revision: 1.2 $"; ...@@ -28,7 +10,7 @@ static const char __FILE__rev[] = __FILE__ " $Revision: 1.2 $";
*/ */
update_thread::update_thread(AlarmHandler_ns::AlarmHandler *p) : p_Alarm(p),Tango::LogAdapter(p) update_thread::update_thread(AlarmHandler_ns::AlarmHandler *p) : p_Alarm(p),Tango::LogAdapter(p)
{ {
//cout << __FILE__rev << endl; //TANGO_LOG << __FILE__rev << endl;
} }
/* /*
......
/* /*
* alarm-thread.h * update-thread.h
*
* $Author: graziano $
*
* $Revision: 1.1 $
*
* $Log: update-thread.h,v $
* Revision 1.1 2008-11-10 10:54:09 graziano
* thread for update of alarms with time threshold > 0
*
*
*
*
* copyleft: Sincrotrone Trieste S.C.p.A. di interesse nazionale
* Strada Statale 14 - km 163,5 in AREA Science Park
* 34012 Basovizza, Trieste ITALY
*/ */
#ifndef UPDATE_THREAD_H #ifndef UPDATE_THREAD_H
#define UPDATE_THREAD_H #define UPDATE_THREAD_H
#include <omnithread.h> #include <omnithread.h>
#include <tango.h> #include <tango/tango.h>
#include <AlarmHandler.h> #include <AlarmHandler.h>
class update_thread : public omni_thread, public Tango::TangoMonitor, public Tango::LogAdapter { class update_thread : public omni_thread, public Tango::TangoMonitor, public Tango::LogAdapter {
......
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.
NAME_SRV = testdevice-srv
CXXFLAGS =
LDFLAGS =
include ./Make-9.3.4.in
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
cmake_minimum_required(VERSION 3.2)
# source files
set(SRC_FILES ${SRC_FILES}
${CMAKE_CURRENT_SOURCE_DIR}/TestDevice.cpp
${CMAKE_CURRENT_SOURCE_DIR}/TestDeviceClass.cpp
${CMAKE_CURRENT_SOURCE_DIR}/TestDeviceStateMachine.cpp
${CMAKE_CURRENT_SOURCE_DIR}/ClassFactory.cpp
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
PARENT_SCOPE)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.