EMD-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    enterprises, Integer32, Unsigned32                  FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF
    TEXTUAL-CONVENTION, DisplayString, MacAddress, TruthValue  FROM SNMPv2-TC
    InetAddressType, InetAddress, InetPortNumber FROM INET-ADDRESS-MIB
    sysContact, sysName, sysLocation FROM RFC1213-MIB;

raritan MODULE-IDENTITY
    LAST-UPDATED "201510260000Z"      -- October 26, 2015
    ORGANIZATION "Raritan"
    CONTACT-INFO "
                  Author:       Raritan Americas, Inc.
                  postal:       Raritan Americas, Inc.
                                400 Cottontail Lane
                                Somerset, NJ 08873
                  email:        tech@raritan.com
                  phone:        +1 732 764 8886
                 "

    DESCRIPTION  "This MIB describes the SNMP functions of the
                  EMX Environmental Monitoring Device by Raritan Computer."


    REVISION     "201510260000Z"      -- October 26, 2015

    DESCRIPTION  "EMX release 3.2.10:

                  1) SensorUnitsEnumeration: Added
                       degrees(20)
                       voltampReactive(23)
                  2) Added to trapInformation:
                       phoneNumber
                     Added the following traps:
                       smsMessageTransmissionFailure trap
                 "


    REVISION     "201409290000Z"      -- September 29, 2014

    DESCRIPTION  "EMX release 3.1.0:
                          
                  - Allow configuration of default thresholds
                    for peripheral devices
                  
                  1) Added externalSensorTypeDefaultThresholdsTable
                  2) Added:
                     externalSensorUseDefaultThresholds
                  3)  Added agentInetPortNumber under trapInformation
                  4) Added agentInetPortNumber as a varbind to all traps
                  5) SensorTypeEnumeration: Added
                       absoluteHumidity(28)
                 "

    REVISION     "201402210000Z"      -- February 21, 2014

    DESCRIPTION  "EMX release 2.6.0:
                          
                  - Send trap on peripheral device firmware update
                  - Allow peripheral device auto management to be disabled
                  - Support DX-PIR occupancy sensor
                  
                  1) Added traps: radiusError, serverReachabilityError
                  2) Added unknownPeripheralDeviceAttached trap
                  3) Added:
                       PeripheralDeviceFirmwareUpdateStateEnumeration
                       peripheralDeviceFirmwareUpdateState
                       peripheralDeviceFirmwareUpdate trap
                  4) Added:
                       peripheralDevicesAutoManagement
                  5) Added userName to the following traps:
                       bulkConfigurationSaved
                       bulkConfigurationCopied
                       deviceSettingsSaved
                       deviceSettingsRestored
                       lhxSupportChanged
                  6) Added:
                       externalSensorAlarmedToNormalDelay
                  7) SensorUnitsEnumeration: Added
                       grampercubicmeter(22)
                 "

    REVISION     "201312170000Z"      -- December 17, 2013

    DESCRIPTION  "EMX release 2.5.0:
                  - Support for G2 peripheral devices
                  - Support Webcams

                  1) Added externalSensorIsActuator to the externalSensorConfigurationTable
                  2) Added actuatorControlTable
                  3) Added required sensor types and units
                  4) Added traps: webcamInserted and webcamRemoved
                  5) Added trapInformation parameters: webcamModel, webcamConnectionPort
                  6) Added serverConnectivityUnrecoverable trap
                  7) Added peripheralDevicePackageTable containing information on peripheral
                           device packages
                 "

    REVISION     "201210010000Z"      -- October 1, 2012

    DESCRIPTION  "Added the following traps:
                          deviceSettingsSaved,  deviceSettingsRestored
                 "

    REVISION     "201207110000Z"      -- July 11, 2012

    DESCRIPTION  "Added a comment before the section listing the traps.
                   The comment notes that the deviceInetAddressType and
                  deviceInetIPAddress fields are not used for IPv6 traps
                 "

    REVISION         "201205250000Z"      -- May 25, 2012

    DESCRIPTION  "added userAccepted/DeclinedRestrictedServiceAgreement traps"

    REVISION     "201201250000Z"      -- January 25, 2012

    DESCRIPTION  "added lhxSupportChanged trap."

    REVISION     "201112140000Z"      -- December 14, 2011

    DESCRIPTION  "
                  1. Added usbSlaveConnected, usbSlaveDisconnected traps

                 "

    REVISION     "201112120000Z"      -- December 12, 2011

    DESCRIPTION  "
                  1. Added cascadedDeviceConnected to unitConfiguration

                 "

    REVISION         "201111040000Z"      -- November 4, 2011

    DESCRIPTION  "
                  1. Added DeviceIdentificationParameterEnumeration
                  2. Added deviceIdentificationChanged Trap
                  3. Added sysContact, sysName, sysLocation to all traps
                 "

    REVISION     "201108260000Z"      -- August 26, 2011

    DESCRIPTION  "Added model name."

    REVISION     "201108050000Z"      -- August 8, 2011

    DESCRIPTION  "Added external sensor port number."

    REVISION     "201106300000Z"      -- June 30, 2011

    DESCRIPTION  "Added sensor log."

    REVISION     "201103300000Z"      -- March 30, 2011

    DESCRIPTION  "Changed MAX-ACCESS for externalOnOffSensorSubtype to read-write."

    REVISION     "201103100000Z"      -- March 10, 2011

    DESCRIPTION  "Remove unused deviceNumber from ExternalSensorStateChangeTrap."

    REVISION     "201102140000Z"      -- February 14, 2011

    DESCRIPTION  "The first version of the MIB."

                ::= { enterprises 13742 }

emd                OBJECT IDENTIFIER ::= { raritan 8 }

traps                        OBJECT IDENTIFIER ::= { emd 0 }
trapInformation              OBJECT IDENTIFIER ::= { traps 0 }
configuration                OBJECT IDENTIFIER ::= { emd 1 }
measurements                 OBJECT IDENTIFIER ::= { emd 2 }
conformance                  OBJECT IDENTIFIER ::= { emd 3 }
log                          OBJECT IDENTIFIER ::= { emd 4 }
control                      OBJECT IDENTIFIER ::= { emd 5 }

unit                         OBJECT IDENTIFIER ::= { configuration 1 }
externalSensors              OBJECT IDENTIFIER ::= { configuration 2 }
serverReachability           OBJECT IDENTIFIER ::= { configuration 3 }

measurementsExternalSensor   OBJECT IDENTIFIER ::= { measurements 1 }

compliances                  OBJECT IDENTIFIER ::= { conformance 1 }
groups                       OBJECT IDENTIFIER ::= { conformance 2 }

logUnit                      OBJECT IDENTIFIER ::= { log 1 }
logExternalSensor            OBJECT IDENTIFIER ::= { log 2 }

actuatorControl              OBJECT IDENTIFIER ::= { control 1 }

-- Conformance Information
-- compliance statements

complianceRev1      MODULE-COMPLIANCE
                STATUS current
                DESCRIPTION
                    "The requirements for conformance to the EMD-MIB."
                MODULE -- this module

                GROUP configGroup
                DESCRIPTION
                    "The configuration group."

                GROUP measurementsGroup
                DESCRIPTION
                    "The measurements group."

                GROUP trapInformationGroup
                DESCRIPTION
                    "The information group."

                GROUP trapsGroup
                DESCRIPTION
                    "The information group."

                GROUP logGroup
                DESCRIPTION
                    "The log group."

                GROUP controlGroup
                DESCRIPTION
                    "The control group."

                ::= { compliances 1 }

-- units of conformance

