-- MIB Definition File ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
--  Copyright (c) 2004 - 2013 Eaton Corporation, All Rights Reserved.
--
--  PURPOSE:      Defines the SNMP interface to the SC300 Controller.
--
--  DESCRIPTION:  This file should be able to be compiled with any standard MIB compiler,
--                however our experience suggests that different compilers perform differently.
--                This file has been tested with NetSNMP (http://net-snmp.sourceforge.net/) and
--                MG-Soft MIB Browser (http://www.mg-soft.com/).
--
--  NOTE:         Below is the encoding this file was originally released in. Not all MIB compilers
--                may be able to read the file in this encoding. If your MIB compiler does not support
--                the original encoding, you may have to convert it to a different encoding. If the target
--                encoding does not support all characters used in this file, the resulting MIB may not compile.
--                We recommend that you update the second line below when you change the encoding of this file.
--                
--                Original Encoding: UTF-8
--                Current Encoding:  UTF-8
--
--  LAST UPDATED: SC300: $Id$
--  XSLT UTILITY: SAXON 9.3.0.5 from Saxonica (http://www.saxonica.com/)

-- MIB Module Name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RpsSc300Mib DEFINITIONS ::= BEGIN

-- Imported Items ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    IMPORTS
   NOTIFICATION-GROUP, OBJECT-GROUP
     FROM SNMPv2-CONF

   enterprises, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE, OBJECT-IDENTITY, Integer32, Unsigned32
     FROM SNMPv2-SMI

   InetAddress, InetAddressType
     FROM INET-ADDRESS-MIB

   TEXTUAL-CONVENTION, DisplayString
     FROM SNMPv2-TC;

rpsSc300MibModule MODULE-IDENTITY
    LAST-UPDATED "201303240000Z"
    ORGANIZATION "Eaton"
    CONTACT-INFO "Eaton Power Quality, Christchurch, NZ"
    DESCRIPTION "SC300 Rectifier Controller"
    REVISION "201303240000Z"
    DESCRIPTION "Latest version"
  ::= { rpsSc300 1 }

-- Type Assignments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed8 ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX Integer32 ( -128..127 )

Signed16 ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX Integer32 ( -32768..32767 )

Signed32 ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX Integer32 ( -2147483648..2147483647 )

Unsigned8 ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX Integer32 ( 0..255 )

Unsigned16 ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX Integer32 ( 0..65535 )

Unsigned31 ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX Integer32 ( 0..2147483646 )

UnsignedNan8 ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER { notavailable(255) }

UnsignedNan16 ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER { notavailable(65535) }

UnsignedNan32 ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX Integer32

Boolean ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER { false(0), true(1) }

Float ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX Integer32 ( -2147483648..2147483647 )

NoData ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX OCTET STRING(SIZE(0))

TimeIntervalInSeconds ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION "TimeTicks"
  SYNTAX Unsigned32 (0..4294967295)

TimeIntervalInMinutes ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION "Unsigned31"
  SYNTAX Integer32 ( 0..2147483646 )

TimeIntervalInDays ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION "Unsigned31"
  SYNTAX Integer32 ( 0..2147483646 )

JulianTimeUtc ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "25t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..25))

JulianDateUtc ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "25t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..25))
JulianDateUtc25 ::= TEXTUAL-CONVENTION
  DISPLAY-HINT "25t"
  STATUS       current
  DESCRIPTION  " "
  SYNTAX       OCTET STRING (SIZE(25))

EnableState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(0),
  enabled(1)
}

BaudRate ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  baudRate1200(0),
  baudRate2400(1),
  baudRate4800(2),
  baudRate9600(3),
  baudRate19200(4),
  baudRate38400(5),
  baudRate57600(6),
  baudRate115200(7),
  baudRate250000(8),
  baudRate1843200(9)
}

Parity ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  none(0),
  odd(1),
  even(2)
}

StopBits ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  one(1),
  two(2)
}

SnmpTrapVersion ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  snmpV2Trap(1),
  snmpV3Trap(3)
}

SeverityLevel ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  warningsAndAbove(1),
  minorAndAbove(2),
  majorAndAbove(3),
  none(4),
  criticalOnly(5)
}

YesNo ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  no(0),
  yes(1)
}

Sysoid ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  sc200(13),
  sc300(14)
}

UserSnmp ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  noSnmp(0),
  get(1),
  getSet(2)
}

WebAccess ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  none(0),
  httpsDefaultUser(1),
  http(2),
  https(3)
}

ThreadPriority ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  idle(0),
  user(1),
  system(2),
  realtime(3)
}

RectifierShutdownMode ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(0),
  manual(1),
  automatic(2)
}

DcdcHardwareType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  outputUnknown(0),
  output12v(1),
  output24v(2),
  output48v(3)
}

InputType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  ac(0),
  dc(1),
  mppt(2)
}

DcPower ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION "UnsignedNAN16"
  SYNTAX INTEGER { notAvailable(65535) }

Percentile8Nan ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION "UnsignedNAN8"
  SYNTAX INTEGER { notAvailable(255) }

ProductType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  undefined(0),
  sm20(1),
  sm50(2),
  sm30(3),
  sm30Slave(4),
  iom(5),
  cbc(6),
  weir(7),
  sm35(8),
  nesBatteryTray(9),
  sm30SlaveFrontPort(10),
  sm60(11),
  sm40(12),
  sm70Iob(13),
  sm70(14),
  sm45Iob(15),
  sm45(16),
  sm65(17),
  sc200(18),
  sc300(19)
}

AccessLevel ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  readOnly(80),
  readWrite(81)
}

SnmpAccessState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(0),
  all(1),
  readOnly(2),
  v3Only(3)
}

GenericTrapsEnable ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  all(0),
  coldStartTrapOnly(1),
  none(2)
}

SendTrap ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  none(0),
  both(1),
  activation(2),
  deactivation(4)
}

AlarmReport ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  none(0),
  warningsAndAbove(1),
  minorAndAbove(2),
  majorAndAbove(3),
  criticalOnly(4)
}

SnmpTrapFormat ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  eaton(0),
  x733(1)
}

AccessProtection ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  unprotected(0),
  readOnly(1),
  pinProtected(2)
}

CanStart ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  started(190),
  canStart(191),
  busy(192),
  disabled(193),
  alarmsActive(194),
  sensorFailed(195),
  batteryNotCharged(196),
  noRectifiersNorSolarAvailable(197),
  rectifierOvsd(198),
  noBatteryConfigured(199),
  loadCurrentTooLow(200),
  acFailed(201),
  manualStop(202),
  batteryNotDischarged(203),
  acStateUnavailable(204),
  systemOverloaded(205),
  noPeakLoadReduction(206),
  inLockout(207),
  rectifiersFailed(208),
  rectifiersCommsLost(209),
  systemInOverload(210),
  batteryFuseFail(211),
  batteryTestFail(212),
  bAcFailed(213),
  bAcStateUnavailable(214),
  bNoBatteryConfigured(215),
  bSensorFailed(216),
  bNoRectifiersNorSolarAvailable(217),
  bRectifiersFailed(218),
  bRectifiersCommsLost(219),
  bSystemInOverload(220),
  bBatteryFuseFail(221),
  bBusy(222),
  bBatteryTestFail(223),
  bSystemOverloaded(224)
}

AvcState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(115),
  inoperative(116),
  active(117),
  lostControl(118),
  inDeadband(119)
}

TcState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(80),
  inoperative(81),
  active(82)
}

BatteryTestState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(95),
  inactive(96),
  active(97),
  failed(98),
  lockedOut(99),
  bActiveAFailed(100),
  aActiveBFailed(101)
}

BatteryChargeState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  float(100),
  discharge(101),
  charge(102),
  unavailable(103)
}

BclState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(110),
  inoperative(111),
  active(112),
  inactive(113),
  lostControl(114),
  inDeadband(115),
  pending(116)
}

EngineRunState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  notRunning(85),
  running(86),
  unavailable(87),
  missing(88)
}

RcpSlaveState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  notDetected(0),
  detected(1),
  registered(2),
  commsLost(3),
  missing(4),
  rebooting(5)
}

TrapAlarmKeepSeverity ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  critical(1),
  major(2),
  minor(3),
  warning(4),
  cleared(5)
}

AlarmSeverity ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(0),
  critical(1),
  major(2),
  minor(3),
  warning(4),
  control(5)
}

TrapReceiverMode ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  normalTraps(1),
  acknowledgedSummaryTrap(2)
}

ControlState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  normal(0),
  equalize(1),
  fastCharge(2),
  batteryTest(3),
  peakLoadReduction(4)
}

ControlProcessState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(0),
  active(1),
  inactive(2),
  pending(3)
}

PeakLoadReductionState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(0),
  inactiveNotRunning(1),
  inactiveNoBusVoltage(2),
  inactiveNotEnoughRectifiers(3),
  inactiveExceededMaxDuration(4),
  heldAtMinimumBusVoltage(5),
  activeCharge(6),
  activeDischarge(7)
}

ExternalRelayState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  active(0),
  inactive(1),
  missing(2),
  disabled(3),
  conflict(4)
}

RelayControlState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  active(0),
  automatic(1),
  inactive(2)
}

RectFailState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  notFailed(0),
  badStatus(1),
  badOutput(2)
}

AcPhase ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  acPhase1(0),
  acPhase2(1),
  acPhase3(2),
  n(3),
  unknown(4)
}

AlarmType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  systemAlarm(0),
  aiHigh(1),
  aiLow(2),
  di(3),
  smartAlarm(4),
  do(5)
}

SystemState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  ok(0),
  failed(1),
  unavailable(2),
  missing(3)
}

BtrState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  inoperative(0),
  inactive(1),
  active(2),
  characterizing(3),
  waiting(4),
  notCharacterized(5)
}

EndOfChargeAction ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  setAhDischargedToZeroAfterEqualizeAndFastCharge(0),
  setAhDischargedToZeroAfterFastChargeOnly(1),
  setAhDischargedToZeroAfterEqualizeOnly(2)
}

AlarmActiveState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  notActive(0),
  activeWarning(1),
  activeMajor(2),
  activeMinor(3),
  reserved(4),
  activeCritical(5),
  activeControl(6)
}

AlarmOperator ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  and(0),
  or(1),
  xor(2)
}

SourceTrigger ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  triggered(0),
  active(1)
}

SourceState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  inactiveClear(0),
  inactiveArmed(1),
  activeClear(2),
  activeArmed(3),
  cycle(4),
  invalid(5)
}

InDischargeAlarmCondition ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  always(0),
  onlyWhileAcPresent(1)
}

ThresholdType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  high(0),
  low(1)
}

SystemValueSourceValue ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  busVoltage(0),
  rectifierCurrent(1),
  loadCurrent(2),
  batteryCurrent(3),
  batteryTemperature(4),
  loadPower(5),
  systemPower(6),
  ahDischarged(7),
  numberOfRectifiersFailed(8),
  numberOfRectifiersCommsLost(9),
  acVoltage(10),
  batteryTimeRemaining(11),
  alternativeSourceCurrent(12),
  highestRectifierHeatsinkTemperature(13),
  fuelLevel(14),
  generatorBackupTime(15),
  fuelRemainingTime(16),
  smartAnalog(17),
  energyMeter(18),
  powerMeter(19),
  currentMeter(20),
  voltageMeter(21),
  solarPower(22),
  rectifierInputVoltage(23),
  solarCurrent(24),
  dcInputVoltage(25),
  generatorCurrent(26),
  batteryHealth(27),
  acInputCurrent(28),
  dcInputCurrent(29),
  operatingVoltage(30),
  fanTemperature(31),
  fanPower(32),
  dcdcVoltage(33),
  dcdcCurrent(34),
  dcdcPower(35),
  dcdcHeatsinkTemperature(36),
  dcInputVoltageMax(37),
  dcInputVoltageMin(38),
  numberOfSolarCommsLost(39),
  solarInputVoltage(40),
  numberOfSolarFailed(41)
}

SystemAlarm ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  lowFloat(0),
  lowLoad(1),
  highFloat(2),
  highLoad(3),
  rectifierFail(4),
  multipleRectifierFail(5),
  rectifierCommsLost(6),
  multipleRectifierCommsLost(7),
  partialAcFail(8),
  acFail(9),
  systemOverload(10),
  loadFuseFail(11),
  batteryFuseFail(12),
  batteryTestFail(13),
  movFail(14),
  acdFanFail(15),
  lvd1Disconnected(16),
  lvd1Fail(17),
  lvd1Manual(18),
  lvd2Disconnected(19),
  lvd2Fail(20),
  lvd2Manual(21),
  batteryTemperatureLow(22),
  batteryTemperatureHigh(23),
  sensorFail(24),
  equalize(25),
  fastCharge(26),
  batteryTest(27),
  auxiliarySensorFail(28),
  inDischarge(29),
  batteryCurrentLimit(30),
  rectifierNoLoad(31),
  rectifierCurrentLimit(32),
  rectifierOverTemperature(33),
  acPhase1Fail(34),
  acPhase1Voltage(35),
  acPhase2Fail(36),
  acPhase2Voltage(37),
  acPhase3Fail(38),
  acPhase3Voltage(39),
  acFrequency(40),
  reserved(41),
  cabinetFanFail(42),
  unmappedIobFound(43),
  unknownHardware(44),
  iobCommsLost(45),
  standbyMode(46),
  lvd1CharacterizationError(47),
  lvd2CharacterizationError(48),
  stringFail(49),
  generatorFail(50),
  lvdDisconnected(51),
  lvdFail(52),
  lvdManual(53),
  lvdCharacterizationError(54),
  configurationError(55),
  wrongBatteryPolarity(56),
  characterizingBattery(57),
  doManual(58),
  normalCharge(59),
  peakLoadReduction(60),
  siteBackupTimeRemaining(61),
  dcdcFail(62),
  solarFail(63),
  systemOverloadB(64),
  batteryEndOfLife(65),
  rtcLowBattery(66),
  batteryTestCancelled(67),
  lowRectifierCapacity(68),
  solarCommsLost(69),
  multipleSolarCommsLost(70),
  unstableRectifierAc(71),
  ripCommsLost(72)
}

EnergizeState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  deenergized(0),
  energized(1)
}

RelayMapping ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  none(0),
  digitalOutput1(1),
  digitalOutput2(2),
  digitalOutput3(3),
  digitalOutput4(4),
  digitalOutput5(5),
  digitalOutput6(6),
  digitalOutput7(7),
  digitalOutput8(8),
  digitalOutput9(9),
  digitalOutput10(10),
  digitalOutput11(11),
  digitalOutput12(12),
  digitalOutput13(13),
  digitalOutput14(14),
  digitalOutput15(15),
  digitalOutput16(16),
  digitalOutput17(17),
  digitalOutput18(18),
  digitalOutput19(19),
  digitalOutput20(20),
  digitalOutput21(21),
  digitalOutput22(22),
  digitalOutput23(23),
  digitalOutput24(24),
  digitalOutput25(25),
  digitalOutput26(26),
  digitalOutput27(27),
  digitalOutput28(28),
  digitalOutput29(29),
  digitalOutput30(30),
  digitalOutput31(31),
  digitalOutput32(32),
  digitalOutput33(33),
  digitalOutput34(34),
  digitalOutput35(35),
  digitalOutput36(36),
  digitalOutput37(37),
  digitalOutput38(38),
  digitalOutput39(39),
  digitalOutput40(40),
  digitalOutput41(41),
  digitalOutput42(42),
  digitalOutput43(43),
  digitalOutput44(44),
  digitalOutput45(45),
  digitalOutput46(46),
  digitalOutput47(47),
  digitalOutput48(48),
  digitalOutput49(49),
  digitalOutput50(50),
  digitalOutput51(51),
  digitalOutput52(52),
  digitalOutput53(53),
  digitalOutput54(54),
  digitalOutput55(55),
  digitalOutput56(56),
  digitalOutput57(57),
  digitalOutput58(58),
  digitalOutput59(59),
  digitalOutput60(60),
  digitalOutput61(61),
  digitalOutput62(62),
  digitalOutput63(63),
  digitalOutput64(64),
  digitalOutput65(65),
  digitalOutput66(66),
  digitalOutput67(67),
  digitalOutput68(68),
  digitalOutput69(69),
  digitalOutput70(70),
  digitalOutput71(71),
  digitalOutput72(72),
  digitalOutput73(73),
  digitalOutput74(74),
  digitalOutput75(75),
  digitalOutput76(76),
  digitalOutput77(77),
  digitalOutput78(78),
  digitalOutput79(79),
  digitalOutput80(80),
  digitalOutput81(81),
  digitalOutput82(82),
  digitalOutput83(83),
  digitalOutput84(84),
  digitalOutput85(85),
  digitalOutput86(86),
  digitalOutput87(87),
  digitalOutput88(88),
  digitalOutput89(89),
  digitalOutput90(90),
  digitalOutput91(91),
  digitalOutput92(92),
  digitalOutput93(93),
  digitalOutput94(94),
  digitalOutput95(95),
  digitalOutput96(96),
  digitalOutput97(97),
  digitalOutput98(98),
  digitalOutput99(99),
  digitalOutput100(100),
  digitalOutput101(101),
  digitalOutput102(102),
  digitalOutput103(103),
  digitalOutput104(104),
  digitalOutput105(105),
  digitalOutput106(106),
  digitalOutput107(107),
  digitalOutput108(108)
}

AiFunction ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  userDefined(1),
  busVoltage(2),
  batteryTemperature(3),
  batteryCurrent(4),
  loadCurrent(5),
  rectifierCurrent(6),
  batteryMidpoint(7),
  reverseBatteryDetect(8),
  alternativeEnergySourceCurrent(9),
  fuelLevel(10),
  smartAnalog(11),
  fanTemperature(12),
  batteryFirstQuarterPoint(13),
  batteryThirdQuarterPoint(14),
  generatorCurrent(15),
  solarCurrent(16)
}

SmartAnalogType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  average(0),
  addition(1),
  multiplication(2),
  max(3),
  min(4),
  kmultiplication(5)
}

SmartAnalogGate ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  normal(0),
  positiveOnly(1),
  negativeOnly(2),
  absolute(3),
  change(4)
}

ActiveState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  closed(2),
  open(3)
}

DigitalInputState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  missing(1),
  closed(2),
  open(3),
  disabled(4)
}

MeasurementUnits ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  none(30),
  volts(31),
  milliAmps(32),
  amps(33),
  kiloAmps(34),
  degreeCelsius(35),
  kiloWatts(36),
  percent(37),
  voltsAc(38),
  voltsDc(39),
  ampsAc(40),
  ampsDc(41),
  litre(42),
  litrePerSec(43),
  cubicMeterPerHour(44),
  pascal(45),
  kiloPascal(46),
  mmh2o(47),
  percentRelativeHumidity(48),
  rpm(49),
  hertz(50),
  kiloVoltAmps(51),
  kiloWattHour(52),
  watts(53),
  bar(54),
  psi(55),
  ah(56),
  hours(57),
  minutes(58)
}

OverloadAlarmType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  totalCapacity(0),
  redundancyNPlus1(1),
  redundancyNPlus2(2)
}

RxpSlaveType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  unknown(0),
  iob(1),
  rectifier(2),
  solar(3),
  fanController(4),
  dcdc(5),
  dataLogger(6)
}

BsmState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  unableToStart(0),
  lockedOut(1),
  converging(2),
  stable(3),
  disabled(4),
  zeroCellsPerString(5),
  busSensorFailed(6),
  acFailed(7),
  inDischarge(8),
  chargeStateUnavailable(9),
  inFastCharge(10),
  inEqualize(11),
  inBatteryTest(12),
  batteryFuseFailed(13)
}

BsmBatteryState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  ok(0),
  pendingFail(1),
  failed(2),
  unavailable(3),
  notConfigured(4)
}

LvdState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  idle(0),
  connected(1),
  disconnected(2),
  manual(3),
  noContactors(4),
  remoteConnected(5),
  remoteDisconnected(6)
}

LvdcType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  normallyOpen(0),
  normallyClosed(1)
}

LvdcState ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  connected(0),
  disconnected(1),
  failed(2),
  missing(3),
  disabled(4),
  conflict(5),
  notCharacterized(6)
}

BtrCharacterizationResult ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  notYetRun(0),
  sensorFailed(1),
  notFullyCharged(2),
  unstableBatteryCurrent(3),
  voltageStepDetected(4),
  complete(5),
  updated(6),
  userCanceled(7)
}

GeneratorStartupWiring ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  indirectStart(0),
  directStart(1)
}

EnergyMeterAiFunction ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  current(0),
  voltage(1),
  powerW(2),
  powerKw(3)
}

EnergyMeterSystemValue ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  busVoltage(1),
  rectifierCurrent(2),
  loadCurrent(3),
  batteryCurrent(4),
  smartAnalogCurrent(5),
  alternativeSourceCurrent(6),
  solarCurrent(7),
  acInputCurrent(8),
  dcInputCurrent(9),
  smartAnalogVoltage(10),
  acVoltage(11),
  dcInputVoltage(12),
  powerMeter(13),
  loadPower(14),
  smartAnalogPowerKw(15),
  smartAnalogPowerW(16),
  solarPower(17),
  generatorCurrent(18),
  pulseMeter(19),
  dcdcVoltage(20),
  dcdcCurrent(21),
  dcdcPower(22)
}

LogItems ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  smartAnalogs(0),
  generatorControl(1),
  energyMeters(2),
  powerMeters(3),
  otherMeters(4),
  fanController(5),
  data(6),
  batterySymmetryMonitoring(7)
}

Redundancy ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  n(1),
  nPlus1(2),
  nPlus2(3)
}

PreventBatteryTest ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  batteryFuseFail(1),
  allow(2)
}

FanControllerMode ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  dualController(1),
  singleController(2),
  independentControllers(3)
}

FanControllerProfile ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  primary(0),
  secondary(1),
  fanPowerIsSet(2)
}

SystemInputType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  rectifierCurrent(1),
  loadCurrent(2),
  batteryCurrent(3),
  smartAnalog(4),
  alternativeSourceCurrent(5),
  solarCurrent(6),
  acInputCurrent(7),
  dcInputCurrent(8),
  acVoltage(9),
  dcInputVoltage(10),
  powerMeter(11),
  loadPower(12),
  solarPower(13),
  generatorCurrent(14),
  ampHourDischarged(15),
  btrTimeRemaining(16),
  operatingVoltage(17),
  firstQuarterPointVoltage(18),
  thirdQuarterPointVoltage(19),
  midPointVoltage(20),
  imbalancePercent(21),
  fanTemperature(22),
  fanPower(23),
  dcdcVoltage(24),
  dcdcCurrent(25),
  dcdcPower(26),
  dcdcHeatsinkTemperature(27),
  dcInputVoltageMax(28),
  dcInputVoltageMin(29),
  busVoltage(30)
}

GenericSystemType ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  unknown(1),
  factory(2),
  masterConfig(3),
  aps48v(4),
  aps24v(5),
  eps48vLvd(8),
  eps48v(9)
}

S3pAccess ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION " "
  SYNTAX INTEGER {
  disabled(0),
  allow(1),
  usbOnly(2)
}

String7 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "7t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..7))

String10 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "10t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..10))

String16 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "16t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..16))

String17 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "17t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..17))

String20 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "20t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..20))

String30 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "30t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..30))

String32 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "32t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..32))

String40 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "40t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..40))

String60 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "60t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..60))

String64 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "64t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..64))

String100 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "100t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..100))

String150 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "150t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..150))

String253 ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "253t"
    STATUS       current
    DESCRIPTION  " "
    SYNTAX       OCTET STRING (SIZE(0..253))

-- OID Value Assignment and OBJECT-TYPE Construct ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
eatonChNz OBJECT IDENTIFIER ::= { enterprises 1918 }
dcPowerSystem OBJECT IDENTIFIER ::= { eatonChNz 2 }
rpsSc300 OBJECT IDENTIFIER ::= { dcPowerSystem 14 }

ipAddressType OBJECT-TYPE
  SYNTAX      InetAddressType
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION "The Internet Protocol (IP) address type."
::= { rpsSc300 2 }

