BACnet.Protocol.AccessSpecification (bacstack v0.0.1)

View Source

Represents BACnet Access Specification, used in BACnet Read-Property-Multiple and Write-Property-Multiple, as Read Access Specification and Write Access Specification, respectively.

Summary

Functions

Encodes a BACnet Read/Write Access Specification into BACnet application tags encoding.

Parses a BACnet Read/Write Access Specification from BACnet application tags encoding.

Validates whether the given access specification is in form valid.

Types

t()

@type t() :: %BACnet.Protocol.AccessSpecification{
  object_identifier: BACnet.Protocol.ObjectIdentifier.t(),
  properties: [
    BACnet.Protocol.AccessSpecification.Property.t()
    | :all
    | :required
    | :optional
  ]
}

Functions

encode(access_spec, opts \\ [])

@spec encode(t(), Keyword.t()) ::
  {:ok, BACnet.Protocol.ApplicationTags.encoding_list()} | {:error, term()}

Encodes a BACnet Read/Write Access Specification into BACnet application tags encoding.

parse(tags)

Parses a BACnet Read/Write Access Specification from BACnet application tags encoding.

valid?(t)

@spec valid?(t()) :: boolean()

Validates whether the given access specification is in form valid.

It only validates the struct is valid as per type specification.

Be aware, this function does not know whether it is a read or write access specification, thus it can't verify if the special property identifiers (atoms) are as per BACnet specification. Only read supports the special property identifiers.