configGroup       OBJECT-GROUP
                OBJECTS {
                          externalSensorCount,
                          deviceInetAddressType,
                          deviceInetIPAddress,
                          deviceInetNetmask,
                          deviceInetGateway,
                          deviceMACAddress,
                          utcOffset,
                          model,
                          deviceName,
                          hardwareVersion,
                          firmwareVersion,
                          externalSensorType,
                          externalSensorSerialNumber,
                          externalSensorName,
                          externalSensorDescription,
                          externalSensorXCoordinate,
                          externalSensorYCoordinate,
                          externalSensorZCoordinate,
                          externalSensorChannelNumber,
                          externalOnOffSensorSubtype,
                          externalSensorUnits,
                          externalSensorDecimalDigits,
                          externalSensorAccuracy,
                          externalSensorResolution,
                          externalSensorTolerance,
                          externalSensorMaximum,
                          externalSensorMinimum,
                          externalSensorHysteresis,
                          externalSensorStateChangeDelay,
                          externalSensorLowerCriticalThreshold,
                          externalSensorLowerWarningThreshold,
                          externalSensorUpperCriticalThreshold,
                          externalSensorUpperWarningThreshold,
                          externalSensorEnabledThresholds,
                          externalSensorPort,
                          externalSensorsZCoordinateUnits,
                          externalSensorIsActuator,
                          externalSensorUseDefaultThresholds,
                          externalSensorTypeDefaultHysteresis,
                          externalSensorTypeDefaultStateChangeDelay,
                          externalSensorTypeDefaultLowerCriticalThreshold,
                          externalSensorTypeDefaultLowerWarningThreshold,
                          externalSensorTypeDefaultUpperCriticalThreshold,
                          externalSensorTypeDefaultUpperWarningThreshold,
                          externalSensorTypeDefaultEnabledThresholds,
                          managedExternalSensorCount,
                          serverCount,
                          serverIPAddress,
                          serverPingEnabled,
                          measurementPeriod,
                          measurementsPerLogEntry,
                          logSize,
                          cascadedDeviceConnected,
                          peripheralDevicePackageSerialNumber,
                          peripheralDevicePackageModel,
                          peripheralDevicePackageFirmwareVersion,
                          peripheralDevicePackageMinFirmwareVersion,
                          peripheralDevicePackageFirmwareTimeStamp,
                          peripheralDevicePackagePosition,
                          peripheralDevicePackageState,
                          peripheralDevicesAutoManagement,
                          externalSensorAlarmedToNormalDelay,
                          synchronizeWithNTPServer,
                          useDHCPProvidedNTPServer,
                          firstNTPServerAddressType,
                          firstNTPServerAddress,
                          secondNTPServerAddressType,
                          secondNTPServerAddress
                        }
                STATUS  current
                DESCRIPTION
                    "A collection of objects representing configuration data."
                ::= { groups 1 }

measurementsGroup       OBJECT-GROUP
                OBJECTS {
                          measurementsExternalSensorIsAvailable,
                          measurementsExternalSensorState,
                          measurementsExternalSensorValue,
                          measurementsExternalSensorTimeStamp
                        }
                STATUS  current
                DESCRIPTION
                    "A collection of objects providing the measurement
                     capability of EMD."
                ::= { groups 2 }

trapInformationGroup  OBJECT-GROUP
                OBJECTS {
                          userName,
                          targetUser,
                          imageVersion,
                          roleName,
                          oldSensorState,
                          externalSensorNumber,
                          typeOfSensor,
                          smtpMessageRecipients,
                          smtpServer,
                          errorDescription,
                          deviceChangedParameter,
                          changedParameterNewValue,
                          lhxSupportEnabled,
                          webcamModel,
                          webcamConnectionPort,
                          peripheralDeviceRomcode,
                          peripheralDeviceFirmwareUpdateState,
                          agentInetPortNumber,
                          phoneNumber
                        }
                STATUS  current
                DESCRIPTION
                    "A collection of objects providing
                     information in the traps."
                ::= { groups 3 }

trapsGroup      NOTIFICATION-GROUP
                NOTIFICATIONS {
                                systemStarted,
                                systemReset,
                                userLogin,
                                userLogout,
                                userAuthenticationFailure,
                                userSessionTimeout,
                                userAdded,
                                userModified,
                                userDeleted,
                                roleAdded,
                                roleModified,
                                roleDeleted,
                                deviceUpdateStarted,
                                deviceUpdateCompleted,
                                userBlocked,
                                userPasswordChanged,
                                passwordSettingsChanged,
                                firmwareValidationFailed,
                                logFileCleared,
                                bulkConfigurationSaved,
                                bulkConfigurationCopied,
                                externalSensorStateChange,
                                smtpMessageTransmissionFailure,
                                ldapError,
                                deviceUpdateFailed,
                                pingServerEnabled,
                                pingServerDisabled,
                                serverNotReachable,
                                serverReachable,
                                deviceIdentificationChanged,
                                usbSlaveConnected,
                                usbSlaveDisconnected,
                                lhxSupportChanged,
                                userAcceptedRestrictedServiceAgreement,
                                userDeclinedRestrictedServiceAgreement,
                                deviceSettingsSaved,
                                deviceSettingsRestored,
                                webcamInserted,
                                webcamRemoved,
                                serverConnectivityUnrecoverable,
                                radiusError,
                                serverReachabilityError,
                                unknownPeripheralDeviceAttached,
                                peripheralDeviceFirmwareUpdate,
                                smsMessageTransmissionFailure
                              }
                STATUS  current
                DESCRIPTION
                    "A collection of traps."
                ::= { groups 4 }

logGroup        OBJECT-GROUP
                OBJECTS {
                          dataLogging,
                          oldestLogID,
                          newestLogID,
                          logTimeStamp,
                          dataLoggingEnableForAllSensors,
                          logExternalSensorDataAvailable,
                          logExternalSensorState,
                          logExternalSensorAvgValue,
                          logExternalSensorMaxValue,
                          logExternalSensorMinValue
                         }
                STATUS  current
                DESCRIPTION
                    "A collection of objects providing the logging capabilities
                     about the EMD."
                ::= { groups 5 }

controlGroup        OBJECT-GROUP
                OBJECTS {
                          actuatorState
                         }
                STATUS  current
                DESCRIPTION
                    "A collection of objects providing the ability to control
                     actuators of the EMD."
                ::= { groups 6 }

-- Textual Conventions

SensorTypeEnumeration ::= TEXTUAL-CONVENTION
                          STATUS  current
                          DESCRIPTION
                              "The types a sensor can be."
                          SYNTAX        INTEGER {
                                                  rmsCurrent(1),
                                                  peakCurrent(2),
                                                  unbalancedCurrent(3),
                                                  rmsVoltage(4),
                                                  activePower(5),
                                                  apparentPower(6),
                                                  powerFactor(7),
                                                  activeEnergy(8),
                                                  apparentEnergy(9),
                                                  temperature(10),
                                                  humidity(11),
                                                  airFlow(12),
                                                  airPressure(13),
                                                  onOff(14),
                                                  trip(15),
                                                  vibration(16),
                                                  waterDetection(17),
                                                  smokeDetection(18),
                                                  binary(19),
                                                  contact(20),
                                                  fanSpeed(21),
                                                  absoluteHumidity(28),
                                                  other(30),
                                                  none(31),
                                                  illuminance(42),
                                                  doorContact(43),
                                                  tamperDetection(44),
                                                  motionDetection(45)
                                                }

SensorStateEnumeration ::= TEXTUAL-CONVENTION
                           STATUS  current
                           DESCRIPTION
                               "The states a sensor can be in."
                           SYNTAX       INTEGER {
                                                  unavailable(-1),
                                                  open(0),
                                                  closed(1),
                                                  belowLowerCritical(2),
                                                  belowLowerWarning(3),
                                                  normal(4),
                                                  aboveUpperWarning(5),
                                                  aboveUpperCritical(6),
                                                  on(7),
                                                  off(8),
                                                  detected(9),
                                                  notDetected(10),
                                                  alarmed(11)
                                                }

SensorUnitsEnumeration ::= TEXTUAL-CONVENTION
                          STATUS  current
                          DESCRIPTION
                              "The types a sensor can be."
                          SYNTAX        INTEGER {
                                                  none(-1),
                                                  other(0),
                                                  volt(1),
                                                  amp(2),
                                                  watt(3),
                                                  voltamp(4),
                                                  wattHour(5),
                                                  voltampHour(6),
                                                  degreeC(7),
                                                  hertz(8),
                                                  percent(9),
                                                  meterpersec(10),
                                                  pascal(11),
                                                  psi(12),
                                                  g(13),
                                                  degreeF(14),
                                                  feet(15),
                                                  inches(16),
                                                  cm(17),
                                                  meters(18),
                                                  rpm(19),
                                                  degrees(20),
                                                  lux(21),
                                                  grampercubicmeter(22),
                                                  voltampReactive(23)
                                                }

