-- ****************************************************************************
-- *
-- * Module Name:   HMS033R10 (SCTE 38-6-2005)
-- *
-- * Description:   Implements SCTE-HMS-GEN-MIB for Outside Plant Generators
-- *
-- * 13-Apr-2005    Altered genVBatIgnition and genEnclosureTemperature to
-- *                require an entry in the property table, instead of entries
-- *                in the discrete property table.  Description of
-- *                these objects in R8 was a typographical error.
-- *
-- * 07-Nov-2005    Altered genProtocolVersion per ballot comments
-- *                - 'power supply' changed to 'generator'
-- *                - value of 0x04 changed to 11 to reflect current document
-- *                  revision
-- *                - Object description now mirrors psProtocolVersion MIB object
-- *                  in SCTE-HMS-PS-MIB.
-- *
-- ****************************************************************************

SCTE-HMS-GEN-MIB DEFINITIONS ::= BEGIN


IMPORTS
     OBJECT-TYPE
          FROM RFC-1212
     genIdent
          FROM SCTE-HMS-ROOTS
    ;

-- /*************************************
-- * The Generator Group             *
-- *************************************/


genNumberOfGenerators OBJECT-TYPE
     SYNTAX INTEGER ( 1..8 )
     ACCESS read-only
     STATUS mandatory
     DESCRIPTION
          "Number of generators connected to this NE."
     ::= { genIdent 1 }


genDeviceTable OBJECT-TYPE
     SYNTAX SEQUENCE OF GenDeviceEntry
     ACCESS not-accessible
     STATUS mandatory
     DESCRIPTION
          "Table containing information about the individual 
           generators being monitored"
     ::= { genIdent 2 }
     
genDeviceEntry  OBJECT-TYPE
     SYNTAX GenDeviceEntry
     ACCESS not-accessible
     STATUS mandatory
     DESCRIPTION
          "List of information about each generator being monitored."
     INDEX { genDeviceAddress }
     ::= { genDeviceTable 1 }

GenDeviceEntry ::=
     SEQUENCE
     {
          genDeviceAddress
               INTEGER,

          genProtocolVersion
               INTEGER,

          genSoftwareVersion       
               OCTET STRING,

          genDeviceId
               OCTET STRING,

          genGasHazardOption
               INTEGER,

          genWaterIntrusionOption
               INTEGER,

          genPadShearOption
               INTEGER,

          genDoorOption
               INTEGER,

          genChargerOption
               INTEGER,

          genFuelOption
               INTEGER,

          genVBatIgnitionOption
               INTEGER,

          genTempOption
               INTEGER,

          genGeneratorStatus
               INTEGER,

          genGasHazard
               INTEGER,

          genWaterIntrusion
               INTEGER,

          genPadShear
               INTEGER,

          genEnclosureDoor
               INTEGER,

          genCharger
               INTEGER,

          genFuel
               INTEGER,

          genVBatIgnition
               INTEGER,

          genEnclosureTemperature
               INTEGER,
               
          genEquipmentControl
               INTEGER,     

          genOilOption
               INTEGER,

          genMinorAlarmSupport
               INTEGER,

          genMajorAlarmSupport
               INTEGER,

          genOil
               INTEGER,

          genMinorAlarm
               INTEGER,

          genMajorAlarm
               INTEGER,

          genVendorOID
               OBJECT IDENTIFIER

     }

genDeviceAddress OBJECT-TYPE
     SYNTAX INTEGER ( 1..15 )
     ACCESS read-only
     STATUS mandatory
     DESCRIPTION
          "Index into the psDeviceTable.
           Address of Generator on the RS-485 Path"
     ::= { genDeviceEntry 1 }
     
-- * Generator Configuration                      
                      
genProtocolVersion OBJECT-TYPE
     SYNTAX INTEGER ( 0..255 )
     ACCESS read-only
     STATUS mandatory
     DESCRIPTION
          "Version of the SCTE HMS protocol implemented in the monitored
          equipment.  The 'Protocol Version' implementation will comply 
          with the defined protocol in the SCTE 25-3 (formerly HMS 022)
          document with the corresponding revision number.  
          
          Example:  A generator implementing all commands and responses 
          defined in the SCTE 25-3 revision 1.1 would return a value 
          of 11(decimal) in this field, reflecting major revision 1, 
          minor revision 1."

     ::= { genDeviceEntry 2 }

