----------------------------------------------------------------------------------------------------
-- $HeadURL: http://svn.wiener-d.com/src/enet/branches/SNMPv3/snmp/mibs/WIENER-CRATE-MIB.txt $
-- $LastChangedDate: 2020-04-15 11:15:47 +0200 (Mi, 15 Apr 2020) $
-- $LastChangedRevision: 5704 $
-- $LastChangedBy: koester $
-- Copyright © 2005-2019 W-IE-NE-R Power Electronics GmbH, Burscheid, Germany
----------------------------------------------------------------------------------------------------

-- Checked with smilint:
-- smilint -m -s -l 9 \
--   -i group-membership \
--   -i namelength-32-object \
--   -i namelength-32-bit \
--   -i opaque-smiv2 \
--   -i identifier-external-case-match \
--   WIENER-CRATE-MIB.txt
--

WIENER-CRATE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    OBJECT-TYPE, MODULE-IDENTITY, OBJECT-IDENTITY,
        IpAddress, Integer32, 
        -- Unsigned32,          Not used at the moment. This is BER-Coded to GAUGE, not INTEGER (so different encoding)
        Opaque, enterprises
        FROM SNMPv2-SMI

    TEXTUAL-CONVENTION, DisplayString, MacAddress
        FROM SNMPv2-TC

--    Float
--      FROM NET-SNMP-TC
--    Float
--      FROM UCD-SNMP-MIB
    ;




wiener MODULE-IDENTITY
    LAST-UPDATED "201904030000Z"    -- April 3, 2019
    ORGANIZATION "W-IE-NE-R Power Electronics GmbH"
    CONTACT-INFO "
         postal:   W-IE-NE-R Power Electronics GmbH
                   Linde 18
                   D-51399 Burscheid
                   Germany

         email:    info@wiener-d.com

        "

    DESCRIPTION
    "Introduction of the communication.can branch.
    "

    REVISION "201904030000Z"    -- April 3, 2019
    DESCRIPTION
    "Update the revision since 2016.
    "

    REVISION "201602180000Z"
    DESCRIPTION
    "This revision introduces new OIDs for slew control:
      outputResistance.
    "

    REVISION "200810090000Z"    -- October 9, 2008
    DESCRIPTION
    "New Stuff."

    REVISION "200805060000Z"    -- May 6, 2008
    DESCRIPTION
    "Introduction of the signal branch.
    "

    REVISION "200804150000Z"    -- April 15, 2008
    DESCRIPTION
    "Enlargement of u0..u11 -> u0..u1999
    "

    REVISION "200804100000Z"    -- April 10, 2008
    DESCRIPTION
    "This revision uses again Integer32 instead of Counter32.
    "

    REVISION "200804020000Z"    -- April 02, 2008
    DESCRIPTION
    "This revision modifies the syntax of this file to be complient with smilint.
    "

    REVISION "200709100000Z"
    DESCRIPTION
    "This revision introduces new OIDs for debug functionality:
      sysDebugMemory8, sysDebugMemory16 and sysDebugMemory32.
    "

    REVISION "200703160000Z"
    DESCRIPTION
    "This revision introduces new OIDs for slew control:
      outputVoltageRiseRate and outputVoltageFallRate.
    "

    REVISION "200502010000Z"
    DESCRIPTION
    "This revision introduces new OIDs for group managment:
      groupTable
    "

    REVISION "200406280000Z"
    DESCRIPTION
    "WIENER Crate MIB, actual Firmware: UEL6E 4.02.
     Initial Version.
    "

    ::= { enterprises 19947 }


-------------------------------------------------------------------------------
-- Define the Float Textual Convention
--   This definition was written by David Perkins.
--
Float ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "A single precision floating-point number.  The semantics
         and encoding are identical for type 'single' defined in
         IEEE Standard for Binary Floating-Point,
         ANSI/IEEE Std 754-1985.
         The value is restricted to the BER serialization of
         the following ASN.1 type:
             FLOATTYPE ::= [120] IMPLICIT FloatType
         (note: the value 120 is the sum of '30'h and '48'h)
         The BER serialization of the length for values of
         this type must use the definite length, short
         encoding form.

         For example, the BER serialization of value 123
         of type FLOATTYPE is '9f780442f60000'h.  (The tag
         is '9f78'h; the length is '04'h; and the value is
         '42f60000'h.) The BER serialization of value
         '9f780442f60000'h of data type Opaque is
         '44079f780442f60000'h. (The tag is '44'h; the length
         is '07'h; and the value is '9f780442f60000'h."
    SYNTAX Opaque (SIZE (7))

-------------------------------------------------------------------------------
--Integer16 ::= TEXTUAL-CONVENTION
--        DISPLAY-HINT "d"
--        STATUS  current
--        DESCRIPTION "Represents a 16 bit signed integer value."
--        SYNTAX  INTEGER (-32768..32767)

OutputTripTime ::= TEXTUAL-CONVENTION
        DISPLAY-HINT "d"
        STATUS  current
        DESCRIPTION "Special data type used for output trip time OIDs. Represents a 16 bit unsigned integer value. BER-coded as INTEGER"
        SYNTAX  Integer32 (0..65535)

OutputTripAction ::= TEXTUAL-CONVENTION
--        DISPLAY-HINT "d"
        STATUS  current
        DESCRIPTION "Special data type used for outpot trip action OIDs."
        SYNTAX  INTEGER { ignore (0), channelOff (1), specialOff (2), allOff (3) }

-------------------------------------------------------------------------------
-- crate
-------------------------------------------------------------------------------

crate   OBJECT-IDENTITY
        STATUS  current
        DESCRIPTION
            "SNMP control for electronic crates. A crate is a complete electronic system and
            consists of the mechanical rack, a power supply, a fan tray and a backplane.
            All this things are necessary to provide an adequate housing for electronic
            modules (e.g. VME CPU's)"
        ::= { wiener 1 }

--Crate ::= SEQUENCE {
--        system              System,
--        input               Input,
--        output              Output,
--        sensor              Sensor,
--        communication       Communication,
--        powersupply         Powersupply,
--        fantray             Fantray,
--        rack                Rack
--}

system  OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "A collection of objects which affect the complete crate"
    ::= { crate 1 }


input   OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "All objects which are associated with the power input of the crate"
    ::= { crate 2 }

output  OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "All objects which are associated with the power output of the crate"
    ::= { crate 3 }

sensor  OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "All objects which are associated with temperature sensors in the crate"
    ::= { crate 4 }

communication OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "All objects which affect the remote control of the crate"
    ::= { crate 5 }

powersupply OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "All objects which are specific for the power supply of the crate"
    ::= { crate 6 }

fantray     OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "All objects which are specific for the fan tray of the crate"
    ::= { crate 7 }

rack        OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "All objects which are specific for the crate (BIN) of the crate"
    ::= { crate 8 }

signal OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "All objects which are associated with analog/digtal input/output in the crate"
    ::= { crate 9 }


-------------------------------------------------------------------------------
-- system
-------------------------------------------------------------------------------
System ::= SEQUENCE {
    sysMainSwitch                 INTEGER,
    sysStatus                     BITS,
    sysVmeSysReset                INTEGER,
    sysHardwareReset              Integer32,
    sysFactoryDefaults            INTEGER,

    sysConfigDoMeasurementCurrent BITS,
    sysOperatingTime              Integer32,

    sysConfig                     OCTET STRING,
    sysMainInterlock              INTEGER,
    uep6Adaption                  OCTET STRING,

    sysDebugMemory8               Integer32,
    sysDebugMemory16              Integer32,
    sysDebugMemory32              Integer32,
    sysDebug                      OCTET STRING,
    sysDebugDisplay               OCTET STRING,
    sysDebugBoot                  OCTET STRING
}

sysMainSwitch OBJECT-TYPE
    SYNTAX  INTEGER { off (0), on (1) }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Read: An enumerated value which shows the current state of
             the crates main switch.
             Write: Try to switch the complete crate ON or OFF.
             Only the values ON or OFF are allowed."
    ::= { system 1 }

sysStatus OBJECT-TYPE
    SYNTAX  BITS {
        mainOn (0) ,
        mainInhibit (1) ,
        localControlOnly (2) ,
        inputFailure (3) ,
        outputFailure (4) ,
        fantrayFailure (5) ,
        sensorFailure (6),
        vmeSysfail (7),
        plugAndPlayIncompatible (8),
        busReset (9),
        supplyDerating (10),
        supplyFailure (11),
        supplyDerating2 (12),
        supplyFailure2 (13)
    }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "A bit string which shows the status (health) of the complete crate.
             If a bit is set (1), the explanation is satisfied
                mainOn (0),                 system is switched on, individual outputs may be controlled by their specific ON/INHIBIT
                mainInhibit(1),             external (hardware-)inhibit of the complete system
                localControlOnly (2),       local control only (CANBUS write access denied)
                inputFailure (3),           any input failure (e.g. power fail)
                outputFailure (4),          any output failure, details in outputTable
                fantrayFailure (5),         fantray failure
                sensorFailure (6),          temperature of the external sensors too high
                vmeSysfail(7),              VME SYSFAIL signal is active
                plugAndPlayIncompatible (8) wrong power supply and rack connected
                busReset (9)                The sytem bus (e.g. VME or CPCI) reset signal is active.
                supplyDerating (10)         The (first) system power supply has the DEG signal active.
                supplyFailure (11)          The (first) system power supply has the FAL signal active.
                supplyDerating2 (12)        The second system power supply has the DEG signal active.
                supplyFailure2 (13)         The second system power supply has the FAL signal active.
            "
    ::= { system 2 }


--        ERROR_BIN_CHECKSUM(?),





sysVmeSysReset OBJECT-TYPE
    SYNTAX  INTEGER { trigger (1) }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Read: Always 0.
             Write: Trigger the generation of the VME SYSRESET or CPIC RESET signal.
             This signal will be active for a time of 200 ms"
    ::= { system 3 }

sysHardwareReset OBJECT-TYPE
    SYNTAX  Integer32 -- INTEGER { off (0), on (1) }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Triggered a Reset via Watchdog or ResetLine."
    ::= { system 4 }

sysFactoryDefaults OBJECT-TYPE
    SYNTAX  INTEGER { off (0), on (1) }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "A set operation performs a complete factory reset of ALL data
             stored in the controller (e.g. community names, passwords, ...).
            "
    ::= { system 5 }


sysConfigDoMeasurementCurrent OBJECT-TYPE
    SYNTAX  BITS {
        ch0 (0) ,
        ch1 (1) ,
        ch2 (2) ,
        ch3 (3) ,
        ch4 (4) ,
        ch5 (5) ,
        ch6 (6) ,
        ch7 (7)
    }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "CSet the analog inputs to measure voltage or current."
    ::= { system 10 }

sysOperatingTime OBJECT-TYPE
    SYNTAX  Integer32
    UNITS   "s"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The time in seconds for how long the controller was in action."
    ::= { system 11 }

sysConfig OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE(16))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Raw read and write access to global system and user settings held inside MUSE or MPODC.
             This OID is intended for use by WIENER system software only and may not be accessed directly.
            "
    ::= { system 12 }

sysMainInterlock OBJECT-TYPE
    SYNTAX  INTEGER { unlocked (0), locked (1) }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Access to global lock to block switching on the system. Currently used in MPODC.
             This OID is intended for use by WIENER system software only and may not be accessed directly.
            "
    ::= { system 15 }

uep6Adaption  OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
           "A list of uep6 adaption related entries."
    ::= { system 20 }

-------------------------------------------------------------------------------
-- uep6 adaption
-------------------------------------------------------------------------------

uep6CfgMode  OBJECT-TYPE
    SYNTAX  INTEGER { service (0), fixed (1), genRefCfg(2) }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Read / write the internal configuration mode of the UEP6 adaption layer.
             This OID is intended for use by WIENER system software only and may not be accessed directly.
            "
    ::= { uep6Adaption 1 }

uep6CfgStatus  OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "This OID reflects to internal status of the UEP6 adaption configuration cache and is made up out of 2 16bit values.
             The first part reflects the module cache state, the second part reflects the state of the configuration flags.
             This OID is intended for use by WIENER system software only and may not be accessed directly.
            "
    ::= { uep6Adaption 2 }

uep6ChanTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF Uep6ChanEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "UEP6 adaption channel reference configuration."
    ::= { uep6Adaption 3 }

uep6DevCfgFlags  OBJECT-TYPE
    SYNTAX  BITS {
        dcIgnoreACOff (0) ,
        dcIgnoreSysReset (1) ,
        dcIgnoreDisable (2) ,
        dcNoInhibitOn (3) ,
        dsInhibitComplement (4) ,
        dsPlugAndPlaySet (5) ,
        dsPlugAndPlayUse (6) ,
        dcIgnoreInhibitPin (7),
--        dcxxx(8) ,
--        dcxxx (9) ,
--        dcxxx (10) ,
--        dcxxx (11) ,
--        dcxxx (12) ,
        dcDelayedPfOff (13) ,
        dcBlockSimpleMode (14) ,
        dcExternalOnOff (15)
    }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "UEP6 adaption device configuration flags:
                dcIgnoreACOff (0)           1: ignore ac off input pin
                dcIgnoreSysReset (1)        1: ignore sysreset input pin
                dcIgnoreDisable (2)         1: ignore disable input pin
                dcNoInhibitOn (3)           1: no switch on with changing inhibit/interlock signa
                dsInhibitComplement (4)     1: complement NoInhibit signal (-> interlock)
                dsPlugAndPlaySet (5)        1: set outputs to values stored in the BIN
                dsPlugAndPlayUse (6)        1: use plug&play data of the BIN
                dcIgnoreInhibitPin (7)      1: ignore inhibit input pin
                dcDelayedPfOff (13)         1: Delay switching modules off after power fail
                dcBlockSimpleMode (14)      1: Prevent the power supply from switching to simple communication mode when no fantray is connected
                dcExternalOnOff (15)        1: Use INHIBIT LOW to switch off and DISABLE LOW to switch on the power supply
                This OID is intended for use by WIENER system software only and may not be accessed directly
            "
    ::= { uep6Adaption 4 }

uep6XTempCfgFlags  OBJECT-TYPE
    SYNTAX  OCTET STRING
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "This OID is intended for use by WIENER system software only and may not be accessed directly"
    ::= { uep6Adaption 5 }


uep6ChanEntry OBJECT-TYPE
    SYNTAX  Uep6ChanEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A table row"
    INDEX   { uep6ChanIndex }
    ::= { uep6ChanTable 1 }

Uep6ChanEntry ::= SEQUENCE {
        uep6ChanIndex       INTEGER,
        refCfg              OCTET STRING
      }

uep6ChanIndex OBJECT-TYPE
    SYNTAX INTEGER {
                     u0(1),u1(2),u2(3),u3(4),u4(5),u5(6),u6(7),u7(8)}
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A unique number for each power supply  channel. Its value
             ranges between 1 and total number of output channels.
             SMI index starts at 1, so index 1 corresponds to U0.
            "
    ::= { uep6ChanEntry 1 }

refCfg  OBJECT-TYPE
    SYNTAX  OCTET STRING
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Reference configuration cache entry for uep6 channel.
            This OID is intended for use by WIENER system software only and may not be accessed directly
            "
     ::= { uep6ChanEntry 2 }
-------------------------------------------------------------------------------
-- Debug objects
-------------------------------------------------------------------------------

sysDebugMemory8 OBJECT-TYPE
    SYNTAX  Integer32 (0..255)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Debug 16-bit memory access."
    ::= { system 1024 }

sysDebugMemory16 OBJECT-TYPE
    SYNTAX  Integer32 (0..65535)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Debug 16-bit memory access."
    ::= { system 1025 }

sysDebugMemory32 OBJECT-TYPE
    SYNTAX  Integer32 (-2147483648..2147483647)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Debug 32-bit memory access."
    ::= { system 1026 }

sysDebug OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (520))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Debug communication with the MPOD.
             This is a direct map to the ancient functions which are accessible
             via USB (without SLIP/SNMP).
            "
    ::= { system 1027 }

