TERACOM-TCW181B-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, enterprises, IpAddress, Integer32, snmpModules 		
															FROM SNMPv2-SMI
	MacAddress, DisplayString								FROM SNMPv2-TC
--	TEXTUAL-CONVENTION										FROM SNMPv2-TC
	MODULE-COMPLIANCE, OBJECT-GROUP , NOTIFICATION-GROUP      						
															FROM SNMPv2-CONF;
															
snmpMIB MODULE-IDENTITY
    LAST-UPDATED "201701260000Z"
	ORGANIZATION "TERACOM"
	CONTACT-INFO
			"EMail:	info@teracom.cc"
	DESCRIPTION
			"The MIB module for TCW181B-CM SNMP entities."
	REVISION      "201701260000Z"
	DESCRIPTION
			"TCW181B-CMv3.03"
	::= { snmpModules 1 }

teracom                           OBJECT IDENTIFIER ::=  { enterprises 38783 }
trapNotifications                 OBJECT IDENTIFIER ::=  { teracom 0 }
product                           OBJECT IDENTIFIER ::=  { teracom 1 }
snmpSetup                         OBJECT IDENTIFIER ::=  { teracom 2 }
monitorNcontrol                   OBJECT IDENTIFIER ::=  { teracom 3 }
network                           OBJECT IDENTIFIER ::=  { teracom 4 }
ioSetup                           OBJECT IDENTIFIER ::=  { teracom 5 }
tcw181bMIBConformance			  OBJECT IDENTIFIER ::=  { teracom 8 }

tcw181bMIBCompliances         		OBJECT IDENTIFIER ::= { tcw181bMIBConformance 1 }
tcw181bMIBGroups  					OBJECT IDENTIFIER ::= { tcw181bMIBConformance 2 }

--ON-OFF          	::=   INTEGER { off(0), on(1) }
--DACTION          	::=   INTEGER { noAction(0), mailIfOpenToClosed(1), mailIfClosedToOpen(2) }

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 }
   
date    OBJECT-TYPE
   SYNTAX DisplayString
   MAX-ACCESS read-only
   STATUS current
   DESCRIPTION
      "Date of version"
   ::= { product 3 }


trapEnabled OBJECT-TYPE
    SYNTAX INTEGER { no(0), yes(1) }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Indicates if this trap entry is enabled or not."
    ::= { snmpSetup 1 }


trapReceiverIPAddress OBJECT-TYPE
    SYNTAX  IpAddress
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "Trap receiver IP address"
    ::= { snmpSetup 2 }

trapCommunity OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..13))
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "Trap community to be used by agent to send trap"
    ::= { snmpSetup 3 }

digitalInput OBJECT-TYPE
    SYNTAX INTEGER { closed(0), open(1) }
    MAX-ACCESS  read-only
    STATUS current
    DESCRIPTION
        "digital Input State"
    ::= { monitorNcontrol 1 }

relay1 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "relay1 State"
    ::= { monitorNcontrol 2 }

relay2 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "relay2 State"
    ::= { monitorNcontrol 3 }

relay3 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "relay3 State"
    ::= { monitorNcontrol 4 }

relay4 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "relay4 State"
    ::= { monitorNcontrol 5 }

relay5 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "relay5 State"
    ::= { monitorNcontrol 6 }

relay6 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "relay6 State"
    ::= { monitorNcontrol 7 }

relay7 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "relay7 State"
    ::= { monitorNcontrol 8 }

relay8 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "relay8 State"
    ::= { monitorNcontrol 9 }

pulse1 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "pulse1 State"
    ::= { monitorNcontrol 10 }

pulse2 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "pulse2 State"
    ::= { monitorNcontrol 11 }

pulse3 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "pulse3 State"
    ::= { monitorNcontrol 12 }

pulse4 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "pulse4 State"
    ::= { monitorNcontrol 13 }

pulse5 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "pulse5 State"
    ::= { monitorNcontrol 14 }

pulse6 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "pulse6 State"
    ::= { monitorNcontrol 15 }

pulse7 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "pulse7 State"
    ::= { monitorNcontrol 16 }

pulse8 OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "pulse8 State"
    ::= { monitorNcontrol 17 }
	
allOn OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "Set all relays ON"
    ::= { monitorNcontrol 18 }
	
allOff OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "Set all relays OFF"
    ::= { monitorNcontrol 19 }
	
allPulse OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "Pulse all relays"
    ::= { monitorNcontrol 20 }
	

