TCT-SNMP-MIB DEFINITIONS ::= BEGIN

--
-- https://tools.ietf.org/html/rfc3584
--
-- Example MIB objects for agent module example implementations
-- http://net-snmp.sourceforge.net/wiki/index.php/Writing_your_own_MIBs
-- http://net-snmp.sourceforge.net/docs/mibs/NET-SNMP-MIB.txt
-- http://net-snmp.sourceforge.net/docs/mibs/NET-SNMP-EXAMPLES-MIB.txt
-- Run `snmptranslate -On TCT-SNMP-MIB::tctSnmpRxPwr` to get the address for a measurement
--

IMPORTS
    OBJECT-TYPE, Integer32,
	MODULE-IDENTITY, enterprises    FROM SNMPv2-SMI;

tctSnmp MODULE-IDENTITY
    LAST-UPDATED "202303310000Z"
    ORGANIZATION "transcelestial.org"
    CONTACT-INFO
	"
    postal: #06-04 101 Eunos Ave 3,
            409835, Singapore
    email:  support@transcelestial.com
    "
    DESCRIPTION
	"MIB objects for Centauri SNMP queries"

    REVISION     "202303310000Z"
    DESCRIPTION
	"Released"
    ::= { enterprises 54505 }

--
-- Measurements
--
tctSnmpMeasurements OBJECT IDENTIFIER ::= { tctSnmp 1 }

tctSnmpRxPwr OBJECT-TYPE
    SYNTAX      DISPLAYSTRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Get device receive power in dBm"

    ::= { tctSnmpMeasurements 1 }

tctSnmpLinkStatus OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Get laser link status:
        - 0: link is down
        - 1: link is up
    "
    ::= { tctSnmpMeasurements 2 }

tctSnmpTxPwr OBJECT-TYPE
    SYNTAX      DISPLAYSTRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Get device transmit power in dBm"
    ::= { tctSnmpMeasurements 3 }

tctSnmpRxMinPwr OBJECT-TYPE
    SYNTAX      DISPLAYSTRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Minimum rx power over previous 5 minutes"
    ::= { tctSnmpMeasurements 4 }

tctSnmpHumidity OBJECT-TYPE
    SYNTAX      DISPLAYSTRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Humidity as measured by device"
    ::= { tctSnmpMeasurements 5 }

tctSnmpWindowTemp OBJECT-TYPE
    SYNTAX      DISPLAYSTRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Temperature of window heater"
    ::= { tctSnmpMeasurements 6 }

tctSnmpHeaterOn OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Window heater is turned on"
    ::= { tctSnmpMeasurements 7 }

tctSnmpHeaterAuto OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Window heater automatic on/off is on"
    ::= { tctSnmpMeasurements 8 }

tctSnmpPosition OBJECT-TYPE
    SYNTAX      DISPLAYSTRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Absolute position of laser"
    ::= { tctSnmpMeasurements 9 }

tctSnmpVibrationAlert OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Device vibration is excessive"
    ::= { tctSnmpMeasurements 10 }

tctSnmpVibrationValue OBJECT-TYPE
    SYNTAX      DISPLAYSTRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"JSON string containing current level of vibration for the device"
    ::= { tctSnmpMeasurements 11 }

tctSnmpCorrectionAlert OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"Device correction vector for laser pointing is excessive"
    ::= { tctSnmpMeasurements 12 }

tctSnmpCorrectionValue OBJECT-TYPE
    SYNTAX      DISPLAYSTRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
	"JSON string containing current correction vector"
    ::= { tctSnmpMeasurements 13 }

tctTraps  OBJECT IDENTIFIER ::= { tctSnmp 2 }
 
     tctLaserLinkDown NOTIFICATION-TYPE
                     -- Note: 2 OID's get added to this trap prior to it being sent
                     -- SNMPv2-MIB::sysName and TCT-SNMP-MIB::tctSnmpRxPwr
                     STATUS current
       		DESCRIPTION "Centauri laser link down notification"
       		::= { tctTraps 1 }

     tctTrigger NOTIFICATION-TYPE
		     		-- Note: Deprecated - no longer in use
                    STATUS deprecated
       			DESCRIPTION "Centauri monitor event triggered"
       			::= { tctTraps 2 }

     tctLaserLinkUp NOTIFICATION-TYPE
                     -- Note: 2 OID's get added to this trap prior to it being sent
                     -- SNMPv2-MIB::sysName and TCT-SNMP-MIB::tctSnmpRxPwr
                     STATUS current
       		DESCRIPTION "Centauri laser link up notification"
       		::= { tctTraps 3 }

     tctHighVibration NOTIFICATION-TYPE
                     -- Note: Centauri has detected device movement affecting the laser link
                     STATUS current
       		DESCRIPTION "Centauri device vibration is excessive"
       		::= { tctTraps 4 }

     tctNormalVibration NOTIFICATION-TYPE
                     STATUS current
       		DESCRIPTION "Centauri device vibration has returned to normal operating range"
       		::= { tctTraps 5 }

     tctLowDiskSpace NOTIFICATION-TYPE
                     -- Note: Trap is triggered when the main Centauri filesystem is critically low on free space
                     STATUS current
       		DESCRIPTION "Centauri filesystem space is low"
       		::= { tctTraps 6 }

     tctHighCPU NOTIFICATION-TYPE
                     -- Note: CPU utilisation is critically high and may impact laser link performance
                     STATUS current
       		DESCRIPTION "Centauri CPU utilisation is high"
       		::= { tctTraps 7 }

     tctHighCorrection NOTIFICATION-TYPE
                     -- Note: Trap is triggered when size and frequency of corrections to laser pointing is excessive
                     STATUS current
       		DESCRIPTION "Centauri correction vector changes are excessive"
       		::= { tctTraps 8 }

     tctNormalCorrection NOTIFICATION-TYPE
                     STATUS current
       		DESCRIPTION "Centauri correction vector changes have returned to normal operating range"
       		::= { tctTraps 9 }
END