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

69 lines
1.9 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
/* Copyright 1999 American Power Conversion, All Rights Reserverd
*
* Description:
* The ApcMiniDriver class provides an interface that is
* compatible with the MiniDriver interface for the Windows2000
* UPS service.
* The ApcMiniDriver makes use of a modified
* PowerChute plus UPS service. This modified service has had
* all of the networking, data logging, and flex manager code
* removed. All that is left is the modeling and monitoring of
* the connected UPS system. It is assumed that a "smart"
* signalling UPS is connected.
* The ApcMiniDriver class is also responsible for filling in
* the advanced registry settings, battery replacement condition,
* serial #, firmware rev, etc...
*
* Revision History:
* mholly 14Apr1999 Created
* mholly 12May1999 no longer taking aCommPort in UPSInit
*
*/
#ifndef _INC_APCMINIDRVR_H_
#define _INC_APCMINIDRVR_H_
#include "update.h"
class NTServerApplication;
class ApcMiniDriver : public UpdateObj
{
public:
ApcMiniDriver();
~ApcMiniDriver();
INT Update(PEvent anEvent) ;
DWORD UPSInit();
void UPSStop();
void UPSWaitForStateChange(DWORD aState, DWORD anInterval);
DWORD UPSGetState();
void UPSCancelWait();
void UPSTurnOff(DWORD aTurnOffDelay);
protected:
INT initalizeAdvancedUpsData();
INT initalizeUpsApplication();
void cleanupUpsApplication();
void setLowBatteryDuration();
INT onUtilityLineCondition(PEvent anEvent);
INT onBatteryReplacementCondition(PEvent anEvent);
INT onBatteryCondition(PEvent anEvent);
INT onCommunicationState(PEvent anEvent);
INT onTimerPulse(PEvent anEvent);
private:
NTServerApplication * theUpsApp;
DWORD theState;
HANDLE theStateChangedEvent;
DWORD theReplaceBatteryState;
ULONG theRunTimeTimer;
DWORD theOnBatteryRuntime;
DWORD theBatteryCapacity;
};
#endif