sysDebugDisplay OBJECT-TYPE
    SYNTAX  OCTET STRING
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Debug communication with the MPOD display."
    ::= { system 1028 }

sysDebugBoot OBJECT-TYPE
    SYNTAX  OCTET STRING
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Debug communication with the simple debug interface / bootloader."
    ::= { system 1029 }

-------------------------------------------------------------------------------
-- input
-------------------------------------------------------------------------------
-- reserved, possible entries:
--   inputSetPfcVoltage
--   inputMesPowerFail
--   inputMesVoltage
--   inputMesCurrent
--   inputMesPower
--   inputMesTemperature
-------------------------------------------------------------------------------
-- output
-------------------------------------------------------------------------------
--Output ::= SEQUENCE {
--        outputNumber                Integer32,
--        outputTable                 OutputTable,
--        groupsNumber                Integer32,
--        groupsTable                 GroupsTable,
--        moduleNumber                Integer32,
--        moduleTable                 moduleTable
--        ??TotalPower
--}

outputNumber OBJECT-TYPE
    SYNTAX  Integer32 (0..1999)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of output channels of the crate."
    ::= { output 1 }

outputTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF OutputEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
           "A list of output entries."
    ::= { output 2 }

groupsNumber OBJECT-TYPE
    SYNTAX  Integer32 (1..1999)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of output groups of the crate."
    ::= { output 3 }

groupsTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF GroupsEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
           "A list of output groups entries."
    ::= { output 4 }

-------------------------------------------------------------------------------
-- outputModuleTable
-------------------------------------------------------------------------------
moduleNumber OBJECT-TYPE
    SYNTAX  Integer32 (1..10)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of HV/LV modules of the crate."
    ::= { output 5 }

moduleTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF ModuleEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
           "A list of output module entries."
    ::= { output 6 }

-------------------------------------------------------------------------------
-- outputTable
-------------------------------------------------------------------------------

outputEntry OBJECT-TYPE
    SYNTAX  OutputEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A table row"
    INDEX   { outputIndex }
    ::= { outputTable 1 }

OutputEntry ::= SEQUENCE {
        outputIndex                         INTEGER,
        outputName                          DisplayString,
        outputGroup                         INTEGER,
        outputStatus                        BITS,
        outputMeasurementSenseVoltage       Float,
        outputMeasurementTerminalVoltage    Float,
        outputMeasurementCurrent            Float,
        outputMeasurementTemperature        INTEGER,
        outputSwitch                        INTEGER,
        outputVoltage                       Float,
        outputAdjustVoltage                 Integer32,
        outputCurrent                       Float,

        outputVoltageRiseRate               Float,
        outputVoltageFallRate               Float,

        outputSupervisionBehavior           Integer32,
        outputSupervisionMinSenseVoltage    Float,
        outputSupervisionMaxSenseVoltage    Float,
        outputSupervisionMaxTerminalVoltage Float,
        outputSupervisionMaxCurrent         Float,
        outputSupervisionMaxTemperature     Integer32,

        outputConfigMaxSenseVoltage         Float,
        outputConfigMaxTerminalVoltage      Float,
        outputConfigMaxCurrent              Float,
        outputSupervisionMaxPower           Float,
        outputCurrentRiseRate               Float,
        outputCurrentFallRate               Float,
        outputTripTimeMaxCurrent            OutputTripTime,
        outputHardwareLimitVoltage          Float,
        outputHardwareLimitCurrent          Float,

        outputConfigGainSenseVoltage        Float,
        outputConfigOffsetSenseVoltage      Float,
        outputConfigGainTerminalVoltage     Float,
        outputConfigOffsetTerminalVoltage   Float,
        outputConfigGainCurrent             Float,
        outputConfigOffsetCurrent           Float,
        outputUserConfig                    Integer32,

        outputRegulationMode                INTEGER,
        outputConfigMaxTemperature          Integer32,

        outputResistance                    Float,

        outputTripTimeMinSenseVoltage       OutputTripTime,
        outputTripTimeMaxSenseVoltage       OutputTripTime,
        outputTripTimeMaxTerminalVoltage    OutputTripTime,
        outputTripTimeMaxTemperature        OutputTripTime,
        outputTripTimeMaxPower              OutputTripTime,
        outputTripTimeTimeout               OutputTripTime,

        outputTripActionMinSenseVoltage     OutputTripAction,
        outputTripActionMaxSenseVoltage     OutputTripAction,
        outputTripActionMaxTerminalVoltage  OutputTripAction,
        outputTripActionMaxCurrent          OutputTripAction,
        outputTripActionMaxTemperature      OutputTripAction,
        outputTripActionMaxPower            OutputTripAction,
        outputTripActionExternalInhibit     OutputTripAction,
        outputTripActionTimeout             OutputTripAction,

        outputVoltageRampPriority           Integer32,
        outputVoltageBottom                 Float,

        outputMeasurementReturnCurrent      Float,

        outputConfigDataS                   OCTET STRING,
        outputConfigDataU                   OCTET STRING
      }


