Index: html/images/os/teracom.png
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Index: html/images/os/teracom.png
===================================================================
--- html/images/os/teracom.png	(revision 0)
+++ html/images/os/teracom.png	(working copy)

Property changes on: html/images/os/teracom.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: includes/definitions/os.inc.php
===================================================================
--- includes/definitions/os.inc.php	(revision 6700)
+++ includes/definitions/os.inc.php	(working copy)
@@ -1929,6 +1929,16 @@
 $config['os'][$os]['mib_dirs'][]            = "rittal";
 $config['os'][$os]['mibs'][]                = "RITTAL-CMC-III-MIB";
 
+// Teracom
+$os = "teracom";
+$config['os'][$os]['vendor']                = "Teracom";
+$config['os'][$os]['text']                  = "Teracom TCW";
+$config['os'][$os]['type']                  = "power";
+$config['os'][$os]['sysObjectID'][]         = ".1.3.6.1.4.1.38783";
+$config['os'][$os]['mib_dirs'][]            = "teracom";
+$config['os'][$os]['mibs'][]                = "TERACOM-MIB";
+$config['os'][$os]['snmp']['max-rep']       = 100;
+
 // Engenius
 
 $os = "engenius";
Index: includes/definitions/sensors.inc.php
===================================================================
--- includes/definitions/sensors.inc.php	(revision 6700)
+++ includes/definitions/sensors.inc.php	(working copy)
@@ -499,6 +499,14 @@
 $config['status_states']['ccpower-mib-alarmstatus'][1] = array('name' => 'inactive',         'event' => 'ok');
 $config['status_states']['ccpower-mib-alarmstatus'][2] = array('name' => 'active',           'event' => 'alert');
 
+// TERACOM-MIB
+$config['status_states']['teracom-digitalin-state'][0] = array('name' => 'closed',       'event' => 'ok');
+$config['status_states']['teracom-digitalin-state'][1] = array('name' => 'open',         'event' => 'ok');
+$config['status_states']['teracom-relay-state'][0]     = array('name' => 'off',          'event' => 'ok');
+$config['status_states']['teracom-relay-state'][1]     = array('name' => 'on',           'event' => 'ok');
+$config['status_states']['teracom-alarm-state'][0]     = array('name' => 'noErr',        'event' => 'ok');
+$config['status_states']['teracom-alarm-state'][1]     = array('name' => 'owErr',        'event' => 'alert');
+$config['status_states']['teracom-alarm-state'][2]     = array('name' => 'hwErr',        'event' => 'alert');
 
 // End sensor states
 
