-- ****************************************************************************
--
--                      Water Cooled Rack Monitor - (WCRM) MIB
--         Management Information Base for SNMP Network Management
--
--    *********************************************************************
--    Release History
--    Date: August 1, 2005 (Version 1.0)
--    Revised by Charles Cochran - Initial release
--    Date: December 12, 2006 (Version 1.1)
--    Changes: Added MIB-Variable for Waterflow Unit (liter/min or gallon/min),
--             Added Emergency Door Opening (EDO) Thresholds to waterCoolUnitOutputType 
--             Added EDO description to MsgStatus
--	       Added Condensation Pump Running Time and Cycles Thresholds to waterCoolUnitOutputType	
--    Date: July 30, 2007 (Version 1.2)
--    Changes: Added new 'waterCoolUnitSensorType' for MCSS
--	       Addes new 'waterCoolUnitOutputType' for MCSS
--    Date: August 07, 2012 
--    Changes: Added Dewpoint/Doors alarm- and warning bits to 'waterCoolUnitSensorValue'
--             Added new 'waterCoolUnitSensorType' for Dewpoint value
--    Date: October 14, 2013
--    Changes: Added new 'waterCoolUnitSensorType' for MCS100 and MCS200
--	       Added new 'waterCoolUnitOutputType' for MCS100 and MCS200
--    Date: February 08, 2016 (Version 1.21)
--    Changes: Added new 'waterCoolUnitOutputType' for MCS100 and MCS200
--    Date: June 03, 2016 (Version 1.22)
--    Changes: Added new 'waterCoolUnitSensorType' for MCS300
--    Date: January 23, 2017 (Version 1.23)
--    Changes: Added new columns 'internalSensorValueScale' and 'internalSensorScaledValue' to table 'cpqWcrmInternalSensorTable' for MCS300
--             Added new columns 'waterCoolUnitSensorValueScale' and 'waterCoolUnitSensorScaledValue' to table 'cpqWcrmWaterCoolUnitSensorTable' for MCS300
--	       Added new 'waterCoolUnitSensorType' and 'waterCoolUnitOutputType' for MCS300
--    Date: January 15, 2019 (Version 1.24)
--    Changes: Corrected waterCoolUnitSensorType syntax and description numerations to match the SNMP agent
--             Supports the HPE Adaptive Rack Cooling System (ARCS)
--             Removed the sysDescr import line as it is not used
--
--      Copyright 2005-2008 Hewlett-Packard Development Company, L.P.
--      Copyright 2016-2019 Hewlett-Packard Enterprise Development, L.P.
--
--      Hewlett-Packard Company shall not be liable for technical or
--      editorial errors or omissions contained herein. The information in
--      this document is provided "as is" without warranty of any kind and
--      is subject to change without notice. The warranties for HP products
--      are set forth in the express limited warranty statements
--      accompanying such products. Nothing herein should be construed as
--      constituting an additional warranty.
--
--      Confidential computer software. Valid license from HP required for
--      possession, use or copying. Consistent with FAR 12.211 and 12.212,
--      Commercial Computer Software, Computer Software Documentation, and
--      Technical Data for Commercial Items are licensed to the U.S.
--      Government under vendor's standard commercial license.
--
--      Refer to the READMIB.RDM file for more information about the
--      organization of the information in the Compaq Enterprise.
--
--      The Compaq Enterprise number is 232.
--      The ASN.1 prefix to, and including the Compaq Enterprise is:
--           1.3.6.1.4.1.232
--
--    *********************************************************************