outputIndex OBJECT-TYPE
    SYNTAX INTEGER {
                     u0(1),u1(2),u2(3),u3(4),u4(5),u5(6),u6(7),u7(8),u8(9),u9(10),
                     u10(11),u11(12),u12(13),u13(14),u14(15),u15(16),u16(17),u17(18),u18(19),u19(20),
                     u20(21),u21(22),u22(23),u23(24),u24(25),u25(26),u26(27),u27(28),u28(29),u29(30),
                     u30(31),u31(32),u32(33),u33(34),u34(35),u35(36),u36(37),u37(38),u38(39),u39(40),
                     u40(41),u41(42),u42(43),u43(44),u44(45),u45(46),u46(47),u47(48),u48(49),u49(50),
                     u50(51),u51(52),u52(53),u53(54),u54(55),u55(56),u56(57),u57(58),u58(59),u59(60),
                     u60(61),u61(62),u62(63),u63(64),u64(65),u65(66),u66(67),u67(68),u68(69),u69(70),
                     u70(71),u71(72),u72(73),u73(74),u74(75),u75(76),u76(77),u77(78),u78(79),u79(80),
                     u80(81),u81(82),u82(83),u83(84),u84(85),u85(86),u86(87),u87(88),u88(89),u89(90),
                     u90(91),u91(92),u92(93),u93(94),u94(95),u95(96),u96(97),u97(98),u98(99),u99(100),
                     u100(101),u101(102),u102(103),u103(104),u104(105),u105(106),u106(107),u107(108),u108(109),u109(110),
                     u110(111),u111(112),u112(113),u113(114),u114(115),u115(116),u116(117),u117(118),u118(119),u119(120),
                     u120(121),u121(122),u122(123),u123(124),u124(125),u125(126),u126(127),u127(128),u128(129),u129(130),
                     u130(131),u131(132),u132(133),u133(134),u134(135),u135(136),u136(137),u137(138),u138(139),u139(140),
                     u140(141),u141(142),u142(143),u143(144),u144(145),u145(146),u146(147),u147(148),u148(149),u149(150),
                     u150(151),u151(152),u152(153),u153(154),u154(155),u155(156),u156(157),u157(158),u158(159),u159(160),
                     u160(161),u161(162),u162(163),u163(164),u164(165),u165(166),u166(167),u167(168),u168(169),u169(170),
                     u170(171),u171(172),u172(173),u173(174),u174(175),u175(176),u176(177),u177(178),u178(179),u179(180),
                     u180(181),u181(182),u182(183),u183(184),u184(185),u185(186),u186(187),u187(188),u188(189),u189(190),
                     u190(191),u191(192),u192(193),u193(194),u194(195),u195(196),u196(197),u197(198),u198(199),u199(200),
                     u200(201),u201(202),u202(203),u203(204),u204(205),u205(206),u206(207),u207(208),u208(209),u209(210),
                     u210(211),u211(212),u212(213),u213(214),u214(215),u215(216),u216(217),u217(218),u218(219),u219(220),
                     u220(221),u221(222),u222(223),u223(224),u224(225),u225(226),u226(227),u227(228),u228(229),u229(230),
                     u230(231),u231(232),u232(233),u233(234),u234(235),u235(236),u236(237),u237(238),u238(239),u239(240),
                     u240(241),u241(242),u242(243),u243(244),u244(245),u245(246),u246(247),u247(248),u248(249),u249(250),
                     u250(251),u251(252),u252(253),u253(254),u254(255),u255(256),u256(257),u257(258),u258(259),u259(260),
                     u260(261),u261(262),u262(263),u263(264),u264(265),u265(266),u266(267),u267(268),u268(269),u269(270),
                     u270(271),u271(272),u272(273),u273(274),u274(275),u275(276),u276(277),u277(278),u278(279),u279(280),
                     u280(281),u281(282),u282(283),u283(284),u284(285),u285(286),u286(287),u287(288),u288(289),u289(290),
                     u290(291),u291(292),u292(293),u293(294),u294(295),u295(296),u296(297),u297(298),u298(299),u299(300),
                     u300(301),u301(302),u302(303),u303(304),u304(305),u305(306),u306(307),u307(308),u308(309),u309(310),
                     u310(311),u311(312),u312(313),u313(314),u314(315),u315(316),u316(317),u317(318),u318(319),u319(320),
                     u320(321),u321(322),u322(323),u323(324),u324(325),u325(326),u326(327),u327(328),u328(329),u329(330),
                     u330(331),u331(332),u332(333),u333(334),u334(335),u335(336),u336(337),u337(338),u338(339),u339(340),
                     u340(341),u341(342),u342(343),u343(344),u344(345),u345(346),u346(347),u347(348),u348(349),u349(350),
                     u350(351),u351(352),u352(353),u353(354),u354(355),u355(356),u356(357),u357(358),u358(359),u359(360),
                     u360(361),u361(362),u362(363),u363(364),u364(365),u365(366),u366(367),u367(368),u368(369),u369(370),
                     u370(371),u371(372),u372(373),u373(374),u374(375),u375(376),u376(377),u377(378),u378(379),u379(380),
                     u380(381),u381(382),u382(383),u383(384),u384(385),u385(386),u386(387),u387(388),u388(389),u389(390),
                     u390(391),u391(392),u392(393),u393(394),u394(395),u395(396),u396(397),u397(398),u398(399),u399(400),
                     u400(401),u401(402),u402(403),u403(404),u404(405),u405(406),u406(407),u407(408),u408(409),u409(410),
                     u410(411),u411(412),u412(413),u413(414),u414(415),u415(416),u416(417),u417(418),u418(419),u419(420),
                     u420(421),u421(422),u422(423),u423(424),u424(425),u425(426),u426(427),u427(428),u428(429),u429(430),
                     u430(431),u431(432),u432(433),u433(434),u434(435),u435(436),u436(437),u437(438),u438(439),u439(440),
                     u440(441),u441(442),u442(443),u443(444),u444(445),u445(446),u446(447),u447(448),u448(449),u449(450),
                     u450(451),u451(452),u452(453),u453(454),u454(455),u455(456),u456(457),u457(458),u458(459),u459(460),
                     u460(461),u461(462),u462(463),u463(464),u464(465),u465(466),u466(467),u467(468),u468(469),u469(470),
                     u470(471),u471(472),u472(473),u473(474),u474(475),u475(476),u476(477),u477(478),u478(479),u479(480),
                     u480(481),u481(482),u482(483),u483(484),u484(485),u485(486),u486(487),u487(488),u488(489),u489(490),
                     u490(491),u491(492),u492(493),u493(494),u494(495),u495(496),u496(497),u497(498),u498(499),u499(500),
                     u500(501),u501(502),u502(503),u503(504),u504(505),u505(506),u506(507),u507(508),u508(509),u509(510),
                     u510(511),u511(512),u512(513),u513(514),u514(515),u515(516),u516(517),u517(518),u518(519),u519(520),
                     u520(521),u521(522),u522(523),u523(524),u524(525),u525(526),u526(527),u527(528),u528(529),u529(530),
                     u530(531),u531(532),u532(533),u533(534),u534(535),u535(536),u536(537),u537(538),u538(539),u539(540),
                     u540(541),u541(542),u542(543),u543(544),u544(545),u545(546),u546(547),u547(548),u548(549),u549(550),
                     u550(551),u551(552),u552(553),u553(554),u554(555),u555(556),u556(557),u557(558),u558(559),u559(560),
                     u560(561),u561(562),u562(563),u563(564),u564(565),u565(566),u566(567),u567(568),u568(569),u569(570),
                     u570(571),u571(572),u572(573),u573(574),u574(575),u575(576),u576(577),u577(578),u578(579),u579(580),
                     u580(581),u581(582),u582(583),u583(584),u584(585),u585(586),u586(587),u587(588),u588(589),u589(590),
                     u590(591),u591(592),u592(593),u593(594),u594(595),u595(596),u596(597),u597(598),u598(599),u599(600),
                     u600(601),u601(602),u602(603),u603(604),u604(605),u605(606),u606(607),u607(608),u608(609),u609(610),
                     u610(611),u611(612),u612(613),u613(614),u614(615),u615(616),u616(617),u617(618),u618(619),u619(620),
                     u620(621),u621(622),u622(623),u623(624),u624(625),u625(626),u626(627),u627(628),u628(629),u629(630),
                     u630(631),u631(632),u632(633),u633(634),u634(635),u635(636),u636(637),u637(638),u638(639),u639(640),
                     u640(641),u641(642),u642(643),u643(644),u644(645),u645(646),u646(647),u647(648),u648(649),u649(650),
                     u650(651),u651(652),u652(653),u653(654),u654(655),u655(656),u656(657),u657(658),u658(659),u659(660),
                     u660(661),u661(662),u662(663),u663(664),u664(665),u665(666),u666(667),u667(668),u668(669),u669(670),
                     u670(671),u671(672),u672(673),u673(674),u674(675),u675(676),u676(677),u677(678),u678(679),u679(680),
                     u680(681),u681(682),u682(683),u683(684),u684(685),u685(686),u686(687),u687(688),u688(689),u689(690),
                     u690(691),u691(692),u692(693),u693(694),u694(695),u695(696),u696(697),u697(698),u698(699),u699(700),
                     u700(701),u701(702),u702(703),u703(704),u704(705),u705(706),u706(707),u707(708),u708(709),u709(710),
                     u710(711),u711(712),u712(713),u713(714),u714(715),u715(716),u716(717),u717(718),u718(719),u719(720),
                     u720(721),u721(722),u722(723),u723(724),u724(725),u725(726),u726(727),u727(728),u728(729),u729(730),
                     u730(731),u731(732),u732(733),u733(734),u734(735),u735(736),u736(737),u737(738),u738(739),u739(740),
                     u740(741),u741(742),u742(743),u743(744),u744(745),u745(746),u746(747),u747(748),u748(749),u749(750),
                     u750(751),u751(752),u752(753),u753(754),u754(755),u755(756),u756(757),u757(758),u758(759),u759(760),
                     u760(761),u761(762),u762(763),u763(764),u764(765),u765(766),u766(767),u767(768),u768(769),u769(770),
                     u770(771),u771(772),u772(773),u773(774),u774(775),u775(776),u776(777),u777(778),u778(779),u779(780),
                     u780(781),u781(782),u782(783),u783(784),u784(785),u785(786),u786(787),u787(788),u788(789),u789(790),
                     u790(791),u791(792),u792(793),u793(794),u794(795),u795(796),u796(797),u797(798),u798(799),u799(800),
                     u800(801),u801(802),u802(803),u803(804),u804(805),u805(806),u806(807),u807(808),u808(809),u809(810),
                     u810(811),u811(812),u812(813),u813(814),u814(815),u815(816),u816(817),u817(818),u818(819),u819(820),
                     u820(821),u821(822),u822(823),u823(824),u824(825),u825(826),u826(827),u827(828),u828(829),u829(830),
                     u830(831),u831(832),u832(833),u833(834),u834(835),u835(836),u836(837),u837(838),u838(839),u839(840),
                     u840(841),u841(842),u842(843),u843(844),u844(845),u845(846),u846(847),u847(848),u848(849),u849(850),
                     u850(851),u851(852),u852(853),u853(854),u854(855),u855(856),u856(857),u857(858),u858(859),u859(860),
                     u860(861),u861(862),u862(863),u863(864),u864(865),u865(866),u866(867),u867(868),u868(869),u869(870),
                     u870(871),u871(872),u872(873),u873(874),u874(875),u875(876),u876(877),u877(878),u878(879),u879(880),
                     u880(881),u881(882),u882(883),u883(884),u884(885),u885(886),u886(887),u887(888),u888(889),u889(890),
                     u890(891),u891(892),u892(893),u893(894),u894(895),u895(896),u896(897),u897(898),u898(899),u899(900),
                     u900(901),u901(902),u902(903),u903(904),u904(905),u905(906),u906(907),u907(908),u908(909),u909(910),
                     u910(911),u911(912),u912(913),u913(914),u914(915),u915(916),u916(917),u917(918),u918(919),u919(920),
                     u920(921),u921(922),u922(923),u923(924),u924(925),u925(926),u926(927),u927(928),u928(929),u929(930),
                     u930(931),u931(932),u932(933),u933(934),u934(935),u935(936),u936(937),u937(938),u938(939),u939(940),
                     u940(941),u941(942),u942(943),u943(944),u944(945),u945(946),u946(947),u947(948),u948(949),u949(950),
                     u950(951),u951(952),u952(953),u953(954),u954(955),u955(956),u956(957),u957(958),u958(959),u959(960),
                     u960(961),u961(962),u962(963),u963(964),u964(965),u965(966),u966(967),u967(968),u968(969),u969(970),
                     u970(971),u971(972),u972(973),u973(974),u974(975),u975(976),u976(977),u977(978),u978(979),u979(980),
                     u980(981),u981(982),u982(983),u983(984),u984(985),u985(986),u986(987),u987(988),u988(989),u989(990),
                     u990(991),u991(992),u992(993),u993(994),u994(995),u995(996),u996(997),u997(998),u998(999),u999(1000),
                     u1000(1001),u1001(1002),u1002(1003),u1003(1004),u1004(1005),u1005(1006),u1006(1007),u1007(1008),u1008(1009),u1009(1010),
                     u1010(1011),u1011(1012),u1012(1013),u1013(1014),u1014(1015),u1015(1016),u1016(1017),u1017(1018),u1018(1019),u1019(1020),
                     u1020(1021),u1021(1022),u1022(1023),u1023(1024),u1024(1025),u1025(1026),u1026(1027),u1027(1028),u1028(1029),u1029(1030),
                     u1030(1031),u1031(1032),u1032(1033),u1033(1034),u1034(1035),u1035(1036),u1036(1037),u1037(1038),u1038(1039),u1039(1040),
                     u1040(1041),u1041(1042),u1042(1043),u1043(1044),u1044(1045),u1045(1046),u1046(1047),u1047(1048),u1048(1049),u1049(1050),
                     u1050(1051),u1051(1052),u1052(1053),u1053(1054),u1054(1055),u1055(1056),u1056(1057),u1057(1058),u1058(1059),u1059(1060),
                     u1060(1061),u1061(1062),u1062(1063),u1063(1064),u1064(1065),u1065(1066),u1066(1067),u1067(1068),u1068(1069),u1069(1070),
                     u1070(1071),u1071(1072),u1072(1073),u1073(1074),u1074(1075),u1075(1076),u1076(1077),u1077(1078),u1078(1079),u1079(1080),
                     u1080(1081),u1081(1082),u1082(1083),u1083(1084),u1084(1085),u1085(1086),u1086(1087),u1087(1088),u1088(1089),u1089(1090),
                     u1090(1091),u1091(1092),u1092(1093),u1093(1094),u1094(1095),u1095(1096),u1096(1097),u1097(1098),u1098(1099),u1099(1100),
                     u1100(1101),u1101(1102),u1102(1103),u1103(1104),u1104(1105),u1105(1106),u1106(1107),u1107(1108),u1108(1109),u1109(1110),
                     u1110(1111),u1111(1112),u1112(1113),u1113(1114),u1114(1115),u1115(1116),u1116(1117),u1117(1118),u1118(1119),u1119(1120),
                     u1120(1121),u1121(1122),u1122(1123),u1123(1124),u1124(1125),u1125(1126),u1126(1127),u1127(1128),u1128(1129),u1129(1130),
                     u1130(1131),u1131(1132),u1132(1133),u1133(1134),u1134(1135),u1135(1136),u1136(1137),u1137(1138),u1138(1139),u1139(1140),
                     u1140(1141),u1141(1142),u1142(1143),u1143(1144),u1144(1145),u1145(1146),u1146(1147),u1147(1148),u1148(1149),u1149(1150),
                     u1150(1151),u1151(1152),u1152(1153),u1153(1154),u1154(1155),u1155(1156),u1156(1157),u1157(1158),u1158(1159),u1159(1160),
                     u1160(1161),u1161(1162),u1162(1163),u1163(1164),u1164(1165),u1165(1166),u1166(1167),u1167(1168),u1168(1169),u1169(1170),
                     u1170(1171),u1171(1172),u1172(1173),u1173(1174),u1174(1175),u1175(1176),u1176(1177),u1177(1178),u1178(1179),u1179(1180),
                     u1180(1181),u1181(1182),u1182(1183),u1183(1184),u1184(1185),u1185(1186),u1186(1187),u1187(1188),u1188(1189),u1189(1190),
                     u1190(1191),u1191(1192),u1192(1193),u1193(1194),u1194(1195),u1195(1196),u1196(1197),u1197(1198),u1198(1199),u1199(1200),
                     u1200(1201),u1201(1202),u1202(1203),u1203(1204),u1204(1205),u1205(1206),u1206(1207),u1207(1208),u1208(1209),u1209(1210),
                     u1210(1211),u1211(1212),u1212(1213),u1213(1214),u1214(1215),u1215(1216),u1216(1217),u1217(1218),u1218(1219),u1219(1220),
                     u1220(1221),u1221(1222),u1222(1223),u1223(1224),u1224(1225),u1225(1226),u1226(1227),u1227(1228),u1228(1229),u1229(1230),
                     u1230(1231),u1231(1232),u1232(1233),u1233(1234),u1234(1235),u1235(1236),u1236(1237),u1237(1238),u1238(1239),u1239(1240),
                     u1240(1241),u1241(1242),u1242(1243),u1243(1244),u1244(1245),u1245(1246),u1246(1247),u1247(1248),u1248(1249),u1249(1250),
                     u1250(1251),u1251(1252),u1252(1253),u1253(1254),u1254(1255),u1255(1256),u1256(1257),u1257(1258),u1258(1259),u1259(1260),
                     u1260(1261),u1261(1262),u1262(1263),u1263(1264),u1264(1265),u1265(1266),u1266(1267),u1267(1268),u1268(1269),u1269(1270),
                     u1270(1271),u1271(1272),u1272(1273),u1273(1274),u1274(1275),u1275(1276),u1276(1277),u1277(1278),u1278(1279),u1279(1280),
                     u1280(1281),u1281(1282),u1282(1283),u1283(1284),u1284(1285),u1285(1286),u1286(1287),u1287(1288),u1288(1289),u1289(1290),
                     u1290(1291),u1291(1292),u1292(1293),u1293(1294),u1294(1295),u1295(1296),u1296(1297),u1297(1298),u1298(1299),u1299(1300),
                     u1300(1301),u1301(1302),u1302(1303),u1303(1304),u1304(1305),u1305(1306),u1306(1307),u1307(1308),u1308(1309),u1309(1310),
                     u1310(1311),u1311(1312),u1312(1313),u1313(1314),u1314(1315),u1315(1316),u1316(1317),u1317(1318),u1318(1319),u1319(1320),
                     u1320(1321),u1321(1322),u1322(1323),u1323(1324),u1324(1325),u1325(1326),u1326(1327),u1327(1328),u1328(1329),u1329(1330),
                     u1330(1331),u1331(1332),u1332(1333),u1333(1334),u1334(1335),u1335(1336),u1336(1337),u1337(1338),u1338(1339),u1339(1340),
                     u1340(1341),u1341(1342),u1342(1343),u1343(1344),u1344(1345),u1345(1346),u1346(1347),u1347(1348),u1348(1349),u1349(1350),
                     u1350(1351),u1351(1352),u1352(1353),u1353(1354),u1354(1355),u1355(1356),u1356(1357),u1357(1358),u1358(1359),u1359(1360),
                     u1360(1361),u1361(1362),u1362(1363),u1363(1364),u1364(1365),u1365(1366),u1366(1367),u1367(1368),u1368(1369),u1369(1370),
                     u1370(1371),u1371(1372),u1372(1373),u1373(1374),u1374(1375),u1375(1376),u1376(1377),u1377(1378),u1378(1379),u1379(1380),
                     u1380(1381),u1381(1382),u1382(1383),u1383(1384),u1384(1385),u1385(1386),u1386(1387),u1387(1388),u1388(1389),u1389(1390),
                     u1390(1391),u1391(1392),u1392(1393),u1393(1394),u1394(1395),u1395(1396),u1396(1397),u1397(1398),u1398(1399),u1399(1400),
                     u1400(1401),u1401(1402),u1402(1403),u1403(1404),u1404(1405),u1405(1406),u1406(1407),u1407(1408),u1408(1409),u1409(1410),
                     u1410(1411),u1411(1412),u1412(1413),u1413(1414),u1414(1415),u1415(1416),u1416(1417),u1417(1418),u1418(1419),u1419(1420),
                     u1420(1421),u1421(1422),u1422(1423),u1423(1424),u1424(1425),u1425(1426),u1426(1427),u1427(1428),u1428(1429),u1429(1430),
                     u1430(1431),u1431(1432),u1432(1433),u1433(1434),u1434(1435),u1435(1436),u1436(1437),u1437(1438),u1438(1439),u1439(1440),
                     u1440(1441),u1441(1442),u1442(1443),u1443(1444),u1444(1445),u1445(1446),u1446(1447),u1447(1448),u1448(1449),u1449(1450),
                     u1450(1451),u1451(1452),u1452(1453),u1453(1454),u1454(1455),u1455(1456),u1456(1457),u1457(1458),u1458(1459),u1459(1460),
                     u1460(1461),u1461(1462),u1462(1463),u1463(1464),u1464(1465),u1465(1466),u1466(1467),u1467(1468),u1468(1469),u1469(1470),
                     u1470(1471),u1471(1472),u1472(1473),u1473(1474),u1474(1475),u1475(1476),u1476(1477),u1477(1478),u1478(1479),u1479(1480),
                     u1480(1481),u1481(1482),u1482(1483),u1483(1484),u1484(1485),u1485(1486),u1486(1487),u1487(1488),u1488(1489),u1489(1490),
                     u1490(1491),u1491(1492),u1492(1493),u1493(1494),u1494(1495),u1495(1496),u1496(1497),u1497(1498),u1498(1499),u1499(1500),
                     u1500(1501),u1501(1502),u1502(1503),u1503(1504),u1504(1505),u1505(1506),u1506(1507),u1507(1508),u1508(1509),u1509(1510),
                     u1510(1511),u1511(1512),u1512(1513),u1513(1514),u1514(1515),u1515(1516),u1516(1517),u1517(1518),u1518(1519),u1519(1520),
                     u1520(1521),u1521(1522),u1522(1523),u1523(1524),u1524(1525),u1525(1526),u1526(1527),u1527(1528),u1528(1529),u1529(1530),
                     u1530(1531),u1531(1532),u1532(1533),u1533(1534),u1534(1535),u1535(1536),u1536(1537),u1537(1538),u1538(1539),u1539(1540),
                     u1540(1541),u1541(1542),u1542(1543),u1543(1544),u1544(1545),u1545(1546),u1546(1547),u1547(1548),u1548(1549),u1549(1550),
                     u1550(1551),u1551(1552),u1552(1553),u1553(1554),u1554(1555),u1555(1556),u1556(1557),u1557(1558),u1558(1559),u1559(1560),
                     u1560(1561),u1561(1562),u1562(1563),u1563(1564),u1564(1565),u1565(1566),u1566(1567),u1567(1568),u1568(1569),u1569(1570),
                     u1570(1571),u1571(1572),u1572(1573),u1573(1574),u1574(1575),u1575(1576),u1576(1577),u1577(1578),u1578(1579),u1579(1580),
                     u1580(1581),u1581(1582),u1582(1583),u1583(1584),u1584(1585),u1585(1586),u1586(1587),u1587(1588),u1588(1589),u1589(1590),
                     u1590(1591),u1591(1592),u1592(1593),u1593(1594),u1594(1595),u1595(1596),u1596(1597),u1597(1598),u1598(1599),u1599(1600),
                     u1600(1601),u1601(1602),u1602(1603),u1603(1604),u1604(1605),u1605(1606),u1606(1607),u1607(1608),u1608(1609),u1609(1610),
                     u1610(1611),u1611(1612),u1612(1613),u1613(1614),u1614(1615),u1615(1616),u1616(1617),u1617(1618),u1618(1619),u1619(1620),
                     u1620(1621),u1621(1622),u1622(1623),u1623(1624),u1624(1625),u1625(1626),u1626(1627),u1627(1628),u1628(1629),u1629(1630),
                     u1630(1631),u1631(1632),u1632(1633),u1633(1634),u1634(1635),u1635(1636),u1636(1637),u1637(1638),u1638(1639),u1639(1640),
                     u1640(1641),u1641(1642),u1642(1643),u1643(1644),u1644(1645),u1645(1646),u1646(1647),u1647(1648),u1648(1649),u1649(1650),
                     u1650(1651),u1651(1652),u1652(1653),u1653(1654),u1654(1655),u1655(1656),u1656(1657),u1657(1658),u1658(1659),u1659(1660),
                     u1660(1661),u1661(1662),u1662(1663),u1663(1664),u1664(1665),u1665(1666),u1666(1667),u1667(1668),u1668(1669),u1669(1670),
                     u1670(1671),u1671(1672),u1672(1673),u1673(1674),u1674(1675),u1675(1676),u1676(1677),u1677(1678),u1678(1679),u1679(1680),
                     u1680(1681),u1681(1682),u1682(1683),u1683(1684),u1684(1685),u1685(1686),u1686(1687),u1687(1688),u1688(1689),u1689(1690),
                     u1690(1691),u1691(1692),u1692(1693),u1693(1694),u1694(1695),u1695(1696),u1696(1697),u1697(1698),u1698(1699),u1699(1700),
                     u1700(1701),u1701(1702),u1702(1703),u1703(1704),u1704(1705),u1705(1706),u1706(1707),u1707(1708),u1708(1709),u1709(1710),
                     u1710(1711),u1711(1712),u1712(1713),u1713(1714),u1714(1715),u1715(1716),u1716(1717),u1717(1718),u1718(1719),u1719(1720),
                     u1720(1721),u1721(1722),u1722(1723),u1723(1724),u1724(1725),u1725(1726),u1726(1727),u1727(1728),u1728(1729),u1729(1730),
                     u1730(1731),u1731(1732),u1732(1733),u1733(1734),u1734(1735),u1735(1736),u1736(1737),u1737(1738),u1738(1739),u1739(1740),
                     u1740(1741),u1741(1742),u1742(1743),u1743(1744),u1744(1745),u1745(1746),u1746(1747),u1747(1748),u1748(1749),u1749(1750),
                     u1750(1751),u1751(1752),u1752(1753),u1753(1754),u1754(1755),u1755(1756),u1756(1757),u1757(1758),u1758(1759),u1759(1760),
                     u1760(1761),u1761(1762),u1762(1763),u1763(1764),u1764(1765),u1765(1766),u1766(1767),u1767(1768),u1768(1769),u1769(1770),
                     u1770(1771),u1771(1772),u1772(1773),u1773(1774),u1774(1775),u1775(1776),u1776(1777),u1777(1778),u1778(1779),u1779(1780),
                     u1780(1781),u1781(1782),u1782(1783),u1783(1784),u1784(1785),u1785(1786),u1786(1787),u1787(1788),u1788(1789),u1789(1790),
                     u1790(1791),u1791(1792),u1792(1793),u1793(1794),u1794(1795),u1795(1796),u1796(1797),u1797(1798),u1798(1799),u1799(1800),
                     u1800(1801),u1801(1802),u1802(1803),u1803(1804),u1804(1805),u1805(1806),u1806(1807),u1807(1808),u1808(1809),u1809(1810),
                     u1810(1811),u1811(1812),u1812(1813),u1813(1814),u1814(1815),u1815(1816),u1816(1817),u1817(1818),u1818(1819),u1819(1820),
                     u1820(1821),u1821(1822),u1822(1823),u1823(1824),u1824(1825),u1825(1826),u1826(1827),u1827(1828),u1828(1829),u1829(1830),
                     u1830(1831),u1831(1832),u1832(1833),u1833(1834),u1834(1835),u1835(1836),u1836(1837),u1837(1838),u1838(1839),u1839(1840),
                     u1840(1841),u1841(1842),u1842(1843),u1843(1844),u1844(1845),u1845(1846),u1846(1847),u1847(1848),u1848(1849),u1849(1850),
                     u1850(1851),u1851(1852),u1852(1853),u1853(1854),u1854(1855),u1855(1856),u1856(1857),u1857(1858),u1858(1859),u1859(1860),
                     u1860(1861),u1861(1862),u1862(1863),u1863(1864),u1864(1865),u1865(1866),u1866(1867),u1867(1868),u1868(1869),u1869(1870),
                     u1870(1871),u1871(1872),u1872(1873),u1873(1874),u1874(1875),u1875(1876),u1876(1877),u1877(1878),u1878(1879),u1879(1880),
                     u1880(1881),u1881(1882),u1882(1883),u1883(1884),u1884(1885),u1885(1886),u1886(1887),u1887(1888),u1888(1889),u1889(1890),
                     u1890(1891),u1891(1892),u1892(1893),u1893(1894),u1894(1895),u1895(1896),u1896(1897),u1897(1898),u1898(1899),u1899(1900),
                     u1900(1901),u1901(1902),u1902(1903),u1903(1904),u1904(1905),u1905(1906),u1906(1907),u1907(1908),u1908(1909),u1909(1910),
                     u1910(1911),u1911(1912),u1912(1913),u1913(1914),u1914(1915),u1915(1916),u1916(1917),u1917(1918),u1918(1919),u1919(1920),
                     u1920(1921),u1921(1922),u1922(1923),u1923(1924),u1924(1925),u1925(1926),u1926(1927),u1927(1928),u1928(1929),u1929(1930),
                     u1930(1931),u1931(1932),u1932(1933),u1933(1934),u1934(1935),u1935(1936),u1936(1937),u1937(1938),u1938(1939),u1939(1940),
                     u1940(1941),u1941(1942),u1942(1943),u1943(1944),u1944(1945),u1945(1946),u1946(1947),u1947(1948),u1948(1949),u1949(1950),
                     u1950(1951),u1951(1952),u1952(1953),u1953(1954),u1954(1955),u1955(1956),u1956(1957),u1957(1958),u1958(1959),u1959(1960),
                     u1960(1961),u1961(1962),u1962(1963),u1963(1964),u1964(1965),u1965(1966),u1966(1967),u1967(1968),u1968(1969),u1969(1970),
                     u1970(1971),u1971(1972),u1972(1973),u1973(1974),u1974(1975),u1975(1976),u1976(1977),u1977(1978),u1978(1979),u1979(1980),
                     u1980(1981),u1981(1982),u1982(1983),u1983(1984),u1984(1985),u1985(1986),u1986(1987),u1987(1988),u1988(1989),u1989(1990),
                     u1990(1991),u1991(1992),u1992(1993),u1993(1994),u1994(1995),u1995(1996),u1996(1997),u1997(1998),u1998(1999),u1999(2000)}
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A unique number for each power output channel. Its value
             ranges between 1 and total number of output channels.
             This value is equivalent to the output channel number at
             the type label of the crate or power supply, but because the SMI
             index starts at 1, index 1 corresponds to U0.
            "
    ::= { outputEntry 1 }