systemObjectGroup OBJECT-GROUP
OBJECTS {
batteryCharacterizationDataIndex,
logItemsIndex,
systemManufacturer,
systemSerialNumber,
systemType,
systemLocation,
siteName,
siteAddress,
siteNotes,
systemObjectId2,
trapFormat,
genericTrapsEnable,
configurationName,
configurationVersion,
configurationModified,
siteBuilding,
siteRoom,
siteContact,
siteSupportContact,
isThreePhaseSystem,
manufacturerName,
productType,
softwareVersion,
bootVersion,
interfaceVersion,
hardwareVersion,
lcdVersion,
batteryMonitor,
serialNumber,
ethernetMacAddress,
subversionRevision,
evaluationSoftwareFound,
genericSystemType,
s3pAccess,
snmpAccess,
serialServerAccess,
serialServerPort,
s3pAddress,
ipAddress,
subnetMask,
gatewayAddress,
vlanId,
ipAddressAuto,
subnetMaskAuto,
gatewayAddressAuto,
autoIp,
webSessionTimeout,
webAccess,
blacklist,
blacklisted,
baudRate,
parity,
stopBits,
enableModem,
alarmReport,
modemSetUpString,
modemAutoAnswerRings,
modemMaximumRetries,
modemRetryInterval,
modemPowerReset,
dialOutNumber,
smsPhoneName,
smsLevel,
smsPhoneNumber,
smsPrefix,
smsEmailGateway,
modbusAccess,
modbusAddress,
modbusInterfaceVersion,
snmpReadCommunity,
snmpWriteCommunity,
enableTrapRepeat,
trapRepeatRate,
trapVersion,
trapReceiverIpAddress,
trapReceiverPort,
trapReceiverName,
trapReceiverLevel,
trapReceiverCommunity,
trapReceiverMode,
acknowledgeAlarmSummaryTrap,
snmpV3PrivacyPassword,
enableHeartbeatTrap,
heartbeatTrapPeriod,
emailNotifications,
smtpServerIpAddress,
smtpServerPort,
emailReturnAddress,
emailFromAddress,
emailValidAddress,
emailSubjectPrefix,
emailReceiverAddress,
emailReceiverLevel,
emailReceiverDelay,
sendTestEmail,
smtpResult,
sntpPollInterval,
udpPort,
primaryAddress,
backupAddress,
sntpLastUpdate,
userName,
userLogonId,
userLogonPassword,
userActive,
userWrite,
userRestore,
userBackup,
userExecute,
userUpgradeFirmware,
userAdministrator,
userSnmp,
authServer,
radiusAuthSvrSecret,
acctServer,
radiusAcctSvrSecret,
uiAccess,
s3pWriteAccessPassword,
remoteAccessLevel,
uploadingFirmware,
acVoltage,
phase1,
phase2,
phase3,
loadCurrent,
systemPower,
loadPower,
rxpSlaveRegistrationState,
rxpSlaveName,
rxpSlaveSerialNumber,
rxpSlaveType,
rxpSlaveCommandSet,
rxpBomRevision,
rxpSoftwareVersion,
identifyRxpSlave,
iobRegistrationState,
iobSerialNumber,
iobMapping,
iobNumberOfVoltages,
iobNumberOfCurrents,
iobNumberOfTemperatures,
iobNumberOfDigitalInputs,
iobNumberOfRelays,
iobNumberOfLvds,
numberOfRegisteredRectifiers,
numberOfRegisteredSolarChargers,
numberOfRectifiersFailed,
numberOfSolarFailed,
numberOfRectifiersCommsLost,
numberOfSolarCommsLost,
rectifierCurrent,
rectifierCurrentLimit,
solarCurrentLimit,
enableCurrentShare,
highestRectifierHeatsinkTemperature,
rectifierSerialNumber,
rectifierType,
rectifierInputType,
rectifierStatus,
rectifierMaximumCurrentLimit,
rectifierMaximumPowerLimit,
rectifierMinimumOvsdSetPoint,
rectifierMaximumOvsdSetPoint,
rectifierInputVoltage,
rectifierReportedVoltage,
rectifierReportedCurrent,
rectifierOutputPowerw,
rectifierOutputPower,
rectifierHeatsinkTemperature,
rectifierRegistrationState,
rectifierFailedState,
loadBasedRunTime,
shutdownRectifier,
rectifierHasBeenShutdown,
rectifierPhase1,
rectifierPhase2,
rectifierPhase3,
rectifierNotes,
rectifierInputCurrent,
rectifierPhase,
phase1SerialNumber,
acInputCurrent,
dcInputCurrent,
rectifierShutdownMode,
restartAllRectifiers,
rectifierShutdownSmartAlarm,
rectCycleLowThreshold,
rectCycleHighThreshold,
rectCycleInterval,
redundancy,
resetRunTimes,
rampUpSlope,
ovsdSetPoint,
rectifierStartUpDelay,
enableRipPowerShare,
controlState,
floatVoltage,
alternativeFloatVoltage,
alternativeFloatSmartAlarm,
alternativeFloatStatus,
maximumSystemVoltage,
minimumSystemVoltage,
busVoltage,
targetVoltage,
enableActiveVoltageControl,
avcState,
avcOffset,
baseVoltage,
enableTemperatureCompensation,
temperatureCompensationAllowed,
temperatureCompensationState,
temperatureCompensationSlope,
temperatureCompensationReferenceTemperature,
temperatureCompensationUpperLimit,
temperatureCompensationLowerLimit,
temperatureCompensationOffsetVoltage,
resetAhDischarged,
ahDischargedFloatResetRate,
enableEqualize,
equalizeStartAllowed,
equalizeState,
equalizeVoltage,
equalizeOffsetVoltage,
periodicEqualizeFirstDateTime,
equalizeInterval,
nextEqualizeStartTime,
equalizeDuration,
equalizeRemainingTime,
startEqualize,
stopEqualize,
equalizeSmartAlarm,
enableFastCharge,
fastChargeState,
fastChargeStartAllowed,
fastChargeVoltage,
fastChargeOffsetVoltage,
fastChargeAhDischarged,
fastChargeMaximumDuration,
fastChargeAmpereHourThreshold,
fastChargeVoltageThreshold,
fastChargeRechargePercentage,
fastChargeAmpereHourStopThreshold,
fastChargeMaximumTimeRemaining,
stopFastCharge,
enableBatteryCurrentLimit,
bclState,
bclLimit,
bclOffsetVoltage,
bclEngineRunLimit,
enableBatteryTest,
preventBatteryTest,
batteryTestStartAllowed,
batteryTestLockoutRemaining,
batteryTestState,
batteryTestFirstDateTime,
batteryTestInterval,
nextBatteryTestStartTime,
batteryTestDuration,
batteryTestRemainingTime,
batteryTestTerminationVoltage,
batteryTestOffsetVoltage,
startBatteryTest,
stopBatteryTest,
allowBatteryTestDuringLockout,
bBatteryTestOffsetVoltage,
lvdInhibitPeriod,
allowFrontPanelLvdControl,
lvdName,
lvdState,
lvdInhibited,
enableLvdVoltageDisconnect,
lvdDisconnectVoltage,
lvdReconnectVoltage,
lvdRecognitionPeriod,
enableLvdAcTimer,
lvdAcTimerDisconnectDelay,
enableLvdSaDisconnect,
lvdSaDisconnectIndex,
enableLvdChainedToPrevious,
lvdRemoteManualControl,
lvdcLvdMapping,
lvdcState,
enableLvdc,
lvdcIobNumber,
lvdcIobLvdNumber,
lvdcType,
lvdRemoteManualReconnectTimeoutPeriod,
lvdRemoteManualReconnectTimer,
generatorCurrent,
generatorFailAlarmRecognitionPeriod,
generatorOnFastCharge,
generatorOnEqualize,
generatorOnAcPeakLoadReduction,
generatorOnMainsFailure,
acSupplyState,
generatorRunTimeRemaining,
generatorState,
generatorRefuelDate,
generatorRefuelVolume,
generatorBackupTime,
tankEmptyDateTime,
fuelLevel,
generatorControlRelay,
generatorStartupWiring,
manualGeneratorRunTime,
fuelTankVolume,
manualGeneratorStart,
manualGeneratorStop,
clearFuelConsumptionHistory,
peakLoadReductionState,
enablePeakLoadReduction,
peakLoadReductionRunningTime,
peakLoadReductionOffsetVoltage,
peakLoadReductionSmartAlarm,
peakLoadReductionMaxDuration,
peakLoadReductionLowVoltageLimit,
peakLoadReductionScheduledStartTime,
peakLoadReductionScheduledDuration,
energyMeterName,
energyMeterGroup,
energyMeter,
resetEnergyMeter,
energyResetDate,
currentMeter,
voltageMeter,
powerMeter,
powerMeterMin,
powerMeterMax,
resetPowerMeterRange,
powerMeterGain,
powerMeterOffset,
energyMeterMeter,
energyMeterAi,
energyMeterAiFunction,
energyMeterMeterNumber,
energyMeterSystemValue,
energyMeterSystemValueIndex,
resetAllEnergyMeters,
resetAllPowerMeterRanges,
setFanPowerRunningTime,
fanControllerProfile,
rxpFcFaults,
fanTemperature,
fanPower,
setFanPower,
fanPoles,
fanSpeedA,
fanSpeedB,
fanControllerMode,
setFanPowerPeriod,
applySetPower,
fc1pTemperature,
fc1pPower,
fc1sTemperature,
fc1sPower,
fc2pTemperature,
fc2pPower,
fc2sTemperature,
fc2sPower,
fanControllerSmartAlarm,
controllerTime,
aiHighState,
aiLowState,
aiValue,
aiStatus,
aiName,
aiFunction,
aiFunctionIndex,
aiUnits,
aiIobNumber,
inputNumber,
gain,
offset,
hysteresis,
highSeverity,
highThreshold,
highDoMappingA,
highDoMappingB,
highTrapSend,
lowSeverity,
lowThreshold,
lowDoMappingA,
lowDoMappingB,
lowTrapSend,
aiGroup,
aiHighNotes,
aiLowNotes,
name,
group,
value,
type,
units,
smartAnalogGate,
saiFunction,
saiFunctionIndex,
smartAnalogSystemInputMapping,
smartAnalogSystemInputValue,
smartAnalogSystemInput,
smartAnalogSystemInputIndex,
smartAnalogSystemInputInvert,
alternativeSourceCurrent,
mainsFail,
fanFail,
movFail,
loadFuseFail,
batteryFuseFail,
phaseFail,
diState,
diValue,
diStatus,
diName,
diIobNumber,
digitalInputNumber,
diSeverity,
diRecognitionPeriod,
diDeactivationRecognitionPeriod,
diDoMappingA,
diDoMappingB,
diTrapSend,
diActiveState,
diGroup,
diNotes,
doState,
remoteControlState,
doStatus,
doName,
doIobNumber,
doIobDoNumber,
doActiveState,
doGroup,
doControlTimeoutPeriod,
doControlTimer,
batteryCapacity,
cellsPerString,
batteryTemperature,
batteryCurrent,
batteryType,
btrTimeRemaining,
btrStateOfHealth,
batteryChargeState,
batteryStateThreshold,
endOfChargeAction,
batteryInstalledDate,
batteryDesignEndOfLifeDate,
bsmLockoutPeriod,
bsmConvergencePeriod,
stringFailRecognitionPeriod,
bsmStartThreshold,
bsmStableThreshold,
stringName,
stringState,
firstQuarterPointVoltage,
midPointVoltage,
thirdQuarterPointVoltage,
imbalancePercent,
bsmState,
timeInThisState,
currentBsmThreshold,
referenceVoltage,
clearStringFail,
btrState,
btrEndVoltage,
btrCharacterizationEndVoltage,
btrCharacterizationResult,
btrCharacterizationTime,
btrAutomaticCharacterization,
btrCharacterizationDelay,
btrCharacterizationStart,
btrCharacterizeBattery,
btrStopBatteryCharacterization,
btrCancelWaiting,
btrClearBatteryCharacterization,
batteryCharacterizationInstantaneousQuality,
batteryCharacterizationSample,
batteryCharacterizationTime,
siteBackupTimeRemaining,
siteBackupTime,
dcInputVoltage,
solarPowerShareOffset,
solarPower,
solarCurrent,
solarBaseVoltage,
solarShutdownSmartAlarm,
dcdcType,
dcdcVoltage,
dcdcCurrent,
dcdcPower,
dcdcHeatsinkTemperature,
numberOfRegisteredDcdcConverters,
dcdcOutputVoltageSetpoint,
dcdc12vOutputVoltageSetpoint,
dcdc24vOutputVoltageSetpoint,
dcdc48vOutputVoltageSetpoint,
dcdcCurrentLimit,
dcdc12vCurrentLimit,
dcdc24vCurrentLimit,
dcdc48vCurrentLimit,
dcdcInputVoltageItem,
dcdcInputVoltage,
logFillMonths,
logUsed,
logInterval,
useOffNormal,
logNumberOfEntries,
offNormalInterval,
offNormalOffsetVoltage,
offNormalSmartAlarm,
isOffNormal,
threadName,
threadLoading,
threadPriority,
threadStack,
threadHeap,
threadHighWaterMark,
preemptive,
ramFree,
ramHeap,
ramStack,
summaryAlarmCritical,
summaryAlarmMajor,
summaryAlarmMinor,
resetBatteryTestFailedAlarm,
resetCommsLostAlarm,
resetBatteryTestCancelledAlarm,
resetLowRectifierCapacityAlarm,
alarmInfo,
alarmName,
alarmSeverity,
alarmState,
alarmNotes,
alarmDoMappingA,
alarmDoMappingB,
alarmTrapSend,
alarmStateChangeTime,
enableAudibleAlarmIndication,
alarmRecognitionPeriod,
acFailRecognitionPeriod,
enableHighFloatTracking,
highFloatThreshold,
enableLowFloatTracking,
lowFloatThreshold,
highLoadThreshold,
lowLoadThreshold,
batteryTemperatureHighThreshold,
batteryTemperatureLowThreshold,
systemOverloadType,
systemOverloadTypeB,
systemOverloadRecognitionPeriod,
systemOverloadThreshold,
systemOverloadThresholdB,
inDischargeAlarmCondition,
batteryCurrentSensorFailRecognitionPeriod,
lowRectifierCapacityRedundancy,
lowRectifierCapacityAlarmThreshold,
lowRectifierCapacityRecognitionPeriod,
rectifierCapacityBalance,
smartAlarmTrapSend,
smartAlarmName,
smartAlarmSeverity,
smartAlarmGroup,
smartAlarmNotes,
smartAlarmOperator,
smartAlarmRecognitionPeriod,
smartAlarmDeactivationRecognitionPeriod,
smartAlarmDoMappingA,
smartAlarmDoMappingB,
smartAlarmState,
clearSmartAlarm,
smartAlarmSendEmail,
smartAlarmCountReset,
smartAlarmAlarmSourceTriggerState,
smartAlarmAlarmSourceStatus,
smartAlarmAlarmSourceMapping,
smartAlarmAlarmSourceTrigger,
smartAlarmAlarmSourceType,
smartAlarmAlarmSourceIndex,
smartAlarmAlarmSourceActiveCount,
smartAlarmAlarmSourceInactiveCount,
smartAlarmAlarmSourceCount,
smartAlarmScheduleSourceIsTriggered,
smartAlarmScheduleSourceStatus,
smartAlarmScheduleSourceMapping,
smartAlarmScheduleSourceFirstActivation,
smartAlarmScheduleSourceDuration,
smartAlarmScheduleSourceInterval,
smartAlarmScheduleSourceRepetitions,
smartAlarmScheduleSourceNext,
smartAlarmScheduleSourceEnd,
smartAlarmSystemValueSourceIsTriggered,
smartAlarmSystemValueSourceStatus,
smartAlarmSystemValueAlarmMapping,
smartAlarmSystemValueSourceValue,
smartAlarmSystemValueSourceValueIndex,
smartAlarmSystemValueSourceInput,
smartAlarmSystemValueSourceThresholdType,
smartAlarmSystemValueSourceThreshold,
smartAlarmSystemValueSourceHysteresis,
smartAlarmSystemValueSourceActiveCount,
smartAlarmSystemValueSourceInactiveCount,
smartAlarmSystemValueSourceCount,
smartAlarmIsManualSourceTriggered,
smartAlarmSourceManualStatus,
smartAlarmSourceManualTrigger,
smartAlarmSourceManualMapping,
smartAlarmSourceManualPeriod,
smartAlarmItemMapping,
smartAlarmItemValue,
smartAlarmItemName,
smartAlarmItemTriggerState,
smartAlarmItemThresholdType,
smartAlarmItemThreshold,
smartAlarmItemHysteresis,
trapAlarmOrigin,
trapAlarmName,
trapAlarmNumber,
trapAdditionalText,
trapAlarmKeepSeverity,
dialOutNumberIndex,
smsNotificationIndex,
snmpTrapReceiverIndex,
emailReceiverIndex,
webUserIndex,
rxpIndex,
iobIndex,
rectifierValuesIndex,
lvdIndex,
lvdcIndex,
energyMeterIndex,
energyMeterAiMappingIndex,
energyMeterValueMappingIndex,
fanControllerStateIndex,
fanController1PrimaryIndex,
fanController1SecondaryIndex,
fanController2PrimaryIndex,
fanController2SecondaryIndex,
analogInputIndex,
smartAnalogIndex,
smartAnalogMappingIndex,
digitalInputIndex,
digitalOutputIndex,
midpointMonitoringStringIndex,
threadLoadingIndex,
alarmIndex,
smartAlarmIndex,
sourceAlarmIndex,
sourceScheduleIndex,
systemValueSourceIndex,
sourceManualIndex,
smartAlarmNamedItemsIndex,
ipAddressType
  }
  STATUS current
  DESCRIPTION "System Object Group"
::= { systemIdentity 1 }

systemNotificationGroup NOTIFICATION-GROUP
  NOTIFICATIONS {
majorAlarmActive,
majorAiHighActive,
majorAiLowActive,
majorDiActive,
majorSmartActive,
minorAlarmActive,
minorAiHighActive,
minorAiLowActive,
minorDiActive,
minorSmartActive,
warningAlarmActive,
warningAiHighActive,
warningAiLowActive,
warningDiActive,
warningSmartActive,
alarmInactive,
aiHighInactive,
aiLowInactive,
diInactive,
smartInactive,
alarmStatusChange,
criticalAlarmActive,
criticalAiHighActive,
criticalAiLowActive,
criticalDiActive,
criticalSmartActive,
global,
heartbeat
 }
  STATUS current
  DESCRIPTION "System Notification Group"
::= { rpsTraps 1 }

rpsObjects OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsSc300 10 }

systemIdentity OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 10 }

systemManufacturer OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The manufacturer of the DC power system."
  DEFVAL { "System Manufacturer" }
::= { systemIdentity 10 }

systemSerialNumber OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..10))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The DC power system serial number assigned by the manufacturer."
  DEFVAL { "0000000000" }
::= { systemIdentity 20 }

systemType OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The DC power system model number assigned by the manufacturer."
  DEFVAL { "System Type" }
::= { systemIdentity 30 }

systemLocation OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Usually the location of the DC power system within the site."
  DEFVAL { "System Location" }
::= { systemIdentity 40 }

siteName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The site designation or code."
  DEFVAL { "Site Name" }
::= { systemIdentity 50 }

siteAddress OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The street address of the site."
  DEFVAL { "Site Address" }
::= { systemIdentity 60 }

siteNotes OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..253))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Notes made by the installation or maintenance personnel."
  DEFVAL { "" }
::= { systemIdentity 70 }

systemObjectId2 OBJECT-TYPE
  SYNTAX Sysoid
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The System Object ID: 1.3.6.1.4.1.1918.2.14 for SC300, 1.3.6.1.4.1.1918.2.13 for SC200. Reboot is required."
  DEFVAL { sc300 }
::= { systemIdentity 85 }

trapFormat OBJECT-TYPE
  SYNTAX SnmpTrapFormat
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Select Eaton for multiple trap numbers, or X.733 for a single trap number as per ITU X.733."
  DEFVAL { x733 }
::= { systemIdentity 90 }

genericTrapsEnable OBJECT-TYPE
  SYNTAX GenericTrapsEnable
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Enable generic traps"
  DEFVAL { none }
::= { systemIdentity 95 }

configurationName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Name of the configuration in the controller database"
  DEFVAL { "Factory" }
::= { systemIdentity 100 }

configurationVersion OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The version of this configuration. It is changed by the controller on configuration update (but not configuration load), and by ICE."
  DEFVAL { 0 }
::= { systemIdentity 101 }

configurationModified OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "This is true when the configuration file has been altered away from the master configuration."
::= { systemIdentity 102 }

siteBuilding OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The building where this site is located."
  DEFVAL { "Site Building" }
::= { systemIdentity 106 }

siteRoom OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The room where this site is located."
  DEFVAL { "Site Room" }
::= { systemIdentity 108 }

siteContact OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The contact for this site."
  DEFVAL { "Site Contact" }
::= { systemIdentity 110 }

siteSupportContact OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The support contact for this site."
  DEFVAL { "Support Contact" }
::= { systemIdentity 112 }

isThreePhaseSystem OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates if the system contains three phase rectifiers or single phase rectifiers."
::= { systemIdentity 120 }

controller OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 20 }

manufacturerName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The name of the manufacturer."
::= { controller 10 }

productType OBJECT-TYPE
  SYNTAX ProductType
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Mandatory command identifying the device."
::= { controller 20 }

softwareVersion OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Application software version. This is the software version of the main controller application."
::= { controller 30 }

bootVersion OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..10))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Bootloader software version. The bootloader is responsible for loading and running the system support software and the main application. The bootloader software can be upgrading using the normal web upgrade process. However, if power fails during a bootloader upgrade then the controller may need to be returned to base for repair. Without a bootloader, no software can run on the controller."
::= { controller 50 }

interfaceVersion OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "S3P interface version. As the embedded software is upgraded, the communications interface may change. This number reflects any such change. This value, along with Compatible Interface Version is used by DCTools to determine how to communicate. Third party applications should also check this version and optionally warn the user if it is dealing with an incompatible interface. While Eaton Corporation does attempt to maintain backwards compatibility with its interfaces, this cannot be guaranteed."
::= { controller 70 }

hardwareVersion OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..10))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The Product Hardware Version"
::= { controller 80 }

lcdVersion OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..10))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The Product Hardware LCD Version"
::= { controller 82 }

batteryMonitor OBJECT-TYPE
  SYNTAX Percentile8Nan
  UNITS "%"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The internal RTC battery health (100% = 3.81V). The battery health is measure once, each 48 hours. A low battery alarm triggers when <90% (<3.4V)."
::= { controller 83 }

serialNumber OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The Product Serial Number. This item is not reset by the Reset System Configuration command."
::= { controller 90 }

ethernetMacAddress OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..17))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The unique ethernet address of the controller."
::= { controller 100 }

subversionRevision OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The software build number."
::= { controller 110 }

evaluationSoftwareFound OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The Software currently installed is for evaluation purposes and is not for sale."
::= { controller 120 }

genericSystemType OBJECT-TYPE
  SYNTAX GenericSystemType
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Choices any System type other than unknown will change configuration to installation defaults for that system"
::= { controller 150 }

communications OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 30 }

s3pAccess OBJECT-TYPE
  SYNTAX S3pAccess
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Determines whether or not the S3P access is allowed."
  DEFVAL { usbOnly }
::= { communications 3 }

snmpAccess OBJECT-TYPE
  SYNTAX SnmpAccessState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Determines how SNMP access is allowed."
  DEFVAL { v3Only }
::= { communications 8 }

serialServerAccess OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Enables operation of pass-through from TCP to the serial port."
  DEFVAL { disabled }
::= { communications 9 }

serialServerPort OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The port Number that the serial port traffic will be routed"
  DEFVAL { 15000 }
::= { communications 10 }

s3pAddress OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If the controller is connected to a serial S3P bus that supports multiple devices, this address is used to distinguish the devices. Otherwise it should remain at 1."
  DEFVAL { 1 }
::= { communications 15 }

