diff --git a/docs/assets/hierarchy.js b/docs/assets/hierarchy.js index 3316637..50a74ee 100644 --- a/docs/assets/hierarchy.js +++ b/docs/assets/hierarchy.js @@ -1 +1 @@ -window.hierarchyData = "eJyVlD1v2zAQhv/LzZdGpChF0uY0GToEDuAiS+FBoZmarUwZ5CmBEfi/F1RQIfRHSC8ahJd8+Bzv+A6278lB84sJViIXFfK8WiJY9dIpSbo3Dpp3YP5j2o2CBm7vZqbt+t/zgbYDzbfkAOGvNitoeFEiDLaDBrQhZV9aqdz18YJva9p0gCC71jlogNzqyu9wNa2CPQLLzlInIuPVf+K42RHuLOrjh8fwU3Y/zGVyUz7RLT8lN26S4jYG42o8r05QntpuUBeoTfkENQS51t3KKuN7ChlnS38OcfYcKbZjMGIbgjNkeebJRV0G5FttWrtLIH8Kxut8kxUB5afeqATGFIsTKiYCwl1LKYQpFifUPD8iJHoE0YSBy/IQ9TB0pBeUpnQQTsAxEdbu+7q1rSRlF2S1SWnDUytSHpaCB+AF2UHSYNXqSau3r5FhNgEm2OdOn7mdkfevytD9RhMp+xXtKHzRrNWiRibKElklxHI8ShkO3ezZka/fo+23ytIuMvMH6QT36uCG589/lIw8pB+ZS0yLusSbrMCKCax5jr6P0XcX+ptGX4hRvxZ1OEnqVcvYCI2ZmOp+/w8NKnyo" \ No newline at end of file +window.hierarchyData = "eJyVlk1v2zAMhv+LzupmKbZi59auPewwZECHXoYeXEdt1DpyIMsdgiL/fZSDeZU/ZPqSIM5LvXxEi9QHMVVla7L5zeKEU54klMcxZWnKHykx8rmUhVWVBsUHYe5D5wdJNuTm9lrnZfWybeyxsdsjrEHJm9I7suGJoKQxJaiUttI854Wsvw4DvuztoYSoosxrWJ/YenflVrjqosiZEjbt2jkynv5zbBcb2E1aXR44Gx6P+HzXy+A6PZJtNWmKYWuF82hQ0BGXh7xs5AK0To9Agz/3qtwZqd2LRWFvH10eSTKVB4a2Fc7Q+sbgvGqdRSQ85xulc3PC70BPjyuuYHzKNIz7SThf3DVLPZdf6iDxYJ4ah7XuHZRuiTBUJ5tHSleR53Cb2wVInhqHlK7EuGEYqZPNI2UxHzgsq9QgAoeWxem08TzegqqxKPFfjB9NadW9XVS8kRhkJ40EC7mHUXtiBCwTmWf3bZ+bvICE7q1RekFznQrEDsd1MptHmH0sAjMuU3+/IbopbGPk7kHJPyj0YQgSmqci4B3G9bUIULgWfTK7rk+6uHuX2t4dlIWkQm4D8aLplWWcsiTi7jIm3BRzP/wB+lRbV7ufpjpKY08zU7SnRrDDLdAz3D69wnUQVdz/0qX3BRjWFKYahTFAoW9S11ioO3DUvXSU88ttwu3KSHLhPbholpQBpjiFkQfZCMgmpa7RUHfsXDaCuiq12cC332jluyrmOmyrQVzgeG/mXgJxc6OTYg7X+fwX2ITtew==" \ No newline at end of file diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js index 3a3a1d2..4606a80 100644 --- a/docs/assets/navigation.js +++ b/docs/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "eJyV199v2jAQB/D/xc9oXZG6H7xB4QG1iE6wvkx7MOYGboMT2Re2aNr/PhFKcJLz2X3lvv7YcexT+PFXIPxBMRKT6ZPNC7BYrasCxEAUEvdiJMCUB3fTrn7Y4yETA/GqzVaMvvwbNMrYVUbNjmBwdtCIYK+QyqRz4G56kbZ2O/S9yXS8cWilwsv8fbCfiYhGZvlubooSSexaTnGWJbLQuZ4iPcushDBUlyOOtbJiN8oP8NZEG2mr4Jq8Mu/c7+Xp1YBdodUm/JBUjpenEmGtDxAkW4G4xTopBhy1ooG6wo+eWZsTt+WtwI+dG4Qd2OAD+HVeWpQZ6hVyu9GJ8N5y8wKKvB3nCj/6Kc8y2EZPNRFLcVfa7DJgGwsZjNlOoz5C7J1QOV5OWO+7VrpCWyosLWyfNfwmuVaC19ibmHQL19K9fiuBEppScmdfFuiujjYI9pdU3QZ/SrXJ4d2nYJOPmtdYClpvSNRsUjzp9WOG7KR4kurIjB2K85O0ejSj93JxNoVM5eoGXn+0BDUvkoJxC2sCPOS3Dobrxni0094Zl0jy9Lnls7voR3iM6p/MYkPxyCRvjXSsFDh3n5u6EpiByqbx7Ja0QzzYbtjMdvSDEbjcOGV1gTo3IdKL8FjKfX/HXff7ZH182n9gsCp67bSJdeSPXz/f3g2JQ/t9Pu2LTSmuXF4i6XjFmFQfgrHdua7SFJKEB6hI4AGqpPGP2iEY/9+dh1yKSdJCFiSykEVs/OmjoDv29Bs97ud/0YoQ4A==" \ No newline at end of file +window.navigationData = "eJyV101z2jAQBuD/4nOmaZjJR3ODwIFpM6QDzaXTgxAbUGJkj7Sm9XT632tMsGV7tVKOeF89lmVpB//8myD8weQ+mUyfTJaDwXJV5pBcJLnAXXUddLG3l93qpx3u0yrypvQmub/7d9EoY1tqOTuAxtleIYJpIZkKa8FeDiJd7WrkepPpeG3RCInn+w/BYSYgapFm27nOCySxthzjLApkoVM9RnoWaQF+qC4HHGNEyS6UG+CtidLClN45OWXeediJ46sBs0SjtP8hqRwvTwXCSu3BS3YCYYt1Ygw4KEkDdYUfPTMmI07Le4EfO9cIWzDeB3DrvPRYpKiWyK1GL8J7i/UrSPJ0nCr86KcsTWET3NVELMZdVtssBbaxkMGQbRWqA4TeCZXj5Yj5fmim1UErJBYGNs8KfpNcJ8Fr7EmMOoUrYd++F0AJTSm6sy9ytK2jqkU2L0L2G/wx1SVH1zfeJh8021gMWi9I0GxSPOn0Y4bspXiS6siM7YvzN+n0aEYf5MJsDBnL1Q28/tPi1ZxIDMZNrAnwkNs6GK4f49Fee2dcIsnTp5bPrqIbicGY6bUBHqIaMcP64oGbvHfksawU+5DpuuK5A5WN49m17YZ4sNv5meUYBgNwsbbSqBxVpn2kE+GxmMbxgabhNtx683S/hLD61e/LTawnf/5ye3U9Ijbsj/l0KDalsHJ+iaTjFENSvQnGZmv7SlOIEr5CSQLV9ajx35RF0O5nooOci1HSo8hJpLoeGn/8d9Efe7xGj/v1H5PPKU8=" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js index 57b2903..7ee5843 100644 --- a/docs/assets/search.js +++ b/docs/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/docs/classes/AsyncEventEmitter.html b/docs/classes/AsyncEventEmitter.html index cf98107..d724d3d 100644 --- a/docs/classes/AsyncEventEmitter.html +++ b/docs/classes/AsyncEventEmitter.html @@ -4,20 +4,20 @@ BACnet components. It allows objects to register listeners for specific events and trigger those events asynchronously.

Type Parameters

Hierarchy (View Summary)

Implemented by

Index

Constructors

Hierarchy (View Summary)

Implemented by

Index

Constructors

Methods

Methods

  • Removes a listener from the set of listeners for the specified event.

    Type Parameters

    • K extends string | number | symbol

    Parameters

    • event: K

      The event name to subscribe to

    • cb: EventListener<T, K>

      The callback function to execute when the event is triggered

    Returns AsyncEventEmitter<T>

    The event emitter's instance for chaining

    -
  • Adds a new listener for the specified event.

    Type Parameters

    • K extends string | number | symbol

    Parameters

    • event: K

      The event name to subscribe to

    • cb: EventListener<T, K>

      The callback function to execute when the event is triggered

    Returns AsyncEventEmitter<T>

    The callback function for chaining

    -