ExternalSensorsZCoordinateUnitsEnumeration ::= TEXTUAL-CONVENTION
                          STATUS  current
                          DESCRIPTION
                              "The units of the external Sensor Z Coordinate.
                               rackUnits implies that the Z Coordinate for all
                               external sensors is in rack Units (U)
                               text implies that the Z Coordinate for all
                               external sensors is a text string (label)"
                          SYNTAX        INTEGER {
                                                  rackUnits(0),
                                                  text(1)
                                                }

HundredthsOfAPercentage   ::= TEXTUAL-CONVENTION
                          DISPLAY-HINT "d"
                          STATUS      current
                          DESCRIPTION
                              "Data type for reporting values in hundredths of
                               percentage, i.e. 0.01 %."
                         SYNTAX Unsigned32 (0..10000)

DeviceIdentificationParameterEnumeration ::= TEXTUAL-CONVENTION
                          STATUS  current
                          DESCRIPTION
                              "The configurable parameters."
                          SYNTAX        INTEGER { deviceName(0),
                                                  sysContact(1),
                                                  sysName(2),
                                                  sysLocation(3)
                                                }

PeripheralDeviceFirmwareUpdateStateEnumeration ::= TEXTUAL-CONVENTION
                          STATUS  current
                          DESCRIPTION
                              "The state of an peripheral device firmware update."
                          SYNTAX        INTEGER { started(1), 
                                                  successful(2),
                                                  failed(3)
                                                }

-- the Unit group
-- The UnitConfiguration contains information on the EMD's configuration.

unitConfiguration     OBJECT IDENTIFIER ::= { unit 1 }

deviceName           OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-write
                     STATUS        current
                     DESCRIPTION
                         "The user-defined name for the EMD."
                     ::= { unitConfiguration 1 }

hardwareVersion      OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The main boards hardware version."
                     ::= { unitConfiguration 2 }

firmwareVersion      OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The firmware version."
                     ::= { unitConfiguration 3 }

utcOffset            OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The current UTC offset."
                     ::= { unitConfiguration 4 }

externalSensorCount  OBJECT-TYPE
                     SYNTAX        Integer32(0..255)
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The number of external sensors."
                     ::= { unitConfiguration 5 }

managedExternalSensorCount OBJECT-TYPE
                     SYNTAX        Integer32(0..255)
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The number of managed external sensors "
                     ::= { unitConfiguration 6 }

externalSensorsZCoordinateUnits OBJECT-TYPE
                     SYNTAX        ExternalSensorsZCoordinateUnitsEnumeration
                     MAX-ACCESS    read-write
                     STATUS        current
                     DESCRIPTION
                         "External Sensor Z Coordinate units:
                          Freeform Text or Rack Units (U).
                          Default is U."
                     ::= { unitConfiguration 7 }

deviceMACAddress     OBJECT-TYPE
                     SYNTAX        MacAddress
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The current MAC address."
                     ::= { unitConfiguration 8 }

deviceInetAddressType OBJECT-TYPE
                     SYNTAX        InetAddressType
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The type of address format"
                     ::= { unitConfiguration 9 }

deviceInetIPAddress  OBJECT-TYPE
                     SYNTAX        InetAddress
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The current IP address. A value of 0.0.0.0
                          indicates an error or an unset option."
                     ::= { unitConfiguration 10 }

deviceInetNetmask    OBJECT-TYPE
                     SYNTAX        InetAddress
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The current netmask. A value of 0.0.0.0 indicates
                          an error or an unset option."
                     ::= { unitConfiguration 11 }

deviceInetGateway    OBJECT-TYPE
                     SYNTAX        InetAddress
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The current gateway. A value of 0.0.0.0 indicates
                          an error or an unset option."
                     ::= { unitConfiguration 12 }

serverCount          OBJECT-TYPE
                     SYNTAX        Integer32(0..255)
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The number of entries in serverReachabilityTable"
                     ::= { unitConfiguration 13 }

model                OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                          "The EMD device model."
                     ::= { unitConfiguration 14 }

cascadedDeviceConnected OBJECT-TYPE
                     SYNTAX        TruthValue
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "Indicates whether a device is connected using an USB cable to
                          the USB-A port of this EMX in a cascaded configuration.
                              true: Connected
                              false: Not Connected"
                     ::= { unitConfiguration 15 }

peripheralDevicesAutoManagement OBJECT-TYPE
                     SYNTAX         TruthValue
                     MAX-ACCESS  read-write
                     STATUS      current
                     DESCRIPTION
                         "Set enabled state of auto management for new peripheral devices."
                     ::= { unitConfiguration 16}

synchronizeWithNTPServer OBJECT-TYPE
                     SYNTAX      TruthValue
                     MAX-ACCESS  read-write
                     STATUS      current
                     DESCRIPTION
                          "Set enabled state of the device's NTP client."
                     ::= { unitConfiguration 17 }

useDHCPProvidedNTPServer OBJECT-TYPE
                     SYNTAX      TruthValue
                     MAX-ACCESS  read-write
                     STATUS      current
                     DESCRIPTION
                         "Enable usage of the DHCP/BOOTP provided NTP server addresses;
                          the value is used only if synchronizeWithNTPServer is enabled."
                     ::= { unitConfiguration 18 }

firstNTPServerAddressType OBJECT-TYPE
                     SYNTAX      InetAddressType
                     MAX-ACCESS  read-write
                     STATUS      current
                     DESCRIPTION
                         "Represents the type of firstNTPServerAddress."
                     DEFVAL      { ipv4 } 
                     ::= { unitConfiguration 19 }

firstNTPServerAddress OBJECT-TYPE
                     SYNTAX      InetAddress
                     MAX-ACCESS  read-write
                     STATUS      current
                     DESCRIPTION
                         "The address of the primary NTP server." 
                     ::= { unitConfiguration 20 }

secondNTPServerAddressType OBJECT-TYPE
                     SYNTAX      InetAddressType
                     MAX-ACCESS  read-write
                     STATUS      current
                     DESCRIPTION
                         "Represents the type of secondNTPServerAddress."
                     DEFVAL      { ipv4 } 
                     ::= { unitConfiguration 21 }

secondNTPServerAddress OBJECT-TYPE
                     SYNTAX          InetAddress
                     MAX-ACCESS      read-write
                     STATUS          current
                     DESCRIPTION
                         "The address of the secondary NTP server." 
                     ::= { unitConfiguration 22 }

-- The LogConfiguration table contains information on the logs in the EMD.

logConfiguration     OBJECT IDENTIFIER ::= { unit 2 }

dataLogging                       OBJECT-TYPE
                                   SYNTAX        TruthValue
                                   MAX-ACCESS    read-write
                                   STATUS        current
                                   DESCRIPTION
                                      "Data Retrieval: enabled/disabled."
                                   ::= { logConfiguration 1 }

measurementPeriod             OBJECT-TYPE
                                  SYNTAX           Integer32
                                  MAX-ACCESS    read-only
                                  STATUS        current
                                  DESCRIPTION
                                    "Data Collection periodicity. This is the periodicity of the data collected by the PX.
                                     This value is fixed at 1 second."
                                 ::= { logConfiguration 2 }

measurementsPerLogEntry       OBJECT-TYPE
                                    SYNTAX        Integer32
                                    MAX-ACCESS    read-write
                                    STATUS        current
                                    DESCRIPTION
                                      "The number of measurements used for each entry in the log."
                                   ::= { logConfiguration 3 }

logSize                      OBJECT-TYPE
                                  SYNTAX           Integer32
                                  MAX-ACCESS    read-only
                                  STATUS        current
                                  DESCRIPTION
                                    "The number of entries in the log."
                                 ::= { logConfiguration 4 }

