RUGGEDCOM-IRIGB-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE, Integer32, NOTIFICATION-TYPE		FROM SNMPv2-SMI
    TEXTUAL-CONVENTION							  	FROM SNMPv2-TC
    OBJECT-GROUP			       	    			FROM SNMPv2-CONF 
    ruggedcomMgmt, ruggedcomTraps					FROM RUGGEDCOM-MIB
    RcTimeSyncStatus								FROM RUGGEDCOM-TIMECONFIG-MIB;

rcIrigb MODULE-IDENTITY
    LAST-UPDATED "201510301700Z"      -- Oct 30, 17:00 EST 2015
    ORGANIZATION "Siemens Canada Limited"
    CONTACT-INFO
       "Postal: Siemens Canada Limited
                300 Applewood Crescent
                Concord, Ontario, 
                L4K 5C7 Canada
        Tel:    1-905-856-5288
        E-Mail: support@ruggedcom.com"
    DESCRIPTION
        "Siemens - RuggedCom proprietary to control and monitor IRIGB module."
	REVISION    "201510301700Z"      -- Oct 30, 17:00 EST 2015
    DESCRIPTION                
        "Added objects to configure and monitor IRIGB in RuggedCom devices."

	REVISION    "201412011700Z"      -- Dec 01, 17:00 EST 2014
    DESCRIPTION                
        "Initial version of Siemens - RuggedCom proprietary MIB to control and
        monitor IRIGB module."

    ::= { ruggedcomMgmt 10 }

---------------------------------------------------------------
-- Textual Conventions
---------------------------------------------------------------
RcTimeStamp ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "4d.4d"
     STATUS       current
     DESCRIPTION  "Timestamps are represented as a 64-bit unsigned 
     			   fixed-point number in seconds relative to
                   00:00 on 1 January 1970. The integer part is in the
                   first 32 bits and the fraction part is in the last
                   32 bits."
     SYNTAX       OCTET STRING (SIZE (8))	
        			
-- ---------------------------------------------------------- --
-- rcIrigb subtrees
-- ---------------------------------------------------------- --
rcIrigbBase				OBJECT IDENTIFIER ::= { rcIrigb 1 }
rcIrigbConformance 		OBJECT IDENTIFIER ::= { rcIrigb 2 }
rcIrigbGroups 			OBJECT IDENTIFIER ::= { rcIrigbConformance 2 }

-- ---------------------------------------------------------------------- --
-- Base subtree
-- ---------------------------------------------------------------------- --
rcIrigbStatus 	OBJECT-TYPE
    SYNTAX  	RcTimeSyncStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "The system synchronization status when IRIGB is a primary 
         time source.
         
         If value of this object is changed, rcIrigbStatusChange notification
         will be sent."
    ::= { rcIrigbBase 1}

rcIrigbAMOutput OBJECT-TYPE
    SYNTAX		INTEGER {
					off(1),
					am(4)
				}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Selects AM (Amplitude Modulation) mode of IRIGB port."
	REFERENCE
	 	 "AM mode complies with IRIG Standard 200-04."
    ::= { rcIrigbBase 2}
    
rcIrigbTimeCode OBJECT-TYPE
    SYNTAX		INTEGER {
					bxx0(1),
					bxx1(2),
					bxx2(3),
					bxx3(4),
					bxx4(5),
					bxx5(6),
					bxx6(7),
					bxx7(8)
				}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "This device uses the following convention to decode the IRIGB time code:
          letter [B] represents IRIG-B format, [xx] represents [00] for PWM/TTL mode
          of operation and [12] for AM operation. For example, Bxx7 represents B007 
          for PWM/TTL operation and B127 for AM operation. Please note that only Bxx0, 
          Bxx1, Bxx4 and Bxx5 time codes support IRIGB extensions."
    ::= { rcIrigbBase 3}
 
