171 lines
3.4 KiB
C
171 lines
3.4 KiB
C
|
/* Copyright 1999 American Power Conversion, All Rights Reserved
|
||
|
*
|
||
|
* Description:
|
||
|
* Implements the UPS to the service - it does this by
|
||
|
* either loading a UPS driver or by using the default
|
||
|
* Generic UPS interface (simple signalling)
|
||
|
*
|
||
|
* Revision History:
|
||
|
* mholly 19Apr1999 initial revision.
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef _INC_UPS_DRIVER_H_
|
||
|
#define _INC_UPS_DRIVER_H_
|
||
|
|
||
|
|
||
|
//
|
||
|
// values that represent the state of the
|
||
|
// UPS system - these values are used in the
|
||
|
// UPSGetState and UPSWaitForStateChange functions
|
||
|
//
|
||
|
#define UPS_ONLINE 1
|
||
|
#define UPS_ONBATTERY 2
|
||
|
#define UPS_LOWBATTERY 4
|
||
|
#define UPS_NOCOMM 8
|
||
|
#define UPS_CRITICAL 16
|
||
|
|
||
|
|
||
|
//
|
||
|
// possible error codes returned from UPSInit
|
||
|
//
|
||
|
#define UPS_INITUNKNOWNERROR 0
|
||
|
#define UPS_INITOK 1
|
||
|
#define UPS_INITNOSUCHDRIVER 2
|
||
|
#define UPS_INITBADINTERFACE 3
|
||
|
#define UPS_INITREGISTRYERROR 4
|
||
|
#define UPS_INITCOMMOPENERROR 5
|
||
|
#define UPS_INITCOMMSETUPERROR 6
|
||
|
|
||
|
|
||
|
/**
|
||
|
* UPSInit
|
||
|
*
|
||
|
* Description:
|
||
|
*
|
||
|
* The UPSInit function must be called before any
|
||
|
* other function in this file
|
||
|
*
|
||
|
* Parameters:
|
||
|
* None
|
||
|
*
|
||
|
* Returns:
|
||
|
* UPS_INITOK: Initalization was successful
|
||
|
* UPS_INITNOSUCHDRIVER: The configured driver DLL can't be opened
|
||
|
* UPS_INITBADINTERFACE: The configured driver DLL doesn't support
|
||
|
* the UPS driver interface
|
||
|
* UPS_INITREGISTRYERROR: The 'Options' registry value is corrupt
|
||
|
* UPS_INITCOMMOPENERROR: The comm port could not be opened
|
||
|
* UPS_INITCOMMSETUPERROR: The comm port could not be configured
|
||
|
* UPS_INITUNKNOWNERROR: Undefined error has occurred
|
||
|
*
|
||
|
*/
|
||
|
DWORD UPSInit(void);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* UPSStop
|
||
|
*
|
||
|
* Description:
|
||
|
* After a call to UPSStop, only the UPSInit
|
||
|
* function is valid. This call will unload the
|
||
|
* UPS driver interface and stop monitoring of the
|
||
|
* UPS system
|
||
|
*
|
||
|
* Parameters:
|
||
|
* None
|
||
|
*
|
||
|
* Returns:
|
||
|
* None
|
||
|
*
|
||
|
*/
|
||
|
void UPSStop(void);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* UPSWaitForStateChange
|
||
|
*
|
||
|
* Description:
|
||
|
* Blocks until the state of the UPS differs
|
||
|
* from the value passed in via aState or
|
||
|
* anInterval milliseconds has expired. If
|
||
|
* anInterval has a value of INFINITE this
|
||
|
* function will never timeout
|
||
|
*
|
||
|
* Parameters:
|
||
|
* aState: defines the state to wait for a change from,
|
||
|
* possible values:
|
||
|
* UPS_ONLINE
|
||
|
* UPS_ONBATTERY
|
||
|
* UPS_LOWBATTERY
|
||
|
* UPS_NOCOMM
|
||
|
*
|
||
|
* anInterval: timeout in milliseconds, or INFINITE for
|
||
|
* no timeout interval
|
||
|
*
|
||
|
* Returns:
|
||
|
* None
|
||
|
*
|
||
|
*/
|
||
|
void UPSWaitForStateChange(DWORD aCurrentState, DWORD anInterval);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* UPSGetState
|
||
|
*
|
||
|
* Description:
|
||
|
* returns the current state of the UPS
|
||
|
*
|
||
|
* Parameters:
|
||
|
* None
|
||
|
*
|
||
|
* Returns:
|
||
|
* possible values:
|
||
|
* UPS_ONLINE
|
||
|
* UPS_ONBATTERY
|
||
|
* UPS_LOWBATTERY
|
||
|
* UPS_NOCOMM
|
||
|
*
|
||
|
*/
|
||
|
DWORD UPSGetState(void);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* UPSCancelWait
|
||
|
*
|
||
|
* Description:
|
||
|
* interrupts pending calls to UPSWaitForStateChange
|
||
|
* without regard to timout or state change
|
||
|
*
|
||
|
* Parameters:
|
||
|
* None
|
||
|
*
|
||
|
* Returns:
|
||
|
* None
|
||
|
*
|
||
|
*/
|
||
|
void UPSCancelWait(void);
|
||
|
|
||
|
|
||
|
/**
|
||
|
* UPSTurnOff
|
||
|
*
|
||
|
* Description:
|
||
|
* Attempts to turn off the outlets on the UPS
|
||
|
* after the specified delay. This call must
|
||
|
* return immediately. Any work, such as a timer,
|
||
|
* must be performed on a another thread.
|
||
|
*
|
||
|
* Parameters:
|
||
|
* aTurnOffDelay: the minimum amount of time to wait before
|
||
|
* turning off the outlets on the UPS
|
||
|
*
|
||
|
* Returns:
|
||
|
* None
|
||
|
*
|
||
|
*/
|
||
|
void UPSTurnOff(DWORD aTurnOffDelay);
|
||
|
|
||
|
|
||
|
#endif
|