-- VARIABLES REQUIRED FOR HP MANAGEMENT
-- ===================================================================================
-- cpqSiProductName (1.3.6.1.4.1.232.2.2.4.2) which is defined in CPQSINFO.MIB.
-- This is the product model name 
--
--  cpqSiProductName OBJECT-TYPE
--         SYNTAX  DisplayString (SIZE (0..255))
--         ACCESS  read-only
--         STATUS  mandatory
--         DESCRIPTION
--             "This device product name."
--         ::= { cpqSiSystemBoard 2 }
-- ===================================================================================
--
-- ===================================================================================
-- cpqHoGUID (1.3.6.1.4.1.232.11.2.10.3) which is defined in CPQHOST.MIB 
--  This field needs to be filled
-- with the unique serial number (16 bytes)
--
-- cpqHoGUID OBJECT-TYPE
--         SYNTAX  OCTET STRING (SIZE (16))
--         ACCESS  read-write
--         STATUS  mandatory 
--         DESCRIPTION
--             "The globally unique identifier of this device."
--
--         ::= { cpqHoSystemStatus 3 }
-- ====================================================================================
--
-- ====================================================================================
-- cpqHoMibStatusArray (1.3.6.1.4.1.232.11.2.10.1) which is defined in CPQHOST.MIB 
-- Pretty complicated to decipher if you do not have the guide.  We only use the first 
-- 4 octets.
--
-- Octet 0 = 00000001 (always)
-- Octet 1 = 00000000 through 00000100 depending on Device H/W Condition below
-- Octet 2 = 00000001 (always)
-- Octet 3 = 00010000 (always decimal 16 see table below)
--
-- For example: With a device with OK status, the values of the 4 octets would be:
--
-- Octet 0 = 0x01 (fixed)
-- Octet 1 = 0x02 (OK overall status)
-- Octet 2 = 0x01 (fixed)
-- Octet 3 = 0x12 (Device type = 18 for Environmental Monitor)
--
-- cpqHoMibStatusArray OBJECT-TYPE
--         SYNTAX  OCTET STRING (SIZE (4..256))
--         ACCESS  read-only
--         STATUS  mandatory
--         DESCRIPTION
--             "The MIB Status Array is an array of MIB status structures. Each
--             structure is made up of 4 octets.
--
--             Array element 0 is the status for all MIBs in the Compaq
--             Enterprise.
--
--             Device H/W Condition (Octet 1)
--                0 - Not available (e.g. Loss/lack of communication between card and device)  
--                1 - Other (unknown) (mapped to device unknown status)
--                2 - OK 		(mapped to device normal status/events)
--                3 - Degraded 	(device warning status/events
--                4 - Failed 		(device critical status/events
--
--             Detailed Type (octet 3)
--                Bits 0-7    Detailed Type, only used if bit 0 in octect 2 is 1.
--
--             Type Values for Bits 0-4 (maps to CIM7 types)
--             Unknown                    =  0
--             Server                     =  1  (yes a duplicate of the server flag)
--             Desktop                    =  2
--             Workstation                =  3
--             Portable                   =  4
--             Router                     =  5
--             Cluster                    =  6
--             Printer                    =  7
--             Switch                     =  8  (network switch)
--             Repeater                   =  9
--             Remote Access Device       = 10
--             Other                      = 11
--             Management Processor       = 12  (rib, RILOE, iLo)
--             Rack                       = 13
--             Enclosure                  = 14
--             KVM Switch                 = 15  (IP enabled keyboard video mouse switch).
--             UPS                        = 16
--             Power Distribution Unit    = 17
--             Environmental Monitor      = 18  (eg Environmental Controller)"
--
--         ::= { cpqHoSystemStatus 1 }
-- ===============================================================================

CPQWCRM-MIB DEFINITIONS ::= BEGIN

   IMPORTS
      compaq					FROM CPQHOST-MIB
      OBJECT-TYPE				FROM RFC-1212
      DisplayString				FROM RFC1213-MIB
      sysName					FROM RFC1213-MIB  
      sysContact				FROM RFC1213-MIB  
      sysLocation				FROM RFC1213-MIB  
      TRAP-TYPE					FROM RFC-1215;

-- Note: uncomment the following "compaq OBJECT IDENTIFIER" and "enterprises" lines then
-- comment out "compaq FROM CPQHOST-MIB" above to compile without the CPQHOST-MIB
--      enterprises             FROM RFC1155-SMI
-- compaq         OBJECT IDENTIFIER ::= { enterprises 232 }

     cpqWcrm        OBJECT IDENTIFIER ::= { compaq 167 }
       cpqWcrmMibRev                 OBJECT IDENTIFIER ::= { cpqWcrm 1 }
       cpqWcrmStatus                 OBJECT IDENTIFIER ::= { cpqWcrm 2 }
         cpqWcrmStatusSensorInternal    OBJECT IDENTIFIER ::= { cpqWcrmStatus  3 }
           cpqWcrmStatusInternalSensors OBJECT IDENTIFIER ::= { cpqWcrmStatusSensorInternal 5 }
           cpqWcrmStatusInternalOutputs OBJECT IDENTIFIER ::= { cpqWcrmStatusSensorInternal 6 }
           cpqWcrmStatusInternalMsg     OBJECT IDENTIFIER ::= { cpqWcrmStatusSensorInternal 7 }
         cpqWcrmStatusSensorWaterCoolUnit    OBJECT IDENTIFIER ::= { cpqWcrmStatus  4 }
           cpqWcrmStatusWaterCoolUnitSensors OBJECT IDENTIFIER ::= { cpqWcrmStatusSensorWaterCoolUnit 5 }
           cpqWcrmStatusWaterCoolUnitOutputs OBJECT IDENTIFIER ::= { cpqWcrmStatusSensorWaterCoolUnit 6 }
           cpqWcrmStatusWaterCoolUnitMsg     OBJECT IDENTIFIER ::= { cpqWcrmStatusSensorWaterCoolUnit 7 }
       cpqWcrmSetup                  OBJECT IDENTIFIER ::= { cpqWcrm 3 }
         cpqWcrmSetupGeneral         OBJECT IDENTIFIER ::= { cpqWcrmSetup 1 }
            cpqWcrmTimerTable1       OBJECT IDENTIFIER ::= { cpqWcrmSetupGeneral 8 }
       cpqWcrmTrapControl            OBJECT IDENTIFIER ::= { cpqWcrm 4 }
         cpqWcrmTraps                OBJECT IDENTIFIER ::= { cpqWcrmTrapControl 7 }
       cpqWcrmControl                OBJECT IDENTIFIER ::= { cpqWcrm 5 }
         

--*****************************************************************************
-- HP Modular Control System Environmental Controller 
--*****************************************************************************
--cpqWcrmMibRev-group
          
        cpqWcrmMibMajRev          OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "The Major Revision level.
               A change in the major revision level represents a major change
               in the architecture of the MIB. A change in the major revision 
               level may indicate a significant change in the information,
               correct interpretation of data may require a MIB document
               with the same major revision level."
              ::= { cpqWcrmMibRev 1 }

        cpqWcrmMibMinRev          OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "The Minor Revision level.
               A change in the minor revision level may represent some minor
               additional support, no changes to any pre-existing information
               has occurred."
              ::= { cpqWcrmMibRev 2 }

        cpqWcrmMibCondition        OBJECT-TYPE
              SYNTAX  INTEGER {
                other (1),
                ok (2),
                degraded (3),
                failed (4),
                configChanged (5)
                }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "The overall condition (status) of the system represented by
               this MIB. 
               (2) OK
               (3) a minor problem, warning condition (yellow LED on Environmental Controller)
               (4) a major problem (red LED on Environmental Controller)
               (5) configuration of sensor units changed or
                   unit detected (red/yellow/green LED on Environmental Controller)"
              ::= { cpqWcrmMibRev 3 }


          
--status-group
        cpqWcrmStatusDeviceEnvironmentalController OBJECT-TYPE
              SYNTAX INTEGER {
                failed(1),
                ok(2)
                }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "General Status of Environmental Controller unit itself
              (1) failed
              (2) OK"
              ::= { cpqWcrmStatus  1 }

        cpqWcrmUnitsConnected OBJECT-TYPE
              SYNTAX INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Number of sensor units connected to the Environmental Controller, Port 1 to 2"
              ::= { cpqWcrmStatus  2 }

        cpqWcrmURL OBJECT-TYPE
              SYNTAX DisplayString (SIZE (0..80)) 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
	      "URL of the management interface in the format http[s]://ipaddr[:port#][/page]"
              ::= { cpqWcrmStatus  7 }


--status sensor units-group

--unit 1
        cpqWcrmInternalTypeOfDevice  OBJECT-TYPE
              SYNTAX INTEGER {
                notAvail (1),
                unitWcrm (2),
		unitIO (3)
                  }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Type of sensor unit connected to port 1"
              ::= { cpqWcrmStatusSensorInternal  1 }

        cpqWcrmInternalText  OBJECT-TYPE
              SYNTAX DisplayString (SIZE (0..10))
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
              "Descriptional text for sensor unit connected to port 1"
              ::= { cpqWcrmStatusSensorInternal 2 }

        cpqWcrmInternalSerial  OBJECT-TYPE
              SYNTAX INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Serialnumber of sensor unit connected to port 1"
              ::= { cpqWcrmStatusSensorInternal  3 }

        cpqWcrmInternalStatus OBJECT-TYPE
              SYNTAX INTEGER {
                ok(1),
                error(2),
                changed(3),
                reset(4),
                timeout(5),
                detected(6),
                notAvail(7),
                lowPower(8)
                }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "General Status sensor unit connected to port 1
              (1) OK
              (2) error, e. g. value overflow
              (3) configuration of sensor unit has changed, confirmation required
              (4) reset from sensor unit to confirm configuration changes
              (5) timeout of sensor unit, confirmation required to unload this unit
              (6) sensor unit detected, needs to be confirmed
              (7) unit is not available
              (8) supply voltage is too low"
              ::= { cpqWcrmStatusSensorInternal  4 }

-- Sensors              
        cpqWcrmInternalNumberOfSensors OBJECT-TYPE
              SYNTAX INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Number of sensors connected to sensor unit 1"
              ::= { cpqWcrmStatusInternalSensors  1 }

-- table with entry for each sensor available on this unit              
        cpqWcrmInternalSensorTable     OBJECT-TYPE
              SYNTAX  SEQUENCE OF CpqWcrmInternalSensorEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Headline of sensor table"
              ::= { cpqWcrmStatusInternalSensors 2 }

        cpqWcrmInternalSensorEntry     OBJECT-TYPE
              SYNTAX  CpqWcrmInternalSensorEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Entries of sensor table"
              INDEX   { internalSensorIndex }
              ::= { cpqWcrmInternalSensorTable 1 }

              CpqWcrmInternalSensorEntry ::=
              SEQUENCE {
              internalSensorIndex
                INTEGER,
              internalSensorType
                INTEGER,
              internalSensorText
                DisplayString (SIZE (0..20)),                
              internalSensorStatus
                INTEGER,
              internalSensorValue
                INTEGER,
              internalSensorSetHigh
                INTEGER,
              internalSensorSetLow
                INTEGER,
              internalSensorSetWarn
                INTEGER,
              internalSensorValueScale
                INTEGER,
              internalSensorScaledValue
                INTEGER                
              }

        internalSensorIndex OBJECT-TYPE
             SYNTAX INTEGER (1..65535)
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Index for the list of value entries. Its value ranges
              between 1 and the value of cpqWcrmInternalNumberOfSensors." 
             ::= { cpqWcrmInternalSensorEntry 1 }

        internalSensorType OBJECT-TYPE
             SYNTAX INTEGER {
                notAvail (1),
                failure (2),
                overflow (3),
                access (4),
                vibration (5),
                motion (6),
                smoke (7),
                airFlow (8),
                type6 (9),
                temperature(10),
                current4to20(11),
                humidity(12),
                userNO (13),
                userNC (14),
                voltOK (17),
                voltage (18),
                fanOK (19),
                leakage (20)
                }
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Type of sensor which is connected to internal sensor to sensor[internalSensorIndex]
              1:        no sensor connected
              2:        sensor failure
              3:        value overflow
              4:        sensor type 1, access sensor
              5:        sensor type 2, vibration sensor
              6:        sensor type 3, motion sensor
              7:        sensor type 4, smoke sensor
              8:        sensor type 5, air flow sensor
              9:        sensor type 6, reserved
              10:       sensor type 7, temperature sensor
              11:       sensor type 8, 4..20mA sensor
              12:       sensor type 9, humidity sensor  
              13:       user sensor with normally opened contact
              14:       user sensor with normally closed contact
              15:       door locked sensor from locking device
              16:       remote unlock sensor (e.g. external keypad)
              17:       voltage sensor, indicates status of main voltage (OK, NOK)
              18:	voltage value
              19:	fan status, from Environmental Controller-FAS-Unit
              20:	leakage sensor"
             ::= { cpqWcrmInternalSensorEntry 2 }

        
        internalSensorText  OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..20))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Descriptional text for each sensor (entry in the table)"
             ::= { cpqWcrmInternalSensorEntry 3 }
              
        internalSensorStatus OBJECT-TYPE
             SYNTAX INTEGER {
             notAvail(1),
             lost(2),
             changed(3),
             ok(4),
             off(5),
             on(6),
             warning(7),
             tooLow(8),
             tooHigh(9)
             }
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Actual status of the sensor"
             ::= { cpqWcrmInternalSensorEntry 4 }

        internalSensorValue OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Value of sensor"
             ::= { cpqWcrmInternalSensorEntry 5 }

        internalSensorSetHigh OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Value for high setpoint of sensor"
             ::= { cpqWcrmInternalSensorEntry 6 }

        internalSensorSetLow OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Value for low setpoint of sensor,
              also used as alarm delay"
             ::= { cpqWcrmInternalSensorEntry 7 }

        internalSensorSetWarn OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Value for warning setpoint of sensor, 
             also used as fan threshold"
             ::= { cpqWcrmInternalSensorEntry 8 }

        internalSensorValueScale OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Scaling factor for scaled sensor value, e. g. 
             -100 -> value has to be divided by 100
             +100 -> value has to be multiplied by 100."
             ::= { cpqWcrmInternalSensorEntry 9 }

        internalSensorScaledValue OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Scaled value of sensor"
             ::= { cpqWcrmInternalSensorEntry 10 }

			 