ipAddress OBJECT-TYPE
  SYNTAX InetAddress (SIZE (1..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The manually set IP address. If set to 0.0.0.0, the controller will use DHCP or AutoIP. In which case this is the IP address that will be dynamically assigned to the controller by those protocols."
  DEFVAL { "0.0.0.0" }
::= { communications 20 }

subnetMask OBJECT-TYPE
  SYNTAX InetAddress (SIZE (1..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The manually set netmask. If set to 0.0.0.0, the controller will use DHCP or AutoIP. In which case this is the IP address that will be dynamically assigned to the controller by those protocols."
  DEFVAL { "0.0.0.0" }
::= { communications 30 }

gatewayAddress OBJECT-TYPE
  SYNTAX InetAddress (SIZE (1..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The manually set gateway address. If set to 0.0.0.0, the controller will use DHCP or AutoIP. In which case this is the IP address that will be dynamically assigned to the controller by those protocols."
  DEFVAL { "0.0.0.0" }
::= { communications 50 }

vlanId OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Identifies the virtual LAN circuit to connect to. Consult your network administrator. If in doubt, leave at zero."
  DEFVAL { 0 }
::= { communications 51 }

ipAddressAuto OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The IP address currently in use. This maybe set by auto-ip, dhcp or manually."
::= { communications 100 }

subnetMaskAuto OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Identifies which fragment of the IP address is the sub-network identity. This value and the IP Address must be set correctly to communicate using Ethernet. Consult your network administrator. This maybe set by auto-ip, dhcp or manually."
::= { communications 110 }

gatewayAddressAuto OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Allows access to IP addresses outside your sub-network. Consult your network administrator. This maybe set by auto-ip, dhcp or manually."
::= { communications 120 }

autoIp OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If Enabled, Auto IP is available. DHCP is enabled when the ip address is configured to 0.0.0.0 and co-operates with auto ip."
  DEFVAL { enabled }
::= { communications 130 }

webSessionTimeout OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If there is no user action for a time the web user will be log off."
  DEFVAL { 10 }
::= { communications 140 }

webAccess OBJECT-TYPE
  SYNTAX WebAccess
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "HTTP Web interface access."
  DEFVAL { httpsDefaultUser }
::= { communications 150 }

blacklist OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Port scanner can cause problems, so we can blacklist the scanners source ip address."
  DEFVAL { enabled }
::= { communications 160 }

blacklisted OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..150))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Port scanner can cause problems, so we can blacklist the scanners source ip address."
::= { communications 170 }

serial OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  communications 53 }

portSettings OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  serial 5 }

baudRate OBJECT-TYPE
  SYNTAX BaudRate
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Transmission speed of the serial port."
  DEFVAL { 19200 }
::= { portSettings 10 }

parity OBJECT-TYPE
  SYNTAX Parity
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The parity error detect mode."
  DEFVAL { none }
::= { portSettings 20 }

stopBits OBJECT-TYPE
  SYNTAX StopBits
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The number of stop bits."
  DEFVAL { one }
::= { portSettings 30 }

enableModem OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Determines whether or not the RS232 port is configured to work with a modem."
  DEFVAL { disabled }
::= { serial 10 }

alarmReport OBJECT-TYPE
  SYNTAX AlarmReport
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This indicates that the dial-out process will start when an alarm occurs."
  DEFVAL { none }
::= { serial 20 }

modemSetUpString OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..30))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The string sent to the modem on reset. The modem AT command should not be included as it is automatically sent. The Auto-Answer Rings parameter is also sent, so it does not need to be included here. For complete details of appropriate commands, consult your modem documentation."
  DEFVAL { "" }
::= { serial 30 }

modemAutoAnswerRings OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Number of rings before an incoming call is answered. Setting this parameter to zero disables incoming calls (the modem can still be used for alarm reporting)."
  DEFVAL { 2 }
::= { serial 40 }

modemMaximumRetries OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If an alarm report dial-out does not connect with a remote modem, then this number of subsequent alarm report attempts will be made on the current dial-out number before trying the next dial-out number from the Dial Out Number Table. Dialing will stop if none of the numbers in the Dial Out Number Table connect."
  DEFVAL { 0 }
::= { serial 50 }

modemRetryInterval OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If an alarm report dial-out does not connect with a remote modem, then another attempt will be made after this time interval."
  DEFVAL { 0 }
::= { serial 60 }

modemPowerReset OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If this is enabled, then an attempt will be made to reset a non-operating modem by turning its power supply off and on using digital output 2."
  DEFVAL { disabled }
::= { serial 70 }

dialOutNumberTable OBJECT-TYPE
  SYNTAX SEQUENCE OF DialOutNumberEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for dialOutNumber"
 ::= { serial 80 }

dialOutNumberEntry OBJECT-TYPE
  SYNTAX DialOutNumberEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for dialOutNumber"
  INDEX  { dialOutNumberIndex }
 ::= { dialOutNumberTable 1 }

DialOutNumberEntry ::= SEQUENCE {
  dialOutNumberIndex Unsigned8,
  dialOutNumber DisplayString
}

dialOutNumberIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { dialOutNumberEntry 1 }


dialOutNumber OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..30))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The telephone numbers to be called (via a modem) if alarm reporting is enabled. Consult the modem documentation for appropriate dial modifiers to use with the ATD command. Leave blank to prevent dial-out."
  DEFVAL { "" }
::= { dialOutNumberEntry 10 }

smsNotificationTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SmsNotificationEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for smsNotification"
 ::= { serial 90 }

smsNotificationEntry OBJECT-TYPE
  SYNTAX SmsNotificationEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for smsNotification"
  INDEX  { smsNotificationIndex }
 ::= { smsNotificationTable 1 }

SmsNotificationEntry ::= SEQUENCE {
  smsNotificationIndex Unsigned8,
  smsPhoneName DisplayString,
  smsLevel SeverityLevel,
  smsPhoneNumber DisplayString,
  smsPrefix DisplayString,
  smsEmailGateway DisplayString
}

smsNotificationIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { smsNotificationEntry 1 }


smsPhoneName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A name to identify this phone."
  DEFVAL { "" }
::= { smsNotificationEntry 10 }

smsLevel OBJECT-TYPE
  SYNTAX SeverityLevel
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Sets the severity of alarms to be reported to this SMS receiver."
  DEFVAL { none }
::= { smsNotificationEntry 20 }

smsPhoneNumber OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..30))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The phone number for SMS notifications."
  DEFVAL { "0" }
::= { smsNotificationEntry 30 }

smsPrefix OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..60))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This string is prepended to every SMS sent to this number, excluding responses to SMS commands."
  DEFVAL { "" }
::= { smsNotificationEntry 40 }

smsEmailGateway OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If a gateway address (e.g. phoneNumber@mms.gateway.com) is present send email to the gateway instead of using the modem."
  DEFVAL { "" }
::= { smsNotificationEntry 50 }

modbus OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  communications 57 }

modbusAccess OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Determines whether or not Modbus/TCP and Modbus/RTU access is allowed."
  DEFVAL { disabled }
::= { modbus 10 }

modbusAddress OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The devices address for the Modbus/RTU protocol."
  DEFVAL { 1 }
::= { modbus 20 }

modbusInterfaceVersion OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "As the embedded software is upgraded, the Modbus register mappings may change. This number reflects any such change."
::= { modbus 30 }

snmpSettings OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  communications 60 }

snmpReadCommunity OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..32))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Community that can get items."
  DEFVAL { "EatonPublic" }
::= { snmpSettings 10 }

snmpWriteCommunity OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..32))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Community that can set items."
  DEFVAL { "EatonPrivate" }
::= { snmpSettings 20 }

enableTrapRepeat OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If enabled, alarm activation traps will be repeated according to Trap Repeat Rate."
  DEFVAL { enabled }
::= { snmpSettings 30 }

trapRepeatRate OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "How often to send a trap to trap receivers if Enable Trap Repeat is Enabled or the trap receiver's Trap Receiver Mode is Acknowledged Summary Trap."
  DEFVAL { 1 }
::= { snmpSettings 40 }

trapVersion OBJECT-TYPE
  SYNTAX SnmpTrapVersion
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Indicates which version of the SNMP protocol will be used to send traps."
  DEFVAL { snmpV3Trap }
::= { snmpSettings 45 }

snmpTrapReceiverTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SnmpTrapReceiverEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for snmpTrapReceiver"
 ::= { snmpSettings 50 }

snmpTrapReceiverEntry OBJECT-TYPE
  SYNTAX SnmpTrapReceiverEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for snmpTrapReceiver"
  INDEX  { snmpTrapReceiverIndex }
 ::= { snmpTrapReceiverTable 1 }

SnmpTrapReceiverEntry ::= SEQUENCE {
  snmpTrapReceiverIndex Unsigned8,
  trapReceiverIpAddress InetAddress,
  trapReceiverPort Unsigned16,
  trapReceiverName DisplayString,
  trapReceiverLevel SeverityLevel,
  trapReceiverCommunity DisplayString,
  trapReceiverMode TrapReceiverMode,
  acknowledgeAlarmSummaryTrap NoData
}

snmpTrapReceiverIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { snmpTrapReceiverEntry 1 }


trapReceiverIpAddress OBJECT-TYPE
  SYNTAX InetAddress (SIZE (1..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "SNMP notifications of events are sent to this IP address."
  DEFVAL { "" }
::= { snmpTrapReceiverEntry 20 }

trapReceiverPort OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "SNMP notifications of events are sent to this UDP port."
  DEFVAL { 162 }
::= { snmpTrapReceiverEntry 30 }

trapReceiverName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Name used to identify the receiver."
  DEFVAL { "" }
::= { snmpTrapReceiverEntry 40 }

trapReceiverLevel OBJECT-TYPE
  SYNTAX SeverityLevel
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Sets the severity of alarms to be reported to this trap receiver."
  DEFVAL { none }
::= { snmpTrapReceiverEntry 50 }

trapReceiverCommunity OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..32))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Community to use for traps sent to the receiver."
  DEFVAL { "EatonPublic" }
::= { snmpTrapReceiverEntry 60 }

trapReceiverMode OBJECT-TYPE
  SYNTAX TrapReceiverMode
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Set to Normal traps to send normal traps to a Network Management System on alarm activation and deactivation. Set to Acknowledged Summary Traps to send summary traps to PowerManagerII. These traps are repeated until PowerManagerII receives the trap, connects to the controller, and downloads alarms and data."
  DEFVAL { normalTraps }
::= { snmpTrapReceiverEntry 70 }

acknowledgeAlarmSummaryTrap OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command will acknowledge reception of the alarm summary trap."
::= { snmpTrapReceiverEntry 80 }

snmpV3PrivacyPassword OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "SNMP V3 password for the privacy protocol (AES)."
::= { snmpSettings 70 }

enableHeartbeatTrap OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If enabled, heartbeat trap will be sent according to Heart Beat Trap Period."
  DEFVAL { disabled }
::= { snmpSettings 80 }

heartbeatTrapPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "How often to send a heartbeat trap to trap receivers if Enable Heart Beat Trap is Enabled."
  DEFVAL { 60 }
::= { snmpSettings 90 }

email OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  communications 65 }

emailNotifications OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Determines whether or not the controller will send alarm and event notifications via email."
  DEFVAL { disabled }
::= { email 10 }

smtpServerIpAddress OBJECT-TYPE
  SYNTAX InetAddress (SIZE (1..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Email notifications of events will be sent using this SMTP server."
  DEFVAL { "1.1.1.1" }
::= { email 20 }

smtpServerPort OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Email notifications of events will be sent using this SMTP server."
  DEFVAL { 25 }
::= { email 30 }

emailReturnAddress OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..100))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The email return address. If it contains a valid address, it will be used as the email Return-Path."
  DEFVAL { "" }
::= { email 40 }

emailFromAddress OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..100))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The email From address. If it empty the default text is used."
  DEFVAL { "" }
::= { email 42 }

emailValidAddress OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..100))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "In order to send email a valid email maybe required for the mail server's records."
  DEFVAL { "" }
::= { email 43 }

emailSubjectPrefix OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The generated email subject will be prefixed with this string to allow automatic processing of the email."
  DEFVAL { "[DC-POWER] " }
::= { email 50 }

emailReceiverTable OBJECT-TYPE
  SYNTAX SEQUENCE OF EmailReceiverEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for emailReceiver"
 ::= { email 60 }

emailReceiverEntry OBJECT-TYPE
  SYNTAX EmailReceiverEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for emailReceiver"
  INDEX  { emailReceiverIndex }
 ::= { emailReceiverTable 1 }

EmailReceiverEntry ::= SEQUENCE {
  emailReceiverIndex Unsigned8,
  emailReceiverAddress DisplayString,
  emailReceiverLevel SeverityLevel,
  emailReceiverDelay TimeIntervalInSeconds,
  sendTestEmail NoData,
  smtpResult Unsigned16
}

emailReceiverIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { emailReceiverEntry 1 }


emailReceiverAddress OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..100))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The receiver's email address."
  DEFVAL { "" }
::= { emailReceiverEntry 10 }

emailReceiverLevel OBJECT-TYPE
  SYNTAX SeverityLevel
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Sets the severity of alarms to be reported to this email receiver."
  DEFVAL { none }
::= { emailReceiverEntry 20 }

emailReceiverDelay OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The email will be sent after the delay period, even if the original trigger alarm has become de-activated."
  DEFVAL { 30 }
::= { emailReceiverEntry 30 }

sendTestEmail OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This will send an email notification to the receiver."
::= { emailReceiverEntry 40 }

smtpResult OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Result of the last SMTP operation affecting this receiver. The first digit is the state reached (1 GREET, 2 EHLO, 3 MAIL, 4 RCPT, 5 DATA, 6 BODY). The next 3 digits come from the SMTP service. 2xx = Ok, 4xx = Temporary Failure, 5xx = Permanent Failure. Common response codes are: 250 (OK), 220, 221, 354, 421 and 450 (Service unavailable/no permission, detected spam or destination unreachable), 451, 452, 455 (Server memory issue), 500-503 (Controller conversation not correct), 521 (Service broken), 541, 550-554 (Spam detected). Other possible numbers are 9888 Unexpected State and 9999 Connection issue."
::= { emailReceiverEntry 50 }

sntp OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  communications 70 }

sntpPollInterval OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Polling interval in seconds. The controller will try to contact the primary and secondary (S)NTP server regularly according to the configured value."
  DEFVAL { 3600 }
::= { sntp 10 }

udpPort OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "UDP port of SNTP server."
  DEFVAL { 123 }
::= { sntp 20 }

primaryAddress OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "IP address of primary SNTP server."
  DEFVAL { "" }
::= { sntp 30 }

backupAddress OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "IP address of backup SNTP server."
  DEFVAL { "time.nist.gov" }
::= { sntp 40 }

sntpLastUpdate OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The time when the last SNTP update occurred."
::= { sntp 50 }

webUserTable OBJECT-TYPE
  SYNTAX SEQUENCE OF WebUserEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for webUser"
 ::= { communications 80 }

webUserEntry OBJECT-TYPE
  SYNTAX WebUserEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for webUser"
  INDEX  { webUserIndex }
 ::= { webUserTable 1 }

WebUserEntry ::= SEQUENCE {
  webUserIndex Unsigned8,
  userName DisplayString,
  userLogonId DisplayString,
  userLogonPassword DisplayString,
  userActive Boolean,
  userWrite Boolean,
  userRestore Boolean,
  userBackup Boolean,
  userExecute Boolean,
  userUpgradeFirmware Boolean,
  userAdministrator Boolean,
  userSnmp UserSnmp
}

webUserIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { webUserEntry 1 }


userName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The full name of the user. This is for reference only and is not used in the login process."
  DEFVAL { "" }
::= { webUserEntry 10 }

userLogonId OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..32))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The logon name of a user."
  DEFVAL { "" }
::= { webUserEntry 21 }

userLogonPassword OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The password for this user."
::= { webUserEntry 31 }

userActive OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Indicates whether this user is enabled or disabled."
  DEFVAL { false }
::= { webUserEntry 40 }

userWrite OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If checked the user is allowed to modify configurable values."
  DEFVAL { false }
::= { webUserEntry 60 }

userRestore OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If checked the user is allowed to upload configurations or snapshots."
  DEFVAL { false }
::= { webUserEntry 70 }

userBackup OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If checked the user is allowed to download configurations or snapshots."
  DEFVAL { false }
::= { webUserEntry 80 }

userExecute OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If checked the user is allowed to execute commands."
  DEFVAL { false }
::= { webUserEntry 90 }

userUpgradeFirmware OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If checked the user is allowed to upgrade firmware (including de-installing optional modules)."
  DEFVAL { false }
::= { webUserEntry 100 }

userAdministrator OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If checked the user is administrator and change security settings."
  DEFVAL { false }
::= { webUserEntry 110 }

userSnmp OBJECT-TYPE
  SYNTAX UserSnmp
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This user is allowed to modify or only read values. The Password is also used for SNMP authentication."
  DEFVAL { noSnmp }
::= { webUserEntry 120 }

radius OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  communications 90 }

authServer OBJECT-TYPE
  SYNTAX InetAddress (SIZE (1..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Login to the controller is via a RADIUS Server."
  DEFVAL { "" }
::= { radius 10 }

radiusAuthSvrSecret OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The Radius authentication server's shared secret."
  DEFVAL { "" }
::= { radius 20 }

acctServer OBJECT-TYPE
  SYNTAX InetAddress (SIZE (1..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Radius accounting server's IP address."
  DEFVAL { "" }
::= { radius 30 }

radiusAcctSvrSecret OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..64))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The Radius accounting server's shared secret."
  DEFVAL { "" }
::= { radius 40 }

accessControl OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 33 }

uiAccess OBJECT-TYPE
  SYNTAX AccessProtection
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Controls keypad access to change configuration items, and start or stop processes. This provides protection against unauthorized or accidental modifications of configuration settings."
  DEFVAL { unprotected }
::= { accessControl 10 }

s3pWriteAccessPassword OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..32))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If set, S3P requires a password to be used before write access is granted. This password may be used to control remote configuration change or control actions. Note that the password is sent unencrypted. Clear the serial access password by deleting the password and apply the change."
  DEFVAL { "" }
::= { accessControl 20 }

remoteAccessLevel OBJECT-TYPE
  SYNTAX AccessLevel
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Shows the level of access granted to remote applications. Remote write access to the configuration and control processes is controlled through the S3P Write Access Password. If set, then it must be used to login using the Remote Access Login before database items may be written."
::= { accessControl 30 }

uploadingFirmware OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "New firmware is being upload via the web."
::= { accessControl 40 }

acInput OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 40 }

acVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The average of the AC voltage measured by all rectifiers."
::= { acInput 10 }

phase1 OBJECT-TYPE
  SYNTAX Float
  UNITS "V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The average of the AC voltage on Phase-1 measured by all rectifiers."
::= { acInput 20 }

phase2 OBJECT-TYPE
  SYNTAX Float
  UNITS "V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The average of the AC voltage on Phase-2 measured by all rectifiers."
::= { acInput 30 }

phase3 OBJECT-TYPE
  SYNTAX Float
  UNITS "V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The average of the AC voltage on Phase-3 measured by all rectifiers."
::= { acInput 40 }

dcOutput OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 50 }

loadCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The total current drawn by all loads. This value may be measured by the load current shunt(s) if present or calculated from the other system currents."
::= { dcOutput 10 }

systemPower OBJECT-TYPE
  SYNTAX Percentile8Nan
  UNITS "%"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The output power of the system as a percentage of the total nominal power of the registered running rectifiers."
::= { dcOutput 20 }

loadPower OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 kW"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The power being supplied to the load."
::= { dcOutput 30 }

rxp OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 55 }

rxpTable OBJECT-TYPE
  SYNTAX SEQUENCE OF RxpEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for rxp"
 ::= { rxp 10 }

rxpEntry OBJECT-TYPE
  SYNTAX RxpEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for rxp"
  INDEX  { rxpIndex }
 ::= { rxpTable 1 }

RxpEntry ::= SEQUENCE {
  rxpIndex Unsigned8,
  rxpSlaveRegistrationState RcpSlaveState,
  rxpSlaveName DisplayString,
  rxpSlaveSerialNumber Integer32,
  rxpSlaveType RxpSlaveType,
  rxpSlaveCommandSet Integer32,
  rxpBomRevision DisplayString,
  rxpSoftwareVersion DisplayString,
  identifyRxpSlave Boolean
}

rxpIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { rxpEntry 1 }


rxpSlaveRegistrationState OBJECT-TYPE
  SYNTAX RcpSlaveState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Registration state of this device."
::= { rxpEntry 10 }

rxpSlaveName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..16))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Name of the RXP device."
::= { rxpEntry 20 }

rxpSlaveSerialNumber OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The serial number of this device."
::= { rxpEntry 30 }

rxpSlaveType OBJECT-TYPE
  SYNTAX RxpSlaveType
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "What type of component (IOB, rectifier etc) this device is."
::= { rxpEntry 40 }

rxpSlaveCommandSet OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The id of the command set the controller is using to communicate with this device."
::= { rxpEntry 50 }

rxpBomRevision OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..16))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Hardware Version of the RXP device."
::= { rxpEntry 60 }

rxpSoftwareVersion OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..16))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Software Version of the RXP device."
::= { rxpEntry 70 }

identifyRxpSlave OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If supported by the RXP device, this causes it to identify itself by flashing some of its LEDs or similar."
::= { rxpEntry 80 }

iobTable OBJECT-TYPE
  SYNTAX SEQUENCE OF IobEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for iob"
 ::= { rxp 20 }

iobEntry OBJECT-TYPE
  SYNTAX IobEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for iob"
  INDEX  { iobIndex }
 ::= { iobTable 1 }

IobEntry ::= SEQUENCE {
  iobIndex Unsigned8,
  iobRegistrationState RcpSlaveState,
  iobSerialNumber Integer32,
  iobMapping Unsigned8,
  iobNumberOfVoltages Unsigned8,
  iobNumberOfCurrents Unsigned8,
  iobNumberOfTemperatures Unsigned8,
  iobNumberOfDigitalInputs Unsigned8,
  iobNumberOfRelays Unsigned8,
  iobNumberOfLvds Unsigned8
}

iobIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { iobEntry 1 }


iobRegistrationState OBJECT-TYPE
  SYNTAX RcpSlaveState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Registration state of this IOB."
::= { iobEntry 10 }

iobSerialNumber OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Serial number."
  DEFVAL { 0 }
::= { iobEntry 20 }

iobMapping OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Index used in analogue and digitals tables"
  DEFVAL { 0 }
::= { iobEntry 30 }

iobNumberOfVoltages OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Number of voltage inputs on this IOB. The controller numbers the analog inputs on an IOB in the order: voltages, currents, temperatures."
::= { iobEntry 40 }

iobNumberOfCurrents OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Number of current inputs on this IOB. The controller numbers the analog inputs on an IOB in the order: voltages, currents, temperatures."
::= { iobEntry 50 }

iobNumberOfTemperatures OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Number of temperature inputs on this IOB. The controller numbers the analog inputs on an IOB in the order: voltages, currents, temperatures."
::= { iobEntry 60 }

iobNumberOfDigitalInputs OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Number of digital inputs on this IOB."
::= { iobEntry 70 }

iobNumberOfRelays OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Number of digital outputs on this IOB."
::= { iobEntry 80 }

iobNumberOfLvds OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Number of LVD connectors on this IOB."
::= { iobEntry 90 }

rectifiers OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 60 }

numberOfRegisteredRectifiers OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The number of registered rectifiers."
::= { rectifiers 10 }

numberOfRegisteredSolarChargers OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The number of registered solar chargers."
::= { rectifiers 11 }

numberOfRectifiersFailed OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Number of rectifiers that must be replaced or require maintenance."
::= { rectifiers 13 }

numberOfSolarFailed OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Number of solar chargers that must be replaced or require maintenance."
::= { rectifiers 14 }

numberOfRectifiersCommsLost OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Number of rectifiers that the controller can no longer communicate with. They could have been removed from the system or they could have failed."
::= { rectifiers 17 }

numberOfSolarCommsLost OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Number of solar chargers that the controller can no longer communicate with. They could have been removed from the system or they could have failed."
::= { rectifiers 18 }

rectifierCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The total current output by all rectifiers. This value may be measured by the rectifier current shunt(s) if present, calculated from the other system currents or determined from the rectifier reported currents."
::= { rectifiers 20 }

rectifierCurrentLimit OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "A"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The output current limit of the rectifier. If set to zero then the output current is maximum."
  DEFVAL { 0 }
::= { rectifiers 23 }

solarCurrentLimit OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "A"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The output current limit of the solar converter. If set to zero then the output current is maximum."
  DEFVAL { 0 }
::= { rectifiers 24 }