outputName OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (1..4))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "A textual string containing a short name of the
             output. If the crate is equipped with an alphanumeric
             display, this string is shown to identify a output channel.
            "
    ::= { outputEntry 2 }

outputGroup OBJECT-TYPE
    SYNTAX  Integer32 (1..63)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The group number (1...63) assigned to each channel.
            If commands shall be sent to all channels with a specific group number (e.g.
            with the groupsSwitch command defined below), additional bits can be added to
            the group number:

            HLgggggg
            g: Group number (1...63)
            L: Mask bit: 1: high voltage channels only, no low voltage channels
            H: Mask bit: 1: low voltage channels only, no high voltage channels

            Special groups:    0: all (LV+HV) channels
                            0x40: all, but no LV channels
                            0x80: all, but no HV channels
           "
    ::= { outputEntry 3 }


outputStatus OBJECT-TYPE
    SYNTAX  BITS {
        outputOn (0),
        outputInhibit (1) ,
        outputFailureMinSenseVoltage (2),
        outputFailureMaxSenseVoltage (3),
        outputFailureMaxTerminalVoltage (4),
        outputFailureMaxCurrent (5),
        outputFailureMaxTemperature (6),
        outputFailureMaxPower (7),
        -- reserved
        outputFailureTimeout (9),
        outputCurrentLimited (10),
        outputRampUp (11),
        outputRampDown (12),
        outputEnableKill(13),
        outputEmergencyOff (14),
        outputAdjusting (15),
        outputConstantVoltage (16),
        outputLowCurrentRange (17),
        outputCurrentBoundsExceeded (18),
        outputFailureCurrentLimit (19),
        outputCurrentIncreasing (20),
        outputCurrentDecreasing (21),
        outputConstantPower (22),
        outputVoltageRampSpeedLimitDisabled (23),
        outputVoltageBottomReached (24),
        outputInitCrcCheckBad (25)
    }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "A bit string which shows the status (health and operating conditions) of one output channel.
             If a bit is set (1), the explanation is satisfied:
                outputOn (0),                           output channel is on
                outputInhibit(1),                       external (hardware-)inhibit of the output channel
                outputFailureMinSenseVoltage (2)        Supervision limit hurt: Sense voltage is too low
                outputFailureMaxSenseVoltage (3)        Supervision limit hurt: Sense voltage is too high
                outputFailureMaxTerminalVoltage (4)     Supervision limit hurt: Terminal voltage is too high
                outputFailureMaxCurrent (5)             Supervision limit hurt: Current is too high
                outputFailureMaxTemperature (6)         Supervision limit hurt: Heat sink temperature is too high
                outputFailureMaxPower (7)               Supervision limit hurt: Output power is too high
                outputFailureTimeout (9)                Communication timeout between output channel and main control
                outputCurrentLimited (10)               Current limiting is active (constant current mode)
                outputRampUp (11)                       Output voltage is increasing (e.g. after switch on)
                outputRampDown (12)                     Output voltage is decreasing (e.g. after switch off)
                outputEnableKill (13)                   EnableKill is active
                outputEmergencyOff (14)                 EmergencyOff event is active
                outputAdjusting (15)                    Fine adjustment is working
                outputConstantVoltage (16)              Voltage control (constant voltage mode)
                outputLowCurrentRange (17)              The channel is operating in the low current measurement range
                outputCurrentBoundsExceeded (18)        Output current is out of bounds
                outputFailureCurrentLimit (19)          Hardware current limit (EHS) / trip (EDS, EBS) was exceeded
                outputCurrentIncreasing (20)            Output current is increasing
                outputCurrentDecreasing (21)            Output current is decreasing
                outputConstantPower (22)                Power control (constant power mode)
                outputVoltageRampSpeedLimitDisabled (23)HV special: VoltageRampSpeed limitation is disabled, while EnableKill or delayed trip was configured
                outputVoltageBottomReached (24)         HV special: After a current trip the voltage bottom is reached
                outputInitCrcCheckBad (25)              Initial selftest failed
            "

    ::= { outputEntry 4 }




outputMeasurementSenseVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured voltage at the sense input lines."
    ::= { outputEntry 5 }

outputMeasurementTerminalVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured voltage at the output terminals."
    ::= { outputEntry 6 }

outputMeasurementCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "A"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured output current."
    ::= { outputEntry 7 }

outputMeasurementTemperature OBJECT-TYPE
    SYNTAX  INTEGER { ok (-128), failure(127) }
    UNITS   "deg.C"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured temperature of the power module."
    ::= { outputEntry 8 }


