-- The JNIOR has implemented SNMP v1.

-- To enable SNMP on the JNIOR define the Device/SNMP registry key with 
-- the value of "enabled".  Furthermore you can define whether certain 
-- I/O points send traps for states and alarms by defining the 
-- IO/Inputs/din#/SnmpTrap or IO/Outputs/rout#/SnmpTrap registry keys with 
-- the "enabled" value.  SNMP Traps should not be defined for IO points 
-- that change state rapidly.

-- The community string can be set by defining the Snmp/CommunityString.  
-- By default the community string is "public".

-- It should be known that the JNIOR is not a high speed device therefore 
-- SNMP can be slow.  SNMP traps can have a direct impact on I/O logging 
-- performance.  therefore the JNIOR should not be configured for a large 
-- number fo traps



JNIOR-MIB DEFINITIONS ::= BEGIN

IMPORTS
        enterprises
                FROM RFC1155-SMI
        OBJECT-TYPE
                FROM RFC-1212
        DisplayString, mib-2
                FROM RFC1213-MIB
        TRAP-TYPE
		FROM RFC-1215;

system       	OBJECT IDENTIFIER ::= { mib-2 1 }




-- The JNIOR implementation falls under the INTEG Private Enterprise 
-- Number.  It is broken into 2 subsections; I/O, Configuration.

integ                                  OBJECT IDENTIFIER ::= {enterprises 31976}
  jnior                                OBJECT IDENTIFIER ::= {integ 1}
    io                                 OBJECT IDENTIFIER ::= {jnior 1}
      externals                        OBJECT IDENTIFIER ::= {io 5}
    information                        OBJECT IDENTIFIER ::= {jnior 2}


-- The following are events that trigger an info trap
--     When the JNIOR has booted successfully
--     When the JNIOR is rebooting
--     When an application is started during boot
--     When a log file is compressed
--     When a log file is backed up
infoTrap TRAP-TYPE
	ENTERPRISE jnior
	     DESCRIPTION "This is sent when the JNIOR has general event information"
	::= 1






inputStateMask OBJECT-TYPE
  SYNTAX  INTEGER
  ACCESS  read-only
  STATUS  mandatory
  DESCRIPTION
          "States of all inputs represented as a single byte.  MSB 
          representing input 8"
  ::= {io 1}


-- inputs		OBJECT IDENTIFIER ::= {io 2}

inputStates OBJECT-TYPE
  SYNTAX  SEQUENCE OF InputEntry
  ACCESS  not-accessible
  STATUS  mandatory
  DESCRIPTION
          ""
  ::= {io 2}

inputEntry OBJECT-TYPE
              SYNTAX  InputEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                  "An input entry containing state information."
              INDEX   { inputChannel }
              ::= { inputStates 1 }
              
InputEntry ::= SEQUENCE {
    inputChannel				INTEGER,
    inputState					INTEGER
}

inputChannel OBJECT-TYPE
    SYNTAX  INTEGER (0..7)
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The channel of the input"
    ::= { inputEntry 1 }

inputState OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The state of the input"
    ::= { inputEntry 2 }



outputStateMask OBJECT-TYPE
  SYNTAX  INTEGER
  ACCESS  read-only
  STATUS  mandatory
  DESCRIPTION
          "States of all outputs represented in two bytes.  MSB 
          representing output 16"
  ::= {io 3}

outputStates OBJECT-TYPE
  SYNTAX  SEQUENCE OF OutputEntry
  ACCESS  not-accessible
  STATUS  mandatory
  DESCRIPTION
          ""
  ::= {io 4}

outputEntry OBJECT-TYPE
              SYNTAX  OutputEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                  "An output entry containing state information."
              INDEX   { outputChannel }
              ::= { outputStates 1 }
              
OutputEntry ::= SEQUENCE {
    outputChannel					INTEGER,
    outputState					INTEGER
}

outputChannel OBJECT-TYPE
    SYNTAX  INTEGER (0..15)
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The channel of the output"
    ::= { outputEntry 1 }

outputState OBJECT-TYPE
    SYNTAX  INTEGER
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "The state of the output"
    ::= { outputEntry 2 }









TemperatureProbeIndex ::= TEXTUAL-CONVENTION
  STATUS		current
  DESCRIPTION	" "
  SYNTAX		Integer32 (1..10)