genSoftwareVersion OBJECT-TYPE
     SYNTAX OCTET STRING (SIZE(8))
     ACCESS read-only
     STATUS mandatory
     DESCRIPTION
          "The contents of this field are vendor specific. The intent
          is to provide a text representation of the power supply or
          generator system software version. Any printable ASCII
          characters ca be  included in this field. NULL (0x00)
          characters are non-printable and are used to fill any unused
          locations following the text data"
           
     ::= { genDeviceEntry 3 }                     
     
genDeviceId OBJECT-TYPE
      SYNTAX OCTET STRING (SIZE(32))
      ACCESS      read-only
      STATUS mandatory
      DESCRIPTION
          "The content of this field is vendor specific. The intent is
          to provide manufacturer and/or product specific ASCII text
          information that will propagate to the manager's  console
          verbatim. The following special characters are defined in
          association with this  field:

          '\'  Used to cause a new line on the console display.
          Example: 'ALPHA\XM2 9015' would appear at the monitoring
          station as :
                   ALPHA
                   XM2 9015"
     ::= { genDeviceEntry 4 }                     

genGasHazardOption OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if gas hazard sensor is installed."

     ::= { genDeviceEntry 5 }  
     
genWaterIntrusionOption OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if water intrusion sensor is installed."

     ::= { genDeviceEntry 6 }   

genPadShearOption OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if pad shear sensor is installed."

     ::= { genDeviceEntry 7 }

genDoorOption OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if separate generator door is installed."

     ::= { genDeviceEntry 8 }
        
genChargerOption OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if charger fail signal is supported."

     ::= { genDeviceEntry 9 }
       
genFuelOption OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if low fuel detection is supported."

     ::= { genDeviceEntry 10 }

genVBatIgnitionOption OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if engine ignition battery voltage is monitored."

     ::= { genDeviceEntry 11 }   

genTempOption   OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if engine enclosure temperature is monitored."

     ::= { genDeviceEntry 12 }
            
-- * Generator Data
            