outputSwitch OBJECT-TYPE
    SYNTAX  INTEGER { off (0), on (1), resetEmergencyOff (2),  setEmergencyOff (3), clearEvents (10), setVoltageRippleMeasurementOff(20), setVoltageMeasurementOn(21), setRippleMeasurementOn(22), setVoltageRippleMeasurementOn(23) }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Read: An enumerated value which shows the current state of
             the output channel.

             Write: Change the state of the channel.
             If the channel is On, and the write value is Off, then the channel
             will switch Off.
             If the channel is Off, and the write value is On, and if no other
             signals (mainInhibit, outputInhibit, outputEmergencyOff or outputFailureMaxCurrent)
             are active, then the channel will switch on.

             If the write value is resetEmergencyOff, then the channel will
             leave the state EmergencyOff. A write of clearEvents is necessary
             before the voltage can ramp up again.
             If the write value is setEmergencyOff, then the channel will have
             the state EmergencyOff, which means that the High Voltage will
             switch off without a ramp and reset of the outputVoltage to null volt.

             If the write value is clearEvents, then all failure messages
             of the outputStatus will be reset (all channel events, all module events
             and the state emergencyOff).
            "
    ::= { outputEntry 9 }

outputVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The nominal output voltage of the channel."
    ::= { outputEntry 10 }

outputAdjustVoltage OBJECT-TYPE
    SYNTAX  Integer32 (-128..127)
    MAX-ACCESS  read-write
    STATUS  obsolete
    DESCRIPTION
            "A posibillity to make small changes of the output voltage."
    ::= { outputEntry 11 }

outputCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "A"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The current limit of the channel."
    ::= { outputEntry 12 }

outputVoltageRiseRate OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V/s"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Voltage Fall Slew Rate [V/s].
             The slew rate of the output voltage if it increases (after switch on or if the Voltage has been
             changed).
            "
    ::= { outputEntry 13 }

outputVoltageFallRate OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V/s"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Voltage Rise Slew Rate [V/s].
             The slew rate of the output voltage if it decreases (after switch off or if the Voltage has been
             changed).
            "
    ::= { outputEntry 14 }

outputSupervisionBehavior OBJECT-TYPE
    SYNTAX  Integer32 (0..65535)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "A bit field packed into an integer which define the behavior of the output channel / power supply
             after failures.
             For each supervision value, a two-bit field exists.
             The enumeration of this value (..L+..H*2) is:
             WIENER LV devices
                0           ignore the failure
                1           switch off this channel
                2           switch off all channels with the same group number
                3           switch off the complete crate.
               iseg HV devices
                0           ignore the failure
                1           switch off this channel by ramp down the voltage
                2           switch off this channel by a emergencyOff
                3           switch off the whole board of the HV module by emergencyOff.
             The position of the bit fields in the integer value are:
                Bit 0, 1:   outputFailureMinSenseVoltage
                Bit 2, 3:   outputFailureMaxSenseVoltage
                Bit 4, 5:   outputFailureMaxTerminalVoltage
                Bit 6, 7:   outputFailureMaxCurrent
                Bit 8, 9:   outputFailureMaxTemperature
                Bit 10, 11: outputFailureMaxPower
                Bit 12, 13: outputFailureInhibit
                Bit 14, 15: outputFailureTimeout
            "

    ::= { outputEntry 15 }

outputSupervisionMinSenseVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "If the measured sense voltage is below this value, the power supply
             performs the function defined by SupervisionAction.
            "
    ::= { outputEntry 16 }

outputSupervisionMaxSenseVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "If the measured sense voltage is above this value, the power supply
             performs the function defined by SupervisionAction.
            "
    ::= { outputEntry 17 }

outputSupervisionMaxTerminalVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "If the measured voltage at the power supply output
             terminals is above this value, the power supply
             performs the function defined by SupervisionAction.
            "
    ::= { outputEntry 18 }

outputSupervisionMaxCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "A"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "If the measured current is above this value, the power supply
             performs the function defined by SupervisionAction.
            "
    ::= { outputEntry 19 }

outputSupervisionMaxTemperature OBJECT-TYPE
--    SYNTAX  Integer32 (-128..127)
    SYNTAX  Integer32
    UNITS   "deg.C"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "If the measured module temperature is above this value, the power supply
             performs the function defined by SupervisionAction.
            "
    ::= { outputEntry 20 }

outputConfigMaxSenseVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The maximum possible value of the sense voltage"
    ::= { outputEntry 21 }

outputConfigMaxTerminalVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The maximum possible value of the terminal voltage"
    ::= { outputEntry 22 }

outputConfigMaxCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "A"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The maximum possible value of the output current"
    ::= { outputEntry 23 }

outputSupervisionMaxPower OBJECT-TYPE
    SYNTAX  Float
    UNITS   "W"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "If the measured power (measured current * measured terminal voltage)
             is above this value, the power supply performs the function defined
             by SupervisionAction.
            "
    ::= { outputEntry 24 }

outputCurrentRiseRate OBJECT-TYPE
    SYNTAX  Float
    UNITS   "A/s"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Current Fall Slew Rate [A/s].
             The slew rate of the output current if it increases (after
             switch on or if the Current has been changed).
            "
    ::= { outputEntry 25 }

outputCurrentFallRate OBJECT-TYPE
    SYNTAX  Float
    UNITS   "A/s"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Current Rise Slew Rate [A/s].
             The slew rate of the output current if it decreases (after
             switch off or if the Current has been changed).
            "
    ::= { outputEntry 26 }

outputTripTimeMaxCurrent OBJECT-TYPE
    SYNTAX  OutputTripTime
    UNITS   "ms"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Minimum time the outputSupervisionMaxCurrent threshold must be violated to activate the trip action [ms].
             The trip action is defined in outputSupervisionBehavior (bit field outputFailureMaxCurrent) or the new outputTripActionMaxCurrent."
    ::= { outputEntry 27 }

outputHardwareLimitVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Hardware Voltage Limit [V].
             Potentiometer to adjust the global hardware voltage limit (for all
             channels of a module).
            "
    ::= { outputEntry 28 }

outputHardwareLimitCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "A"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Hardware Current Limit [A].
             Potentiometer to adjust the global hardware current limit (for all
             channels of a module).
            "
    ::= { outputEntry 29 }

outputConfigGainSenseVoltage OBJECT-TYPE
    SYNTAX  Float
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The gain value of the sense voltage"
    ::= { outputEntry 30 }

outputConfigOffsetSenseVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The offset value of the sense voltage"
    ::= { outputEntry 31 }

outputConfigGainTerminalVoltage OBJECT-TYPE
    SYNTAX  Float
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The gain value of the sense voltage"
    ::= { outputEntry 32 }

outputConfigOffsetTerminalVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The offset value of the sense voltage"
    ::= { outputEntry 33 }

outputConfigGainCurrent OBJECT-TYPE
    SYNTAX  Float
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The gain value of the sense voltage"
    ::= { outputEntry 34 }

outputConfigOffsetCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The offset value of the sense voltage"
    ::= { outputEntry 35 }

outputUserConfig OBJECT-TYPE
    SYNTAX  Integer32 (0..127)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Definition of user-changeable items.
             A bit field packed into an integer which define the behavior of the output channel.
             Usable for WIENER LV devices only.
             The position of the bit fields in the integer value are:
             Bit 0:    Voltage ramping at switch off:
                           0: Ramp down at switch off.
                           1: No ramp at switch off (immediate off)
             Bit 1, 2: Set different regulation modes, dependent on the
                           cable inductance:
                           0: fast:     short cables, up to 1 meter.
                           1: moderate: cables from 1 to 30 meter.
                           2: fast:     identical to 0 (should not be used)
                           3: slow:     cables longer than 30 meter.
             Bit 3:    Internal sense line connection to the output (MPOD only):
                           0: The sense input at the sense connector is used
                              for regulation.
                           1: The output voltage is used for regulation.
                              Any signals at the sense connector are ignored.
             Bit 4:    Enable External Inhibit input.
                           0: The external inhibit input is ignored.
                           1: The external inhibit input must be connected to
                              a voltage source to allow switch on.
             Bit 5:    Disable Global Inhibit inputs.
                           0: The global inhibit/interlock inputs of the system is active.
                           1: The global inhibit/interlock inputs of the system is ignored.
             Bit 6:    Automatic Power On.
                           0: After switching the main system switch ON, the output is not
                              switched on automatically. A separate outputSwitch command is
                              required.
                           1: After switching the main system switch ON, the output is
                              switched on automatically. If 'Disable Global Inhibit' (bit 5)
                              is set, the output will be switched on regardless of the global
                              inhibit/interlock signals.
             Community required for write access: guru.
            "
    ::= { outputEntry 37 }

outputRegulationMode OBJECT-TYPE
    SYNTAX  INTEGER { fast (0), moderate (1), slow (2) }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Definition of the regulation mode.
             Deprecated, use outputUserConfig for this function in the future!
             It is possible to set different regulation modes, dependent on the
                cable inductance.
                fast:     short cables, up to 1 meter.
                moderate: cables from 1 to 30 meter.
                slow:     cables longer than 30 meter.
             Community required for write access: guru.
            "
    ::= { outputEntry 38 }

outputConfigMaxTemperature OBJECT-TYPE
    SYNTAX  Integer32
--    SYNTAX  Integer32 (-128..127)
    UNITS   "deg.C"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The maximum possible value of outputSupervisionMaxTemperature."
    ::= { outputEntry 39 }

outputResistance OBJECT-TYPE
    SYNTAX  Float
    UNITS   "Ohm"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Item to specify an external resistor. For instance a wire resistor or an external resistor
             to protect the detectot which is supplied by a cascaded HV module.
            "
    ::= { outputEntry 40 }

outputTripTimeMinSenseVoltage OBJECT-TYPE
    SYNTAX  OutputTripTime
    UNITS   "ms"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Minimum time the outputSupervisionMinSenseVoltage threshold must be violated to activate the trip action [ms].
             The trip action is defined in outputSupervisionBehavior or the new outputTripActionMinSenseVoltage.
            "
    ::= { outputEntry 41 }

outputTripTimeMaxSenseVoltage OBJECT-TYPE
    SYNTAX  OutputTripTime
    UNITS   "ms"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Minimum time the outputSupervisionMaxSenseVoltage threshold must be violated to activate the trip action [ms].
             The trip action is defined in outputSupervisionBehavior or the new outputTripActionMaxSenseVoltage.
            "
    ::= { outputEntry 42 }

outputTripTimeMaxTerminalVoltage OBJECT-TYPE
    SYNTAX  OutputTripTime
    UNITS   "ms"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Minimum time the outputSupervisionMaxTerminalVoltage threshold must be violated to activate the trip action [ms].
             The trip action is defined in outputSupervisionBehavior or the new outputTripActionMaxTerminalVoltage.
            "
    ::= { outputEntry 43 }

outputTripTimeMaxTemperature OBJECT-TYPE
    SYNTAX  OutputTripTime
    UNITS   "ms"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Minimum time the outputSupervisionMaxTemperature threshold must be violated to activate the trip action [ms].
             The trip action is defined in outputSupervisionBehavior or the new outputTripActionMaxTemperature.
            "
    ::= { outputEntry 44 }

outputTripTimeMaxPower OBJECT-TYPE
    SYNTAX  OutputTripTime
    UNITS   "ms"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Minimum time the outputSupervisionMaxPower threshold must be violated to activate the trip action [ms].
             The trip action is defined in outputSupervisionBehavior or the new outputTripActionMaxPower.
            "
    ::= { outputEntry 45 }

outputTripTimeTimeout OBJECT-TYPE
    SYNTAX  OutputTripTime
    UNITS   "ms"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Maximum time the communication between module and controller can paused before activation the trip action [ms].
             The trip action is defined in outputSupervisionBehavior or the new outputTripActionTimeout.
            "
    ::= { outputEntry 46 }

outputTripActionMinSenseVoltage OBJECT-TYPE
    SYNTAX  OutputTripAction
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Trip action if outputSuperisionMinSenseVoltage threshold has been violated.
             The enumerated value is:
                WIENER LV devices
                   0           ignore the failure
                   1           switch off this channel
                   2           switch off all channels with the same group number
                   3           switch off the complete crate
                iseg HV devices
                   0           ignore the failure
                   1           switch off this channel by ramp down the voltage
                   2           switch off this channel by a emergencyOff
                   3           switch off the whole board of the HV module by emergencyOff.
             This is a direct access of bits 0..1 of outputSupervisionBehavior.
            "
    ::= { outputEntry 47 }

outputTripActionMaxSenseVoltage OBJECT-TYPE
    SYNTAX  OutputTripAction
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Trip action if outputSuperisionMaxSenseVoltage threshold has been violated.
             The enumerated value is:
                WIENER LV devices
                   0           ignore the failure
                   1           switch off this channel
                   2           switch off all channels with the same group number
                   3           switch off the complete crate
                iseg HV devices
                   0           ignore the failure
                   1           switch off this channel by ramp down the voltage
                   2           switch off this channel by a emergencyOff
                   3           switch off the whole board of the HV module by emergencyOff.
             This is a direct access of bits 2..3 of outputSupervisionBehavior.
            "
    ::= { outputEntry 48 }

outputTripActionMaxTerminalVoltage OBJECT-TYPE
    SYNTAX  OutputTripAction
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Trip action if outputSuperisionMaxTerminalVoltage threshold has been violated.
             The enumerated value is:
                WIENER LV devices
                   0           ignore the failure
                   1           switch off this channel
                   2           switch off all channels with the same group number
                   3           switch off the complete crate
                iseg HV devices
                   0           ignore the failure
                   1           switch off this channel by ramp down the voltage
                   2           switch off this channel by a emergencyOff
                   3           switch off the whole board of the HV module by emergencyOff.
             This is a direct access of bits 4..5 of outputSupervisionBehavior.
            "
    ::= { outputEntry 49 }