enableCurrentShare OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "When enabled, the rectifier output voltages are adjusted to even (approximately) their output currents. Disable this function if different rectifiers are supplying independent loads. This function should normally be enabled."
  DEFVAL { enabled }
::= { rectifiers 26 }

highestRectifierHeatsinkTemperature OBJECT-TYPE
  SYNTAX Float
  UNITS "°C"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The highest heatsink temperature of all registered rectifiers."
::= { rectifiers 29 }

rectifierValuesTable OBJECT-TYPE
  SYNTAX SEQUENCE OF RectifierValuesEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for rectifierValues"
 ::= { rectifiers 30 }

rectifierValuesEntry OBJECT-TYPE
  SYNTAX RectifierValuesEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for rectifierValues"
  INDEX  { rectifierValuesIndex }
 ::= { rectifierValuesTable 1 }

RectifierValuesEntry ::= SEQUENCE {
  rectifierValuesIndex Unsigned8,
  rectifierSerialNumber Integer32,
  rectifierType DisplayString,
  rectifierInputType InputType,
  rectifierStatus Unsigned8,
  rectifierMaximumCurrentLimit Unsigned8,
  rectifierMaximumPowerLimit DcPower,
  rectifierMinimumOvsdSetPoint Float,
  rectifierMaximumOvsdSetPoint Float,
  rectifierInputVoltage Float,
  rectifierReportedVoltage Float,
  rectifierReportedCurrent Float,
  rectifierOutputPowerw DcPower,
  rectifierOutputPower Float,
  rectifierHeatsinkTemperature Float,
  rectifierRegistrationState RcpSlaveState,
  rectifierFailedState RectFailState,
  loadBasedRunTime TimeIntervalInSeconds,
  shutdownRectifier Boolean,
  rectifierHasBeenShutdown Boolean,
  rectifierPhase1 Float,
  rectifierPhase2 Float,
  rectifierPhase3 Float,
  rectifierNotes DisplayString,
  rectifierInputCurrent Float,
  rectifierPhase AcPhase
}

rectifierValuesIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { rectifierValuesEntry 1 }


rectifierSerialNumber OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Rectifier serial number."
::= { rectifierValuesEntry 30 }

rectifierType OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..16))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Rectifier Type."
::= { rectifierValuesEntry 40 }

rectifierInputType OBJECT-TYPE
  SYNTAX InputType
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Rectifier Input Type, regular rectifier is AC, Solar Charger is MPPT."
::= { rectifierValuesEntry 50 }

rectifierStatus OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The status reported by this rectifier. This value cannot be interpreted without knowing the meaning of the various status bits. This is documented in the RXP command set for rectifiers."
::= { rectifierValuesEntry 60 }

rectifierMaximumCurrentLimit OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The current limit value of the rectifier. Adjust Rectifier Current Limit to set a lower operating current limit."
::= { rectifierValuesEntry 70 }

rectifierMaximumPowerLimit OBJECT-TYPE
  SYNTAX DcPower
  UNITS "W"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The maximum output power limit value of the rectifier. Adjust Rectifier Current Limit to set a lower operating power limit."
::= { rectifierValuesEntry 80 }

rectifierMinimumOvsdSetPoint OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The minimum OVSD set point that the rectifier accepts."
::= { rectifierValuesEntry 83 }

rectifierMaximumOvsdSetPoint OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The maximum OVSD set point that the rectifier accepts."
::= { rectifierValuesEntry 86 }

rectifierInputVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The input voltage measured by the rectifier (AC) or Solar (DC)."
::= { rectifierValuesEntry 90 }

rectifierReportedVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The output voltage measured by this rectifier. This is measured by the rectifier and reported via the RXP bus."
::= { rectifierValuesEntry 95 }

rectifierReportedCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The current produced by this rectifier. This is measured by the rectifier and reported via the rectifier comms bus."
::= { rectifierValuesEntry 100 }

rectifierOutputPowerw OBJECT-TYPE
  SYNTAX DcPower
  UNITS "W"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The current rectifier output power as Watts."
::= { rectifierValuesEntry 103 }

rectifierOutputPower OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 %"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The current rectifier output power as a percentage of the power limit under the current operating conditions."
::= { rectifierValuesEntry 105 }

rectifierHeatsinkTemperature OBJECT-TYPE
  SYNTAX Float
  UNITS "°C"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The measured rectifier heatsink temperature."
::= { rectifierValuesEntry 110 }

rectifierRegistrationState OBJECT-TYPE
  SYNTAX RcpSlaveState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Registration state of this rectifier."
::= { rectifierValuesEntry 120 }

rectifierFailedState OBJECT-TYPE
  SYNTAX RectFailState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "A rectifier's failed state."
::= { rectifierValuesEntry 130 }

loadBasedRunTime OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The time the rectifier has been operating since it was registered."
::= { rectifierValuesEntry 140 }

shutdownRectifier OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Shuts down the rectifier or restarts it. Use Rectifier Has Been Shutdown to see whether the command has been sent to the rectifier since it can take some seconds."
::= { rectifierValuesEntry 150 }

rectifierHasBeenShutdown OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates if the rectifier shutdown command has been sent. Once a Shutdown Rectifier command has been issued some time may elapse before the command is sent to the rectifier. Rectifiers that shut themselves down due to some failure condition are excluded."
::= { rectifierValuesEntry 160 }

rectifierPhase1 OBJECT-TYPE
  SYNTAX Float
  UNITS "V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Rectifier's AC voltage measured at the input connection for phase 1."
::= { rectifierValuesEntry 170 }

rectifierPhase2 OBJECT-TYPE
  SYNTAX Float
  UNITS "V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Rectifier's AC voltage measured at the input connection for phase 2."
::= { rectifierValuesEntry 180 }

rectifierPhase3 OBJECT-TYPE
  SYNTAX Float
  UNITS "V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Rectifier's AC voltage measured at the input connection for phase 3."
::= { rectifierValuesEntry 190 }

rectifierNotes OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..60))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This text will not be valid if the rectifier is unplugged and is not permanently stored by the controller."
::= { rectifierValuesEntry 200 }

rectifierInputCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The input current measured by the rectifier (AC) or Solar (DC)."
::= { rectifierValuesEntry 210 }

rectifierPhase OBJECT-TYPE
  SYNTAX AcPhase
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "This rectifiers AC phase. The controller is unable to determine which supply is used on a dual feed supply"
::= { rectifierValuesEntry 220 }

phase1SerialNumber OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Phase A Rectifier serial number. All phase become relative to this rectifier's phase."
  DEFVAL { 0 }
::= { rectifiers 42 }

acInputCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The sum of all currents measured by all rectifiers (AC)."
::= { rectifiers 43 }

dcInputCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The sum of all currents measured by all Solar Chargers (DC)."
::= { rectifiers 44 }

rectifierShutdownMode OBJECT-TYPE
  SYNTAX RectifierShutdownMode
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Specifies whether rectifiers may be shutdown and, if so, whether this is through manual intervention or shutdown automatically to enhance system efficiency by ensuring running rectifiers are operating at their most efficient load points."
  DEFVAL { disabled }
::= { rectifiers 55 }

restartAllRectifiers OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Restarts all rectifiers that were shut down by the user or LBRS."
::= { rectifiers 60 }

rectifierShutdownSmartAlarm OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The smart alarm that will attempt to shutdown all rectifiers. Shutdown must be set to Manual. The recognition period does not apply. Setting Redundancy to N+1/N+2 will shutdown all but one/two most efficient rectifier/s."
  DEFVAL { 0 }
::= { rectifiers 65 }

loadBasedRectifierShutdownConfig OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rectifiers 70 }

rectCycleLowThreshold OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Rectifiers will only be shut down by the LBRS process if the load power is below this percentage of total system power."
  DEFVAL { 40 }
::= { loadBasedRectifierShutdownConfig 20 }

rectCycleHighThreshold OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Additional rectifiers will be started by the LBRS process if the load power is above this percentage of total system power."
  DEFVAL { 60 }
::= { loadBasedRectifierShutdownConfig 30 }

rectCycleInterval OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The time interval in minutes that rectifiers are cycled when the LBRS process is active."
  DEFVAL { 10080 }
::= { loadBasedRectifierShutdownConfig 40 }

redundancy OBJECT-TYPE
  SYNTAX Redundancy
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "For N+1 there is always one spare rectifier above what is needed. N+2 maintains 2 spare. For N there are always at least enough rectifiers to supply the load. If an alternative energy source is supplying the load, all rectifiers can be shut down. Rectifiers will restart when the battery begins to discharge."
  DEFVAL { nPlus1 }
::= { loadBasedRectifierShutdownConfig 50 }

resetRunTimes OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command attempts to reset the Run Time on each individual rectifier."
::= { loadBasedRectifierShutdownConfig 100 }

rampUpSlope OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%/s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The ramp-up slope of the rectifier, as a percentage of the rectifier rated current."
  DEFVAL { 20 }
::= { rectifiers 80 }

ovsdSetPoint OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Rectifier Over-Voltage Shutdown set point."
  DEFVAL { 5920 }
::= { rectifiers 90 }

rectifierStartUpDelay OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The delay from AC turn-on before the rectifier output turns on. This is in addition to the fixed rectifier hardware charge time."
  DEFVAL { 2 }
::= { rectifiers 110 }

enableRipPowerShare OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Power ensures that A and B systems are load balanced."
  DEFVAL { disabled }
::= { rectifiers 120 }

controlFunctions OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 70 }

controlState OBJECT-TYPE
  SYNTAX ControlState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the state of control process, e.g. Equalize, Fast Charge or Normal."
::= { controlFunctions 5 }

voltageControl OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 10 }

floatVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The voltage required to maintain optimum battery charge (at the nominal ambient temperature). Use the value recommended by the battery manufacturer. The bus voltage may be adjusted above or below this value by Temperature Compensation, Fast Charge, Battery Test, Equalize or Battery Current Limit."
  DEFVAL { 5450 }
::= { voltageControl 10 }

alternativeFloatVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "When Alternative-Charge is operating it will charge float at this voltage."
  DEFVAL { 5520 }
::= { voltageControl 11 }

alternativeFloatSmartAlarm OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The smart alarm that will enable float charging at Alternative-Float-Voltage instead of Float-Voltage."
  DEFVAL { 0 }
::= { voltageControl 12 }

alternativeFloatStatus OBJECT-TYPE
  SYNTAX ControlProcessState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the state of Alternative-Float-Voltage: Disabled, Inactive, or Active (currently being used instead of Float-Voltage)."
::= { voltageControl 13 }

maximumSystemVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Many control functions adjust the bus voltage depending on their respective conditions. However, under no circumstances will the controller deliberately exceed this value. A failing rectifier may cause the voltage to raise above this threshold before the rectifier will execute an overvoltage shut down."
  DEFVAL { 5760 }
::= { voltageControl 15 }

minimumSystemVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Many control functions adjust the bus voltage depending on their respective conditions. However, under no circumstances will the controller deliberately adjust the bus voltage to below this value."
  DEFVAL { 4260 }
::= { voltageControl 17 }

busVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The system bus voltage from the bus voltage sensor. If the bus voltage sensor has failed, the system bus voltage is determined from the rectifier output voltages."
::= { voltageControl 20 }

targetVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The voltage maintained by AVC. AVC will set the Base Voltage to attempt to maintain the bus voltage to this value."
::= { voltageControl 30 }

enableActiveVoltageControl OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "When AVC is enabled the rectifier output voltage is adjusted to maintain the bus voltage at the configured float voltage (plus or minus any adjustments by active control processes) within a predefined dead band. Enable AVC unless there is specific reason to disable."
  DEFVAL { enabled }
::= { voltageControl 35 }

avcState OBJECT-TYPE
  SYNTAX AvcState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of the Active Voltage Control (AVC) process."
::= { voltageControl 40 }

avcOffset OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The difference between the Target Voltage and the measured bus voltage."
::= { voltageControl 50 }

baseVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The voltage sent to the rectifiers. This is the Target Voltage plus the AVC Offset."
::= { voltageControl 60 }

temperatureCompensation OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 20 }

enableTemperatureCompensation OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "When enabled, the battery charge voltage is automatically adjusted based on temperature. This is recommended by battery manufacturers to optimize battery life."
  DEFVAL { enabled }
::= { temperatureCompensation 5 }

temperatureCompensationAllowed OBJECT-TYPE
  SYNTAX CanStart
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates if Temperature Compensation is allowed to start or not. Temperature compensation cannot start if there are no rectifiers with AC power, or if the temperature sensor has failed."
::= { temperatureCompensation 7 }

temperatureCompensationState OBJECT-TYPE
  SYNTAX TcState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of the Temperature Compensation process. To be active, it must be enabled, and the temperature sensor must be working."
::= { temperatureCompensation 10 }

temperatureCompensationSlope OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 mV/°C/Cell"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Bus voltage adjustment rate. Use the value specified by the battery manufacturer."
  DEFVAL { -400 }
::= { temperatureCompensation 20 }

temperatureCompensationReferenceTemperature OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 °C"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The temperature where no voltage adjustment is applied. Use the value specified by the battery manufacturer."
  DEFVAL { 200 }
::= { temperatureCompensation 30 }

temperatureCompensationUpperLimit OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 °C"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "No additional voltage adjustment is made above this temperature."
  DEFVAL { 500 }
::= { temperatureCompensation 40 }

temperatureCompensationLowerLimit OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 °C"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "No additional voltage adjustment is made below this temperature."
  DEFVAL { 0 }
::= { temperatureCompensation 50 }

temperatureCompensationOffsetVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The adjustment to the bus voltage being applied due to the Temperature Compensation. Offset is zero when the battery temperature equals the reference temperature."
::= { temperatureCompensation 60 }

resetAhDischarged OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command resets controller battery state information (Amp hours discharged) and reverts all control process states to Inactive."
::= { controlFunctions 25 }

ahDischargedFloatResetRate OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Once the battery has returned to float the Ah discharged figure is adjust towards zero by this factor multiplied by Battery-State-Threshold. In Solar applications where the amount of time spent in float is small a large factor is appropriate."
  DEFVAL { 5 }
::= { controlFunctions 27 }

equalize OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 30 }

enableEqualize OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Applies a controlled overcharge to the battery by raising the charge voltage for a set time. This may be required to ensure all cells are fully charged, remove sulphation, or redistribute the electrolyte in flooded cells."
  DEFVAL { disabled }
::= { equalize 5 }

equalizeStartAllowed OBJECT-TYPE
  SYNTAX CanStart
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates if an Equalize cycle is allowed to start or the reason why not. An Equalize cycle cannot start if there are no rectifiers with AC power."
::= { equalize 9 }

equalizeState OBJECT-TYPE
  SYNTAX ControlProcessState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the state of the Equalize process: Disabled, Inactive or Active."
::= { equalize 10 }

equalizeVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The bus voltage maintained during an Equalize cycle. The bus voltage is further adjusted by Temperature Compensation."
  DEFVAL { 5600 }
::= { equalize 12 }

equalizeOffsetVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The adjustment to the bus voltage being applied due to the Equalize process."
::= { equalize 13 }

periodicEqualizeFirstDateTime OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The date and time that the first scheduled Equalize will occur. Subsequent Equalize cycles will occur at every Equalize Interval thereafter."
::= { equalize 15 }

equalizeInterval OBJECT-TYPE
  SYNTAX TimeIntervalInDays
  UNITS "d"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The time between scheduled Equalize cycles. The interval period begins at the start of an Equalize. Zero disables scheduled Equalizes."
  DEFVAL { 182 }
::= { equalize 17 }

nextEqualizeStartTime OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The start time of the next scheduled Equalize cycle. The value is NaN if Equalize is active or Periodic Equalize function is disabled."
::= { equalize 20 }

equalizeDuration OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The duration of a scheduled Equalize."
  DEFVAL { 600 }
::= { equalize 30 }

equalizeRemainingTime OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The time until the current Equalize cycle will stop. The value is NaN if the Equalize is inactive."
::= { equalize 40 }

startEqualize OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command attempts to start the Equalize process."
::= { equalize 100 }

stopEqualize OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command stops the Equalize process if it is currently active."
::= { equalize 110 }

equalizeSmartAlarm OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The smart alarm that will attempt to start and stop Equalize. To disable set to 0. The recognition period does not apply to start equalize."
  DEFVAL { 0 }
::= { equalize 120 }

fastCharge OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 40 }

enableFastCharge OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "After an AC power outage, Fast Charge automatically increases the float voltage of the DC power system to recharge the batteries as quickly as possible. Enable Fast Charge if the site experiences frequent AC power outages."
  DEFVAL { disabled }
::= { fastCharge 5 }

fastChargeState OBJECT-TYPE
  SYNTAX ControlProcessState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the state of Fast Charge process: Disabled, Inactive, Active or Pending."
::= { fastCharge 10 }

fastChargeStartAllowed OBJECT-TYPE
  SYNTAX CanStart
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates if a Fast Charge is allowed to start or the reason why not. Fast Charge cannot start if there are no rectifiers with AC power, or the battery is not discharged."
::= { fastCharge 12 }

fastChargeVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The bus voltage maintained during Fast Charge (use the value recommended by the battery manufacturer). Adjustments for Temperature Compensation and Battery Current Limit also apply."
  DEFVAL { 5600 }
::= { fastCharge 15 }

fastChargeOffsetVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The adjustment to the bus voltage being applied due to the Fast Charge."
::= { fastCharge 17 }

fastChargeAhDischarged OBJECT-TYPE
  SYNTAX Float
  UNITS "Ah"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The current level of battery discharge."
::= { fastCharge 20 }

fastChargeMaximumDuration OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The maximum duration of a Fast Charge (use the value recommended by the battery manufacturer)."
  DEFVAL { 1440 }
::= { fastCharge 30 }

fastChargeAmpereHourThreshold OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If the battery has been discharged until the charge level is this value below full charge, then Fast Charge occurs when AC power is restored. The threshold is given as a percentage of installed C10 battery capacity. Fast charge can also be triggered based on the Fast Charge Voltage Threshold."
  DEFVAL { 25 }
::= { fastCharge 35 }

fastChargeVoltageThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If the bus voltage drops below this value then Fast Charge occurs when AC power is restored. Fast charge can also be triggered based on the Fast Charge Ampere Hour Threshold."
  DEFVAL { 4800 }
::= { fastCharge 40 }

fastChargeRechargePercentage OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The ratio of recharge ampere-hours required to restore the battery to fully charged status to the ampere-hours discharged."
  DEFVAL { 110 }
::= { fastCharge 45 }

fastChargeAmpereHourStopThreshold OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Fast charge will only run until the battery has been recharged to a charge percentage of this value below full charge. This mostly useful when fast charge is used to control a generator and the generator should be stopped before the battery has been fully charged. The value given is a percentage of the configured battery capacity. This should normally be set to zero."
  DEFVAL { 0 }
::= { fastCharge 47 }

fastChargeMaximumTimeRemaining OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "This timer is started when a Fast Charge cycle starts and runs while Fast Charge remains active. It is suspended and resumed when Fast Charge is suspended and resumed respectively. The Fast Charge cycle will stop if this timer reaches zero. The value is 0 if Fast Charge is inactive."
::= { fastCharge 50 }

stopFastCharge OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command stops the Fast Charge process if it is currently active."
::= { fastCharge 100 }

batteryCurrentLimit OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 50 }

enableBatteryCurrentLimit OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Protects the batteries from excessive charge current. BCL varies the system voltage in order to maintain battery charge current below the BCL Limit value."
  DEFVAL { enabled }
::= { batteryCurrentLimit 5 }

bclState OBJECT-TYPE
  SYNTAX BclState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of the Battery Current Limit process."
::= { batteryCurrentLimit 10 }

bclLimit OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "BCL maintains the battery current below this value, which is a percentage of the installed C10 Battery Capacity."
  DEFVAL { 10 }
::= { batteryCurrentLimit 30 }

bclOffsetVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The bus voltage adjustment made by Battery Current Limit is applied to the Operating Voltage to produce the Target Voltage. Target Voltage is used as the input to the AVC function."
::= { batteryCurrentLimit 40 }

bclEngineRunLimit OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The Battery Current Limit setting when the Engine Run State is 'Running'. BCL maintains the battery current below this value when the Engine Run State is 'Running'. This limit is expressed as a percentage of the installed C10 Battery Capacity."
  DEFVAL { 2 }
::= { batteryCurrentLimit 50 }

batteryTest OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 70 }

enableBatteryTest OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Periodically tests the condition of the battery by reducing the rectifier voltage and allowing the batteries to discharge into the normal load."
  DEFVAL { disabled }
::= { batteryTest 3 }

preventBatteryTest OBJECT-TYPE
  SYNTAX PreventBatteryTest
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Battery test can be prevented by Battery-Fuse-Fail."
  DEFVAL { batteryFuseFail }
::= { batteryTest 4 }

batteryTestStartAllowed OBJECT-TYPE
  SYNTAX CanStart
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates if a Battery Test is allowed to start. Battery Tests cannot start within 48 hours of an AC failure, if there are no rectifiers, if Equalize or Fast Charge is active, if any rectifiers are failed or have lost communications, if the battery fuse has failed or if the system is overloaded."
::= { batteryTest 7 }

batteryTestLockoutRemaining OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "How much longer the Battery Test is locked-out. Battery Tests cannot be started within 48 hours of an AC failure. If an immediate test is required, set Battery test Interval to zero (this disables the 48 hour lockout)."
::= { batteryTest 8 }

batteryTestState OBJECT-TYPE
  SYNTAX BatteryTestState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of the Battery Test process."
::= { batteryTest 10 }

batteryTestFirstDateTime OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The date and time that the first Battery Test will occur. Subsequent tests will occur at every Battery Test Interval after that."
::= { batteryTest 15 }

batteryTestInterval OBJECT-TYPE
  SYNTAX TimeIntervalInDays
  UNITS "d"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The time between scheduled Battery Tests. The interval period begins at the start of a Battery Test. Zero disables scheduled Battery Tests. Zero also disables the 48 hour lockout following an AC failure, allowing an immediate manual test."
  DEFVAL { 183 }
::= { batteryTest 17 }

nextBatteryTestStartTime OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The start time of the next scheduled Battery Test."
::= { batteryTest 20 }

batteryTestDuration OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The maximum time a Battery Test process will be active. The Battery Test will pass if the bus voltage remains above the Battery Test Termination Voltage for the duration of the test."
  DEFVAL { 30 }
::= { batteryTest 30 }

batteryTestRemainingTime OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The time to the end of the currently active Battery Test."
::= { batteryTest 40 }

batteryTestTerminationVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If the bus voltages drops below this value during a Battery Test, then the test fails."
  DEFVAL { 4750 }
::= { batteryTest 50 }

batteryTestOffsetVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The adjustment to the bus voltage being applied due to the Battery Test. While a Battery Test is running, the rectifiers are turned down to force the battery to carry the load."
::= { batteryTest 60 }

startBatteryTest OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command attempts to start the Battery Test process."
::= { batteryTest 100 }

stopBatteryTest OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command stops the Battery Test process if it is currently active."
::= { batteryTest 110 }

allowBatteryTestDuringLockout OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Allow immediate battery test without AC fail lockout for the next 1 hour."
::= { batteryTest 130 }

bBatteryTestOffsetVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The adjustment to the bus voltage being applied due to the Battery Test. While a Battery Test is running, the rectifiers are turned down to force the battery to carry the load."
::= { batteryTest 140 }

lvd OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 75 }

lvdInhibitPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The minimum time an LVD stays connected or disconnected before it can change state."
  DEFVAL { 10 }
::= { lvd 10 }

allowFrontPanelLvdControl OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This item specifies whether manual LVD control is allowed from the front panel."
  DEFVAL { true }
::= { lvd 20 }

lvdTable OBJECT-TYPE
  SYNTAX SEQUENCE OF LvdEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for lvd"
 ::= { lvd 50 }

lvdEntry OBJECT-TYPE
  SYNTAX LvdEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for lvd"
  INDEX  { lvdIndex }
 ::= { lvdTable 1 }