dataLoggingEnableForAllSensors    OBJECT-TYPE
                                    SYNTAX TruthValue
                                    MAX-ACCESS read-write
                                    STATUS current
                                    DESCRIPTION
                                     "Operation to control data logging for all sensors.
                                        If this OID is set to true, then all xxxSensorLogAvailable are set to true
                                        If this OID is set to false, then all xxxSensorLogAvailable are set to false

                                     "
                                 ::= { logConfiguration 5 }

-- the externalSensorConfiguration table
-- The externalSensorConfiguration table contains information
-- on the EMD's external Sensors.

externalSensorConfigurationTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF ExternalSensorConfigurationEntryStruct
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "A list of externalSensor configuration entries. The number of
             entries is given by the value of externalSensorCount for the EMD."
        ::= { externalSensors 1 }

externalSensorConfigurationEntry OBJECT-TYPE
        SYNTAX        ExternalSensorConfigurationEntryStruct
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry containing parameters for an external sensor."
        INDEX         { sensorID }
        ::= { externalSensorConfigurationTable 1 }

ExternalSensorConfigurationEntryStruct ::= SEQUENCE {
            sensorID                                Integer32,
            externalSensorType                      SensorTypeEnumeration,
            externalSensorSerialNumber              DisplayString,
            externalSensorName                      DisplayString,
            externalSensorDescription               DisplayString,
            externalSensorXCoordinate               DisplayString,
            externalSensorYCoordinate               DisplayString,
            externalSensorZCoordinate               DisplayString,
            externalSensorChannelNumber             Integer32,
            externalOnOffSensorSubtype              SensorTypeEnumeration,
            externalSensorUnits                     SensorUnitsEnumeration,
            externalSensorDecimalDigits             Unsigned32,
            externalSensorAccuracy                  HundredthsOfAPercentage,
            externalSensorResolution                Unsigned32,
            externalSensorTolerance                 Unsigned32,
            externalSensorMaximum                   Integer32,
            externalSensorMinimum                   Integer32,
            externalSensorHysteresis                Unsigned32,
            externalSensorStateChangeDelay          Unsigned32,
            externalSensorLowerCriticalThreshold    Integer32,
            externalSensorLowerWarningThreshold     Integer32,
            externalSensorUpperCriticalThreshold    Integer32,
            externalSensorUpperWarningThreshold     Integer32,
            externalSensorEnabledThresholds         BITS,
            externalSensorPort                            DisplayString,
            externalSensorIsActuator                TruthValue,
            externalSensorAlarmedToNormalDelay            Integer32,
            externalSensorUseDefaultThresholds      TruthValue
        }

sensorID OBJECT-TYPE
         SYNTAX        Integer32(1..256)
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
             "A unique value for each sensor. Its value
              ranges between 1 and the value of externalSensorCount."
         ::= { externalSensorConfigurationEntry 1 }

externalSensorType OBJECT-TYPE
         SYNTAX        SensorTypeEnumeration
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The type of sensor."
         ::= { externalSensorConfigurationEntry 2 }

externalSensorSerialNumber OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The sensor serial number."
         ::= { externalSensorConfigurationEntry 3 }

externalSensorName OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The user-defined name."
         ::= { externalSensorConfigurationEntry 4 }

externalSensorDescription OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The user-defined description."
         ::= { externalSensorConfigurationEntry 5 }

externalSensorXCoordinate OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The X coordinate."
         ::= { externalSensorConfigurationEntry 6 }

externalSensorYCoordinate OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The Y coordinate."
         ::= { externalSensorConfigurationEntry 7 }

externalSensorZCoordinate OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The Z coordinate."
         ::= { externalSensorConfigurationEntry 8 }

externalSensorChannelNumber OBJECT-TYPE
         SYNTAX        Integer32
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The channel number, applies only to contact sensors;
              -1 for other sensors"
         ::= { externalSensorConfigurationEntry 9 }

externalOnOffSensorSubtype OBJECT-TYPE
         SYNTAX        SensorTypeEnumeration
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "Type of measurement in case sensor type is discrete OnOff"
         ::= { externalSensorConfigurationEntry 10 }

externalSensorUnits OBJECT-TYPE
         SYNTAX        SensorUnitsEnumeration
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The base units.
              This parameter does not apply to onOff, trip, vibration,
              waterDetection, smokeDetection sensors.
              "
         ::= { externalSensorConfigurationEntry 11 }

externalSensorDecimalDigits OBJECT-TYPE
         SYNTAX        Unsigned32
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The number of digits displayed to the right of the decimal point
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 12 }

externalSensorAccuracy OBJECT-TYPE
         SYNTAX        HundredthsOfAPercentage
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The accuracy: how close (in percent) the measurement
              is to the actual value.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 13 }

externalSensorResolution OBJECT-TYPE
         SYNTAX        Unsigned32
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The resolution: the minimum difference between any two measured
              values. The value of this OID variable should be scaled by
              externalSensorDecimalDigits.  For example, if the value is 1 and
              externalSensorDecimalDigits is 2, then actual value is 0.01.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 14 }

externalSensorTolerance OBJECT-TYPE
         SYNTAX        Unsigned32
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The resolution: the  difference between a sensor value and the
              actual value. The value of this OID variable should be scaled by
              (externalSensorDecimalDigits + 1).
              For example, if the value is 50 and
              externalSensorDecimalDigits is 2, then actual value is 0.05.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 15 }

externalSensorMaximum OBJECT-TYPE
         SYNTAX        Integer32
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The largest possible value
              The value of this OID variable should be scaled by
              externalSensorDecimalDigits.  For example, if the value is 1 and
              externalSensorDecimalDigits is 2, then actual value is 0.01.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 16 }

externalSensorMinimum OBJECT-TYPE
         SYNTAX        Integer32
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
         "The smallest possible value
               The value of this OID variable should be scaled by
              externalSensorDecimalDigits.  For example, if the value is 1 and
              externalSensorDecimalDigits is 2, then actual value is 0.01.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 17 }

externalSensorHysteresis OBJECT-TYPE
         SYNTAX        Unsigned32
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The hysteresis used for deassertions
              The value of this OID variable should be scaled by
              externalSensorDecimalDigits.  For example, if the value is 1 and
              externalSensorDecimalDigits is 2, then actual value is 0.01.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 18 }

externalSensorStateChangeDelay  OBJECT-TYPE
         SYNTAX        Unsigned32
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The delay measured in samples before a state is asserted.
              If the value is zero, then the state is asserted as soon as
              it is detected; if it is non-zero, say n, then the assertion
              condition must exist for n+1 consecutive samples before the
              corresponding assertion event is reported.
              At present, this value cannot be written (set)"
         ::= { externalSensorConfigurationEntry 19 }

externalSensorLowerCriticalThreshold OBJECT-TYPE
         SYNTAX        Integer32
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The lower critical threshold
              The value of this OID variable should be scaled by
              externalSensorDecimalDigits.  For example, if the value is 1 and
              externalSensorDecimalDigits is 2, then actual value is 0.01.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 20 }

externalSensorLowerWarningThreshold OBJECT-TYPE
         SYNTAX        Integer32
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The lower non-critical (warning) threshold
              The value of this OID variable should be scaled by
              externalSensorDecimalDigits.  For example, if the value is 1 and
              externalSensorDecimalDigits is 2, then actual value is 0.01.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 21 }

externalSensorUpperCriticalThreshold OBJECT-TYPE
         SYNTAX        Integer32
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The upper critical  threshold
              The value of this OID variable should be scaled by
              externalSensorDecimalDigits.  For example, if the value is 1 and
              externalSensorDecimalDigits is 2, then actual value is 0.01.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 22 }

externalSensorUpperWarningThreshold OBJECT-TYPE
         SYNTAX        Integer32
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "The upper non-critical (warning) threshold
              The value of this OID variable should be scaled by
              externalSensorDecimalDigits.  For example, if the value is 1 and
              externalSensorDecimalDigits is 2, then actual value is 0.01.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors."
         ::= { externalSensorConfigurationEntry 23 }

