BACnet.Protocol.AccessSpecification (bacstack v0.0.1)
View SourceRepresents 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
@type t() :: %BACnet.Protocol.AccessSpecification{ object_identifier: BACnet.Protocol.ObjectIdentifier.t(), properties: [ BACnet.Protocol.AccessSpecification.Property.t() | :all | :required | :optional ] }
Functions
@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.
@spec parse(BACnet.Protocol.ApplicationTags.encoding_list()) :: {:ok, {t(), rest :: BACnet.Protocol.ApplicationTags.encoding_list()}} | {:error, term()}
Parses a BACnet Read/Write Access Specification from BACnet application tags encoding.
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.