LvdEntry ::= SEQUENCE {
  lvdIndex Unsigned8,
  lvdName DisplayString,
  lvdState LvdState,
  lvdInhibited Boolean,
  enableLvdVoltageDisconnect EnableState,
  lvdDisconnectVoltage Float,
  lvdReconnectVoltage Float,
  lvdRecognitionPeriod TimeIntervalInSeconds,
  enableLvdAcTimer EnableState,
  lvdAcTimerDisconnectDelay TimeIntervalInMinutes,
  enableLvdSaDisconnect EnableState,
  lvdSaDisconnectIndex Unsigned8,
  enableLvdChainedToPrevious EnableState,
  lvdRemoteManualControl Boolean
}

lvdIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { lvdEntry 1 }


lvdName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The name of this LVD."
  DEFVAL { "" }
::= { lvdEntry 5 }

lvdState OBJECT-TYPE
  SYNTAX LvdState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of this LVD control process."
::= { lvdEntry 10 }

lvdInhibited OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates whether this LVD currently cannot change state due to the inhibit time."
::= { lvdEntry 15 }

enableLvdVoltageDisconnect OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If Enabled, the LVD will disconnect when the bus voltage falls below the Disconnect Voltage and will not reconnect until it is above the Reconnect Voltage."
  DEFVAL { enabled }
::= { lvdEntry 20 }

lvdDisconnectVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If voltage based disconnect is enabled, the LVD will disconnect if the bus voltage has been below this voltage for the recognition time."
  DEFVAL { 4320 }
::= { lvdEntry 30 }

lvdReconnectVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If voltage based disconnect is enabled, the LVD will reconnect only if the bus voltage has been above this voltage for the recognition time."
  DEFVAL { 4800 }
::= { lvdEntry 40 }

lvdRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The time the bus voltage must be below or above the thresholds before the LVD disconnects or connects."
  DEFVAL { 10 }
::= { lvdEntry 50 }

enableLvdAcTimer OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If Enabled, during an AC failure the LVD will disconnect after the AC Timer Delay, even if the Disconnect Voltage has not been reached."
  DEFVAL { disabled }
::= { lvdEntry 60 }

lvdAcTimerDisconnectDelay OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If Enabled, the LVD will disconnect after this delay following an AC failure, unless the Disconnect Voltage is reached or AC is restored first."
  DEFVAL { 240 }
::= { lvdEntry 70 }

enableLvdSaDisconnect OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If Enabled, the LVD will disconnect immediately when the specified smart alarm becomes active."
  DEFVAL { disabled }
::= { lvdEntry 80 }

lvdSaDisconnectIndex OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If Enabled, the LVD will disconnect immediately when this smart alarm becomes active."
  DEFVAL { 1 }
::= { lvdEntry 90 }

enableLvdChainedToPrevious OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If Enabled, the LVD will not disconnect until the previous LVD (the LVD numbered one less) has been disconnected for the configured recognition time. This item is ignored by the first LVD and when the previous LVD has no contactors. This applies in reverse when connecting."
  DEFVAL { disabled }
::= { lvdEntry 100 }

lvdRemoteManualControl OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Allows remote manual control of the LVD. Reconnects on remote manual control, remote manual timeout, UI or Smart Alarm manual control or AC-State becomes ok."
::= { lvdEntry 120 }

lvdcTable OBJECT-TYPE
  SYNTAX SEQUENCE OF LvdcEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for lvdc"
 ::= { lvd 60 }

lvdcEntry OBJECT-TYPE
  SYNTAX LvdcEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for lvdc"
  INDEX  { lvdcIndex }
 ::= { lvdcTable 1 }

LvdcEntry ::= SEQUENCE {
  lvdcIndex Unsigned8,
  lvdcLvdMapping Unsigned8,
  lvdcState LvdcState,
  enableLvdc EnableState,
  lvdcIobNumber Unsigned8,
  lvdcIobLvdNumber Unsigned8,
  lvdcType LvdcType
}

lvdcIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { lvdcEntry 1 }


lvdcLvdMapping OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The LVD that drives this contactor."
  DEFVAL { 16 }
::= { lvdcEntry 10 }

lvdcState OBJECT-TYPE
  SYNTAX LvdcState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of this contactor."
::= { lvdcEntry 20 }

enableLvdc OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If Enabled, the specified physical contactor is driven by the specified LVD."
  DEFVAL { disabled }
::= { lvdcEntry 30 }

lvdcIobNumber OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The I/O board number to which this LVD contactor is connected."
  DEFVAL { 1 }
::= { lvdcEntry 40 }

lvdcIobLvdNumber OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The LVD connector on the I/O board that this contactor is connected to."
  DEFVAL { 1 }
::= { lvdcEntry 50 }

lvdcType OBJECT-TYPE
  SYNTAX LvdcType
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The type of contactor connected to the I/O board."
  DEFVAL { normallyOpen }
::= { lvdcEntry 60 }

lvdRemoteManualReconnectTimeoutPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The maximum time for which an LVD can be remotely disconnected."
  DEFVAL { 60 }
::= { lvd 70 }

lvdRemoteManualReconnectTimer OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "If allowed then all LVD's will attempt to connect at the end of this time."
::= { lvd 80 }

generatorControl OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 80 }

generatorCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 kW"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The total power produced by generator sources."
::= { generatorControl 91 }

generatorFailAlarmRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Recognition period for the Generator Fail Alarm. The alarm will activate if the Generator Fail Alarm has been triggered for this period and AC has not been restored."
  DEFVAL { 300 }
::= { generatorControl 100 }

generatorOnFastCharge OBJECT-TYPE
  SYNTAX YesNo
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The controller will activate the generator control relay while fast charge is pending or active."
  DEFVAL { yes }
::= { generatorControl 111 }

generatorOnEqualize OBJECT-TYPE
  SYNTAX YesNo
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The controller will activate the generator control relay while equalize is pending or active."
  DEFVAL { no }
::= { generatorControl 112 }

generatorOnAcPeakLoadReduction OBJECT-TYPE
  SYNTAX YesNo
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The controller will start the generator when PLR is active and the bus voltage has dropped to the PLR low voltage limit."
  DEFVAL { no }
::= { generatorControl 114 }

generatorOnMainsFailure OBJECT-TYPE
  SYNTAX YesNo
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The controller will activate the generator control relay when there is a mains failure."
  DEFVAL { no }
::= { generatorControl 116 }

acSupplyState OBJECT-TYPE
  SYNTAX SystemState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Calculated AC Supply state."
::= { generatorControl 120 }

generatorRunTimeRemaining OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The time left for the generator to run following a manual start."
::= { generatorControl 130 }

generatorState OBJECT-TYPE
  SYNTAX EngineRunState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates whether or not the controller believes that the generator is currently running. This information may be based on a digital input (if configured) or derived from other information."
::= { generatorControl 140 }

generatorRefuelDate OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The time and date the generator was last refueled."
::= { generatorControl 150 }

generatorRefuelVolume OBJECT-TYPE
  SYNTAX Float
  UNITS "L"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The amount of fuel added to the generator's fuel tank(s) during the last refuel."
::= { generatorControl 160 }

generatorBackupTime OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Estimated time for which the generator could continuously run based on the current fuel-level and historic fuel consumption."
::= { generatorControl 170 }

tankEmptyDateTime OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Best current estimate of the date at which the tank will run dry if the current characteristics of generator usage do not change. This is useful for installations that run the generator regularly and with a reasonably constant duty cycle."
::= { generatorControl 180 }

fuelLevel OBJECT-TYPE
  SYNTAX Float
  UNITS "L"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The volume of fuel in the generator's fuel tank(s)."
::= { generatorControl 190 }

generatorControlRelay OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The relay used to control generator startup and shutdown. If this is set to None, the generator control process is disabled."
  DEFVAL { none }
::= { generatorControl 200 }

generatorStartupWiring OBJECT-TYPE
  SYNTAX GeneratorStartupWiring
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Choose to match the way the generator control relay is wired."
  DEFVAL { indirectStart }
::= { generatorControl 210 }

manualGeneratorRunTime OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This is the maximum time for which a manual run lasts. If, at the end of this time, automatic conditions are such to cause the generator to run, it will continue to run."
  DEFVAL { 0 }
::= { generatorControl 230 }

fuelTankVolume OBJECT-TYPE
  SYNTAX Float
  UNITS "L"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The total volume of the generator's fuel tank(s). A value of 0 disables fuel related estimates."
  DEFVAL { 0 }
::= { generatorControl 240 }

manualGeneratorStart OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This causes the generator to run for the configured time unless it is manually stopped."
::= { generatorControl 260 }

manualGeneratorStop OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This will end a manual generator run before the time has elapsed. It will not cause the generator to stop if it is running based on fast charge, equalize or AC failure."
::= { generatorControl 270 }

clearFuelConsumptionHistory OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The controller accumulates historic information on the average generator fuel consumption and, in applications that run the generator regularly, the average generator duty cycle. This command will clear this information for instance when the generator has been replaced. This will cause the remaining time estimates to be very inaccurate or not available until enough information about the new generator has been collected."
::= { generatorControl 280 }

peakLoadReduction OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 85 }

peakLoadReductionState OBJECT-TYPE
  SYNTAX PeakLoadReductionState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of Peak Load Reduction."
::= { peakLoadReduction 10 }

enablePeakLoadReduction OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If Enabled, the Peak Load Reduction will force the battery to take the load when required."
  DEFVAL { disabled }
::= { peakLoadReduction 20 }

peakLoadReductionRunningTime OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The time that Peak Load Reduction has been running."
::= { peakLoadReduction 30 }

peakLoadReductionOffsetVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The adjustment to the bus voltage being applied due to Peak Load Reduction."
::= { peakLoadReduction 40 }

peakLoadReductionSmartAlarm OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The smart alarm that will start Peak Load Reduction. To disable set to 0."
  DEFVAL { 0 }
::= { peakLoadReduction 50 }

peakLoadReductionMaxDuration OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The maximum time that Peak Load Reduction can be active."
  DEFVAL { 120 }
::= { peakLoadReduction 60 }

peakLoadReductionLowVoltageLimit OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The lowest bus voltage that Peak Load Reduction can discharge the battery to."
  DEFVAL { 4800 }
::= { peakLoadReduction 70 }

peakLoadReductionScheduledStartTime OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This will start Peak-Load-Reduction for Peak-Load-Reduction-Scheduled-Duration, if activating smart alarm is not active."
::= { peakLoadReduction 80 }

peakLoadReductionScheduledDuration OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This will end Peak-Load-Reduction this time after Peak-Load-Reduction-Scheduled-Start-Time, if activating smart alarm is not active. A zero will disable Peak-Load-Reduction if activate due to Peak-Load-Reduction-Scheduled-Start-Time."
::= { peakLoadReduction 90 }

energyMeters OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 87 }

energyMeterTable OBJECT-TYPE
  SYNTAX SEQUENCE OF EnergyMeterEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for energyMeter"
 ::= { energyMeters 10 }

energyMeterEntry OBJECT-TYPE
  SYNTAX EnergyMeterEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for energyMeter"
  INDEX  { energyMeterIndex }
 ::= { energyMeterTable 1 }

EnergyMeterEntry ::= SEQUENCE {
  energyMeterIndex Unsigned8,
  energyMeterName DisplayString,
  energyMeterGroup Unsigned8,
  energyMeter Float,
  resetEnergyMeter NoData,
  energyResetDate JulianDateUtc25,
  currentMeter Float,
  voltageMeter Float,
  powerMeter Float,
  powerMeterMin Float,
  powerMeterMax Float,
  resetPowerMeterRange NoData,
  powerMeterGain Float,
  powerMeterOffset Float
}

energyMeterIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { energyMeterEntry 1 }


energyMeterName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The name for this energy meter."
  DEFVAL { "" }
::= { energyMeterEntry 10 }

energyMeterGroup OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The group tag used by software to group related inputs and outputs for display purposes."
  DEFVAL { 0 }
::= { energyMeterEntry 12 }

energyMeter OBJECT-TYPE
  SYNTAX Float
  UNITS "0.001 kWh"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The energy meter reading for this meter."
::= { energyMeterEntry 15 }

resetEnergyMeter OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Reset this energy meter to zero."
::= { energyMeterEntry 20 }

energyResetDate OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The date when this energy meter was reset."
::= { energyMeterEntry 25 }

currentMeter OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The current reading for this meter."
::= { energyMeterEntry 30 }

voltageMeter OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The voltage reading for this meter."
::= { energyMeterEntry 35 }

powerMeter OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 kW"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The power reading for this meter."
::= { energyMeterEntry 40 }

powerMeterMin OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 kW"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The min. power reading for this meter."
::= { energyMeterEntry 45 }

powerMeterMax OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 kW"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The max. power reading for this meter."
::= { energyMeterEntry 50 }

resetPowerMeterRange OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Reset this power meter's min. and max."
::= { energyMeterEntry 55 }

powerMeterGain OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The scaling factor applied to the raw power value applied to the energy meter."
  DEFVAL { 100 }
::= { energyMeterEntry 60 }

powerMeterOffset OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The offset applied to the raw energy value applied to the energy meter."
  DEFVAL { 0 }
::= { energyMeterEntry 65 }

energyMeterAiMappingTable OBJECT-TYPE
  SYNTAX SEQUENCE OF EnergyMeterAiMappingEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for energyMeterAiMapping"
 ::= { energyMeters 20 }

energyMeterAiMappingEntry OBJECT-TYPE
  SYNTAX EnergyMeterAiMappingEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for energyMeterAiMapping"
  INDEX  { energyMeterAiMappingIndex }
 ::= { energyMeterAiMappingTable 1 }

EnergyMeterAiMappingEntry ::= SEQUENCE {
  energyMeterAiMappingIndex Unsigned8,
  energyMeterMeter Unsigned8,
  energyMeterAi Unsigned8,
  energyMeterAiFunction EnergyMeterAiFunction
}

energyMeterAiMappingIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { energyMeterAiMappingEntry 1 }


energyMeterMeter OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This is the mapping into the Energy-Meter-Name. Zero means it is not mapped."
  DEFVAL { 0 }
::= { energyMeterAiMappingEntry 10 }

energyMeterAi OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This is the mapping into the Analog-Input-Table. Zero means it is not mapped."
  DEFVAL { 0 }
::= { energyMeterAiMappingEntry 15 }

energyMeterAiFunction OBJECT-TYPE
  SYNTAX EnergyMeterAiFunction
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This analog input is either Current or Voltage."
  DEFVAL { current }
::= { energyMeterAiMappingEntry 20 }

energyMeterValueMappingTable OBJECT-TYPE
  SYNTAX SEQUENCE OF EnergyMeterValueMappingEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for energyMeterValueMapping"
 ::= { energyMeters 30 }

energyMeterValueMappingEntry OBJECT-TYPE
  SYNTAX EnergyMeterValueMappingEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for energyMeterValueMapping"
  INDEX  { energyMeterValueMappingIndex }
 ::= { energyMeterValueMappingTable 1 }

EnergyMeterValueMappingEntry ::= SEQUENCE {
  energyMeterValueMappingIndex Unsigned8,
  energyMeterMeterNumber Unsigned8,
  energyMeterSystemValue EnergyMeterSystemValue,
  energyMeterSystemValueIndex Unsigned8
}

energyMeterValueMappingIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { energyMeterValueMappingEntry 1 }


energyMeterMeterNumber OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This is the mapping into the Energy-Meter-Name. Zero means it is not mapped."
  DEFVAL { 0 }
::= { energyMeterValueMappingEntry 10 }

energyMeterSystemValue OBJECT-TYPE
  SYNTAX EnergyMeterSystemValue
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This is the mapping to a system calculated value. Zero means it is not mapped."
  DEFVAL { loadCurrent }
::= { energyMeterValueMappingEntry 15 }

energyMeterSystemValueIndex OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The index of the Energy-Meter-System-Value."
  DEFVAL { 0 }
::= { energyMeterValueMappingEntry 20 }

resetAllEnergyMeters OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Reset *all* energy meters to zero."
::= { energyMeters 40 }

resetAllPowerMeterRanges OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Reset *all* power meter's min. and max."
::= { energyMeters 50 }

fanController OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  controlFunctions 88 }

setFanPowerRunningTime OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The time that the fan has been force to run."
::= { fanController 10 }

fanControllerProfile OBJECT-TYPE
  SYNTAX FanControllerProfile
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The controller may be using the Primary, Secondary or Set-Fan-Power profile."
::= { fanController 20 }

rxpFcFaults OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Status of Fan Controller."
::= { fanController 25 }

fanControllerStateTable OBJECT-TYPE
  SYNTAX SEQUENCE OF FanControllerStateEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for fanControllerState"
 ::= { fanController 30 }

fanControllerStateEntry OBJECT-TYPE
  SYNTAX FanControllerStateEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for fanControllerState"
  INDEX  { fanControllerStateIndex }
 ::= { fanControllerStateTable 1 }

FanControllerStateEntry ::= SEQUENCE {
  fanControllerStateIndex Unsigned8,
  fanTemperature Float,
  fanPower Percentile8Nan,
  setFanPower Unsigned8,
  fanPoles Unsigned8,
  fanSpeedA Unsigned16,
  fanSpeedB Unsigned16
}

fanControllerStateIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { fanControllerStateEntry 1 }


fanTemperature OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 °C"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Temperature sensor reading. If AI function mapped its value overrides temperature obtained from Fan Controller."
::= { fanControllerStateEntry 10 }

fanPower OBJECT-TYPE
  SYNTAX Percentile8Nan
  UNITS "%"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Power applied to fan output."
::= { fanControllerStateEntry 20 }

setFanPower OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Manual set the fan power for the Set-Fan-Power-Period."
::= { fanControllerStateEntry 30 }

fanPoles OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The number of poles of each fan group is used to calculate fan speed(rpm)."
  DEFVAL { 4 }
::= { fanControllerStateEntry 40 }

fanSpeedA OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Fan Speed. Only fans with pulse outputs can have a measured speed."
::= { fanControllerStateEntry 50 }

fanSpeedB OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Fan Speed. Only fans with pulse outputs can have a measured speed."
::= { fanControllerStateEntry 60 }

fanControllerMode OBJECT-TYPE
  SYNTAX FanControllerMode
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The mode determines how temperature sensors and fan outputs are routed internally"
  DEFVAL { singleController }
::= { fanController 40 }

setFanPowerPeriod OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The number of minutes a manual set fan voltage is applied before reverting to normal operation."
  DEFVAL { 10 }
::= { fanController 50 }

applySetPower OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command will set the fans to Set-Fan-Power for the Set-Fan-Power-Period."
::= { fanController 60 }

fanController1PrimaryTable OBJECT-TYPE
  SYNTAX SEQUENCE OF FanController1PrimaryEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for fanController1Primary"
 ::= { fanController 70 }

fanController1PrimaryEntry OBJECT-TYPE
  SYNTAX FanController1PrimaryEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for fanController1Primary"
  INDEX  { fanController1PrimaryIndex }
 ::= { fanController1PrimaryTable 1 }

FanController1PrimaryEntry ::= SEQUENCE {
  fanController1PrimaryIndex Unsigned16,
  fc1pTemperature Float,
  fc1pPower Unsigned8
}

fanController1PrimaryIndex OBJECT-TYPE
  SYNTAX Unsigned16 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { fanController1PrimaryEntry 1 }


fc1pTemperature OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 °C"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A temperature/power point for this controller."
  DEFVAL { 340 }
::= { fanController1PrimaryEntry 10 }

fc1pPower OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A temperature/power point for this controller."
  DEFVAL { 20 }
::= { fanController1PrimaryEntry 20 }

fanController1SecondaryTable OBJECT-TYPE
  SYNTAX SEQUENCE OF FanController1SecondaryEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for fanController1Secondary"
 ::= { fanController 90 }

fanController1SecondaryEntry OBJECT-TYPE
  SYNTAX FanController1SecondaryEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for fanController1Secondary"
  INDEX  { fanController1SecondaryIndex }
 ::= { fanController1SecondaryTable 1 }

FanController1SecondaryEntry ::= SEQUENCE {
  fanController1SecondaryIndex Unsigned16,
  fc1sTemperature Float,
  fc1sPower Unsigned8
}

fanController1SecondaryIndex OBJECT-TYPE
  SYNTAX Unsigned16 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { fanController1SecondaryEntry 1 }


fc1sTemperature OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 °C"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A temperature/power point for this controller."
  DEFVAL { 340 }
::= { fanController1SecondaryEntry 10 }

fc1sPower OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A temperature/power point for this controller."
  DEFVAL { 20 }
::= { fanController1SecondaryEntry 20 }

fanController2PrimaryTable OBJECT-TYPE
  SYNTAX SEQUENCE OF FanController2PrimaryEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for fanController2Primary"
 ::= { fanController 110 }

fanController2PrimaryEntry OBJECT-TYPE
  SYNTAX FanController2PrimaryEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for fanController2Primary"
  INDEX  { fanController2PrimaryIndex }
 ::= { fanController2PrimaryTable 1 }

FanController2PrimaryEntry ::= SEQUENCE {
  fanController2PrimaryIndex Unsigned16,
  fc2pTemperature Float,
  fc2pPower Unsigned8
}

fanController2PrimaryIndex OBJECT-TYPE
  SYNTAX Unsigned16 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { fanController2PrimaryEntry 1 }


fc2pTemperature OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 °C"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A temperature/power point for this controller."
  DEFVAL { 340 }
::= { fanController2PrimaryEntry 10 }

fc2pPower OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A temperature/power point for this controller."
  DEFVAL { 20 }
::= { fanController2PrimaryEntry 20 }

fanController2SecondaryTable OBJECT-TYPE
  SYNTAX SEQUENCE OF FanController2SecondaryEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for fanController2Secondary"
 ::= { fanController 130 }

fanController2SecondaryEntry OBJECT-TYPE
  SYNTAX FanController2SecondaryEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for fanController2Secondary"
  INDEX  { fanController2SecondaryIndex }
 ::= { fanController2SecondaryTable 1 }

FanController2SecondaryEntry ::= SEQUENCE {
  fanController2SecondaryIndex Unsigned16,
  fc2sTemperature Float,
  fc2sPower Unsigned8
}

fanController2SecondaryIndex OBJECT-TYPE
  SYNTAX Unsigned16 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { fanController2SecondaryEntry 1 }


fc2sTemperature OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 °C"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A temperature/power point for this controller."
  DEFVAL { 340 }
::= { fanController2SecondaryEntry 10 }

fc2sPower OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A temperature/power point for this controller."
  DEFVAL { 20 }
::= { fanController2SecondaryEntry 20 }

fanControllerSmartAlarm OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The secondary profile is used when this smart alarm is active. To disable set to 0."
  DEFVAL { 0 }
::= { fanController 150 }

realTimeClock OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 80 }

controllerTime OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The current time of the controller's internal battery backed clock. When setting the time either use shortcuts [n = now, -2h = now-2 hours] or type UTC in 'yyyy-mm-dd hh:mm:ss' format."
::= { realTimeClock 10 }

inputOutput OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 90 }

systemAnalogInput OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  inputOutput 10 }

analogInputTable OBJECT-TYPE
  SYNTAX SEQUENCE OF AnalogInputEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for analogInput"
 ::= { systemAnalogInput 30 }

analogInputEntry OBJECT-TYPE
  SYNTAX AnalogInputEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for analogInput"
  INDEX  { analogInputIndex }
 ::= { analogInputTable 1 }

AnalogInputEntry ::= SEQUENCE {
  analogInputIndex Unsigned8,
  aiHighState AlarmActiveState,
  aiLowState AlarmActiveState,
  aiValue Float,
  aiStatus EnableState,
  aiName DisplayString,
  aiFunction AiFunction,
  aiFunctionIndex Unsigned8,
  aiUnits MeasurementUnits,
  aiIobNumber Unsigned8,
  inputNumber Unsigned8,
  gain Float,
  offset Float,
  hysteresis Float,
  highSeverity AlarmSeverity,
  highThreshold Float,
  highDoMappingA RelayMapping,
  highDoMappingB RelayMapping,
  highTrapSend SendTrap,
  lowSeverity AlarmSeverity,
  lowThreshold Float,
  lowDoMappingA RelayMapping,
  lowDoMappingB RelayMapping,
  lowTrapSend SendTrap,
  aiGroup Unsigned8,
  aiHighNotes DisplayString,
  aiLowNotes DisplayString
}

analogInputIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { analogInputEntry 1 }


aiHighState OBJECT-TYPE
  SYNTAX AlarmActiveState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of the selected analog input high alarm."
::= { analogInputEntry 20 }