outputTripActionMaxCurrent OBJECT-TYPE
    SYNTAX  OutputTripAction
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Trip action if outputSuperisionMaxCurrent threshold has been violated.
             The enumerated value is:
             WIENER LV devices
                0           ignore the failure
                1           switch off this channel
                2           switch off all channels with the same group number
                3           switch off the complete crate.
               iseg HV devices
                0           ignore the failure
                1           switch off this channel by ramp down the voltage
                2           switch off this channel by a emergencyOff
                3           switch off the whole board of the HV module by emergencyOff.
             This is a direct access of bits 6..7 of outputSupervisionBehavior.
            "
    ::= { outputEntry 50 }

outputTripActionMaxTemperature OBJECT-TYPE
    SYNTAX  OutputTripAction
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Trip action if outputSuperisionMaxTemperature threshold has been violated.
             The enumerated value is:
                WIENER LV devices
                   0           ignore the failure
                   1           switch off this channel
                   2           switch off all channels with the same group number
                   3           switch off the complete crate
                iseg HV devices
                   0           ignore the failure
                   1           switch off this channel by ramp down the voltage
                   2           switch off this channel by a emergencyOff
                   3           switch off the whole board of the HV module by emergencyOff.
             This is a direct access of bits 8..9 of outputSupervisionBehavior.
            "
    ::= { outputEntry 51 }

outputTripActionMaxPower OBJECT-TYPE
    SYNTAX  OutputTripAction
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Trip action if outputSuperisionMaxPower threshold has been violated.
             The enumerated value is:
                WIENER LV devices
                   0           ignore the failure
                   1           switch off this channel
                   2           switch off all channels with the same group number
                   3           switch off the complete crate
                iseg HV devices
                   0           ignore the failure
                   1           switch off this channel by ramp down the voltage
                   2           switch off this channel by a emergencyOff
                   3           switch off the whole board of the HV module by emergencyOff.
             This is a direct access of bits 10..11 of outputSupervisionBehavior.
            "
    ::= { outputEntry 52 }

outputTripActionExternalInhibit OBJECT-TYPE
    SYNTAX  OutputTripAction
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Trip action if the external inhibit input has been activated.
             The enumerated value is:
                WIENER LV devices
                   0           ignore the failure
                   1           switch off this channel
                   2           switch off all channels with the same group number
                   3           switch off the complete crate
                iseg HV devices
                   0           ignore the failure
                   1           switch off this channel by ramp down the voltage
                   2           switch off this channel by a emergencyOff
                   3           switch off the whole board of the HV module by emergencyOff.
             This is a direct access of bits 12..13 of outputSupervisionBehavior.
            "
    ::= { outputEntry 53 }

outputTripActionTimeout OBJECT-TYPE
    SYNTAX  OutputTripAction
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Trip action if the communication between module and controller has been paused longer
             than outputTripTimeTimeout.
             The enumerated value is:
             WIENER LV devices
                0           ignore the failure
                1           switch off this channel
                2           switch off all channels with the same group number
                3           switch off the complete crate
             iseg HV devices
                0           ignore the failure
                1           switch off this channel by ramp down the voltage
                2           switch off this channel by a emergencyOff
                3           switch off the whole board of the HV module by emergencyOff.
             This is a direct access of bits 14..15 of outputSupervisionBehavior.
            "
    ::= { outputEntry 54 }

outputVoltageRampPriority OBJECT-TYPE
    SYNTAX  Integer32 (0..15)
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Item to set the priority of channel voltage ramp concerning to the other channels.
             Channels with the lowest value have the highest priority and starts ramping up from zero first.
             When all these ramps have finished, the channels with next priority follow.
             The channels with the highest value have the highest priority and starts ramping ramping down as first.
            "
    ::= { outputEntry 55 }

outputVoltageBottom OBJECT-TYPE
    SYNTAX  Float
    UNITS   "%"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Reduce output voltage after a discharge event to the percentage value of outputVoltageBottom
             output voltage = outputVoltageBottom * voltageSet / 100
            "
    ::= { outputEntry 56 }

outputMeasurementReturnCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "A"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured output return current."
    ::= { outputEntry 60 }

outputConfigDataS OBJECT-TYPE
    SYNTAX  OCTET STRING
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Configuration Data raw access. This allows to read / write output channel specific
             user configuration data.
             This OID is intended for use by WIENER system software only and my not be accessed directly.
             snmpget: undefined behavior
             snmpset:
                OCTET STRING format for reading data (8 octets):
                   offsetInOctets    4 octets / 32 bit
                   numberOfOctets    4 octets / 32 bit
                OCTET STRING format used for writing data, or returned from the SNMP client after read/write (8+n octets):
                   offsetInOctets    4 octets / 32 bit
                   numberOfOctets    4 octets / 32 bit
                   data              numberOfOctets octets
            "
    ::= { outputEntry 1024 }

outputConfigDataU OBJECT-TYPE
    SYNTAX  OCTET STRING
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Configuration Data raw access. This allows to read / write output channel specific
             user configuration data.
             This OID is intended for use by WIENER system software only and my not be accessed directly.
             snmpget: undefined behavior
             snmpset:
                OCTET STRING format for reading data (8 octets):
                   offsetInOctets   4 octets / 32 bit
                   numberOfOctets   4 octets / 32 bit
                OCTET STRING format returned from the SNMP client, or used for writing data (8+n octets):
                   offsetInOctets   4 octets / 32 bit
                   numberOfOctets   4 octets / 32 bit
                   data             numberOfOctets octets
            "
    ::= { outputEntry 1025 }

-------------------------------------------------------------------------------
-- output->groups
-------------------------------------------------------------------------------

groupsEntry OBJECT-TYPE
    SYNTAX  GroupsEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A table row"
    INDEX   { groupsIndex }
    ::= { groupsTable 1 }

GroupsEntry ::=
    SEQUENCE {
        groupsIndex
            INTEGER,
--      outputGroupsName
--            DisplayString,
--        outputGroupsGroup
--            INTEGER,

--        outputGroupsStatus
--          BITS,
--        outputGroupsMeasurementSenseVoltage
--          Float,
--        outputMeasurementTerminalVoltage
--          Float,
--        outputMeasurementCurrent
--          Float,
--        outputMeasurementTemperature
--          INTEGER,


        groupsSwitch
            INTEGER
--        outputVoltage
--          Float,
--        outputAdjustVoltage
--          INTEGER,
--        outputCurrent
--          Float,

--        outputRampUp
--          Float,
--        outputRampDown
--          Float,

--        outputSupervisionBehavior
--            INTEGER,
--        outputSupervisionMinSenseVoltage
--          Float,
--        outputSupervisionMaxSenseVoltage
--          Float,
--        outputSupervisionMaxTerminalVoltage
--          Float,
--        outputSupervisionMaxCurrent
--          Float,
--        outputSupervisionMaxTemperature
--          INTEGER,

--        outputConfigMaxSenseVoltage
--          Float,
--        outputConfigMaxTerminalVoltage
--          Float,
--        outputConfigMaxCurrent
--          Float,
--        outputSupervisionMaxPower
--          Float,
    }

groupsIndex OBJECT-TYPE
    SYNTAX  Integer32 (0..1999)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A unique number for each power output group. Its value
             ranges between 1 and 1999.
             The special group 0 is predefined and gives access to all channels.
            "
    ::= { groupsEntry 1 }

groupsSwitch OBJECT-TYPE
    SYNTAX  INTEGER { undefined (-1), off (0), on (1), resetEmergencyOff (2),  setEmergencyOff(3), disableKill (4), enableKill (5), disableAdjust(6), enableAdjust(7), enableVoltageRampSpeedLimit(8), disableVoltageRampSpeedLimit(9), clearEvents(10) }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Read: This function is not defined with groups of output channels.

             Write: Switch the state of all channels of a group.
             If any channel is On, and the write value is Off, then all channels
             will switch off.
             If any channel is Off, and the write value is On, and if no other
             signals (mainInhibit, outputInhibit, outputEmergencyOff or  outputFailureMaxCurrent)
             are active, then all channels will switch on.

             If the write value is resetEmergencyOff, then all channels will
             leave the state EmergencyOff. A write of clearEvents is necessary
             before the voltage can ramp up again.
             If the write value is setEmergencyOff, then all channels will have
             the state EmergencyOff, which means that the High Voltage will
             switch off without a ramp and reset of the outputVoltage to null volt.

             If the write value is disableKILL, then all channels will switch
             to disableKill (outputStatus outputDisableKill).
             If the write value is enableKILL, then all channels will switch
             to enableKill (outputStatus outputEnableKill).

             If the write value is enableVoltageRampSpeedLimit, then all channels have
             a voltage rampspeed limit under some conditions like KillEnable or delayed current trip.
             If the write value is disableVoltageRampSpeedLimit, then all channels have no
             voltage rampspeed limit with the effect of possible instabilities.
             Please refer the hard and software manuals for more details.

             If the write value is clearEvents, then all failure messages
             of the outputStatus will be cleared (all channel events,
             all module events and the state outputEmergencyOff will be reset).

             For a detailed description of the different group numbers available
             look at the outputGroup OID above.
            "
    ::= { groupsEntry 9 }

--groupsName OBJECT-TYPE
--    SYNTAX  DisplayString (SIZE (1..4))
--    MAX-ACCESS  read-only
--    STATUS  current
--    DESCRIPTION
--           "A textual string containing a short name of the
--            output. If the crate is equipped with an alphanumeric
--            display, this string is shown to identify a output channel.
--           "
--    ::= { groupsEntry 2 }

-------------------------------------------------------------------------------
-- output->module
-------------------------------------------------------------------------------
-- device related parsing of the HV data items
--
-- advantage:
--    Parsing this branch the user directly recognises the structure
--    of HV/LV devices and the hierarchie of data items,
--    module and channel functions and their interaction.
--    This branch gives an image of the module seen from outsite.
--    The inner structure will be transformed into a simple and reduced namspace
--    which has implemented the common module items and the items for the single
--    channels.
--    Module characteristics will image the propeties to a moduleTable which
--    gives an access to the collected properties of the module items whitout
--    a splitting for board 1 and board 2.
--    The channels sequence will collect all the channels also these
--    from a second board if it is integrated.
-------------------------------------------------------------------------------

moduleEntry OBJECT-TYPE
    SYNTAX  ModuleEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A row in the table of HV/LV modules"
    INDEX   { moduleIndex }
    ::= { moduleTable 1 }

ModuleEntry ::= SEQUENCE {
    moduleIndex                            INTEGER,
    moduleDescription                      OCTET STRING,
--  moduleChannelNumber                    INTEGER32,
--  moduleAuxiliaryNumber                  INTEGER32,
    moduleAuxiliaryMeasurementVoltage      Float,
    moduleHardwareLimitVoltage             Float,
    moduleHardwareLimitCurrent             Float,
    moduleRampSpeedVoltage                 Float,
    moduleRampSpeedCurrent                 Float,
    moduleStatus                           BITS,
    moduleEventStatus                      BITS,
    moduleEventChannelStatus               BITS,
    moduleDoClear                          INTEGER,
--  moduleAuxiliaryTemperatureSensorNumber INTEGER32,
    moduleAuxiliaryMeasurementTemperature  Float,
    moduleConfigDataS                      OCTET STRING,
    moduleConfigDataU                      OCTET STRING
}


moduleIndex OBJECT-TYPE
    SYNTAX INTEGER {
                    ma0(1),ma1(2),ma2(3),ma3(4),ma4(5),ma5(6),ma6(7),ma7(8),ma8(9),ma9(10)}
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A unique number for each HV/LV module. Its value
            ranges between 1 and the total number of HV/LV modules.
            Note, index 1 corresponds to ma0."
    ::= { moduleEntry 1 }


moduleDescription OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE(0..39))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Vendor, FirmwareName, ChannelNumber, SerialNumber, FirmwareRelease
             Vendor WIENER or iseg
             FirmwareName:
                'E16D0'  EDS 16 channels per PCB, distributor module, range of Vmax from VO max to (VO max - 1kV)
                'E16D1'  EDS 16 channels per PCB, distributor module
                'E08C0'  EHS  8 channels per PCB, common GND module
                'E08F0'  EHS  8 channels per PCB, floating GND module
                'E08F2'  EHS  8 channels per PCB, floating GND module, 2 current measurement ranges
                'E08C2'  EHS  8 channels per PCB, common floating GND module, 2 current measurement ranges
                'E08B0'  EBS  8 bipolars channel per PCB, distributor module
                'H101C0' HPS  1 channel  HV high power supply
             ChannelNumber 1 to 64
             SerialNumber  71xxxx
             FirmwareRelease  x.xx
            "
    ::= { moduleEntry 2 }

-------------------------------------------------------------------------------

moduleAuxiliaryMeasurementVoltage OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "The measured module auxiliary voltages."
    ::= { moduleEntry 3 }

moduleAuxiliaryMeasurementVoltage0 OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured module auxiliary voltage."
    ::= { moduleAuxiliaryMeasurementVoltage 1 }

moduleAuxiliaryMeasurementVoltage1 OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured module auxiliary voltage."
    ::= { moduleAuxiliaryMeasurementVoltage 2 }

-------------------------------------------------------------------------------


moduleHardwareLimitVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "%"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The module hardware voltage limit."
    ::= { moduleEntry 4 }

moduleHardwareLimitCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "%"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The module hardware current limit."
    ::= { moduleEntry 5 }

moduleRampSpeedVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "%"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The module voltage ramp speed
             (iseg HV modules have the same ramp speed value for all channels).
            "
    ::= { moduleEntry 6 }

moduleRampSpeedCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "%"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The module current ramp speed
             (iseg HV modules have the same ramp speed value for all channels).
            "
    ::= { moduleEntry 7 }