externalSensorEnabledThresholds OBJECT-TYPE
         SYNTAX BITS {
                     lowerCritical(0),
                     lowerWarning(1),
                     upperWarning(2),
                     upperCritical(3)
                     }
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
             "A bit string  which indicates which thresholds are enabled.
              This parameter does not apply
              to onOff, trip, vibration, waterDetection,
              smokeDetection sensors"
         ::= { externalSensorConfigurationEntry 24 }

externalSensorPort OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The position of the sensor.
              The format is a semicolon separated list of Keyword:value pairs -
                  Keyword1:Value1;Keyword2:value2;...
                Keyword can be one of the following:
                  ONBOARD, DEVICE-1WIREPORT, HUBPORT, CHAIN-POSITION
                Examples
                1) Onboard Sensor
                         ONBOARD:CC1
                2) Old sensor connected to device 1-wire port
                         DEVICE-1WIREPORT:2
                3) New style sensor connected to device 1-wire port
                         DEVICE-1WIREPORT:2;CHAIN-POSITION:3
                4) New style sensor connected to hub port 3
                         DEVICE-1WIREPORT:2;CHAIN-POSITION:1;HUBPORT:3;CHAIN-POSITION:1
                5) Old style sensor connected to end of new style sensor chain
                         DEVICE-1WIREPORT:2;
               "
         ::= { externalSensorConfigurationEntry 25 }

externalSensorIsActuator OBJECT-TYPE
         SYNTAX        TruthValue
         MAX-ACCESS        read-only
         STATUS        current
         DESCRIPTION
             "Is this an actuator?
              True:  It is an actuator
              False: It is not an actuator"
         ::= { externalSensorConfigurationEntry 26 }

externalSensorAlarmedToNormalDelay OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "The delay in seconds for transitions from the alarmed state to the normal state.
              If the sensor type is  motionDetection,
                  then it can set to a value greater >= 0
              For all other sensor types,
                  the value is 0 and cannot be set to any other value.
            "
        ::= { externalSensorConfigurationEntry 27 }

externalSensorUseDefaultThresholds OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "Use default thresholds for this sensor?
             True:  Use default thresholds for this sensor
             False: Do not use default thresholds for this sensor"
        ::= { externalSensorConfigurationEntry 28 }

-- The ExternalSensorTypeDefaultThresholdsTable contains information about default thresholds for G1 sensor types.
-- It is used for bulk configuration of G1 external sensors.

externalSensorTypeDefaultThresholdsTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF ExternalSensorTypeDefaultThresholdsEntryStruct
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "A list of entries listing the default thresholds for each sensor type."
        ::= { externalSensors 4 }

externalSensorTypeDefaultThresholdsEntry OBJECT-TYPE
        SYNTAX        ExternalSensorTypeDefaultThresholdsEntryStruct
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry containing default thresholds for a sensor type."
        INDEX         { externalSensorType }
        ::= { externalSensorTypeDefaultThresholdsTable 1 }

ExternalSensorTypeDefaultThresholdsEntryStruct ::= SEQUENCE {
            externalSensorTypeDefaultHysteresis               Unsigned32,
            externalSensorTypeDefaultStateChangeDelay         Unsigned32,
            externalSensorTypeDefaultLowerCriticalThreshold   Integer32,
            externalSensorTypeDefaultLowerWarningThreshold    Integer32,
            externalSensorTypeDefaultUpperCriticalThreshold   Integer32,
            externalSensorTypeDefaultUpperWarningThreshold    Integer32,
            externalSensorTypeDefaultEnabledThresholds        BITS
        }

externalSensorTypeDefaultHysteresis OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "The hysteresis used for deassertions
             The value of this OID variable should be scaled by 
             externalSensorDecimalDigits. For example, if the value is 1 and 
             externalSensorDecimalDigits is 2, then actual value is 0.01.
             This parameter does not apply to onOff, trip, vibration,
             waterDetection, smokeDetection sensors."
        ::= { externalSensorTypeDefaultThresholdsEntry 3 }

externalSensorTypeDefaultStateChangeDelay OBJECT-TYPE
        SYNTAX        Unsigned32
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "The delay measured in samples before a state is asserted.
             If the value is zero, then the state is asserted as soon as
             it is detected; if it is non-zero, say n, then the assertion 
             condition must exist for n+1 consecutive samples before the
             corresponding assertion event is reported.
             At present, this value cannot be written (set)"
        ::= { externalSensorTypeDefaultThresholdsEntry 4 }

externalSensorTypeDefaultLowerCriticalThreshold OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "The lower critical threshold
             The value of this OID variable should be scaled by 
             externalSensorDecimalDigits. For example, if the value is 1 and 
             externalSensorDecimalDigits is 2, then actual value is 0.01.
             This parameter does not apply to onOff, trip, vibration,
             waterDetection, smokeDetection sensors."
        ::= { externalSensorTypeDefaultThresholdsEntry 5 }

externalSensorTypeDefaultLowerWarningThreshold OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "The lower non-critical (warning) threshold
             The value of this OID variable should be scaled by 
             externalSensorDecimalDigits. For example, if the value is 1 and 
             externalSensorDecimalDigits is 2, then actual value is 0.01.
             This parameter does not apply to onOff, trip, vibration,
              waterDetection, smokeDetection sensors."
        ::= { externalSensorTypeDefaultThresholdsEntry 6 }

externalSensorTypeDefaultUpperCriticalThreshold OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "The upper critical threshold
             The value of this OID variable should be scaled by 
             externalSensorDecimalDigits. For example, if the value is 1 and 
             externalSensorDecimalDigits is 2, then actual value is 0.01.
             This parameter does not apply to onOff, trip, vibration,
             waterDetection, smokeDetection sensors."
        ::= { externalSensorTypeDefaultThresholdsEntry 7 }

externalSensorTypeDefaultUpperWarningThreshold OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "The upper non-critical (warning) threshold
             The value of this OID variable should be scaled by 
             externalSensorDecimalDigits. For example, if the value is 1 and 
             externalSensorDecimalDigits is 2, then actual value is 0.01.
             This parameter does not apply to onOff, trip, vibration,
             waterDetection, smokeDetection sensors."
        ::= { externalSensorTypeDefaultThresholdsEntry 8 }

externalSensorTypeDefaultEnabledThresholds OBJECT-TYPE
        SYNTAX        BITS {
            lowerCritical(0),
            lowerWarning(1),
            upperWarning(2),
            upperCritical(3)
        }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "A bit string which indicates which thresholds are enabled.
             This parameter does not apply to onOff, trip, vibration,
             waterDetection, smokeDetection sensors 
            "
        ::= { externalSensorTypeDefaultThresholdsEntry 9}

-- The PeripheralDevicePackageTable table contains information on the peripheral Device Packages connected to the PDU

peripheralDevicePackageTable OBJECT-TYPE
         SYNTAX        SEQUENCE OF PeripheralDevicePackageEntryStruct
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
             "A list of entries for the peripheral Device Packages connected to
              an EMX. The number of entries is given by the value of
              peripheralDevicePackagesCount."
         ::= { externalSensors 5}

peripheralDevicePackageEntry OBJECT-TYPE
         SYNTAX        PeripheralDevicePackageEntryStruct
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
             "An  entry containing objects for a controller."
         INDEX         { peripheralDevicePackageId }
         ::= { peripheralDevicePackageTable 1 }

PeripheralDevicePackageEntryStruct ::= SEQUENCE {
             peripheralDevicePackageId                 Integer32,
             peripheralDevicePackageSerialNumber       DisplayString,
             peripheralDevicePackageModel              DisplayString,
             peripheralDevicePackageFirmwareVersion    DisplayString,
             peripheralDevicePackageMinFirmwareVersion DisplayString,
             peripheralDevicePackageFirmwareTimeStamp  Unsigned32,
             peripheralDevicePackagePosition               DisplayString,
             peripheralDevicePackageState               DisplayString
         }

peripheralDevicePackageId OBJECT-TYPE
         SYNTAX        Integer32(1..256)
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
             "A unique value for each peripheral device package."
         ::= { peripheralDevicePackageEntry 1 }

peripheralDevicePackageSerialNumber OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The peripheral device package  serial number."
         ::= { peripheralDevicePackageEntry 3 }