deviceIPAddress OBJECT-TYPE
    SYNTAX  IpAddress
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "Device IP address"
    ::= { network 1 }


subnetMask OBJECT-TYPE
    SYNTAX  IpAddress
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "Subnet Mask"
    ::= { network 2 }

gateway OBJECT-TYPE
    SYNTAX  IpAddress
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "Gateway IP address"
    ::= { network 3 }

deviceMACAddress OBJECT-TYPE
    SYNTAX  MacAddress
    MAX-ACCESS  read-write
    STATUS current
    DESCRIPTION
        "Device MAC address"
    ::= { network 4 }

dhcpConfig OBJECT-TYPE
    SYNTAX INTEGER { off(0), on(1) }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "DHCP configuration ON/OFF"
    ::= { network 5 }

-- inputs	

--digitalInput1                               OBJECT IDENTIFIER ::=  { inputs 1 }
--digitalInput2                               OBJECT IDENTIFIER ::=  { inputs 2 }

relay1PulseDuration OBJECT-TYPE
    SYNTAX Integer32 (0..253)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration of relay1"
    ::= { ioSetup 1 }

relay2PulseDuration OBJECT-TYPE
    SYNTAX Integer32 (0..253)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration of relay2"
    ::= { ioSetup 2 }

relay3PulseDuration OBJECT-TYPE
    SYNTAX Integer32 (0..253)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration of relay3"
    ::= { ioSetup 3 }

relay4PulseDuration OBJECT-TYPE
    SYNTAX Integer32 (0..253)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration of relay4"
    ::= { ioSetup 4 }

relay5PulseDuration OBJECT-TYPE
    SYNTAX Integer32 (0..253)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration of relay5"
    ::= { ioSetup 5 }

relay6PulseDuration OBJECT-TYPE
    SYNTAX Integer32 (0..253)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration of relay6"
    ::= { ioSetup 6 }

relay7PulseDuration OBJECT-TYPE
    SYNTAX Integer32 (0..253)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration of relay7"
    ::= { ioSetup 7 }

relay8PulseDuration OBJECT-TYPE
    SYNTAX Integer32 (0..253)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration of relay8"
    ::= { ioSetup 8 }

relay1description  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..11))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Relay 1 description"
    ::= { ioSetup 9 }

relay2description  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..11))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Relay 2 description"
    ::= { ioSetup 10 }

relay3description  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..11))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Relay 3 description"
    ::= { ioSetup 11 }

relay4description  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..11))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Relay 4 description"
    ::= { ioSetup 12 }

relay5description  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..11))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Relay 5 description"
    ::= { ioSetup 13 }

relay6description  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..11))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Relay 6 description"
    ::= { ioSetup 14 }

relay7description  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..11))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Relay 7 description"
    ::= { ioSetup 15 }

relay8description  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..11))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Relay 8 description"
    ::= { ioSetup 16 }
	
digitalInputAction OBJECT-TYPE
	SYNTAX INTEGER { noAction(0), mailIfOpenToClosed(1), mailIfClosedToOpen(2) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Digital Input Action"
	::= { ioSetup 17 }
	
digitalInputTo  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..38))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Digital Input event receiver's e-mail address"
    ::= { ioSetup 18 }
	
digitalInputSubject  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..11))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Digital Input event e-mail's subject"
    ::= { ioSetup 19 }
	
digitalInputBody  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..22))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Digital Input event e-mail's body"
    ::= { ioSetup 20 }
	
relay1PulseDurationMs OBJECT-TYPE
    SYNTAX Integer32 (0..9)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration x 100 in miliseconds of relay1"
    ::= { ioSetup 21 }
	
relay2PulseDurationMs OBJECT-TYPE
    SYNTAX Integer32 (0..9)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration x 100 in miliseconds of relay2"
    ::= { ioSetup 22 }
	
relay3PulseDurationMs OBJECT-TYPE
    SYNTAX Integer32 (0..9)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration x 100 in miliseconds of relay3"
    ::= { ioSetup 23 }
	
relay4PulseDurationMs OBJECT-TYPE
    SYNTAX Integer32 (0..9)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration x 100 in miliseconds of relay4"
    ::= { ioSetup 24 }
	
relay5PulseDurationMs OBJECT-TYPE
    SYNTAX Integer32 (0..9)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration x 100 in miliseconds of relay5"
    ::= { ioSetup 25 }
	
relay6PulseDurationMs OBJECT-TYPE
    SYNTAX Integer32 (0..9)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration x 100 in miliseconds of relay6"
    ::= { ioSetup 26 }
	