Index: includes/discovery/sensors/teracom-mib.inc.php
===================================================================
--- includes/discovery/sensors/teracom-mib.inc.php	(revision 0)
+++ includes/discovery/sensors/teracom-mib.inc.php	(working copy)
@@ -0,0 +1,95 @@
+<?php
+
+/**
+ * Observium
+ *
+ *   This file is part of Observium.
+ *
+ * @package    observium
+ * @subpackage discovery
+ * @copyright  (C) 2006-2015 Adam Armstrong
+ *
+ */
+
+echo(" TERACOM-MIB ");
+
+$scale = 1; 
+
+// Tested with TCW240B. And yes the Teracom MIBs are stupid
+
+// 1-Wire sensors
+for ($i = 1;$i <= 8;$i++)
+{
+  $data = snmp_get_multi($device, 's'.$i.'description.0 s'.$i.'ID.0 s'.$i.'1x10Int.0 s'.$i.'2x10Int.0 s'.$i.'1MINx10Int.0 s'.$i.'1MAXx10Int.0', '-OQUs', 'TERACOM-MIB', mib_dirs('teracom'));
+  if ($data[0]['s'.$i.'ID'] == 'ff:ff:ff:ff:ff:ff') { continue; }
+  $descr = $data[0]['s'.$i.'description'];
+  $oid   = ".1.3.6.1.4.1.38783.1.3.1.1.$i.0";
+  $value = $data[0]['s'.$i.'1x10Int'];
+  // TODO figure out how to identify sensor types
+  $type = 'temperature';
+  $scale = 0.1;
+  $limits = array('limit_low' => $data[0]['s'.$i.'1MINx10Int'] * $scale,
+                  'limit_high' => $data[0]['s'.$i.'1MAXx10Int'] * $scale);
+  discover_sensor($valid['sensor'], 'temperature', $device, $oid, 's'.$i.'1x10Int.0', 'teracom', $descr, $scale, $value, $limits);
+}
+
+// Analog inputs
+for ($i = 1;$i <= 4;$i++)
+{
+  $data  = snmp_get_multi($device, 'voltage'.$i.'description.0 voltage'.$i.'x10Int.0 voltage'.$i.'min.0 voltage'.$i.'max.0', '-OQUs', 'TERACOM-MIB', mib_dirs('teracom'));
+  $descr = $data[0]['voltage'.$i.'description'];
+  switch(substr($descr,0,2))
+  { 
+    case 'I ':
+      $type = 'current';
+      $descr = substr($descr,2);
+      break;
+    case 'F ':
+      $type = 'frequency';
+      $descr = substr($descr,2);
+      break;
+    case 'H ':
+      $type = 'humidity';
+      $descr = substr($descr,2);
+      break;
+    default:
+      $type = 'voltage';
+  }
+  $oid   = ".1.3.6.1.4.1.38783.1.3.2.$i.0";
+  $value = $data[0]['voltage'.$i.'x10Int'];
+  $scale = 0.1;
+  $limits = array('limit_low' => $data[0]['voltage'.$i.'min'] * $scale,
+                  'limit_high' => $data[0]['voltage'.$i.'max'] * $scale);
+  discover_sensor($valid['sensor'], $type, $device, $oid, 'voltage'.$i.'x10Int.0', 'teracom', $descr, $scale, $value, $limits);
+}
+
+// Digital inputs
+for ($i = 1;$i <= 4;$i++)
+{
+  $data = snmp_get_multi($device, 'digitalInput'.$i.'description.0 digitalInput'.$i.'State.0', '-OQUs', 'TERACOM-MIB', mib_dirs('teracom'));
+  $descr = $data[0]['digitalInput'.$i.'description'];
+  $oid   = ".1.3.6.1.4.1.38783.1.3.3.$i.0";
+  $value = $data[0]['digitalInput'.$i.'State'];
+  discover_sensor($valid['sensor'], 'state', $device, $oid, 'digitalInput'.$i.'State.0', 'teracom-digitalin-state', $descr, NULL, $value, array('entPhysicalClass' => 'other'));
+}
+
+// Relay outputs
+for ($i = 1;$i <= 4;$i++)
+{
+  $data = snmp_get_multi($device, 'relay'.$i.'description.0 relay'.$i.'State.0', '-OQUs', 'TERACOM-MIB', mib_dirs('teracom'));
+  $descr = $data[0]['relay'.$i.'description'];
+  $oid   = ".1.3.6.1.4.1.38783.1.3.4.$i.1.0";
+  $value = $data[0]['relay'.$i.'State'];
+  discover_sensor($valid['sensor'], 'state', $device, $oid, 'relay'.$i.'State.0', 'teracom-relay-state', $descr, NULL, $value, array('entPhysicalClass' => 'other'));
+}
+
+// Status
+$value = snmp_get($device, "hardwareErr.0", "-Oqv", "TERACOM-MIB", mib_dirs('teracom'));
+if ($value !== '')
+{
+  $descr = "Status";
+  $oid   = ".1.3.6.1.4.1.38783.1.3.8.0";
+  discover_sensor($valid['sensor'], 'state', $device, $oid, "hardwareErr.0", 'teracom-alarm-state', $descr, NULL, $value, array('entPhysicalClass' => 'other'));
+}
+  unset($data, $oid, $descr, $limits, $value);
+// EOF
Index: includes/polling/os/teracom.inc.php
===================================================================
--- includes/polling/os/teracom.inc.php	(revision 0)
+++ includes/polling/os/teracom.inc.php	(working copy)
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * Observium
+ *
+ *   This file is part of Observium.
+ *
+ * @package    observium
+ * @subpackage poller
+ * @copyright  (C) 2006-2015 Adam Armstrong
+ *
+ */
+
+/*
+iso.3.6.1.4.1.38783.1.1.1.0 = STRING: "TCW240B SNMP Agent"
+iso.3.6.1.4.1.38783.1.1.2.0 = STRING: "v1.14"
+iso.3.6.1.4.1.38783.1.1.3.0 = Hex-STRING: 07 DF 07 16 10 37 2E 00 
+iso.3.6.1.4.1.38783.1.2.1.1.0 = Hex-STRING: D8 80 39 28 BE 87 
+iso.3.6.1.4.1.38783.1.2.1.2.0 = STRING: "TCW240B        "
+*/
+
+$hardware = trim(snmp_get($device, "1.3.6.1.4.1.38783.1.1.1.0", "-OQv", "TERACOM-MIB", mib_dirs('teracom')),'"');
+$hardware = str_replace("SNMP Agent", "I/O Controller", $hardware);
+$version = trim(snmp_get($device, "1.3.6.1.4.1.38783.1.1.2.0", "-OQv", "TERACOM-MIB", mib_dirs('teracom')),'"');
+$serial = trim(snmp_get($device, "1.3.6.1.4.1.38783.1.2.1.1.0", "-OQv", "TERACOM-MIB", mib_dirs('teracom')),'"');
+
+// EOF
Index: mibs/teracom/TERACOM-MIB
===================================================================
--- mibs/teracom/TERACOM-MIB	(revision 0)
+++ mibs/teracom/TERACOM-MIB	(working copy)
@@ -0,0 +1,1336 @@
+TERACOM-MIB DEFINITIONS ::= BEGIN
+
+IMPORTS
+	MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, enterprises, IpAddress, Integer32, snmpModules		FROM SNMPv2-SMI
+	DateAndTime, MacAddress, DisplayString									FROM SNMPv2-TC
+	TEXTUAL-CONVENTION											FROM SNMPv2-TC
+	MODULE-COMPLIANCE, OBJECT-GROUP , NOTIFICATION-GROUP      						FROM SNMPv2-CONF;
+	
+snmpMIB MODULE-IDENTITY
+	LAST-UPDATED	"201505270000Z"
+	ORGANIZATION	"TERACOM"
+	CONTACT-INFO	"EMail:	info@teracom.cc"
+	DESCRIPTION	"The MIB module for TCW240 SNMP entities."
+	REVISION	"201505270000Z"
+	DESCRIPTION	"TCW240bv1.14"
+	::= { snmpModules 1 }
+
+teracom                           	OBJECT IDENTIFIER ::= { enterprises 38783 }
+  tcw240b                           	OBJECT IDENTIFIER ::= {   teracom 1 }
+    trapNotifications                	OBJECT IDENTIFIER ::= {     tcw240b 0 }
+    product                            	OBJECT IDENTIFIER ::= {     tcw240b 1 }
+    setup                              	OBJECT IDENTIFIER ::= {     tcw240b 2 }
+      network                           OBJECT IDENTIFIER ::= {       setup 1 }
+    monitorNcontrol                    	OBJECT IDENTIFIER ::= {     tcw240b 3 }
+    tcw240bMIBConformance		OBJECT IDENTIFIER ::= {     tcw240b 4 }
+      tcw240bMIBCompliances         	OBJECT IDENTIFIER ::= {        tcw240bMIBConformance 1 }
+      tcw240bMIBGroups  		OBJECT IDENTIFIER ::= {        tcw240bMIBConformance 2 }
+
+CONTROLLED ::=  TEXTUAL-CONVENTION
+       STATUS  current
+       DESCRIPTION
+           "This textual convention enumerates the authentication and privledge 
+		protocol for USM configuration.
+           "
+       SYNTAX    INTEGER
+ 			{	manual(0),sensor11(1),sensor21(2),sensor31(3),sensor41(4),
+				sensor51(5),sensor61(6),sensor71(7),sensor81(8),sensor12(9),
+				sensor22(10),sensor32(11),sensor42(12),sensor52(13),sensor62(14),
+				sensor72(15),sensor82(16),analog1(17),analog2(18),analog3(19),analog4(20),
+				digital1(21),digital2(22),digital3(23),digital4(24),
+				scheduler1(25),scheduler2(26),scheduler3(27),scheduler4(28) 
+			}
+
+-- product --
+			
+name    OBJECT-TYPE
+   SYNTAX DisplayString
+   MAX-ACCESS read-only
+   STATUS current
+   DESCRIPTION
+      "Name of product. e.g. teracom.cc etc."
+   ::= { product 1 }
+   
+version    OBJECT-TYPE
+   SYNTAX DisplayString
+   MAX-ACCESS read-only
+   STATUS current
+   DESCRIPTION
+      "Version string. e.g. 1.0"
+   ::= { product 2 }
+   
+dateTime    OBJECT-TYPE
+   SYNTAX DateAndTime
+   MAX-ACCESS read-only
+   STATUS current
+   DESCRIPTION
+      "Date and time"
+   ::= { product 3 }
+
+-- network --
+
+deviceID OBJECT-TYPE
+    SYNTAX  MacAddress
+    MAX-ACCESS  read-only
+    STATUS current
+    DESCRIPTION
+        "Device ID is Default MAC Address"
+    ::= { network 1 }
+	
+hostName  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..38))
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION
+        "Host Name"
+    ::= { network 2 }
+	
+deviceIP OBJECT-TYPE
+    SYNTAX  IpAddress
+    MAX-ACCESS  read-only
+    STATUS current
+    DESCRIPTION
+        "Device IP Address"
+    ::= { network 3 }
+	
+io                             	OBJECT IDENTIFIER ::=  { setup 2 }
+sensorsSetup                      	OBJECT IDENTIFIER ::=  { io 1 }
+
+sensor1setup                      	OBJECT IDENTIFIER ::=  { sensorsSetup 1 }
+sensor2setup                      	OBJECT IDENTIFIER ::=  { sensorsSetup 2 }
+sensor3setup                      	OBJECT IDENTIFIER ::=  { sensorsSetup 3 }
+sensor4setup                      	OBJECT IDENTIFIER ::=  { sensorsSetup 4 }
+sensor5setup                      	OBJECT IDENTIFIER ::=  { sensorsSetup 5 }
+sensor6setup                      	OBJECT IDENTIFIER ::=  { sensorsSetup 6 }
+sensor7setup                      	OBJECT IDENTIFIER ::=  { sensorsSetup 7 }
+sensor8setup                      	OBJECT IDENTIFIER ::=  { sensorsSetup 8 }
+
+--CONTROLLED ::=   Integer32 {  manual(0),sensor11(1),sensor21(2),sensor31(3),sensor41(4),sensor51(5),sensor61(6),sensor71(7),sensor81(8),sensor12(9),sensor22(10),sensor32(11),sensor42(12),sensor52(13),sensor62(14),sensor72(15),sensor82(16),analog1(17),analog2(18),analog3(19),analog4(20),digital1(21),digital2(22),digital3(23),digital4(24),scheduler1(25),scheduler2(26),scheduler3(27),scheduler4(28) }
+
+s1description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Sensor1 description"
+    ::= { sensor1setup 1 }
+
+sensor11setup                      	OBJECT IDENTIFIER ::=  { sensor1setup 2 }
+sensor12setup                      	OBJECT IDENTIFIER ::=  { sensor1setup 3 }
+
+s11MAXx10Int OBJECT-TYPE
+    SYNTAX  Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "S11 maximum value x10 in Integer format"
+    ::= { sensor11setup 1 }
+
+s11MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "S11 minimum value x10 in Integer format"
+    ::= { sensor11setup 2 }
+	
+s11HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "S11 hysteresis value x10 in Integer format"
+    ::= { sensor11setup 3 }
+
+s12MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "S12 maximum value x10 in Integer format"
+    ::= { sensor12setup 1 }
+
+s12MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "S12 minimum value x10 in Integer format"
+    ::= { sensor12setup 2 }
+	
+s12HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "S12 hysteresis value x10 in Integer format"
+    ::= { sensor12setup 3 }
+	
+s2description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "sensor2 description"
+    ::= { sensor2setup 1 }
+
+sensor21setup                      	OBJECT IDENTIFIER ::=  { sensor2setup 2 }
+sensor22setup                      	OBJECT IDENTIFIER ::=  { sensor2setup 3 }
+
+s21MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s21 maximum value x10 in Integer format"
+    ::= { sensor21setup 1 }
+
+s21MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s21 minimum value x10 in Integer format"
+    ::= { sensor21setup 2 }
+	
+s21HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s21 hysteresis value x10 in Integer format"
+    ::= { sensor21setup 3 }
+
+s22MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s22 maximum value x10 in Integer format"
+    ::= { sensor22setup 1 }
+
+s22MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s22 minimum value x10 in Integer format"
+    ::= { sensor22setup 2 }
+	
+s22HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s22 hysteresis value x10 in Integer format"
+    ::= { sensor22setup 3 }
+
+s3description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current    DESCRIPTION
+        "sensor3 description"
+    ::= { sensor3setup 1 }
+
+sensor31setup                      	OBJECT IDENTIFIER ::=  { sensor3setup 2 }
+sensor32setup                      	OBJECT IDENTIFIER ::=  { sensor3setup 3 }
+
+s31MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s31 maximum value x10 in Integer format"
+    ::= { sensor31setup 1 }
+
+s31MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s31 minimum value x10 in Integer format"
+    ::= { sensor31setup 2 }
+	
+s31HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s31 hysteresis value x10 in Integer format"
+    ::= { sensor31setup 3 }
+
+s32MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s32 maximum value x10 in Integer format"
+    ::= { sensor32setup 1 }
+
+s32MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s32 minimum value x10 in Integer format"
+    ::= { sensor32setup 2 }
+	
+s32HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s32 hysteresis value x10 in Integer format"
+    ::= { sensor32setup 3 }
+
+s4description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current    DESCRIPTION
+        "sensor4 description"
+    ::= { sensor4setup 1 }
+
+sensor41setup                      	OBJECT IDENTIFIER ::=  { sensor4setup 2 }
+sensor42setup                      	OBJECT IDENTIFIER ::=  { sensor4setup 3 }
+
+s41MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s41 maximum value x10 in Integer format"
+    ::= { sensor41setup 1 }
+
+s41MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s41 minimum value x10 in Integer format"
+    ::= { sensor41setup 2 }
+	
+s41HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s41 hysteresis value x10 in Integer format"
+    ::= { sensor41setup 3 }
+
+s42MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s42 maximum value x10 in Integer format"
+    ::= { sensor42setup 1 }
+
+s42MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s42 minimum value x10 in Integer format"
+    ::= { sensor42setup 2 }
+	
+s42HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s42 hysteresis value x10 in Integer format"
+    ::= { sensor42setup 3 }
+
+s5description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current    DESCRIPTION
+        "sensor5 description"
+    ::= { sensor5setup 1 }
+
+sensor51setup                      	OBJECT IDENTIFIER ::=  { sensor5setup 2 }
+sensor52setup                      	OBJECT IDENTIFIER ::=  { sensor5setup 3 }
+
+s51MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s51 maximum value x10 in Integer format"
+    ::= { sensor51setup 1 }
+
+s51MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s51 minimum value x10 in Integer format"
+    ::= { sensor51setup 2 }
+	
+s51HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s51 hysteresis value x10 in Integer format"
+    ::= { sensor51setup 3 }
+
+s52MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s52 maximum value x10 in Integer format"
+    ::= { sensor52setup 1 }
+
+s52MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s52 minimum value x10 in Integer format"
+    ::= { sensor52setup 2 }
+	
+s52HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s52 hysteresis value x10 in Integer format"
+    ::= { sensor52setup 3 }
+
+s6description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current    DESCRIPTION
+        "sensor6 description"
+    ::= { sensor6setup 1 }
+
+sensor61setup                      	OBJECT IDENTIFIER ::=  { sensor6setup 2 }
+sensor62setup                      	OBJECT IDENTIFIER ::=  { sensor6setup 3 }
+
+s61MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s61 maximum value x10 in Integer format"
+    ::= { sensor61setup 1 }
+
+s61MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s61 minimum value x10 in Integer format"
+    ::= { sensor61setup 2 }
+	
+s61HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s61 hysteresis value x10 in Integer format"
+    ::= { sensor61setup 3 }
+
+s62MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s62 maximum value x10 in Integer format"
+    ::= { sensor62setup 1 }
+
+s62MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s62 minimum value x10 in Integer format"
+    ::= { sensor62setup 2 }
+	
+s62HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s62 hysteresis value x10 in Integer format"
+    ::= { sensor62setup 3 }
+
+s7description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current    DESCRIPTION
+        "sensor7 description"
+    ::= { sensor7setup 1 }
+
+sensor71setup                      	OBJECT IDENTIFIER ::=  { sensor7setup 2 }
+sensor72setup                      	OBJECT IDENTIFIER ::=  { sensor7setup 3 }
+
+s71MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s71 maximum value x10 in Integer format"
+    ::= { sensor71setup 1 }
+
+s71MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s71 minimum value x10 in Integer format"
+    ::= { sensor71setup 2 }
+	
+s71HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s71 hysteresis value x10 in Integer format"
+    ::= { sensor71setup 3 }
+
+s72MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s72 maximum value x10 in Integer format"
+    ::= { sensor72setup 1 }
+
+s72MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s72 minimum value x10 in Integer format"
+    ::= { sensor72setup 2 }
+	
+s72HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s72 hysteresis value x10 in Integer format"
+    ::= { sensor72setup 3 }
+
+s8description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current    DESCRIPTION
+        "sensor8 description"
+    ::= { sensor8setup 1 }
+
+sensor81setup                      	OBJECT IDENTIFIER ::=  { sensor8setup 2 }
+sensor82setup                      	OBJECT IDENTIFIER ::=  { sensor8setup 3 }
+
+s81MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s81 maximum value x10 in Integer format"
+    ::= { sensor81setup 1 }
+
+s81MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s81 minimum value x10 in Integer format"
+    ::= { sensor81setup 2 }
+	
+s81HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s81 hysteresis value x10 in Integer format"
+    ::= { sensor81setup 3 }
+
+s82MAXx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s82 maximum value x10 in Integer format"
+    ::= { sensor82setup 1 }
+
+s82MINx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s82 minimum value x10 in Integer format"
+    ::= { sensor82setup 2 }
+	
+s82HYSTx10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "s82 hysteresis value x10 in Integer format"
+    ::= { sensor82setup 3 }
+
+
+
+analogSetup                      	OBJECT IDENTIFIER ::=  { io 2 }
+
+analog1setup                   	OBJECT IDENTIFIER ::=  { analogSetup 1 }
+analog2setup                   	OBJECT IDENTIFIER ::=  { analogSetup 2 }
+analog3setup                   	OBJECT IDENTIFIER ::=  { analogSetup 3 }
+analog4setup                   	OBJECT IDENTIFIER ::=  { analogSetup 4 }
+
+voltage1description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 1 description"
+    ::= { analog1setup 1 }
+	
+voltage1max  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 1 maximum"
+    ::= { analog1setup 2 }
+	
+voltage1min  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 1 minimum"
+    ::= { analog1setup 3 }
+	
+voltage1hyst  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 1 hysteresis"
+    ::= { analog1setup 4 }
+
+voltage2description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 2 description"
+    ::= { analog2setup 1 }
+	
+voltage2max  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 2 maximum"
+    ::= { analog2setup 2 }
+	
+voltage2min  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 2 minimum"
+    ::= { analog2setup 3 }
+	
+voltage2hyst  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 2 hysteresis"
+    ::= { analog2setup 4 }
+
+voltage3description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 3 description"
+    ::= { analog3setup 1 }
+	
+voltage3max  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 3 maximum"
+    ::= { analog3setup 2 }
+	
+voltage3min  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 3 minimum"
+    ::= { analog3setup 3 }
+	
+voltage3hyst  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 3 hysteresis"
+    ::= { analog3setup 4 }
+
+voltage4description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 4 description"
+    ::= { analog4setup 1 }
+	
+voltage4max  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 4 maximum"
+    ::= { analog4setup 2 }
+	
+voltage4min  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 4 minimum"
+    ::= { analog4setup 3 }
+	
+voltage4hyst  OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Voltage 4 hysteresis"
+    ::= { analog4setup 4 }
+	
+digitalSetup                      	OBJECT IDENTIFIER ::=  { io 3 }
+
+digitalInput1description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Digital Input 1 description"
+    ::= { digitalSetup 1 }
+
+digitalInput2description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Digital Input 2 description"
+    ::= { digitalSetup 2 }
+	
+digitalInput3description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Digital Input 3 description"
+    ::= { digitalSetup 3 }
+
+digitalInput4description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Digital Input 4 description"
+    ::= { digitalSetup 4 }
+
+relaysSetup                      	OBJECT IDENTIFIER ::=  { io 4 }
+
+relay1setup                      	OBJECT IDENTIFIER ::=  { relaysSetup 1 }
+relay2setup                      	OBJECT IDENTIFIER ::=  { relaysSetup 2 }
+relay3setup                      	OBJECT IDENTIFIER ::=  { relaysSetup 3 }
+relay4setup                      	OBJECT IDENTIFIER ::=  { relaysSetup 4 }
+
+relay1description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Relay 1 description"
+    ::= { relay1setup 1 }
+	
+relay1pulseWidth OBJECT-TYPE
+    SYNTAX Integer32 (1..65535)
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay1 Pulse x100ms"
+    ::= { relay1setup 2 }
+	
+relay1controlledBy OBJECT-TYPE
+    SYNTAX CONTROLLED
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay1 control logic"
+    ::= { relay1setup 3 }
+
+relay2description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Relay 2 description"
+    ::= { relay2setup 1 }
+	
+relay2pulseWidth OBJECT-TYPE
+    SYNTAX Integer32 (1..65535)
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay2 Pulse x100ms"
+    ::= { relay2setup 2 }
+
+relay2controlledBy OBJECT-TYPE
+    SYNTAX CONTROLLED
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay2 control logic"
+    ::= { relay2setup 3 }
+	
+relay3description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Relay 3 description"
+    ::= { relay3setup 1 }
+	
+relay3pulseWidth OBJECT-TYPE
+    SYNTAX Integer32 (1..65535)
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay3 Pulse x100ms"
+    ::= { relay3setup 2 }
+	
+relay3controlledBy OBJECT-TYPE
+    SYNTAX CONTROLLED
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay3 control logic"
+    ::= { relay3setup 3 }
+	
+relay4description  OBJECT-TYPE
+    SYNTAX  DisplayString (SIZE (0..12))
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION
+        "Relay 4 description"
+    ::= { relay4setup 1 }
+	
+relay4pulseWidth OBJECT-TYPE
+    SYNTAX Integer32 (1..65535)
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay4 Pulse x100ms"
+    ::= { relay4setup 2 }
+
+relay4controlledBy OBJECT-TYPE
+    SYNTAX CONTROLLED
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay4 control logic"
+    ::= { relay4setup 3 }
+	
+	
+sensors	OBJECT IDENTIFIER ::=  { monitorNcontrol 1 }
+sensor1	OBJECT IDENTIFIER ::=  { sensors 1 }
+s11x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S11 value x10 in Integer format"
+    ::= { sensor1 1 }
+	
+s12x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S12 value x10 in Integer format"
+    ::= { sensor1 2 }
+	
+s1ID OBJECT-TYPE
+    SYNTAX  MacAddress
+    MAX-ACCESS  read-only
+    STATUS current
+    DESCRIPTION
+        "S1 ID value"
+    ::= { sensor1 3 }
+
+sensor2	OBJECT IDENTIFIER ::=  { sensors 2 }
+s21x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S21 value x10 in Integer format"
+    ::= { sensor2 1 }
+	
+s22x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S22 value x10 in Integer format"
+    ::= { sensor2 2 }
+	
+s2ID OBJECT-TYPE
+    SYNTAX  MacAddress
+    MAX-ACCESS  read-only
+    STATUS current
+    DESCRIPTION
+        "S2 ID value"
+    ::= { sensor2 3 }
+
+sensor3	OBJECT IDENTIFIER ::=  { sensors 3 }
+s31x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S31 value x10 in Integer format"
+    ::= { sensor3 1 }
+	
+s32x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S32 value x10 in Integer format"
+    ::= { sensor3 2 }
+	
+s3ID OBJECT-TYPE
+    SYNTAX  MacAddress
+    MAX-ACCESS  read-only
+    STATUS current
+    DESCRIPTION
+        "S3 ID value"
+    ::= { sensor3 3 }
+
+sensor4	OBJECT IDENTIFIER ::=  { sensors 4 }
+s41x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S41 value x10 in Integer format"
+    ::= { sensor4 1 }
+	
+s42x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S42 value x10 in Integer format"
+    ::= { sensor4 2 }
+	
+s4ID OBJECT-TYPE
+    SYNTAX  MacAddress
+    MAX-ACCESS  read-only
+    STATUS current
+    DESCRIPTION
+        "S4 ID value"
+    ::= { sensor4 3 }
+
+sensor5	OBJECT IDENTIFIER ::=  { sensors 5 }
+s51x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S51 value x10 in Integer format"
+    ::= { sensor5 1 }
+	
+s52x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S52 value x10 in Integer format"
+    ::= { sensor5 2 }
+	
+s5ID OBJECT-TYPE
+    SYNTAX  MacAddress
+    MAX-ACCESS  read-only
+    STATUS current
+    DESCRIPTION
+        "S5 ID value"
+    ::= { sensor5 3 }
+
+sensor6	OBJECT IDENTIFIER ::=  { sensors 6 }
+s61x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S61 value x10 in Integer format"
+    ::= { sensor6 1 }
+	
+s62x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S62 value x10 in Integer format"
+    ::= { sensor6 2 }
+	
+s6ID OBJECT-TYPE
+    SYNTAX  MacAddress
+    MAX-ACCESS  read-only
+    STATUS current
+    DESCRIPTION
+        "S6 ID value"
+    ::= { sensor6 3 }
+
+sensor7	OBJECT IDENTIFIER ::=  { sensors 7 }
+s71x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S71 value x10 in Integer format"
+    ::= { sensor7 1 }
+	
+s72x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S72 value x10 in Integer format"
+    ::= { sensor7 2 }
+	
+s7ID OBJECT-TYPE
+    SYNTAX  MacAddress
+    MAX-ACCESS  read-only
+    STATUS current
+    DESCRIPTION
+        "S7 ID value"
+    ::= { sensor7 3 }
+
+sensor8	OBJECT IDENTIFIER ::=  { sensors 8 }
+s81x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S81 value x10 in Integer format"
+    ::= { sensor8 1 }
+	
+s82x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "S82 value x10 in Integer format"
+    ::= { sensor8 2 }
+	
+s8ID OBJECT-TYPE
+    SYNTAX  MacAddress
+    MAX-ACCESS  read-only
+    STATUS current
+    DESCRIPTION
+        "S8 ID value"
+    ::= { sensor8 3 }
+
+analog	OBJECT IDENTIFIER ::=  { monitorNcontrol 2 }
+
+voltage1x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Voltage1 x10 in Integer format"
+    ::= { analog 1 }
+	
+voltage2x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Voltage2 x10 in Integer format"
+    ::= { analog 2 }
+	
+voltage3x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Voltage3 x10 in Integer format"
+    ::= { analog 3 }
+	
+voltage4x10Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Voltage4 x10 in Integer format"
+    ::= { analog 4 }
+
+voltage1x100Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Voltage1 x100 in Integer format"
+    ::= { analog 5 }
+	
+voltage2x100Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Voltage2 x100 in Integer format"
+    ::= { analog 6 }
+	
+voltage3x100Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Voltage3 x100 in Integer format"
+    ::= { analog 7 }
+	
+voltage4x100Int OBJECT-TYPE
+    SYNTAX Integer32
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Voltage4 x100 in Integer format"
+    ::= { analog 8 }
+
+digital	OBJECT IDENTIFIER ::=  { monitorNcontrol 3 }
+
+digitalInput1State OBJECT-TYPE
+    SYNTAX INTEGER { closed(0), open(1) }
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Digital1 Input State"
+    ::= { digital 1 }
+
+digitalInput2State OBJECT-TYPE
+    SYNTAX INTEGER { closed(0), open(1) }
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Digital2 Input State"
+    ::= { digital 2 }
+
+digitalInput3State OBJECT-TYPE
+    SYNTAX INTEGER { closed(0), open(1) }
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Digital3 Input State"
+    ::= { digital 3 }
+
+digitalInput4State OBJECT-TYPE
+    SYNTAX INTEGER { closed(0), open(1) }
+    MAX-ACCESS read-only
+    STATUS current
+    DESCRIPTION 
+        "Digital4 Input State"
+    ::= { digital 4 }
+
+relays	OBJECT IDENTIFIER ::=  { monitorNcontrol 4 }
+
+relay1	OBJECT IDENTIFIER ::=  { relays 1 }
+relay1State OBJECT-TYPE
+    SYNTAX INTEGER { off(0), on(1) }
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay1 State"
+    ::= { relay1 1 }
+
+relay1Pulse OBJECT-TYPE
+    SYNTAX INTEGER { off(0), on(1) }
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay1 Pulse"
+    ::= { relay1 2 }
+	
+relay2	OBJECT IDENTIFIER ::=  { relays 2 }
+relay2State OBJECT-TYPE
+    SYNTAX INTEGER { off(0), on(1) }
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay2 State"
+    ::= { relay2 1 }
+
+relay2Pulse OBJECT-TYPE
+    SYNTAX INTEGER { off(0), on(1) }
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay2 Pulse"
+    ::= { relay2 2 }
+	
+relay3	OBJECT IDENTIFIER ::=  { relays 3 }
+relay3State OBJECT-TYPE
+    SYNTAX INTEGER { off(0), on(1) }
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay3 State"
+    ::= { relay3 1 }
+
+relay3Pulse OBJECT-TYPE
+    SYNTAX INTEGER { off(0), on(1) }
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay3 Pulse"
+    ::= { relay3 2 }
+	
+relay4	OBJECT IDENTIFIER ::=  { relays 4 }
+relay4State OBJECT-TYPE
+    SYNTAX INTEGER { off(0), on(1) }
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay4 State"
+    ::= { relay4 1 }
+
+relay4Pulse OBJECT-TYPE
+    SYNTAX INTEGER { off(0), on(1) }
+    MAX-ACCESS read-write
+    STATUS current
+    DESCRIPTION 
+        "Relay4 Pulse"
+    ::= { relay4 2 }
+	
+
+--- configurationSaved
+configurationSaved OBJECT-TYPE
+	SYNTAX INTEGER { unsaved(0), saved(1) }
+	MAX-ACCESS read-write
+	STATUS current
+	DESCRIPTION
+		"Configuration save status SAVED/UNSAVED"
+	::= { monitorNcontrol 5 }
+
+restartDevice OBJECT-TYPE
+	SYNTAX INTEGER {  cancel(0), restart(1) }
+	MAX-ACCESS read-write
+	STATUS current
+	DESCRIPTION
+		"Restart Device"
+	::= { monitorNcontrol 6}
+	
+temperatureUnit OBJECT-TYPE
+	SYNTAX INTEGER {  celcius(0), fahrenheit(1) }
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"Unit of the all temperature values"
+	::= { monitorNcontrol 7}
+	
+hardwareErr OBJECT-TYPE
+	SYNTAX INTEGER {  noErr(0), owErr(1), hwErr(2) }
+	MAX-ACCESS read-only
+	STATUS current
+	DESCRIPTION
+		"Hardware Error"
+	::= { monitorNcontrol 8}
+
+snmp-trap-notification NOTIFICATION-TYPE
+	OBJECTS { digitalInput1State,digitalInput2State,digitalInput3State,digitalInput4State,
+	voltage1x10Int,voltage2x10Int,voltage3x10Int,voltage4x10Int,
+	s11x10Int,s12x10Int,
+	s21x10Int,s22x10Int,
+	s31x10Int,s32x10Int,
+	s41x10Int,s42x10Int,
+	s51x10Int,s52x10Int,
+	s61x10Int,s62x10Int,
+	s71x10Int,s72x10Int,
+	s81x10Int,s82x10Int,
+	restartDevice}
+	STATUS current
+	DESCRIPTION 
+		"SMIV2 Trap notification information for the SNMP Manager."
+	::= {trapNotifications 1}
+	
+tcw240bMIBCompliances1 MODULE-COMPLIANCE
+    STATUS  current
+	DESCRIPTION
+            "This group is for SNMP applications."
+    MODULE  -- this module
+        MANDATORY-GROUPS { tcw240bProductGroup, tcw240bSetupGroup, tcw240bMonitorGroup, tcw240bTrapGroup}
+
+    ::= { tcw240bMIBCompliances 1 }
+	
+tcw240bProductGroup OBJECT-GROUP
+    OBJECTS {name, version, dateTime}
+	STATUS  current
+    DESCRIPTION
+            "A collection of objects providing basic product info."
+    ::= { tcw240bMIBGroups 1 }	
+	
+tcw240bSetupGroup OBJECT-GROUP
+    OBJECTS {	deviceID, hostName, deviceIP,
+				s1description, s11MAXx10Int, s11MINx10Int, s11HYSTx10Int, s12MAXx10Int, s12MINx10Int, s12HYSTx10Int,
+				s2description, s21MAXx10Int, s21MINx10Int, s21HYSTx10Int, s22MAXx10Int, s22MINx10Int, s22HYSTx10Int,
+				s3description, s31MAXx10Int, s31MINx10Int, s31HYSTx10Int, s32MAXx10Int, s32MINx10Int, s32HYSTx10Int,
+				s4description, s41MAXx10Int, s41MINx10Int, s41HYSTx10Int, s42MAXx10Int, s42MINx10Int, s42HYSTx10Int,
+				s5description, s51MAXx10Int, s51MINx10Int, s51HYSTx10Int, s52MAXx10Int, s52MINx10Int, s52HYSTx10Int,
+				s6description, s61MAXx10Int, s61MINx10Int, s61HYSTx10Int, s62MAXx10Int, s62MINx10Int, s62HYSTx10Int,
+				s7description, s71MAXx10Int, s71MINx10Int, s71HYSTx10Int, s72MAXx10Int, s72MINx10Int, s72HYSTx10Int,
+				s8description, s81MAXx10Int, s81MINx10Int, s81HYSTx10Int, s82MAXx10Int, s82MINx10Int, s82HYSTx10Int,
+				voltage1description, voltage1max, voltage1min, voltage1hyst, 
+				voltage2description, voltage2max, voltage2min, voltage2hyst, 
+				voltage3description, voltage3max, voltage3min, voltage3hyst, 
+				voltage4description, voltage4max, voltage4min, voltage4hyst,
+				digitalInput1description, digitalInput2description, digitalInput3description, digitalInput4description,
+				relay1description, relay1pulseWidth, relay1controlledBy, relay2description, relay2pulseWidth, relay2controlledBy,
+				relay3description, relay3pulseWidth, relay3controlledBy, relay4description, relay4pulseWidth, relay4controlledBy
+			}
+    STATUS  current
+    DESCRIPTION
+            "A collection of objects providing basic setup."
+    ::= { tcw240bMIBGroups 2 }	
+	
+tcw240bMonitorGroup OBJECT-GROUP
+    OBJECTS {	s11x10Int, s12x10Int, s1ID, s21x10Int, s22x10Int, s2ID, s31x10Int, s32x10Int, s3ID,
+				s41x10Int, s42x10Int, s4ID, s51x10Int, s52x10Int, s5ID, s61x10Int, s62x10Int, s6ID,
+				s71x10Int, s72x10Int, s7ID, s81x10Int, s82x10Int, s8ID,
+				voltage1x10Int, voltage2x10Int, voltage3x10Int, voltage4x10Int, 
+				voltage1x100Int, voltage2x100Int, voltage3x100Int, voltage4x100Int,
+				digitalInput1State, digitalInput2State, digitalInput3State, digitalInput4State,
+				relay1State, relay1Pulse, relay2State, relay2Pulse, relay3State, relay3Pulse, relay4State, relay4Pulse,
+				configurationSaved, restartDevice, temperatureUnit, hardwareErr
+			}
+    STATUS  current
+    DESCRIPTION
+            "A collection of objects providing basic monitoring
+            and control of a product."
+    ::= { tcw240bMIBGroups 3 }	
+	
+tcw240bTrapGroup NOTIFICATION-GROUP
+    NOTIFICATIONS  {snmp-trap-notification}
+    STATUS  current
+    DESCRIPTION
+            "SNMP Trap Notification object."
+    ::= { tcw240bMIBGroups 4 }	
+
+	
+END