peripheralDevicePackageModel OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The peripheral device package  model.
              Examples are DX-D2C6, DPX2-T1, DPX2-T1H1, DPX2-T2H1, DPX2-T3H1"
         ::= { peripheralDevicePackageEntry 4 }

peripheralDevicePackageFirmwareVersion OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The peripheral device package firmware version."
         ::= { peripheralDevicePackageEntry 5 }

peripheralDevicePackageMinFirmwareVersion OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The peripheral device package minimum firmware version.
              This field may be empty. If it is not empty, then it shall not be
              possible to downgrade the peripheral device firmware to a
              version < minimum firmware version number."
         ::= { peripheralDevicePackageEntry 6 }

peripheralDevicePackageFirmwareTimeStamp OBJECT-TYPE
         SYNTAX        Unsigned32
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The time when the peripheralDevicePackage firmware was updated in
              UNIX(epoch)time.
              It is measured in seconds relative to January 1, 1970 (midnight UTC/GMT),
              i.e a value of 0 indicates January 1, 1970 (midnight UTC/GMT)."
         ::= { peripheralDevicePackageEntry 7 }

peripheralDevicePackagePosition OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The position of the package.
              The format is a semicolon separated list of Keyword:value pairs -
                  Keyword1:Value1;Keyword2:value2;...
                    Keyword can be one of the following:
                      ONBOARD, DEVICE-1WIREPORT, HUBPORT, CHAIN-POSITION
                    Examples
                    1) Onboard Sensor
                             ONBOARD:CC1
                    2) Old sensor connected to device 1-wire port
                             DEVICE-1WIREPORT:2
                    3) New style sensor connected to device 1-wire port
                             DEVICE-1WIREPORT:2;CHAIN-POSITION:3
                    4) New style sensor connected to hub port 3
                             DEVICE-1WIREPORT:2;CHAIN-POSITION:1;HUBPORT:3;CHAIN-POSITION:1
                    5) Old style sensor connected to end of new style sensor chain
                             DEVICE-1WIREPORT:2;
               "
         ::= { peripheralDevicePackageEntry 8 }

peripheralDevicePackageState OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
             "The state of the package."
         ::= { peripheralDevicePackageEntry 9 }

-- the server reachability table
-- The server Reachability table contains information on the ping feature.

serverReachabilityTable OBJECT-TYPE
         SYNTAX        SEQUENCE OF ServerReachabilityEntryStruct
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
             "A list of server entries. The number of
              entries is given by the value of serverCount for the EMD."
         ::= { serverReachability 1 }

serverReachabilityEntry OBJECT-TYPE
         SYNTAX        ServerReachabilityEntryStruct
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
             "An entry containing parameters for a server."
         INDEX         { serverID }
         ::= { serverReachabilityTable 1 }

ServerReachabilityEntryStruct ::= SEQUENCE {
             serverID               Integer32,
             serverIPAddress        DisplayString,
             serverPingEnabled      TruthValue
         }

serverID OBJECT-TYPE
         SYNTAX        Integer32(1..256)
         MAX-ACCESS    not-accessible
         STATUS        current
         DESCRIPTION
             "A unique value for each server. Its value
              ranges between 1 and the value of serverCount for that EMD"
         ::= { serverReachabilityEntry 1 }

serverIPAddress OBJECT-TYPE
         SYNTAX        DisplayString
         MAX-ACCESS    read-only
         STATUS        current
         DESCRIPTION
         "The IP Address/host name of the server"
         ::= { serverReachabilityEntry 2 }

serverPingEnabled OBJECT-TYPE
         SYNTAX        TruthValue
         MAX-ACCESS    read-write
         STATUS        current
         DESCRIPTION
         "Is ping enabled for this server?"
         ::= { serverReachabilityEntry 3 }

-- the log table

-- The logIndexTable

oldestLogID                     OBJECT-TYPE
                                   SYNTAX      Integer32
                                   MAX-ACCESS    read-only
                                   STATUS        current
                                   DESCRIPTION
                                       "The index of the oldest data in the buffer for this EMD."
                                   ::= { logUnit 1 }

newestLogID                     OBJECT-TYPE
                                   SYNTAX      Integer32
                                   MAX-ACCESS    read-only
                                   STATUS        current
                                   DESCRIPTION
                                       "The index of the newest data in the buffer for this EMD."
                                   ::= { logUnit 2 }

-- The logTimeStampTable

logTimeStampTable     OBJECT-TYPE
                SYNTAX        SEQUENCE OF LogTimeStampEntryStruct
                MAX-ACCESS    not-accessible
                STATUS        current
                DESCRIPTION
                    "A list of entries containing the timestamps of the entries in the log."
                ::= { logUnit 3 }

logTimeStampEntry     OBJECT-TYPE
                SYNTAX        LogTimeStampEntryStruct
                MAX-ACCESS    not-accessible
                STATUS        current
                DESCRIPTION
                    "An entry containing the timestamp for log entries."
                INDEX         { logIndex  }
                ::= { logTimeStampTable 1 }

LogTimeStampEntryStruct ::= SEQUENCE {logIndex                 Integer32,
                                      logTimeStamp               Unsigned32
                                     }

logIndex                      OBJECT-TYPE
                                      SYNTAX        Integer32(1..256)
                                      MAX-ACCESS    not-accessible
                                      STATUS        current
                                      DESCRIPTION
                                          "A unique value for each entry in the log. Its value
                                           ranges between 1 and the value of logSize."
                                      ::= { logTimeStampEntry 1 }

logTimeStamp                OBJECT-TYPE
                                   SYNTAX      Unsigned32
                                   MAX-ACCESS    read-only
                                   STATUS        current
                                   DESCRIPTION
                                       "The time when the data was collected. It is measured in seconds relative to
                                        January 1, 1970 (midnight UTC/GMT), i.e a value of 0 indicates
                                        January 1, 1970 (midnight UTC/GMT)."
                                   ::= { logTimeStampEntry 2 }

-- The externalSensorLogTable

externalSensorLogTable     OBJECT-TYPE
                SYNTAX        SEQUENCE OF ExternalSensorLogEntryStruct
                MAX-ACCESS    not-accessible
                STATUS        current
                DESCRIPTION
                    "A list of external sensor entries. The number of
                     entries is given by the value of externalSensorCount for the EMD."
                ::= { logExternalSensor 1 }

externalSensorLogEntry     OBJECT-TYPE
                SYNTAX        ExternalSensorLogEntryStruct
                MAX-ACCESS    not-accessible
                STATUS        current
                DESCRIPTION
                    "An entry containing log objects for an external sensor."
                INDEX         { sensorID, logIndex  }
                ::= { externalSensorLogTable 1 }

ExternalSensorLogEntryStruct ::= SEQUENCE {
                                    logExternalSensorDataAvailable   TruthValue,
                                    logExternalSensorState           SensorStateEnumeration,
                                    logExternalSensorAvgValue        Integer32,
                                    logExternalSensorMaxValue        Integer32,
                                    logExternalSensorMinValue        Integer32
                                    }

logExternalSensorDataAvailable        OBJECT-TYPE
                                      SYNTAX        TruthValue
                                      MAX-ACCESS    read-only
                                      STATUS        current
                                      DESCRIPTION
                                          "Is data available for this sensor during this measurement period?"
                                      ::= { externalSensorLogEntry 2 }

logExternalSensorState                OBJECT-TYPE
                                      SYNTAX        SensorStateEnumeration
                                      MAX-ACCESS    read-only
                                      STATUS        current
                                      DESCRIPTION
                                          "The sensor state."
                                      ::= { externalSensorLogEntry 3 }

logExternalSensorAvgValue             OBJECT-TYPE
                                      SYNTAX        Integer32
                                      MAX-ACCESS    read-only
                                      STATUS        current
                                      DESCRIPTION
                                          "The sensor reading average value."
                                      ::= { externalSensorLogEntry 4 }

logExternalSensorMaxValue             OBJECT-TYPE
                                      SYNTAX        Integer32
                                      MAX-ACCESS    read-only
                                      STATUS        current
                                      DESCRIPTION
                                          "The sensor reading maximum value."
                                      ::= { externalSensorLogEntry 5 }

