Skip to content
Snippets Groups Projects
Select Git revision
  • f9b497941c19820737c17dde6a77556f6786a008
  • master default protected
  • configuration_dev
  • 1.0.6
  • 1.0.5
  • 1.0.4
  • 1.0.3
  • 1.0.2
  • 1.0.1
  • 1.0.0
10 results

alarm_grammar.h

Blame
  • Forked from cs / ds / alarm-handler
    Source project has a limited visibility.
    alarm_table.cpp 34.49 KiB
    /*
     * alarm_table.cpp
     *
     * $Author: graziano $
     *
     * $Revision: 1.5 $
     *
     * $Log: alarm_table.cpp,v $
     *
     *
     * 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 <sys/time.h>
    #include <tango.h>
    #include "alarm_table.h"
    #include "alarm_grammar.h"
    #include "cmd_thread.h"
    
    
    static const char __FILE__rev[] = __FILE__ " $Revision: 1.5 $";
    
    /*
     * alarm_t class methods
     */
    alarm_t::alarm_t()
    {
    	grp=0;
    	on_counter=0;
    	off_counter=0;
    	freq_counter=0;
    	stat = S_NORMAL;
    	ack = ACK;
    	on_delay = 0;
    	off_delay = 0;
    	silent_time = -1;
    	cmd_name_a=string("");
    	cmd_name_n=string("");
    	enabled=true;
    	shelved=false;
    } 
     
    bool alarm_t::operator==(const alarm_t &that)
    {
    //	return((stat == that.stat) && (ack == that.ack));
    	//verify if stat not equal but only contained because added *n in internal alarm
    	return((stat.find(that.stat) != std::string::npos) && (ack == that.ack));		
    }
    
    bool alarm_t::operator==(const string &n)
    {
    	return(name == n);
    }
    
    void alarm_t::str2alm(const string &s)
    {
    	istringstream is(s);
    	ostringstream temp_msg;
    	string temp_grp;
    	is >> ts.tv_sec >> ts.tv_usec >> name >> stat >> ack >> on_counter >> lev >> silent_time >> temp_grp >> msg;		//stop at first white space in msg
    	temp_msg << is.rdbuf();		//read all remaining characters as msg
    	msg += temp_msg.str();
    	str2grp(temp_grp);
    }
    
    string alarm_t::alm2str(void)
    {
    	ostringstream os;