relay7PulseDurationMs OBJECT-TYPE
    SYNTAX Integer32 (0..9)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration x 100 in miliseconds of relay7"
    ::= { ioSetup 27 }
	
relay8PulseDurationMs OBJECT-TYPE
    SYNTAX Integer32 (0..9)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION 
        "Pulse duration x 100 in miliseconds of relay8"
    ::= { ioSetup 28 }
	
digitalInputDescription  OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..11))
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Digital input description"
    ::= { ioSetup 29 }
	
configurationSaved OBJECT-TYPE
	SYNTAX INTEGER { unsaved(0), saved(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Configuration save status SAVED/UNSAVED"
	::= { teracom 6 }

restartDevice OBJECT-TYPE
	SYNTAX INTEGER { cancel(0), restart(1) }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
		"Restart Device"
	::= { teracom 7 }
	   
snmp-trap-notification NOTIFICATION-TYPE
	OBJECTS { digitalInput,restartDevice}
	STATUS current
	DESCRIPTION 
		"SMIV2 Trap notification information for the SNMP Manager."
	::= {trapNotifications 1}
	
tcw181bMIBCompliances1 MODULE-COMPLIANCE
    STATUS  current
	DESCRIPTION
            "This group is for SNMP applications."
    MODULE  -- this module
        MANDATORY-GROUPS { tcw181bProductGroup, tcw181bSnmpSetupGroup, tcw181bMonitorGroup, tcw181bNetworkGroup, tcw181bIOSetupGroup, tcw181bTrapGroup}
    ::= { tcw181bMIBCompliances 1 }
	
tcw181bProductGroup OBJECT-GROUP
    OBJECTS {name, version, date}
	STATUS  current
    DESCRIPTION
            "A collection of objects providing basic product info."
    ::= { tcw181bMIBGroups 1 }	
	
tcw181bSnmpSetupGroup OBJECT-GROUP
    OBJECTS { trapEnabled, trapReceiverIPAddress, trapCommunity }
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic SNMP setup."
    ::= { tcw181bMIBGroups 2 }
	
tcw181bMonitorGroup OBJECT-GROUP
    OBJECTS { 	digitalInput, relay1, relay2, relay3, relay4, relay5, relay6, relay7, relay8,
				pulse1, pulse2, pulse3, pulse4, pulse5, pulse6, pulse7, pulse8, allOn, allOff, allPulse
			}
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic monitoring
            and control of a product."
    ::= { tcw181bMIBGroups 3 }	
	
tcw181bNetworkGroup OBJECT-GROUP
    OBJECTS { deviceIPAddress, subnetMask, gateway, deviceMACAddress, dhcpConfig}
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic network setup."
    ::= { tcw181bMIBGroups 4 }
		
tcw181bIOSetupGroup OBJECT-GROUP
    OBJECTS { 	relay1PulseDuration, relay2PulseDuration, relay3PulseDuration, relay4PulseDuration, relay5PulseDuration,
				relay6PulseDuration, relay7PulseDuration, relay8PulseDuration, relay1description, relay2description,
				relay3description, relay4description, relay5description, relay6description, relay7description, relay8description,
				digitalInputAction, digitalInputTo, digitalInputSubject, digitalInputBody, 
				relay1PulseDurationMs, relay2PulseDurationMs, relay3PulseDurationMs, relay4PulseDurationMs,
				relay5PulseDurationMs, relay6PulseDurationMs, relay7PulseDurationMs, relay8PulseDurationMs,digitalInputDescription,
				configurationSaved, restartDevice
			}
    STATUS  current
    DESCRIPTION
            "A collection of objects providing basic input/output setup."
    ::= { tcw181bMIBGroups 5 }
	
--tcw181confSavedGroup OBJECT-GROUP
 --   OBJECTS { configurationSaved }
 --   STATUS  current
 --   DESCRIPTION
 --           "A collection of objects providing save configuration."
  --  ::= { tcw181bMIBGroups 6 }
		
--tcw181restartDevGroup OBJECT-GROUP
 --   OBJECTS { restartDevice }
 --   STATUS  current
  --  DESCRIPTION
  --          "A collection of objects providing restart device."
  --  ::= { tcw181bMIBGroups 7 }
		
tcw181bTrapGroup NOTIFICATION-GROUP
    NOTIFICATIONS  {snmp-trap-notification}
    STATUS  current
    DESCRIPTION
            "SNMP Trap Notification object."
    ::= { tcw181bMIBGroups 8 }	
     
END
         