moduleStatus OBJECT-TYPE
    SYNTAX  BITS {
        moduleIsFineAdjustment (0),
        -- reserved
        moduleIsLiveInsertion (2),
        moduleIsHighVoltageOn (3),
        moduleNeedService (4),
        moduleHardwareLimitVoltageIsGood (5),
        moduleIsInputError (6),
        -- reserved
        moduleIsNoSumError (8),
        moduleIsNoRamp (9),
        moduleSafetyLoopIsGood (10),
        moduleIsEventActive (11),
        moduleIsGood (12),
        moduleSupplyIsGood (13),
        moduleTemperatureIsGood (14),
        moduleIsKillEnable (15)
    }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "A bit string which shows the current module status.
             If a bit is set (1), the explanation is satisfied:
                moduleIsFineAdjustment (0),             Module has reached state fine adjustment.
                moduleIsLiveInsertion (2),              Module is in state live insertion.
                moduleNeedService (4),                  Hardware failure detected (consult iseg Spezialelektronik GmbH).
                moduleIsHardwareLimitVoltageGood (5),   Hardware limit voltage in proper range, using for HV distributor modules with
                                                        current mirror only.
                moduleIsInputError (6),                 Input error in connection with a module access.
                moduleIsNoSumError (8),                 All channels without any failure.
                moduleIsNoRamp (9),                     All channels stable, no is ramp active.
                moduleIsSafetyLoopGood (10),            Safety loop is closed.
                moduleIsEventActive (11),               Any event is active and mask is set.
                moduleIsGood (12),                      Module state is good.
                moduleIsSupplyGood (13),                Power supply is good.
                moduleIsTemperatureGood (14),           Module temperature is good.
                moduleIsKillEnable (15)                 Module state of kill enable.

            "
    ::= { moduleEntry 8 }


moduleEventStatus OBJECT-TYPE
SYNTAX  BITS {
        moduleEventPowerFail (0),
        -- reserved
        moduleEventLiveInsertion (2),
        -- reserved
        moduleEventService (4),
        moduleHardwareLimitVoltageNotGood (5),
        moduleEventInputError (6),
        -- reserved
        -- reserved,
        -- reserved,,
        moduleEventSafetyLoopNotGood (10),
        -- reserved,
        -- reserved,
        moduleEventSupplyNotGood (13),
        moduleEventTemperatureNotGood (14)
        -- reserved,
    }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "A bit string which shows the current module status.
             If a bit is set (1), the explanation is satisfied:
                moduleEventPowerFail (0),               Event power fail generated by the MPOD controller in order to ramp down all HV's (ramp speed=1000V/s)
                moduleEventLiveInsertion (2),           Event live insertion to prepare a hot plug of a module
                moduleEventService (4),                 Module event: Hardware failure detected (consult iseg Spezialelektronik GmbH).
                moduleHardwareLimitVoltageNotGood (5),  Module Event: Hardware voltage limit is not in proper range, using for HV distributor
                                                        modules with current mirror only.
                moduleEventInputError (6),              Module event: There was an input error in connection with a module access
                moduleEventSafetyLoopNotGood (10),      Module event: Safety loop is open.
                moduleEventSupplyNotGood (13),          Module event: At least one of the supplies is not good.
                moduleEventTemperatureNotGood (14),     Module event: Temperature was above the permitted threshold
                                                        (for EDS/EHS temperature above 55 degr.C)

            "

    ::= { moduleEntry 9 }


moduleEventChannelStatus OBJECT-TYPE
    SYNTAX  BITS {
        channel0 (0),
        channel1 (1),
        channel2 (2),
        channel3 (3),
        channel4 (4),
        channel5 (5),
        channel6 (6),
        channel7 (7),
        channel8 (8),
        channel9 (9),
        channel10 (10),
        channel11 (11),
        channel12 (12),
        channel13 (13),
        channel14 (14),
        channel15 (15),
        channel16 (16),
        channel17 (17),
        channel18 (18),
        channel19 (19),
        channel20 (20),
        channel21 (21),
        channel22 (22),
        channel23 (23),
        channel24 (24),
        channel25 (25),
        channel26 (26),
        channel27 (27),
        channel28 (28),
        channel29 (29),
        channel30 (30),
        channel31 (31),
        channel32 (32),
        channel33 (33),
        channel34 (34),
        channel35 (35),
        channel36 (36),
        channel37 (37),
        channel38 (38),
        channel39 (39),
        channel40 (40),
        channel41 (41),
        channel42 (42),
        channel43 (43),
        channel44 (44),
        channel45 (45),
        channel46 (46),
        channel47 (47)
    }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Bit field that reserves one bit for every channel.
               bit 0      HV channel 0
               bit 1      HV channel 1
               bit x      HV channel x
            "
    ::= { moduleEntry 10 }


moduleDoClear OBJECT-TYPE
    SYNTAX  INTEGER { nothing (0), doClear (1) }
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "All events of the module will be cleared."
    ::= { moduleEntry 11 }

-------------------------------------------------------------------------------

moduleAuxiliaryMeasurementTemperature OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "The number of auxiliary temperature sensors in the module."
    ::= { moduleEntry 12 }

moduleAuxiliaryMeasurementTemperature0 OBJECT-TYPE
    SYNTAX  Float
    UNITS   "deg.C"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured module temperature of sensor 1."
    ::= { moduleAuxiliaryMeasurementTemperature 1 }

moduleAuxiliaryMeasurementTemperature1 OBJECT-TYPE
    SYNTAX  Float
    UNITS   "deg.C"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured module temperature of sensor 2."
    ::= { moduleAuxiliaryMeasurementTemperature 2 }

moduleAuxiliaryMeasurementTemperature2 OBJECT-TYPE
    SYNTAX  Float
    UNITS   "deg.C"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured module temperature of sensor 3."
    ::= { moduleAuxiliaryMeasurementTemperature 3 }

moduleAuxiliaryMeasurementTemperature3 OBJECT-TYPE
    SYNTAX  Float
    UNITS   "deg.C"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured module temperature of sensor 4."
    ::= { moduleAuxiliaryMeasurementTemperature 4 }

-------------------------------------------------------------------------------
moduleConfigDataS OBJECT-TYPE
    SYNTAX  OCTET STRING
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Configuration Data raw access. This allows to read / write output channel specific
             system configuration data.
             This OID is intended for use by WIENER system software only and my not be accessed directly.
             snmpget: undefined behavior
             snmpset:
                OCTET STRING format for reading data (8 octets):
                   offsetInOctets   4 octets / 32 bit
                   numberOfOctets   4 octets / 32 bit
                OCTET STRING format returned from the SNMP client, or used for writing data (8+n octets):
                   offsetInOctets   4 octets / 32 bit
                   numberOfOctets   4 octets / 32 bit
                   data             numberOfOctets octets
             "
    ::= { moduleEntry 1024 }

moduleConfigDataU OBJECT-TYPE
    SYNTAX  OCTET STRING
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Configuration Data raw access. This allows to read / write output channel specific
             user configuration data.
             This OID is intended for use by WIENER system software only and my not be accessed directly.
             snmpget: undefined behavior
             snmpset:
                OCTET STRING format for reading data (8 octets):
                   offsetInOctets   4 octets / 32 bit
                   numberOfOctets   4 octets / 32 bit
                OCTET STRING format returned from the SNMP client, or used for writing data (8+n octets):
                   offsetInOctets   4 octets / 32 bit
                   numberOfOctets   4 octets / 32 bit
                   data             numberOfOctets octets
             "
    ::= { moduleEntry 1025 }

-------------------------------------------------------------------------------
-- sensor
-------------------------------------------------------------------------------
--Sensor ::= SEQUENCE {
--        sensorNumber                Integer32,
--        sensorTable                 SensorTable
--}

sensorNumber OBJECT-TYPE
    SYNTAX  Integer32 (0..8)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of temperature sensors of the crate."
    ::= { sensor 1 }

sensorTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF SensorEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
           "A (conceptual table) of temperature sensor data."
    ::= { sensor 2 }

sensorEntry OBJECT-TYPE
    SYNTAX  SensorEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "An entry (conceptual row) of the sensorTable."
    INDEX   { sensorIndex }
    ::= { sensorTable 1 }

SensorEntry ::= SEQUENCE {
        sensorIndex                 INTEGER,
        sensorTemperature           INTEGER,
--      sensorOkThreshold           INTEGER, nicht implementiert (for futur)
        sensorWarningThreshold      INTEGER,
        sensorFailureThreshold      INTEGER,
        sensorAlarmThreshold        INTEGER,
        sensorName                  DisplayString,
        sensorID                    OCTET STRING,
        sensorStatus                INTEGER
    }

sensorIndex OBJECT-TYPE
    SYNTAX  INTEGER { temp1 (1), temp2(2), temp3(3), temp4(4), temp5(5),
      temp6(6), temp7(7), temp8(8) }
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A unique number for each temperature sensor in the crate"
    ::= { sensorEntry 1 }

sensorTemperature OBJECT-TYPE
-- CHECK    SYNTAX  INTEGER { UNUSED(-128), (-127..127) }
    SYNTAX  Integer32 (-128..127)
    UNITS   "deg.C"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured temperature of the sensor.
             Unused temperature probes have the special value -128"
    ::= { sensorEntry 2 }

sensorWarningThreshold OBJECT-TYPE
-- CHECK    SYNTAX  INTEGER  { (0..126), DISABLED(127) }
    SYNTAX  Integer32  (0..127)
    UNITS   "deg.C"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "If the measured temperature of the sensor is higher than this
             value, the fan speed of the connected fan tray is increased.
             The value 127 has the special meaning: channel disabled.
            "
    ::= { sensorEntry 3}

sensorFailureThreshold OBJECT-TYPE
-- CHECK    SYNTAX  INTEGER  { (0..126), DISABLED(127) }
    SYNTAX  Integer32  (0..127)
    UNITS   "deg.C"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "If the measured temperature of the sensor is higher than this
             value, the power supply switches off.
             The value 127 has the special meaning: channel disabled.
            "
    ::= { sensorEntry 4}

--sensorOkThreshold OBJECT-TYPE
-- CHECK    SYNTAX  INTEGER  { (0..126), DISABLED(127) }
--    SYNTAX  Integer32  (0..127)
--    UNITS   "deg.C"
--    MAX-ACCESS  read-write
--    STATUS  current
--    DESCRIPTION
--            "If the measured temperature of the sensor is ok,
--             so it is possible to switch of the fans.
--             The value 127 has the special meaning: channel disabled.
--            "
--    ::= { sensorEntry 5}

    sensorAlarmThreshold OBJECT-TYPE
-- CHECK    SYNTAX  INTEGER  { (0..126), DISABLED(127) }
    SYNTAX  Integer32  (0..127)
    UNITS   "deg.C"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "If the measured temperature of the sensor is much higher than this
             value, the fans rotate in full speed.
             The value 127 has the special meaning: channel disabled.
            "
    ::= { sensorEntry 6}

   sensorName OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (1..7))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "A textual string containing a short name of the
             sensor. If the crate is equipped with an alphanumeric
             display, this string is shown to identify a sensor channel.
            "
    ::= { sensorEntry 7 }

    sensorID OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (8))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Shows the 1-Wire Id of the corresponding Sensor."
    ::= { sensorEntry 8}

   sensorStatus OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "A bit field packed into an integer which define the Status of the Sensors
             after failures. For each Status value, a two-bit field exists.
                Bits-Value
                   00           Temperature is ok
                   01           Temperature is over WarningThreshold
                   10           Temperature is over AlarmThreshold
                   11           Temperature is over FailureThreshold

             The position of the bit fields in the integer value are:
                Bit 0, 1:   Sensor1
                Bit 2, 3:   Sensor2
                Bit 4, 5:   Sensor3
                Bit 6, 7:   Sensor4
                Bit 8, 9:   Sensor5
                Bit 10, 11: Sensor6
                Bit 12, 13: Sensor7
                Bit 14, 15: Sensor8"
    ::= { sensorEntry 9}



--################
-------------------------------------------------------------------------------
-- communication
-------------------------------------------------------------------------------
--Communication ::= SEQUENCE {
--        snmp            Snmp,
--        tcpip           Tcpip,
--        http            Http,
--        telnet          Telnet,
--        canbus          Canbus,
--        rs232           RS232
--}

-------------------------------------------------------------------------------
-- communication.snmp
-------------------------------------------------------------------------------
snmp OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "SNMP configuration."
    ::= { communication 1 }

Snmp ::= SEQUENCE {
    snmpAccessRight            INTEGER,
    snmpCommunityName          OCTET STRING,
    snmpCommunityTable         SnmpCommunityEntry,
    snmpPort                   INTEGER,
    ipDynamicAddress           IpAddress,
    --OCTET STRING,
    ipStaticAddress            IpAddress,
    --OCTET STRING,
    macAddress                 MacAddress
}

snmpCommunityTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF SnmpCommunityEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
           "The SNMP community string table for different views."
    ::= { snmp 1 }

snmpCommunityEntry OBJECT-TYPE
    SYNTAX  SnmpCommunityEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "One table row."
    INDEX   { snmpAccessRight }
    ::= { snmpCommunityTable 1 }


SnmpCommunityEntry ::= SEQUENCE {
        snmpAccessRight
            INTEGER,
        snmpCommunityName
            OCTET STRING
}

snmpAccessRight OBJECT-TYPE
    SYNTAX  INTEGER { public (1), private (2), admin (3), guru (4) }
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A unique number for each access right"
    ::= { snmpCommunityEntry 1 }

snmpCommunityName OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (0..14))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The SNMP community names for different views. The rights of the different communities are:
               public       no write access
               private      can switch power on/off, generate system reset
               admin        can change supervision levels
               guru         can change output voltage & current (this may destroy hardware if done wrong!)
             Setting a community name to a zero-length string completly
             disables the access to this view. If there is no higher-
             privileged community, the community name can only changed
             by direct access to the crate (not via network)!
            "
    ::= { snmpCommunityEntry 2}

snmpPort OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The UDP port number of the SNMP protocol. A value of
             0 disables all future SNMP communication!
            "
    ::= { snmp 2}

httpPort OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The TCP port number of the HTTP (web) protocol. A value
             of 0 disables all HTTP access.
            "
    ::= { snmp 3}

firmwareUpdate OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (0..30))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Send a update String"
    ::= { snmp 10}

ipDynamicAddress OBJECT-TYPE
    SYNTAX  IpAddress
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Shows the Ip which is currently used"
    ::= { snmp 11}

ipStaticAddress OBJECT-TYPE
    SYNTAX  IpAddress
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Shows the Ip which is setted by user"
    ::= { snmp 12}

macAddress OBJECT-TYPE
    SYNTAX  MacAddress
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Shows the MAC of the corresponding device"
    ::= { snmp 13}