rcIrigbExt		OBJECT-TYPE
    SYNTAX		INTEGER {
					off(1),
					ieee1344(2),
					c37-118-2005(3),
					c37-118-2011(4)
				}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "IRIGB extensions use extra bits of the Control Functions (CF) portion of the 
         IRIGB time code. Within this portion of the time code, bits are designated for
         additional features, including: Calendar Year, Leap seconds, leap seconds pending,
         Daylight Saving Time (DST), DST pending, local time offset and time quality. 
         Please note that only Bxx0, Bxx1, Bxx4 and Bxx5 time codes support IRIGB extensions."
    ::= { rcIrigbBase 4}
    
rcIrigbInput	 OBJECT-TYPE
    SYNTAX  	INTEGER {
					off(1),
					pwm(2),
					pps(3),
					am(4)
				}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Selects operational mode of IRIGB input port. IRIGB module is capable of interpreting
          IRIGB extensions such as C37.118-2011, C37.118-2005 and IEEE1344."
    REFERENCE
	 	 "C37.118-2011, C37.118-2005 and IEEE1344."      
    ::= { rcIrigbBase 5}
    
rcIrigbLockInt OBJECT-TYPE
    SYNTAX  	Integer32(1..120)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "To set time interval in minute with in which IRIGB receiver 
         should acquire lock to the time source.
    	 Normally IRIGB receiver needs couple of minutes to lock 
		 the signal. 
		 User should set reasonable time interval. If time interval expire 
		 with out acquire the lock then system start distributing the time 
		 using local clock."
    ::= { rcIrigbBase 6}
    
rcIrigbCableComp OBJECT-TYPE
    SYNTAX  	Integer32(0..50000)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Cable compensation in ns may be desired to compensate for a long 
          cable  run in order to minimize the timing inaccuracy."
    ::= { rcIrigbBase 7}
    