aiLowState OBJECT-TYPE
  SYNTAX AlarmActiveState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of the selected analog input low alarm."
::= { analogInputEntry 30 }

aiValue OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Analog input value."
::= { analogInputEntry 40 }

aiStatus OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Enable/disable this analog input channel."
  DEFVAL { disabled }
::= { analogInputEntry 50 }

aiName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The name of this analog input channel as it will appear on management software such as DCTools or PowerManagerII. This name is not displayed on the controller."
  DEFVAL { "Bus Voltage" }
::= { analogInputEntry 60 }

aiFunction OBJECT-TYPE
  SYNTAX AiFunction
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Selects how the value of this analog input is to be used by any control functions, if at all."
  DEFVAL { userDefined }
::= { analogInputEntry 64 }

aiFunctionIndex OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Select an index for the selected function. Only valid where function is Smart-Analog, Battery-Symmetry-Monitoring and Fan-Temperature."
  DEFVAL { 1 }
::= { analogInputEntry 66 }

aiUnits OBJECT-TYPE
  SYNTAX MeasurementUnits
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Units of this analog input (after scaling)."
  DEFVAL { none }
::= { analogInputEntry 70 }

aiIobNumber OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The I/O board number on which this analog input is located."
  DEFVAL { 1 }
::= { analogInputEntry 80 }

inputNumber OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The input channel on the I/O board of this analog input."
  DEFVAL { 2 }
::= { analogInputEntry 90 }

gain OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The scaling factor applied to the raw value read from the I/O board."
  DEFVAL { 100 }
::= { analogInputEntry 100 }

offset OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The offset applied to the raw value read from the I/O board."
  DEFVAL { 0 }
::= { analogInputEntry 110 }

hysteresis OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The amount of hysteresis applied to the input before an active alarm is deactivated."
  DEFVAL { 0 }
::= { analogInputEntry 130 }

highSeverity OBJECT-TYPE
  SYNTAX AlarmSeverity
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The severity level associated with the alarm. Control alarms are not displayed, although any configured digital outputs are still activated."
  DEFVAL { disabled }
::= { analogInputEntry 141 }

highThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "An analog input high alarm is activated if the scaled input is greater than or equal to this value."
  DEFVAL { 1000 }
::= { analogInputEntry 150 }

highDoMappingA OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Optional digital output activated while this alarm is active."
  DEFVAL { none }
::= { analogInputEntry 160 }

highDoMappingB OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Optional digital output activated while this alarm is active."
  DEFVAL { none }
::= { analogInputEntry 170 }

highTrapSend OBJECT-TYPE
  SYNTAX SendTrap
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If set to true an SNMP trap is sent to every trap receiver with an appropriate trap level whenever this alarm changes state."
  DEFVAL { both }
::= { analogInputEntry 175 }

lowSeverity OBJECT-TYPE
  SYNTAX AlarmSeverity
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The severity level associated with the alarm. Control alarms are not displayed, although any configured digital outputs are still activated."
  DEFVAL { disabled }
::= { analogInputEntry 181 }

lowThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "An analog input low alarm is activated if the scaled input is lower than or equal to this value."
  DEFVAL { 0 }
::= { analogInputEntry 190 }

lowDoMappingA OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Optional digital output activated while this alarm is active."
  DEFVAL { none }
::= { analogInputEntry 200 }

lowDoMappingB OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Optional digital output activated while this alarm is active."
  DEFVAL { none }
::= { analogInputEntry 210 }

lowTrapSend OBJECT-TYPE
  SYNTAX SendTrap
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If set to true an SNMP trap is sent to every trap receiver with an appropriate trap level whenever this alarm changes state."
  DEFVAL { both }
::= { analogInputEntry 215 }

aiGroup OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The group tag used by software to group related inputs and outputs for display purposes."
  DEFVAL { 0 }
::= { analogInputEntry 220 }

aiHighNotes OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..60))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "User notes about this alarm. These notes appear in SNMP traps and can be viewed using DCTools or PowerManagerII."
  DEFVAL { "" }
::= { analogInputEntry 230 }

aiLowNotes OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..60))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "User notes about this alarm. These notes appear in SNMP traps and can be viewed using DCTools or PowerManagerII."
  DEFVAL { "" }
::= { analogInputEntry 240 }

smartAnalogTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SmartAnalogEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for smartAnalog"
 ::= { systemAnalogInput 40 }

smartAnalogEntry OBJECT-TYPE
  SYNTAX SmartAnalogEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for smartAnalog"
  INDEX  { smartAnalogIndex }
 ::= { smartAnalogTable 1 }

SmartAnalogEntry ::= SEQUENCE {
  smartAnalogIndex Unsigned8,
  name DisplayString,
  group Unsigned8,
  value Float,
  type SmartAnalogType,
  units DisplayString,
  smartAnalogGate SmartAnalogGate,
  saiFunction AiFunction,
  saiFunctionIndex Unsigned8
}

smartAnalogIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { smartAnalogEntry 1 }


name OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The name of these smart inputs."
  DEFVAL { "" }
::= { smartAnalogEntry 10 }

group OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The group tag used by software to group related inputs and outputs for display purposes."
  DEFVAL { 0 }
::= { smartAnalogEntry 20 }

value OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Value derived from the analog inputs configured as smart analogs."
::= { smartAnalogEntry 30 }

type OBJECT-TYPE
  SYNTAX SmartAnalogType
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "How values are derived from the analog inputs."
  DEFVAL { addition }
::= { smartAnalogEntry 40 }

units OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..7))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The units of the analog inputs. Units for a Smart Analog will be taken from the first configured analog input mapped to it."
::= { smartAnalogEntry 50 }

smartAnalogGate OBJECT-TYPE
  SYNTAX SmartAnalogGate
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The value can be clipped."
  DEFVAL { normal }
::= { smartAnalogEntry 60 }

saiFunction OBJECT-TYPE
  SYNTAX AiFunction
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Selects how the value of this analog input is to be used by any control functions, if at all."
  DEFVAL { userDefined }
::= { smartAnalogEntry 70 }

saiFunctionIndex OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Select an index for the selected function if required."
  DEFVAL { 1 }
::= { smartAnalogEntry 80 }

smartAnalogMappingTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SmartAnalogMappingEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for smartAnalogMapping"
 ::= { systemAnalogInput 45 }

smartAnalogMappingEntry OBJECT-TYPE
  SYNTAX SmartAnalogMappingEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for smartAnalogMapping"
  INDEX  { smartAnalogMappingIndex }
 ::= { smartAnalogMappingTable 1 }

SmartAnalogMappingEntry ::= SEQUENCE {
  smartAnalogMappingIndex Unsigned8,
  smartAnalogSystemInputMapping Unsigned8,
  smartAnalogSystemInputValue Float,
  smartAnalogSystemInput SystemInputType,
  smartAnalogSystemInputIndex Unsigned8,
  smartAnalogSystemInputInvert Boolean
}

smartAnalogMappingIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { smartAnalogMappingEntry 1 }


smartAnalogSystemInputMapping OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Index of smart analogue that this system value is mapped to."
  DEFVAL { 0 }
::= { smartAnalogMappingEntry 10 }

smartAnalogSystemInputValue OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Value derived from the system input configured as smart analogs."
::= { smartAnalogMappingEntry 20 }

smartAnalogSystemInput OBJECT-TYPE
  SYNTAX SystemInputType
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "How values are derived from the analog inputs."
  DEFVAL { rectifierCurrent }
::= { smartAnalogMappingEntry 30 }

smartAnalogSystemInputIndex OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If required this, is the system input index."
  DEFVAL { 0 }
::= { smartAnalogMappingEntry 40 }

smartAnalogSystemInputInvert OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The system input value multiplied by -1 if true."
  DEFVAL { false }
::= { smartAnalogMappingEntry 50 }

alternativeEnergySource OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  systemAnalogInput 50 }

alternativeSourceCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The total current produced by all alternative energy sources (excluding Solar). This value is measured by the alternative energy shunt(s) if present. If none are configured the controller assumes that there are no alternative energy sources present."
::= { alternativeEnergySource 10 }

systemStates OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  inputOutput 15 }

mainsFail OBJECT-TYPE
  SYNTAX SystemState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Failed if any Mains Fail digital input is in active state."
::= { systemStates 10 }

fanFail OBJECT-TYPE
  SYNTAX SystemState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Failed if any ACD Fan Fail digital input is in active state."
::= { systemStates 20 }

movFail OBJECT-TYPE
  SYNTAX SystemState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Failed if any MOV Fail digital input is in active state."
::= { systemStates 30 }

loadFuseFail OBJECT-TYPE
  SYNTAX SystemState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Failed if any Load Fuse Fail digital input is in active state."
::= { systemStates 40 }

batteryFuseFail OBJECT-TYPE
  SYNTAX SystemState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Failed if any Battery Fuse Fail digital input is in active state."
::= { systemStates 50 }

phaseFail OBJECT-TYPE
  SYNTAX SystemState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Failed if any Phase Fail digital input is in active state."
::= { systemStates 60 }

digitalInputTable OBJECT-TYPE
  SYNTAX SEQUENCE OF DigitalInputEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for digitalInput"
 ::= { inputOutput 40 }

digitalInputEntry OBJECT-TYPE
  SYNTAX DigitalInputEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for digitalInput"
  INDEX  { digitalInputIndex }
 ::= { digitalInputTable 1 }

DigitalInputEntry ::= SEQUENCE {
  digitalInputIndex Unsigned8,
  diState AlarmActiveState,
  diValue DigitalInputState,
  diStatus EnableState,
  diName DisplayString,
  diIobNumber Unsigned8,
  digitalInputNumber Unsigned8,
  diSeverity AlarmSeverity,
  diRecognitionPeriod TimeIntervalInSeconds,
  diDeactivationRecognitionPeriod TimeIntervalInSeconds,
  diDoMappingA RelayMapping,
  diDoMappingB RelayMapping,
  diTrapSend SendTrap,
  diActiveState ActiveState,
  diGroup Unsigned8,
  diNotes DisplayString
}

digitalInputIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { digitalInputEntry 1 }


diState OBJECT-TYPE
  SYNTAX AlarmActiveState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of this digital input alarm."
::= { digitalInputEntry 20 }

diValue OBJECT-TYPE
  SYNTAX DigitalInputState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of this digital input."
::= { digitalInputEntry 30 }

diStatus OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Enable/disable this digital input channel."
  DEFVAL { disabled }
::= { digitalInputEntry 40 }

diName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The name of the digital input."
  DEFVAL { "Digital Input 1" }
::= { digitalInputEntry 50 }

diIobNumber OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The I/O board number on which this digital input is located."
  DEFVAL { 1 }
::= { digitalInputEntry 60 }

digitalInputNumber OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The input channel on the I/O board of this digital input."
  DEFVAL { 1 }
::= { digitalInputEntry 70 }

diSeverity OBJECT-TYPE
  SYNTAX AlarmSeverity
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The severity level associated with the alarm. Control alarms are not displayed, although any configured digital outputs are still activated."
  DEFVAL { disabled }
::= { digitalInputEntry 81 }

diRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A digital input alarm will become active if the input is in the active state for the recognition time."
  DEFVAL { 10 }
::= { digitalInputEntry 85 }

diDeactivationRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A digital input alarm will deactivate if the input is in the inactive state for the deactivation recognition time."
  DEFVAL { 0 }
::= { digitalInputEntry 86 }

diDoMappingA OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Optional digital output activated while this digital input alarm is active."
  DEFVAL { none }
::= { digitalInputEntry 90 }

diDoMappingB OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Optional digital output activated while this digital input alarm is active."
  DEFVAL { none }
::= { digitalInputEntry 100 }

diTrapSend OBJECT-TYPE
  SYNTAX SendTrap
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If set to true an SNMP trap is sent to every trap receiver with an appropriate trap level whenever this alarm changes state."
  DEFVAL { both }
::= { digitalInputEntry 105 }

diActiveState OBJECT-TYPE
  SYNTAX ActiveState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Selects whether the input should be considered active when closed or open."
  DEFVAL { closed }
::= { digitalInputEntry 110 }

diGroup OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The group tag used by software to group related inputs and outputs for display purposes."
  DEFVAL { 0 }
::= { digitalInputEntry 120 }

diNotes OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..60))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "User notes about this alarm. These notes appear in SNMP traps and can be viewed using DCTools or PowerManagerII."
  DEFVAL { "" }
::= { digitalInputEntry 130 }

digitalOutputTable OBJECT-TYPE
  SYNTAX SEQUENCE OF DigitalOutputEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for digitalOutput"
 ::= { inputOutput 50 }

digitalOutputEntry OBJECT-TYPE
  SYNTAX DigitalOutputEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for digitalOutput"
  INDEX  { digitalOutputIndex }
 ::= { digitalOutputTable 1 }

DigitalOutputEntry ::= SEQUENCE {
  digitalOutputIndex Unsigned8,
  doState ExternalRelayState,
  remoteControlState RelayControlState,
  doStatus EnableState,
  doName DisplayString,
  doIobNumber Unsigned8,
  doIobDoNumber Unsigned8,
  doActiveState EnergizeState,
  doGroup Unsigned8
}

digitalOutputIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { digitalOutputEntry 1 }


doState OBJECT-TYPE
  SYNTAX ExternalRelayState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of this digital output. Active digital outputs may be energized or de-energized depending on their configuration."
::= { digitalOutputEntry 20 }

remoteControlState OBJECT-TYPE
  SYNTAX RelayControlState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Allows manual control of the digital output."
::= { digitalOutputEntry 40 }

doStatus OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Enable or disable this digital output. If disabled, the digital output is not driven."
  DEFVAL { disabled }
::= { digitalOutputEntry 50 }

doName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The name of the digital output."
  DEFVAL { "Summary Minor" }
::= { digitalOutputEntry 60 }

doIobNumber OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The I/O board number on which this digital output is located."
  DEFVAL { 1 }
::= { digitalOutputEntry 70 }

doIobDoNumber OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The number of the digital output channel on the I/O board."
  DEFVAL { 1 }
::= { digitalOutputEntry 80 }

doActiveState OBJECT-TYPE
  SYNTAX EnergizeState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Active state of the digital output."
  DEFVAL { energized }
::= { digitalOutputEntry 90 }

doGroup OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The group tag used by software to group related inputs and outputs for display purposes."
  DEFVAL { 0 }
::= { digitalOutputEntry 100 }

doControlTimeoutPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The maximum time for which a digital output can be remotely controlled."
  DEFVAL { 60 }
::= { inputOutput 60 }

doControlTimer OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "All digital control will become automatic at the end of this time."
::= { inputOutput 70 }

battery OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 100 }

batteryCapacity OBJECT-TYPE
  SYNTAX Integer32
  UNITS "Ah"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The rated 10-hour (C10) capacity of the battery. 0 = no battery is installed."
  DEFVAL { 100 }
::= { battery 10 }

cellsPerString OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The number of 2V battery cells per string. Zero means no battery is installed."
  DEFVAL { 24 }
::= { battery 20 }

batteryTemperature OBJECT-TYPE
  SYNTAX Float
  UNITS "°C"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The average of all analog inputs configured as battery temperature inputs."
::= { battery 30 }

batteryCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The total current flowing to/from the batteries. If positive, the battery is being charged. This value may be measured by the battery current shunt(s) if present or calculated from the other system currents."
::= { battery 40 }

batteryType OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The name or type of the battery."
  DEFVAL { "" }
::= { battery 42 }

btrTimeRemaining OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "An estimate of the time remaining until the average cell discharge voltage reaches the configured end voltage. This value is only available during a discharge if the battery has been characterized."
::= { battery 43 }

btrStateOfHealth OBJECT-TYPE
  SYNTAX Percentile8Nan
  UNITS "%"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The health of the battery measured as the estimated C10 capacity at the end of the last discharge as a percentage of the configured capacity. The accuracy of this value depends on the depth of the last discharge and it is only updated if the battery is discharged by at least 25% of its estimated capacity."
  DEFVAL { notAvailable }
::= { battery 44 }

batteryChargeState OBJECT-TYPE
  SYNTAX BatteryChargeState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the current state of the battery."
::= { battery 45 }

batteryStateThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 A"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The threshold used to determine the battery state. If the battery current is greater than the value, the battery state is Charge. If the battery current is less than the negative of this value, the battery state is Discharge. Otherwise, it is Float. A 10% hysteresis applies."
  DEFVAL { 20 }
::= { battery 47 }

endOfChargeAction OBJECT-TYPE
  SYNTAX EndOfChargeAction
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "To ensure that there is no residual AhD error at the end of the charge, AhD can be set to zero after each charge. For new installations, Set Ah Discharged to zero after Equalize and Fast Charge."
  DEFVAL { setAhDischargedToZeroAfterEqualizeAndFastCharge }
::= { battery 48 }

batteryDesign OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  battery 49 }

batteryInstalledDate OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The date That this set of batteries was installed."
::= { batteryDesign 10 }

batteryDesignEndOfLifeDate OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The battery set is designed to last to this date."
::= { batteryDesign 20 }

midPointMonitoring OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  battery 50 }

bsmLockoutPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Time period from when battery ceases discharging or the completion of Fast Charge, Equalize or Battery Test during which Battery Symmetry Monitoring shall not operate."
  DEFVAL { 720 }
::= { midPointMonitoring 20 }

bsmConvergencePeriod OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Time period from start of the Battery Symmetry Monitoring process. During this period the BSM threshold is calculated via linear interpolation using BSM Start Threshold, Stable Threshold and the Time Running."
  DEFVAL { 1440 }
::= { midPointMonitoring 30 }

stringFailRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If the cell point voltage divergence of a battery string is continuously over threshold for this time, the string is deemed faulty."
  DEFVAL { 60 }
::= { midPointMonitoring 40 }

bsmStartThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 %"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Battery Symmetry Monitoring start threshold, defined as percentage of bus voltage."
  DEFVAL { 80 }
::= { midPointMonitoring 50 }

bsmStableThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 %"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Battery Symmetry Monitoring stable threshold, defined as percentage of bus voltage."
  DEFVAL { 40 }
::= { midPointMonitoring 60 }

midpointMonitoringStringTable OBJECT-TYPE
  SYNTAX SEQUENCE OF MidpointMonitoringStringEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for midpointMonitoringString"
 ::= { midPointMonitoring 70 }

midpointMonitoringStringEntry OBJECT-TYPE
  SYNTAX MidpointMonitoringStringEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for midpointMonitoringString"
  INDEX  { midpointMonitoringStringIndex }
 ::= { midpointMonitoringStringTable 1 }

MidpointMonitoringStringEntry ::= SEQUENCE {
  midpointMonitoringStringIndex Unsigned8,
  stringName DisplayString,
  stringState BsmBatteryState,
  firstQuarterPointVoltage Float,
  midPointVoltage Float,
  thirdQuarterPointVoltage Float,
  imbalancePercent Float
}

midpointMonitoringStringIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { midpointMonitoringStringEntry 1 }


stringName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Name of the battery string."
::= { midpointMonitoringStringEntry 10 }

stringState OBJECT-TYPE
  SYNTAX BsmBatteryState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the current state of a battery string."
::= { midpointMonitoringStringEntry 20 }

firstQuarterPointVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "1/4 point voltage reading for the battery string."
::= { midpointMonitoringStringEntry 25 }

midPointVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Midpoint voltage reading for the battery string."
::= { midpointMonitoringStringEntry 30 }

thirdQuarterPointVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "3/4 point voltage reading for the battery string."
::= { midpointMonitoringStringEntry 35 }

imbalancePercent OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 %"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The voltage difference between the first half of the string and the second half of the string expressed in percent of the Bus Voltage."
::= { midpointMonitoringStringEntry 40 }

bsmState OBJECT-TYPE
  SYNTAX BsmState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the current state of the BSM process."
::= { midPointMonitoring 80 }

timeInThisState OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the time period that the current BSM state has been running for."
::= { midPointMonitoring 90 }

currentBsmThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 %"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the current calculated BSM threshold."
::= { midPointMonitoring 100 }

referenceVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Midpoint reference voltage."
::= { midPointMonitoring 105 }

clearStringFail OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command attempts to reset string state."
::= { midPointMonitoring 110 }

batteryTimeRemaining OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  battery 60 }

btrState OBJECT-TYPE
  SYNTAX BtrState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of the battery time remaining algorithm."
::= { batteryTimeRemaining 10 }

btrEndVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V/Cell"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "During a discharge the controller will provide an estimate of the time remaining until the average cell discharge voltage reaches this value."
  DEFVAL { 180 }
::= { batteryTimeRemaining 20 }

btrCharacterizationEndVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V/Cell"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The end voltage that the battery was last characterized to. For the controller to be able to estimate a remaining time, this value must be below the configured end voltage."
::= { batteryTimeRemaining 30 }

btrCharacterizationResult OBJECT-TYPE
  SYNTAX BtrCharacterizationResult
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the result of the last characterization."
::= { batteryTimeRemaining 40 }

btrCharacterizationTime OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "End time of the last characterization."
::= { batteryTimeRemaining 50 }

btrAutomaticCharacterization OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If enabled, the controller will automatically perform a characterization when all necessary conditions have been met for the characterization delay. If the characterization fails, the controller will retry the characterization twice until a valid characterization is obtained. At the end of the third characterization or when successfully characterized, the controller will automatically disable this function."
  DEFVAL { disabled }
::= { batteryTimeRemaining 60 }

btrCharacterizationDelay OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If automatic characterization is enabled, the controller will automatically perform a battery characterization discharge when all conditions have been met for this time."
  DEFVAL { 2880 }
::= { batteryTimeRemaining 70 }

btrCharacterizationStart OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "If automatic characterization is enabled and all conditions for a characterization are met, this will indicate the remaining time until the automatic characterization discharge will start."
::= { batteryTimeRemaining 80 }

btrCharacterizeBattery OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This will cause the controller to discharge the battery at a constant rate until the average cell discharge voltage reaches the configured end voltage."
::= { batteryTimeRemaining 90 }

btrStopBatteryCharacterization OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Stops the current battery characterization discharge."
::= { batteryTimeRemaining 100 }

btrCancelWaiting OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Cancel the waiting period, returning the LVDs to automatic operation."
::= { batteryTimeRemaining 105 }

btrClearBatteryCharacterization OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Clears the battery characterization data. It is recommended to make a backup of the characterization data first."
::= { batteryTimeRemaining 110 }

batteryCharacterizationInstantaneousQuality OBJECT-TYPE
  SYNTAX Percentile8Nan
  UNITS "%"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "During battery characterization this is the power variation from the desired controlled power. Greater than 90% is excepted. Lower values may make the characterization less useful if the characteristic is not repeatable."
::= { batteryTimeRemaining 120 }

batteryCharacterizationDataTable OBJECT-TYPE
  SYNTAX SEQUENCE OF BatteryCharacterizationDataEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for batteryCharacterizationData"
 ::= { battery 62 }

batteryCharacterizationDataEntry OBJECT-TYPE
  SYNTAX BatteryCharacterizationDataEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for batteryCharacterizationData"
  INDEX  { batteryCharacterizationDataIndex }
 ::= { batteryCharacterizationDataTable 1 }

BatteryCharacterizationDataEntry ::= SEQUENCE {
  batteryCharacterizationDataIndex Unsigned8,
  batteryCharacterizationSample Float,
  batteryCharacterizationTime TimeIntervalInMinutes
}

batteryCharacterizationDataIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { batteryCharacterizationDataEntry 1 }


batteryCharacterizationSample OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Stores battery specific data necessary to predict the time remaining during a discharge. It is possible to transfer this data to a different system with the same type of battery, but it may not be as accurate as characterizing that system with its own battery."
  DEFVAL { 0 }
::= { batteryCharacterizationDataEntry 10 }

batteryCharacterizationTime OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Stores battery specific data necessary to predict the time remaining during a discharge. It is possible to transfer this data to a different system with the same type of battery, but it may not be as accurate as characterizing that system with its own battery."
  DEFVAL { 0 }
::= { batteryCharacterizationDataEntry 20 }

siteBackupTimeSettings OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  battery 65 }

siteBackupTimeRemaining OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "During a battery discharge, this is the time remaining until the time on battery has reached the configured Site Backup time. No allowance is made for load, battery state of charge or aging."
::= { siteBackupTimeSettings 10 }

siteBackupTime OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Backup time of the fully charged battery on site. This is a standard value based on the site design battery backup time."
  DEFVAL { 0 }
