ELTEX-MES-HWENVIROMENT-MIB DEFINITIONS ::= BEGIN

-- Title:      Eltex MES Hardware enviroment definition
-- Version:    1.4
-- Date:       17-Apr-2025

IMPORTS
    eltMes                                                  FROM ELTEX-MES
    OBJECT-TYPE                                             FROM SNMPv2-SMI
    RlEnvMonState, rlEnvMonFanStatusEntry,
    rlEnvMonSupplyStatusEntry                               FROM RADLAN-HWENVIROMENT
    TruthValue                                              FROM SNMPv2-TC
    EltMesSyslogAlarmEventId, EltMesSyslogAlarmEventState   FROM ELTEX-MES-SYSLOG-MIB
    InterfaceIndex                                          FROM IF-MIB;

eltMesEnv MODULE-IDENTITY
    LAST-UPDATED "202504170000Z"
    ORGANIZATION "Eltex Enterprise Co, Ltd."
    CONTACT-INFO "www.eltex.nsk.ru"
    DESCRIPTION
        "This private MIB module contains Eltex's hardware enviroment definition."
    REVISION "202504170000Z"
    DESCRIPTION
        "Added eltEnvMonSupplyStatusTable table."
    REVISION "201807270000Z"
    DESCRIPTION
        "Added eltEnvResetButtonMode scalar."
    REVISION "201710110000Z"
    DESCRIPTION
        "Added Eltex's hardware enviroment definition."
    REVISION "201506110000Z"
    DESCRIPTION
        "Initial revision."
    ::= { eltMes 11 }

--------------------------------------------------------------------------------
-- Textual Conventions
--------------------------------------------------------------------------------

EltEnvDryContactState ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Dry contact state."
    SYNTAX      INTEGER {
                  nc-com (1),   -- NC contact is closed, NO contact is opened
                  no-com (2)    -- NC contact is opened, NO contact is closed
                }

EltEnvDryContactTogglingCause ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Cause of dry contact toggling."
    SYNTAX      INTEGER {
                  manual (1),   -- Manual toggling (via CLI)
                  alarm (2)     -- Toggling by alarm event
                }

EltEnvDryContactTogglingActions ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION "Possible actions for dry contact."
    SYNTAX      INTEGER {
                  lock (1),     -- Locking automatic dry contact toggling by alarm event
                  unlock (2),   -- Unlocking automatic dry contact toggling by alarm event
                  toggle (3)    -- Manual dry contact toggling in reverse state
                }

--------------------------------------------------------------------------------
-- eltEnvMonBatteryStatusTable
--------------------------------------------------------------------------------

eltEnvMonBatteryStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltEnvMonBatteryStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The table of battery status maintained by the environmental monitor
             card."
    ::= { eltMesEnv 1 }

eltEnvMonBatteryStatusEntry OBJECT-TYPE
    SYNTAX      EltEnvMonBatteryStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry in the battery status table, representing the status of
             the associated battery maintained by the environmental monitor."
    INDEX { eltEnvMonBatteryStatusIndex }
    ::= { eltEnvMonBatteryStatusTable 1 }

EltEnvMonBatteryStatusEntry ::= SEQUENCE {
    eltEnvMonBatteryStatusIndex   INTEGER,
    eltEnvMonBatteryState         RlEnvMonState,
    eltEnvMonBatteryStatusCharge  INTEGER
}

eltEnvMonBatteryStatusIndex OBJECT-TYPE
    SYNTAX     INTEGER
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "Unique index for the battery being instrumented. This index is for SNMP
         purposes only, and has no intrinsic meaning."
    ::= { eltEnvMonBatteryStatusEntry 1 }

eltEnvMonBatteryState OBJECT-TYPE
    SYNTAX     RlEnvMonState
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "The mandatory state of the battery being instrumented."
    ::= { eltEnvMonBatteryStatusEntry 2 }

eltEnvMonBatteryStatusCharge OBJECT-TYPE
    SYNTAX      INTEGER(0..100 | 255)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Remaining percentage of battery charge. Value of 255 means that this
         parameter is undefined due to battery not supporting this feature or
         because it cannot be obtained in current state."
    ::= { eltEnvMonBatteryStatusEntry 3 }

--
-- eltEnvResetButtonMode
--

eltEnvResetButtonMode OBJECT-TYPE
    SYNTAX  INTEGER { 
    	enable(0),
    	disable(1),
    	reset-only(2)
    	}
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
        "Mode of reset button: 0 - Enable, 1 - disable, 2 - reset-only mode"
    DEFVAL { enable }
    ::= { eltMesEnv 2 }


--
-- eltEnvMonFanStatusTable
--

eltEnvMonFanStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltEnvMonFanStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table of fan status maintained by the environmental monitor"
    ::= { eltMesEnv 3 }

eltEnvMonFanStatusEntry OBJECT-TYPE
    SYNTAX      EltEnvMonFanStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table augments existing RADLAN table rlEnvMonFanStatusTable"
    AUGMENTS { rlEnvMonFanStatusEntry }
    ::= { eltEnvMonFanStatusTable 1 }

EltEnvMonFanStatusEntry ::= SEQUENCE {
    eltEnvMonFanSpeed    INTEGER
}

eltEnvMonFanSpeed OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This parameter represents the speed of the fan in RPM"
    ::= { eltEnvMonFanStatusEntry 1 }

--------------------------------------------------------------------------------
-- Dry contact
--------------------------------------------------------------------------------

eltMesEnvDryContact OBJECT IDENTIFIER ::= { eltMesEnv 4 }

--------------------------------------------------------------------------------
-- eltEnvDryContactConfigTable
--------------------------------------------------------------------------------

eltEnvDryContactConfigTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltEnvDryContactConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table of dry contacts configurations"
    ::= { eltMesEnvDryContact 1 }

eltEnvDryContactConfigEntry OBJECT-TYPE
    SYNTAX      EltEnvDryContactConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the contents of each line in the eltEnvDryContactConfigTable table."
    INDEX { eltEnvDryContactId }
    ::= { eltEnvDryContactConfigTable 1 }

EltEnvDryContactConfigEntry ::= SEQUENCE {
    eltEnvDryContactId                      INTEGER,
    eltEnvDryContactConfigEnabled           TruthValue,
    eltEnvDryContactConfigInitialState      EltEnvDryContactState
}

eltEnvDryContactId OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Dry contact ID."
    ::= { eltEnvDryContactConfigEntry 1 }

eltEnvDryContactConfigEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Enable dry contact."
    DEFVAL { false }
    ::= { eltEnvDryContactConfigEntry 2 }

eltEnvDryContactConfigInitialState OBJECT-TYPE
    SYNTAX      EltEnvDryContactState
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Non-emergency dry contact state."
    DEFVAL { nc-com }
    ::= { eltEnvDryContactConfigEntry 3 }

--------------------------------------------------------------------------------
-- eltEnvDryContactInfoTable
--------------------------------------------------------------------------------

eltEnvDryContactInfoTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltEnvDryContactInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table of information about dry contacts"
    ::= { eltMesEnvDryContact 2 }

eltEnvDryContactInfoEntry OBJECT-TYPE
    SYNTAX      EltEnvDryContactInfoEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the contents of each line in the eltEnvDryContactInfoTable table."
    INDEX { eltEnvDryContactId }
    ::= { eltEnvDryContactInfoTable 1 }

EltEnvDryContactInfoEntry ::= SEQUENCE {
    eltEnvDryContactInfoOperStatus              EltEnvDryContactState,
    eltEnvDryContactInfoTogglingCause           EltEnvDryContactTogglingCause,
    eltEnvDryContactInfoLastAlarmIfIndex        InterfaceIndex,
    eltEnvDryContactInfoLastAlarmEvent          EltMesSyslogAlarmEventId,
    eltEnvDryContactInfoLastAlarmEventState     EltMesSyslogAlarmEventState
}

eltEnvDryContactInfoOperStatus OBJECT-TYPE
    SYNTAX      EltEnvDryContactState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Dry contact operating status."
    ::= { eltEnvDryContactInfoEntry 1 }

eltEnvDryContactInfoTogglingCause OBJECT-TYPE
    SYNTAX      EltEnvDryContactTogglingCause
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Cause of dry contact toggling."
    ::= { eltEnvDryContactInfoEntry 2 }

eltEnvDryContactInfoLastAlarmIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Last interface index."
    ::= { eltEnvDryContactInfoEntry 3 }

eltEnvDryContactInfoLastAlarmEvent OBJECT-TYPE
    SYNTAX      EltMesSyslogAlarmEventId
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Last alarm event ID."
    ::= { eltEnvDryContactInfoEntry 4 }

eltEnvDryContactInfoLastAlarmEventState OBJECT-TYPE
    SYNTAX      EltMesSyslogAlarmEventState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Last alarm event state."
    ::= { eltEnvDryContactInfoEntry 5 }

--------------------------------------------------------------------------------
-- eltEnvDryContactActionTable
--------------------------------------------------------------------------------

eltEnvDryContactActionTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltEnvDryContactActionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table of actions for dry contacts"
    ::= { eltMesEnvDryContact 3 }

eltEnvDryContactActionEntry OBJECT-TYPE
    SYNTAX      EltEnvDryContactActionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines the contents of each line in the eltEnvDryContactActionTable table."
    INDEX { eltEnvDryContactId }
    ::= { eltEnvDryContactActionTable 1 }

EltEnvDryContactActionEntry ::= SEQUENCE {
    eltEnvDryContactTogglingAction      EltEnvDryContactTogglingActions
}

eltEnvDryContactTogglingAction OBJECT-TYPE
    SYNTAX      EltEnvDryContactTogglingActions
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Dry contact action."
    ::= { eltEnvDryContactActionEntry 1 }

--------------------------------------------------------------------------------
-- eltEnvMonSupplyStatusTable
--------------------------------------------------------------------------------

eltEnvMonSupplyStatusTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EltEnvMonSupplyStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table of power supply status maintained by the
         environmental monitor card"
    ::= { eltMesEnv 5 }

eltEnvMonSupplyStatusEntry OBJECT-TYPE
    SYNTAX      EltEnvMonSupplyStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table augments existing RADLAN table rlEnvMonSupplyStatusTable"
    AUGMENTS    { rlEnvMonSupplyStatusEntry }
    ::= { eltEnvMonSupplyStatusTable 1 }

EltEnvMonSupplyStatusEntry ::= SEQUENCE {
    eltEnvMonSupplyTemperature    INTEGER,
    eltEnvMonSupplyVout           INTEGER,
    eltEnvMonSupplyIout           INTEGER,
    eltEnvMonSupplyFanSpeed       INTEGER
}

eltEnvMonSupplyTemperature OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The temperature of the power supply"
    ::= { eltEnvMonSupplyStatusEntry 1 }

eltEnvMonSupplyVout OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The voltage of the power supply"
    ::= { eltEnvMonSupplyStatusEntry 2 }

eltEnvMonSupplyIout OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The current of the power supply"
    ::= { eltEnvMonSupplyStatusEntry 3 }

eltEnvMonSupplyFanSpeed OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The fan speed of the power supply"
    ::= { eltEnvMonSupplyStatusEntry 4 }

END