logExternalSensorMinValue             OBJECT-TYPE
                                      SYNTAX        Integer32
                                      MAX-ACCESS    read-only
                                      STATUS        current
                                      DESCRIPTION
                                          "The sensor reading minimum value."
                                      ::= { externalSensorLogEntry 6 }

-- the Measurements tables
-- The externalSensorMeasurementsTable

externalSensorMeasurementsTable OBJECT-TYPE
          SYNTAX        SEQUENCE OF ExternalSensorMeasurementsEntryStruct
          MAX-ACCESS    not-accessible
          STATUS        current
          DESCRIPTION
              "A list of external sensor entries. The number of
               entries is given by the value of externalSensorCount
               for the EMD."
          ::= { measurementsExternalSensor 1 }

externalSensorMeasurementsEntry OBJECT-TYPE
          SYNTAX        ExternalSensorMeasurementsEntryStruct
          MAX-ACCESS    not-accessible
          STATUS        current
          DESCRIPTION
              "An entry containing measurement objects for an external sensor."
          INDEX         { sensorID  }
          ::= { externalSensorMeasurementsTable 1 }

ExternalSensorMeasurementsEntryStruct ::= SEQUENCE {
              measurementsExternalSensorIsAvailable      TruthValue,
              measurementsExternalSensorState            SensorStateEnumeration,
              measurementsExternalSensorValue            Integer32,
              measurementsExternalSensorTimeStamp        Unsigned32
          }

measurementsExternalSensorIsAvailable OBJECT-TYPE
          SYNTAX        TruthValue
          MAX-ACCESS    read-only
          STATUS        current
          DESCRIPTION
              "Is the sensor available?"
          ::= { externalSensorMeasurementsEntry 1 }

measurementsExternalSensorState OBJECT-TYPE
          SYNTAX        SensorStateEnumeration
          MAX-ACCESS    read-only
          STATUS        current
          DESCRIPTION
              "The sensor state."
          ::= { externalSensorMeasurementsEntry 2 }

measurementsExternalSensorValue OBJECT-TYPE
          SYNTAX        Integer32
          MAX-ACCESS    read-only
          STATUS        current
          DESCRIPTION
              "The sensor reading.
               This parameter does not apply
               to onOff, trip, vibration, waterDetection,
               smokeDetection sensors."
          ::= { externalSensorMeasurementsEntry 3 }

measurementsExternalSensorTimeStamp OBJECT-TYPE
          SYNTAX        Unsigned32
          MAX-ACCESS    read-only
          STATUS        current
          DESCRIPTION
              "The sensor reading timestamp."
          ::= { externalSensorMeasurementsEntry 4 }

-- the actuatorControlTable
-- The actuatorControl table implements user-initiated state changes for an actuator.

actuatorControlTable OBJECT-TYPE
          SYNTAX        SEQUENCE OF ActuatorControlEntryStruct
          MAX-ACCESS    not-accessible
          STATUS        current
          DESCRIPTION
              "A list of actuators for an EMX. "
          ::= { actuatorControl  1 }

actuatorControlEntry OBJECT-TYPE
          SYNTAX        ActuatorControlEntryStruct
          MAX-ACCESS    not-accessible
          STATUS        current
          DESCRIPTION
              "An entry for implementing user-initiated state changes for an actuator."
          INDEX              { sensorID }
          ::= { actuatorControlTable 1 }

ActuatorControlEntryStruct ::= SEQUENCE {
              actuatorState SensorStateEnumeration
          }

actuatorState OBJECT-TYPE
          SYNTAX        SensorStateEnumeration
          MAX-ACCESS    read-write
          STATUS        current
          DESCRIPTION
              "The actuator state.
               A Get operation retrieves the state of the actuator.
               A Set operation changes the stae of the sensor.
               The valid states for set operations are on and Off.
               Attempting to set the state to any other value will generate an error. "
          ::= { actuatorControlEntry 1 }

-- the TrapInformation
-- The TrapInformation table defines information sent in the traps.

userName             OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The user currently logged in."
                     ::= { trapInformation 1 }

targetUser           OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The user added, deleted, or modified."
                     ::= { trapInformation 2 }

imageVersion         OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The version of the upgrade image."
                     ::= { trapInformation 3 }

roleName             OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The role added, deleted, or modified."
                     ::= { trapInformation 4 }

smtpMessageRecipients OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "Comma separated list of SMTP Message recipients"
                     ::= { trapInformation 5 }

smtpServer           OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    read-only
                     STATUS        current
                     DESCRIPTION
                         "The IP address/host name of the SMTP server"
                     ::= { trapInformation 6 }

-- Additional Information needed for traps.

oldSensorState       OBJECT-TYPE
                     SYNTAX        SensorStateEnumeration
                     MAX-ACCESS    accessible-for-notify
                     STATUS        current
                     DESCRIPTION
                         "The old sensor state used in
                          Sensor State Transition traps."
                     ::= { trapInformation  7}

externalSensorNumber OBJECT-TYPE
                     SYNTAX        Integer32(1..256)
                     MAX-ACCESS    accessible-for-notify
                     STATUS        current
                     DESCRIPTION
                         "A unique value for each sensor. Its value
                          ranges between 1 and the value of
                          externalSensorCount."
                     ::= { trapInformation 8  }

typeOfSensor         OBJECT-TYPE
                     SYNTAX        SensorTypeEnumeration
                     MAX-ACCESS    accessible-for-notify
                     STATUS        current
                     DESCRIPTION
                         "The type of sensor."
                     ::= { trapInformation 9 }

errorDescription     OBJECT-TYPE
                     SYNTAX        DisplayString
                     MAX-ACCESS    accessible-for-notify
                     STATUS        current
                     DESCRIPTION
                         "Description of the Error"
                     ::= { trapInformation 10 }

deviceChangedParameter   OBJECT-TYPE
                         SYNTAX        DeviceIdentificationParameterEnumeration
                         MAX-ACCESS    accessible-for-notify
                         STATUS        current
                         DESCRIPTION
                             "Description of the parameter(s) that changed."
                         ::= { trapInformation 11 }

changedParameterNewValue OBJECT-TYPE
                         SYNTAX        DisplayString
                         MAX-ACCESS    accessible-for-notify
                         STATUS        current
                         DESCRIPTION
                             "The new value of the changed parameter"
                         ::= { trapInformation 12 }

lhxSupportEnabled        OBJECT-TYPE
                         SYNTAX        TruthValue
                         MAX-ACCESS    accessible-for-notify
                         STATUS        current
                         DESCRIPTION
                             "The new enabled state for Schroff LHX Support."
                         ::= { trapInformation 13 }

webcamModel              OBJECT-TYPE
                         SYNTAX        DisplayString
                         MAX-ACCESS    accessible-for-notify
                         STATUS        current
                         DESCRIPTION
                             "The model of the Webcam "
                         ::= { trapInformation 14 }

webcamConnectionPort     OBJECT-TYPE
                         SYNTAX        DisplayString
                         MAX-ACCESS    accessible-for-notify
                         STATUS        current
                         DESCRIPTION
                             "The port to which the Webcam is connected "
                         ::= { trapInformation 15 }

peripheralDeviceRomcode  OBJECT-TYPE
                                     SYNTAX        DisplayString
                         MAX-ACCESS    accessible-for-notify
                         STATUS        current
                         DESCRIPTION
                             "The Romcode of an peripheral device"
                         ::= { trapInformation 16 }

peripheralDeviceFirmwareUpdateState OBJECT-TYPE
                         SYNTAX        PeripheralDeviceFirmwareUpdateStateEnumeration
                         MAX-ACCESS    accessible-for-notify
                         STATUS        current
                         DESCRIPTION
                             "The firmware update state of an peripheral device"
                         ::= { trapInformation 17 }