::= { siteBackupTimeSettings 20 }

solar OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 105 }

dcInputVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The average of the DC Input Voltage."
::= { solar 10 }

solarPowerShareOffset OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The power share offset applied on Solar chargers."
  DEFVAL { 25 }
::= { solar 20 }

solarPower OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 kW"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The total power produced by solar energy sources."
::= { solar 30 }

solarCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The total current produced by solar energy sources."
::= { solar 40 }

solarBaseVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The voltage sent to the Solar converters. This is the Base-Voltage plus the solar offset."
::= { solar 50 }

solarShutdownSmartAlarm OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The smart alarm that will shutdown all solar chargers. The recognition period does not apply."
  DEFVAL { 0 }
::= { solar 60 }

dcdc OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 106 }

dcdcType OBJECT-TYPE
  SYNTAX DcdcHardwareType
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The output voltage type."
::= { dcdc 10 }

dcdcVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The maximum output voltage."
::= { dcdc 20 }

dcdcCurrent OBJECT-TYPE
  SYNTAX Float
  UNITS "A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The total current."
::= { dcdc 30 }

dcdcPower OBJECT-TYPE
  SYNTAX DcPower
  UNITS "W"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The total power."
::= { dcdc 40 }

dcdcHeatsinkTemperature OBJECT-TYPE
  SYNTAX Float
  UNITS "°C"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The highest heatsink temperature."
::= { dcdc 50 }

numberOfRegisteredDcdcConverters OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The number of registered DC-DC converters."
::= { dcdc 60 }

dcdcOutputVoltageSetpoint OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Output voltage setpoint"
::= { dcdc 70 }

dcdc12vOutputVoltageSetpoint OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The 12V DCDC output voltage. Batteries are normally set to 13.75V."
  DEFVAL { 1375 }
::= { dcdc 80 }

dcdc24vOutputVoltageSetpoint OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The 24V DCDC output voltage. Batteries are normally set to 27.33V."
  DEFVAL { 2733 }
::= { dcdc 90 }

dcdc48vOutputVoltageSetpoint OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The 48V DCDC output voltage. Batteries are normally set to 54.4V."
  DEFVAL { 5440 }
::= { dcdc 100 }

dcdcCurrentLimit OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 A"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Current limit"
::= { dcdc 110 }

dcdc12vCurrentLimit OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 A"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Current limit setting must never be set above maximum value stated in the MCU module product data sheet – otherwise damage may occur"
  DEFVAL { 2200 }
::= { dcdc 120 }

dcdc24vCurrentLimit OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 A"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Current limit setting must never be set above maximum value stated in the MCU module product data sheet – otherwise damage may occur"
  DEFVAL { 1100 }
::= { dcdc 130 }

dcdc48vCurrentLimit OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 A"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Current limit setting must never be set above maximum value stated in the MCU module product data sheet – otherwise damage may occur"
  DEFVAL { 550 }
::= { dcdc 140 }

dcdcInputVoltageItem OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The item name of DCDC input voltage. Normally this will be Bus-Voltage. Optionally append ':' then the index."
  DEFVAL { "Bus-Voltage" }
::= { dcdc 150 }

dcdcInputVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The DCDC Input Voltage."
::= { dcdc 160 }

log OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 107 }

logFillMonths OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The maximum number of months that the log can hold. When full the log drops the oldest 4 kB of records. It assumes the bus voltage is never 'off-normal' and the number of events has insignificant impact."
::= { log 10 }

logUsed OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "All Logs are written to the one file. This is the size in bytes of this file."
::= { log 20 }

logItemsTable OBJECT-TYPE
  SYNTAX SEQUENCE OF LogItemsEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for logItems"
 ::= { log 40 }

logItemsEntry OBJECT-TYPE
  SYNTAX LogItemsEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for logItems"
  INDEX  { logItemsIndex }
 ::= { logItemsTable 1 }

LogItemsEntry ::= SEQUENCE {
  logItemsIndex LogItems,
  logInterval TimeIntervalInSeconds,
  useOffNormal Boolean,
  logNumberOfEntries Unsigned16
}

logItemsIndex OBJECT-TYPE
  SYNTAX LogItems
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { logItemsEntry 1 }


logInterval OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The time between each log record."
  DEFVAL { 1800 }
::= { logItemsEntry 10 }

useOffNormal OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "While off normal use the When-Off-Normal interval."
  DEFVAL { false }
::= { logItemsEntry 20 }

logNumberOfEntries OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The number of log entries of this type since power was applied."
::= { logItemsEntry 30 }

offNormalInterval OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The time between each log record when The off normal conditions are met. Smart alarm active or voltage offset active. A value of 0 disables off normal logging."
  DEFVAL { 60 }
::= { log 50 }

offNormalOffsetVoltage OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The Off Normal Log Interval will apply when bus voltage is outside the range: float voltage ± Off Normal Log Offset. Off normal condition transitions is recognized within 10 seconds."
  DEFVAL { 400 }
::= { log 60 }

offNormalSmartAlarm OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "While this Smart Alarm is active logs are off normal."
  DEFVAL { 0 }
::= { log 70 }

isOffNormal OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates which log interval is used."
::= { log 80 }

internal OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 108 }

threadLoadingTable OBJECT-TYPE
  SYNTAX SEQUENCE OF ThreadLoadingEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for threadLoading"
 ::= { internal 10 }

threadLoadingEntry OBJECT-TYPE
  SYNTAX ThreadLoadingEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for threadLoading"
  INDEX  { threadLoadingIndex }
 ::= { threadLoadingTable 1 }

ThreadLoadingEntry ::= SEQUENCE {
  threadLoadingIndex Unsigned16,
  threadName DisplayString,
  threadLoading Float,
  threadPriority ThreadPriority,
  threadStack Integer32,
  threadHeap Integer32,
  threadHighWaterMark Integer32
}

threadLoadingIndex OBJECT-TYPE
  SYNTAX Unsigned16 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { threadLoadingEntry 1 }


threadName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..64))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Name of this thread."
::= { threadLoadingEntry 20 }

threadLoading OBJECT-TYPE
  SYNTAX Float
  UNITS "0.1 %"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The percentage of CPU loading caused by this thread."
::= { threadLoadingEntry 30 }

threadPriority OBJECT-TYPE
  SYNTAX ThreadPriority
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Thread priority. Expect to see high priority thread use least cpu time."
::= { threadLoadingEntry 40 }

threadStack OBJECT-TYPE
  SYNTAX Integer32
  UNITS "B"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The amount of stack used by this thread."
::= { threadLoadingEntry 50 }

threadHeap OBJECT-TYPE
  SYNTAX Integer32
  UNITS "B"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The amount of heap used by this thread."
::= { threadLoadingEntry 60 }

threadHighWaterMark OBJECT-TYPE
  SYNTAX Integer32
  UNITS "B"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The maximum heap used by this thread."
::= { threadLoadingEntry 70 }

preemptive OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The amount of loading scheduler is preemptive rather than co-operative."
::= { internal 20 }

ramFree OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 kB"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The amount of RAM free."
::= { internal 30 }

ramHeap OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 kB"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The amount of heap space used."
::= { internal 40 }

ramStack OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 kB"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The amount of stack space used."
::= { internal 50 }

alarms OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 110 }

alarmStates OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  alarms 5 }

summaryAlarmCritical OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Active if any critical alarm is active."
::= { alarmStates 10 }

summaryAlarmMajor OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Active if any major alarm is active."
::= { alarmStates 20 }

summaryAlarmMinor OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Active if any minor alarm is active."
::= { alarmStates 30 }

resetBatteryTestFailedAlarm OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command attempts to reset Battery Test Failed alarm."
::= { alarmStates 100 }

resetCommsLostAlarm OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command attempts to reset Rectifier Comms Lost alarm and Multiple Rect Comms Lost alarm."
::= { alarmStates 110 }

resetBatteryTestCancelledAlarm OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Reset Battery Test Cancelled alarm."
::= { alarmStates 115 }

resetLowRectifierCapacityAlarm OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command resets Low-Rectifier-Capacity-Alarm."
::= { alarmStates 117 }

alarmInfo OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..100))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Additional alarm information."
::= { alarmStates 130 }

alarmTable OBJECT-TYPE
  SYNTAX SEQUENCE OF AlarmEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for alarm"
 ::= { alarms 10 }

alarmEntry OBJECT-TYPE
  SYNTAX AlarmEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for alarm"
  INDEX  { alarmIndex }
 ::= { alarmTable 1 }

AlarmEntry ::= SEQUENCE {
  alarmIndex SystemAlarm,
  alarmName DisplayString,
  alarmSeverity AlarmSeverity,
  alarmState AlarmActiveState,
  alarmNotes DisplayString,
  alarmDoMappingA RelayMapping,
  alarmDoMappingB RelayMapping,
  alarmTrapSend SendTrap,
  alarmStateChangeTime JulianDateUtc25
}

alarmIndex OBJECT-TYPE
  SYNTAX SystemAlarm
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { alarmEntry 1 }


alarmName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The name of the Alarm."
::= { alarmEntry 20 }

alarmSeverity OBJECT-TYPE
  SYNTAX AlarmSeverity
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The severity level associated with the alarm. Control alarms are not displayed, although any configured digital outputs are still activated."
  DEFVAL { major }
::= { alarmEntry 31 }

alarmState OBJECT-TYPE
  SYNTAX AlarmActiveState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of this alarm."
::= { alarmEntry 40 }

alarmNotes OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..60))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "User notes about this alarm. These notes appear in SNMP traps and can be viewed using DCTools or PowerManagerII."
  DEFVAL { "" }
::= { alarmEntry 50 }

alarmDoMappingA OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Optional digital output activated while this alarm is active."
  DEFVAL { none }
::= { alarmEntry 60 }

alarmDoMappingB OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Optional second digital output activated while this alarm is active."
  DEFVAL { none }
::= { alarmEntry 70 }

alarmTrapSend OBJECT-TYPE
  SYNTAX SendTrap
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If set to true an SNMP trap is sent to every trap receiver with an appropriate trap level whenever this alarm changes state."
  DEFVAL { both }
::= { alarmEntry 80 }

alarmStateChangeTime OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The time when this alarm last changed state."
::= { alarmEntry 90 }

alarmConfiguration OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  alarms 15 }

enableAudibleAlarmIndication OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Enable/disable audible alarm indication."
  DEFVAL { enabled }
::= { alarmConfiguration 10 }

alarmRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "An alarm condition must be continuously active for this period before an alarm is generated."
  DEFVAL { 10 }
::= { alarmConfiguration 20 }

acFailRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "An AC fail condition must be continuously active for this period before an AC Fail alarm is generated."
  DEFVAL { 10 }
::= { alarmConfiguration 30 }

enableHighFloatTracking OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The alarm thresholds will be increased when the operating voltage is raised by a voltage control function."
  DEFVAL { enabled }
::= { alarmConfiguration 40 }

highFloatThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "High Float alarm is activated if the bus voltage is above this value."
  DEFVAL { 5560 }
::= { alarmConfiguration 50 }

enableLowFloatTracking OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The alarm thresholds will be reduced when the operating voltage is lowered by a voltage control function."
  DEFVAL { enabled }
::= { alarmConfiguration 60 }

lowFloatThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Low Float alarm is activated when the bus voltage is below this value."
  DEFVAL { 5280 }
::= { alarmConfiguration 70 }

highLoadThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "High Load alarm is activated if the bus voltage is above this value."
  DEFVAL { 5760 }
::= { alarmConfiguration 80 }

lowLoadThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01 V"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The Low Load alarm is activated if the bus voltage is below this value."
  DEFVAL { 4700 }
::= { alarmConfiguration 90 }

batteryTemperatureHighThreshold OBJECT-TYPE
  SYNTAX Signed8
  UNITS "°C"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Battery Temperature High alarm is activated if the battery temperature is above this value."
  DEFVAL { 50 }
::= { alarmConfiguration 130 }

batteryTemperatureLowThreshold OBJECT-TYPE
  SYNTAX Signed8
  UNITS "°C"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Battery Temperature Low alarm is activated if the battery temperature is below this value."
  DEFVAL { 0 }
::= { alarmConfiguration 140 }

systemOverloadType OBJECT-TYPE
  SYNTAX OverloadAlarmType
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The controller can detect a system overload either based on a simple load threshold or based on a redundancy calculation taking into account individual rectifier capacities."
  DEFVAL { totalCapacity }
::= { alarmConfiguration 170 }

systemOverloadTypeB OBJECT-TYPE
  SYNTAX OverloadAlarmType
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The controller can detect a system overload either based on a simple load threshold or based on a redundancy calculation taking into account individual rectifier capacities."
  DEFVAL { redundancyNPlus2 }
::= { alarmConfiguration 171 }

systemOverloadRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The System Overload alarm activates if the condition (see System Overload Type) has been continuously true for this time. It is normally set to several hours so that the alarm does not operate during a normal battery recharge."
  DEFVAL { 240 }
::= { alarmConfiguration 180 }

systemOverloadThreshold OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The System Overload alarm activates if the load is above this threshold continuously for the System Overload Recognition Period. Measured as a percentage of total rectifier capacity."
  DEFVAL { 85 }
::= { alarmConfiguration 190 }

systemOverloadThresholdB OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The System Overload alarm activates if the load is above this threshold continuously for the System Overload Recognition Period. Measured as a percentage of total rectifier capacity."
  DEFVAL { 85 }
::= { alarmConfiguration 191 }

inDischargeAlarmCondition OBJECT-TYPE
  SYNTAX InDischargeAlarmCondition
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This specifies if AC present is required for In Discharge alarm to be active."
  DEFVAL { always }
::= { alarmConfiguration 200 }

batteryCurrentSensorFailRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If the battery current sensor continuously does not report a valid current for this time, the battery current sensor will be considered failed."
  DEFVAL { 60 }
::= { alarmConfiguration 220 }

lowRectifierCapacityRedundancy OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Redundancy capacity is a percentage of useable rectifier capacity."
  DEFVAL { 20 }
::= { alarmConfiguration 240 }

lowRectifierCapacityAlarmThreshold OBJECT-TYPE
  SYNTAX Unsigned8
  UNITS "%"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Percentage of Low-Rectifier-Capacity to trigger the Low-Rectifier-Capacity alarm."
  DEFVAL { 75 }
::= { alarmConfiguration 250 }

lowRectifierCapacityRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The Low-Rectifier-Capacity-Alarm activates if the condition has been continuously true for this time."
  DEFVAL { 0 }
::= { alarmConfiguration 252 }

rectifierCapacityBalance OBJECT-TYPE
  SYNTAX Percentile8Nan
  UNITS "%"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The proportion of capacity available to the A side of an A+B system. i.e. 100% means the B side is off."
::= { alarmConfiguration 260 }

smartAlarmTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SmartAlarmEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for smartAlarm"
 ::= { alarms 20 }

smartAlarmEntry OBJECT-TYPE
  SYNTAX SmartAlarmEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for smartAlarm"
  INDEX  { smartAlarmIndex }
 ::= { smartAlarmTable 1 }

SmartAlarmEntry ::= SEQUENCE {
  smartAlarmIndex Unsigned8,
  smartAlarmTrapSend SendTrap,
  smartAlarmName DisplayString,
  smartAlarmSeverity AlarmSeverity,
  smartAlarmGroup Unsigned8,
  smartAlarmNotes DisplayString,
  smartAlarmOperator AlarmOperator,
  smartAlarmRecognitionPeriod TimeIntervalInSeconds,
  smartAlarmDeactivationRecognitionPeriod TimeIntervalInSeconds,
  smartAlarmDoMappingA RelayMapping,
  smartAlarmDoMappingB RelayMapping,
  smartAlarmState AlarmActiveState,
  clearSmartAlarm NoData,
  smartAlarmSendEmail EnableState
}

smartAlarmIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { smartAlarmEntry 1 }


smartAlarmTrapSend OBJECT-TYPE
  SYNTAX SendTrap
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If set to true an SNMP trap is sent to every trap receiver with an appropriate trap level whenever this alarm changes state."
  DEFVAL { both }
::= { smartAlarmEntry 10 }

smartAlarmName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..20))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Alarm name."
  DEFVAL { "" }
::= { smartAlarmEntry 20 }

smartAlarmSeverity OBJECT-TYPE
  SYNTAX AlarmSeverity
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The severity level associated with the alarm. Control alarms are not displayed, although any configured digital outputs are still activated."
  DEFVAL { disabled }
::= { smartAlarmEntry 30 }

smartAlarmGroup OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The group number used by SiteManager. The group only affects the display of this item in SiteManager. It does not affect controller operation."
  DEFVAL { 0 }
::= { smartAlarmEntry 35 }

smartAlarmNotes OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..60))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "User notes about this alarm."
  DEFVAL { "" }
::= { smartAlarmEntry 40 }

smartAlarmOperator OBJECT-TYPE
  SYNTAX AlarmOperator
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The logic operator used to combine the states of all sources mapped to this smart alarm."
  DEFVAL { or }
::= { smartAlarmEntry 50 }

smartAlarmRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A smart alarm will become active if the logic for this alarm is continuously true for the recognition time."
  DEFVAL { 10 }
::= { smartAlarmEntry 60 }

smartAlarmDeactivationRecognitionPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "A smart alarm will deactivate if the logic for this alarm is continuously false for the deactivation recognition time."
  DEFVAL { 0 }
::= { smartAlarmEntry 61 }

smartAlarmDoMappingA OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Optional digital output activated while this alarm is active."
  DEFVAL { none }
::= { smartAlarmEntry 70 }

smartAlarmDoMappingB OBJECT-TYPE
  SYNTAX RelayMapping
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Optional digital output activated while this alarm is active."
  DEFVAL { none }
::= { smartAlarmEntry 80 }

smartAlarmState OBJECT-TYPE
  SYNTAX AlarmActiveState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The state of this alarm."
::= { smartAlarmEntry 100 }

clearSmartAlarm OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This will temporarily override the alarm logic and force the alarm to deactivate. If this does not cause the trigger conditions for the alarm to change (for instance through a circular dependency), the alarm will reactivate after its recognition time."
::= { smartAlarmEntry 110 }

smartAlarmSendEmail OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Send email on activation. It is treated as having Critical severity. This is not affected by the actual Smart alarm severity."
  DEFVAL { disabled }
::= { smartAlarmEntry 120 }

smartAlarmCountReset OBJECT-TYPE
  SYNTAX NoData
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This command clears source counts."
::= { alarms 25 }

sourceAlarmTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SourceAlarmEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for sourceAlarm"
 ::= { alarms 30 }

sourceAlarmEntry OBJECT-TYPE
  SYNTAX SourceAlarmEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for sourceAlarm"
  INDEX  { sourceAlarmIndex }
 ::= { sourceAlarmTable 1 }

SourceAlarmEntry ::= SEQUENCE {
  sourceAlarmIndex Unsigned8,
  smartAlarmAlarmSourceTriggerState SourceState,
  smartAlarmAlarmSourceStatus EnableState,
  smartAlarmAlarmSourceMapping Unsigned8,
  smartAlarmAlarmSourceTrigger SourceTrigger,
  smartAlarmAlarmSourceType AlarmType,
  smartAlarmAlarmSourceIndex Unsigned8,
  smartAlarmAlarmSourceActiveCount Unsigned16,
  smartAlarmAlarmSourceInactiveCount Unsigned16,
  smartAlarmAlarmSourceCount Signed16
}

sourceAlarmIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { sourceAlarmEntry 1 }


smartAlarmAlarmSourceTriggerState OBJECT-TYPE
  SYNTAX SourceState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the trigger state of this source alarm."
::= { sourceAlarmEntry 10 }

smartAlarmAlarmSourceStatus OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Enable or disable this smart alarm source."
  DEFVAL { disabled }
::= { sourceAlarmEntry 20 }

smartAlarmAlarmSourceMapping OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Index of smart alarm that this source is mapped to."
  DEFVAL { 0 }
::= { sourceAlarmEntry 30 }

smartAlarmAlarmSourceTrigger OBJECT-TYPE
  SYNTAX SourceTrigger
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Determines whether the source alarm's recognition time (if any) is taken into account. If the source alarm is itself a smart alarm and the sources of one or more smart alarms form a cyclic dependency, then at least one of these sources must be configured to trigger when its source is active. Such cyclic dependencies can be used to build complex logical functions such as an astable flip-flop using the source's recognition times as delays."
  DEFVAL { triggered }
::= { sourceAlarmEntry 41 }

smartAlarmAlarmSourceType OBJECT-TYPE
  SYNTAX AlarmType
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The alarm table this source alarm is taken from."
  DEFVAL { systemAlarm }
::= { sourceAlarmEntry 50 }

smartAlarmAlarmSourceIndex OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The index of the source alarm."
  DEFVAL { 1 }
::= { sourceAlarmEntry 60 }

smartAlarmAlarmSourceActiveCount OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Count of edge transitions required to make this output become active. 1 = output follows input."
  DEFVAL { 1 }
::= { sourceAlarmEntry 70 }

smartAlarmAlarmSourceInactiveCount OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Count of edge transitions required to make this output become inactive. 1 = output follows input."
  DEFVAL { 1 }
::= { sourceAlarmEntry 80 }

smartAlarmAlarmSourceCount OBJECT-TYPE
  SYNTAX Signed16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Transition count."
::= { sourceAlarmEntry 90 }

sourceScheduleTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SourceScheduleEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for sourceSchedule"
 ::= { alarms 40 }

sourceScheduleEntry OBJECT-TYPE
  SYNTAX SourceScheduleEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for sourceSchedule"
  INDEX  { sourceScheduleIndex }
 ::= { sourceScheduleTable 1 }

SourceScheduleEntry ::= SEQUENCE {
  sourceScheduleIndex Unsigned8,
  smartAlarmScheduleSourceIsTriggered SourceState,
  smartAlarmScheduleSourceStatus EnableState,
  smartAlarmScheduleSourceMapping Unsigned8,
  smartAlarmScheduleSourceFirstActivation JulianDateUtc25,
  smartAlarmScheduleSourceDuration TimeIntervalInMinutes,
  smartAlarmScheduleSourceInterval TimeIntervalInMinutes,
  smartAlarmScheduleSourceRepetitions Integer32,
  smartAlarmScheduleSourceNext JulianDateUtc25,
  smartAlarmScheduleSourceEnd JulianDateUtc25
}

sourceScheduleIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { sourceScheduleEntry 1 }


smartAlarmScheduleSourceIsTriggered OBJECT-TYPE
  SYNTAX SourceState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates whether or not this schedule is currently considered true or false."
::= { sourceScheduleEntry 10 }

smartAlarmScheduleSourceStatus OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Enable or disable this smart alarm schedule."
  DEFVAL { disabled }
::= { sourceScheduleEntry 20 }

smartAlarmScheduleSourceMapping OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Index of smart alarm that this schedule is mapped to."
  DEFVAL { 0 }
::= { sourceScheduleEntry 30 }

smartAlarmScheduleSourceFirstActivation OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The date and time at which this schedule will activate for the first time."
::= { sourceScheduleEntry 50 }

smartAlarmScheduleSourceDuration OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This source will become active every Interval after the First Activation and remain active for Duration each time."
  DEFVAL { 60 }
::= { sourceScheduleEntry 60 }

smartAlarmScheduleSourceInterval OBJECT-TYPE
  SYNTAX TimeIntervalInMinutes
  UNITS "min"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "This source will become active every Interval after the First Activation and remain active for Duration each time."
  DEFVAL { 1440 }
::= { sourceScheduleEntry 70 }

smartAlarmScheduleSourceRepetitions OBJECT-TYPE
  SYNTAX Integer32
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The number of times this schedule should activate. After the last activation period, this schedule will remain inactive indefinitely. If set to zero, there is no limit on the number of activations."
  DEFVAL { 0 }
::= { sourceScheduleEntry 80 }

smartAlarmScheduleSourceNext OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The date and time at which this schedule will activate next."
::= { sourceScheduleEntry 90 }

smartAlarmScheduleSourceEnd OBJECT-TYPE
  SYNTAX JulianDateUtc25
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The date and time at which this schedule will deactivate for the last time."
::= { sourceScheduleEntry 100 }

systemValueSourceTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SystemValueSourceEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for systemValueSource"
 ::= { alarms 50 }

