Main Page | Class Hierarchy | Class List | File List | Class Members | File Members | Related Pages

new_sim_sensor.h

Go to the documentation of this file.
00001 
00025 #ifndef __NEW_SIM_SENSOR_H__
00026 #define __NEW_SIM_SENSOR_H__
00027 
00028 
00029 extern "C" {
00030 #include "SaHpi.h"
00031 }
00032 
00033 
00040 #ifndef __NEW_SIM_RDR_H__
00041 #include "new_sim_rdr.h"
00042 #endif
00043 
00044 
00045 class  NewSimulatorDomain;
00046 
00053 class NewSimulatorSensor : public NewSimulatorRdr {
00054 
00055 protected:
00057   SaHpiSensorRecT        m_sensor_record;
00058   
00060   SaHpiBoolT             m_enabled;
00062   SaHpiBoolT             m_events_enabled;
00064   SaHpiBoolT             m_read_support;
00066   SaHpiEventStateT       m_assert_mask;
00068   SaHpiEventStateT       m_deassert_mask;
00069   
00071   SaHpiSensorReadingT    m_read_data;
00073   SaHpiEventStateT       m_event_data;
00074   
00075   virtual bool gt(const SaHpiSensorReadingT &val1, const SaHpiSensorReadingT &val2);
00076   virtual bool ge(const SaHpiSensorReadingT &val1, const SaHpiSensorReadingT &val2);
00077   virtual bool lt(const SaHpiSensorReadingT &val1, const SaHpiSensorReadingT &val2);
00078   virtual bool le(const SaHpiSensorReadingT &val1, const SaHpiSensorReadingT &val2);
00079   virtual bool eq(const SaHpiSensorReadingT &val1, const SaHpiSensorReadingT &val2);
00080   virtual bool ltZero(const SaHpiSensorReadingT &val1);
00081   
00082 public:
00083   NewSimulatorSensor( NewSimulatorResource *res );
00084   NewSimulatorSensor( NewSimulatorResource *res,
00085                       SaHpiRdrT rdr, 
00086                       SaHpiSensorReadingT data, 
00087                       SaHpiEventStateT event_state, 
00088                       SaHpiEventStateT event_amask, 
00089                       SaHpiEventStateT event_dmask,
00090                       SaHpiBoolT enabled, 
00091                       SaHpiBoolT event_enabled);
00092                       
00093   virtual ~NewSimulatorSensor();
00094 
00096   virtual unsigned int Num() const { return m_sensor_record.Num; }
00097 
00099   SaHpiSensorTypeT       Type() const { return m_sensor_record.Type; }
00101   SaHpiEventCategoryT    EventCategory() const { return m_sensor_record.Category; }
00103   SaHpiBoolT             EnableCtrl() const { return m_sensor_record.EnableCtrl; }
00105   SaHpiSensorEventCtrlT  EventCtrl() const { return m_sensor_record.EventCtrl; }
00107   SaHpiEventStateT       EventStates() const { return m_sensor_record.Events; }
00109   SaHpiSensorDataFormatT DataFormat() const { return m_sensor_record.DataFormat; }
00111   SaHpiSensorThdDefnT    ThresholdDefn() const { return m_sensor_record.ThresholdDefn; }
00113   SaHpiUint32T           Oem() const { return m_sensor_record.Oem; }
00114 
00116   virtual void HandleNew( NewSimulatorDomain *domain );
00118   virtual bool Cmp( const NewSimulatorSensor &s2 ) const;
00119   
00120   // create an HPI event from ipmi event
00121 //  virtual SaErrorT CreateEvent( NewSimulatorEvent *event, SaHpiEventT &h );
00122 
00124   void CreateEnableChangeEvent();
00125 
00126   // handle all incoming sensor events
00127 //  virtual void HandleEvent( NewSimulatorEvent *event );
00128   virtual void Dump( NewSimulatorLog &dump ) const;
00129 
00131   virtual bool CreateRdr( SaHpiRptEntryT &resource, SaHpiRdrT &rdr );
00132 
00133   // Official HPI functions
00135   virtual SaErrorT GetSensorReading( SaHpiSensorReadingT &data, SaHpiEventStateT &state ) = 0;
00136   SaErrorT GetEnable( SaHpiBoolT &enable );
00137   SaErrorT GetEventEnables( SaHpiBoolT &enables );
00138   SaErrorT GetEventMasks( SaHpiEventStateT &AssertEventMask,
00139                           SaHpiEventStateT &DeassertEventMask);
00140   SaErrorT SetEnable( const SaHpiBoolT &enable );
00141   SaErrorT SetEventEnables( const SaHpiBoolT &enables );
00142   SaErrorT SetEventMasks( const SaHpiSensorEventMaskActionT &act,
00143                           SaHpiEventStateT &AssertEventMask,
00144                           SaHpiEventStateT &DeassertEventMask );
00145 
00146 };
00147 
00148 
00149 #endif

Generated on Mon Apr 26 14:36:48 2010 for New Simulator by  doxygen 1.4.4