genGeneratorStatus OBJECT-TYPE
     SYNTAX INTEGER { off(1), runningTest (2), running(3), fail(4) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines the current state of generator operation.
              1 = Off
              2 = Running(test)
              3 = Running
              4 = Fail (A condition preventing the generator
                          from functioning)

            This item requires entries in the discrete property table."

     ::= { genDeviceEntry 13 }
             
             
genGasHazard OBJECT-TYPE
     SYNTAX INTEGER { noAlarm(1), alarm(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "The concentration of hydrocarbon fuel in the 
           generator enclosure has exceeded safe limits. 
           Generator operation is suspended. The alarm 
           is cleared when the sensor is reset via the 
           'Reset Latched Generator Alarms' command.

     This item requires entries in the discrete property table."

     ::= { genDeviceEntry 14 }
        
genWaterIntrusion OBJECT-TYPE
     SYNTAX INTEGER { noAlarm(1), alarm(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Water level within the generator or fuel enclosure
           has exceeded safe limits for generator operation.
           Generator operation is suspended while this alarm 
           is active. The alarm is reset when the water returns
           to a safe level.

     This item requires entries in the discrete property table."

     ::= { genDeviceEntry 15 }

genPadShear OBJECT-TYPE
     SYNTAX INTEGER { noAlarm(1), alarm(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Indicates that the generator or fuel enclosure
           has shifted from its mounting position. Generator 
           operation is suspended. The alarm is reset when
           the unit its returned to its original position.

     This item requires entries in the discrete property table."
            
     ::= { genDeviceEntry 16 }

genEnclosureDoor OBJECT-TYPE
     SYNTAX INTEGER { noAlarm(1), alarm(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Indicates current status of the generator
           and/or auxiliary fuel enclosure door.

     This item requires entries in the discrete property table."

     ::= { genDeviceEntry 17 }
        
genCharger OBJECT-TYPE
     SYNTAX INTEGER { noAlarm(1), alarm(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Indicates if the ignition battery charger is operating.

     This item requires entries in the discrete property table."

     ::= { genDeviceEntry 18 }
        
genFuel OBJECT-TYPE
     SYNTAX INTEGER { noAlarm(1), alarm(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Indicates if the engine's fuel supply is sufficient
           for extended operation. Alarm is reset when fuel is
           replenished.

     This item requires entries in the discrete property table."

     ::= { genDeviceEntry 19 }

genVBatIgnition OBJECT-TYPE
     SYNTAX INTEGER ( 0..65535 )
     ACCESS read-only
     STATUS mandatory
     DESCRIPTION
          "Scaled representation of the generator's
          ignition battery in 1/100 Volts.

     This item requires an entry in the property table."
     
     ::= { genDeviceEntry 20 }

genEnclosureTemperature OBJECT-TYPE
     SYNTAX INTEGER ( -40..80 )
     ACCESS read-only
     STATUS mandatory
     DESCRIPTION
          "Temperature inside generator's enclosure in degrees C. 

     This item requires an entry in the property table."
     
     ::= { genDeviceEntry 21 }

genEquipmentControl OBJECT-TYPE
     SYNTAX INTEGER {
          stopGenerator(1),
          startGenerator(2),
          resetLatchedAlarms(3) }
     ACCESS read-write
     STATUS optional
     DESCRIPTION
          "When written, the appropriate corresponding command action
          is sent to the generator.

          1 = End generator test
          2 = Start generator test
          3 = Reset latched generator alarms which 
          may be preventing a generator start

          This object is intentionally simplistic to allow for maximum
          flexibility.   It IS assumed that the generator has
          sufficient intelligence to prevent an overcrank condition.

          Example 1: From a single SET and corresponding single
          'start' command,  the generator may automatically attempt
          starting 'n' times before giving up.

          Example 2: The transponder may be simple and send only the
          single 'start' command, and the EMS/end user is responsible
          for making 'n' attempts (by performing additional SETs to
          this object.)

          The choice between the methods depends on the specific
          application and vendor equipment."

     ::= { genDeviceEntry 22 }

genOilOption OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if oil pressure is monitored."

     ::= { genDeviceEntry 23 }

genMinorAlarmSupport OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if the minor alarm indicator is supported."

     ::= { genDeviceEntry 24 }

genMajorAlarmSupport OBJECT-TYPE
     SYNTAX INTEGER { notInstalled(1), installed(2) }
     ACCESS read-only              
     STATUS mandatory
     DESCRIPTION
          "Defines if the major alarm indicator is supported."

     ::= { genDeviceEntry 25 }

genOil OBJECT-TYPE
     SYNTAX INTEGER { noAlarm(1), alarm(2) }
     ACCESS read-only              
     STATUS optional
     DESCRIPTION
          "Indicates if the engine's oil is adequate for safe operation. 
          Alarm is reset when the condition returns to normal.

     This item requires entries in the discrete property table."

     ::= { genDeviceEntry 26 }

genMinorAlarm OBJECT-TYPE
     SYNTAX INTEGER { noAlarm(1), alarm(2) }
     ACCESS read-only              
     STATUS optional
     DESCRIPTION
          "Indicates if the generator is indicating a minor alarm.
          The generator requires attention, but does not require an immediate
          visit to the generator.

     This item requires entries in the discrete property table."

     ::= { genDeviceEntry 27 }

genMajorAlarm OBJECT-TYPE
     SYNTAX INTEGER { noAlarm(1), alarm(2) }
     ACCESS read-only              
     STATUS optional
     DESCRIPTION
          "Indicates if the generator is indicating a major alarm.
          The generator requires immediate attention, and should be visited
          immediately to remedy the situation.

     This item requires entries in the discrete property table."

     ::= { genDeviceEntry 28 }

genVendorOID OBJECT-TYPE
     SYNTAX OBJECT IDENTIFIER
     ACCESS read-only
     STATUS optional
     DESCRIPTION 
           "This object provides a means for a vendor to
           point to a vendor specific extension of this MIB."

     ::= { genDeviceEntry 29 }

END 

