windows-nt/Source/XPSP1/NT/ds/netapi/svcdlls/upssvc/apcsmart/smartups.h

128 lines
4.2 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/*
*
* NOTES:
*
* REVISIONS:
* rct11Dec92 Compiled w/o the managers
* pcy27Dec92 Added the managers
* pcy26Jan92: Added handling of dip switch changed/eeprom access
* ane03Feb93: added destructor
* jod05Apr93: Added changes for Deep Discharge
* cad08Jan94: made firmrevsensor specific type
* pcy08Apr94: Trim size, use static iterators, dead code removal
* jps14Jul94: made ...TimerId LONG
* djs14Mar95: Added OverloadSensor
*/
#ifndef _INC__SMARTUPS_H_
#define _INC__SMARTUPS_H_
#include "backups.h"
#include "sensor.h"
#include "battmgr.h"
#include "event.h"
_CLASSDEF(FirmwareRevSensor)
_CLASSDEF(SmartUps)
//-------------------------------------------------------------------
class SmartUps : public BackUps {
public:
SmartUps( PUpdateObj aDeviceController, PCommController aCommController );
virtual ~SmartUps();
virtual INT IsA() const { return SMARTUPS; };
virtual INT Get( INT code, PCHAR value );
virtual INT Set( INT code, const PCHAR value );
virtual INT Update( PEvent event );
virtual VOID GetAllowedValue(INT theSensorCode, CHAR *allowedValue);
protected:
//
// required sensors
//
PSensor theLightsTestSensor;
PFirmwareRevSensor theFirmwareRevSensor;
PDecimalFirmwareRevSensor theDecimalFirmwareRevSensor;
PSensor theUpsModelSensor;
PSensor theUpsSerialNumberSensor;
PSensor theManufactureDateSensor;
PSensor thePutUpsToSleepSensor;
PSensor theBatteryCapacitySensor;
PSensor theSmartBoostSensor;
PSensor theSmartTrimSensor;
PSensor theCopyrightSensor;
PSensor theRunTimeRemainingSensor;
PSensor theNumberBatteryPacksSensor;
PBatteryReplacementManager theBatteryReplacementManager;
PSensor theTripRegisterSensor;
PSensor theTurnOffWithDelaySensor;
PSensor theLowBatteryDurationSensor;
PSensor theShutdownDelaySensor;
virtual VOID HandleLineConditionEvent( PEvent aEvent );
virtual VOID HandleBatteryConditionEvent( PEvent aEvent );
virtual VOID HandleSmartBoostEvent( PEvent aEvent );
virtual VOID HandleSmartTrimEvent( PEvent aEvent );
virtual VOID HandleOverloadConditionEvent( PEvent aEvent );
virtual VOID HandleSelfTestEvent( PEvent aEvent );
virtual VOID HandleBatteryCalibrationEvent( PEvent aEvent );
virtual VOID HandleLightsTestEvent( PEvent aEvent );
virtual INT MakeBatteryCapacitySensor( const PFirmwareRevSensor rev );
virtual INT MakeSmartBoostSensor( const PFirmwareRevSensor rev );
virtual INT MakeSmartTrimSensor( const PFirmwareRevSensor rev );
virtual INT MakeCopyrightSensor( const PFirmwareRevSensor rev );
virtual INT MakeRunTimeRemainingSensor( const PFirmwareRevSensor rev );
virtual INT MakeManufactureDateSensor( const PFirmwareRevSensor rev );
virtual INT MakeLowBatteryDurationSensor( const PFirmwareRevSensor rev );
virtual INT MakeShutdownDelaySensor(const PFirmwareRevSensor rev);
virtual INT MakeUpsSerialNumberSensor( const PFirmwareRevSensor rev );
virtual INT MakeTurnOffWithDelaySensor( const PFirmwareRevSensor rev );
virtual INT MakePutUpsToSleepSensor();
LONG pendingEventTimerId;
PEvent pendingEvent;
virtual VOID registerForEvents();
virtual VOID reinitialize();
VOID setEepromAccess(INT anAccessCode);
INT GetAllAllowedValues(PList ValueList);
INT ParseValues(CHAR* string, PList ValueList);
INT AllowedValuesAreGettable(PSensor theFirmwareRevSensor);
VOID FindAllowedValues(INT code, CHAR *aValue, PFirmwareRevSensor theFirmwareRevSensor );
};
class AllowedValueItem : public Obj
{
protected:
INT theCode;
CHAR theUpsType;
CHAR* theValue;
public:
AllowedValueItem(INT Code,CHAR Type, CHAR* Value);
virtual ~AllowedValueItem();
CHAR GetUpsType() {return theUpsType;}
INT GetUpsCode() {return theCode;}
CHAR* GetValue() {return theValue;}
};
#endif