rcIrigbOFM		 OBJECT-TYPE
    SYNTAX  	Integer32(-2147483647..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "The current time offset between system and reference clocks."
    ::= { rcIrigbBase 8}
    
rcIrigbFreqAdj 	 OBJECT-TYPE
    SYNTAX  	Integer32(-2147483647..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
         "The current amount of discipline applied to the local frequency reference (TCXO)."
    ::= { rcIrigbBase 9}
    
rcIrigbOutputPWM1 OBJECT-TYPE
    SYNTAX		INTEGER {
					off(1),
					pwm(2),
					pps(3),
					ppx(5)
				}			
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Selects Operational mode of TTL output port. PWM mode complies with IRIG
         Standard 200-04. PPx provides generic pulse per x second interface to 
         synchronize external devices."
    ::= { rcIrigbBase 10}  
    
rcIrigbPulseInterval1 OBJECT-TYPE
    SYNTAX  	Integer32(1..86400)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Selects Pulse Interval in s for TTL output port. This parameter is used
          in conjunction with PPx in order to provides generic pulse per x second
          interface to synchronize external devices."
    ::= { rcIrigbBase 11} 

rcIrigbPulseWidth1 	 OBJECT-TYPE
    SYNTAX  	Integer32(1..200)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Selects Pulse Width in ms for TTL output port. This parameter is used in
          conjunction with PPx to control the width of the pulse."
    ::= { rcIrigbBase 12}   
    
rcIrigbStartTime1 	 OBJECT-TYPE
	SYNTAX  	RcTimeStamp
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "This parameter is used in conjunction with PPx to set the starting time of
          first PPx event. Note that this parameter must be set at least 15 seconds 
          before the start of desired PPx otherwise first PPx event might be lost."
    ::= { rcIrigbBase 13}
    
rcIrigbOutputPWM2  OBJECT-TYPE
    SYNTAX		INTEGER {
					off(1),
					pwm(2),
					pps(3),
					ppx(5)
				}			
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Selects Operational mode of TTL output port2. PWM mode complies with IRIG
         Standard 200-04. PPx provides generic pulse per x second interface to 
         synchronize external devices."
    REFERENCE
	 	 "IRIGB Standard 200-04."      
    ::= { rcIrigbBase 14} 
    
rcIrigbPulseInterval2	OBJECT-TYPE
    SYNTAX  	Integer32(1..86400)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Selects Pulse Interval in s for TTL output port2. This parameter is used
          in conjunction with PPx in order to provides generic pulse per x second
          interface to synchronize external devices."
    ::= { rcIrigbBase 15}   
    
rcIrigbPulseWidth2 	 OBJECT-TYPE
    SYNTAX  	Integer32(1..200)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "Selects Pulse Width in ms for TTL output port2. This parameter is used in
          conjunction with PPx to control the width of the pulse."
    ::= { rcIrigbBase 16}
    
rcIrigbStartTime2 	 OBJECT-TYPE
	SYNTAX  	RcTimeStamp
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
         "This parameter is used in conjunction with PPx to set the starting time of
          first PPx event. Note that this parameter must be set at least 15 seconds 
          before the start of desired PPx otherwise first PPx event might be lost."
    ::= { rcIrigbBase 17}                                         
-- ---------------------------------------------------------------------- --
-- Traps
-- ---------------------------------------------------------------------- --
rcIrigbStatusChange 	NOTIFICATION-TYPE
	OBJECTS		{
					rcIrigbStatus
				}
	STATUS     	current
	DESCRIPTION
	"Notification generated if status of the IRIGB module is changed."		       
	::= { ruggedcomTraps 35 }

-- ---------------------------------------------------------------------- --
--  Conformance Groups
-- ---------------------------------------------------------------------- --
rcIrigbBaseGroup OBJECT-GROUP
	OBJECTS		{
					rcIrigbStatus 
				}
	STATUS     current
    DESCRIPTION 
        "A group of objects providing ability ability to  monitor and configure IRIGB status."
    ::= { rcIrigbGroups 1 }    

rcIrigbNotifyGroup OBJECT-GROUP
    OBJECTS     {
					rcIrigbStatusChange
				}
    STATUS      current
    DESCRIPTION 
        "A group of objects that define trap."
    ::= { rcIrigbGroups 2 }    


rcIrigbCommonGroup OBJECT-GROUP
	OBJECTS		{	rcIrigbStatus,
					rcIrigbTimeCode,
					rcIrigbExt,
					rcIrigbLockInt,
					rcIrigbCableComp,
					rcIrigbOFM,
					rcIrigbFreqAdj
				}
	STATUS     current
    DESCRIPTION 
        "A group of objects providing ability to monitor and configure IRIGB device."
    ::= { rcIrigbGroups 3 }
    
 rcIrigbAMOutGroup OBJECT-GROUP
	OBJECTS		{	
					rcIrigbAMOutput
				}
	STATUS     current
    DESCRIPTION 
        "A group of objects providing ability to configure IRIGB AM output interface."
    ::= { rcIrigbGroups 4 } 
    
rcIrigbInputGroup OBJECT-GROUP
	OBJECTS		{	
					rcIrigbInput
				}
	STATUS     current
    DESCRIPTION 
        "This parameter covers both AM and PWM inputs."
    ::= { rcIrigbGroups 5 }  
    
rcIrigbTTLOutput01Group OBJECT-GROUP
	OBJECTS		{	
					rcIrigbOutputPWM1,
					rcIrigbPulseInterval1,
					rcIrigbPulseWidth1,
					rcIrigbStartTime1
				}
	STATUS     current
    DESCRIPTION 
        "A group of objects providing ability to configure IRIGB TTL output interface01."
    ::= { rcIrigbGroups 6 } 
    
rcIrigbTTLOutput02Group OBJECT-GROUP
	OBJECTS		{	
					rcIrigbOutputPWM2,
					rcIrigbPulseInterval2,
					rcIrigbPulseWidth2,
					rcIrigbStartTime2
				}
	STATUS     current
    DESCRIPTION 
        "A group of objects providing ability to configure IRIGB TTL output interface02."
    ::= { rcIrigbGroups 7 }                   

END