-- table END            
                
-- Outputs              
        cpqWcrmInternalNumberOfOutputs OBJECT-TYPE
              SYNTAX INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Number of outputs available on internal sensor"
              ::= { cpqWcrmStatusInternalOutputs  1 }

-- table with entry for each output available on this unit              
                
        cpqWcrmInternalOutputTable          OBJECT-TYPE
              SYNTAX  SEQUENCE OF CpqWcrmInternalOutputEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Headline of output table"
              ::= { cpqWcrmStatusInternalOutputs 2 }

        cpqWcrmInternalOutputEntry            OBJECT-TYPE
              SYNTAX  CpqWcrmInternalOutputEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Entries of output table"
              INDEX   { internalOutputIndex }
              ::= { cpqWcrmInternalOutputTable 1 }

              CpqWcrmInternalOutputEntry ::=
              SEQUENCE {
              internalOutputIndex
                INTEGER,
              internalOutputType
                INTEGER,
              internalOutputText
                DisplayString (SIZE (0..20)),                
              internalOutputStatus
                INTEGER,
              internalOutputValue
                INTEGER,
              internalOutputSet
                INTEGER,
              internalOutputConfig
                INTEGER,                
              internalOutputDelay
                INTEGER,
              internalOutputTimeoutAction
                INTEGER
              }

        internalOutputIndex OBJECT-TYPE
             SYNTAX INTEGER (1..65535)
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Index for the list of output entries. Its value ranges
              between 1 and the value of cpqWcrmInternalNumberOfOutputs." 
             ::= { cpqWcrmInternalOutputEntry 1 }

        internalOutputType OBJECT-TYPE
             SYNTAX INTEGER {
                notAvail (1),
                failure (2),
                overflow (3),
                universalOut (4),
                powerOut(5)
                }
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Type of output which is connected to internal sensor to output[internalOutputIndex]
              1:        no output connected
              2:        output failure
              3:        value overflow
              4:        output type 6, universal relay output
              5:        output type 8, power output" 
             ::= { cpqWcrmInternalOutputEntry 2 }

        
        internalOutputText  OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..20))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Descriptional text for each output (entry in the table)"
             ::= { cpqWcrmInternalOutputEntry 3 }
              
        internalOutputStatus OBJECT-TYPE
             SYNTAX INTEGER {
             notAvail(1),
             lost(2),
             changed(3),
             ok(4),
             off(5),
             on(6),
             setOff(7),
             setOn(8)
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Actual status of the output"
             ::= { cpqWcrmInternalOutputEntry 4 }

        internalOutputValue OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Value for output"
             ::= { cpqWcrmInternalOutputEntry 5 }

        internalOutputSet OBJECT-TYPE
             SYNTAX INTEGER {
             off (1),
             on (2),
             lock (3),
             unlock (4),
             unlockDelay (5)
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Command for output"
             ::= { cpqWcrmInternalOutputEntry 6 }

        internalOutputConfig OBJECT-TYPE
             SYNTAX INTEGER {
             disRemote (1),
             enRemote (2)
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Configuration for output
             1: 	disable remote control (e.g. keypad)
             2: 	enable remote control "
             ::= { cpqWcrmInternalOutputEntry 7 }

        internalOutputDelay OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Unsigned Value for delay, 
             after this time the output will fall into the previous state"
             ::= { cpqWcrmInternalOutputEntry 8 }

        internalOutputTimeoutAction OBJECT-TYPE
             SYNTAX INTEGER {
                stay (1),
                off (2),
                on (3)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "State for output if timeout (RS422) occurs"
             ::= { cpqWcrmInternalOutputEntry 9 }

 
-- Messages
              
        cpqWcrmInternalNumberOfMsgs OBJECT-TYPE
              SYNTAX INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Number of messages that can be created with internal sensor"
              ::= { cpqWcrmStatusInternalMsg  1 }

-- table with entry for each alarm available on this unit               
                
        cpqWcrmInternalMsgTable          OBJECT-TYPE
              SYNTAX  SEQUENCE OF CpqWcrmInternalMsgEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Headline of message table"
              ::= { cpqWcrmStatusInternalMsg 2 }

        cpqWcrmInternalMsgEntry            OBJECT-TYPE
              SYNTAX  CpqWcrmInternalMsgEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Entries of message table"
              INDEX   { internalMsgIndex }
              ::= { cpqWcrmInternalMsgTable 1 }

              CpqWcrmInternalMsgEntry ::=
              SEQUENCE {
              internalMsgIndex
                INTEGER, 
              internalMsgText
                DisplayString (SIZE (0..20)),                
              internalMsgStatus
                INTEGER,                
              internalMsgRelay
                INTEGER,
              internalMsgBeeper
                INTEGER,
              internalMsgTrap1
                INTEGER,
              internalMsgTrap2
                INTEGER,
              internalMsgTrap3
                INTEGER,
              internalMsgTrap4
                INTEGER,                 
              internalMsgReset
                INTEGER
              }

        internalMsgIndex OBJECT-TYPE
             SYNTAX INTEGER (1..65535)
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Index for the list of message entries. Its value ranges
              between 1 and the value of cpqWcrmInternalNumberOfMsgs." 
             ::= { cpqWcrmInternalMsgEntry 1 }

       internalMsgText  OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..20))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Descriptional text for each message (entry in the table)"
             ::= { cpqWcrmInternalMsgEntry 2 }
              
        internalMsgStatus OBJECT-TYPE
             SYNTAX INTEGER {
             notAvail(1),
             configChanged(2),
             error(3),
             ok(4),
             alarm(5),
             warning(6),
             tooLow(7),
             tooHigh(8),
             setOff(9),
             setOn(10)
              }
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Actual message status
             1: not available
             2: configuration has changed (sensor new, changed, lost)
             3: error
             4: OK
             5: alarm, e.g. smoke, vibration...
             6: warning of analog value, value reached warning threshold
             7: analog value too low, value reached low threshold
             8: analog value too high, value reached high threshold
             9: output is set to ON
             10: output is set to OFF"
             ::= { cpqWcrmInternalMsgEntry 3 }
        
        internalMsgRelay OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Setup of Alarm relay for this message/alarm
              1:        no switching of alarm relay             
              2:        switching of alarm relay" 
             ::= { cpqWcrmInternalMsgEntry 4 }

        internalMsgBeeper OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Setup of Alarm beeper for this alarm
              1:        no audible alarm
              2:        audible alarm" 
             ::= { cpqWcrmInternalMsgEntry 5 }

        internalMsgTrap1 OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Trap receiver 1 activated"
             ::= { cpqWcrmInternalMsgEntry 6 }

        internalMsgTrap2 OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Trap receiver 2 activated"
             ::= { cpqWcrmInternalMsgEntry 7 }
 
        internalMsgTrap3 OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Trap receiver 3 activated"
             ::= { cpqWcrmInternalMsgEntry 8 }

        internalMsgTrap4 OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Trap receiver 4 and Event Logging activated"
             ::= { cpqWcrmInternalMsgEntry 9 }

        internalMsgReset OBJECT-TYPE
             SYNTAX INTEGER {
                auto (1),
                manual (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Reset of this alarm
             1:		auto
             2:		manual, alarm needs confirmation, e. g. with 'C' key"
             ::= { cpqWcrmInternalMsgEntry 10 }
-- table internal sensors unit END             
-- waterCoolUnit
        cpqWcrmWaterCoolUnitTypeOfDevice  OBJECT-TYPE
              SYNTAX INTEGER {
                notAvail (1),
                unitWcrm (2),
		unitIO (3)
               }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Type of sensor unit connected to port 2"
              ::= { cpqWcrmStatusSensorWaterCoolUnit  1 }

        cpqWcrmWaterCoolUnitText  OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..10))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Descriptional text for sensor unit connected to port 2"
             ::= { cpqWcrmStatusSensorWaterCoolUnit 2 }

        cpqWcrmWaterCoolUnitSerial  OBJECT-TYPE
              SYNTAX INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Serialnumber of sensor unit connected to port 2"
              ::= { cpqWcrmStatusSensorWaterCoolUnit  3 }

        cpqWcrmWaterCoolUnitStatus OBJECT-TYPE
              SYNTAX INTEGER {
                ok(1),
                error(2),
                changed(3),
                reset(4),
                timeout(5),
                detected(6),
                notAvail(7),
                lowPower(8)
                }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "General Status sensor unit connected to port 2
              (1) OK
              (2) error
              (3) configuration of sensor unit has changed, confirmation required
              (4) reset from sensor unit to confirm configuration changes
              (5) timeout of sensor unit, confirmation required
              (6) sensor unit detected, needs to be confirmed
              (8) supply voltage is too low"              
              ::= { cpqWcrmStatusSensorWaterCoolUnit  4 }

-- Water Cool Unit table

-- Sensors              
        cpqWcrmWaterCoolUnitNumberOfSensors OBJECT-TYPE
              SYNTAX INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Number of sensors connected to water cool unit"
              ::= { cpqWcrmStatusWaterCoolUnitSensors  1 }

-- table with entry for each sensor available on this unit              
        cpqWcrmWaterCoolUnitSensorTable          OBJECT-TYPE
              SYNTAX  SEQUENCE OF CpqWcrmWaterCoolUnitSensorEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Headline of sensor table"
              ::= { cpqWcrmStatusWaterCoolUnitSensors 2 }

        cpqWcrmWaterCoolUnitSensorEntry            OBJECT-TYPE
              SYNTAX  CpqWcrmWaterCoolUnitSensorEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Entries of sensor table"
              INDEX   { waterCoolUnitSensorIndex }
              ::= { cpqWcrmWaterCoolUnitSensorTable 1 }

              CpqWcrmWaterCoolUnitSensorEntry ::=
              SEQUENCE {
              waterCoolUnitSensorIndex
                INTEGER,
              waterCoolUnitSensorType
                INTEGER,
              waterCoolUnitSensorText
                DisplayString (SIZE (0..20)),                
              waterCoolUnitSensorStatus
                INTEGER,
              waterCoolUnitSensorValue
                INTEGER,
              waterCoolUnitSensorSetHigh
                INTEGER,
              waterCoolUnitSensorSetLow
                INTEGER,                 
              waterCoolUnitSensorSetWarn
                INTEGER,
              waterCoolUnitSensorValueScale
                INTEGER,
              waterCoolUnitSensorScaledValue
                INTEGER				
              }

        waterCoolUnitSensorIndex OBJECT-TYPE
             SYNTAX INTEGER (1..65535)
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Index for the list of value entries. Its value ranges
              between 1 and the value of cpqWcrmWaterCoolUnitNumberOfSensors." 
             ::= { cpqWcrmWaterCoolUnitSensorEntry 1 }

        waterCoolUnitSensorType OBJECT-TYPE
             SYNTAX INTEGER {
		-- Types 1-3 are not reported by the agent and are removed so
		-- that tempIn becomes the first object in the table. Uncomment
		-- the next three lines for older MCS firmware if an error occurs.
		-- notAvail (1), 
		-- failure (2),
		-- overflow (3),
		tempIn (4), -- first object of the table. 
		warning (8), -- 5-8 are reordered to match the agent's index order   
		alarm (7), 
		heatFlow (6), 
		tempOut (5), -- () 
		rpmFan1 (9), 
		rpmFan2 (10), 
		rpmFan3 (11), 
		fanSpeed (12), 
		tempIn1 (13), 
		tempOut1 (14), 
		tempIn2 (15), 
		tempOut2 (16), 
		tempIn3 (17), 
		tempOut3 (18), 
		tempWaterIn (19), 
		tempWaterOut (20), 
		waterFlow (21), 
		valve (22), -- (MCS:status of valve: open, closed; MCSS: setpoint valve (%)..) 
		status (23),
		condensateDuration (24), 
		condensateCycles (25),
		rpmFan4 (26), 
		rpmFan5 (27), 
		rpmFan6 (28),
		transfSwitch(29),
		valveActValue(30),
		dewPointValue(31),
		foundFans(32),
		isolationValveInlet(33),
		isolationValveFacility(34),
		isolationValveInfrastructure(35),
		controlValveFacility (36),
		controlValveInfrastructure (37),
		tempIn4 (38),
		tempIn5 (39),
		tempIn6 (40),
		waterPressureSupply (41),
		waterPressureReturn (42),
		airDiffPressure1 (43),
		airDiffPressure2 (44),
		acInput1 (45),
		acInput2 (46),
		frontDoor (47),
		rearDoor (48),
		leakMidLevel (49),
		leakOverflow1 (50),
		leakOverflow2 (51),
		condensate (52),
		dewPointValue2 (53),
		humidityValue (54),
		humidityValue2 (55),
		pump (56),
		tempeValue1 (57),
		tempeValue2 (58),
		dewPointAverage(59),
		percentFan1 (60), 
		percentFan2 (61), 
		percentFan3 (62),
		percentFan4 (63), 
		percentFan5 (64), 
		percentFan6 (65)
                }
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Type of sensor which is connected to internal sensor to sensor[internalSensorIndex]
		1: no sensor connected -- Type 1 is not reported by the agent in this table. 
		2: sensor failure      -- Type 2 is not reported by the agent in this table. 
		3: value overflow      -- Type 3 is not reported by the agent in this table. 
		4: average temperature of air inlet to rack, average or max/min from each HEX
		5: average temperature of air outlet from rack, average or max/min from each HEX
		6: heatflow sensor
		7: alarm: 
			Bit 0: Leakage
			Bit 1: IIC Failure
			Bit 5: Front and Rear Door opened
		8: warning:
			Bit 0..2:   Fan Tach 1..3
			Bit 3,4:    Temp. sensor HEX1 In,Out
			Bit 5,6:    Temp. sensor HEX2 In,Out
			Bit 7,8:    Temp. sensor HEX3 In,Out
			Bit 9:      Air temp. sensor
			Bit 10..12: IIC failure, HEX1..3
			Bit 13:     Waterflow low
			Bit 14,15:  Watertemp. In,Out
			Bit 16:	    Waterflow sensor fail.
			Bit 17:     Magnetic valve fail.
			Bit 18:     Leakdetector fail.
			Bit 19:     Uneven heat load
			Bit 20:     Condensation Pump Cycles > Max
			Bit 21:	    Condensation Pump Running Time > Max
			Bit 22..24: Fan Tach 4..6
			Bit 25:     Temperature Warning air inlet
			Bit 27:     Dewpoint warning
			Bit 28:     Humidity sensor failed
			Bit 29:     Front door access sensor failed
			Bit 30:     Rear door access sensor failed
		9: rpm speed of Fan1
		10: rpm speed of Fan2
		11: rpm speed of Fan3
		12: fanSpeed setpoint, calculated from average temperatures 
		13: temperature air inlet to rack, HEX 1
		14: temperature air outlet from rack, HEX 1
		15: temperature air inlet to rack, HEX 1
		16: temperature air outlet from rack, HEX 1
		17: temperature air inlet to rack, HEX 1
		18: temperature air outlet from rack, HEX 1
		19: water temperature In
		20: water temperature Out
		21: water Flow
		22: water valve status: MCS:0: Valve opened, 1: valve closed; MCSS: valve setpoint (%)
		23: status: Bit 0..Bit 2: fan module 1..3 available
			Bit 3: water module available
		24: condensation pump number of seconds on counter (last operating time) 
		25: condensation pump on/off cycle counter
		26: rpm speed of Fan4
		27: rpm speed of Fan5
		28: rpm speed of Fan6
		29: status of transfer switch, 1=AC1, 2=AC2, 3=AC1 and AC2
		30: water valve actual value (%)
		31: dewpoint value
		32: found fans: Bit 0..5: Fan 1.. Fan 6
		33: isolation valve inlet position
		34: isolation valve facility position
		35: isolation valve infrastructure position
		36: control valve facility position
		37: control valve infrastructure position
		38: temperature 4 air inlet to rack
		39: temperature 5 air inlet to rack
		40: temperature 6 air inlet to rack
		41: supply side water pressure
		42: return side water pressure
		43: air differential pressure 1
		44: air differential pressure 2
		45: AC input 1
		46: AC input 2
		47: front door status
		48: rear door status
		49: leakage level middle
		50: leakage overflow 1
		51: leakage overflow 2
		52: condensate status
		53: dew point value 2
		54: humidity value 1
		55: humidity value 2
		56: condensation/leakage pump running			  
		57: temperature value 1
		58: temperature value 2
		59: Dewpoint value average
		60: percent speed of Fan1
		61: percent speed of Fan2
		62: percent speed of Fan3			  
		63: percent speed of Fan4
		64: percent speed of Fan5
		65: percent speed of Fan6			  
			  "
             ::= { cpqWcrmWaterCoolUnitSensorEntry 2 }
        
        waterCoolUnitSensorText  OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..20))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Descriptional text for each sensor (entry in the table)"
             ::= { cpqWcrmWaterCoolUnitSensorEntry 3 }
              
        waterCoolUnitSensorStatus OBJECT-TYPE
             SYNTAX INTEGER {
             notAvail(1),
             lost(2),
             changed(3),
             ok(4),
             off(5),
             on(6),
             warning(7),
             tooLow(8),
             tooHigh(9)
             }
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Actual status of the sensor"
             ::= { cpqWcrmWaterCoolUnitSensorEntry 4 }

        waterCoolUnitSensorValue OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Value of sensor added to traps, msg index also added (waterCoolUnitMsgIndex)
              
              If msg index = 1, 5 or 6
              This value represents the actual Server Intake Temperature.
              
              If msg index = 2:
              This value represents the bit coded warning condition
		Bit 0:   Top Fan Module Failed
		Bit 1:   Middle Fan Module Failed
		Bit 2:   Bottom Fan Module Failed
		Bit 3:   Top HEX Intake Air Temperature Sensor to Server Failed
		Bit 4:   Top HEX Exhaust Air Temperature Sensor from Server Failed
		Bit 5:   Middle HEX Intake Air Temperature Sensor to Server Failed
		Bit 6:   Middle HEX Exhaust Air Temperature Sensor from Server Failed
		Bit 7:   Bottom HEX Intake Air Temperature Sensor to Server Failed
		Bit 8:   Bottom HEX Exhaust Air Temperature Sensor from Server Failed
		Bit 9:   Air Temperature Sensor Failed
		Bit 10:  Top Fan not installed
		Bit 11:  Middle Fan not installed
		Bit 12:  Bottom Fan not installed
		Bit 13:  Waterflow low
		Bit 14:  Water Unit Temperature Input Out of Range
		Bit 15:  Water Unit Temperature Output Out of Range
		Bit 16:	 Waterflow Sensor Value Out of Range
		Bit 17:  Water Valve Failed
		Bit 18:  Leakdetector Failed
		Bit 19:  Heat Load Warning
		Bit 20:  The Condensation Pump has exceeded the max. number of cycles
		Bit 21:	 The Condensation Pump has exceeded the max. Running Time
		Bit 27:  Dewpoint warning
		Bit 28:  Humidity sensor failed
		Bit 29:  Front door access sensor failed
		Bit 30:  Rear door access sensor failed
		
	      If msg index = 3:
	      This value represents the bit coded alarm condition
        	Bit 0:	 Leakage Detected
        	Bit 1:   Comm. Failure IIC
		Bit 5:   Front and Rear Door Opened"
	     ::= { cpqWcrmWaterCoolUnitSensorEntry 5 }

        waterCoolUnitSensorSetHigh OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Value for high setpoint of sensor"
             ::= { cpqWcrmWaterCoolUnitSensorEntry 6 }

        waterCoolUnitSensorSetLow OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Value for low setpoint of sensor,
              also used as alarm delay"
             ::= { cpqWcrmWaterCoolUnitSensorEntry 7 }

        waterCoolUnitSensorSetWarn OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Value for warning setpoint of sensor,
              also used as fan threshold"
             ::= { cpqWcrmWaterCoolUnitSensorEntry 8 }

        waterCoolUnitSensorValueScale OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Scaling factor for scaled sensor value to get the unscaled value, e. g. 
             -100 -> waterCoolUnitSensorScaledValue has to be divided by 100
             +100 -> waterCoolUnitSensorScaledValue has to be multiplied by 100."
  	     ::= { cpqWcrmWaterCoolUnitSensorEntry 9 }
             
        waterCoolUnitSensorScaledValue OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Scaled value of sensor"
             ::= { cpqWcrmWaterCoolUnitSensorEntry 10 }
			 