temperatureProbeTable OBJECT-TYPE
  SYNTAX  	SEQUENCE OF TemperatureProbeEntry
  MAX-ACCESS  	not-accessible
  STATUS		current
  DESCRIPTION	"A structure for the environmental sensor"
  ::= {externals 40}


temperatureProbeEntry OBJECT-TYPE
  SYNTAX  	TemperatureProbeEntry
  MAX-ACCESS  	not-accessible
  STATUS  	current
  DESCRIPTION	"A row structure for the environmental sensor"
  INDEX   	{ temperatureProbeIndex }
  ::= {temperatureProbeTable 1}


TemperatureProbeEntry ::= SEQUENCE {
  temperatureProbeIndex		      TemperatureProbeIndex,
  temperatureProbeCelcius       DisplayString,
  temperatureProbeFahrenheit    DisplayString
}


temperatureProbeIndex OBJECT-TYPE
  SYNTAX  	TemperatureProbeIndex
  MAX-ACCESS  	read-only
  STATUS		current
  DESCRIPTION	"The invironmental sensor index"
  ::= {temperatureProbeEntry 1}


temperatureProbeCelcius OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Temperature in Celcius"
  ::= {temperatureProbeEntry 2}


temperatureProbeFahrenheit OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Temperature in Fahrenheit"
  ::= {temperatureProbeEntry 3}








EnvironmentalSensorIndex ::= TEXTUAL-CONVENTION
  STATUS		current
  DESCRIPTION	" "
  SYNTAX		Integer32 (1..10)


environmentalSensorTable OBJECT-TYPE
  SYNTAX  	SEQUENCE OF EnvironmentalSensorEntry
  MAX-ACCESS  	not-accessible
  STATUS		current
  DESCRIPTION	"A structure for the environmental sensor"
  ::= {externals 126}


environmentalSensorEntry OBJECT-TYPE
  SYNTAX  	EnvironmentalSensorEntry
  MAX-ACCESS  	not-accessible
  STATUS  	current
  DESCRIPTION	"A row structure for the environmental sensor"
  INDEX   	{ environmentalSensorIndex }
  ::= {environmentalSensorTable 1}


EnvironmentalSensorEntry ::= SEQUENCE {
  environmentalSensorIndex    EnvironmentalSensorIndex,
  environmentalCelcius	      DisplayString,
  environmentalFahrenheit     DisplayString,
  environmentalHumidity	      DisplayString
}


environmentalSensorIndex OBJECT-TYPE
  SYNTAX  	EnvironmentalSensorIndex
  MAX-ACCESS  	read-only
  STATUS		current
  DESCRIPTION	"The invironmental sensor index"
  ::= {environmentalSensorEntry 1}


environmentalCelcius OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Temperature in Celcius"
  ::= {environmentalSensorEntry 2}


environmentalFahrenheit OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Temperature in Fahrenheit"
  ::= {environmentalSensorEntry 3}


environmentalHumidity OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Humidity Percent"
  ::= {environmentalSensorEntry 4}






-- -------------------------------------------------------------------------------------
-- Ten Volt Module
-- -------------------------------------------------------------------------------------

TenVoltModuleIndex ::= TEXTUAL-CONVENTION
  STATUS                   current
  DESCRIPTION              " "
  SYNTAX                   Integer32 (1..10)


tenVoltModuleTable OBJECT-TYPE
  SYNTAX                   SEQUENCE OF TenVoltModuleEntry
  MAX-ACCESS               not-accessible
  STATUS                   current
  DESCRIPTION              "A structure for the ten volt module"
  ::= {externals 253}


tenVoltModuleEntry OBJECT-TYPE
  SYNTAX                  TenVoltModuleEntry
  MAX-ACCESS              not-accessible
  STATUS                  current
  DESCRIPTION             "A row structure for the ten volt module"
  INDEX                   { tenVoltModuleIndex }
  ::= {tenVoltModuleTable 1}


TenVoltModuleEntry ::= SEQUENCE {
  tenVoltModuleIndex            TenVoltModuleIndex,
  tenVoltInput1                 DisplayString,
  tenVoltInput2                 DisplayString,
  tenVoltInput3                 DisplayString,
  tenVoltInput4                 DisplayString,
  tenVoltOutput1                DisplayString,
  tenVoltOutput2                DisplayString
}


