/* * * NOTES: * * REVISIONS: * xxxddMMMyy * SjA10Dec92: Small Syntax error. READ_WRITE needs to be changed to AREAD_WRITE * srt24Dec96: Fixe init to use config mgr instead of hard-coded disabled. */ #define INCL_BASE #define INCL_DOS #define INCL_NOPM #include "cdefine.h" extern "C" { #if (C_OS & C_OS2) #include #endif #include #include #include #include } #include "turnoff.h" #include "cfgmgr.h" #include "comctrl.h" #include "dispatch.h" //Constructor TurnOffUpsOnBatterySensor :: TurnOffUpsOnBatterySensor(PDevice aParent, PCommController aCommController) : Sensor(aParent,aCommController,TURN_OFF_UPS_ON_BATTERY,AREAD_WRITE) { CHAR aValue[8]; INT err = _theConfigManager->Get(CFG_AUTO_UPS_REBOOT_ENABLED, aValue); //Make sure this value is correct AutoRebootEnabled = (('Y' == aValue[0]) || ('y' == aValue[0])); } INT TurnOffUpsOnBatterySensor::Get(INT aCode, PCHAR aValue) { INT err = ErrNO_ERROR; switch(aCode) { case AUTO_REBOOT_ENABLED: err = _theConfigManager->Get(CFG_AUTO_UPS_REBOOT_ENABLED, aValue); //Make sure this value is correct AutoRebootEnabled = (('Y' == aValue[0]) || ('y' == aValue[0])); break; default: break; } return err; } INT TurnOffUpsOnBatterySensor::Set(INT aCode, const PCHAR aValue) { INT err = ErrNO_ERROR; switch(aCode) { case AUTO_REBOOT_ENABLED: // err = _theConfigManager->Set(CFG_AUTO_UPS_REBOOT_ENABLED, aValue); //Make sure this value is correct AutoRebootEnabled = (('Y' == aValue[0]) || ('y' == aValue[0])); break; case TURN_OFF_UPS_ON_BATTERY: // We use this data member because the file system is down (in Novell) // before we check this config parameter in the INI file. So we hold // this boolean value which is set every time we check AUTO_REBOOT_ENABLED // -- James if (AutoRebootEnabled) { // reboot when power returns; err = theCommController->Set(TURN_OFF_UPS_ON_BATTERY, (CHAR*)NULL); } else { // Don't reboot when power returns; err = theCommController->Set(TURN_OFF_UPS_AFTER_DELAY, (CHAR*)NULL); } default: break; } return err; }