-- table END            
                
-- Outputs              
        cpqWcrmWaterCoolUnitNumberOfOutputs OBJECT-TYPE
              SYNTAX INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Number of outputs available on sensor water cool unit"
              ::= { cpqWcrmStatusWaterCoolUnitOutputs  1 }

-- table with entry for each output available on this unit              
                
        cpqWcrmWaterCoolUnitOutputTable          OBJECT-TYPE
              SYNTAX  SEQUENCE OF CpqWcrmWaterCoolUnitOutputEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Headline of output table"
              ::= { cpqWcrmStatusWaterCoolUnitOutputs 2 }

        cpqWcrmWaterCoolUnitOutputEntry            OBJECT-TYPE
              SYNTAX  CpqWcrmWaterCoolUnitOutputEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Entries of output table"
              INDEX   { waterCoolUnitOutputIndex }
              ::= { cpqWcrmWaterCoolUnitOutputTable 1 }

              CpqWcrmWaterCoolUnitOutputEntry ::=
              SEQUENCE {
              waterCoolUnitOutputIndex
                INTEGER,
              waterCoolUnitOutputType
                INTEGER,
              waterCoolUnitOutputText
                DisplayString (SIZE (0..20)),                
              waterCoolUnitOutputStatus
                INTEGER,
              waterCoolUnitOutputValue
                INTEGER,
              waterCoolUnitOutputSet
                INTEGER,
              waterCoolUnitOutputConfig
                INTEGER,                
              waterCoolUnitOutputDelay
                INTEGER,
              waterCoolUnitOutputTimeoutAction
                INTEGER
              }

        waterCoolUnitOutputIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
              "Index for the list of output entries. Its value ranges
               between 1 and the value of cpqWcrmWaterCoolUnitNumberOfOutputs." 
              ::= { cpqWcrmWaterCoolUnitOutputEntry 1 }

        waterCoolUnitOutputType OBJECT-TYPE
             SYNTAX INTEGER {
		notAvail (1),
		failure (2),
		overflow (3),
		setpoint (4),
		hysteresis (5),
		command (6),
		controlMode (7),
		fanSpeedMin (8),
		dTmin (9),
		dTmax(10),
		cpWatert(11),
		setHeatload(12),
		setEdoFlow(13),
		setEdoHeat(14),
		setCondCycles(15),
		setCondRun(16),
		doorControl(17),
		pidContrKP(18),
		pidContrKI(19),
		pidContrKD(20),
		pidSampleTime(21),
		installedFans(22),
		offsetCW(23),
		offsetHW(24),
		valveControlMode(25),
		isolationValveInletManual(26),
		isolationValveFacilityManual(27),
		isolationValveInfrastructureManual(28),
		controlValveFacilityManual(29),
		controlValveInfrastructureManual(30),
		fanControlMode(31),
		fan1Manual(32),
		fan2Manual(33),
		fan3Manual(34),
		fan4Manual(35),
		setpointAirDifPressure(36),
		pidContrKPFan(37),
		pidContrKIFan(38),
		pidContrKDFan(39),
		pidSampleTimeFan(40),				
		dewpointOffset(41),
		maxItAirTemperature(42),
		dewpointControlMode(43)
                }
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Type of output which is connected to water cool unit to output[waterCoolUnitOutputIndex]
		1: no output connected
		2: output failure   
		3: value overflow
		4: water valve setpoint
		5: water valve hysteresis
		6: command for manual control
		7: Flow Meter Model, 0=SIKA, 1=Chemline
		8: minimum fan speed
		9: min delta T, used for fan control
		10: max delta T, used for fan control 
		11: specific heat capacity
		12: setpoint heatload warning
		13: setpoint Water Flow Loss Emergency Door Opening
		14: setpoint High Temperature Emergency Door Opening
		15: setpoint Condensation Pump Cycles (Warning)
		16: setpoint Condensation Pump Running Time (Warning)
		17: command for door opening, 0=lock door, 1=unlock door
		18: KP parameter for PID controller
		19: KI parameter for PID controller
		20: KD parameter for PID controller
		21: sampling time PID controller
		22: number of installed fans
		23: offset for cold water temperature
		24: offset for hot water temperature
		25: valve control mode
		26: isolation valve inlet, manual control
		27: isolation valve facility, manual control
		28: isolation valve infrastructure, manual control
		29: control valve facility, manual setting
		30: control valve infrastructure, manual setting
		31: fan control mode
		32: fan 1, manual setting
		33: fan 2, manual setting
		34: fan 3, manual setting
		35: fan 4: manual setting
		36: setpoint for air difference pressure (fan control), 
		  this value is scaled with 1000 
		  (e. g. 0.1 inch H2O are entered as 100)
		37: KP parameter for Fan PID controller
		38: KI parameter for Fan PID controller
		39: KD parameter for Fan PID controller
		40: sampling time Fan PID controller			  
		41: dewpoint Offset for dewpoint average Value
		42: max IT Air Temperature, Limit for dewpoint control
		43: dewpoint control mode, 0 = off, 1 = On			  
			  "
            ::= { cpqWcrmWaterCoolUnitOutputEntry 2 }

        
        waterCoolUnitOutputText  OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..20))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Descriptional text for each output (entry in the table)"
             ::= { cpqWcrmWaterCoolUnitOutputEntry 3 }
              
        waterCoolUnitOutputStatus OBJECT-TYPE
             SYNTAX INTEGER {
             notAvail(1),
             lost(2),
             changed(3),
             ok(4),
             off(5),
             on(6),
             setOff(7),
             setOn(8)
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Actual status of the output"
             ::= { cpqWcrmWaterCoolUnitOutputEntry 4 }

        waterCoolUnitOutputValue OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Signed value for output"
             ::= { cpqWcrmWaterCoolUnitOutputEntry 5 }

        waterCoolUnitOutputSet OBJECT-TYPE
             SYNTAX INTEGER {
             off (1),
             on (2),
             lock (3),
             unlock (4),
             unlockDelay (5)
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Command for output"
             ::= { cpqWcrmWaterCoolUnitOutputEntry 6 }

        waterCoolUnitOutputConfig OBJECT-TYPE
             SYNTAX INTEGER {
             disRemote (1),
             enRemote (2)
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Configuration for output
             1: 	disable remote control (e.g. keypad)
             2: 	enable remote control "
             ::= { cpqWcrmWaterCoolUnitOutputEntry 7 }

        waterCoolUnitOutputDelay OBJECT-TYPE
             SYNTAX INTEGER 
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Unsigned Value for delay, 
             after this time the output will fall into the previous state"
             ::= { cpqWcrmWaterCoolUnitOutputEntry 8 }

        waterCoolUnitOutputTimeoutAction OBJECT-TYPE
             SYNTAX INTEGER {
                stay (1),
                off (2),
                on (3)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "State for output if timeout (RS422) occurs"
             ::= { cpqWcrmWaterCoolUnitOutputEntry 9 }

-- Alarms
              
        cpqWcrmWaterCoolUnitNumberOfMsgs OBJECT-TYPE
              SYNTAX INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Number of alarms that can be created with water cool unit"
              ::= { cpqWcrmStatusWaterCoolUnitMsg  1 }

-- table with entry for each alarm available on this unit               
                
        cpqWcrmWaterCoolUnitMsgTable          OBJECT-TYPE
              SYNTAX  SEQUENCE OF CpqWcrmWaterCoolUnitMsgEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Headline of message table"
              ::= { cpqWcrmStatusWaterCoolUnitMsg 2 }

        cpqWcrmWaterCoolUnitMsgEntry            OBJECT-TYPE
              SYNTAX  CpqWcrmWaterCoolUnitMsgEntry
              ACCESS  not-accessible
                  STATUS  mandatory
              DESCRIPTION
              "Entries of message table"
              INDEX   { waterCoolUnitMsgIndex }
              ::= { cpqWcrmWaterCoolUnitMsgTable 1 }

              CpqWcrmWaterCoolUnitMsgEntry ::=
              SEQUENCE {
              waterCoolUnitMsgIndex
                INTEGER,
              waterCoolUnitMsgText
                DisplayString (SIZE (0..20)),
              waterCoolUnitMsgStatus
                INTEGER, 
              waterCoolUnitMsgRelay
                INTEGER,
              waterCoolUnitMsgBeeper
                INTEGER,
              waterCoolUnitMsgTrap1
                INTEGER,
              waterCoolUnitMsgTrap2
                INTEGER,
              waterCoolUnitMsgTrap3
                INTEGER,
              waterCoolUnitMsgTrap4
                INTEGER,                 
              waterCoolUnitMsgReset
                INTEGER
              }

        waterCoolUnitMsgIndex OBJECT-TYPE
             SYNTAX INTEGER (1..65535)
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Index for the list of alarm entries. Its value ranges
              between 1 and the value of cpqWcrmWaterCoolUnitNumberOfMsgs." 
             ::= { cpqWcrmWaterCoolUnitMsgEntry 1 }

        waterCoolUnitMsgText  OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..20))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Descriptional text for each message (entry in the table)"
             ::= { cpqWcrmWaterCoolUnitMsgEntry 2 }

         waterCoolUnitMsgStatus OBJECT-TYPE
             SYNTAX INTEGER {
             notAvail(1),
             configChanged(2),
             error(3),
             ok(4),
             alarm(5),
             warning(6),
             tooLow(7),
             tooHigh(8),
             setOff(9),
             setOn(10)
            }
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Actual message status
             4: OK
             5: alarm
             6: warning
             7: analog value too low, value reached low threshold
             8: analog value too high, value reached high threshold"
             ::= { cpqWcrmWaterCoolUnitMsgEntry 3 }

        waterCoolUnitMsgRelay OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Setup of Alarm relay for this alarm
              2:        no switching of alarm relay             
              1:        switching of alarm relay" 
             ::= { cpqWcrmWaterCoolUnitMsgEntry 4 }

        waterCoolUnitMsgBeeper OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Setup of Alarm beeper for this alarm
              2:        no audible alarm
              1:        audible alarm" 
             ::= { cpqWcrmWaterCoolUnitMsgEntry 5 }

        waterCoolUnitMsgTrap1 OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Trap receiver 1 activated"
             ::= { cpqWcrmWaterCoolUnitMsgEntry 6 }

        waterCoolUnitMsgTrap2 OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Trap receiver 2 activated"
             ::= { cpqWcrmWaterCoolUnitMsgEntry 7 }
 
        waterCoolUnitMsgTrap3 OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Trap receiver 3 activated"
             ::= { cpqWcrmWaterCoolUnitMsgEntry 8 }

        waterCoolUnitMsgTrap4 OBJECT-TYPE
             SYNTAX INTEGER {
                disable (1),
                enable (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Trap receiver 4 and Event Logging activated"
             ::= { cpqWcrmWaterCoolUnitMsgEntry 9 }

        waterCoolUnitMsgReset OBJECT-TYPE
             SYNTAX INTEGER {
                auto (1),
                manual (2)
                }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Reset of this alarm
             1:		auto
             2:		manual, alarm needs confirmation, e. g. with 'C' key"
             ::= { cpqWcrmWaterCoolUnitMsgEntry 10 }
-- table END            

--setupGeneral-group
          cpqWcrmSetTempUnit          OBJECT-TYPE
              SYNTAX  INTEGER {
              celsius(1),
              fahrenheit(2)
              }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
              "Unit of all temperature values and setpoints, Celsius or Fahrenheit"
              ::= { cpqWcrmSetupGeneral 1 }

          cpqWcrmSetBeeper             OBJECT-TYPE
              SYNTAX  INTEGER {
              off(1),
              on(2)
              }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
              "Audible alarm in Environmental Controller unit:
                (2): beeper is on
                (1): beeper is off (general)"
              ::= { cpqWcrmSetupGeneral 2 }


          cpqWcrmResetRelay         OBJECT-TYPE
              SYNTAX  INTEGER {
              disabled(1),
              enabled(2)
              }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
              "Enable or disable acknowledging currently active alarm relay 
               (with 'C' on Environmental Controller)."
              ::= { cpqWcrmSetupGeneral 3 }


          cpqWcrmLogicRelay         OBJECT-TYPE
              SYNTAX  INTEGER {
              closeAtAlarm(1),
              openAtAlarm(2),
              off(3)
              }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
              "Logic of alarm relay: 
                (1) Relay will pick up in case of an alarm
                (2) Relay will release in case of an alarm
                (3) Relay off (general)"
              ::= { cpqWcrmSetupGeneral 4 }

          cpqWcrmWebAccess         OBJECT-TYPE
              SYNTAX  INTEGER {
              viewOnly(1),
              fullAccess(2),
              off(3)
              }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
              "Web access via HTTP: 
                (1) view only
                (2) full Access, read and set
                (3) Web disabled (general)"
              ::= { cpqWcrmSetupGeneral 5 }
 
  
-- SetupClock
          cpqWcrmSetupDate     OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..10))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "actual Date in format DD.MM.YYYY"
             ::= { cpqWcrmSetupGeneral 6 }

          cpqWcrmSetupTime     OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..8))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "actual Time in format HH:MM:SS, HH (0-23), MM (0-59), SS (0-59)"
             ::= { cpqWcrmSetupGeneral 7 }
 