agentInetPortNumber      OBJECT-TYPE
                         SYNTAX        InetPortNumber
                         MAX-ACCESS    accessible-for-notify
                         STATUS        current
                         DESCRIPTION
                             "The UDP port number used for accessing 
                              the SNMP agent on the device.
                              Examples: 
                                If deviceCascadeType is portForwarding, then
                                  master: 50500
                                  slave 1:50501
                                  slave 2: 50502
                                  ...... 
                                If cascading mode is not portForwarding and default
                                (Standard) ports are being used, then port: 161"
                         ::= { trapInformation 18  } 

phoneNumber              OBJECT-TYPE
                         SYNTAX        DisplayString
                         MAX-ACCESS    accessible-for-notify
                         STATUS        current
                         DESCRIPTION
                             "The phone number of e.g. an SMS receiver."
                         ::= { trapInformation 19 }
 

-- Start the traps
-- All traps contain the deviceInetAddressType and  deviceInetIPAddress fields.
-- For IPv4, these parameters contain the IP Address Type and IP address
-- For IPv6, these parameters are not used

systemStarted             NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "The system has started."
                          ::= { traps 1 }

systemReset               NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "The system was reset. The conditions under which
                               this trap is sent include, but are not limited
                               to, the following.
                                  using the GUI - Maintenance->Reset Unit
                                  using the CLI - reset emd unit"
                          ::= { traps 2 }

userLogin                 NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A user logged in."
                          ::= { traps 3 }

userLogout                NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A user logged out."
                          ::= { traps 4 }

userAuthenticationFailure NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A user authentication attempt failed."
                          ::= { traps 5 }

userSessionTimeout        NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A user timed out from the device."
                          ::= { traps 6 }

userAdded                 NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    targetUser,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A user was added to the system."
                          ::= { traps 7 }

userModified              NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    targetUser,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A user account was modified."
                          ::= { traps 8 }

userDeleted               NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    targetUser,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A user was deleted from the system."
                          ::= { traps 9 }

roleAdded                 NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    roleName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A role was added to the system."
                          ::= { traps 10 }

roleModified              NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    roleName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A role was modified."
                          ::= { traps 11 }

roleDeleted               NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    roleName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A role was deleted from the system."
                          ::= { traps 12 }

deviceUpdateStarted       NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    imageVersion,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "The device update has started."
                          ::= { traps 13 }

deviceUpdateCompleted     NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    imageVersion,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "The device update has completed."
                          ::= { traps 14 }

userBlocked               NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "A blocked user tried to log in."
                          ::= { traps 15 }

userPasswordChanged       NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    targetUser,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "User password was changed."
                          ::= { traps 16 }

passwordSettingsChanged   NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "Strong password settings changed."
                          ::= { traps 17 }

firmwareValidationFailed  NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "Firmware validation failed."
                          ::= { traps 18 }

logFileCleared            NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "The log file has been cleared."
                          ::= { traps 19 }

bulkConfigurationSaved    NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "Bulk Configuration saved."
                          ::= { traps 20 }

bulkConfigurationCopied   NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "Bulk Configuration saved."
                          ::= { traps 21 }

externalSensorStateChange NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    externalSensorNumber,
                                    typeOfSensor,
                                    measurementsExternalSensorTimeStamp,
                                    measurementsExternalSensorValue,
                                    measurementsExternalSensorState,
                                    oldSensorState,
                                    externalSensorSerialNumber,
                                    externalOnOffSensorSubtype,
                                    externalSensorChannelNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "External Sensor State Change."
                          ::= { traps 22 }

smtpMessageTransmissionFailure NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    smtpMessageRecipients,
                                    smtpServer,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "SMTP message transmission failure"
                          ::= { traps 23 }

ldapError                 NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    errorDescription,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "LDAP Error occurred; errorDescription describes
                               the error"
                          ::= { traps 24 }

deviceUpdateFailed        NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    imageVersion,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "The device update has failed."
                          ::= { traps 25 }

pingServerEnabled         NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    serverIPAddress,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "The ping feature has been enabled"
                          ::= { traps 26 }

pingServerDisabled        NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    serverIPAddress,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "The ping feature has been disabled"
                          ::= { traps 27 }

serverNotReachable        NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    serverIPAddress,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "The server is not reachable"
                          ::= { traps 28 }

serverReachable           NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    serverIPAddress,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "The server is  reachable"
                          ::= { traps 29 }

deviceIdentificationChanged   NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    userName,
                                    deviceChangedParameter,
                                    changedParameterNewValue,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "Device identification has changed"
                          ::= { traps 30 }

usbSlaveConnected   NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                     }
                          STATUS current
                          DESCRIPTION
                              "USB Connectivity to slave has been established"
                          ::= { traps 31 }

usbSlaveDisconnected   NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                     }
                          STATUS current
                          DESCRIPTION
                              "USB Connectivity to slave has been lost"
                          ::= { traps 32 }

lhxSupportChanged NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation,
                                    lhxSupportEnabled
                                  }
                          STATUS current
                          DESCRIPTION
                              "The Schroff LHX Support changed to state 'lhxSupportEnabled'."
                          ::= { traps 33 }

userAcceptedRestrictedServiceAgreement NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                  }
                          STATUS current
                          DESCRIPTION
                              "The user accepted the Restricted Service Agreement."
                          ::= { traps 34 }

userDeclinedRestrictedServiceAgreement NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                  }
                          STATUS current
                          DESCRIPTION
                              "The user declined the Restricted Service Agreement."
                          ::= { traps 35 }

deviceSettingsSaved       NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                  }
                          STATUS current
                          DESCRIPTION
                              "Device Settings have been saved."
                          ::= { traps 36 }

deviceSettingsRestored    NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    userName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                  }
                          STATUS current
                          DESCRIPTION
                              "Device Settings have been restored."
                          ::= { traps 37 }

webcamInserted            NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    webcamModel,
                                    webcamConnectionPort,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                  }
                          STATUS current
                          DESCRIPTION
                              "A webcam has been inserted"
                          ::= { traps 38 }

webcamRemoved             NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    webcamModel,
                                    webcamConnectionPort,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                  }
                          STATUS current
                          DESCRIPTION
                              "A webcam has been removed"
                          ::= { traps 39 }

serverConnectivityUnrecoverable NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    serverIPAddress,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                  }
                          STATUS current
                          DESCRIPTION
                              "The connection to the server could not be recovered"
                          ::= { traps 40 }

radiusError                  NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    errorDescription,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                  }
                          STATUS current
                          DESCRIPTION
                              "LDAP Error occurred; errorDescription describes the error"
                          ::= { traps 41 }

serverReachabilityError   NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    serverIPAddress,
                                    errorDescription,
                                    sysContact,
                                    sysName,
                                    sysLocation }
                          STATUS current
                          DESCRIPTION
                              "Server Reachability Error occurred; errorDescription describes the error.
                               This trap is sent when the Error state is entered.
                               Reasons for transitioning to the Error state include the following:
                               Unable to resolve the server hostname."
                          ::= { traps 42 }

unknownPeripheralDeviceAttached NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    peripheralDeviceRomcode,
                                    peripheralDevicePackagePosition,
                                    sysContact,
                                    sysName,
                                    sysLocation 
                                  }
                          STATUS current
                          DESCRIPTION
                              "An unknown peripheral device was attached."
                          ::= { traps 43 }

peripheralDeviceFirmwareUpdate NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    peripheralDevicePackageSerialNumber, 
                                    peripheralDeviceFirmwareUpdateState,
                                    peripheralDevicePackageFirmwareVersion, 
                                    sysContact, 
                                    sysName, 
                                    sysLocation  
                                  } 
                          STATUS current 
                          DESCRIPTION 
                              "The firmware update state of a peripheral device changed while
                               performing update to peripheralDevicePackageFirmwareVersion."
                          ::= { traps 44 } 

smsMessageTransmissionFailure NOTIFICATION-TYPE
                          OBJECTS { deviceName,
                                    deviceInetAddressType,
                                    deviceInetIPAddress,
                                    agentInetPortNumber,
                                    phoneNumber,
                                    sysContact,
                                    sysName,
                                    sysLocation
                                  }
                          STATUS current
                          DESCRIPTION
                              "Sending an SMS message failed."
                          ::= { traps 45 }

END
