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
00121
00122
00124 void CreateEnableChangeEvent();
00125
00126
00127
00128 virtual void Dump( NewSimulatorLog &dump ) const;
00129
00131 virtual bool CreateRdr( SaHpiRptEntryT &resource, SaHpiRdrT &rdr );
00132
00133
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