BACnet.Protocol.BACnetDateTime (bacstack v0.0.1)
View SourceA BACnet DateTime is used to represent date with timepoints.
It wraps both BACnetDate and BACnetTime.
This module provides some helpers to convert DateTime and NaiveDateTime
into a BACnetDateTime and back.
Summary
Functions
Compares two BACnet DateTime.
Encodes the given BACnet DateTime into an application tag.
Converts a DateTime to a BACnet DateTime.
Converts a NaiveDateTime to a BACnet DateTime.
Parses a BACnet DateTime from BACnet application tags encoding.
Checks whether the given BACnet DateTime is a specific date-time value (every component is a numeric value).
Converts the BACnet DateTime to a DateTime.
Bang-version of to_datetime/1.
Converts the BACnet DateTime to a NaiveDateTime.
Bang-version of to_naive_datetime/1.
Creates a new BACnet DateTime for the current UTC datetime.
Validates whether the given BACnet datetime is in form valid.
Types
@type t() :: %BACnet.Protocol.BACnetDateTime{ date: BACnet.Protocol.BACnetDate.t(), time: BACnet.Protocol.BACnetTime.t() }
Represents a BACnet DateTime. It wraps both BACnet Date and Time.
Functions
Compares two BACnet DateTime.
Returns :gt if first datetime is later than the second,
and :lt for vice versa.
If the two datetimes are equal, :eq is returned.
Note that this is achieved by converting to DateTime and then
comparing them.
@spec encode(t(), Keyword.t()) :: {:ok, BACnet.Protocol.ApplicationTags.encoding_list()} | {:error, term()}
Encodes the given BACnet DateTime into an application tag.
For tagged encoding, you'll have to strip this down further using manual efforts.
@spec from_datetime(DateTime.t()) :: t()
Converts a DateTime to a BACnet DateTime.
@spec from_naive_datetime(NaiveDateTime.t()) :: t()
Converts a NaiveDateTime to a BACnet DateTime.
@spec parse(BACnet.Protocol.ApplicationTags.encoding_list()) :: {:ok, {t(), rest :: BACnet.Protocol.ApplicationTags.encoding_list()}} | {:error, term()}
Parses a BACnet DateTime from BACnet application tags encoding.
Checks whether the given BACnet DateTime is a specific date-time value (every component is a numeric value).
@spec to_datetime(t(), Calendar.time_zone(), Calendar.time_zone_database()) :: {:ok, DateTime.t()} | {:error, term()}
Converts the BACnet DateTime to a DateTime.
@spec to_datetime!(t(), Calendar.time_zone(), Calendar.time_zone_database()) :: DateTime.t() | no_return()
Bang-version of to_datetime/1.
@spec to_naive_datetime(t()) :: {:ok, NaiveDateTime.t()} | {:error, term()}
Converts the BACnet DateTime to a NaiveDateTime.
@spec to_naive_datetime!(t()) :: NaiveDateTime.t() | no_return()
Bang-version of to_naive_datetime/1.
@spec utc_now() :: t()
Creates a new BACnet DateTime for the current UTC datetime.
Validates whether the given BACnet datetime is in form valid.
It only validates the struct is valid as per type specification.