-- table for timer function
 
          cpqWcrmTimerNumber            OBJECT-TYPE
              SYNTAX  INTEGER 
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
              "Number of value-table entries=number of outlets available on this unit"
              ::= { cpqWcrmTimerTable1 1 }

          cpqWcrmTimerTable          OBJECT-TYPE
              SYNTAX  SEQUENCE OF CpqWcrmTimerEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Headline of status-table"
              ::= { cpqWcrmTimerTable1 2 }

          cpqWcrmTimerEntry            OBJECT-TYPE
              SYNTAX  CpqWcrmTimerEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
              "Entries of timer-table"
              INDEX   { cpqWcrmTimerIndex }
              ::= { cpqWcrmTimerTable 1 }

              CpqWcrmTimerEntry ::=
              SEQUENCE {
              cpqWcrmTimerIndex
                INTEGER,
              cpqWcrmTimerStatus
                INTEGER,
              cpqWcrmTimerDayOfWeek
              	INTEGER,  
              cpqWcrmTimeOn 
                DisplayString (SIZE (0..5)),                              
              cpqWcrmTimeOff 
                DisplayString (SIZE (0..5)),                              
              cpqWcrmTimeControl
                INTEGER,
              cpqWcrmTimerFunction
                INTEGER
              }

          cpqWcrmTimerIndex OBJECT-TYPE
             SYNTAX INTEGER (1..65535)
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Index for the list of timer entries. Its value ranges
              between 1 and the value of cpqWcrmTimerNumber." 
             ::= { cpqWcrmTimerEntry 1 }

          cpqWcrmTimerStatus OBJECT-TYPE
             SYNTAX INTEGER {
             switchedOff(1),
             switchedOn(2),
             noTime(3) 
             }
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Actual status of the timer"
             ::= { cpqWcrmTimerEntry 2 }

          cpqWcrmTimerDayOfWeek OBJECT-TYPE
             SYNTAX INTEGER {
             sun(1),
             mon(2),
             tue(3) ,
             wed(4),
             thu(5),
             fri(6),
             sat(7),
             sat-sun(8),
             mon-fri(9),
             mon-sun(10)
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Selection of day of week for timer to switch"
             ::= { cpqWcrmTimerEntry 3 }
             
          cpqWcrmTimeOn  OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..5))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Time to switch on current function, 
             Format: HH:MM"
             ::= { cpqWcrmTimerEntry 4 }

          cpqWcrmTimeOff  OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..5))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Time to switch off current function,
             Format: HH:MM"
             ::= { cpqWcrmTimerEntry 5 }

          cpqWcrmTimeControl OBJECT-TYPE
             SYNTAX INTEGER  {
             disabled(1),
             enabled(2)
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Control via RTC"
             ::= { cpqWcrmTimerEntry 6 }

          cpqWcrmTimerFunction OBJECT-TYPE
             SYNTAX INTEGER {
             disTrapRec1 (1),
             disTrapRec2 (2),
             disTrapRec3 (3),
             disTrapRec4 (4),
             schedule1 (5), 
             schedule2 (6), 
             schedule3 (7), 
             schedule4 (8) 
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Function which is controlled via timer
             1-4: sending Traps to this Trap receiver will be disabled
	     5 - 8: scheduled alarm off"
             ::= { cpqWcrmTimerEntry 7 }

-- added Oct 27, 2006
           cpqWcrmSetFlowUnit          OBJECT-TYPE
               SYNTAX  INTEGER {
               literMin(1),
               gallonMin(2)
               }
               ACCESS  read-write
               STATUS  mandatory
               DESCRIPTION
               "Unit of Water Flow, Liter/min or Gallon/min"
               ::= { cpqWcrmSetupGeneral 9 }
-- added

--cpqWcrmTrapTable-group

          cpqWcrmTraptableNumber            OBJECT-TYPE
            SYNTAX  INTEGER 
            ACCESS  read-only
            STATUS  mandatory
            DESCRIPTION
              "Number of trapTable entries. The number of trap-receiver"
              ::= { cpqWcrmTraps 1 }

          cpqWcrmTrapTableTable          OBJECT-TYPE    
            SYNTAX  SEQUENCE OF CpqWcrmTrapTableEntry
            ACCESS  not-accessible
            STATUS  mandatory
            DESCRIPTION
              "A list of trap-receiver entries"
              ::= { cpqWcrmTraps 2 }

          cpqWcrmTrapTableEntry            OBJECT-TYPE
            SYNTAX  CpqWcrmTrapTableEntry
            ACCESS  not-accessible
            STATUS  mandatory
            DESCRIPTION
              "Entries of trapTable"
            INDEX   { trapIndex }
              ::= { cpqWcrmTrapTableTable 1 }      
              
          CpqWcrmTrapTableEntry ::=
              SEQUENCE {
              trapIndex
                INTEGER,
              trapStatus
                INTEGER,
              trapIPaddress
                DisplayString,
              trapIPV4V6address
                DisplayString
              }

          trapIndex OBJECT-TYPE
             SYNTAX INTEGER (1..65535)
             ACCESS read-only
             STATUS mandatory
             DESCRIPTION
             "Index for the trap-receiver-table. Its value ranges between
              1 and the value of traptableNumber "
             ::= { cpqWcrmTrapTableEntry 1 }

          trapStatus OBJECT-TYPE
             SYNTAX INTEGER  {
             disabled(1),
             enabled(2)
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Enable or disable trap receiver"
             ::= { cpqWcrmTrapTableEntry 2 }

          trapIPaddress OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..15))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "IP-address of trap-receiver"
             ::= { cpqWcrmTrapTableEntry 3 }

          trapIPV4V6address OBJECT-TYPE
             SYNTAX DisplayString (SIZE (0..64))
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "IP-address of trap-receiver"
             ::= { cpqWcrmTrapTableEntry 4 }

--cpqWcrmControl-group (Added in Version 1.1)
          cpqWcrmResetUnit OBJECT-TYPE
             SYNTAX INTEGER  {
             noReset(1),
             reset(2)
             }
             ACCESS read-write
             STATUS mandatory
             DESCRIPTION
             "Command to reset (acknowledge) alarms of Environmental Controller unit.
             Setting to 'reset' (2) will have same result as pressing 'C' on Units.
             Variable is automatically set back to 'noReset' (1)."
             ::= { cpqWcrmControl 1 }


--Traps

          alarmSensorInternal TRAP-TYPE
              ENTERPRISE cpqWcrm
              VARIABLES { sysContact, sysName, sysLocation, 
                          internalMsgIndex, internalMsgText, internalMsgStatus, internalSensorValue, cpqWcrmURL }
              DESCRIPTION
              "Internal Sensor Alarm"
--
--#TYPE         "Internal sensor alarm"
--#SUMMARY      "Location: %s, Alarm[%d]: %s, Status: %d, Actual Value: %d, from: %s, contact %s, URL %s"
--#ARGUMENTS    { 2, 3, 4, 5, 6, 1, 0, 7}
--#SEVERITY     MAJOR
--#CATEGORY    "SYSTEM AND ENVIRONMENTAL"
--#TIMEINDEX    99
--                      
              ::= 1

          alarmSensorWaterCoolUnit TRAP-TYPE
              ENTERPRISE cpqWcrm
              VARIABLES { sysContact, sysName, sysLocation, 
                          waterCoolUnitMsgIndex, waterCoolUnitMsgText, waterCoolUnitMsgStatus, waterCoolUnitSensorValue, cpqWcrmURL }
              DESCRIPTION 
              "Water Cool Unit Sensor Alarm"
--
--#TYPE         "Water cool unit sensor alarm"
--#SUMMARY      "Location: %s, Alarm[%d]: %s, Status: %d, Actual Value: %d, from: %s, contact %s, URL %s"
--#ARGUMENTS    { 2, 3, 4, 5, 6, 1, 0, 7}
--#SEVERITY     MAJOR
--#CATEGORY    "SYSTEM AND ENVIRONMENTAL"
--#TIMEINDEX    99
--
              ::= 2

          alarmInternal TRAP-TYPE
              ENTERPRISE cpqWcrm
              VARIABLES { sysContact, sysName, sysLocation, 
                          cpqWcrmInternalText, cpqWcrmInternalStatus, cpqWcrmURL }
              DESCRIPTION
              "Internal Unit Alarm"
--
--#TYPE         "Internal unit alarm"
--#SUMMARY      "Location: %s, Status: %s, from: %s, contact %s, URL %s"
--#ARGUMENTS    { 2, 3, 1, 0, 5}
--#SEVERITY     MAJOR
--#CATEGORY    "SYSTEM AND ENVIRONMENTAL"
--#TIMEINDEX    99

--                      
              ::= 5

          alarmWaterCoolUnit TRAP-TYPE
              ENTERPRISE cpqWcrm
              VARIABLES { sysContact, sysName, sysLocation, 
                          cpqWcrmWaterCoolUnitText, cpqWcrmWaterCoolUnitStatus, cpqWcrmURL }
              DESCRIPTION 
               "Water Cool Unit System Alarm"
--
--#TYPE         "Water cool unit alarm"
--#SUMMARY      "Location: %s, Status: %s, from: %s, contact %s, URL %s"
--#ARGUMENTS    { 2, 3, 1, 0, 5}
--#SEVERITY     MAJOR
--#CATEGORY    "SYSTEM AND ENVIRONMENTAL"
--#TIMEINDEX    99
--                      
              ::= 6

           testTrap TRAP-TYPE
	      ENTERPRISE cpqWcrm
              VARIABLES { sysContact, sysName, sysLocation, cpqWcrmURL } 
              DESCRIPTION
              "Test trap sent to a trap receiver to check proper reception of traps"
--
--#TYPE         "Test Trap"
--#SUMMARY      "Location: %s, Test Trap from unit %s was sent, contact %s, URL %s"
--#ARGUMENTS    { 2, 1, 0, 3}
--#SEVERITY     INFORMATIONAL
--#CATEGORY    "SYSTEM AND ENVIRONMENTAL"
--#TIMEINDEX    99
--
              ::= 10


            END