+
diff --git a/docs/classes/BDAbstractProperty.html b/docs/classes/BDAbstractProperty.html index 34435e6..cd9d205 100644 --- a/docs/classes/BDAbstractProperty.html +++ b/docs/classes/BDAbstractProperty.html @@ -1,5 +1,5 @@ BDAbstractProperty | @bacnet-js/device
@bacnet-js/device
    Preparing search index...

    Class BDAbstractProperty<Tag, Type, Data>Abstract

    Abstract base class for all types of properties.

    -

    Type Parameters

    • Tag extends ApplicationTag
    • Type extends ApplicationTagValueTypeMap[Tag]
    • Data extends BACNetAppData<Tag, Type> | BACNetAppData<Tag, Type>[]

    Hierarchy (View Summary)

    Index

    Constructors

    Type Parameters

    • Tag extends ApplicationTag
    • Type extends ApplicationTagValueTypeMap[Tag]
    • Data extends BACNetAppData<Tag, Type> | BACNetAppData<Tag, Type>[]

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Methods

    addListener @@ -8,25 +8,25 @@ on removeListener setData -

    Constructors

    Properties

    identifier: PropertyIdentifier

    The BACnet identifier for this property. Must be unique within the +

    Constructors

    Properties

    identifier: PropertyIdentifier

    The BACnet identifier for this property. Must be unique within the properties added to the same object.

    -

    Whether the property representes a single value or an array (or list) of +

    Whether the property representes a single value or an array (or list) of values.

    Methods

    Methods

    • Consumer-facing method to set property data. Implementations of this method should encapsulate retrieval logic as a task that is executed via this property's task queue.

      -

      Parameters

      Returns Promise<void>

    +

    Parameters

    Returns Promise<void>

    diff --git a/docs/classes/BDAnalogInput.html b/docs/classes/BDAnalogInput.html index 391d7ef..21a59ce 100644 --- a/docs/classes/BDAnalogInput.html +++ b/docs/classes/BDAnalogInput.html @@ -14,7 +14,7 @@
  • Units
  • Reliability (optional but commonly included)
  • -

    Hierarchy (View Summary)

    Index

    Constructors

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    covIncrement: BDSingletProperty<REAL>
    description: BDSingletProperty<CHARACTER_STRING>
    engineeringUnit: BDSingletProperty<ENUMERATED, EngineeringUnits>
    eventState: BDSingletProperty<ENUMERATED, EventState>
    maxPresentValue: BDSingletProperty<REAL>
    minPresentValue: BDSingletProperty<REAL>
    objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
    objectName: BDSingletProperty<CHARACTER_STRING>
    objectType: BDSingletProperty<ENUMERATED, ObjectType>
    outOfService: BDSingletProperty<BOOLEAN>
    presentValue: BDSingletProperty<REAL>
    propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
    reliability: BDSingletProperty<ENUMERATED, Reliability>
    statusFlags: BDSingletProperty<BIT_STRING>

    Accessors

    • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

      Returns BACNetAppData<OBJECTIDENTIFIER>

    Methods

    Properties

    covIncrement: BDSingletProperty<REAL>
    description: BDSingletProperty<CHARACTER_STRING>
    engineeringUnit: BDSingletProperty<ENUMERATED, EngineeringUnits>
    eventState: BDSingletProperty<ENUMERATED, EventState>
    maxPresentValue: BDSingletProperty<REAL>
    minPresentValue: BDSingletProperty<REAL>
    objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
    objectName: BDSingletProperty<CHARACTER_STRING>
    objectType: BDSingletProperty<ENUMERATED, ObjectType>
    outOfService: BDSingletProperty<BOOLEAN>
    presentValue: BDSingletProperty<REAL>
    propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
    reliability: BDSingletProperty<ENUMERATED, Reliability>
    statusFlags: BDSingletProperty<BIT_STRING>

    Accessors

    • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

      Returns BACNetAppData<OBJECTIDENTIFIER>

    Methods

    • Adds a property to this object

      This method registers a new property with the object and sets up event subscriptions for property value changes.

      Type Parameters

      Parameters

      • property: T

        The property to add

      Returns T

      The added property

      Error if a property with the same identifier already exists

      -
    +
    diff --git a/docs/classes/BDAnalogOutput.html b/docs/classes/BDAnalogOutput.html index ca23a94..e35dede 100644 --- a/docs/classes/BDAnalogOutput.html +++ b/docs/classes/BDAnalogOutput.html @@ -15,7 +15,7 @@
  • Priority_Array
  • Relinquish_Default
  • -

    Hierarchy (View Summary)

    Index

    Constructors

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    covIncrement: BDSingletProperty<REAL>
    currentCommandPriority: BDSingletProperty<UNSIGNED_INTEGER>

    The current command priority that is controlling the Present_Value

    +

    Parameters

    Returns BDAnalogOutput

    Properties

    covIncrement: BDSingletProperty<REAL>
    currentCommandPriority: BDSingletProperty<UNSIGNED_INTEGER>

    The current command priority that is controlling the Present_Value

    This property indicates which priority level in the priority array currently has control of the Present_Value property, or NULL if the Relinquish_Default is being used.

    -
    description: BDSingletProperty<CHARACTER_STRING>
    engineeringUnit: BDSingletProperty<ENUMERATED, EngineeringUnits>
    eventState: BDSingletProperty<ENUMERATED, EventState>
    maxPresentValue: BDSingletProperty<REAL>
    minPresentValue: BDSingletProperty<REAL>
    objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
    objectName: BDSingletProperty<CHARACTER_STRING>
    objectType: BDSingletProperty<ENUMERATED, ObjectType>
    outOfService: BDSingletProperty<BOOLEAN>
    presentValue: BDSingletProperty<REAL>
    priorityArray: BDArrayProperty<NULL | REAL>

    The priority array for command arbitration

    +
    description: BDSingletProperty<CHARACTER_STRING>
    engineeringUnit: BDSingletProperty<ENUMERATED, EngineeringUnits>
    eventState: BDSingletProperty<ENUMERATED, EventState>
    maxPresentValue: BDSingletProperty<REAL>
    minPresentValue: BDSingletProperty<REAL>
    objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
    objectName: BDSingletProperty<CHARACTER_STRING>
    objectType: BDSingletProperty<ENUMERATED, ObjectType>
    outOfService: BDSingletProperty<BOOLEAN>
    presentValue: BDSingletProperty<REAL>
    priorityArray: BDArrayProperty<NULL | REAL>

    The priority array for command arbitration

    This property represents the 16-level priority array used for command arbitration. BACnet devices use this mechanism to determine which command source has control over the output value at any given time.

    -
    propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
    reliability: BDSingletProperty<ENUMERATED, Reliability>
    relinquishDefault: BDSingletProperty<REAL>

    The default value for the present value when all priority array slots are NULL

    +
    propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
    reliability: BDSingletProperty<ENUMERATED, Reliability>
    relinquishDefault: BDSingletProperty<REAL>

    The default value for the present value when all priority array slots are NULL

    This property represents the value to be used for the Present_Value property when all entries in the Priority_Array property are NULL.

    -
    statusFlags: BDSingletProperty<BIT_STRING>

    Accessors

    • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

      Returns BACNetAppData<OBJECTIDENTIFIER>

    Methods

    statusFlags: BDSingletProperty<BIT_STRING>

    Accessors

    • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

      Returns BACNetAppData<OBJECTIDENTIFIER>

    Methods

    • Adds a property to this object

      This method registers a new property with the object and sets up event subscriptions for property value changes.

      Type Parameters

      Parameters

      • property: T

        The property to add

      Returns T

      The added property

      Error if a property with the same identifier already exists

      -
    +
    diff --git a/docs/classes/BDAnalogValue.html b/docs/classes/BDAnalogValue.html index 9b58008..4d333f7 100644 --- a/docs/classes/BDAnalogValue.html +++ b/docs/classes/BDAnalogValue.html @@ -1,4 +1,4 @@ -BDAnalogValue | @bacnet-js/device
    @bacnet-js/device
      Preparing search index...

      Class BDAnalogValue

      Hierarchy (View Summary)

      Index

      Constructors

      constructor +BDAnalogValue | @bacnet-js/device
      @bacnet-js/device
        Preparing search index...

        Class BDAnalogValue

        Hierarchy (View Summary)

        Index

        Constructors

        Properties

        covIncrement: BDSingletProperty<REAL>
        description: BDSingletProperty<CHARACTER_STRING>
        engineeringUnit: BDSingletProperty<ENUMERATED, EngineeringUnits>
        eventState: BDSingletProperty<ENUMERATED, EventState>
        maxPresentValue: BDSingletProperty<REAL>
        minPresentValue: BDSingletProperty<REAL>
        objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
        objectName: BDSingletProperty<CHARACTER_STRING>
        objectType: BDSingletProperty<ENUMERATED, ObjectType>
        outOfService: BDSingletProperty<BOOLEAN>
        presentValue: BDSingletProperty<REAL>
        propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
        reliability: BDSingletProperty<ENUMERATED, Reliability>
        statusFlags: BDSingletProperty<BIT_STRING>

        Accessors

        • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

          Returns BACNetAppData<OBJECTIDENTIFIER>

        Methods

        Constructors

        Properties

        covIncrement: BDSingletProperty<REAL>
        description: BDSingletProperty<CHARACTER_STRING>
        engineeringUnit: BDSingletProperty<ENUMERATED, EngineeringUnits>
        eventState: BDSingletProperty<ENUMERATED, EventState>
        maxPresentValue: BDSingletProperty<REAL>
        minPresentValue: BDSingletProperty<REAL>
        objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
        objectName: BDSingletProperty<CHARACTER_STRING>
        objectType: BDSingletProperty<ENUMERATED, ObjectType>
        outOfService: BDSingletProperty<BOOLEAN>
        presentValue: BDSingletProperty<REAL>
        propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
        reliability: BDSingletProperty<ENUMERATED, Reliability>
        statusFlags: BDSingletProperty<BIT_STRING>

        Accessors

        • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

          Returns BACNetAppData<OBJECTIDENTIFIER>

        Methods

        • Adds a property to this object

          This method registers a new property with the object and sets up event subscriptions for property value changes.

          Type Parameters

          Parameters

          • property: T

            The property to add

          Returns T

          The added property

          Error if a property with the same identifier already exists

          -
        +
        diff --git a/docs/classes/BDArrayProperty.html b/docs/classes/BDArrayProperty.html index 57e0741..eddac14 100644 --- a/docs/classes/BDArrayProperty.html +++ b/docs/classes/BDArrayProperty.html @@ -1,4 +1,4 @@ -BDArrayProperty | @bacnet-js/device
        @bacnet-js/device
          Preparing search index...

          Class BDArrayProperty<Tag, Type>

          Type Parameters

          • Tag extends ApplicationTag
          • Type extends ApplicationTagValueTypeMap[Tag] = ApplicationTagValueTypeMap[Tag]

          Hierarchy

          • BDAbstractArrayProperty<Tag, Type>
            • BDArrayProperty
          Index

          Constructors

          constructor +BDArrayProperty | @bacnet-js/device
          @bacnet-js/device
            Preparing search index...

            Class BDArrayProperty<Tag, Type>

            Type Parameters

            • Tag extends ApplicationTag
            • Type extends ApplicationTagValueTypeMap[Tag] = ApplicationTagValueTypeMap[Tag]

            Hierarchy

            • BDAbstractArrayProperty<Tag, Type>
              • BDArrayProperty
            Index

            Constructors

            Properties

            Methods

            addListener @@ -7,25 +7,25 @@ on removeListener setData -

            Constructors

            • Type Parameters

              • Tag extends ApplicationTag
              • Type extends any = ApplicationTagValueTypeMap[Tag]

              Parameters

              • identifier: PropertyIdentifier
              • writable: boolean
              • data: BACNetAppData<Tag, Type>[]

              Returns BDArrayProperty<Tag, Type>

            Properties

            identifier: PropertyIdentifier

            The BACnet identifier for this property. Must be unique within the +

            Constructors

            • Type Parameters

              • Tag extends ApplicationTag
              • Type extends any = ApplicationTagValueTypeMap[Tag]

              Parameters

              • identifier: PropertyIdentifier
              • writable: boolean
              • data: BACNetAppData<Tag, Type>[]

              Returns BDArrayProperty<Tag, Type>

            Properties

            identifier: PropertyIdentifier

            The BACnet identifier for this property. Must be unique within the properties added to the same object.

            -
            type: ARRAY

            Whether the property representes a single value or an array (or list) of +

            type: ARRAY

            Whether the property representes a single value or an array (or list) of values.

            Methods

            Methods

            • Consumer-facing method to set property data. +

            • Consumer-facing method to set property data. Implementations of this method should encapsulate retrieval logic as a task that is executed via this property's task queue.

              -

              Parameters

              Returns Promise<void>

            +

            Parameters

            Returns Promise<void>

            diff --git a/docs/classes/BDBinaryValue.html b/docs/classes/BDBinaryValue.html index e7d5772..fa222b5 100644 --- a/docs/classes/BDBinaryValue.html +++ b/docs/classes/BDBinaryValue.html @@ -2,7 +2,7 @@

            This class implements the core functionality required by all BACnet objects according to the BACnet specification. It manages object properties and handles property read/write operations and CoV notifications.

            -

            Hierarchy (View Summary)

            Index

            Constructors

            Hierarchy (View Summary)

            Index

            Constructors

            Properties

            description: BDSingletProperty<CHARACTER_STRING>
            eventState: BDSingletProperty<ENUMERATED, EventState>
            objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
            objectName: BDSingletProperty<CHARACTER_STRING>
            objectType: BDSingletProperty<ENUMERATED, ObjectType>
            outOfService: BDSingletProperty<BOOLEAN>
            presentValue: BDSingletProperty<ENUMERATED, BinaryPV>
            propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
            reliability: BDSingletProperty<ENUMERATED, Reliability>
            statusFlags: BDSingletProperty<BIT_STRING>

            Accessors

            • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

              Returns BACNetAppData<OBJECTIDENTIFIER>

            Methods

            Constructors

            Properties

            description: BDSingletProperty<CHARACTER_STRING>
            eventState: BDSingletProperty<ENUMERATED, EventState>
            objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
            objectName: BDSingletProperty<CHARACTER_STRING>
            objectType: BDSingletProperty<ENUMERATED, ObjectType>
            outOfService: BDSingletProperty<BOOLEAN>
            presentValue: BDSingletProperty<ENUMERATED, BinaryPV>
            propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
            reliability: BDSingletProperty<ENUMERATED, Reliability>
            statusFlags: BDSingletProperty<BIT_STRING>

            Accessors

            • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

              Returns BACNetAppData<OBJECTIDENTIFIER>

            Methods

            • Adds a property to this object

              This method registers a new property with the object and sets up event subscriptions for property value changes.

              Type Parameters

              Parameters

              • property: T

                The property to add

              Returns T

              The added property

              Error if a property with the same identifier already exists

              -
            +
            diff --git a/docs/classes/BDCharacterStringValue.html b/docs/classes/BDCharacterStringValue.html index 329aa2c..beda5d8 100644 --- a/docs/classes/BDCharacterStringValue.html +++ b/docs/classes/BDCharacterStringValue.html @@ -2,7 +2,7 @@

            This class implements the core functionality required by all BACnet objects according to the BACnet specification. It manages object properties and handles property read/write operations and CoV notifications.

            -

            Hierarchy (View Summary)

            Index

            Constructors

            Hierarchy (View Summary)

            Index

            Constructors

            Properties

            description: BDSingletProperty<CHARACTER_STRING>
            eventState: BDSingletProperty<ENUMERATED, EventState>
            objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
            objectName: BDSingletProperty<CHARACTER_STRING>
            objectType: BDSingletProperty<ENUMERATED, ObjectType>
            outOfService: BDSingletProperty<BOOLEAN>
            presentValue: BDSingletProperty<CHARACTER_STRING>
            propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
            reliability: BDSingletProperty<ENUMERATED, Reliability>
            statusFlags: BDSingletProperty<BIT_STRING>

            Accessors

            • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

              Returns BACNetAppData<OBJECTIDENTIFIER>

            Methods

            Constructors

            Properties

            description: BDSingletProperty<CHARACTER_STRING>
            eventState: BDSingletProperty<ENUMERATED, EventState>
            objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
            objectName: BDSingletProperty<CHARACTER_STRING>
            objectType: BDSingletProperty<ENUMERATED, ObjectType>
            outOfService: BDSingletProperty<BOOLEAN>
            presentValue: BDSingletProperty<CHARACTER_STRING>
            propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
            reliability: BDSingletProperty<ENUMERATED, Reliability>
            statusFlags: BDSingletProperty<BIT_STRING>

            Accessors

            • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

              Returns BACNetAppData<OBJECTIDENTIFIER>

            Methods

            • Adds a property to this object

              This method registers a new property with the object and sets up event subscriptions for property value changes.

              Type Parameters

              Parameters

              • property: T

                The property to add

              Returns T

              The added property

              Error if a property with the same identifier already exists

              -
            +
            diff --git a/docs/classes/BDDateTimeValue.html b/docs/classes/BDDateTimeValue.html index 5dd662b..97a2754 100644 --- a/docs/classes/BDDateTimeValue.html +++ b/docs/classes/BDDateTimeValue.html @@ -2,7 +2,7 @@

            This class implements the core functionality required by all BACnet objects according to the BACnet specification. It manages object properties and handles property read/write operations and CoV notifications.

            -

            Hierarchy (View Summary)

            Index

            Constructors

            Hierarchy (View Summary)

            Index

            Constructors

            Properties

            description: BDSingletProperty<CHARACTER_STRING>
            eventState: BDSingletProperty<ENUMERATED, EventState>
            objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
            objectName: BDSingletProperty<CHARACTER_STRING>
            objectType: BDSingletProperty<ENUMERATED, ObjectType>
            outOfService: BDSingletProperty<BOOLEAN>
            presentValue: BDSingletProperty<DATETIME>
            propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
            reliability: BDSingletProperty<ENUMERATED, Reliability>
            statusFlags: BDSingletProperty<BIT_STRING>

            Accessors

            • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

              Returns BACNetAppData<OBJECTIDENTIFIER>

            Methods

            Constructors

            Properties

            description: BDSingletProperty<CHARACTER_STRING>
            eventState: BDSingletProperty<ENUMERATED, EventState>
            objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
            objectName: BDSingletProperty<CHARACTER_STRING>
            objectType: BDSingletProperty<ENUMERATED, ObjectType>
            outOfService: BDSingletProperty<BOOLEAN>
            presentValue: BDSingletProperty<DATETIME>
            propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
            reliability: BDSingletProperty<ENUMERATED, Reliability>
            statusFlags: BDSingletProperty<BIT_STRING>

            Accessors

            • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

              Returns BACNetAppData<OBJECTIDENTIFIER>

            Methods

            • Adds a property to this object

              This method registers a new property with the object and sets up event subscriptions for property value changes.

              Type Parameters

              Parameters

              • property: T

                The property to add

              Returns T

              The added property

              Error if a property with the same identifier already exists

              -
            +
            diff --git a/docs/classes/BDDateValue.html b/docs/classes/BDDateValue.html index d6c2211..91485a9 100644 --- a/docs/classes/BDDateValue.html +++ b/docs/classes/BDDateValue.html @@ -2,7 +2,7 @@

            This class implements the core functionality required by all BACnet objects according to the BACnet specification. It manages object properties and handles property read/write operations and CoV notifications.

            -

            Hierarchy (View Summary)

            Index

            Constructors

            Hierarchy (View Summary)

            Index

            Constructors

            Properties

            description: BDSingletProperty<CHARACTER_STRING>
            eventState: BDSingletProperty<ENUMERATED, EventState>
            objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
            objectName: BDSingletProperty<CHARACTER_STRING>
            objectType: BDSingletProperty<ENUMERATED, ObjectType>
            outOfService: BDSingletProperty<BOOLEAN>
            presentValue: BDSingletProperty<DATE>
            propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
            reliability: BDSingletProperty<ENUMERATED, Reliability>
            statusFlags: BDSingletProperty<BIT_STRING>

            Accessors

            • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

              Returns BACNetAppData<OBJECTIDENTIFIER>

            Methods

            Constructors

            Properties

            description: BDSingletProperty<CHARACTER_STRING>
            eventState: BDSingletProperty<ENUMERATED, EventState>
            objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
            objectName: BDSingletProperty<CHARACTER_STRING>
            objectType: BDSingletProperty<ENUMERATED, ObjectType>
            outOfService: BDSingletProperty<BOOLEAN>
            presentValue: BDSingletProperty<DATE>
            propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
            reliability: BDSingletProperty<ENUMERATED, Reliability>
            statusFlags: BDSingletProperty<BIT_STRING>

            Accessors

            • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

              Returns BACNetAppData<OBJECTIDENTIFIER>

            Methods

            • Adds a property to this object

              This method registers a new property with the object and sets up event subscriptions for property value changes.

              Type Parameters

              Parameters

              • property: T

                The property to add

              Returns T

              The added property

              Error if a property with the same identifier already exists

              -
            +
            diff --git a/docs/classes/BDDevice.html b/docs/classes/BDDevice.html index 89c8c43..2f17d17 100644 --- a/docs/classes/BDDevice.html +++ b/docs/classes/BDDevice.html @@ -20,7 +20,7 @@
          • Object_List
          • And other properties related to device capabilities and configuration
          • -

            Hierarchy (View Summary)

            Implements

            Index

            Constructors

            Hierarchy (View Summary)

            Implements

            Index

            Constructors

            Properties

            Parameters

            • instance: number

              Device instance number (0-4194303). Must be unique on the BACnet network.

            • opts: BDDeviceOpts

              Configuration options for this device

            Returns BDDevice

            Properties

            activeCovSubscriptions: BDPolledArrayProperty<COV_SUBSCRIPTION>
            apduSegmentTimeout: BDSingletProperty<UNSIGNED_INTEGER>
            apduTimeout: BDSingletProperty<UNSIGNED_INTEGER>
            applicationSoftwareVersion: BDSingletProperty<CHARACTER_STRING>
            databaseRevision: BDSingletProperty<UNSIGNED_INTEGER>
            daylightSavingsStatus: BDPolledSingletProperty<BOOLEAN>
            description: BDSingletProperty<CHARACTER_STRING>
            deviceAddressBinding: BDArrayProperty<NULL>
            eventState: BDSingletProperty<ENUMERATED, EventState>
            firmwareRevision: BDSingletProperty<CHARACTER_STRING>
            localDate: BDPolledSingletProperty<DATE>
            localTime: BDPolledSingletProperty<TIME>
            location: BDSingletProperty<CHARACTER_STRING>
            maxApduLengthAccepted: BDSingletProperty<UNSIGNED_INTEGER>
            maxSegmentsAccepted: BDSingletProperty<UNSIGNED_INTEGER>
            modelName: BDSingletProperty<CHARACTER_STRING>
            numberOfApduRetries: BDSingletProperty<UNSIGNED_INTEGER>
            objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
            objectList: BDPolledArrayProperty<OBJECTIDENTIFIER>
            objectName: BDSingletProperty<CHARACTER_STRING>
            objectType: BDSingletProperty<ENUMERATED, ObjectType>
            outOfService: BDSingletProperty<BOOLEAN>
            propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
            protocolObjectTypesSupported: BDSingletProperty<BIT_STRING>
            protocolRevision: BDSingletProperty<UNSIGNED_INTEGER>
            protocolServicesSupported: BDSingletProperty<BIT_STRING>
            protocolVersion: BDSingletProperty<UNSIGNED_INTEGER>
            reliability: BDSingletProperty<ENUMERATED, Reliability>
            segmentationSupported: BDSingletProperty<ENUMERATED, Segmentation>
            serialNumber: BDSingletProperty<CHARACTER_STRING>
            statusFlags: BDSingletProperty<BIT_STRING>
            structuredObjectList: BDPolledArrayProperty<OBJECTIDENTIFIER>
            systemStatus: BDSingletProperty<ENUMERATED, DeviceStatus>
            utcOffset: BDPolledSingletProperty<SIGNED_INTEGER>
            vendorIdentifier: BDSingletProperty<UNSIGNED_INTEGER>
            vendorName: BDSingletProperty<CHARACTER_STRING>

            Accessors

            • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

              Returns BACNetAppData<OBJECTIDENTIFIER>

            Methods

            Properties

            activeCovSubscriptions: BDPolledArrayProperty<COV_SUBSCRIPTION>
            apduSegmentTimeout: BDSingletProperty<UNSIGNED_INTEGER>
            apduTimeout: BDSingletProperty<UNSIGNED_INTEGER>
            applicationSoftwareVersion: BDSingletProperty<CHARACTER_STRING>
            databaseRevision: BDSingletProperty<UNSIGNED_INTEGER>
            daylightSavingsStatus: BDPolledSingletProperty<BOOLEAN>
            description: BDSingletProperty<CHARACTER_STRING>
            deviceAddressBinding: BDArrayProperty<NULL>
            eventState: BDSingletProperty<ENUMERATED, EventState>
            firmwareRevision: BDSingletProperty<CHARACTER_STRING>
            localDate: BDPolledSingletProperty<DATE>
            localTime: BDPolledSingletProperty<TIME>
            location: BDSingletProperty<CHARACTER_STRING>
            maxApduLengthAccepted: BDSingletProperty<UNSIGNED_INTEGER>
            maxSegmentsAccepted: BDSingletProperty<UNSIGNED_INTEGER>
            modelName: BDSingletProperty<CHARACTER_STRING>
            numberOfApduRetries: BDSingletProperty<UNSIGNED_INTEGER>
            objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
            objectList: BDPolledArrayProperty<OBJECTIDENTIFIER>
            objectName: BDSingletProperty<CHARACTER_STRING>
            objectType: BDSingletProperty<ENUMERATED, ObjectType>
            outOfService: BDSingletProperty<BOOLEAN>
            propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
            protocolObjectTypesSupported: BDSingletProperty<BIT_STRING>
            protocolRevision: BDSingletProperty<UNSIGNED_INTEGER>
            protocolServicesSupported: BDSingletProperty<BIT_STRING>
            protocolVersion: BDSingletProperty<UNSIGNED_INTEGER>
            reliability: BDSingletProperty<ENUMERATED, Reliability>
            segmentationSupported: BDSingletProperty<ENUMERATED, Segmentation>
            serialNumber: BDSingletProperty<CHARACTER_STRING>
            statusFlags: BDSingletProperty<BIT_STRING>
            structuredObjectList: BDPolledArrayProperty<OBJECTIDENTIFIER>
            systemStatus: BDSingletProperty<ENUMERATED, DeviceStatus>
            utcOffset: BDPolledSingletProperty<SIGNED_INTEGER>
            vendorIdentifier: BDSingletProperty<UNSIGNED_INTEGER>
            vendorName: BDSingletProperty<CHARACTER_STRING>

            Accessors

            • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

              Returns BACNetAppData<OBJECTIDENTIFIER>

            Methods

            • Adds a BACnet object to this device

              This method registers a new BACnet object with the device and adds it to the device's object list. The object must have a unique identifier (type and instance).

              Type Parameters

              • T extends BDObject

                The specific BACnet object type

              Parameters

              • object: T

                The BACnet object to add to this device

              Returns T

              The added object

              Error if an object with the same identifier already exists

              -
            • Adds a property to this object

              This method registers a new property with the object and sets up event subscriptions for property value changes.

              Type Parameters

              Parameters

              • property: T

                The property to add

              Returns T

              The added property

              Error if a property with the same identifier already exists

              -
            • Adds a subordinate BACnet object to this device

              This method registers a new BACnet object with the device and adds it to the device's object list, just as BDDevice.addObject. Additionally, however, this method also registers the object as a subordinate object of @@ -98,13 +99,13 @@ subordinate object must be a Structured View object.

              Parameters

              • subordinate: BDStructuredView

                The Structured View object to add as a new child of this Device object

                -

              Returns BDStructuredView

            Returns BDStructuredView

            +
            diff --git a/docs/classes/BDError.html b/docs/classes/BDError.html index 0e3966a..3a6a329 100644 --- a/docs/classes/BDError.html +++ b/docs/classes/BDError.html @@ -1,7 +1,7 @@ BDError | @bacnet-js/device
            @bacnet-js/device
              Preparing search index...

              Class BDError

              Represents a BACnet-specific error with associated error code and error class.

              BACnet errors include both an error code and an error class to provide detailed information about the nature of the error according to the BACnet specification.

              -

              Hierarchy

              • Error
                • BDError
              Index

              Constructors

              Hierarchy

              • Error
                • BDError
              Index

              Constructors

              Properties

              cause? class code @@ -15,9 +15,9 @@

              Parameters

              • message: string

                Human-readable error message

              • code: ErrorCode

                BACnet error code from the ErrorCode enum

              • clss: ErrorClass

                BACnet error class from the ErrorClass enum

                -

              Returns BDError

              Properties

              cause?: unknown
              class: ErrorClass

              The BACnet error class that categorizes this error

              -
              code: ErrorCode

              The specific BACnet error code

              -
              message: string
              name: string
              stack?: string
              stackTraceLimit: number

              The Error.stackTraceLimit property specifies the number of stack frames +

              Returns BDError

              Properties

              cause?: unknown
              class: ErrorClass

              The BACnet error class that categorizes this error

              +
              code: ErrorCode

              The specific BACnet error code

              +
              message: string
              name: string
              stack?: string
              stackTraceLimit: number

              The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).

              The default value is 10 but may be set to any valid JavaScript number. Changes diff --git a/docs/classes/BDIntegerValue.html b/docs/classes/BDIntegerValue.html index 1c4fb28..2ecdf6d 100644 --- a/docs/classes/BDIntegerValue.html +++ b/docs/classes/BDIntegerValue.html @@ -1,4 +1,4 @@ -BDIntegerValue | @bacnet-js/device

              @bacnet-js/device
                Preparing search index...

                Class BDIntegerValue

                Hierarchy

                • BDNumericObject<ApplicationTag.SIGNED_INTEGER>
                  • BDIntegerValue
                Index

                Constructors

                constructor +BDIntegerValue | @bacnet-js/device
                @bacnet-js/device
                  Preparing search index...

                  Class BDIntegerValue

                  Hierarchy

                  • BDNumericObject<ApplicationTag.SIGNED_INTEGER>
                    • BDIntegerValue
                  Index

                  Constructors

                  Properties

                  covIncrement: BDSingletProperty<UNSIGNED_INTEGER>
                  description: BDSingletProperty<CHARACTER_STRING>
                  engineeringUnit: BDSingletProperty<ENUMERATED, EngineeringUnits>
                  eventState: BDSingletProperty<ENUMERATED, EventState>
                  maxPresentValue: BDSingletProperty<SIGNED_INTEGER>
                  minPresentValue: BDSingletProperty<SIGNED_INTEGER>
                  objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                  objectName: BDSingletProperty<CHARACTER_STRING>
                  objectType: BDSingletProperty<ENUMERATED, ObjectType>
                  outOfService: BDSingletProperty<BOOLEAN>
                  presentValue: BDSingletProperty<SIGNED_INTEGER>
                  propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                  reliability: BDSingletProperty<ENUMERATED, Reliability>
                  statusFlags: BDSingletProperty<BIT_STRING>

                  Accessors

                  • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

                    Returns BACNetAppData<OBJECTIDENTIFIER>

                  Methods

                  Constructors

                  Properties

                  covIncrement: BDSingletProperty<UNSIGNED_INTEGER>
                  description: BDSingletProperty<CHARACTER_STRING>
                  engineeringUnit: BDSingletProperty<ENUMERATED, EngineeringUnits>
                  eventState: BDSingletProperty<ENUMERATED, EventState>
                  maxPresentValue: BDSingletProperty<SIGNED_INTEGER>
                  minPresentValue: BDSingletProperty<SIGNED_INTEGER>
                  objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                  objectName: BDSingletProperty<CHARACTER_STRING>
                  objectType: BDSingletProperty<ENUMERATED, ObjectType>
                  outOfService: BDSingletProperty<BOOLEAN>
                  presentValue: BDSingletProperty<SIGNED_INTEGER>
                  propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                  reliability: BDSingletProperty<ENUMERATED, Reliability>
                  statusFlags: BDSingletProperty<BIT_STRING>

                  Accessors

                  • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

                    Returns BACNetAppData<OBJECTIDENTIFIER>

                  Methods

                  • Adds a property to this object

                    This method registers a new property with the object and sets up event subscriptions for property value changes.

                    Type Parameters

                    Parameters

                    • property: T

                      The property to add

                    Returns T

                    The added property

                    Error if a property with the same identifier already exists

                    -
                  +
                  diff --git a/docs/classes/BDMultiStateValue.html b/docs/classes/BDMultiStateValue.html index 08f897b..57714ee 100644 --- a/docs/classes/BDMultiStateValue.html +++ b/docs/classes/BDMultiStateValue.html @@ -2,7 +2,7 @@

                  This class implements the core functionality required by all BACnet objects according to the BACnet specification. It manages object properties and handles property read/write operations and CoV notifications.

                  -

                  Hierarchy (View Summary)

                  Index

                  Constructors

                  Hierarchy (View Summary)

                  Index

                  Constructors

                  Properties

                  description: BDSingletProperty<CHARACTER_STRING>
                  eventState: BDSingletProperty<ENUMERATED, EventState>
                  numberOfStates: BDPolledSingletProperty<UNSIGNED_INTEGER>
                  objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                  objectName: BDSingletProperty<CHARACTER_STRING>
                  objectType: BDSingletProperty<ENUMERATED, ObjectType>
                  outOfService: BDSingletProperty<BOOLEAN>
                  presentValue: BDSingletProperty<UNSIGNED_INTEGER>
                  propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                  reliability: BDSingletProperty<ENUMERATED, Reliability>
                  stateText: BDPolledArrayProperty<CHARACTER_STRING>
                  statusFlags: BDSingletProperty<BIT_STRING>

                  Accessors

                  • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

                    Returns BACNetAppData<OBJECTIDENTIFIER>

                  Methods

                  Constructors

                  Properties

                  description: BDSingletProperty<CHARACTER_STRING>
                  eventState: BDSingletProperty<ENUMERATED, EventState>
                  numberOfStates: BDPolledSingletProperty<UNSIGNED_INTEGER>
                  objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                  objectName: BDSingletProperty<CHARACTER_STRING>
                  objectType: BDSingletProperty<ENUMERATED, ObjectType>
                  outOfService: BDSingletProperty<BOOLEAN>
                  presentValue: BDSingletProperty<UNSIGNED_INTEGER>
                  propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                  reliability: BDSingletProperty<ENUMERATED, Reliability>
                  stateText: BDPolledArrayProperty<CHARACTER_STRING>
                  statusFlags: BDSingletProperty<BIT_STRING>

                  Accessors

                  • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

                    Returns BACNetAppData<OBJECTIDENTIFIER>

                  Methods

                  • Adds a property to this object

                    This method registers a new property with the object and sets up event subscriptions for property value changes.

                    Type Parameters

                    Parameters

                    • property: T

                      The property to add

                    Returns T

                    The added property

                    Error if a property with the same identifier already exists

                    -
                  +
                  diff --git a/docs/classes/BDObject.html b/docs/classes/BDObject.html index 8430b84..0f41d94 100644 --- a/docs/classes/BDObject.html +++ b/docs/classes/BDObject.html @@ -2,7 +2,7 @@

                  This class implements the core functionality required by all BACnet objects according to the BACnet specification. It manages object properties and handles property read/write operations and CoV notifications.

                  -

                  Hierarchy (View Summary)

                  Index

                  Constructors

                  Hierarchy (View Summary)

                  Index

                  Constructors

                  Properties

                  description: BDSingletProperty<CHARACTER_STRING>
                  eventState: BDSingletProperty<ENUMERATED, EventState>
                  objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                  objectName: BDSingletProperty<CHARACTER_STRING>
                  objectType: BDSingletProperty<ENUMERATED, ObjectType>
                  outOfService: BDSingletProperty<BOOLEAN>
                  propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                  reliability: BDSingletProperty<ENUMERATED, Reliability>
                  statusFlags: BDSingletProperty<BIT_STRING>

                  Accessors

                  Methods

                  Constructors

                  Properties

                  description: BDSingletProperty<CHARACTER_STRING>
                  eventState: BDSingletProperty<ENUMERATED, EventState>
                  objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                  objectName: BDSingletProperty<CHARACTER_STRING>
                  objectType: BDSingletProperty<ENUMERATED, ObjectType>
                  outOfService: BDSingletProperty<BOOLEAN>
                  propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                  reliability: BDSingletProperty<ENUMERATED, Reliability>
                  statusFlags: BDSingletProperty<BIT_STRING>

                  Accessors

                  Methods

                  • Adds a property to this object

                    This method registers a new property with the object and sets up event subscriptions for property value changes.

                    Type Parameters

                    Parameters

                    • property: T

                      The property to add

                    Returns T

                    The added property

                    Error if a property with the same identifier already exists

                    -
                  +
                  diff --git a/docs/classes/BDPolledArrayProperty.html b/docs/classes/BDPolledArrayProperty.html index 49672c3..2b55aa7 100644 --- a/docs/classes/BDPolledArrayProperty.html +++ b/docs/classes/BDPolledArrayProperty.html @@ -1,4 +1,4 @@ -BDPolledArrayProperty | @bacnet-js/device
                  @bacnet-js/device
                    Preparing search index...

                    Class BDPolledArrayProperty<Tag, Type>

                    Type Parameters

                    • Tag extends ApplicationTag
                    • Type extends ApplicationTagValueTypeMap[Tag] = ApplicationTagValueTypeMap[Tag]

                    Hierarchy

                    • BDAbstractArrayProperty<Tag, Type>
                      • BDPolledArrayProperty
                    Index

                    Constructors

                    constructor +BDPolledArrayProperty | @bacnet-js/device
                    @bacnet-js/device
                      Preparing search index...

                      Class BDPolledArrayProperty<Tag, Type>

                      Type Parameters

                      • Tag extends ApplicationTag
                      • Type extends ApplicationTagValueTypeMap[Tag] = ApplicationTagValueTypeMap[Tag]

                      Hierarchy

                      • BDAbstractArrayProperty<Tag, Type>
                        • BDPolledArrayProperty
                      Index

                      Constructors

                      Properties

                      Methods

                      addListener @@ -7,25 +7,25 @@ on removeListener setData -

                      Constructors

                      Properties

                      identifier: PropertyIdentifier

                      The BACnet identifier for this property. Must be unique within the +

                      Constructors

                      Properties

                      identifier: PropertyIdentifier

                      The BACnet identifier for this property. Must be unique within the properties added to the same object.

                      -
                      type: ARRAY

                      Whether the property representes a single value or an array (or list) of +

                      type: ARRAY

                      Whether the property representes a single value or an array (or list) of values.

                      Methods

                      Methods

                      • Consumer-facing method to set property data. +

                      • Consumer-facing method to set property data. Implementations of this method should encapsulate retrieval logic as a task that is executed via this property's task queue.

                        -

                        Returns Promise<void>

                      +

                      Returns Promise<void>

                      diff --git a/docs/classes/BDPolledSingletProperty.html b/docs/classes/BDPolledSingletProperty.html index d8e043c..c18f3a0 100644 --- a/docs/classes/BDPolledSingletProperty.html +++ b/docs/classes/BDPolledSingletProperty.html @@ -1,4 +1,4 @@ -BDPolledSingletProperty | @bacnet-js/device
                      @bacnet-js/device
                        Preparing search index...

                        Class BDPolledSingletProperty<Tag, Type>

                        Type Parameters

                        • Tag extends ApplicationTag
                        • Type extends ApplicationTagValueTypeMap[Tag] = ApplicationTagValueTypeMap[Tag]

                        Hierarchy

                        • BDAbstractSingletProperty<Tag, Type>
                          • BDPolledSingletProperty
                        Index

                        Constructors

                        constructor +BDPolledSingletProperty | @bacnet-js/device
                        @bacnet-js/device
                          Preparing search index...

                          Class BDPolledSingletProperty<Tag, Type>

                          Type Parameters

                          • Tag extends ApplicationTag
                          • Type extends ApplicationTagValueTypeMap[Tag] = ApplicationTagValueTypeMap[Tag]

                          Hierarchy

                          • BDAbstractSingletProperty<Tag, Type>
                            • BDPolledSingletProperty
                          Index

                          Constructors

                          Properties

                          Methods

                          Constructors

                          Properties

                          identifier: PropertyIdentifier

                          The BACnet identifier for this property. Must be unique within the +

                          Constructors

                          Properties

                          identifier: PropertyIdentifier

                          The BACnet identifier for this property. Must be unique within the properties added to the same object.

                          -
                          type: SINGLET

                          Whether the property representes a single value or an array (or list) of +

                          type: SINGLET

                          Whether the property representes a single value or an array (or list) of values.

                          Methods

                          Methods

                          • Consumer-facing method to set property data. +

                          • Consumer-facing method to set property data. Implementations of this method should encapsulate retrieval logic as a task that is executed via this property's task queue.

                            -

                            Returns Promise<void>

                          • Commodity method to set the value of the property rather than the entire +

                            Returns Promise<void>

                          • Commodity method to set the value of the property rather than the entire data element.

                            -

                            Returns Promise<void>

                          +

                          Returns Promise<void>

                          diff --git a/docs/classes/BDPositiveIntegerValue.html b/docs/classes/BDPositiveIntegerValue.html index 7d7272a..61ef157 100644 --- a/docs/classes/BDPositiveIntegerValue.html +++ b/docs/classes/BDPositiveIntegerValue.html @@ -1,4 +1,4 @@ -BDPositiveIntegerValue | @bacnet-js/device
                          @bacnet-js/device
                            Preparing search index...

                            Class BDPositiveIntegerValue

                            Hierarchy

                            • BDNumericObject<ApplicationTag.UNSIGNED_INTEGER>
                              • BDPositiveIntegerValue
                            Index

                            Constructors

                            constructor +BDPositiveIntegerValue | @bacnet-js/device
                            @bacnet-js/device
                              Preparing search index...

                              Class BDPositiveIntegerValue

                              Hierarchy

                              • BDNumericObject<ApplicationTag.UNSIGNED_INTEGER>
                                • BDPositiveIntegerValue
                              Index

                              Constructors

                              Properties

                              covIncrement: BDSingletProperty<UNSIGNED_INTEGER>
                              description: BDSingletProperty<CHARACTER_STRING>
                              engineeringUnit: BDSingletProperty<ENUMERATED, EngineeringUnits>
                              eventState: BDSingletProperty<ENUMERATED, EventState>
                              maxPresentValue: BDSingletProperty<UNSIGNED_INTEGER>
                              minPresentValue: BDSingletProperty<UNSIGNED_INTEGER>
                              objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                              objectName: BDSingletProperty<CHARACTER_STRING>
                              objectType: BDSingletProperty<ENUMERATED, ObjectType>
                              outOfService: BDSingletProperty<BOOLEAN>
                              presentValue: BDSingletProperty<UNSIGNED_INTEGER>
                              propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                              reliability: BDSingletProperty<ENUMERATED, Reliability>
                              statusFlags: BDSingletProperty<BIT_STRING>

                              Accessors

                              • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

                                Returns BACNetAppData<OBJECTIDENTIFIER>

                              Methods

                              Constructors

                              Properties

                              covIncrement: BDSingletProperty<UNSIGNED_INTEGER>
                              description: BDSingletProperty<CHARACTER_STRING>
                              engineeringUnit: BDSingletProperty<ENUMERATED, EngineeringUnits>
                              eventState: BDSingletProperty<ENUMERATED, EventState>
                              maxPresentValue: BDSingletProperty<UNSIGNED_INTEGER>
                              minPresentValue: BDSingletProperty<UNSIGNED_INTEGER>
                              objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                              objectName: BDSingletProperty<CHARACTER_STRING>
                              objectType: BDSingletProperty<ENUMERATED, ObjectType>
                              outOfService: BDSingletProperty<BOOLEAN>
                              presentValue: BDSingletProperty<UNSIGNED_INTEGER>
                              propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                              reliability: BDSingletProperty<ENUMERATED, Reliability>
                              statusFlags: BDSingletProperty<BIT_STRING>

                              Accessors

                              • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

                                Returns BACNetAppData<OBJECTIDENTIFIER>

                              Methods

                              • Adds a property to this object

                                This method registers a new property with the object and sets up event subscriptions for property value changes.

                                Type Parameters

                                Parameters

                                • property: T

                                  The property to add

                                Returns T

                                The added property

                                Error if a property with the same identifier already exists

                                -
                              +
                              diff --git a/docs/classes/BDSingletProperty.html b/docs/classes/BDSingletProperty.html index cb9636a..55200eb 100644 --- a/docs/classes/BDSingletProperty.html +++ b/docs/classes/BDSingletProperty.html @@ -1,4 +1,4 @@ -BDSingletProperty | @bacnet-js/device
                              @bacnet-js/device
                                Preparing search index...

                                Class BDSingletProperty<Tag, Type>

                                Type Parameters

                                • Tag extends ApplicationTag
                                • Type extends ApplicationTagValueTypeMap[Tag] = ApplicationTagValueTypeMap[Tag]

                                Hierarchy

                                • BDAbstractSingletProperty<Tag, Type>
                                  • BDSingletProperty
                                Index

                                Constructors

                                constructor +BDSingletProperty | @bacnet-js/device
                                @bacnet-js/device
                                  Preparing search index...

                                  Class BDSingletProperty<Tag, Type>

                                  Type Parameters

                                  • Tag extends ApplicationTag
                                  • Type extends ApplicationTagValueTypeMap[Tag] = ApplicationTagValueTypeMap[Tag]

                                  Hierarchy

                                  • BDAbstractSingletProperty<Tag, Type>
                                    • BDSingletProperty
                                  Index

                                  Constructors

                                  Properties

                                  Methods

                                  Constructors

                                  • Type Parameters

                                    • Tag extends ApplicationTag
                                    • Type extends any = ApplicationTagValueTypeMap[Tag]

                                    Parameters

                                    • identifier: PropertyIdentifier
                                    • type: Tag
                                    • writable: boolean
                                    • value: Type
                                    • Optionalencoding: CharacterStringEncoding

                                    Returns BDSingletProperty<Tag, Type>

                                  Properties

                                  identifier: PropertyIdentifier

                                  The BACnet identifier for this property. Must be unique within the +

                                  Constructors

                                  • Type Parameters

                                    • Tag extends ApplicationTag
                                    • Type extends any = ApplicationTagValueTypeMap[Tag]

                                    Parameters

                                    • identifier: PropertyIdentifier
                                    • type: Tag
                                    • writable: boolean
                                    • value: Type
                                    • Optionalencoding: CharacterStringEncoding

                                    Returns BDSingletProperty<Tag, Type>

                                  Properties

                                  identifier: PropertyIdentifier

                                  The BACnet identifier for this property. Must be unique within the properties added to the same object.

                                  -
                                  type: SINGLET

                                  Whether the property representes a single value or an array (or list) of +

                                  type: SINGLET

                                  Whether the property representes a single value or an array (or list) of values.

                                  Methods

                                  Methods

                                  • Consumer-facing method to set property data. +

                                  • Consumer-facing method to set property data. Implementations of this method should encapsulate retrieval logic as a task that is executed via this property's task queue.

                                    -

                                    Parameters

                                    Returns Promise<void>

                                  • Commodity method to set the value of the property rather than the entire +

                                    Parameters

                                    Returns Promise<void>

                                  • Commodity method to set the value of the property rather than the entire data element.

                                    -

                                    Parameters

                                    Returns Promise<void>

                                  +

                                  Parameters

                                  Returns Promise<void>

                                  diff --git a/docs/classes/BDStructuredView.html b/docs/classes/BDStructuredView.html index 0351fa6..1c89060 100644 --- a/docs/classes/BDStructuredView.html +++ b/docs/classes/BDStructuredView.html @@ -2,7 +2,7 @@ a container to hold references to subordinate objects, which may include other Structured View objects, thereby allowing multilevel hierarchies to be created. The hierarchies are intended to convey a structure or organization.

                                  -

                                  Hierarchy (View Summary)

                                  Index

                                  Constructors

                                  Hierarchy (View Summary)

                                  Index

                                  Constructors

                                  Properties

                                  description: BDSingletProperty<CHARACTER_STRING>
                                  eventState: BDSingletProperty<ENUMERATED, EventState>
                                  nodeType: BDSingletProperty<ENUMERATED, NodeType>
                                  objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                                  objectName: BDSingletProperty<CHARACTER_STRING>
                                  objectType: BDSingletProperty<ENUMERATED, ObjectType>
                                  outOfService: BDSingletProperty<BOOLEAN>
                                  propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                                  reliability: BDSingletProperty<ENUMERATED, Reliability>
                                  statusFlags: BDSingletProperty<BIT_STRING>
                                  subordinateList: BDPolledArrayProperty<OBJECTIDENTIFIER>

                                  Accessors

                                  • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

                                    Returns BACNetAppData<OBJECTIDENTIFIER>

                                  Methods

                                  Constructors

                                  Properties

                                  description: BDSingletProperty<CHARACTER_STRING>
                                  eventState: BDSingletProperty<ENUMERATED, EventState>
                                  nodeType: BDSingletProperty<ENUMERATED, NodeType>
                                  objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                                  objectName: BDSingletProperty<CHARACTER_STRING>
                                  objectType: BDSingletProperty<ENUMERATED, ObjectType>
                                  outOfService: BDSingletProperty<BOOLEAN>
                                  propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                                  reliability: BDSingletProperty<ENUMERATED, Reliability>
                                  statusFlags: BDSingletProperty<BIT_STRING>
                                  subordinateList: BDPolledArrayProperty<OBJECTIDENTIFIER>

                                  Accessors

                                  • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

                                    Returns BACNetAppData<OBJECTIDENTIFIER>

                                  Methods

                                  • Adds a property to this object

                                    This method registers a new property with the object and sets up event subscriptions for property value changes.

                                    Type Parameters

                                    Parameters

                                    • property: T

                                      The property to add

                                    Returns T

                                    The added property

                                    Error if a property with the same identifier already exists

                                    -
                                  • Adds a subordinate object to this structured view.

                                    Type Parameters

                                    Parameters

                                    • subordinate: T

                                      The BACnet object to add as a new child of this Structured View object

                                      -

                                    Returns T

                                  Returns T

                                  +
                                  diff --git a/docs/classes/BDTimeValue.html b/docs/classes/BDTimeValue.html index ee09a83..bd38224 100644 --- a/docs/classes/BDTimeValue.html +++ b/docs/classes/BDTimeValue.html @@ -2,7 +2,7 @@

                                  This class implements the core functionality required by all BACnet objects according to the BACnet specification. It manages object properties and handles property read/write operations and CoV notifications.

                                  -

                                  Hierarchy (View Summary)

                                  Index

                                  Constructors

                                  Hierarchy (View Summary)

                                  Index

                                  Constructors

                                  Properties

                                  description: BDSingletProperty<CHARACTER_STRING>
                                  eventState: BDSingletProperty<ENUMERATED, EventState>
                                  objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                                  objectName: BDSingletProperty<CHARACTER_STRING>
                                  objectType: BDSingletProperty<ENUMERATED, ObjectType>
                                  outOfService: BDSingletProperty<BOOLEAN>
                                  presentValue: BDSingletProperty<TIME>
                                  propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                                  reliability: BDSingletProperty<ENUMERATED, Reliability>
                                  statusFlags: BDSingletProperty<BIT_STRING>

                                  Accessors

                                  • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

                                    Returns BACNetAppData<OBJECTIDENTIFIER>

                                  Methods

                                  Constructors

                                  Properties

                                  description: BDSingletProperty<CHARACTER_STRING>
                                  eventState: BDSingletProperty<ENUMERATED, EventState>
                                  objectIdentifier: BDPolledSingletProperty<OBJECTIDENTIFIER>
                                  objectName: BDSingletProperty<CHARACTER_STRING>
                                  objectType: BDSingletProperty<ENUMERATED, ObjectType>
                                  outOfService: BDSingletProperty<BOOLEAN>
                                  presentValue: BDSingletProperty<TIME>
                                  propertyList: BDPolledArrayProperty<ENUMERATED, PropertyIdentifier>
                                  reliability: BDSingletProperty<ENUMERATED, Reliability>
                                  statusFlags: BDSingletProperty<BIT_STRING>

                                  Accessors

                                  • get identifier(): BACNetAppData<OBJECTIDENTIFIER>

                                    Returns BACNetAppData<OBJECTIDENTIFIER>

                                  Methods

                                  • Adds a property to this object

                                    This method registers a new property with the object and sets up event subscriptions for property value changes.

                                    Type Parameters

                                    Parameters

                                    • property: T

                                      The property to add

                                    Returns T

                                    The added property

                                    Error if a property with the same identifier already exists

                                    -
                                  +
                                  diff --git a/docs/classes/TaskQueue.html b/docs/classes/TaskQueue.html index 05d67dd..c56a3cf 100644 --- a/docs/classes/TaskQueue.html +++ b/docs/classes/TaskQueue.html @@ -1,8 +1,8 @@ TaskQueue | @bacnet-js/device
                                  @bacnet-js/device
                                    Preparing search index...

                                    Class TaskQueue

                                    A queue that takes in and runs asynchronous functions (tasks) in series.

                                    -
                                    Index

                                    Constructors

                                    Index

                                    Constructors

                                    Methods

                                    Constructors

                                    Methods

                                    • Runs a task function in the queue.

                                      +

                                    Constructors

                                    Methods

                                    • Runs a task function in the queue.

                                      Type Parameters

                                      • O

                                      Parameters

                                      Returns Promise<O>

                                      a promise that resolves to the same value as that which is returned by the task function.

                                      -
                                    +
                                    diff --git a/docs/enums/BDPropertyType.html b/docs/enums/BDPropertyType.html index 792f6ba..b0d8939 100644 --- a/docs/enums/BDPropertyType.html +++ b/docs/enums/BDPropertyType.html @@ -1,6 +1,6 @@ BDPropertyType | @bacnet-js/device
                                    @bacnet-js/device
                                      Preparing search index...

                                      Enumeration BDPropertyType

                                      Enumerates the types of properties that can be defined.

                                      -
                                      Index

                                      Enumeration Members

                                      Index

                                      Enumeration Members

                                      Enumeration Members

                                      ARRAY: 1

                                      A property whose data consists of an array of values.

                                      -
                                      SINGLET: 0

                                      A property whose data consists of a single value.

                                      -
                                      +
                                      SINGLET: 0

                                      A property whose data consists of a single value.

                                      +
                                      diff --git a/docs/hierarchy.html b/docs/hierarchy.html index 6926a39..da41855 100644 --- a/docs/hierarchy.html +++ b/docs/hierarchy.html @@ -1 +1 @@ -@bacnet-js/device
                                      @bacnet-js/device
                                        Preparing search index...

                                        @bacnet-js/device

                                        Hierarchy Summary

                                        +@bacnet-js/device
                                        @bacnet-js/device
                                          Preparing search index...

                                          @bacnet-js/device

                                          Hierarchy Summary

                                          diff --git a/docs/interfaces/BDAnalogInputOpts.html b/docs/interfaces/BDAnalogInputOpts.html index 824b377..5aacc83 100644 --- a/docs/interfaces/BDAnalogInputOpts.html +++ b/docs/interfaces/BDAnalogInputOpts.html @@ -1,4 +1,4 @@ -BDAnalogInputOpts | @bacnet-js/device
                                          @bacnet-js/device
                                            Preparing search index...

                                            Interface BDAnalogInputOpts

                                            interface BDAnalogInputOpts {
                                                covIncrement?: number;
                                                description?: string;
                                                maxPresentValue?: number;
                                                minPresentValue?: number;
                                                name: string;
                                                presentValue?: number;
                                                unit: EngineeringUnits;
                                                writable?: boolean;
                                            }

                                            Hierarchy (View Summary)

                                            Index

                                            Properties

                                            covIncrement? +BDAnalogInputOpts | @bacnet-js/device
                                            @bacnet-js/device
                                              Preparing search index...

                                              Interface BDAnalogInputOpts

                                              interface BDAnalogInputOpts {
                                                  covIncrement?: number;
                                                  description?: string;
                                                  maxPresentValue?: number;
                                                  minPresentValue?: number;
                                                  name: string;
                                                  presentValue?: number;
                                                  unit: EngineeringUnits;
                                                  writable?: boolean;
                                                  writableOutOfService?: boolean;
                                              }

                                              Hierarchy (View Summary)

                                              Index

                                              Properties

                                              covIncrement?: number
                                              description?: string
                                              maxPresentValue?: number
                                              minPresentValue?: number
                                              name: string
                                              presentValue?: number
                                              unit: EngineeringUnits
                                              writable?: boolean
                                              +writableOutOfService? +

                                              Properties

                                              covIncrement?: number
                                              description?: string

                                              An optional textual description of the object (Description property)

                                              +
                                              maxPresentValue?: number
                                              minPresentValue?: number
                                              name: string

                                              The object's name (Object_Name property)

                                              +
                                              presentValue?: number
                                              unit: EngineeringUnits
                                              writable?: boolean
                                              writableOutOfService?: boolean

                                              Whether the Out_Of_Service property is writable from the BACnet network.

                                              +

                                              When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                              +

                                              false

                                              +
                                              diff --git a/docs/interfaces/BDAnalogOutputOpts.html b/docs/interfaces/BDAnalogOutputOpts.html index 229d1dd..ecebeae 100644 --- a/docs/interfaces/BDAnalogOutputOpts.html +++ b/docs/interfaces/BDAnalogOutputOpts.html @@ -1,4 +1,4 @@ -BDAnalogOutputOpts | @bacnet-js/device
                                              @bacnet-js/device
                                                Preparing search index...

                                                Interface BDAnalogOutputOpts

                                                interface BDAnalogOutputOpts {
                                                    covIncrement?: number;
                                                    description?: string;
                                                    maxPresentValue?: number;
                                                    minPresentValue?: number;
                                                    name: string;
                                                    presentValue?: number;
                                                    unit: EngineeringUnits;
                                                    writable?: boolean;
                                                }

                                                Hierarchy (View Summary)

                                                Index

                                                Properties

                                                covIncrement? +BDAnalogOutputOpts | @bacnet-js/device
                                                @bacnet-js/device
                                                  Preparing search index...

                                                  Interface BDAnalogOutputOpts

                                                  interface BDAnalogOutputOpts {
                                                      covIncrement?: number;
                                                      description?: string;
                                                      maxPresentValue?: number;
                                                      minPresentValue?: number;
                                                      name: string;
                                                      presentValue?: number;
                                                      unit: EngineeringUnits;
                                                      writable?: boolean;
                                                      writableOutOfService?: boolean;
                                                  }

                                                  Hierarchy (View Summary)

                                                  Index

                                                  Properties

                                                  covIncrement?: number
                                                  description?: string
                                                  maxPresentValue?: number
                                                  minPresentValue?: number
                                                  name: string
                                                  presentValue?: number
                                                  unit: EngineeringUnits
                                                  writable?: boolean
                                                  +writableOutOfService? +

                                                  Properties

                                                  covIncrement?: number
                                                  description?: string

                                                  An optional textual description of the object (Description property)

                                                  +
                                                  maxPresentValue?: number
                                                  minPresentValue?: number
                                                  name: string

                                                  The object's name (Object_Name property)

                                                  +
                                                  presentValue?: number
                                                  unit: EngineeringUnits
                                                  writable?: boolean
                                                  writableOutOfService?: boolean

                                                  Whether the Out_Of_Service property is writable from the BACnet network.

                                                  +

                                                  When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                  +

                                                  false

                                                  +
                                                  diff --git a/docs/interfaces/BDAnalogValueOpts.html b/docs/interfaces/BDAnalogValueOpts.html index 6d06b80..2c92691 100644 --- a/docs/interfaces/BDAnalogValueOpts.html +++ b/docs/interfaces/BDAnalogValueOpts.html @@ -1,4 +1,4 @@ -BDAnalogValueOpts | @bacnet-js/device
                                                  @bacnet-js/device
                                                    Preparing search index...

                                                    Interface BDAnalogValueOpts

                                                    interface BDAnalogValueOpts {
                                                        covIncrement?: number;
                                                        description?: string;
                                                        maxPresentValue?: number;
                                                        minPresentValue?: number;
                                                        name: string;
                                                        presentValue?: number;
                                                        unit: EngineeringUnits;
                                                        writable?: boolean;
                                                    }

                                                    Hierarchy (View Summary)

                                                    Index

                                                    Properties

                                                    covIncrement? +BDAnalogValueOpts | @bacnet-js/device
                                                    @bacnet-js/device
                                                      Preparing search index...

                                                      Interface BDAnalogValueOpts

                                                      interface BDAnalogValueOpts {
                                                          covIncrement?: number;
                                                          description?: string;
                                                          maxPresentValue?: number;
                                                          minPresentValue?: number;
                                                          name: string;
                                                          presentValue?: number;
                                                          unit: EngineeringUnits;
                                                          writable?: boolean;
                                                          writableOutOfService?: boolean;
                                                      }

                                                      Hierarchy (View Summary)

                                                      Index

                                                      Properties

                                                      covIncrement?: number
                                                      description?: string
                                                      maxPresentValue?: number
                                                      minPresentValue?: number
                                                      name: string
                                                      presentValue?: number
                                                      unit: EngineeringUnits
                                                      writable?: boolean
                                                      +writableOutOfService? +

                                                      Properties

                                                      covIncrement?: number
                                                      description?: string

                                                      An optional textual description of the object (Description property)

                                                      +
                                                      maxPresentValue?: number
                                                      minPresentValue?: number
                                                      name: string

                                                      The object's name (Object_Name property)

                                                      +
                                                      presentValue?: number
                                                      unit: EngineeringUnits
                                                      writable?: boolean
                                                      writableOutOfService?: boolean

                                                      Whether the Out_Of_Service property is writable from the BACnet network.

                                                      +

                                                      When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                      +

                                                      false

                                                      +
                                                      diff --git a/docs/interfaces/BDBinaryValueOpts.html b/docs/interfaces/BDBinaryValueOpts.html index a3420ad..49d12aa 100644 --- a/docs/interfaces/BDBinaryValueOpts.html +++ b/docs/interfaces/BDBinaryValueOpts.html @@ -1,5 +1,19 @@ -BDBinaryValueOpts | @bacnet-js/device
                                                      @bacnet-js/device
                                                        Preparing search index...

                                                        Interface BDBinaryValueOpts

                                                        interface BDBinaryValueOpts {
                                                            description?: string;
                                                            name: string;
                                                            presentValue?: BinaryPV;
                                                            writable: boolean;
                                                        }
                                                        Index

                                                        Properties

                                                        description? +BDBinaryValueOpts | @bacnet-js/device
                                                        @bacnet-js/device
                                                          Preparing search index...

                                                          Interface BDBinaryValueOpts

                                                          Common options for all BACnet objects

                                                          +

                                                          This interface defines the base configuration parameters shared by every +BACnet object type. Subclass-specific option interfaces extend this +interface with additional properties.

                                                          +
                                                          interface BDBinaryValueOpts {
                                                              description?: string;
                                                              name: string;
                                                              presentValue?: BinaryPV;
                                                              writable: boolean;
                                                              writableOutOfService?: boolean;
                                                          }

                                                          Hierarchy (View Summary)

                                                          Index

                                                          Properties

                                                          description?: string
                                                          name: string
                                                          presentValue?: BinaryPV
                                                          writable: boolean
                                                          +writableOutOfService? +

                                                          Properties

                                                          description?: string

                                                          An optional textual description of the object (Description property)

                                                          +
                                                          name: string

                                                          The object's name (Object_Name property)

                                                          +
                                                          presentValue?: BinaryPV
                                                          writable: boolean
                                                          writableOutOfService?: boolean

                                                          Whether the Out_Of_Service property is writable from the BACnet network.

                                                          +

                                                          When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                          +

                                                          false

                                                          +
                                                          diff --git a/docs/interfaces/BDCharacterStringValueOpts.html b/docs/interfaces/BDCharacterStringValueOpts.html index f0b894d..009080a 100644 --- a/docs/interfaces/BDCharacterStringValueOpts.html +++ b/docs/interfaces/BDCharacterStringValueOpts.html @@ -1,5 +1,19 @@ -BDCharacterStringValueOpts | @bacnet-js/device
                                                          @bacnet-js/device
                                                            Preparing search index...

                                                            Interface BDCharacterStringValueOpts

                                                            interface BDCharacterStringValueOpts {
                                                                description?: string;
                                                                name: string;
                                                                presentValue?: string;
                                                                writable?: boolean;
                                                            }
                                                            Index

                                                            Properties

                                                            description? +BDCharacterStringValueOpts | @bacnet-js/device
                                                            @bacnet-js/device
                                                              Preparing search index...

                                                              Interface BDCharacterStringValueOpts

                                                              Common options for all BACnet objects

                                                              +

                                                              This interface defines the base configuration parameters shared by every +BACnet object type. Subclass-specific option interfaces extend this +interface with additional properties.

                                                              +
                                                              interface BDCharacterStringValueOpts {
                                                                  description?: string;
                                                                  name: string;
                                                                  presentValue?: string;
                                                                  writable?: boolean;
                                                                  writableOutOfService?: boolean;
                                                              }

                                                              Hierarchy (View Summary)

                                                              Index

                                                              Properties

                                                              description?: string
                                                              name: string
                                                              presentValue?: string
                                                              writable?: boolean
                                                              +writableOutOfService? +

                                                              Properties

                                                              description?: string

                                                              An optional textual description of the object (Description property)

                                                              +
                                                              name: string

                                                              The object's name (Object_Name property)

                                                              +
                                                              presentValue?: string
                                                              writable?: boolean
                                                              writableOutOfService?: boolean

                                                              Whether the Out_Of_Service property is writable from the BACnet network.

                                                              +

                                                              When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                              +

                                                              false

                                                              +
                                                              diff --git a/docs/interfaces/BDDateTimeValueOpts.html b/docs/interfaces/BDDateTimeValueOpts.html index 9aa8dd0..179ebc3 100644 --- a/docs/interfaces/BDDateTimeValueOpts.html +++ b/docs/interfaces/BDDateTimeValueOpts.html @@ -1,5 +1,19 @@ -BDDateTimeValueOpts | @bacnet-js/device
                                                              @bacnet-js/device
                                                                Preparing search index...

                                                                Interface BDDateTimeValueOpts

                                                                interface BDDateTimeValueOpts {
                                                                    description?: string;
                                                                    name: string;
                                                                    presentValue?: Date;
                                                                    writable?: boolean;
                                                                }
                                                                Index

                                                                Properties

                                                                description? +BDDateTimeValueOpts | @bacnet-js/device
                                                                @bacnet-js/device
                                                                  Preparing search index...

                                                                  Interface BDDateTimeValueOpts

                                                                  Common options for all BACnet objects

                                                                  +

                                                                  This interface defines the base configuration parameters shared by every +BACnet object type. Subclass-specific option interfaces extend this +interface with additional properties.

                                                                  +
                                                                  interface BDDateTimeValueOpts {
                                                                      description?: string;
                                                                      name: string;
                                                                      presentValue?: Date;
                                                                      writable?: boolean;
                                                                      writableOutOfService?: boolean;
                                                                  }

                                                                  Hierarchy (View Summary)

                                                                  Index

                                                                  Properties

                                                                  description?: string
                                                                  name: string
                                                                  presentValue?: Date
                                                                  writable?: boolean
                                                                  +writableOutOfService? +

                                                                  Properties

                                                                  description?: string

                                                                  An optional textual description of the object (Description property)

                                                                  +
                                                                  name: string

                                                                  The object's name (Object_Name property)

                                                                  +
                                                                  presentValue?: Date
                                                                  writable?: boolean
                                                                  writableOutOfService?: boolean

                                                                  Whether the Out_Of_Service property is writable from the BACnet network.

                                                                  +

                                                                  When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                                  +

                                                                  false

                                                                  +
                                                                  diff --git a/docs/interfaces/BDDateValueOpts.html b/docs/interfaces/BDDateValueOpts.html index 7dc16bd..69836bb 100644 --- a/docs/interfaces/BDDateValueOpts.html +++ b/docs/interfaces/BDDateValueOpts.html @@ -1,5 +1,19 @@ -BDDateValueOpts | @bacnet-js/device
                                                                  @bacnet-js/device
                                                                    Preparing search index...

                                                                    Interface BDDateValueOpts

                                                                    interface BDDateValueOpts {
                                                                        description?: string;
                                                                        name: string;
                                                                        presentValue?: Date;
                                                                        writable?: boolean;
                                                                    }
                                                                    Index

                                                                    Properties

                                                                    description? +BDDateValueOpts | @bacnet-js/device
                                                                    @bacnet-js/device
                                                                      Preparing search index...

                                                                      Interface BDDateValueOpts

                                                                      Common options for all BACnet objects

                                                                      +

                                                                      This interface defines the base configuration parameters shared by every +BACnet object type. Subclass-specific option interfaces extend this +interface with additional properties.

                                                                      +
                                                                      interface BDDateValueOpts {
                                                                          description?: string;
                                                                          name: string;
                                                                          presentValue?: Date;
                                                                          writable?: boolean;
                                                                          writableOutOfService?: boolean;
                                                                      }

                                                                      Hierarchy (View Summary)

                                                                      Index

                                                                      Properties

                                                                      description?: string
                                                                      name: string
                                                                      presentValue?: Date
                                                                      writable?: boolean
                                                                      +writableOutOfService? +

                                                                      Properties

                                                                      description?: string

                                                                      An optional textual description of the object (Description property)

                                                                      +
                                                                      name: string

                                                                      The object's name (Object_Name property)

                                                                      +
                                                                      presentValue?: Date
                                                                      writable?: boolean
                                                                      writableOutOfService?: boolean

                                                                      Whether the Out_Of_Service property is writable from the BACnet network.

                                                                      +

                                                                      When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                                      +

                                                                      false

                                                                      +
                                                                      diff --git a/docs/interfaces/BDDeviceEvents.html b/docs/interfaces/BDDeviceEvents.html index 3b59261..0f5f799 100644 --- a/docs/interfaces/BDDeviceEvents.html +++ b/docs/interfaces/BDDeviceEvents.html @@ -1,8 +1,12 @@ BDDeviceEvents | @bacnet-js/device
                                                                      @bacnet-js/device
                                                                        Preparing search index...

                                                                        Interface BDDeviceEvents

                                                                        Events that can be emitted by a BACnet node

                                                                        -
                                                                        interface BDDeviceEvents {
                                                                            aftercov: [
                                                                                data: | BACNetAppData<ApplicationTag, any>
                                                                                | BACNetAppData<ApplicationTag, any>[],
                                                                                property: BDAbstractProperty<any, any, any>,
                                                                                object: BDObject,
                                                                            ];
                                                                            error: [err: Error];
                                                                            listening: [];
                                                                            [key: string]: any[];
                                                                        }

                                                                        Hierarchy (View Summary)

                                                                        Indexable

                                                                        • [key: string]: any[]
                                                                        Index

                                                                        Properties

                                                                        interface BDDeviceEvents {
                                                                            aftercov: [
                                                                                data: | BACNetAppData<ApplicationTag, any>
                                                                                | BACNetAppData<ApplicationTag, any>[],
                                                                                property: BDAbstractProperty<any, any, any>,
                                                                                object: BDObject,
                                                                            ];
                                                                            error: [err: Error];
                                                                            inservice: [];
                                                                            listening: [];
                                                                            outofservice: [];
                                                                            [key: string]: any[];
                                                                        }

                                                                        Hierarchy (View Summary)

                                                                        Indexable

                                                                        • [key: string]: any[]
                                                                        Index

                                                                        Properties

                                                                        aftercov: [
                                                                            data: | BACNetAppData<ApplicationTag, any>
                                                                            | BACNetAppData<ApplicationTag, any>[],
                                                                            property: BDAbstractProperty<any, any, any>,
                                                                            object: BDObject,
                                                                        ]

                                                                        Emitted after a property value has changed

                                                                        -
                                                                        error: [err: Error]

                                                                        Emitted when an error occurs in the BACnet node

                                                                        -
                                                                        listening: []

                                                                        Emitted when the BACnet node starts listening on the network

                                                                        -
                                                                        +
                                                                        error: [err: Error]

                                                                        Emitted when an error occurs in the BACnet node

                                                                        +
                                                                        inservice: []

                                                                        Emitted when the object's Out_Of_Service property is set to false, either from the network or locally

                                                                        +
                                                                        listening: []

                                                                        Emitted when the BACnet node starts listening on the network

                                                                        +
                                                                        outofservice: []

                                                                        Emitted when the object's Out_Of_Service property is set to true, either from the network or locally

                                                                        +
                                                                        diff --git a/docs/interfaces/BDDeviceOpts.html b/docs/interfaces/BDDeviceOpts.html index 71d884d..9dc5556 100644 --- a/docs/interfaces/BDDeviceOpts.html +++ b/docs/interfaces/BDDeviceOpts.html @@ -1,7 +1,7 @@ BDDeviceOpts | @bacnet-js/device
                                                                        @bacnet-js/device
                                                                          Preparing search index...

                                                                          Interface BDDeviceOpts

                                                                          Configuration options for creating a BACnet Device object

                                                                          This interface defines the parameters required to initialize a BACnet Device, including identification, vendor information, and protocol configuration.

                                                                          -
                                                                          interface BDDeviceOpts {
                                                                              apduMaxLength?: number;
                                                                              apduRetries?: number;
                                                                              apduSegmentTimeout?: number;
                                                                              apduTimeout?: number;
                                                                              applicationSoftwareVersion?: string;
                                                                              broadcastAddress?: string;
                                                                              databaseRevision?: number;
                                                                              description?: string;
                                                                              firmwareRevision?: string;
                                                                              interface?: string;
                                                                              location?: string;
                                                                              modelName?: string;
                                                                              name: string;
                                                                              port?: number;
                                                                              reuseAddr?: boolean;
                                                                              serialNumber?: string;
                                                                              transport?: any;
                                                                              vendorId?: number;
                                                                              vendorName?: string;
                                                                          }

                                                                          Hierarchy

                                                                          • ClientOptions
                                                                            • BDDeviceOpts
                                                                          Index

                                                                          Properties

                                                                          interface BDDeviceOpts {
                                                                              apduMaxLength?: number;
                                                                              apduRetries?: number;
                                                                              apduSegmentTimeout?: number;
                                                                              apduTimeout?: number;
                                                                              applicationSoftwareVersion?: string;
                                                                              broadcastAddress?: string;
                                                                              databaseRevision?: number;
                                                                              description?: string;
                                                                              firmwareRevision?: string;
                                                                              interface?: string;
                                                                              location?: string;
                                                                              modelName?: string;
                                                                              name: string;
                                                                              port?: number;
                                                                              reuseAddr?: boolean;
                                                                              serialNumber?: string;
                                                                              transport?: any;
                                                                              vendorId?: number;
                                                                              vendorName?: string;
                                                                              writableOutOfService?: boolean;
                                                                          }

                                                                          Hierarchy (View Summary)

                                                                          Index

                                                                          Properties

                                                                          apduMaxLength?: number

                                                                          Maximum APDU length this device can accept

                                                                          -
                                                                          apduRetries?: number

                                                                          Number of APDU retries

                                                                          -
                                                                          apduSegmentTimeout?: number
                                                                          apduTimeout?: number

                                                                          APDU timeout in milliseconds

                                                                          -
                                                                          applicationSoftwareVersion?: string

                                                                          The device's application software version

                                                                          -
                                                                          broadcastAddress?: string
                                                                          databaseRevision?: number

                                                                          Current database revision number

                                                                          -
                                                                          description?: string

                                                                          The device's description (Description property)

                                                                          -
                                                                          firmwareRevision?: string

                                                                          The device's firmware revision string

                                                                          -
                                                                          interface?: string
                                                                          location?: string

                                                                          General description of the device's physical location +

                                                                          apduRetries?: number

                                                                          Number of APDU retries

                                                                          +
                                                                          apduSegmentTimeout?: number
                                                                          apduTimeout?: number

                                                                          APDU timeout in milliseconds

                                                                          +
                                                                          applicationSoftwareVersion?: string

                                                                          The device's application software version

                                                                          +
                                                                          broadcastAddress?: string
                                                                          databaseRevision?: number

                                                                          Current database revision number

                                                                          +
                                                                          description?: string

                                                                          The device's description (Description property)

                                                                          +
                                                                          firmwareRevision?: string

                                                                          The device's firmware revision string

                                                                          +
                                                                          interface?: string
                                                                          location?: string

                                                                          General description of the device's physical location e.g. "Room 101, Building A, Campus X"

                                                                          -
                                                                          modelName?: string

                                                                          The device's model name

                                                                          -
                                                                          name: string

                                                                          The device's name (Object_Name property)

                                                                          -
                                                                          port?: number
                                                                          reuseAddr?: boolean
                                                                          serialNumber?: string

                                                                          Serial number of the device +

                                                                          modelName?: string

                                                                          The device's model name

                                                                          +
                                                                          name: string

                                                                          The device's name (Object_Name property)

                                                                          +
                                                                          port?: number
                                                                          reuseAddr?: boolean
                                                                          serialNumber?: string

                                                                          Serial number of the device e.g. "SN-12345-6789"

                                                                          -
                                                                          transport?: any
                                                                          vendorId?: number

                                                                          Vendor identifier assigned by ASHRAE

                                                                          +
                                                                          transport?: any
                                                                          vendorId?: number

                                                                          Vendor identifier assigned by ASHRAE

                                                                          vendorName?: string

                                                                          The name of the device's vendor

                                                                          -
                                                                          +
                                                                          vendorName?: string

                                                                          The name of the device's vendor

                                                                          +
                                                                          writableOutOfService?: boolean

                                                                          Whether the Out_Of_Service property is writable from the BACnet network.

                                                                          +

                                                                          When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                                          +

                                                                          false

                                                                          +
                                                                          diff --git a/docs/interfaces/BDIntegerValueOpts.html b/docs/interfaces/BDIntegerValueOpts.html index f63d567..c6c38e8 100644 --- a/docs/interfaces/BDIntegerValueOpts.html +++ b/docs/interfaces/BDIntegerValueOpts.html @@ -1,4 +1,4 @@ -BDIntegerValueOpts | @bacnet-js/device
                                                                          @bacnet-js/device
                                                                            Preparing search index...

                                                                            Interface BDIntegerValueOpts

                                                                            interface BDIntegerValueOpts {
                                                                                covIncrement?: number;
                                                                                description?: string;
                                                                                maxPresentValue?: number;
                                                                                minPresentValue?: number;
                                                                                name: string;
                                                                                presentValue?: number;
                                                                                unit: EngineeringUnits;
                                                                                writable?: boolean;
                                                                            }

                                                                            Hierarchy

                                                                            • Omit<BDNumericValueOpts, "maxPresentValue" | "minPresentValue" | "presentValue">
                                                                              • BDIntegerValueOpts
                                                                            Index

                                                                            Properties

                                                                            covIncrement? +BDIntegerValueOpts | @bacnet-js/device
                                                                            @bacnet-js/device
                                                                              Preparing search index...

                                                                              Interface BDIntegerValueOpts

                                                                              interface BDIntegerValueOpts {
                                                                                  covIncrement?: number;
                                                                                  description?: string;
                                                                                  maxPresentValue?: number;
                                                                                  minPresentValue?: number;
                                                                                  name: string;
                                                                                  presentValue?: number;
                                                                                  unit: EngineeringUnits;
                                                                                  writable?: boolean;
                                                                                  writableOutOfService?: boolean;
                                                                              }

                                                                              Hierarchy

                                                                              • Omit<BDNumericValueOpts, "maxPresentValue" | "minPresentValue" | "presentValue">
                                                                                • BDIntegerValueOpts
                                                                              Index

                                                                              Properties

                                                                              covIncrement?: number
                                                                              description?: string
                                                                              maxPresentValue?: number
                                                                              minPresentValue?: number
                                                                              name: string
                                                                              presentValue?: number
                                                                              unit: EngineeringUnits
                                                                              writable?: boolean
                                                                              +writableOutOfService? +

                                                                              Properties

                                                                              covIncrement?: number
                                                                              description?: string

                                                                              An optional textual description of the object (Description property)

                                                                              +
                                                                              maxPresentValue?: number
                                                                              minPresentValue?: number
                                                                              name: string

                                                                              The object's name (Object_Name property)

                                                                              +
                                                                              presentValue?: number
                                                                              unit: EngineeringUnits
                                                                              writable?: boolean
                                                                              writableOutOfService?: boolean

                                                                              Whether the Out_Of_Service property is writable from the BACnet network.

                                                                              +

                                                                              When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                                              +

                                                                              false

                                                                              +
                                                                              diff --git a/docs/interfaces/BDMultiStateValueOpts.html b/docs/interfaces/BDMultiStateValueOpts.html index 58c1d5f..0848a4f 100644 --- a/docs/interfaces/BDMultiStateValueOpts.html +++ b/docs/interfaces/BDMultiStateValueOpts.html @@ -1,6 +1,20 @@ -BDMultiStateValueOpts | @bacnet-js/device
                                                                              @bacnet-js/device
                                                                                Preparing search index...

                                                                                Interface BDMultiStateValueOpts

                                                                                interface BDMultiStateValueOpts {
                                                                                    description?: string;
                                                                                    name: string;
                                                                                    presentValue?: number;
                                                                                    states: [first: string, ...rest: string[]];
                                                                                    writable?: boolean;
                                                                                }
                                                                                Index

                                                                                Properties

                                                                                description? +BDMultiStateValueOpts | @bacnet-js/device
                                                                                @bacnet-js/device
                                                                                  Preparing search index...

                                                                                  Interface BDMultiStateValueOpts

                                                                                  Common options for all BACnet objects

                                                                                  +

                                                                                  This interface defines the base configuration parameters shared by every +BACnet object type. Subclass-specific option interfaces extend this +interface with additional properties.

                                                                                  +
                                                                                  interface BDMultiStateValueOpts {
                                                                                      description?: string;
                                                                                      name: string;
                                                                                      presentValue?: number;
                                                                                      states: [first: string, ...rest: string[]];
                                                                                      writable?: boolean;
                                                                                      writableOutOfService?: boolean;
                                                                                  }

                                                                                  Hierarchy (View Summary)

                                                                                  Index

                                                                                  Properties

                                                                                  description?: string
                                                                                  name: string
                                                                                  presentValue?: number
                                                                                  states: [first: string, ...rest: string[]]
                                                                                  writable?: boolean
                                                                                  +writableOutOfService? +

                                                                                  Properties

                                                                                  description?: string

                                                                                  An optional textual description of the object (Description property)

                                                                                  +
                                                                                  name: string

                                                                                  The object's name (Object_Name property)

                                                                                  +
                                                                                  presentValue?: number
                                                                                  states: [first: string, ...rest: string[]]
                                                                                  writable?: boolean
                                                                                  writableOutOfService?: boolean

                                                                                  Whether the Out_Of_Service property is writable from the BACnet network.

                                                                                  +

                                                                                  When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                                                  +

                                                                                  false

                                                                                  +
                                                                                  diff --git a/docs/interfaces/BDObjectEvents.html b/docs/interfaces/BDObjectEvents.html index 68a2af5..b77eeb8 100644 --- a/docs/interfaces/BDObjectEvents.html +++ b/docs/interfaces/BDObjectEvents.html @@ -1,4 +1,8 @@ BDObjectEvents | @bacnet-js/device
                                                                                  @bacnet-js/device
                                                                                    Preparing search index...

                                                                                    Interface BDObjectEvents

                                                                                    Events that can be emitted by a BACnet object

                                                                                    -
                                                                                    interface BDObjectEvents {
                                                                                        aftercov: [
                                                                                            data: | BACNetAppData<ApplicationTag, any>
                                                                                            | BACNetAppData<ApplicationTag, any>[],
                                                                                            property: BDAbstractProperty<any, any, any>,
                                                                                            object: BDObject,
                                                                                        ];
                                                                                        [key: string]: any[];
                                                                                    }

                                                                                    Hierarchy (View Summary)

                                                                                    Indexable

                                                                                    • [key: string]: any[]
                                                                                    Index

                                                                                    Properties

                                                                                    interface BDObjectEvents {
                                                                                        aftercov: [
                                                                                            data: | BACNetAppData<ApplicationTag, any>
                                                                                            | BACNetAppData<ApplicationTag, any>[],
                                                                                            property: BDAbstractProperty<any, any, any>,
                                                                                            object: BDObject,
                                                                                        ];
                                                                                        inservice: [];
                                                                                        outofservice: [];
                                                                                        [key: string]: any[];
                                                                                    }

                                                                                    Hierarchy (View Summary)

                                                                                    Indexable

                                                                                    • [key: string]: any[]
                                                                                    Index

                                                                                    Properties

                                                                                    aftercov: [
                                                                                        data: | BACNetAppData<ApplicationTag, any>
                                                                                        | BACNetAppData<ApplicationTag, any>[],
                                                                                        property: BDAbstractProperty<any, any, any>,
                                                                                        object: BDObject,
                                                                                    ]

                                                                                    Emitted after a property value has changed

                                                                                    -
                                                                                    +
                                                                                    inservice: []

                                                                                    Emitted when the object's Out_Of_Service property is set to false, either from the network or locally

                                                                                    +
                                                                                    outofservice: []

                                                                                    Emitted when the object's Out_Of_Service property is set to true, either from the network or locally

                                                                                    +
                                                                                    diff --git a/docs/interfaces/BDObjectOpts.html b/docs/interfaces/BDObjectOpts.html new file mode 100644 index 0000000..91464e2 --- /dev/null +++ b/docs/interfaces/BDObjectOpts.html @@ -0,0 +1,17 @@ +BDObjectOpts | @bacnet-js/device
                                                                                    @bacnet-js/device
                                                                                      Preparing search index...

                                                                                      Interface BDObjectOpts

                                                                                      Common options for all BACnet objects

                                                                                      +

                                                                                      This interface defines the base configuration parameters shared by every +BACnet object type. Subclass-specific option interfaces extend this +interface with additional properties.

                                                                                      +
                                                                                      interface BDObjectOpts {
                                                                                          description?: string;
                                                                                          name: string;
                                                                                          writableOutOfService?: boolean;
                                                                                      }

                                                                                      Hierarchy (View Summary)

                                                                                      Index

                                                                                      Properties

                                                                                      description?: string

                                                                                      An optional textual description of the object (Description property)

                                                                                      +
                                                                                      name: string

                                                                                      The object's name (Object_Name property)

                                                                                      +
                                                                                      writableOutOfService?: boolean

                                                                                      Whether the Out_Of_Service property is writable from the BACnet network.

                                                                                      +

                                                                                      When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                                                      +

                                                                                      false

                                                                                      +
                                                                                      diff --git a/docs/interfaces/BDPositiveIntegerValueOpts.html b/docs/interfaces/BDPositiveIntegerValueOpts.html index e1622e9..82bcf4b 100644 --- a/docs/interfaces/BDPositiveIntegerValueOpts.html +++ b/docs/interfaces/BDPositiveIntegerValueOpts.html @@ -1,4 +1,4 @@ -BDPositiveIntegerValueOpts | @bacnet-js/device
                                                                                      @bacnet-js/device
                                                                                        Preparing search index...

                                                                                        Interface BDPositiveIntegerValueOpts

                                                                                        interface BDPositiveIntegerValueOpts {
                                                                                            covIncrement?: number;
                                                                                            description?: string;
                                                                                            maxPresentValue?: number;
                                                                                            minPresentValue?: number;
                                                                                            name: string;
                                                                                            presentValue?: number;
                                                                                            unit: EngineeringUnits;
                                                                                            writable?: boolean;
                                                                                        }

                                                                                        Hierarchy

                                                                                        • Omit<BDNumericValueOpts, "maxPresentValue" | "minPresentValue" | "presentValue">
                                                                                          • BDPositiveIntegerValueOpts
                                                                                        Index

                                                                                        Properties

                                                                                        covIncrement? +BDPositiveIntegerValueOpts | @bacnet-js/device
                                                                                        @bacnet-js/device
                                                                                          Preparing search index...

                                                                                          Interface BDPositiveIntegerValueOpts

                                                                                          interface BDPositiveIntegerValueOpts {
                                                                                              covIncrement?: number;
                                                                                              description?: string;
                                                                                              maxPresentValue?: number;
                                                                                              minPresentValue?: number;
                                                                                              name: string;
                                                                                              presentValue?: number;
                                                                                              unit: EngineeringUnits;
                                                                                              writable?: boolean;
                                                                                              writableOutOfService?: boolean;
                                                                                          }

                                                                                          Hierarchy

                                                                                          • Omit<BDNumericValueOpts, "maxPresentValue" | "minPresentValue" | "presentValue">
                                                                                            • BDPositiveIntegerValueOpts
                                                                                          Index

                                                                                          Properties

                                                                                          covIncrement?: number
                                                                                          description?: string
                                                                                          maxPresentValue?: number
                                                                                          minPresentValue?: number
                                                                                          name: string
                                                                                          presentValue?: number
                                                                                          unit: EngineeringUnits
                                                                                          writable?: boolean
                                                                                          +writableOutOfService? +

                                                                                          Properties

                                                                                          covIncrement?: number
                                                                                          description?: string

                                                                                          An optional textual description of the object (Description property)

                                                                                          +
                                                                                          maxPresentValue?: number
                                                                                          minPresentValue?: number
                                                                                          name: string

                                                                                          The object's name (Object_Name property)

                                                                                          +
                                                                                          presentValue?: number
                                                                                          unit: EngineeringUnits
                                                                                          writable?: boolean
                                                                                          writableOutOfService?: boolean

                                                                                          Whether the Out_Of_Service property is writable from the BACnet network.

                                                                                          +

                                                                                          When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                                                          +

                                                                                          false

                                                                                          +
                                                                                          diff --git a/docs/interfaces/BDPropertyAccessContext.html b/docs/interfaces/BDPropertyAccessContext.html index 35a3a7d..983f75b 100644 --- a/docs/interfaces/BDPropertyAccessContext.html +++ b/docs/interfaces/BDPropertyAccessContext.html @@ -1,5 +1,5 @@ BDPropertyAccessContext | @bacnet-js/device
                                                                                          @bacnet-js/device
                                                                                            Preparing search index...

                                                                                            Interface BDPropertyAccessContext

                                                                                            Dictionary of items available while accessing a property's data, usually via a context or ctx argument.

                                                                                            -
                                                                                            interface BDPropertyAccessContext {
                                                                                                date: Date;
                                                                                            }
                                                                                            Index

                                                                                            Properties

                                                                                            interface BDPropertyAccessContext {
                                                                                                date: Date;
                                                                                            }
                                                                                            Index

                                                                                            Properties

                                                                                            Properties

                                                                                            date: Date

                                                                                            The date and time at which the property is being accessed.

                                                                                            -
                                                                                            +
                                                                                            diff --git a/docs/interfaces/BDPropertyEvents.html b/docs/interfaces/BDPropertyEvents.html index c35306d..9c4044a 100644 --- a/docs/interfaces/BDPropertyEvents.html +++ b/docs/interfaces/BDPropertyEvents.html @@ -1,10 +1,10 @@ BDPropertyEvents | @bacnet-js/device
                                                                                            @bacnet-js/device
                                                                                              Preparing search index...

                                                                                              Interface BDPropertyEvents<Tag, Type, Data>

                                                                                              Maps the names of property events to the respective arrays of arguments. Used to strongly type calls to AsyncEventEmitter.prototype.on().

                                                                                              interface BDPropertyEvents<
                                                                                                  Tag extends ApplicationTag,
                                                                                                  Type extends ApplicationTagValueTypeMap[Tag],
                                                                                                  Data extends BACNetAppData<Tag, Type> | BACNetAppData<Tag, Type>[],
                                                                                              > {
                                                                                                  aftercov: [raw: Data, property: BDAbstractProperty<Tag, Type, Data>];
                                                                                                  beforecov: [raw: Data, property: BDAbstractProperty<Tag, Type, Data>];
                                                                                                  [key: string]: any[];
                                                                                              }

                                                                                              Type Parameters

                                                                                              • Tag extends ApplicationTag
                                                                                              • Type extends ApplicationTagValueTypeMap[Tag]
                                                                                              • Data extends BACNetAppData<Tag, Type> | BACNetAppData<Tag, Type>[]

                                                                                              Hierarchy (View Summary)

                                                                                              Indexable

                                                                                              • [key: string]: any[]
                                                                                              Index

                                                                                              Properties

                                                                                              interface BDPropertyEvents<
                                                                                                  Tag extends ApplicationTag,
                                                                                                  Type extends ApplicationTagValueTypeMap[Tag],
                                                                                                  Data extends BACNetAppData<Tag, Type> | BACNetAppData<Tag, Type>[],
                                                                                              > {
                                                                                                  aftercov: [raw: Data, property: BDAbstractProperty<Tag, Type, Data>];
                                                                                                  beforecov: [raw: Data, property: BDAbstractProperty<Tag, Type, Data>];
                                                                                                  [key: string]: any[];
                                                                                              }

                                                                                              Type Parameters

                                                                                              • Tag extends ApplicationTag
                                                                                              • Type extends ApplicationTagValueTypeMap[Tag]
                                                                                              • Data extends BACNetAppData<Tag, Type> | BACNetAppData<Tag, Type>[]

                                                                                              Hierarchy (View Summary)

                                                                                              Indexable

                                                                                              • [key: string]: any[]
                                                                                              Index

                                                                                              Properties

                                                                                              Properties

                                                                                              aftercov: [raw: Data, property: BDAbstractProperty<Tag, Type, Data>]

                                                                                              Emitted after a property value has changed. Errors throws by listeners will be ignored.

                                                                                              -
                                                                                              beforecov: [raw: Data, property: BDAbstractProperty<Tag, Type, Data>]

                                                                                              Emitted before a property value changes. Listeners can throw in order to +

                                                                                              beforecov: [raw: Data, property: BDAbstractProperty<Tag, Type, Data>]

                                                                                              Emitted before a property value changes. Listeners can throw in order to block the change from going through (useful for additional validation).

                                                                                              -
                                                                                              +
                                                                                              diff --git a/docs/interfaces/BDStructuredViewOpts.html b/docs/interfaces/BDStructuredViewOpts.html index 8df6baa..6cd6c31 100644 --- a/docs/interfaces/BDStructuredViewOpts.html +++ b/docs/interfaces/BDStructuredViewOpts.html @@ -1,4 +1,18 @@ -BDStructuredViewOpts | @bacnet-js/device
                                                                                              @bacnet-js/device
                                                                                                Preparing search index...

                                                                                                Interface BDStructuredViewOpts

                                                                                                interface BDStructuredViewOpts {
                                                                                                    description?: string;
                                                                                                    name: string;
                                                                                                    nodeType?: NodeType;
                                                                                                }
                                                                                                Index

                                                                                                Properties

                                                                                                description? +BDStructuredViewOpts | @bacnet-js/device
                                                                                                @bacnet-js/device
                                                                                                  Preparing search index...

                                                                                                  Interface BDStructuredViewOpts

                                                                                                  Common options for all BACnet objects

                                                                                                  +

                                                                                                  This interface defines the base configuration parameters shared by every +BACnet object type. Subclass-specific option interfaces extend this +interface with additional properties.

                                                                                                  +
                                                                                                  interface BDStructuredViewOpts {
                                                                                                      description?: string;
                                                                                                      name: string;
                                                                                                      nodeType?: NodeType;
                                                                                                      writableOutOfService?: boolean;
                                                                                                  }

                                                                                                  Hierarchy (View Summary)

                                                                                                  Index

                                                                                                  Properties

                                                                                                  description?: string
                                                                                                  name: string
                                                                                                  nodeType?: NodeType
                                                                                                  +writableOutOfService? +

                                                                                                  Properties

                                                                                                  description?: string

                                                                                                  An optional textual description of the object (Description property)

                                                                                                  +
                                                                                                  name: string

                                                                                                  The object's name (Object_Name property)

                                                                                                  +
                                                                                                  nodeType?: NodeType
                                                                                                  writableOutOfService?: boolean

                                                                                                  Whether the Out_Of_Service property is writable from the BACnet network.

                                                                                                  +

                                                                                                  When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                                                                  +

                                                                                                  false

                                                                                                  +
                                                                                                  diff --git a/docs/interfaces/BDSubscription.html b/docs/interfaces/BDSubscription.html index ec9f152..4e0051a 100644 --- a/docs/interfaces/BDSubscription.html +++ b/docs/interfaces/BDSubscription.html @@ -1,7 +1,7 @@ BDSubscription | @bacnet-js/device
                                                                                                  @bacnet-js/device
                                                                                                    Preparing search index...

                                                                                                    Interface BDSubscription<Tag, Type, Data>

                                                                                                    Represents a subscription to COV (Change of Value) notifications

                                                                                                    This interface defines the details of a COV subscription from another BACnet device.

                                                                                                    -
                                                                                                    interface BDSubscription<
                                                                                                        Tag extends ApplicationTag,
                                                                                                        Type extends ApplicationTagValueTypeMap[Tag],
                                                                                                        Data extends BACNetAppData<Tag, Type> | BACNetAppData<Tag, Type>[],
                                                                                                    > {
                                                                                                        covIncrement: number;
                                                                                                        expiresAt: number;
                                                                                                        issueConfirmedNotifications: boolean;
                                                                                                        lastDataSent: null | Data;
                                                                                                        monitoredObjectId: BACNetObjectID;
                                                                                                        monitoredProperty: BACNetPropertyID;
                                                                                                        object: BDObject;
                                                                                                        property: BDAbstractProperty<Tag, Type, Data>;
                                                                                                        recipient: { address: number[]; network: number };
                                                                                                        subscriber: BACNetAddress;
                                                                                                        subscriptionProcessId: number;
                                                                                                        timeRemaining: number;
                                                                                                    }

                                                                                                    Type Parameters

                                                                                                    • Tag extends ApplicationTag
                                                                                                    • Type extends ApplicationTagValueTypeMap[Tag]
                                                                                                    • Data extends BACNetAppData<Tag, Type> | BACNetAppData<Tag, Type>[]

                                                                                                    Hierarchy

                                                                                                    • BACNetCovSubscription
                                                                                                      • BDSubscription
                                                                                                    Index

                                                                                                    Properties

                                                                                                    interface BDSubscription<
                                                                                                        Tag extends ApplicationTag,
                                                                                                        Type extends ApplicationTagValueTypeMap[Tag],
                                                                                                        Data extends BACNetAppData<Tag, Type> | BACNetAppData<Tag, Type>[],
                                                                                                    > {
                                                                                                        covIncrement: number;
                                                                                                        expiresAt: number;
                                                                                                        issueConfirmedNotifications: boolean;
                                                                                                        lastDataSent: null | Data;
                                                                                                        monitoredObjectId: BACNetObjectID;
                                                                                                        monitoredProperty: BACNetPropertyID;
                                                                                                        object: BDObject;
                                                                                                        property: BDAbstractProperty<Tag, Type, Data>;
                                                                                                        recipient: { address: number[]; network: number };
                                                                                                        subscriber: BACNetAddress;
                                                                                                        subscriptionProcessId: number;
                                                                                                        timeRemaining: number;
                                                                                                    }

                                                                                                    Type Parameters

                                                                                                    • Tag extends ApplicationTag
                                                                                                    • Type extends ApplicationTagValueTypeMap[Tag]
                                                                                                    • Data extends BACNetAppData<Tag, Type> | BACNetAppData<Tag, Type>[]

                                                                                                    Hierarchy

                                                                                                    • BACNetCovSubscription
                                                                                                      • BDSubscription
                                                                                                    Index

                                                                                                    Properties

                                                                                                    covIncrement: number

                                                                                                    Counter of COV notifications sent through this subscription

                                                                                                    -
                                                                                                    expiresAt: number

                                                                                                    Expiration time in milliseconds since unix epoch

                                                                                                    -
                                                                                                    issueConfirmedNotifications: boolean

                                                                                                    Whether to send confirmed notifications

                                                                                                    -
                                                                                                    lastDataSent: null | Data
                                                                                                    monitoredObjectId: BACNetObjectID

                                                                                                    Object ID being monitored for changes

                                                                                                    -
                                                                                                    monitoredProperty: BACNetPropertyID

                                                                                                    Property ID being monitored for changes

                                                                                                    -
                                                                                                    object: BDObject
                                                                                                    recipient: { address: number[]; network: number }
                                                                                                    subscriber: BACNetAddress

                                                                                                    Network address information of the subscriber

                                                                                                    -
                                                                                                    subscriptionProcessId: number

                                                                                                    Process ID of the subscribing device

                                                                                                    -
                                                                                                    timeRemaining: number
                                                                                                    +
                                                                                                    expiresAt: number

                                                                                                    Expiration time in milliseconds since unix epoch

                                                                                                    +
                                                                                                    issueConfirmedNotifications: boolean

                                                                                                    Whether to send confirmed notifications

                                                                                                    +
                                                                                                    lastDataSent: null | Data
                                                                                                    monitoredObjectId: BACNetObjectID

                                                                                                    Object ID being monitored for changes

                                                                                                    +
                                                                                                    monitoredProperty: BACNetPropertyID

                                                                                                    Property ID being monitored for changes

                                                                                                    +
                                                                                                    object: BDObject
                                                                                                    property: BDAbstractProperty<Tag, Type, Data>
                                                                                                    recipient: { address: number[]; network: number }
                                                                                                    subscriber: BACNetAddress

                                                                                                    Network address information of the subscriber

                                                                                                    +
                                                                                                    subscriptionProcessId: number

                                                                                                    Process ID of the subscribing device

                                                                                                    +
                                                                                                    timeRemaining: number
                                                                                                    diff --git a/docs/interfaces/BDTimeValueOpts.html b/docs/interfaces/BDTimeValueOpts.html index db21af9..d12b9bb 100644 --- a/docs/interfaces/BDTimeValueOpts.html +++ b/docs/interfaces/BDTimeValueOpts.html @@ -1,5 +1,19 @@ -BDTimeValueOpts | @bacnet-js/device
                                                                                                    @bacnet-js/device
                                                                                                      Preparing search index...

                                                                                                      Interface BDTimeValueOpts

                                                                                                      interface BDTimeValueOpts {
                                                                                                          description?: string;
                                                                                                          name: string;
                                                                                                          presentValue?: Date;
                                                                                                          writable?: boolean;
                                                                                                      }
                                                                                                      Index

                                                                                                      Properties

                                                                                                      description? +BDTimeValueOpts | @bacnet-js/device
                                                                                                      @bacnet-js/device
                                                                                                        Preparing search index...

                                                                                                        Interface BDTimeValueOpts

                                                                                                        Common options for all BACnet objects

                                                                                                        +

                                                                                                        This interface defines the base configuration parameters shared by every +BACnet object type. Subclass-specific option interfaces extend this +interface with additional properties.

                                                                                                        +
                                                                                                        interface BDTimeValueOpts {
                                                                                                            description?: string;
                                                                                                            name: string;
                                                                                                            presentValue?: Date;
                                                                                                            writable?: boolean;
                                                                                                            writableOutOfService?: boolean;
                                                                                                        }

                                                                                                        Hierarchy (View Summary)

                                                                                                        Index

                                                                                                        Properties

                                                                                                        description?: string
                                                                                                        name: string
                                                                                                        presentValue?: Date
                                                                                                        writable?: boolean
                                                                                                        +writableOutOfService? +

                                                                                                        Properties

                                                                                                        description?: string

                                                                                                        An optional textual description of the object (Description property)

                                                                                                        +
                                                                                                        name: string

                                                                                                        The object's name (Object_Name property)

                                                                                                        +
                                                                                                        presentValue?: Date
                                                                                                        writable?: boolean
                                                                                                        writableOutOfService?: boolean

                                                                                                        Whether the Out_Of_Service property is writable from the BACnet network.

                                                                                                        +

                                                                                                        When true, remote BACnet clients can set the object's Out_Of_Service +property to TRUE or FALSE. Changing the property causes the object to +emit an outofservice +or inservice event accordingly. Default +is false.

                                                                                                        +

                                                                                                        false

                                                                                                        +
                                                                                                        diff --git a/docs/modules.html b/docs/modules.html index 56ae6f4..9130115 100644 --- a/docs/modules.html +++ b/docs/modules.html @@ -2,4 +2,4 @@

                                                                                                        A TypeScript library for implementing BACnet IP devices in Node.js. This module provides all the necessary types and classes for creating and managing BACnet devices, objects, and properties.

                                                                                                        -

                                                                                                        Enumerations

                                                                                                        BDPropertyType

                                                                                                        Classes

                                                                                                        AsyncEventEmitter
                                                                                                        BDAbstractProperty
                                                                                                        BDAnalogInput
                                                                                                        BDAnalogOutput
                                                                                                        BDAnalogValue
                                                                                                        BDArrayProperty
                                                                                                        BDBinaryValue
                                                                                                        BDCharacterStringValue
                                                                                                        BDDateTimeValue
                                                                                                        BDDateValue
                                                                                                        BDDevice
                                                                                                        BDError
                                                                                                        BDIntegerValue
                                                                                                        BDMultiStateValue
                                                                                                        BDObject
                                                                                                        BDPolledArrayProperty
                                                                                                        BDPolledSingletProperty
                                                                                                        BDPositiveIntegerValue
                                                                                                        BDSingletProperty
                                                                                                        BDStructuredView
                                                                                                        BDTimeValue
                                                                                                        TaskQueue

                                                                                                        Interfaces

                                                                                                        BDAnalogInputOpts
                                                                                                        BDAnalogOutputOpts
                                                                                                        BDAnalogValueOpts
                                                                                                        BDBinaryValueOpts
                                                                                                        BDCharacterStringValueOpts
                                                                                                        BDDateTimeValueOpts
                                                                                                        BDDateValueOpts
                                                                                                        BDDeviceEvents
                                                                                                        BDDeviceOpts
                                                                                                        BDIntegerValueOpts
                                                                                                        BDMultiStateValueOpts
                                                                                                        BDObjectEvents
                                                                                                        BDPositiveIntegerValueOpts
                                                                                                        BDPropertyAccessContext
                                                                                                        BDPropertyEvents
                                                                                                        BDStructuredViewOpts
                                                                                                        BDSubscription
                                                                                                        BDTimeValueOpts

                                                                                                        Type Aliases

                                                                                                        BDAnalogValueObjectType
                                                                                                        BDObjectUID
                                                                                                        BDPropertyUID
                                                                                                        EventArgs
                                                                                                        EventKey
                                                                                                        EventListener
                                                                                                        EventMap
                                                                                                        Task
                                                                                                        +

                                                                                                        Enumerations

                                                                                                        BDPropertyType

                                                                                                        Classes

                                                                                                        AsyncEventEmitter
                                                                                                        BDAbstractProperty
                                                                                                        BDAnalogInput
                                                                                                        BDAnalogOutput
                                                                                                        BDAnalogValue
                                                                                                        BDArrayProperty
                                                                                                        BDBinaryValue
                                                                                                        BDCharacterStringValue
                                                                                                        BDDateTimeValue
                                                                                                        BDDateValue
                                                                                                        BDDevice
                                                                                                        BDError
                                                                                                        BDIntegerValue
                                                                                                        BDMultiStateValue
                                                                                                        BDObject
                                                                                                        BDPolledArrayProperty
                                                                                                        BDPolledSingletProperty
                                                                                                        BDPositiveIntegerValue
                                                                                                        BDSingletProperty
                                                                                                        BDStructuredView
                                                                                                        BDTimeValue
                                                                                                        TaskQueue

                                                                                                        Interfaces

                                                                                                        BDAnalogInputOpts
                                                                                                        BDAnalogOutputOpts
                                                                                                        BDAnalogValueOpts
                                                                                                        BDBinaryValueOpts
                                                                                                        BDCharacterStringValueOpts
                                                                                                        BDDateTimeValueOpts
                                                                                                        BDDateValueOpts
                                                                                                        BDDeviceEvents
                                                                                                        BDDeviceOpts
                                                                                                        BDIntegerValueOpts
                                                                                                        BDMultiStateValueOpts
                                                                                                        BDObjectEvents
                                                                                                        BDObjectOpts
                                                                                                        BDPositiveIntegerValueOpts
                                                                                                        BDPropertyAccessContext
                                                                                                        BDPropertyEvents
                                                                                                        BDStructuredViewOpts
                                                                                                        BDSubscription
                                                                                                        BDTimeValueOpts

                                                                                                        Type Aliases

                                                                                                        BDAnalogValueObjectType
                                                                                                        BDObjectUID
                                                                                                        BDPropertyUID
                                                                                                        EventArgs
                                                                                                        EventKey
                                                                                                        EventListener
                                                                                                        EventMap
                                                                                                        Task
                                                                                                        diff --git a/docs/types/BDAnalogValueObjectType.html b/docs/types/BDAnalogValueObjectType.html index 15c6a42..e57ec03 100644 --- a/docs/types/BDAnalogValueObjectType.html +++ b/docs/types/BDAnalogValueObjectType.html @@ -1 +1 @@ -BDAnalogValueObjectType | @bacnet-js/device
                                                                                                        @bacnet-js/device
                                                                                                          Preparing search index...

                                                                                                          Type Alias BDAnalogValueObjectType

                                                                                                          BDAnalogValueObjectType:
                                                                                                              | ObjectType.ANALOG_VALUE
                                                                                                              | ObjectType.ANALOG_INPUT
                                                                                                              | ObjectType.ANALOG_OUTPUT
                                                                                                          +BDAnalogValueObjectType | @bacnet-js/device
                                                                                                          @bacnet-js/device
                                                                                                            Preparing search index...

                                                                                                            Type Alias BDAnalogValueObjectType

                                                                                                            BDAnalogValueObjectType:
                                                                                                                | ObjectType.ANALOG_VALUE
                                                                                                                | ObjectType.ANALOG_INPUT
                                                                                                                | ObjectType.ANALOG_OUTPUT
                                                                                                            diff --git a/docs/types/BDObjectUID.html b/docs/types/BDObjectUID.html index eb8b650..031e956 100644 --- a/docs/types/BDObjectUID.html +++ b/docs/types/BDObjectUID.html @@ -1,4 +1,4 @@ BDObjectUID | @bacnet-js/device
                                                                                                            @bacnet-js/device
                                                                                                              Preparing search index...

                                                                                                              Type Alias BDObjectUID

                                                                                                              BDObjectUID: number & { ___tag: "objectid" }

                                                                                                              Unique object identifier scoped to the current process. This should be calculated as a number composed of two groups of four digits each, encoding the object type and object instance respectively.

                                                                                                              -
                                                                                                              +
                                                                                                              diff --git a/docs/types/BDPropertyUID.html b/docs/types/BDPropertyUID.html index a128d0f..ae0a075 100644 --- a/docs/types/BDPropertyUID.html +++ b/docs/types/BDPropertyUID.html @@ -2,4 +2,4 @@ This should be calculated as a number composed of three groups of four digits each, encoding the object type, object instance and property identifier respectively.

                                                                                                              -
                                                                                                              +
                                                                                                              diff --git a/docs/types/EventArgs.html b/docs/types/EventArgs.html index 8aa50d2..ab2c0a0 100644 --- a/docs/types/EventArgs.html +++ b/docs/types/EventArgs.html @@ -1 +1 @@ -EventArgs | @bacnet-js/device
                                                                                                              @bacnet-js/device
                                                                                                                Preparing search index...

                                                                                                                Type Alias EventArgs<T, K>

                                                                                                                EventArgs: K extends keyof T ? T[K] : never

                                                                                                                Type Parameters

                                                                                                                +EventArgs | @bacnet-js/device
                                                                                                                @bacnet-js/device
                                                                                                                  Preparing search index...

                                                                                                                  Type Alias EventArgs<T, K>

                                                                                                                  EventArgs: K extends keyof T ? T[K] : never

                                                                                                                  Type Parameters

                                                                                                                  diff --git a/docs/types/EventKey.html b/docs/types/EventKey.html index 135f413..5dbac9f 100644 --- a/docs/types/EventKey.html +++ b/docs/types/EventKey.html @@ -1 +1 @@ -EventKey | @bacnet-js/device
                                                                                                                  @bacnet-js/device
                                                                                                                    Preparing search index...

                                                                                                                    Type Alias EventKey<T>

                                                                                                                    EventKey: keyof T

                                                                                                                    Type Parameters

                                                                                                                    +EventKey | @bacnet-js/device
                                                                                                                    @bacnet-js/device
                                                                                                                      Preparing search index...

                                                                                                                      Type Alias EventKey<T>

                                                                                                                      EventKey: keyof T

                                                                                                                      Type Parameters

                                                                                                                      diff --git a/docs/types/EventListener.html b/docs/types/EventListener.html index e4f275f..2d964e1 100644 --- a/docs/types/EventListener.html +++ b/docs/types/EventListener.html @@ -1 +1 @@ -EventListener | @bacnet-js/device
                                                                                                                      @bacnet-js/device
                                                                                                                        Preparing search index...

                                                                                                                        Type Alias EventListener<T, K>

                                                                                                                        EventListener: T[K] extends unknown[]
                                                                                                                            ? (...args: T[K]) => Promise<any> | any
                                                                                                                            : never

                                                                                                                        Type Parameters

                                                                                                                        +EventListener | @bacnet-js/device
                                                                                                                        @bacnet-js/device
                                                                                                                          Preparing search index...

                                                                                                                          Type Alias EventListener<T, K>

                                                                                                                          EventListener: T[K] extends unknown[]
                                                                                                                              ? (...args: T[K]) => Promise<any> | any
                                                                                                                              : never

                                                                                                                          Type Parameters

                                                                                                                          diff --git a/docs/types/EventMap.html b/docs/types/EventMap.html index 7b1055d..b0acbb4 100644 --- a/docs/types/EventMap.html +++ b/docs/types/EventMap.html @@ -1 +1 @@ -EventMap | @bacnet-js/device
                                                                                                                          @bacnet-js/device
                                                                                                                            Preparing search index...

                                                                                                                            Type Alias EventMap

                                                                                                                            EventMap: Record<string, any[]>
                                                                                                                            +EventMap | @bacnet-js/device
                                                                                                                            @bacnet-js/device
                                                                                                                              Preparing search index...

                                                                                                                              Type Alias EventMap

                                                                                                                              EventMap: Record<string, any[]>
                                                                                                                              diff --git a/docs/types/Task.html b/docs/types/Task.html index bd72f23..e38050a 100644 --- a/docs/types/Task.html +++ b/docs/types/Task.html @@ -1 +1 @@ -Task | @bacnet-js/device
                                                                                                                              @bacnet-js/device
                                                                                                                                Preparing search index...

                                                                                                                                Type Alias Task<T>

                                                                                                                                Task: () => Promise<T>

                                                                                                                                Type Parameters

                                                                                                                                • T

                                                                                                                                Type declaration

                                                                                                                                  • (): Promise<T>
                                                                                                                                  • Returns Promise<T>

                                                                                                                                +Task | @bacnet-js/device
                                                                                                                                @bacnet-js/device
                                                                                                                                  Preparing search index...

                                                                                                                                  Type Alias Task<T>

                                                                                                                                  Task: () => Promise<T>

                                                                                                                                  Type Parameters

                                                                                                                                  • T

                                                                                                                                  Type declaration

                                                                                                                                    • (): Promise<T>
                                                                                                                                    • Returns Promise<T>

                                                                                                                                  diff --git a/src/examples/06-out-of-service.ts b/src/examples/06-out-of-service.ts new file mode 100644 index 0000000..c08ed8f --- /dev/null +++ b/src/examples/06-out-of-service.ts @@ -0,0 +1,56 @@ +/** + * This example demonstrates how to use the writable Out_Of_Service feature. + * + * When `writableOutOfService` is set to `true`, remote BACnet clients can + * write to the object's Out_Of_Service property. The object emits + * `outofservice` and `inservice` events when the property changes, allowing + * application code to react — for example, by freezing a sensor reading or + * switching to a manual override mode. + */ + +import { EngineeringUnits } from '@bacnet-js/client'; +import { BDDevice, BDAnalogValue } from '../index.js'; + +const device = new BDDevice(1, { + port: 47808, + interface: '0.0.0.0', + name: 'Example Device', +}); + +device.on('error', (err) => { + console.error('BACnet error:', err); +}); + +// Create an analog value with a writable Out_Of_Service property. +// This allows remote BACnet clients to take the object out of service. +const temperature = device.addObject(new BDAnalogValue({ + name: 'Zone Temperature', + unit: EngineeringUnits.DEGREES_CELSIUS, + presentValue: 21.5, + writableOutOfService: true, +})); + +// Simulate a live sensor feed that updates the present value every second, +// but only while the object is in service. +const interval = setInterval(() => { + if (!temperature.isOutOfService()) { + const simulated = 20 + Math.random() * 5; + temperature.presentValue.setValue(simulated); + } +}, 1000); + +// React to the object being taken out of service by a remote BACnet client. +temperature.on('outofservice', () => { + console.log('Zone Temperature has been taken OUT OF SERVICE — sensor updates paused'); +}); + +// React to the object being put back in service. +temperature.on('inservice', () => { + console.log('Zone Temperature is back IN SERVICE — sensor updates resumed'); +}); + +// Clean up on shutdown +process.on('SIGINT', () => { + clearInterval(interval); + device.destroy(); +}); \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 0767abf..7fcc983 100644 --- a/src/index.ts +++ b/src/index.ts @@ -42,6 +42,7 @@ export { export { type BDObjectEvents, + type BDObjectOpts, BDObject, } from './objects/generic/object.js'; diff --git a/src/objects/binaryvalue.ts b/src/objects/binaryvalue.ts index 3412ef6..204f706 100644 --- a/src/objects/binaryvalue.ts +++ b/src/objects/binaryvalue.ts @@ -1,6 +1,6 @@ import { BDSingletProperty } from '../properties/index.js'; -import { BDObject } from './generic/object.js'; +import { BDObject, type BDObjectOpts } from './generic/object.js'; import { ObjectType, ApplicationTag, @@ -8,7 +8,7 @@ import { BinaryPV, } from '@bacnet-js/client'; -export interface BDBinaryValueOpts { +export interface BDBinaryValueOpts extends BDObjectOpts { name: string, writable: boolean, description?: string, @@ -20,7 +20,7 @@ export class BDBinaryValue extends BDObject { readonly presentValue: BDSingletProperty; constructor(opts: BDBinaryValueOpts) { - super(ObjectType.BINARY_VALUE, opts.name, opts.description); + super(ObjectType.BINARY_VALUE, opts); this.presentValue = this.addProperty(new BDSingletProperty( PropertyIdentifier.PRESENT_VALUE, ApplicationTag.ENUMERATED, opts.writable ?? false, opts.presentValue ?? BinaryPV.INACTIVE)); diff --git a/src/objects/characterstringvalue.ts b/src/objects/characterstringvalue.ts index 01992b3..6e2985e 100644 --- a/src/objects/characterstringvalue.ts +++ b/src/objects/characterstringvalue.ts @@ -1,6 +1,6 @@ import { BDSingletProperty } from '../properties/index.js'; -import { BDObject } from './generic/object.js'; +import { BDObject, type BDObjectOpts } from './generic/object.js'; import { ObjectType, ApplicationTag, @@ -8,7 +8,7 @@ import { CharacterStringEncoding, } from '@bacnet-js/client'; -export interface BDCharacterStringValueOpts { +export interface BDCharacterStringValueOpts extends BDObjectOpts { name: string, writable?: boolean, description?: string, @@ -20,7 +20,7 @@ export class BDCharacterStringValue extends BDObject { readonly presentValue: BDSingletProperty; constructor(opts: BDCharacterStringValueOpts) { - super(ObjectType.CHARACTERSTRING_VALUE, opts.name, opts.description); + super(ObjectType.CHARACTERSTRING_VALUE, opts); this.presentValue = this.addProperty(new BDSingletProperty( PropertyIdentifier.PRESENT_VALUE, ApplicationTag.CHARACTER_STRING, opts.writable ?? false, opts.presentValue ?? '', CharacterStringEncoding.UTF_8)); diff --git a/src/objects/device/device.ts b/src/objects/device/device.ts index 353c1b6..754202a 100644 --- a/src/objects/device/device.ts +++ b/src/objects/device/device.ts @@ -176,7 +176,7 @@ export class BDDevice extends BDObject implements AsyncEventEmitter, object: BDObject], + /** Emitted when the object's {@link BDObject#outOfService | Out_Of_Service} property is set to `false`, either from the network or locally */ + inservice: [], + /** Emitted when the object's {@link BDObject#outOfService | Out_Of_Service} property is set to `true`, either from the network or locally */ + outofservice: [], } /** @@ -68,6 +72,32 @@ const unlistedProperties: PropertyIdentifier[] = [ PropertyIdentifier.PROPERTY_LIST, ]; +/** + * Common options for all BACnet objects + * + * This interface defines the base configuration parameters shared by every + * BACnet object type. Subclass-specific option interfaces extend this + * interface with additional properties. + */ +export interface BDObjectOpts { + /** The object's name (`Object_Name` property) */ + name: string; + /** An optional textual description of the object (`Description` property) */ + description?: string; + /** + * Whether the `Out_Of_Service` property is writable from the BACnet network. + * + * When `true`, remote BACnet clients can set the object's `Out_Of_Service` + * property to `TRUE` or `FALSE`. Changing the property causes the object to + * emit an {@link BDObjectEvents.outofservice | outofservice} + * or {@link BDObjectEvents.inservice | inservice} event accordingly. Default + * is `false`. + * + * @defaultValue `false` + */ + writableOutOfService?: boolean; +} + /** * Base class for all BACnet objects * @@ -113,7 +143,7 @@ export class BDObject extends AsyncEventEmitter { * Creates a new BACnet object * */ - constructor(type: ObjectType, name: string, description: string = '') { + constructor(type: ObjectType, opts: BDObjectOpts) { super(); @@ -122,7 +152,7 @@ export class BDObject extends AsyncEventEmitter { this.#propertyList = []; this.objectName = this.addProperty(new BDSingletProperty( - PropertyIdentifier.OBJECT_NAME, ApplicationTag.CHARACTER_STRING, false, name)); + PropertyIdentifier.OBJECT_NAME, ApplicationTag.CHARACTER_STRING, false, opts.name)); this.objectType = this.addProperty(new BDSingletProperty( PropertyIdentifier.OBJECT_TYPE, ApplicationTag.ENUMERATED, false, type)); @@ -134,10 +164,10 @@ export class BDObject extends AsyncEventEmitter { PropertyIdentifier.PROPERTY_LIST, () => this.#propertyList)); this.description = this.addProperty(new BDSingletProperty( - PropertyIdentifier.DESCRIPTION, ApplicationTag.CHARACTER_STRING, false, description)); + PropertyIdentifier.DESCRIPTION, ApplicationTag.CHARACTER_STRING, false, opts.description ?? '')); this.outOfService = this.addProperty(new BDSingletProperty( - PropertyIdentifier.OUT_OF_SERVICE, ApplicationTag.BOOLEAN, false, false)); + PropertyIdentifier.OUT_OF_SERVICE, ApplicationTag.BOOLEAN, opts.writableOutOfService ?? false, false)); this.statusFlags = this.addProperty(new BDSingletProperty( PropertyIdentifier.STATUS_FLAGS, ApplicationTag.BIT_STRING, false, new StatusFlagsBitString())); @@ -148,6 +178,14 @@ export class BDObject extends AsyncEventEmitter { this.reliability = this.addProperty(new BDSingletProperty( PropertyIdentifier.RELIABILITY, ApplicationTag.ENUMERATED, false, Reliability.NO_FAULT_DETECTED)); + this.outOfService.on('aftercov', (raw) => { + if (raw.value) { + this.___emit('outofservice'); + } else { + this.___emit('inservice'); + } + }); + } get identifier(): BACNetAppData { @@ -164,6 +202,10 @@ export class BDObject extends AsyncEventEmitter { throw new Error('Cannot get object device: object has not been added to a device yet'); } + isOutOfService(): boolean { + return this.outOfService.getValue(); + } + /** * Adds a property to this object * diff --git a/src/objects/multistatevalue.ts b/src/objects/multistatevalue.ts index e484331..a3a8f57 100644 --- a/src/objects/multistatevalue.ts +++ b/src/objects/multistatevalue.ts @@ -7,7 +7,7 @@ import { BDPolledSingletProperty, } from '../properties/index.js'; -import { BDObject } from './generic/object.js'; +import { BDObject, type BDObjectOpts } from './generic/object.js'; import { ObjectType, @@ -20,7 +20,7 @@ import { import { BDError } from '../errors.js'; -export interface BDMultiStateValueOpts { +export interface BDMultiStateValueOpts extends BDObjectOpts { name: string, states: [first: string, ...rest: string[]], writable?: boolean, @@ -38,7 +38,7 @@ export class BDMultiStateValue extends BDObject { assert(opts.states.length > 0, 'states array must not be empty'); - super(ObjectType.MULTI_STATE_VALUE, opts.name, opts.description); + super(ObjectType.MULTI_STATE_VALUE, opts); const numberOfStatesValue = opts.states.length; diff --git a/src/objects/numeric/numeric.ts b/src/objects/numeric/numeric.ts index 0d2ec5e..202c7c7 100644 --- a/src/objects/numeric/numeric.ts +++ b/src/objects/numeric/numeric.ts @@ -1,6 +1,6 @@ import { BDSingletProperty } from '../../properties/index.js'; -import { BDObject } from '../generic/object.js'; +import { BDObject, type BDObjectOpts } from '../generic/object.js'; import { ObjectType, ApplicationTag, @@ -9,7 +9,7 @@ import { type BACNetObjectID, } from '@bacnet-js/client'; -export interface BDNumericValueOpts { +export interface BDNumericValueOpts extends BDObjectOpts { name: string, unit: EngineeringUnits, writable?: boolean, @@ -45,7 +45,7 @@ export class BDNumericObject extends BDObje readonly minPresentValue: BDSingletProperty; constructor(type: ObjectType, tag: Tag, opts: BDNumericValueOpts) { - super(type, opts.name, opts.description); + super(type, opts); this.presentValue = this.addProperty(new BDSingletProperty( PropertyIdentifier.PRESENT_VALUE, tag, opts.writable ?? false, opts.presentValue)); diff --git a/src/objects/structuredview.ts b/src/objects/structuredview.ts index 590f85f..39f56f0 100644 --- a/src/objects/structuredview.ts +++ b/src/objects/structuredview.ts @@ -4,7 +4,7 @@ import { BDPolledArrayProperty, } from '../properties/index.js'; -import { BDObject } from './generic/object.js'; +import { BDObject, type BDObjectOpts } from './generic/object.js'; import { ObjectType, @@ -14,11 +14,7 @@ import { type BACNetAppData, } from '@bacnet-js/client'; -import { - type BDDevice, -} from './device/device.js'; - -export interface BDStructuredViewOpts { +export interface BDStructuredViewOpts extends BDObjectOpts { name: string, description?: string, nodeType?: NodeType, @@ -40,7 +36,7 @@ export class BDStructuredView extends BDObject { constructor(opts: BDStructuredViewOpts) { - super(ObjectType.STRUCTURED_VIEW, opts.name, opts.description); + super(ObjectType.STRUCTURED_VIEW, opts); this.#subordinates = new Set(); this.#subortinateData = []; diff --git a/src/objects/temporal/datetimevalue.ts b/src/objects/temporal/datetimevalue.ts index f3ff3df..0e60798 100644 --- a/src/objects/temporal/datetimevalue.ts +++ b/src/objects/temporal/datetimevalue.ts @@ -1,13 +1,13 @@ import { BDSingletProperty } from '../../properties/index.js'; -import { BDObject } from '../generic/object.js'; +import { BDObject, type BDObjectOpts } from '../generic/object.js'; import { ObjectType, ApplicationTag, PropertyIdentifier, } from '@bacnet-js/client'; -export interface BDDateTimeValueOpts { +export interface BDDateTimeValueOpts extends BDObjectOpts { name: string, writable?: boolean, description?: string, @@ -19,7 +19,7 @@ export class BDDateTimeValue extends BDObject { readonly presentValue: BDSingletProperty; constructor(opts: BDDateTimeValueOpts) { - super(ObjectType.DATETIME_VALUE, opts.name, opts.description); + super(ObjectType.DATETIME_VALUE, opts); this.presentValue = this.addProperty(new BDSingletProperty( PropertyIdentifier.PRESENT_VALUE, ApplicationTag.DATETIME, opts.writable ?? false, opts.presentValue ?? new Date())); diff --git a/src/objects/temporal/datevalue.ts b/src/objects/temporal/datevalue.ts index 4b283c3..8299162 100644 --- a/src/objects/temporal/datevalue.ts +++ b/src/objects/temporal/datevalue.ts @@ -1,13 +1,13 @@ import { BDSingletProperty } from '../../properties/index.js'; -import { BDObject } from '../generic/object.js'; +import { BDObject, type BDObjectOpts } from '../generic/object.js'; import { ObjectType, ApplicationTag, PropertyIdentifier, } from '@bacnet-js/client'; -export interface BDDateValueOpts { +export interface BDDateValueOpts extends BDObjectOpts { name: string, writable?: boolean, description?: string, @@ -19,7 +19,7 @@ export class BDDateValue extends BDObject { readonly presentValue: BDSingletProperty; constructor(opts: BDDateValueOpts) { - super(ObjectType.DATE_VALUE, opts.name, opts.description); + super(ObjectType.DATE_VALUE, opts); this.presentValue = this.addProperty(new BDSingletProperty( PropertyIdentifier.PRESENT_VALUE, ApplicationTag.DATE, opts.writable ?? false, opts.presentValue ?? new Date())); diff --git a/src/objects/temporal/timevalue.ts b/src/objects/temporal/timevalue.ts index a253cbf..b533fba 100644 --- a/src/objects/temporal/timevalue.ts +++ b/src/objects/temporal/timevalue.ts @@ -1,13 +1,13 @@ import { BDSingletProperty } from '../../properties/index.js'; -import { BDObject } from '../generic/object.js'; +import { BDObject, type BDObjectOpts } from '../generic/object.js'; import { ObjectType, ApplicationTag, PropertyIdentifier, } from '@bacnet-js/client'; -export interface BDTimeValueOpts { +export interface BDTimeValueOpts extends BDObjectOpts { name: string, writable?: boolean, description?: string, @@ -19,7 +19,7 @@ export class BDTimeValue extends BDObject { readonly presentValue: BDSingletProperty; constructor(opts: BDTimeValueOpts) { - super(ObjectType.TIME_VALUE, opts.name, opts.description); + super(ObjectType.TIME_VALUE, opts); this.presentValue = this.addProperty(new BDSingletProperty( PropertyIdentifier.PRESENT_VALUE, ApplicationTag.TIME, opts.writable ?? false, opts.presentValue ?? new Date())); diff --git a/src/tests/outofservice.test.ts b/src/tests/outofservice.test.ts new file mode 100644 index 0000000..b950301 --- /dev/null +++ b/src/tests/outofservice.test.ts @@ -0,0 +1,425 @@ +import { it, describe, beforeEach, afterEach } from 'node:test'; +import { deepStrictEqual, rejects } from 'node:assert'; +import { BDDevice } from '../objects/device/device.js'; +import { bsReadProperty, bsWriteProperty } from './bacnet-stack-client.js'; +import { BDAnalogValue } from '../objects/numeric/analogvalue.js'; +import { BDBinaryValue } from '../objects/binaryvalue.js'; +import { BDCharacterStringValue } from '../objects/characterstringvalue.js'; +import { ApplicationTag, BinaryPV, EngineeringUnits, ObjectType, PropertyIdentifier } from '@bacnet-js/client'; + +describe('Out_Of_Service (not writable by default)', () => { + + let device: BDDevice; + + beforeEach(async () => { + device = new BDDevice(1, { + name: 'Test Device', + }); + device.on('error', console.error); + device.addObject(new BDAnalogValue({ + name: 'Default AV', + unit: EngineeringUnits.DEGREES_CELSIUS, + presentValue: 20, + })); + }); + + afterEach(async () => { + device.destroy(); + }); + + it('should read Out_Of_Service as FALSE', async () => { + const value = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'FALSE'); + }); + + it('should reject writing Out_Of_Service when not writable', async () => { + await rejects( + bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1), + ); + }); + + it('should still read Out_Of_Service as FALSE after a rejected write', async () => { + await rejects( + bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1), + ); + const value = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'FALSE'); + }); + +}); + +describe('Out_Of_Service (writable, AnalogValue)', () => { + + let device: BDDevice; + let av: BDAnalogValue; + + beforeEach(async () => { + device = new BDDevice(1, { + name: 'Test Device', + }); + device.on('error', console.error); + av = device.addObject(new BDAnalogValue({ + name: 'Writable OOS AV', + unit: EngineeringUnits.DEGREES_CELSIUS, + presentValue: 22.5, + writableOutOfService: true, + })); + }); + + afterEach(async () => { + device.destroy(); + }); + + it('should read Out_Of_Service as FALSE initially', async () => { + const value = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'FALSE'); + }); + + it('should write TRUE to Out_Of_Service and read it back', async () => { + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + const value = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'TRUE'); + }); + + it('should write TRUE then FALSE to Out_Of_Service and read back FALSE', async () => { + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 0); + const value = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'FALSE'); + }); + + it('should report isOutOfService() as true after writing TRUE via BACnet', async () => { + deepStrictEqual(av.isOutOfService(), false); + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + deepStrictEqual(av.isOutOfService(), true); + }); + + it('should report isOutOfService() as false after writing FALSE via BACnet', async () => { + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + deepStrictEqual(av.isOutOfService(), true); + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 0); + deepStrictEqual(av.isOutOfService(), false); + }); + + it('should emit the outofservice event when Out_Of_Service is written to TRUE', async () => { + let emitted = false; + av.on('outofservice', () => { emitted = true; }); + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + deepStrictEqual(emitted, true); + }); + + it('should emit the inservice event when Out_Of_Service is written back to FALSE', async () => { + let emitted = false; + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + av.on('inservice', () => { emitted = true; }); + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 0); + deepStrictEqual(emitted, true); + }); + + it('should not emit inservice when Out_Of_Service is written to TRUE', async () => { + let emitted = false; + av.on('inservice', () => { emitted = true; }); + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + deepStrictEqual(emitted, false); + }); + + it('should not emit outofservice when Out_Of_Service is written to FALSE', async () => { + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + let emitted = false; + av.on('outofservice', () => { emitted = true; }); + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 0); + deepStrictEqual(emitted, false); + }); + + it('should not affect the Present_Value when toggling Out_Of_Service', async () => { + const before = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.PRESENT_VALUE); + deepStrictEqual(parseFloat(before), 22.5); + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + const during = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.PRESENT_VALUE); + deepStrictEqual(parseFloat(during), 22.5); + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 0); + const after = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.PRESENT_VALUE); + deepStrictEqual(parseFloat(after), 22.5); + }); + +}); + +describe('Out_Of_Service (writable, BinaryValue)', () => { + + let device: BDDevice; + let bv: BDBinaryValue; + + beforeEach(async () => { + device = new BDDevice(1, { + name: 'Test Device', + }); + device.on('error', console.error); + bv = device.addObject(new BDBinaryValue({ + name: 'Writable OOS BV', + writable: false, + presentValue: BinaryPV.ACTIVE, + writableOutOfService: true, + })); + }); + + afterEach(async () => { + device.destroy(); + }); + + it('should read Out_Of_Service as FALSE initially', async () => { + const value = await bsReadProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'FALSE'); + }); + + it('should write TRUE to Out_Of_Service and read it back', async () => { + await bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + const value = await bsReadProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'TRUE'); + }); + + it('should write TRUE then FALSE to Out_Of_Service and read back FALSE', async () => { + await bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + await bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 0); + const value = await bsReadProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'FALSE'); + }); + + it('should report isOutOfService() correctly', async () => { + deepStrictEqual(bv.isOutOfService(), false); + await bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + deepStrictEqual(bv.isOutOfService(), true); + await bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 0); + deepStrictEqual(bv.isOutOfService(), false); + }); + + it('should emit outofservice and inservice events', async () => { + let outOfServiceCount = 0; + let inServiceCount = 0; + bv.on('outofservice', () => { outOfServiceCount++; }); + bv.on('inservice', () => { inServiceCount++; }); + await bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + deepStrictEqual(outOfServiceCount, 1); + deepStrictEqual(inServiceCount, 0); + await bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 0); + deepStrictEqual(outOfServiceCount, 1); + deepStrictEqual(inServiceCount, 1); + }); + + it('should not affect the Present_Value when toggling Out_Of_Service', async () => { + const before = await bsReadProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.PRESENT_VALUE); + deepStrictEqual(before.trim(), 'active'); + await bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + const during = await bsReadProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.PRESENT_VALUE); + deepStrictEqual(during.trim(), 'active'); + await bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 0); + const after = await bsReadProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.PRESENT_VALUE); + deepStrictEqual(after.trim(), 'active'); + }); + +}); + +describe('Out_Of_Service (writable, CharacterStringValue)', () => { + + let device: BDDevice; + + beforeEach(async () => { + device = new BDDevice(1, { + name: 'Test Device', + }); + device.on('error', console.error); + device.addObject(new BDCharacterStringValue({ + name: 'Writable OOS CSV', + presentValue: 'hello', + writableOutOfService: true, + })); + }); + + afterEach(async () => { + device.destroy(); + }); + + it('should write TRUE to Out_Of_Service and read it back', async () => { + await bsWriteProperty(1, ObjectType.CHARACTERSTRING_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + const value = await bsReadProperty(1, ObjectType.CHARACTERSTRING_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'TRUE'); + }); + + it('should not affect the Present_Value when toggling Out_Of_Service', async () => { + await bsWriteProperty(1, ObjectType.CHARACTERSTRING_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + const value = await bsReadProperty(1, ObjectType.CHARACTERSTRING_VALUE, 1, PropertyIdentifier.PRESENT_VALUE); + deepStrictEqual(value.trim(), '"hello"'); + }); + +}); + +describe('Out_Of_Service (not writable, BinaryValue)', () => { + + let device: BDDevice; + + beforeEach(async () => { + device = new BDDevice(1, { + name: 'Test Device', + }); + device.on('error', console.error); + device.addObject(new BDBinaryValue({ + name: 'Non-writable OOS BV', + writable: false, + presentValue: BinaryPV.INACTIVE, + })); + }); + + afterEach(async () => { + device.destroy(); + }); + + it('should reject writing Out_Of_Service when not writable', async () => { + await rejects( + bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1), + ); + }); + + it('should remain FALSE after a rejected write attempt', async () => { + await rejects( + bsWriteProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1), + ); + const value = await bsReadProperty(1, ObjectType.BINARY_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'FALSE'); + }); + +}); + +describe('Out_Of_Service (writable, Device)', () => { + + let device: BDDevice; + + beforeEach(async () => { + device = new BDDevice(1, { + name: 'Test Device', + writableOutOfService: true, + }); + device.on('error', console.error); + }); + + afterEach(async () => { + device.destroy(); + }); + + it('should read Out_Of_Service as FALSE initially', async () => { + const value = await bsReadProperty(1, ObjectType.DEVICE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'FALSE'); + }); + + it('should write TRUE to Out_Of_Service and read it back', async () => { + await bsWriteProperty(1, ObjectType.DEVICE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + const value = await bsReadProperty(1, ObjectType.DEVICE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'TRUE'); + }); + + it('should report isOutOfService() correctly', async () => { + deepStrictEqual(device.isOutOfService(), false); + await bsWriteProperty(1, ObjectType.DEVICE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + deepStrictEqual(device.isOutOfService(), true); + }); + + it('should emit outofservice and inservice events', async () => { + let outOfServiceCount = 0; + let inServiceCount = 0; + device.on('outofservice', () => { outOfServiceCount++; }); + device.on('inservice', () => { inServiceCount++; }); + await bsWriteProperty(1, ObjectType.DEVICE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + deepStrictEqual(outOfServiceCount, 1); + deepStrictEqual(inServiceCount, 0); + await bsWriteProperty(1, ObjectType.DEVICE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 0); + deepStrictEqual(outOfServiceCount, 1); + deepStrictEqual(inServiceCount, 1); + }); + +}); + +describe('Out_Of_Service (writableOutOfService: false explicit)', () => { + + let device: BDDevice; + + beforeEach(async () => { + device = new BDDevice(1, { + name: 'Test Device', + }); + device.on('error', console.error); + device.addObject(new BDAnalogValue({ + name: 'Explicit non-writable OOS', + unit: EngineeringUnits.DEGREES_CELSIUS, + presentValue: 10, + writableOutOfService: false, + })); + }); + + afterEach(async () => { + device.destroy(); + }); + + it('should reject writing Out_Of_Service when explicitly set to false', async () => { + await rejects( + bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1), + ); + }); + + it('should read Out_Of_Service as FALSE', async () => { + const value = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'FALSE'); + }); + + it('should report isOutOfService() as false', async () => { + deepStrictEqual(device.isOutOfService(), false); + }); + +}); + +describe('Out_Of_Service (multiple objects, mixed writability)', () => { + + let device: BDDevice; + let writableAv: BDAnalogValue; + let readonlyAv: BDAnalogValue; + + beforeEach(async () => { + device = new BDDevice(1, { + name: 'Test Device', + }); + device.on('error', console.error); + writableAv = device.addObject(new BDAnalogValue({ + name: 'Writable OOS AV', + unit: EngineeringUnits.DEGREES_CELSIUS, + presentValue: 10, + writableOutOfService: true, + })); + readonlyAv = device.addObject(new BDAnalogValue({ + name: 'Readonly OOS AV', + unit: EngineeringUnits.PERCENT, + presentValue: 50, + })); + }); + + afterEach(async () => { + device.destroy(); + }); + + it('should allow writing Out_Of_Service on the writable object', async () => { + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + const value = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'TRUE'); + }); + + it('should reject writing Out_Of_Service on the non-writable object', async () => { + await rejects( + bsWriteProperty(1, ObjectType.ANALOG_VALUE, 2, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1), + ); + }); + + it('should not affect the non-writable object when the writable one changes', async () => { + await bsWriteProperty(1, ObjectType.ANALOG_VALUE, 1, PropertyIdentifier.OUT_OF_SERVICE, 16, ApplicationTag.BOOLEAN, 1); + deepStrictEqual(writableAv.isOutOfService(), true); + deepStrictEqual(readonlyAv.isOutOfService(), false); + const value = await bsReadProperty(1, ObjectType.ANALOG_VALUE, 2, PropertyIdentifier.OUT_OF_SERVICE); + deepStrictEqual(value.trim(), 'FALSE'); + }); + +}); \ No newline at end of file