tenVoltModuleIndex OBJECT-TYPE
  SYNTAX                  TenVoltModuleIndex
  MAX-ACCESS              read-only
  STATUS                  current
  DESCRIPTION	            "The ten volt module index"
  ::= {tenVoltModuleEntry 1}


tenVoltInput1 OBJECT-TYPE
  SYNTAX                  DisplayString
  MAX-ACCESS              read-only
  STATUS                  current
  DESCRIPTION	            "Input 1"
  ::= {tenVoltModuleEntry 2}


tenVoltInput2 OBJECT-TYPE
  SYNTAX                  DisplayString
  MAX-ACCESS              read-only
  STATUS                  current
  DESCRIPTION	            "Input 2"
  ::= {tenVoltModuleEntry 3}

tenVoltInput3 OBJECT-TYPE
  SYNTAX                  DisplayString
  MAX-ACCESS              read-only
  STATUS                  current
  DESCRIPTION	            "Input 3"
  ::= {tenVoltModuleEntry 4}

tenVoltInput4 OBJECT-TYPE
  SYNTAX                  DisplayString
  MAX-ACCESS              read-only
  STATUS                  current
  DESCRIPTION	            "Input 4"
  ::= {tenVoltModuleEntry 5}

tenVoltOutput1 OBJECT-TYPE
  SYNTAX                  DisplayString
  MAX-ACCESS              read-only
  STATUS                  current
  DESCRIPTION             "Output 1"
  ::= {tenVoltModuleEntry 6}

tenVoltOutput2 OBJECT-TYPE
  SYNTAX                  DisplayString
  MAX-ACCESS              read-only
  STATUS                  current
  DESCRIPTION             "Output 2"
  ::= {tenVoltModuleEntry 7}







ForTwentySensorIndex ::= TEXTUAL-CONVENTION
  STATUS		current
  DESCRIPTION	" "
  SYNTAX		Integer32 (1..10)


fourTwentyModuleTable OBJECT-TYPE
  SYNTAX  	SEQUENCE OF FourTwentySensorEntry
  MAX-ACCESS  	not-accessible
  STATUS		current
  DESCRIPTION	"A structure for the environmental sensor"
  ::= {externals 254}


fourTwentyModuleEntry OBJECT-TYPE
  SYNTAX  	FourTwentySensorEntry
  MAX-ACCESS  	not-accessible
  STATUS  	current
  DESCRIPTION	"A row structure for the environmental sensor"
  INDEX   	{ fourTwentyModuleIndex }
  ::= {fourTwentyModuleTable 1}


FourTwentySensorEntry ::= SEQUENCE {
  fourTwentyModuleIndex      ForTwentySensorIndex,
  fourTwentyInput1           DisplayString,
  fourTwentyInput2           DisplayString,
  fourTwentyInput3           DisplayString,
  fourTwentyInput4           DisplayString,
  fourTwentyOutput1          DisplayString,
  fourTwentyOutput2          DisplayString
}


fourTwentyModuleIndex OBJECT-TYPE
  SYNTAX  	ForTwentySensorIndex
  MAX-ACCESS  	read-only
  STATUS		current
  DESCRIPTION	"The invironmental sensor index"
  ::= {fourTwentyModuleEntry 1}


fourTwentyInput1 OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Temperature in Celcius"
  ::= {fourTwentyModuleEntry 2}


fourTwentyInput2 OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Temperature in Celcius"
  ::= {fourTwentyModuleEntry 3}

fourTwentyInput3 OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Temperature in Celcius"
  ::= {fourTwentyModuleEntry 4}

fourTwentyInput4 OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Temperature in Celcius"
  ::= {fourTwentyModuleEntry 5}

fourTwentyOutput1 OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Temperature in Celcius"
  ::= {fourTwentyModuleEntry 6}

fourTwentyOutput2 OBJECT-TYPE
  SYNTAX  	DisplayString
  MAX-ACCESS  	read-only
  STATUS  	current
  DESCRIPTION	"Temperature in Celcius"
  ::= {fourTwentyModuleEntry 7}









serialNumber OBJECT-TYPE
    SYNTAX  Integer32
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "This is the unique serial number of the JNIOR.  The serial number is 
            assigned during the manufacturing process."
    ::= { information 1 }
    
    
END