systemValueSourceEntry OBJECT-TYPE
  SYNTAX SystemValueSourceEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for systemValueSource"
  INDEX  { systemValueSourceIndex }
 ::= { systemValueSourceTable 1 }

SystemValueSourceEntry ::= SEQUENCE {
  systemValueSourceIndex Unsigned8,
  smartAlarmSystemValueSourceIsTriggered SourceState,
  smartAlarmSystemValueSourceStatus EnableState,
  smartAlarmSystemValueAlarmMapping Unsigned8,
  smartAlarmSystemValueSourceValue SystemValueSourceValue,
  smartAlarmSystemValueSourceValueIndex Unsigned8,
  smartAlarmSystemValueSourceInput Float,
  smartAlarmSystemValueSourceThresholdType ThresholdType,
  smartAlarmSystemValueSourceThreshold Float,
  smartAlarmSystemValueSourceHysteresis Float,
  smartAlarmSystemValueSourceActiveCount Unsigned16,
  smartAlarmSystemValueSourceInactiveCount Unsigned16,
  smartAlarmSystemValueSourceCount Signed16
}

systemValueSourceIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { systemValueSourceEntry 1 }


smartAlarmSystemValueSourceIsTriggered OBJECT-TYPE
  SYNTAX SourceState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates whether or not this analog source is currently considered true or false."
::= { systemValueSourceEntry 10 }

smartAlarmSystemValueSourceStatus OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Enable or disable this smart alarm analog source."
  DEFVAL { disabled }
::= { systemValueSourceEntry 20 }

smartAlarmSystemValueAlarmMapping OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Index of smart alarm that this analog source is mapped to."
  DEFVAL { 0 }
::= { systemValueSourceEntry 30 }

smartAlarmSystemValueSourceValue OBJECT-TYPE
  SYNTAX SystemValueSourceValue
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The system value that is compared with the threshold."
  DEFVAL { busVoltage }
::= { systemValueSourceEntry 40 }

smartAlarmSystemValueSourceValueIndex OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The index of the selected system value."
  DEFVAL { 1 }
::= { systemValueSourceEntry 42 }

smartAlarmSystemValueSourceInput OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Shows the actual value of the selected system value that is compared against the threshold."
::= { systemValueSourceEntry 45 }

smartAlarmSystemValueSourceThresholdType OBJECT-TYPE
  SYNTAX ThresholdType
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Determines whether the threshold is an upper or lower threshold to the system value."
  DEFVAL { high }
::= { systemValueSourceEntry 50 }

smartAlarmSystemValueSourceThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The threshold, the system value is compared to."
  DEFVAL { 0 }
::= { systemValueSourceEntry 60 }

smartAlarmSystemValueSourceHysteresis OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If non-zero, the system value must exceed the threshold +/- this value before the source becomes false again."
  DEFVAL { 0 }
::= { systemValueSourceEntry 65 }

smartAlarmSystemValueSourceActiveCount OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Count of edge transitions required to make this output become active. 1 = output follows input."
  DEFVAL { 1 }
::= { systemValueSourceEntry 70 }

smartAlarmSystemValueSourceInactiveCount OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Count of edge transitions required to make this output become inactive. 1 = output follows input."
  DEFVAL { 1 }
::= { systemValueSourceEntry 80 }

smartAlarmSystemValueSourceCount OBJECT-TYPE
  SYNTAX Signed16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Transition count."
::= { systemValueSourceEntry 90 }

sourceManualTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SourceManualEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for sourceManual"
 ::= { alarms 60 }

sourceManualEntry OBJECT-TYPE
  SYNTAX SourceManualEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for sourceManual"
  INDEX  { sourceManualIndex }
 ::= { sourceManualTable 1 }

SourceManualEntry ::= SEQUENCE {
  sourceManualIndex Unsigned8,
  smartAlarmIsManualSourceTriggered SourceState,
  smartAlarmSourceManualStatus EnableState,
  smartAlarmSourceManualTrigger Boolean,
  smartAlarmSourceManualMapping Unsigned8,
  smartAlarmSourceManualPeriod TimeIntervalInSeconds
}

sourceManualIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { sourceManualEntry 1 }


smartAlarmIsManualSourceTriggered OBJECT-TYPE
  SYNTAX SourceState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates whether or not this manual source is currently considered true or false."
::= { sourceManualEntry 10 }

smartAlarmSourceManualStatus OBJECT-TYPE
  SYNTAX EnableState
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Enable or disable this smart alarm manual."
  DEFVAL { disabled }
::= { sourceManualEntry 20 }

smartAlarmSourceManualTrigger OBJECT-TYPE
  SYNTAX Boolean
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Trigger input for this manual Alarm."
::= { sourceManualEntry 30 }

smartAlarmSourceManualMapping OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Index of smart alarm that this manual is mapped to."
  DEFVAL { 0 }
::= { sourceManualEntry 40 }

smartAlarmSourceManualPeriod OBJECT-TYPE
  SYNTAX TimeIntervalInSeconds
  UNITS "s"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "When non-zero, this source will oscillate at this period. Alarm deactivation and activation recognition times affect on/off time (duty ratio)."
  DEFVAL { 0 }
::= { sourceManualEntry 50 }

smartAlarmNamedItemsTable OBJECT-TYPE
  SYNTAX SEQUENCE OF SmartAlarmNamedItemsEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Table for smartAlarmNamedItems"
 ::= { alarms 70 }

smartAlarmNamedItemsEntry OBJECT-TYPE
  SYNTAX SmartAlarmNamedItemsEntry
  MAX-ACCESS not-accessible
  STATUS current
  DESCRIPTION "Entry for smartAlarmNamedItems"
  INDEX  { smartAlarmNamedItemsIndex }
 ::= { smartAlarmNamedItemsTable 1 }

SmartAlarmNamedItemsEntry ::= SEQUENCE {
  smartAlarmNamedItemsIndex Unsigned8,
  smartAlarmItemMapping Unsigned8,
  smartAlarmItemValue Float,
  smartAlarmItemName DisplayString,
  smartAlarmItemTriggerState SourceState,
  smartAlarmItemThresholdType ThresholdType,
  smartAlarmItemThreshold Float,
  smartAlarmItemHysteresis Float
}

smartAlarmNamedItemsIndex OBJECT-TYPE
  SYNTAX Unsigned8 (0..255)
  MAX-ACCESS accessible-for-notify
  STATUS current
  DESCRIPTION "Automatically generated index object."
::= { smartAlarmNamedItemsEntry 1 }


smartAlarmItemMapping OBJECT-TYPE
  SYNTAX Unsigned8
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Index of smart alarm that this item is mapped to."
  DEFVAL { 0 }
::= { smartAlarmNamedItemsEntry 10 }

smartAlarmItemValue OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Value derived from the item."
::= { smartAlarmNamedItemsEntry 20 }

smartAlarmItemName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The name of the item. Optionally append ':' then the index."
  DEFVAL { "" }
::= { smartAlarmNamedItemsEntry 30 }

smartAlarmItemTriggerState OBJECT-TYPE
  SYNTAX SourceState
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "Indicates the trigger state of this source alarm after comparing its value with its zero value."
::= { smartAlarmNamedItemsEntry 50 }

smartAlarmItemThresholdType OBJECT-TYPE
  SYNTAX ThresholdType
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "Determines whether the threshold is an upper or lower threshold to the system value."
  DEFVAL { high }
::= { smartAlarmNamedItemsEntry 60 }

smartAlarmItemThreshold OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "The threshold, the system value is compared to."
  DEFVAL { 0 }
::= { smartAlarmNamedItemsEntry 70 }

smartAlarmItemHysteresis OBJECT-TYPE
  SYNTAX Float
  UNITS "0.01"
  MAX-ACCESS read-write
  STATUS current
  DESCRIPTION "If non-zero, the system value must exceed the threshold +/- this value before the source becomes false again."
  DEFVAL { 0 }
::= { smartAlarmNamedItemsEntry 80 }

trap700Bindings OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsObjects 111 }

trapAlarmOrigin OBJECT-TYPE
  SYNTAX AlarmType
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The origin of the alarm. This is sent with the SNMP trap."
::= { trap700Bindings 10 }

trapAlarmName OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..40))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The name of the Alarm. This is sent with the SNMP trap."
::= { trap700Bindings 11 }

trapAlarmNumber OBJECT-TYPE
  SYNTAX Unsigned16
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The number for this Alarm. This is sent with the SNMP trap."
::= { trap700Bindings 12 }

trapAdditionalText OBJECT-TYPE
  SYNTAX DisplayString (SIZE(0..60))
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "User notes about this alarm. These notes appear in SNMP traps and can be viewed using DCTools or PowerManagerII."
::= { trap700Bindings 13 }

trapAlarmKeepSeverity OBJECT-TYPE
  SYNTAX TrapAlarmKeepSeverity
  MAX-ACCESS read-only
  STATUS current
  DESCRIPTION "The severity of the alarm. This is sent with the SNMP trap."
::= { trap700Bindings 14 }

rpsTraps OBJECT-IDENTITY
  STATUS current
  DESCRIPTION " "
::= {  rpsSc300 20 }

majorAlarmActive NOTIFICATION-TYPE
  OBJECTS {alarmIndex, alarmName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, alarmNotes}
  STATUS current
  DESCRIPTION "A major alarm is active."
  --#SUMMARY "Major alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY MAJOR
  --#CATEGORY "Error Alarms"
  --&FILTNAME "majorAlarmActive"
  --&ACTIONS { log, clrdups, major }
  --&MATCH   { alarmIndex "$1" }
  --&CLEARS  { "alarmInactive" }
  --&MESG "Major alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 100 }

majorAiHighActive NOTIFICATION-TYPE
  OBJECTS {analogInputIndex, aiName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, aiHighNotes}
  STATUS current
  DESCRIPTION "A major analog input high alarm is active."
  --#SUMMARY "Major alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY MAJOR
  --#CATEGORY "Error Alarms"
  --&FILTNAME "majorAIHighActive"
  --&ACTIONS { log, clrdups, major }
  --&MATCH   { analogInputIndex "$1" }
  --&CLEARS  { "aiHighInactive" }
  --&MESG "Major alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 101 }

majorAiLowActive NOTIFICATION-TYPE
  OBJECTS {analogInputIndex, aiName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, aiLowNotes}
  STATUS current
  DESCRIPTION "A major analog input low alarm is active."
  --#SUMMARY "Major alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY MAJOR
  --#CATEGORY "Error Alarms"
  --&FILTNAME "majorAILowActive"
  --&ACTIONS { log, clrdups, major }
  --&MATCH   { analogInputIndex "$1" }
  --&CLEARS  { "aiLowInactive" }
  --&MESG "Major alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 102 }

majorDiActive NOTIFICATION-TYPE
  OBJECTS {digitalInputIndex, diName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, diNotes}
  STATUS current
  DESCRIPTION "A major digital input alarm is active."
  --#SUMMARY "Major alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY MAJOR
  --#CATEGORY "Error Alarms"
  --&FILTNAME "majorDIActive"
  --&ACTIONS { log, clrdups, major }
  --&MATCH   { digitalInputIndex "$1" }
  --&CLEARS  { "diInactive" }
  --&MESG "Major alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 103 }

majorSmartActive NOTIFICATION-TYPE
  OBJECTS {smartAlarmIndex, smartAlarmName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, smartAlarmNotes}
  STATUS current
  DESCRIPTION "A major smart alarm is active."
  --#SUMMARY "Major alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY MAJOR
  --#CATEGORY "Error Alarms"
  --&FILTNAME "majorSmartActive"
  --&ACTIONS { log, clrdups, major }
  --&MATCH   { smartAlarmIndex "$1" }
  --&CLEARS  { "smartInactive" }
  --&MESG "Major alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 104 }

minorAlarmActive NOTIFICATION-TYPE
  OBJECTS {alarmIndex, alarmName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, alarmNotes}
  STATUS current
  DESCRIPTION "A minor alarm is active."
  --#SUMMARY "Minor alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY MINOR
  --#CATEGORY "Error Alarms"
  --&FILTNAME "minorAlarmActive"
  --&ACTIONS { log, clrdups, minor }
  --&MATCH   { alarmIndex "$1" }
  --&CLEARS  { "alarmInactive" }
  --&MESG "Minor alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 200 }

minorAiHighActive NOTIFICATION-TYPE
  OBJECTS {analogInputIndex, aiName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, aiHighNotes}
  STATUS current
  DESCRIPTION "A minor analog input high alarm is active."
  --#SUMMARY "Minor alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY MINOR
  --#CATEGORY "Error Alarms"
  --&FILTNAME "minorAIHighActive"
  --&ACTIONS { log, clrdups, minor }
  --&MATCH   { analogInputIndex "$1" }
  --&CLEARS  { "aiHighInactive" }
  --&MESG "Minor alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 201 }

minorAiLowActive NOTIFICATION-TYPE
  OBJECTS {analogInputIndex, aiName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, aiLowNotes}
  STATUS current
  DESCRIPTION "A minor analog input low alarm is active."
  --#SUMMARY "Minor alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY MINOR
  --#CATEGORY "Error Alarms"
  --&FILTNAME "minorAILowActive"
  --&ACTIONS { log, clrdups, minor }
  --&MATCH   { analogInputIndex "$1" }
  --&CLEARS  { "aiLowInactive" }
  --&MESG "Minor alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 202 }

minorDiActive NOTIFICATION-TYPE
  OBJECTS {digitalInputIndex, diName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, diNotes}
  STATUS current
  DESCRIPTION "A minor digital input alarm is active."
  --#SUMMARY "Minor alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY MINOR
  --#CATEGORY "Error Alarms"
  --&FILTNAME "minorDIActive"
  --&ACTIONS { log, clrdups, minor }
  --&MATCH   { digitalInputIndex "$1" }
  --&CLEARS  { "diInactive" }
  --&MESG "Minor alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 203 }

minorSmartActive NOTIFICATION-TYPE
  OBJECTS {smartAlarmIndex, smartAlarmName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, smartAlarmNotes}
  STATUS current
  DESCRIPTION "A minor smart alarm is active."
  --#SUMMARY "Minor alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY MINOR
  --#CATEGORY "Error Alarms"
  --&FILTNAME "minorSmartActive"
  --&ACTIONS { log, clrdups, minor }
  --&MATCH   { smartAlarmIndex "$1" }
  --&CLEARS  { "smartInactive" }
  --&MESG "Minor alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 204 }

warningAlarmActive NOTIFICATION-TYPE
  OBJECTS {alarmIndex, alarmName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, alarmNotes}
  STATUS current
  DESCRIPTION "A warning is active."
  --#SUMMARY "Warning %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY WARNING
  --#CATEGORY "Error Alarms"
  --&FILTNAME "warningAlarmActive"
  --&ACTIONS { log, clrdups, warning }
  --&MATCH   { alarmIndex "$1" }
  --&CLEARS  { "alarmInactive" }
  --&MESG "Warning $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 300 }

warningAiHighActive NOTIFICATION-TYPE
  OBJECTS {analogInputIndex, aiName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, aiHighNotes}
  STATUS current
  DESCRIPTION "An analog input high warning is active."
  --#SUMMARY "Warning %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY WARNING
  --#CATEGORY "Error Alarms"
  --&FILTNAME "warningAIHighActive"
  --&ACTIONS { log, clrdups, warning }
  --&MATCH   { analogInputIndex "$1" }
  --&CLEARS  { "aiHighInactive" }
  --&MESG "Warning $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 301 }

warningAiLowActive NOTIFICATION-TYPE
  OBJECTS {analogInputIndex, aiName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, aiLowNotes}
  STATUS current
  DESCRIPTION "An analog input low warning is active."
  --#SUMMARY "Warning %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY WARNING
  --#CATEGORY "Error Alarms"
  --&FILTNAME "warningAILowActive"
  --&ACTIONS { log, clrdups, warning }
  --&MATCH   { analogInputIndex "$1" }
  --&CLEARS  { "aiLowInactive" }
  --&MESG "Warning $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 302 }

warningDiActive NOTIFICATION-TYPE
  OBJECTS {digitalInputIndex, diName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, diNotes}
  STATUS current
  DESCRIPTION "A digital input warning is active."
  --#SUMMARY "Warning %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY WARNING
  --#CATEGORY "Error Alarms"
  --&FILTNAME "warningDIActive"
  --&ACTIONS { log, clrdups, warning }
  --&MATCH   { digitalInputIndex "$1" }
  --&CLEARS  { "diInactive" }
  --&MESG "Warning $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 303 }

warningSmartActive NOTIFICATION-TYPE
  OBJECTS {smartAlarmIndex, smartAlarmName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, smartAlarmNotes}
  STATUS current
  DESCRIPTION "A smart warning is active."
  --#SUMMARY "Warning %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY WARNING
  --#CATEGORY "Error Alarms"
  --&FILTNAME "warningSmartActive"
  --&ACTIONS { log, clrdups, warning }
  --&MATCH   { smartAlarmIndex "$1" }
  --&CLEARS  { "smartInactive" }
  --&MESG "Warning $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 304 }

alarmInactive NOTIFICATION-TYPE
  OBJECTS {alarmIndex, alarmName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, alarmNotes}
  STATUS current
  DESCRIPTION "An alarm has become inactive."
  --#SUMMARY "Alarm %s has become inactive at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY INFORMATIONAL
  --#CATEGORY "Error Alarms"
  --&FILTNAME "alarmInactive"
  --&ACTIONS { log, clrdups, normal }
  --&MATCH   { alarmIndex "$1" }
  --&CLEARS  { "criticalAlarmActive", "majorAlarmActive", "minorAlarmActive", "warningAlarmActive" }
  --&MESG "Alarm $'2 has become inactive at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 400 }

aiHighInactive NOTIFICATION-TYPE
  OBJECTS {analogInputIndex, aiName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, aiHighNotes}
  STATUS current
  DESCRIPTION "An analog input high alarm has become inactive."
  --#SUMMARY "Alarm %s has become inactive at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY INFORMATIONAL
  --#CATEGORY "Error Alarms"
  --&FILTNAME "aiHighInactive"
  --&ACTIONS { log, clrdups, normal }
  --&MATCH   { analogInputIndex "$1" }
  --&CLEARS  { "criticalAIHighActive", "majorAIHighActive", "minorAIHighActive", "warningAIHighActive" }
  --&MESG "Alarm $'2 has become inactive at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 401 }

aiLowInactive NOTIFICATION-TYPE
  OBJECTS {analogInputIndex, aiName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, aiLowNotes}
  STATUS current
  DESCRIPTION "An analog input low alarm has become inactive."
  --#SUMMARY "Alarm %s has become inactive at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY INFORMATIONAL
  --#CATEGORY "Error Alarms"
  --&FILTNAME "aiLowInactive"
  --&ACTIONS { log, clrdups, normal }
  --&MATCH   { analogInputIndex "$1" }
  --&CLEARS  { "criticalAILowActive", "majorAILowActive", "minorAILowActive", "warningAILowActive" }
  --&MESG "Alarm $'2 has become inactive at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 402 }

diInactive NOTIFICATION-TYPE
  OBJECTS {digitalInputIndex, diName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, diNotes}
  STATUS current
  DESCRIPTION "A digital input alarm has become inactive."
  --#SUMMARY "Alarm %s has become inactive at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY INFORMATIONAL
  --#CATEGORY "Error Alarms"
  --&FILTNAME "diInactive"
  --&ACTIONS { log, clrdups, normal }
  --&MATCH   { digitalInputIndex "$1" }
  --&CLEARS  { "criticalDIActive", "majorDIActive", "minorDIActive", "warningDIActive" }
  --&MESG "Alarm $'2 has become inactive at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 403 }

smartInactive NOTIFICATION-TYPE
  OBJECTS {smartAlarmIndex, smartAlarmName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, smartAlarmNotes}
  STATUS current
  DESCRIPTION "A smart alarm has become inactive."
  --#SUMMARY "Alarm %s has become inactive at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY INFORMATIONAL
  --#CATEGORY "Error Alarms"
  --&FILTNAME "smartInactive"
  --&ACTIONS { log, clrdups, normal }
  --&MATCH   { smartAlarmIndex "$1" }
  --&CLEARS  { "criticalSmartActive", "majorSmartActive", "minorSmartActive", "warningSmartActive" }
  --&MESG "Alarm $'2 has become inactive at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 404 }

alarmStatusChange NOTIFICATION-TYPE
  OBJECTS {serialNumber, snmpTrapReceiverIndex}
  STATUS current
  DESCRIPTION "The status of one or more alarms has changed."
  --#SUMMARY "The status of one or more alarms has changed. This trap should only be received by PowerManagerII remote management software."
  --&MESG "$O: The status of one or more alarms has changed. This trap should only be received by PowerManagerII remote management software."
::= { rpsTraps 500 }

criticalAlarmActive NOTIFICATION-TYPE
  OBJECTS {alarmIndex, alarmName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, alarmNotes}
  STATUS current
  DESCRIPTION "A critical alarm is active."
  --#SUMMARY "Critical alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY CRITICAL
  --#CATEGORY "Error Alarms"
  --&FILTNAME "criticalAlarmActive"
  --&ACTIONS { log, clrdups, critical }
  --&MATCH   { alarmIndex "$1" }
  --&CLEARS  { "alarmInactive" }
  --&MESG "Critical alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 600 }

criticalAiHighActive NOTIFICATION-TYPE
  OBJECTS {analogInputIndex, aiName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, aiHighNotes}
  STATUS current
  DESCRIPTION "A critical analog input high alarm is active."
  --#SUMMARY "Critical alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY CRITICAL
  --#CATEGORY "Error Alarms"
  --&FILTNAME "criticalAIHighActive"
  --&ACTIONS { log, clrdups, critical }
  --&MATCH   { analogInputIndex "$1" }
  --&CLEARS  { "aiHighInactive" }
  --&MESG "Critical alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 601 }

criticalAiLowActive NOTIFICATION-TYPE
  OBJECTS {analogInputIndex, aiName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, aiLowNotes}
  STATUS current
  DESCRIPTION "A critical analog input low alarm is active."
  --#SUMMARY "Critical alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY CRITICAL
  --#CATEGORY "Error Alarms"
  --&FILTNAME "criticalAILowActive"
  --&ACTIONS { log, clrdups, critical }
  --&MATCH   { analogInputIndex "$1" }
  --&CLEARS  { "aiLowInactive" }
  --&MESG "Critical alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 602 }

criticalDiActive NOTIFICATION-TYPE
  OBJECTS {digitalInputIndex, diName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, diNotes}
  STATUS current
  DESCRIPTION "A critical digital input alarm is active."
  --#SUMMARY "Critical alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY CRITICAL
  --#CATEGORY "Error Alarms"
  --&FILTNAME "criticalDIActive"
  --&ACTIONS { log, clrdups, critical }
  --&MATCH   { digitalInputIndex "$1" }
  --&CLEARS  { "diInactive" }
  --&MESG "Critical alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 603 }

criticalSmartActive NOTIFICATION-TYPE
  OBJECTS {smartAlarmIndex, smartAlarmName, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, smartAlarmNotes}
  STATUS current
  DESCRIPTION "A critical smart alarm is active."
  --#SUMMARY "Critical alarm %s active at %s, %s, %s. Notes: %s"
  --#ARGUMENTS { 1, 3, 2, 4, 5}
  --#SEVERITY CRITICAL
  --#CATEGORY "Error Alarms"
  --&FILTNAME "criticalSmartActive"
  --&ACTIONS { log, clrdups, critical }
  --&MATCH   { smartAlarmIndex "$1" }
  --&CLEARS  { "smartInactive" }
  --&MESG "Critical alarm $'2 active at $'4,  $'3,  $'5. Notes: $'6"
::= { rpsTraps 604 }

global NOTIFICATION-TYPE
  OBJECTS {trapAlarmNumber, trapAlarmOrigin, trapAlarmName, trapAlarmKeepSeverity, systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact, trapAdditionalText}
  STATUS current
  DESCRIPTION "An alarm has changed state."
::= { rpsTraps 700 }

heartbeat NOTIFICATION-TYPE
  OBJECTS {systemLocation, siteName, siteAddress, siteBuilding, siteRoom, siteContact, siteSupportContact}
  STATUS current
  DESCRIPTION "A Heartbeat trap is sent."
::= { rpsTraps 800 }


END
