/*************************************************************************** sensor.h - description ------------------- begin : mié abr 24 2002 copyright : (C) 2002 by Miguel Novas email : michaell@teleline.es ***************************************************************************/ /*************************************************************************** * * * This program 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 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef SENSOR_H #define SENSOR_H #include #include #include #include /** *@author Miguel Novas */ // class SensorsList; class Sensor : public TQObject { TQ_OBJECT friend class SensorsList; public: enum SensorClass { lmSensor, hdSensor }; enum TempScale { dgCelsius, dgFahrenheit, dgKelvin, dgDefault }; enum SensorType { lmTemp, lmFan, lmVoltage }; Sensor(SensorsList *parent=0, const char *name=0); ~Sensor(); inline void setType(SensorType newType) { type= newType; }; void setValue(double newVal, TempScale scale= dgDefault, bool ajust=true); inline SensorType getType() { return type; }; inline const TQString &getDescription() { return description; }; inline double getValue() { return celsiusTo(val); }; inline double getValuePrevious() { return celsiusTo(valPrevious); }; inline double getValueIdeal() { return celsiusTo(valIdeal); }; inline double getValueMax() { return celsiusTo(valMax); }; inline double getValueMin() { return celsiusTo(valMin); }; inline double getCompensation() { return celsiusToDiff(compensation); }; inline double getMultiplicator() { return multiplicator; }; inline bool getAlarm() { return (valvalMax); }; inline bool getAlarmPrevious() { return (valPreviousvalMax); }; inline bool getMonitorize() { return monitorize; }; inline bool isAlarmValue(double value) { value= toCelsius(value); return (valuevalMax); }; bool monitorized(); void setMonitorized (bool enable); void setDescription (const TQString &str); void setValueIdeal (double value, TempScale scale= dgDefault); void setValueMax (double value, TempScale scale= dgDefault); void setValueMin (double value, TempScale scale= dgDefault); void setCompensation (double value, TempScale scale= dgDefault); void setMultiplicator(double value); SensorClass getClass(); TempScale getTempScale(); double toCelsius(double val, TempScale scale= dgDefault); double celsiusTo(double val, TempScale scale= dgDefault); double toCelsiusDiff(double val, TempScale scale= dgDefault); double celsiusToDiff(double val, TempScale scale= dgDefault); TQString getPrintMask(bool addSufix); public slots: void readConfig(); void writeConfig(); signals: void valueChanged(double); void configChanged(); private: SensorType type; TQString description; double val; double valPrevious; double compensation; double multiplicator; double valMax; double valMin; double valIdeal; bool monitorize; inline double adjustValue(double value) { return value * multiplicator + compensation; }; const char *getSensorPrintMask(int sensorType, bool addSufix, TempScale temp); }; #endif