-------------------------------------------------------------------------------
-- communication.canTunnel
-------------------------------------------------------------------------------
can OBJECT-IDENTITY
    STATUS  current
    DESCRIPTION
        "CAN-Bus tunnel via SNMP."
    ::= { communication 2 }

canBitRate OBJECT-TYPE
    SYNTAX  Integer32
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Control of the CAN-Bus.
             The value defines the bit rate of the CAN-bus interface.
             A write disconnects the CAN interface from the ISEG modules and connects
             it to the SNMP communication. Both the receive and transmit fifos are
             cleared and the CAN interface is initialized with the selected bit rate.
             The special bit rate 0 disables the tunnel and switches back to normal operation.
            "
    ::= { can 1 }

canReceive OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (14))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Control of the CAN-Bus Receive FIFO.
             A read access returns the total number of CAN messages stored in the receive
             fifo and the oldest message.
             This message is removed from the fifo.
             The OCTET STRING data is formatted according to the CANviaSNMP structure.
            "
    ::= { can 2 }

canTransmit OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (14))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Control of the CAN-Bus Transmit FIFO.
             A read access returns the total number of CAN messages stored in the transmit
             fifo and a NULL message.
             A write inserts the CAN message into the transmit fifo. This message will be
             transmitted via the CAN interface later. The total number of CAN messages
             stored in the transmit fifo and the recent message are returned.
             The OCTET STRING data is formatted according to the CANviaSNMP structure.
            "
    ::= { can 3 }

canReceiveHv OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (14))
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "Control of the internal HV CAN-Bus on the backplane Receive FIFO.
             A read access returns the total number of CAN messages stored in the receive
             fifo and the oldest message.
             This message is removed from the fifo.
             The OCTET STRING data is formatted according to the CANviaSNMP structure.
            "
    ::= { can 4 }

canTransmitHv OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (14))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Control of the internal HV CAN-Bus on the backplane.
             A write access with:
                      CANID=0x600 DLC=4 DATAID=0x1001 CONTROL
             will switch the HV modules into a special state.
             CONTROL=0x0001 - enable SNMP CAN access, stop the refresh cycle for the data points of the name space
             CONTROL=0x0002 - disable SNMP CAN access, activate the refresh cycle for the data points of the name space
             A write access unequal to CANID=0x600 will be transmitted to the HV CAN on the backplane.
             Such a message will be transmitted immediately via the CAN interface.
             The OCTET STRING data is formatted according to the CANviaSNMP structure.
            "
    ::= { can 5 }

canBitRateHv OBJECT-TYPE
    SYNTAX  Integer32 ( 125000..1000000 )
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Control of the bit rate of the HV CAN-Bus.
             The value defines the bit rate of the CAN-bus interface. Possible Values are 125000 and 250000.
             Changing this value requires MPODC slave firmware 1.10 or above.
            "
    ::= { can 6 }

-------------------------------------------------------------------------------
-- communication....
-------------------------------------------------------------------------------

-- other future entries:
-- +-tcpip
-- | |
-- | +- tcpipIpAddress
-- | +- tcpipGateway
-- | +- tcpipSubnetMask
-- | +- tcpipNegotiation
-- | +- tcpipMAC
-- |
-- +-http
-- | |
-- | +- httpPort
-- | +- httpWriteEnable
-- |
-- +-telnet
-- | |
-- | +- telnetPort
-- |
-- +-canbus
-- | |
-- | +- address
-- | +- address2
-- | +- speed
-- |
-- +-rs232
-- | |
-- | +- ?



-------------------------------------------------------------------------------
-- powersupply
-------------------------------------------------------------------------------
Powersupply ::= SEQUENCE {
    --psFirmwareVersion           DisplayString,
    psSerialNumber              DisplayString,
    psOperatingTime             Integer32,

    psDirectAccess              OCTET STRING
}

--integrated in system.sysDesc
--psFirmwareVersion OBJECT-TYPE
--    SYNTAX  DisplayString
--    MAX-ACCESS  read-only
--    STATUS  current
--    DESCRIPTION
--            "The firmware version of the power supply main CPU."
--    ::= { powersupply 1 }

psSerialNumber OBJECT-TYPE
    SYNTAX  DisplayString
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The serial number of the power supply."
    ::= { powersupply 2 }

psOperatingTime OBJECT-TYPE
    SYNTAX  Integer32
    UNITS   "s"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The time in seconds for how long the power supply was switched on."
    ::= { powersupply 3 }

psAuxiliaryNumber OBJECT-TYPE
    SYNTAX  Integer32 (0..8)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of auxiliary channels of the power supply."
    ::= { powersupply 4 }

psAuxiliaryTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF PsAuxiliaryEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
           "A list of psAuxiliary entries."
    ::= { powersupply 5 }

psDirectAccess OBJECT-TYPE
    SYNTAX  OCTET STRING (SIZE (1..14))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Direct data transfer to the UEP6000 power supply.
             A read access returns nothing, a write access returns the
             response of the power supply.
            "
    ::= { powersupply 1024 }

------------------------------------------------------------------------------
psAuxiliaryEntry OBJECT-TYPE
    SYNTAX  PsAuxiliaryEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A table row"
    INDEX   { psAuxiliaryIndex }
    ::= { psAuxiliaryTable 1 }

PsAuxiliaryEntry ::= SEQUENCE {
        psAuxiliaryIndex                    INTEGER,
        psAuxiliaryMeasurementVoltage         Float,
        psAuxiliaryMeasurementCurrent         Float
      }


psAuxiliaryIndex OBJECT-TYPE
    SYNTAX INTEGER {
                     u0(1),u1(2),u2(3),u3(4),u4(5),u5(6),u6(7),u7(8)}
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A unique number for each power supply auxiliary channel. Its value
             ranges between 1 and total number of output channels.
             SMI index starts at 1, so index 1 corresponds to U0.
            "
    ::= { psAuxiliaryEntry 1 }

psAuxiliaryMeasurementVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured power supply auxiliary output voltage."
    ::= { psAuxiliaryEntry 3 }

psAuxiliaryMeasurementCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "A"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured power supply auxiliary output current."
    ::= { psAuxiliaryEntry 4 }

-------------------------------------------------------------------------------
-- fantray
-------------------------------------------------------------------------------
Fantray ::= SEQUENCE {
--      fanFirmwareVersion         DisplayString,
        fanSerialNumber            DisplayString,
        fanOperatingTime           Integer32,
        fanAirTemperature          Integer32,
        fanSwitchOffDelay          INTEGER,
        fanNominalSpeed            Integer32,
        fanMaxSpeed                Integer32,
        fanMinSpeed                Integer32,
        fanNumberOfFans            Integer32,
        fanConfigMaxSpeed          Integer32,
        fanConfigMinSpeed          Integer32,
        fanSpeedTable              FanSpeedEntry
}

--integrated in system.sysDesc
--fanFirmwareVersion OBJECT-TYPE
--    SYNTAX  DisplayString
--    MAX-ACCESS  read-only
--    STATUS  current
--    DESCRIPTION
--            "The firmware version of the fan tray CPU."
--    ::= { fantray 1 }

fanSerialNumber OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..14))
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The serial number of the fan tray."
    ::= { fantray 2 }

fanOperatingTime OBJECT-TYPE
    SYNTAX  Integer32
    UNITS   "s"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The time in seconds for how long the fan tray was switched on."
    ::= { fantray 3 }

fanAirTemperature OBJECT-TYPE
    SYNTAX  Integer32
    UNITS   "deg.C"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The temperature of the fan tray inlet air."
    ::= { fantray 4 }

fanSwitchOffDelay OBJECT-TYPE
    SYNTAX  Integer32 (0 .. 900)
    UNITS   "s"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The maximum time in seconds for which the fans will continue running
             after the power supply has been switched off. This feature is used
             to cool down the electronics after switching off.
            "
    ::= { fantray 5 }

fanNominalSpeed OBJECT-TYPE
    SYNTAX  Integer32
    UNITS   "RPM"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The nominal fan rotation speed (RPM, Revolutions Per Minute)
             Value 0 does switch off the fans (only allowed if at least
             one rack temperature sensor is present).
             Values 1..1199 are not allowed
            "
    ::= { fantray 6 }

fanNumberOfFans OBJECT-TYPE
    SYNTAX  Integer32 ( 0..12 )
    UNITS   "Fans"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The number of installed fans"
    ::= { fantray 7 }


fanSpeedTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF FanSpeedEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
           "A list of fanSpeedEntries."
    ::= { fantray 8 }

fanSpeedEntry OBJECT-TYPE
    SYNTAX  FanSpeedEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A table row"
    INDEX   { fanNumber }
    ::= { fanSpeedTable 1 }

FanSpeedEntry ::= SEQUENCE {
        fanNumber
            Integer32,
        fanSpeed
            Integer32
}

fanNumber OBJECT-TYPE
    SYNTAX  Integer32 ( 1..12 )
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A unique number for each fan."
    ::= { fanSpeedEntry 1 }

fanSpeed OBJECT-TYPE
    SYNTAX  Integer32
    UNITS   "RPM"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured fan rotation speed (RPM, Revolutions Per Minute)"
    ::= { fanSpeedEntry 2 }

fanMaxSpeed OBJECT-TYPE
    SYNTAX  Integer32
    UNITS   "RPM"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The highest allowed rotationspeed of fan."
    ::= { fantray 9 }

fanMinSpeed OBJECT-TYPE
    SYNTAX  Integer32
    UNITS   "RPM"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "The lowest allowed Rotationspeed of fan."
    ::= { fantray 10 }

fanConfigMaxSpeed OBJECT-TYPE
    SYNTAX  Integer32
    UNITS   "RPM"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Hardwarelimits. Can only set by WIENER."
    ::= { fantray 11 }

fanConfigMinSpeed OBJECT-TYPE
    SYNTAX  Integer32
    UNITS   "RPM"
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Hardwarelimits Can only set by WIENER."
    ::= { fantray 12 }

-------------------------------------------------------------------------------
-- rack
-------------------------------------------------------------------------------
-- this is reserved for futer items (BIN serial number, plug&play, ...)
Rack ::= SEQUENCE {
    binConfigDataU        OCTET STRING,
    binConfigDataS        OCTET STRING
    }

binConfigDataU OBJECT-TYPE
    SYNTAX  OCTET STRING
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Configuration Data raw access. This allows to read / write output channel specific
             user configuration data.
             This OID is intended for use by WIENER system software only and may not be accessed directly.
             snmpget: undefined behavior
             snmpset:
                OCTET STRING format for reading data (8 octets):
                    offsetInOctets      4 octets / 32 bit
                    numberOfOctets      4 octets / 32 bit
                OCTET STRING format returned from the SNMP client, or used for writing data (8+n octets):
                    offsetInOctets      4 octets / 32 bit
                    numberOfOctets      4 octets / 32 bit
                    data                numberOfOctets octets
            "
    ::= { rack 1 }

binConfigDataS OBJECT-TYPE
    SYNTAX  OCTET STRING
    MAX-ACCESS  read-write
    STATUS  current
    DESCRIPTION
            "Configuration Data raw access. This allows to read / write output channel specific
             user configuration data.
             This OID is intended for use by WIENER system software only and may not be accessed directly.
             snmpget: undefined behavior
             snmpset:
                OCTET STRING format for reading data (8 octets):
                    offsetInOctets      4 octets / 32 bit
                    numberOfOctets      4 octets / 32 bit
                OCTET STRING format used for writing data, or returned from the SNMP client after read/write (8+n octets):
                   offsetInOctets       4 octets / 32 bit
                   numberOfOctets       4 octets / 32 bit
                   data                 numberOfOctets octets
            "
    ::= { rack 2 }

-------------------------------------------------------------------------------
-- signal
-------------------------------------------------------------------------------
Signal ::= SEQUENCE {
        numberOfAnalogInputs        Integer32,
        analogInputTable            AnalogInputEntry,
--      numberOfAnalogOutputs       Integer32,
        digitalInput                BITS,
        digitalOutput               BITS
                     }

numberOfAnalogInputs OBJECT-TYPE
    SYNTAX  Integer32 (0..8)
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The number of additional analog inputs of the crate."
    ::= { signal 1 }

analogInputTable OBJECT-TYPE
    SYNTAX  SEQUENCE OF AnalogInputEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
           "A (conceptual table) of analog input data."
    ::= { signal 2 }

analogInputEntry OBJECT-TYPE
    SYNTAX  AnalogInputEntry
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "An entry (conceptual row) of the analogInputTable."
    INDEX   { analogInputIndex }
    ::= { analogInputTable 1 }

AnalogInputEntry ::= SEQUENCE {
        analogInputIndex            INTEGER,
        analogMeasurementVoltage    Float,
        analogMeasurementCurrent    Float
    }

analogInputIndex OBJECT-TYPE
    SYNTAX  Integer32 (1..8)
    MAX-ACCESS  not-accessible
    STATUS  current
    DESCRIPTION
            "A unique number for each analog input of the crate"
    ::= { analogInputEntry 1 }

analogMeasurementVoltage OBJECT-TYPE
    SYNTAX  Float
    UNITS   "V"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured voltage of the analog input."
    ::= { analogInputEntry 2 }

analogMeasurementCurrent OBJECT-TYPE
    SYNTAX  Float
    UNITS   "A"
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The measured current of the analog input."
    ::= { analogInputEntry 3 }


digitalInput OBJECT-TYPE
    SYNTAX  BITS {
        d0 (0) ,
        d1 (1) ,
        d2 (2) ,
        d3 (3) ,
        d4 (4) ,
        d5 (5) ,
        d6 (6) ,
        d7 (7)
    }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The value of the digital inputs."
    ::= { signal 5 }

digitalOutput OBJECT-TYPE
    SYNTAX  BITS {
        d0 (0) ,
        d1 (1) ,
        d2 (2) ,
        d3 (3) ,
        d4 (4) ,
        d5 (5) ,
        d6 (6) ,
        d7 (7)
    }
    MAX-ACCESS  read-only
    STATUS  current
    DESCRIPTION
            "The value of the digital outputs."
    ::= { signal 6 }



-- ###################
-------------------------------------------------------------------------------
END
