diff --git a/bacure.coerce.html b/bacure.coerce.html index 9b20620..59aa8c2 100644 --- a/bacure.coerce.html +++ b/bacure.coerce.html @@ -1,27 +1,27 @@ -bacure.coerce documentation

bacure.coerce

bacnet->clojure

multimethod

Recursively convert objects from the bacnet4j library into clojure datastructure.
-

bacnet-types

(bacnet-types)
Return a list of the acceptable bacnet types (keywords) for the function
-`clojure->bacnet'.

bean-map

(bean-map java-object)
Create a clojure map using `bean' and remove unwanted info
-

class-to-keyword

(class-to-keyword bacnet-class)

clojure->bacnet

multimethod

Transform clojure data values into the given bacnet type.
+bacure.coerce documentation

bacure.coerce

bacnet->clojure

multimethod

Recursively convert objects from the bacnet4j library into clojure datastructure.
+

bacnet-types

(bacnet-types)
Return a list of the acceptable bacnet types (keywords) for the function
+`clojure->bacnet'.

bean-map

(bean-map java-object)
Create a clojure map using `bean' and remove unwanted info
+

class-to-keyword

(class-to-keyword bacnet-class)

clojure->bacnet

multimethod

Transform clojure data values into the given bacnet type.
 
-Run the function `bacnet-types' to see the available types.

def-subclass-map

macro

(def-subclass-map bacnet-class subclass-map)

enumerated-converter

macro

(enumerated-converter bacnet-class)
Generate the defmethods for `bacnet->clojure' and `clojure->bacnet'
+Run the function `bacnet-types' to see the available types.

def-subclass-map

macro

(def-subclass-map bacnet-class subclass-map)

enumerated-converter

macro

(enumerated-converter bacnet-class)
Generate the defmethods for `bacnet->clojure' and `clojure->bacnet'
 for bacnet enumerated types. 
 
 Also define a <class-name>-map which is a map of keywords and
-integer values.

example

(example object-type-keyword)
Generate an example of the expected
-datastructure.

from-camel

(from-camel string)

int-to-keyword

(int-to-keyword data-map integer)
Convert the integer to its associated keyword in the data-map. If
+integer values.

example

(example object-type-keyword)
Generate an example of the expected
+datastructure.

from-camel

(from-camel string)

int-to-keyword

(int-to-keyword data-map integer)
Convert the integer to its associated keyword in the data-map. If
 no match is found, generate an `unknown-XX' keyword, where XX is the
-given integer.

int-to-keyword*

(int-to-keyword* inverted-data-map integer)
Convert the integer to its associated keyword in the data-map. If
+given integer.

int-to-keyword*

(int-to-keyword* inverted-data-map integer)
Convert the integer to its associated keyword in the data-map. If
 no match is found, generate an `unknown-XX' keyword, where XX is the
 given integer.
 
-TAKES THE INVERTED DATAMAP

key-or-num-to-int

(key-or-num-to-int data-map key-or-num)
Will convert the key-or-num into the integer value associated in
+TAKES THE INVERTED DATAMAP

key-or-num-to-int

(key-or-num-to-int data-map key-or-num)
Will convert the key-or-num into the integer value associated in
 the data-map. If the keyword is not found in the data-map, check to
 see if it's an `unknown-XX' and extract the number.
 
 Default to '0' if the provided value is not a keyword nor a number.
 
-An error is thrown if the keyword doesn't match anything.

object-to-keyword

(object-to-keyword bacnet-object)
Convert bacnet4j objects to clojure keywords
-

subclass-to-map

(subclass-to-map class)
Make a map of the subclasses and associate them with their integer
-value.

to-camel

(to-camel string)
\ No newline at end of file +An error is thrown if the keyword doesn't match anything.

object-to-keyword

(object-to-keyword bacnet-object)
Convert bacnet4j objects to clojure keywords
+

subclass-to-map

(subclass-to-map class)
Make a map of the subclasses and associate them with their integer
+value.

to-camel

(to-camel string)
\ No newline at end of file diff --git a/bacure.coerce.obj.html b/bacure.coerce.obj.html index 3386855..04b4983 100644 --- a/bacure.coerce.obj.html +++ b/bacure.coerce.obj.html @@ -1,20 +1,20 @@ -bacure.coerce.obj documentation

bacure.coerce.obj

bacnet-object-with-local-device

(bacnet-object-with-local-device object-map local-device-object)
Add a local device to the map metadata to allow conversion (and
-automatic object creation) to BACnet.

determine-property-value-type

(determine-property-value-type object-type property-identifier)
Given an object-type and a property-identifier, return a map with
-the :type and if it's a :sequence.

encode-properties

(encode-properties obj-map & remove-keys)
Encode an object map into a sequence of bacnet4j property-values.
+bacure.coerce.obj documentation

bacure.coerce.obj

bacnet-object-with-local-device

(bacnet-object-with-local-device object-map local-device-object)
Add a local device to the map metadata to allow conversion (and
+automatic object creation) to BACnet.

determine-property-value-type

(determine-property-value-type object-type property-identifier)
Given an object-type and a property-identifier, return a map with
+the :type and if it's a :sequence.

encode-properties

(encode-properties obj-map & remove-keys)
Encode an object map into a sequence of bacnet4j property-values.
 Remove-keys can be used to remove read-only properties before
-sending a command.

encode-properties-values

(encode-properties-values obj-map)
Take an object-map (a map of properties and values) and encode the
+sending a command.

encode-properties-values

(encode-properties-values obj-map)
Take an object-map (a map of properties and values) and encode the
 values (not the properties) into their corresponding bacnet4j type. For
 example, a clojure number "1" might be encoded into a real, or
-into an unisgned integer, depending on the object.

encode-property-value

(encode-property-value object-type property-identifier value)
Encode the property value depending on what type it should be given
+into an unisgned integer, depending on the object.

encode-property-value

(encode-property-value object-type property-identifier value)
Encode the property value depending on what type it should be given
 the object.
 
 A type can be specified when required (proprietary properties) by
-using the function `force-type'.

force-type

(force-type value type-keyword)
Associate the value with a specific type. Use only before
+using the function `force-type'.

force-type

(force-type value type-keyword)
Associate the value with a specific type. Use only before
 encoding.
 
-Ex: {:some-property (force-type "some-value" :character-string)}

get-object-type

(get-object-type obj-map)
Find the object type in an object-map (either from
-the :object-type, or in the :object-identifier).

properties-by-option

(properties-by-option object-type option)
Return a list or properties. `option' should
-be :required, :optional, :sequence or :all.

property-type-definitions

(property-type-definitions object-type)
Given an object type, return the properties it should have, and if
-they are :required, :optional, or :sequence.
\ No newline at end of file +Ex: {:some-property (force-type "some-value" :character-string)}

get-object-type

(get-object-type obj-map)
Find the object type in an object-map (either from
+the :object-type, or in the :object-identifier).

properties-by-option

(properties-by-option object-type option)
Return a list or properties. `option' should
+be :required, :optional, :sequence or :all.

property-type-definitions

(property-type-definitions object-type)
Given an object type, return the properties it should have, and if
+they are :required, :optional, or :sequence.
\ No newline at end of file diff --git a/bacure.coerce.service.acknowledgement.html b/bacure.coerce.service.acknowledgement.html index 7cb1be3..1fe8bdc 100644 --- a/bacure.coerce.service.acknowledgement.html +++ b/bacure.coerce.service.acknowledgement.html @@ -1,3 +1,3 @@ -bacure.coerce.service.acknowledgement documentation

bacure.coerce.service.acknowledgement

\ No newline at end of file +bacure.coerce.service.acknowledgement documentation

bacure.coerce.service.acknowledgement

\ No newline at end of file diff --git a/bacure.coerce.service.confirmed.html b/bacure.coerce.service.confirmed.html index 8618463..e57a771 100644 --- a/bacure.coerce.service.confirmed.html +++ b/bacure.coerce.service.confirmed.html @@ -1,4 +1,4 @@ -bacure.coerce.service.confirmed documentation

bacure.coerce.service.confirmed

enable-disable-map

Map of keywords and associated integer values.
-
\ No newline at end of file +bacure.coerce.service.confirmed documentation

bacure.coerce.service.confirmed

enable-disable-map

Map of keywords and associated integer values.
+
\ No newline at end of file diff --git a/bacure.coerce.type.constructed.html b/bacure.coerce.type.constructed.html index 1ce2b72..0d3e034 100644 --- a/bacure.coerce.type.constructed.html +++ b/bacure.coerce.type.constructed.html @@ -1,10 +1,10 @@ -bacure.coerce.type.constructed documentation

bacure.coerce.type.constructed

*detailed-property-value*

dynamic

If true, conversions from bacnet4j will include the
-property-array-index and the value's priority.

accumulator-status-map

Map of keywords and associated integer values.
-

c-access-rule

(c-access-rule value)

c-accumulator-record

(c-accumulator-record value)

c-action-command

(c-action-command {:keys [device-identifier object-identifier property-identifier property-array-index property-value priority post-delay quit-on-failure write-successful]})

c-action-list

(c-action-list coll)

c-daily-schedule

(c-daily-schedule value)

c-date-time

(c-date-time string)

c-device-object-property-reference

(c-device-object-property-reference [device-object-identifier object-property-reference])

c-device-object-reference

(c-device-object-reference [device-identifier object-identifier])

c-event-transition-bits

(c-event-transition-bits {:keys [to-fault to-normal to-offnormal], :or {to-fault false, to-normal false, to-offnormal false}})

c-limit-enable

(c-limit-enable {:keys [high-limit-enable low-limit-enable], :or {high-limit-enable false, low-limit-enable false}})

c-log-record

(c-log-record {:keys [timestamp type value status-flags], :or {type :real, value 0}})

c-object-property-reference

(c-object-property-reference [object-identifier property-reference])

c-object-types-supported

(c-object-types-supported smap)

c-property-reference

(c-property-reference property-reference)
Make a property reference. Argument can be of the forms:
+bacure.coerce.type.constructed documentation

bacure.coerce.type.constructed

*detailed-property-value*

dynamic

If true, conversions from bacnet4j will include the
+property-array-index and the value's priority.

accumulator-status-map

Map of keywords and associated integer values.
+

c-access-rule

(c-access-rule value)

c-accumulator-record

(c-accumulator-record value)

c-action-command

(c-action-command {:keys [device-identifier object-identifier property-identifier property-array-index property-value priority post-delay quit-on-failure write-successful]})

c-action-list

(c-action-list coll)

c-daily-schedule

(c-daily-schedule value)

c-date-time

(c-date-time string)

c-device-object-property-reference

(c-device-object-property-reference [device-object-identifier object-property-reference])

c-device-object-reference

(c-device-object-reference [device-identifier object-identifier])

c-event-transition-bits

(c-event-transition-bits {:keys [to-fault to-normal to-offnormal], :or {to-fault false, to-normal false, to-offnormal false}})

c-limit-enable

(c-limit-enable {:keys [high-limit-enable low-limit-enable], :or {high-limit-enable false, low-limit-enable false}})

c-log-record

(c-log-record {:keys [timestamp type value status-flags], :or {type :real, value 0}})

c-object-property-reference

(c-object-property-reference [object-identifier property-reference])

c-object-types-supported

(c-object-types-supported smap)

c-property-reference

(c-property-reference property-reference)
Make a property reference. Argument can be of the forms:
 [<property-identifer> <array-index>]
-<property-identifier>

c-property-value

(c-property-value m)
Encode the property-value object. The value must already be a bacnet4j object.
+<property-identifier>

c-property-value

(c-property-value m)
Encode the property-value object. The value must already be a bacnet4j object.
 
 Accept 2 forms. The simple form is the one usually returned when
 converting the bacnet4j object into a clojure datastructure.
@@ -16,17 +16,17 @@
    :priority ...}
 
 Or simple:
-- [property-identifier value]

c-property-value*

(c-property-value* m)

c-read-access-specification

(c-read-access-specification object-identifier property-references)
As property-references, will accept:
+- [property-identifier value]

c-property-value*

(c-property-value* m)

c-read-access-specification

(c-read-access-specification object-identifier property-references)
As property-references, will accept:
 <property-identifier>
 [<property-identifier> <property-identifier>]
-[[<property-identifier> <array-index>] [<property-identifier> <array-index>]]

c-recipient

(c-recipient v)

c-services-supported

(c-services-supported smap)

c-setpoint-reference

(c-setpoint-reference object-property-reference)

c-simple-property-value

(c-simple-property-value vectors)

c-status-flags

(c-status-flags {:keys [in-alarm fault overridden out-of-service], :or {in-alarm false, fault false, overridden false, out-of-service false}})

c-time-value

(c-time-value value)

coerce-supported

(coerce-supported java-object smap)

location-specifier-map

Map of keywords and associated integer values.
-

object-types-supported

services-supported

List of services associated with their bit-string value. We need to
-keep the ordering here, so no map.

simple-coerce-supported

(simple-coerce-supported java-object smap)

time-range-specifier-map

Map of keywords and associated integer values.
-

with-detailed-property-value

macro

(with-detailed-property-value & body)
Property-value(s), instead of being converted to
+[[<property-identifier> <array-index>] [<property-identifier> <array-index>]]

c-recipient

(c-recipient v)

c-services-supported

(c-services-supported smap)

c-setpoint-reference

(c-setpoint-reference object-property-reference)

c-simple-property-value

(c-simple-property-value vectors)

c-status-flags

(c-status-flags {:keys [in-alarm fault overridden out-of-service], :or {in-alarm false, fault false, overridden false, out-of-service false}})

c-time-value

(c-time-value value)

coerce-supported

(coerce-supported java-object smap)

location-specifier-map

Map of keywords and associated integer values.
+

object-types-supported

services-supported

List of services associated with their bit-string value. We need to
+keep the ordering here, so no map.

simple-coerce-supported

(simple-coerce-supported java-object smap)

time-range-specifier-map

Map of keywords and associated integer values.
+

with-detailed-property-value

macro

(with-detailed-property-value & body)
Property-value(s), instead of being converted to
 '[property-identifier value]'
 
 Will get some additional values:
 {:property-identifier ...,
  :property-array-index ...,
  :value ...,
- :priority ...}.
\ No newline at end of file + :priority ...}.
\ No newline at end of file diff --git a/bacure.coerce.type.enumerated.html b/bacure.coerce.type.enumerated.html index eff799b..7c1e9e0 100644 --- a/bacure.coerce.type.enumerated.html +++ b/bacure.coerce.type.enumerated.html @@ -1,54 +1,54 @@ -bacure.coerce.type.enumerated documentation

bacure.coerce.type.enumerated

abort-reason-map

Map of keywords and associated integer values.
-

access-authentication-factor-disable-map

Map of keywords and associated integer values.
-

access-credential-disable-map

Map of keywords and associated integer values.
-

access-credential-disable-reason-map

Map of keywords and associated integer values.
-

access-event-map

Map of keywords and associated integer values.
-

access-passback-mode-map

Map of keywords and associated integer values.
-

access-user-type-map

Map of keywords and associated integer values.
-

access-zone-occupancy-state-map

Map of keywords and associated integer values.
-

action-map

Map of keywords and associated integer values.
-

authentication-factor-type-map

Map of keywords and associated integer values.
-

authentication-status-map

Map of keywords and associated integer values.
-

backup-state-map

Map of keywords and associated integer values.
-

binary-pv-map

Map of keywords and associated integer values.
-

device-status-map

Map of keywords and associated integer values.
-

door-alarm-state-map

Map of keywords and associated integer values.
-

door-secured-status-map

Map of keywords and associated integer values.
-

door-status-map

Map of keywords and associated integer values.
-

door-value-map

Map of keywords and associated integer values.
-

engineering-units-map

Map of keywords and associated integer values.
-

error-class-map

Map of keywords and associated integer values.
-

error-code-map

Map of keywords and associated integer values.
-

event-state-map

Map of keywords and associated integer values.
-

event-type-map

Map of keywords and associated integer values.
-

file-access-method-map

Map of keywords and associated integer values.
-

life-safety-mode-map

Map of keywords and associated integer values.
-

life-safety-operation-map

Map of keywords and associated integer values.
-

life-safety-state-map

Map of keywords and associated integer values.
-

lighting-in-progress-map

Map of keywords and associated integer values.
-

lighting-operation-map

Map of keywords and associated integer values.
-

lighting-transition-map

Map of keywords and associated integer values.
-

lock-status-map

Map of keywords and associated integer values.
-

logging-type-map

Map of keywords and associated integer values.
-

maintenance-map

Map of keywords and associated integer values.
-

message-priority-map

Map of keywords and associated integer values.
-

node-type-map

Map of keywords and associated integer values.
-

notify-type-map

Map of keywords and associated integer values.
-

object-type-map

Map of keywords and associated integer values.
-

polarity-map

Map of keywords and associated integer values.
-

program-error-map

Map of keywords and associated integer values.
-

program-request-map

Map of keywords and associated integer values.
-

program-state-map

Map of keywords and associated integer values.
-

property-identifier-map

Map of keywords and associated integer values.
-

reject-reason-map

Map of keywords and associated integer values.
-

reliability-map

Map of keywords and associated integer values.
-

restart-reason-map

Map of keywords and associated integer values.
-

security-level-map

Map of keywords and associated integer values.
-

segmentation-map

Map of keywords and associated integer values.
-

shed-state-map

Map of keywords and associated integer values.
-

silenced-state-map

Map of keywords and associated integer values.
-

vt-class-map

Map of keywords and associated integer values.
-

write-status-map

Map of keywords and associated integer values.
-
\ No newline at end of file +bacure.coerce.type.enumerated documentation

bacure.coerce.type.enumerated

abort-reason-map

Map of keywords and associated integer values.
+

access-authentication-factor-disable-map

Map of keywords and associated integer values.
+

access-credential-disable-map

Map of keywords and associated integer values.
+

access-credential-disable-reason-map

Map of keywords and associated integer values.
+

access-event-map

Map of keywords and associated integer values.
+

access-passback-mode-map

Map of keywords and associated integer values.
+

access-user-type-map

Map of keywords and associated integer values.
+

access-zone-occupancy-state-map

Map of keywords and associated integer values.
+

action-map

Map of keywords and associated integer values.
+

authentication-factor-type-map

Map of keywords and associated integer values.
+

authentication-status-map

Map of keywords and associated integer values.
+

backup-state-map

Map of keywords and associated integer values.
+

binary-pv-map

Map of keywords and associated integer values.
+

device-status-map

Map of keywords and associated integer values.
+

door-alarm-state-map

Map of keywords and associated integer values.
+

door-secured-status-map

Map of keywords and associated integer values.
+

door-status-map

Map of keywords and associated integer values.
+

door-value-map

Map of keywords and associated integer values.
+

engineering-units-map

Map of keywords and associated integer values.
+

error-class-map

Map of keywords and associated integer values.
+

error-code-map

Map of keywords and associated integer values.
+

event-state-map

Map of keywords and associated integer values.
+

event-type-map

Map of keywords and associated integer values.
+

file-access-method-map

Map of keywords and associated integer values.
+

life-safety-mode-map

Map of keywords and associated integer values.
+

life-safety-operation-map

Map of keywords and associated integer values.
+

life-safety-state-map

Map of keywords and associated integer values.
+

lighting-in-progress-map

Map of keywords and associated integer values.
+

lighting-operation-map

Map of keywords and associated integer values.
+

lighting-transition-map

Map of keywords and associated integer values.
+

lock-status-map

Map of keywords and associated integer values.
+

logging-type-map

Map of keywords and associated integer values.
+

maintenance-map

Map of keywords and associated integer values.
+

message-priority-map

Map of keywords and associated integer values.
+

node-type-map

Map of keywords and associated integer values.
+

notify-type-map

Map of keywords and associated integer values.
+

object-type-map

Map of keywords and associated integer values.
+

polarity-map

Map of keywords and associated integer values.
+

program-error-map

Map of keywords and associated integer values.
+

program-request-map

Map of keywords and associated integer values.
+

program-state-map

Map of keywords and associated integer values.
+

property-identifier-map

Map of keywords and associated integer values.
+

reject-reason-map

Map of keywords and associated integer values.
+

reliability-map

Map of keywords and associated integer values.
+

restart-reason-map

Map of keywords and associated integer values.
+

security-level-map

Map of keywords and associated integer values.
+

segmentation-map

Map of keywords and associated integer values.
+

shed-state-map

Map of keywords and associated integer values.
+

silenced-state-map

Map of keywords and associated integer values.
+

vt-class-map

Map of keywords and associated integer values.
+

write-status-map

Map of keywords and associated integer values.
+
\ No newline at end of file diff --git a/bacure.coerce.type.error.html b/bacure.coerce.type.error.html index c4665c2..40a9ab8 100644 --- a/bacure.coerce.type.error.html +++ b/bacure.coerce.type.error.html @@ -1,3 +1,3 @@ -bacure.coerce.type.error documentation

bacure.coerce.type.error

\ No newline at end of file +bacure.coerce.type.error documentation

bacure.coerce.type.error

\ No newline at end of file diff --git a/bacure.coerce.type.primitive.html b/bacure.coerce.type.primitive.html index 1ec7841..0fdcab0 100644 --- a/bacure.coerce.type.primitive.html +++ b/bacure.coerce.type.primitive.html @@ -1,7 +1,7 @@ -bacure.coerce.type.primitive documentation

bacure.coerce.type.primitive

c-bitstring

(c-bitstring value)

c-boolean

(c-boolean bool)

c-character-string

(c-character-string value)

c-date

(c-date string)

c-double

(c-double number)

c-enumerated

(c-enumerated number)

c-object-identifier

(c-object-identifier)(c-object-identifier [object-type object-instance])
Make an object identifier.
-

c-octet-string

(c-octet-string v)

c-primitive

(c-primitive something)
Given 'something', we take an educated guess as to what this should
+bacure.coerce.type.primitive documentation

bacure.coerce.type.primitive

c-bitstring

(c-bitstring value)

c-boolean

(c-boolean bool)

c-character-string

(c-character-string value)

c-date

(c-date string)

c-double

(c-double number)

c-enumerated

(c-enumerated number)

c-object-identifier

(c-object-identifier)(c-object-identifier [object-type object-instance])
Make an object identifier.
+

c-octet-string

(c-octet-string v)

c-primitive

(c-primitive something)
Given 'something', we take an educated guess as to what this should
 become. (Contrary to everything else in the BACnet world, the
 TimeValue object accepts MANY different types of data. As such, we
-can't just convert it to a bacnet4j equivalent as we usually do.)

c-real

(c-real value)

c-signed

(c-signed value)

c-time

(c-time string)

c-unsigned-16

(c-unsigned-16 value)

c-unsigned-32

(c-unsigned-32 value)

c-unsigned-8

(c-unsigned-8 value)

c-unsigned-integer

(c-unsigned-integer value)
\ No newline at end of file +can't just convert it to a bacnet4j equivalent as we usually do.)

c-real

(c-real value)

c-signed

(c-signed value)

c-time

(c-time string)

c-unsigned-16

(c-unsigned-16 value)

c-unsigned-32

(c-unsigned-32 value)

c-unsigned-8

(c-unsigned-8 value)

c-unsigned-integer

(c-unsigned-integer value)
\ No newline at end of file diff --git a/bacure.core.html b/bacure.core.html index 556b7bd..0c77017 100644 --- a/bacure.core.html +++ b/bacure.core.html @@ -1,7 +1,7 @@ -bacure.core documentation

bacure.core

boot-up!

(boot-up!)(boot-up! configs)
Create a local-device, load its config file, initialize it, and
-find the remote devices.

find-bacnet-port

(find-bacnet-port)(find-bacnet-port configs)
Scan ports to see if any BACnet device will respond. Use port
+bacure.core documentation

bacure.core

boot-up!

(boot-up!)(boot-up! configs)
Create a local-device, load its config file, initialize it, and
+find the remote devices.

find-bacnet-port

(find-bacnet-port)(find-bacnet-port configs)
Scan ports to see if any BACnet device will respond. Use port
 numbers as device-id.
 
 Example use:
@@ -26,7 +26,7 @@
 devices have bad behaviour and send data back to 'their' port,
 regardless from which port the WhoIs came. In other to maximize our
 chances of finding them, we reset the local device with a new port
-each time.

find-objects

(find-objects device-id criteria-map)(find-objects device-id criteria-map object-identifiers)
Return a list of objects-maps (properties) matching the criteria-map.
+each time.

find-objects

(find-objects device-id criteria-map)(find-objects device-id criteria-map object-identifiers)
Return a list of objects-maps (properties) matching the criteria-map.
 
 Criteria-map example:
 {:present-value #(> % 10) :object-name #"(?i)analog" :model-name "GNU"}
@@ -43,7 +43,7 @@
 * In case of multiple objects, if segmentation is supported, the
   same property is retrieved in a single request. For example, the
   `description' property for 3 different objects would be merged
-  into a single request.

find-objects-everywhere

(find-objects-everywhere criteria-map)(find-objects-everywhere criteria-map object-identifiers)
Same as `find-objects', but will search every known devices on the network.
+  into a single request.

find-objects-everywhere

(find-objects-everywhere criteria-map)(find-objects-everywhere criteria-map object-identifiers)
Same as `find-objects', but will search every known devices on the network.
 Group the result in a map where the device object identifier is the
 key. E.g. [:device 1234]
 
@@ -57,17 +57,17 @@
 {:present-value #(> % 10) :object-name #"(?i)analog" :model-name "GNU"}
 
 All remote devices are queried simultaneously (or as much as the
-local-device can allow).

get-device-id

(get-device-id device-map)
Return the device-id from a device-map (bunch of properties).
+local-device can allow).

get-device-id

(get-device-id device-map)
Return the device-id from a device-map (bunch of properties).
 
 This can be used to search the device-id amongst all the properties
-returned by (remote-objects-all-properties <some-device-id>).

read-trend-log

(read-trend-log device-id object-identifier)(read-trend-log local-device-id device-id object-identifier)
A convenience function to retrieve all data from a trend-log (even the log-buffer).
+returned by (remote-objects-all-properties <some-device-id>).

read-trend-log

(read-trend-log device-id object-identifier)(read-trend-log local-device-id device-id object-identifier)
A convenience function to retrieve all data from a trend-log (even the log-buffer).
 
 Example:  (read-trend-log 4589 [:trend-log 1])
 -> {:object-name "Trend Log 1",
     :start-time "2009-01-01T05:00:00.000Z",
     :log-buffer
     [["2009-03-01T07:15:00.000Z" 1009.0]
-     ["2009-03-01T07:30:00.000Z" 1010.0]...]...}

remote-object-properties

(remote-object-properties device-id object-identifiers properties)(remote-object-properties local-device-id device-id object-identifiers properties)
Query a remote device and return the properties values
+     ["2009-03-01T07:30:00.000Z" 1010.0]...]...}

remote-object-properties

(remote-object-properties device-id object-identifiers properties)(remote-object-properties local-device-id device-id object-identifiers properties)
Query a remote device and return the properties values
  Example: (remote-object-properties 1234 [:analog-input 0] :all)
  -> {:notification-class 4194303, :event-enable .....}
 
@@ -75,16 +75,16 @@
  item or a collection.
 
  Discards any properties with an error value 
-(example: property not found in object).

remote-object-properties-with-error

(remote-object-properties-with-error device-id object-identifiers properties)(remote-object-properties-with-error local-device-id device-id object-identifiers properties)
Query a remote device and return the properties values
+(example: property not found in object).

remote-object-properties-with-error

(remote-object-properties-with-error device-id object-identifiers properties)(remote-object-properties-with-error local-device-id device-id object-identifiers properties)
Query a remote device and return the properties values
 Example: (remote-object-properties-with-error 1234 [:analog-input 0] :all)
 -> {:notification-class 4194303, :event-enable .....}
 
 Both `object-identifiers' and `properties' accept either a single
 item or a collection.
 
-You probably want to use `remote-object-properties'.

remote-objects

(remote-objects device-id)(remote-objects local-device-id device-id)
Return a collection of every objects in the remote device.
--> [[:device 1234] [:analog-input 0]...]

remote-objects-all-properties

(remote-objects-all-properties device-id)(remote-objects-all-properties local-device-id device-id)
Return a list of maps of every objects and their properties.
-

where

(where criteria)
Will test with criteria map as a predicate. If the value of a
+You probably want to use `remote-object-properties'.

remote-objects

(remote-objects device-id)(remote-objects local-device-id device-id)
Return a collection of every objects in the remote device.
+-> [[:device 1234] [:analog-input 0]...]

remote-objects-all-properties

(remote-objects-all-properties device-id)(remote-objects-all-properties local-device-id device-id)
Return a list of maps of every objects and their properties.
+

where

(where criteria)
Will test with criteria map as a predicate. If the value of a
 key-val pair is a function, use it as a predicate. If the tested map
 value is not found, fail.
 
@@ -92,7 +92,7 @@
 Criteria map:  {:a #(> % 10) :b "foo"}
 Tested-maps  {:a 20 :b "foo"}  success
              {:b "foo"}        fail
-             {:a nil :b "foo"} fail

where-or-not-found

(where-or-not-found criteria)
Will test with criteria map as a predicate. If the value of a
+             {:a nil :b "foo"} fail

where-or-not-found

(where-or-not-found criteria)
Will test with criteria map as a predicate. If the value of a
 key-val pair is a function, use it as a predicate. If the tested map
 value is not found, pass.
 
@@ -100,4 +100,4 @@
 Criteria map:  {:a #(> % 10) :b "foo"}
 Tested-maps  {:a 20 :b "foo"}  success
              {:b "foo"}        success
-             {:a nil :b "foo"} fail
\ No newline at end of file + {:a nil :b "foo"} fail
\ No newline at end of file diff --git a/bacure.events.html b/bacure.events.html index 47f411d..f4c370d 100644 --- a/bacure.events.html +++ b/bacure.events.html @@ -1,4 +1,4 @@ -bacure.events documentation

bacure.events

all-cached-cov-events

(all-cached-cov-events)(all-cached-cov-events local-device-id)

cached-cov-events

(cached-cov-events)(cached-cov-events process-identifier)(cached-cov-events local-device-id process-identifier)

cached-cov-events-by-object

(cached-cov-events-by-object)(cached-cov-events-by-object process-identifier)(cached-cov-events-by-object local-device-id process-identifier)

cached-cov-events-for-object

(cached-cov-events-for-object object-identifier)(cached-cov-events-for-object process-identifier object-identifier)(cached-cov-events-for-object local-device-id process-identifier object-identifier)

cached-remote-devices

(cached-remote-devices)(cached-remote-devices local-device-id)

cached-remote-objects

(cached-remote-objects)(cached-remote-objects local-device-id)

clear-all-cached-cov-events!

(clear-all-cached-cov-events!)(clear-all-cached-cov-events! local-device-id)

clear-cached-cov-events!

(clear-cached-cov-events!)(clear-cached-cov-events! process-identifier)(clear-cached-cov-events! local-device-id process-identifier)

clear-cached-remote-devices!

(clear-cached-remote-devices!)(clear-cached-remote-devices! local-device-id)

clear-cached-remote-objects!

(clear-cached-remote-objects!)(clear-cached-remote-objects! local-device-id)

default-cov-process-id

unconfirmed-event-listener

(unconfirmed-event-listener local-device-id)
Listens to IAm, IHave, and COV events and updates a cache with the results
-
\ No newline at end of file +bacure.events documentation

bacure.events

all-cached-cov-events

(all-cached-cov-events)(all-cached-cov-events local-device-id)

cached-cov-events

(cached-cov-events)(cached-cov-events process-identifier)(cached-cov-events local-device-id process-identifier)

cached-cov-events-by-object

(cached-cov-events-by-object)(cached-cov-events-by-object process-identifier)(cached-cov-events-by-object local-device-id process-identifier)

cached-cov-events-for-object

(cached-cov-events-for-object object-identifier)(cached-cov-events-for-object process-identifier object-identifier)(cached-cov-events-for-object local-device-id process-identifier object-identifier)

cached-remote-devices

(cached-remote-devices)(cached-remote-devices local-device-id)

cached-remote-objects

(cached-remote-objects)(cached-remote-objects local-device-id)

clear-all-cached-cov-events!

(clear-all-cached-cov-events!)(clear-all-cached-cov-events! local-device-id)

clear-cached-cov-events!

(clear-cached-cov-events!)(clear-cached-cov-events! process-identifier)(clear-cached-cov-events! local-device-id process-identifier)

clear-cached-remote-devices!

(clear-cached-remote-devices!)(clear-cached-remote-devices! local-device-id)

clear-cached-remote-objects!

(clear-cached-remote-objects!)(clear-cached-remote-objects! local-device-id)

default-cov-process-id

unconfirmed-event-listener

(unconfirmed-event-listener local-device-id)
Listens to IAm, IHave, and COV events and updates a cache with the results
+
\ No newline at end of file diff --git a/bacure.local-device.html b/bacure.local-device.html index a46dcbe..511683f 100644 --- a/bacure.local-device.html +++ b/bacure.local-device.html @@ -1,14 +1,14 @@ -bacure.local-device documentation

bacure.local-device

add-listener!

(add-listener! local-device-id listener)

add-object!

(add-object! object-map)(add-object! device-id object-map)
Add the object map to the local device. Returns an object map.
-

clear!

(clear! local-device-id)
Destroy all traces of one local-device.
-

clear-all!

(clear-all!)
Destroy all traces of all local-devices.
-

default-configs

Some default configurations for device creation.
-

default-transport

(default-transport network)

disable-communications!

enable-communications!

get-configs

(get-configs local-device-id)
Return a map of the local-device configurations
-

get-local-device

(get-local-device device-id)
Return the local-device associated with the device-id. If device-id
-is nil, simply return the first found.

get-local-device-id

(get-local-device-id device-object)
Given a local device object, return the device ID.
-

i-am-broadcast!

(i-am-broadcast!)(i-am-broadcast! local-device-id)
Send an 'I am' broadcast on the network.
-

initialize!

(initialize!)(initialize! local-device-id)
Initialize the local device. This will bind it to it's port (most
+bacure.local-device documentation

bacure.local-device

-next-instance

(-next-instance objects object-type)

add-listener!

(add-listener! local-device-id listener)

add-object!

(add-object! object-map)(add-object! device-id object-map)
Add the object map to the local device. Returns an object map.
+

clear!

(clear! local-device-id)
Destroy all traces of one local-device.
+

clear-all!

(clear-all!)
Destroy all traces of all local-devices.
+

default-configs

Some default configurations for device creation.
+

default-transport

(default-transport network)

disable-communications!

enable-communications!

get-configs

(get-configs local-device-id)
Return a map of the local-device configurations
+

get-local-device

(get-local-device device-id)
Return the local-device associated with the device-id. If device-id
+is nil, simply return the first found.

get-local-device-id

(get-local-device-id device-object)
Given a local device object, return the device ID.
+

i-am-broadcast!

(i-am-broadcast!)(i-am-broadcast! local-device-id)
Send an 'I am' broadcast on the network.
+

initialize!

(initialize!)(initialize! local-device-id)
Initialize the local device. This will bind it to it's port (most
 likely 47808), send a WhoIsRequest and load any programs available
 for the local-device. The port will remain unavailable until the
 device is terminated. Once terminated, you should discard the device
@@ -17,19 +17,26 @@
 For more information on the local-device 'programs' operations, see
 the bacure.local-save namespace.
 
-Return true if initializing (binding to port) is successful.

list-local-devices

(list-local-devices)

load-local-device-backup!

(load-local-device-backup! local-device-id)(load-local-device-backup! local-device-id new-configs)
Load the local-device backup file and reset it with this new
-configuration.

local-device-backup

(local-device-backup)(local-device-backup local-device-id)
Get the necessary information to create a local device backup.
-

local-device-object

(local-device-object device-id)
Return the local-device bacnet4j object associated with the
-device-id. If device-id is nil, simply return the first found.

local-objects

(local-objects)(local-objects device-id)
Return a list of all the local objects.
-

maybe-register-as-foreign-device!

(maybe-register-as-foreign-device! local-device-id)
Try to register the device if the key ':foreign-device-target' is
-present in the configuration 

new-local-device!

(new-local-device!)(new-local-device! configs-map)
Create a new device and return its ID. (A device is required to
+Return true if initializing (binding to port) is successful.

list-local-devices

(list-local-devices)

load-local-device-backup!

(load-local-device-backup! local-device-id)(load-local-device-backup! local-device-id new-configs)
Load the local-device backup file and reset it with this new
+configuration.

local-device-backup

(local-device-backup)(local-device-backup local-device-id)
Get the necessary information to create a local device backup.
+

local-device-object

(local-device-object device-id)
Return the local-device bacnet4j object associated with the
+device-id. If device-id is nil, simply return the first found.

local-objects

(local-objects)(local-objects device-id)
Return a list of all the local objects.
+

local-test-devices!

(local-test-devices! qty port)
Generate multiple devices with a unique IP address.
+(127.0.0.1, 127.0.0.2, etc.)
+
+They don't bind to anylocal ("0.0.0.0") and thus won't
+automatically receive broadcasts.
+
+You probably want to register them as foreign devices or use
+`remote-device/local-registered-test-devices!` instead.

maybe-register-as-foreign-device!

(maybe-register-as-foreign-device! local-device-id)
Try to register the device if the key ':foreign-device-target' is
+present in the configuration 

new-local-device!

(new-local-device!)(new-local-device! configs-map)
Create a new device and return its ID. (A device is required to
 communicate over the BACnet network.). Use the function 'initialize'
 and 'terminate' to bind and unbind the device to the BACnet port. If
 needed, the initial configurations are associated with the
 keyword :init-configs inside the local-device map.'
 
-See README for more information about how to specify configs-map.

object

(object object-identifier)(object device-id object-identifier)
Return a local object
-

register-as-foreign-device

(register-as-foreign-device target-ip-or-hostname target-port time-to-live)(register-as-foreign-device local-device-id target-ip-or-hostname target-port time-to-live)
Register the local device as a foreign device in a device located
+See README for more information about how to specify configs-map.

object

(object object-identifier)(object device-id object-identifier)
Return a local object
+

register-as-foreign-device

(register-as-foreign-device target-ip-or-hostname target-port time-to-live)(register-as-foreign-device local-device-id target-ip-or-hostname target-port time-to-live)
Register the local device as a foreign device in a device located
 on another network. Will block until the registration is completed
 or the request times out.
 
@@ -39,21 +46,21 @@
 Re-registration are handled automatically.
 
 Throws a BACnet exception if timeout, a NAK is received, the device
-is already registered or if the request couldn't be sent.

remove-object!

(remove-object! object-identifier)(remove-object! device-id object-identifier)

reset-local-device!

(reset-local-device!)(reset-local-device! config-or-id)(reset-local-device! local-device-id new-config)
Terminate the local device and discard it. Replace it with a new
+is already registered or if the request couldn't be sent.

remove-all-objects!

(remove-all-objects!)(remove-all-objects! device-id)
Remove all the objects (except the local device itself).
+

remove-object!

(remove-object! object-identifier)(remove-object! device-id object-identifier)

reset-local-device!

(reset-local-device!)(reset-local-device! config-or-id)(reset-local-device! local-device-id new-config)
Terminate the local device and discard it. Replace it with a new
 local device, and apply the same configurations as the previous one.
 If a map with new configurations is provided, it will be merged with
 the old config.
 
 (reset-local-device {:device-id 1112})
----> reset the device and change the device id.

save-local-device-backup!

(save-local-device-backup!)
Save the device backup on a local file and return the config map.
-

terminate!

(terminate!)(terminate! local-device-id)
Terminate the local device, freeing any bound port in the process. Close its
+---> reset the device and change the device id.

save-local-device-backup!

(save-local-device-backup!)
Save the device backup on a local file and return the config map.
+

terminate!

(terminate!)(terminate! local-device-id)
Terminate the local device, freeing any bound port in the process. Close its
 serial connection if it exists afterwards. (If we don't terminate the device
 first, and it's got an MS/TP node, it'll try to access a closed serial
-connection in its MS/TP node thread and it'll throw angrily.)

terminate-all!

(terminate-all!)
Terminate all local devices.
-

unregister-as-foreign-device

(unregister-as-foreign-device)(unregister-as-foreign-device local-device-id)
Unregister as a foreign device. Should be done automatically when
-terminating a local device.

update-configs!

(update-configs! local-device-id properties-smap)
Given a map of properties, will update the local-device. Return the
+connection in its MS/TP node thread and it'll throw angrily.)

terminate-all!

(terminate-all!)
Terminate all local devices.
+

unregister-as-foreign-device

(unregister-as-foreign-device)(unregister-as-foreign-device local-device-id)
Unregister as a foreign device. Should be done automatically when
+terminating a local device.

update-configs!

(update-configs! local-device-id properties-smap)
Given a map of properties, will update the local-device. Return the
 device configs. Please note that many properties CANNOT be changed
 while the device is initialized (:object-identifier for example) and
-will simply be discarded.

with-temp-devices

macro

(with-temp-devices & body)
Execute body with a temporary set of local-devices. Any existing
-devices will be terminated before the body executes and re-initiated
-after. Useful for tests.
\ No newline at end of file +will simply be discarded.

update-object!

(update-object! object-map)(update-object! device-id object-map)

with-temp-devices

macro

(with-temp-devices & body)
Execute body with a temporary set of local-devices. Useful for tests.
+Warning: uses `with-redefs`, don't use concurrently (ex: pmap).
\ No newline at end of file diff --git a/bacure.local-save.html b/bacure.local-save.html index 3745445..369c1f2 100644 --- a/bacure.local-save.html +++ b/bacure.local-save.html @@ -1,14 +1,14 @@ -bacure.local-save documentation

bacure.local-save

config-file

delete-configs

(delete-configs)
Delete the configuration file for the local-device.
-

get-configs

(get-configs)
Get the map configs for the local device.
-

get-program-content

(get-program-content)(get-program-content n)
Return the string content of a program file. Nil if file doesn't
-exist (or is empty).

get-program-file

(get-program-file)(get-program-file name)
Return the program file as a string.
-

load-program

(load-program)(load-program name)
Load a given program file. Default to 'main' if no name is given.
-

make-program-path

(make-program-path name)

merge-and-save-configs

(merge-and-save-configs content)
Merge the given map with the config file. Return the resulting map.
-

mkdir-spit

(mkdir-spit f content)
Try to make the directories leading to the file if they don't
-already exists.

path

safe-read

(safe-read s)
Evaluate the string in a safe way. If error while reading, return
-nil

save-and-load

(save-and-load content)(save-and-load name content)
Save and load a program string. Default to 'main' if no name is given.
-

save-configs

(save-configs content)
Save configs for the local device. Should be a map. Return the
-configs.

set-program

(set-program content)(set-program name content)
Insert the given string into the program file. Program file default
-to 'main' if not specified.
\ No newline at end of file +bacure.local-save documentation

bacure.local-save

config-file

delete-configs

(delete-configs)
Delete the configuration file for the local-device.
+

get-configs

(get-configs)
Get the map configs for the local device.
+

get-program-content

(get-program-content)(get-program-content n)
Return the string content of a program file. Nil if file doesn't
+exist (or is empty).

get-program-file

(get-program-file)(get-program-file name)
Return the program file as a string.
+

load-program

(load-program)(load-program name)
Load a given program file. Default to 'main' if no name is given.
+

make-program-path

(make-program-path name)

merge-and-save-configs

(merge-and-save-configs content)
Merge the given map with the config file. Return the resulting map.
+

mkdir-spit

(mkdir-spit f content)
Try to make the directories leading to the file if they don't
+already exists.

path

safe-read

(safe-read s)
Evaluate the string in a safe way. If error while reading, return
+nil

save-and-load

(save-and-load content)(save-and-load name content)
Save and load a program string. Default to 'main' if no name is given.
+

save-configs

(save-configs content)
Save configs for the local device. Should be a map. Return the
+configs.

set-program

(set-program content)(set-program name content)
Insert the given string into the program file. Program file default
+to 'main' if not specified.
\ No newline at end of file diff --git a/bacure.network.html b/bacure.network.html index 5d970cb..99f0d4f 100644 --- a/bacure.network.html +++ b/bacure.network.html @@ -1,15 +1,15 @@ -bacure.network documentation

bacure.network

create-mstp-network

(create-mstp-network {:keys [local-network-number mstp-config], :as device-config})
Return an MstpNetwork object, configured with either a slave or a master node
+bacure.network documentation

bacure.network

create-mstp-network

(create-mstp-network {:keys [local-network-number mstp-config], :as device-config})
Return an MstpNetwork object, configured with either a slave or a master node
 for the local-device. This class does not have a dedicated 'builder' like the
-IP network does, so we'll call its constructor directly.

default-mstp-config

get-any-ip

(get-any-ip)
Return the first IPv4 found.
-

get-broadcast-address

(get-broadcast-address local-ip)
Given a local-ip, return the broadcast address
-

get-broadcast-address-of-interface

(get-broadcast-address-of-interface interface)

get-interface-from-ip

(get-interface-from-ip ip)
Given an IP address, return the interface.
-

get-interfaces

(get-interfaces)
Return the list of interfaces on this machine.
-

interfaces-and-ips

(interfaces-and-ips)
Return a list of interfaces and their IPs.
-({:interface "wlan0", :ips ("192.168.0.2")})

ip-network-builder

(ip-network-builder {:keys [broadcast-address local-address local-network-number port reuse-address]})
Return an IP network object.
-

ipv4-from-interface

(ipv4-from-interface interface)
Return a list of available IPs from the interface. Remove any
+IP network does, so we'll call its constructor directly.

default-mstp-config

get-any-ip

(get-any-ip)
Return the first IPv4 found.
+

get-broadcast-address

(get-broadcast-address local-ip)
Given a local-ip, return the broadcast address
+

get-broadcast-address-of-interface

(get-broadcast-address-of-interface interface)

get-interface-from-ip

(get-interface-from-ip ip)
Given an IP address, return the interface.
+

get-interfaces

(get-interfaces)
Return the list of interfaces on this machine.
+

interfaces-and-ips

(interfaces-and-ips)
Return a list of interfaces and their IPs.
+({:interface "wlan0", :ips ("192.168.0.2")})

ip-network-builder

(ip-network-builder {:keys [broadcast-address local-address local-network-number port reuse-address]})
Return an IP network object.
+

ipv4-from-interface

(ipv4-from-interface interface)
Return a list of available IPs from the interface. Remove any
 loopback address.
 
-As BACnet doesn't support IPv6 yet, just keep IPv4.

mstp-listener-network

(mstp-listener-network receive-npdu-fn node local-network-number)

resolve-dns

(resolve-dns IP-or-url)
Return the IP of a given url, or simply return the IP unchanged
-

to-bytes

(to-bytes IP-or-url)
\ No newline at end of file +As BACnet doesn't support IPv6 yet, just keep IPv4.

mstp-listener-network

(mstp-listener-network receive-npdu-fn node local-network-number)

resolve-dns

(resolve-dns IP-or-url)
Return the IP of a given url, or simply return the IP unchanged
+

to-bytes

(to-bytes IP-or-url)
\ No newline at end of file diff --git a/bacure.read-properties.html b/bacure.read-properties.html index b88899c..881b768 100644 --- a/bacure.read-properties.html +++ b/bacure.read-properties.html @@ -1,26 +1,26 @@ -bacure.read-properties documentation

bacure.read-properties

assemble-arrays

(assemble-arrays data)
Reassemble arrays from data returned from a
-read-property-multiple.

assemble-results

(assemble-results results)
For each object-identifier, check if a property is present is
+bacure.read-properties documentation

bacure.read-properties

assemble-arrays

(assemble-arrays data)
Reassemble arrays from data returned from a
+read-property-multiple.

assemble-results

(assemble-results results)
For each object-identifier, check if a property is present is
 present more than once. If it is, we are most probably dealing with
-a segmented array... just concat them together.

BACnet-array?

(BACnet-array? data)
Return true if the raw data returned by a read property is part of
-an array.

compact-obj-prop-ref

(compact-obj-prop-ref obj-prop-refs)
Inverse of 'expand-obj-prop-ref'.
-

expand-array

(expand-array local-device-id device-id object-identifier property-reference)(expand-array local-device-id device-id object-identifier property-reference size)
Ask the remote device what is the length of the BACnet array and
+a segmented array... just concat them together.

BACnet-array?

(BACnet-array? data)
Return true if the raw data returned by a read property is part of
+an array.

compact-obj-prop-ref

(compact-obj-prop-ref obj-prop-refs)
Inverse of 'expand-obj-prop-ref'.
+

expand-array

(expand-array local-device-id device-id object-identifier property-reference)(expand-array local-device-id device-id object-identifier property-reference size)
Ask the remote device what is the length of the BACnet array and
 return as many object-property-identifiers. If object is not an
 array (or any other error), return nil.
 
-An array length can be provided to avoid a request to a remote device.

expand-obj-prop-ref

(expand-obj-prop-ref obj-prop-refs)
Take a normal object-property-references, such as
+An array length can be provided to avoid a request to a remote device.

expand-obj-prop-ref

(expand-obj-prop-ref obj-prop-refs)
Take a normal object-property-references, such as
 
 [ [[:analog-input 0] :description :object-name] ...]
 
 and separate the properties into individual references to obtain:
 [ [[:analog-input 0] :description]
-  [[:analog-input 0] :object-name] ...]

find-max-refs

(find-max-refs local-device-id device-id)

is-expanded-array?

(is-expanded-array? opr)
Return true if the object-property-references is an expanded array
+  [[:analog-input 0] :object-name] ...]

find-max-refs

(find-max-refs local-device-id device-id)

is-expanded-array?

(is-expanded-array? opr)
Return true if the object-property-references is an expanded array
 Example :
 [[[:device 123] [:object-list 1]]
- [[:device 123] [:object-list 2]]]

partition-object-property-references

(partition-object-property-references local-device-id device-id obj-prop-references)

read-array-in-chunks

(read-array-in-chunks local-device-id device-id partitioned-array)
Read the partitioned arrays in chunks and then assemble them back
-together.

read-array-individually

(read-array-individually local-device-id device-id object-identifier property-reference)
Read a BACnet array one time at the time and re-assemble the result
-afterward.

read-individually

(read-individually local-device-id device-id object-property-references)
Given a list of object-property-references, return a list of object properties maps.
+ [[:device 123] [:object-list 2]]]

partition-object-property-references

(partition-object-property-references local-device-id device-id obj-prop-references)

read-array-in-chunks

(read-array-in-chunks local-device-id device-id partitioned-array)
Read the partitioned arrays in chunks and then assemble them back
+together.

read-array-individually

(read-array-individually local-device-id device-id object-identifier property-reference)
Read a BACnet array one time at the time and re-assemble the result
+afterward.

read-individually

(read-individually local-device-id device-id object-property-references)
Given a list of object-property-references, return a list of object properties maps.
 
 [[[:analog-input 0] :description]
  [[:analog-input 1] :object-name]
@@ -30,7 +30,7 @@
 
 ({:description "ANALOG INPUT 0", :object-identifier [:analog-input 0]}
  {:object-name "ANALOG INPUT 1", :object-identifier [:analog-input 1]}
- {[:object-list 2] [:analog-input 0], :object-identifier [:device 1234]})

read-properties

(read-properties device-id object-property-references)(read-properties local-device-id device-id object-property-references)
Retrieve the property values form a remote device.
+ {[:object-list 2] [:analog-input 0], :object-identifier [:device 1234]})

read-properties

(read-properties device-id object-property-references)(read-properties local-device-id device-id object-property-references)
Retrieve the property values form a remote device.
  Format for object-property-references should be:
 
  [ [[:analog-input 0] :description :object-name]   <--- multiple properties
@@ -42,29 +42,29 @@
 Example:
 
 ({:object-identifier [analog-input 1], :present-value 12.23}
- {:object-identifier [analog-input 2], :present-value 24.53, object-name "Analog Input 2"})

read-properties-multiple-objects

(read-properties-multiple-objects device-id object-identifiers properties)(read-properties-multiple-objects local-device-id device-id object-identifiers properties)
A convenience function to retrieve properties for multiple
-objects.

read-property-multiple

(read-property-multiple local-device-id device-id obj-prop-references)
read-access-specification should be of the form:
+ {:object-identifier [analog-input 2], :present-value 24.53, object-name "Analog Input 2"})

read-properties-multiple-objects

(read-properties-multiple-objects device-id object-identifiers properties)(read-properties-multiple-objects local-device-id device-id object-identifiers properties)
A convenience function to retrieve properties for multiple
+objects.

read-property-multiple

(read-property-multiple local-device-id device-id obj-prop-references)
read-access-specification should be of the form:
  [[object-identifier property-references]
   [object-identifier property-references]]
 
 In case of an error (example :unknown-object), will fallback to
 reading everything individually in order to be able to know which
-property-reference is problematic.

read-property-multiple*

(read-property-multiple* local-device-id device-id obj-prop-references)
read-access-specification should be of the form:
+property-reference is problematic.

read-property-multiple*

(read-property-multiple* local-device-id device-id obj-prop-references)
read-access-specification should be of the form:
 [[object-identifier property-references]
- [object-identifier property-references]]

read-property-multiple-request

(read-property-multiple-request obj-prop-references)
Create a read-property-multiple request.
+ [object-identifier property-references]]

read-property-multiple-request

(read-property-multiple-request obj-prop-references)
Create a read-property-multiple request.
 [[object-identifier property-references]
- [object-identifier property-references]]

read-property-request

(read-property-request object-identifier property-reference)
Create a read-property request.
+ [object-identifier property-references]]

read-property-request

(read-property-request object-identifier property-reference)
Create a read-property request.
 
 [:analog-input 0] :description
-[:analog-input 0] [:description 0] <--- with array index

read-range

(read-range local-device-id device-id object-identifier property-identifier array-index [reference range] & by-what?)
'by-what?' can be :sequence, :time, or position (the default if
-none is provided).

read-range-request

(read-range-request object-identifier property-identifier array-index [reference range] & by-what?)
'by-what?' can be :sequence, :time, or position (the default if
-none is provided).

read-range-request-by

(read-range-request-by reference range & by-what)

read-single-property

(read-single-property local-device-id device-id object-identifier property-reference)
Read a single property.
-

read-single-property-with-fallback

(read-single-property-with-fallback local-device-id device-id object-identifier property-reference)
Read a single property. If there's a size-related APDU error, will
-try to read the BACnet arrays one item at the time.

replace-special-identifier

(replace-special-identifier object-property-references)
For devices that don't support the special identifiers
+[:analog-input 0] [:description 0] <--- with array index

read-range

(read-range local-device-id device-id object-identifier property-identifier array-index [reference range] & by-what?)
'by-what?' can be :sequence, :time, or position (the default if
+none is provided).

read-range-request

(read-range-request object-identifier property-identifier array-index [reference range] & by-what?)
'by-what?' can be :sequence, :time, or :position (the default if none is provided).
+

read-range-request-by

(read-range-request-by reference range & by-what)

read-single-property

(read-single-property local-device-id device-id object-identifier property-reference)
Read a single property.
+

read-single-property-with-fallback

(read-single-property-with-fallback local-device-id device-id object-identifier property-reference)
Read a single property. If there's a size-related APDU error, will
+try to read the BACnet arrays one item at the time.

replace-special-identifier

(replace-special-identifier object-property-references)
For devices that don't support the special identifiers
 (i.e. :all, :required and :optional), return a list of properties.
 
 The :all won't be as the one defined by the BACnet standard,
 because we can't know for sure what are the properties. (Especially
-in the case of proprietary objects.)

size-related?

(size-related? read-result)
True if the abort reason is size related.
-

split-opr

(split-opr obj-prop-references)

when-coll

(when-coll coll f)
Apply function 'f' to coll only if it really is a collection.
-Return nil otherwise.
\ No newline at end of file +in the case of proprietary objects.)

size-related?

(size-related? read-result)
True if the abort reason is size related.
+

split-opr

(split-opr obj-prop-references)

when-coll

(when-coll coll f)
Apply function 'f' to coll only if it really is a collection.
+Return nil otherwise.
\ No newline at end of file diff --git a/bacure.remote-device.html b/bacure.remote-device.html index 29dafce..41e64ea 100644 --- a/bacure.remote-device.html +++ b/bacure.remote-device.html @@ -1,53 +1,54 @@ -bacure.remote-device documentation

bacure.remote-device

advanced-property

(advanced-property property-value priority property-array-index)
Take a property and wrap it inside a map with the priority and
-property-array-index.

all-extended-information

(all-extended-information)(all-extended-information local-device-id)
Make sure we have the extended information of every known
+bacure.remote-device documentation

bacure.remote-device

advanced-property

(advanced-property property-value priority property-array-index)
Take a property and wrap it inside a map with the priority and
+property-array-index.

all-extended-information

(all-extended-information)(all-extended-information local-device-id)
Make sure we have the extended information of every known
 remote devices.
 
 Can be used some time after the network discovery mechanism, as
 some devices might take a while to answer the WhoIs.
 
-Remote devices are queried in parallel.

cached-extended-information

(cached-extended-information device-id)(cached-extended-information local-device-id device-id)
Return the cached remote device extended information. Nil if we have nothing.
-

create-remote-object!

(create-remote-object! device-id object-map)(create-remote-object! local-device-id device-id object-map)
Send a 'create object request' to the remote device. Must be given
+Remote devices are queried in parallel.

cached-extended-information

(cached-extended-information device-id)(cached-extended-information local-device-id device-id)
Return the cached remote device extended information. Nil if we have nothing.
+

create-remote-object!

(create-remote-object! device-id object-map)(create-remote-object! local-device-id device-id object-map)
Send a 'create object request' to the remote device. Must be given
 at least an :object-identifier OR an :object-type. If
 an :object-identifier isn't given, the numbering of the new object
 will be choosen by the remote device.
 
 Will block until we receive a response back, success or failure.
-If the request times out, an exception is thrown.

delete-remote-object!

(delete-remote-object! device-id object-identifier)(delete-remote-object! local-device-id device-id object-identifier)
Send a 'delete object' request to a remote device.
+If the request times out, an exception is thrown.

delete-remote-object!

(delete-remote-object! device-id object-identifier)(delete-remote-object! local-device-id device-id object-identifier)
Send a 'delete object' request to a remote device.
 
  Will block until we receive a response back, success or failure.
-If the request times out, an exception is thrown.

discover-network

(discover-network)(discover-network local-device-id)(discover-network local-device-id tries)
Find remote devices and their extended info. By default, will try
+If the request times out, an exception is thrown.

discover-network

(discover-network)(discover-network local-device-id)(discover-network local-device-id tries)
Find remote devices and their extended info. By default, will try
 up to 5 time if not a single device answer. Return the list of
 remote-devices.
 
 Should be called in a future call to avoid `hanging' the program
-while waiting for the remote devices to answer.

extended-information

(extended-information device-id)(extended-information local-device-id device-id)
Return the device extended information that we have cached locally,
-or request it directly to the remote device.

find-remote-device

(find-remote-device remote-device-id)(find-remote-device remote-device-id {:keys [wait-seconds], :or {wait-seconds 1}, :as args})(find-remote-device local-device-id remote-device-id {:keys [wait-seconds], :or {wait-seconds 1}, :as args})
Send a WhoIs for a single device-id, effectively finding a single
+while waiting for the remote devices to answer.

extended-information

(extended-information device-id)(extended-information local-device-id device-id)
Return the device extended information that we have cached locally,
+or request it directly to the remote device.

find-remote-device

(find-remote-device remote-device-id)(find-remote-device remote-device-id {:keys [wait-seconds], :or {wait-seconds 1}, :as args})(find-remote-device local-device-id remote-device-id {:keys [wait-seconds], :or {wait-seconds 1}, :as args})
Send a WhoIs for a single device-id, effectively finding a single
 device. Some devices seem to ignore a general WhoIs broadcast, but
-will answer a WhoIs request specifically for their ID.

find-remote-devices

(find-remote-devices)(find-remote-devices {:keys [min-range max-range wait-seconds], :or {min-range 0, max-range 4194303, wait-seconds 1}, :as args})(find-remote-devices local-device-id {:keys [min-range max-range wait-seconds], :or {min-range 0, max-range 4194303, wait-seconds 1}, :as args})
We find remote devices by sending a 'WhoIs' broadcast. Every device
+will answer a WhoIs request specifically for their ID.

find-remote-devices

(find-remote-devices)(find-remote-devices {:keys [min-range max-range wait-seconds], :or {min-range 0, max-range 4194303, wait-seconds 1}, :as args})(find-remote-devices local-device-id {:keys [min-range max-range wait-seconds], :or {min-range 0, max-range 4194303, wait-seconds 1}, :as args})
We find remote devices by sending a 'WhoIs' broadcast. Every device
 that responds is added to the remote-devices field in the
 local-device. WARNING: This won't ask the device if it supports
 read-property-multiple. Thus, any property read based solely on this
 remote device discovery might fail. The use of `discover-network' is
 highly recommended, even if it might take a little longer to
-execute.

find-remote-devices-having-object

(find-remote-devices-having-object object-identifier-or-name)(find-remote-devices-having-object object-identifier-or-name {:keys [min-range max-range wait-seconds], :or {min-range 0, max-range 4194303, wait-seconds 1}, :as args})(find-remote-devices-having-object local-device-id object-identifier-or-name {:keys [min-range max-range wait-seconds], :or {min-range 0, max-range 4194303, wait-seconds 1}, :as args})
Do a Who-Has and return the remote-device-ids of any remote devices that
+execute.

find-remote-devices-having-object

(find-remote-devices-having-object object-identifier-or-name)(find-remote-devices-having-object object-identifier-or-name {:keys [min-range max-range wait-seconds], :or {min-range 0, max-range 4194303, wait-seconds 1}, :as args})(find-remote-devices-having-object local-device-id object-identifier-or-name {:keys [min-range max-range wait-seconds], :or {min-range 0, max-range 4194303, wait-seconds 1}, :as args})
Do a Who-Has and return the remote-device-ids of any remote devices that
 respond. The Who-Has updates a cache that can be accessed at
 bacure.events/cached-remote-objects, and that is the same cache we query
-here.

get-remote-devices-having-object

(get-remote-devices-having-object object-identifier-or-name)(get-remote-devices-having-object local-device-id object-identifier-or-name)
Query our cached remote-objects to see which remote-devices have the
+here.

get-remote-devices-having-object

(get-remote-devices-having-object object-identifier-or-name)(get-remote-devices-having-object local-device-id object-identifier-or-name)
Query our cached remote-objects to see which remote-devices have the
 specified object (if any). Use `find-remote-devices-having-object`
-to update the cache.

IAm-received-auto-fetch-extended-information

(IAm-received-auto-fetch-extended-information local-device-id)
Listen to IAm and try to fetch extended-information.
-

is-alive?

(is-alive? device-id)(is-alive? local-device-id device-id)
Check if the remote device is still alive. This is the closest
-thing to a 'ping' in the BACnet world.

networking-info

(networking-info device-id)(networking-info local-device-id device-id)
Return a map with the networking info of the remote device. (The
-network number, the IP address, the port...)

rd

(rd device-id)(rd local-device-id device-id)
Get the remote device object by its device-id
-

remote-devices

(remote-devices)(remote-devices local-device-id)
Return the list of the current remote devices. These devices must
-be in the local table. To scan a network, use `discover-network'.

remote-devices-and-names

(remote-devices-and-names)(remote-devices-and-names local-device-id)
Return a list of vector pair with the device-id and its name.
--->  ([1234 "SimpleServer"])

retrieve-extended-information!

(retrieve-extended-information! device-id)(retrieve-extended-information! local-device-id device-id)
Retrieve the remote device extended information (name, segmentation,
+to update the cache.

IAm-received-auto-fetch-extended-information

(IAm-received-auto-fetch-extended-information local-device-id)
Listen to IAm and try to fetch extended-information.
+

is-alive?

(is-alive? device-id)(is-alive? local-device-id device-id)
Check if the remote device is still alive. This is the closest
+thing to a 'ping' in the BACnet world.

local-registered-test-devices!

(local-registered-test-devices! qty)
Boot up local devices and return their IDs.
+The devices are registered as foreign devices to each other.

networking-info

(networking-info device-id)(networking-info local-device-id device-id)
Return a map with the networking info of the remote device. (The
+network number, the IP address, the port...)

rd

(rd device-id)(rd local-device-id device-id)
Get the remote device object by its device-id
+

remote-devices

(remote-devices)(remote-devices local-device-id)
Return the list of the current remote devices. These devices must
+be in the local table. To scan a network, use `discover-network'.

remote-devices-and-names

(remote-devices-and-names)(remote-devices-and-names local-device-id)
Return a list of vector pair with the device-id and its name.
+-->  ([1234 "SimpleServer"])

retrieve-extended-information!

(retrieve-extended-information! device-id)(retrieve-extended-information! local-device-id device-id)
Retrieve the remote device extended information (name, segmentation,
 property multiple, etc..) and update it locally.
 
-Return the cached extended information.

segmentation-supported

(segmentation-supported device-id)(segmentation-supported local-device-id device-id)
Return the type of segmentatin supported.
-

services-supported

(services-supported device-id)(services-supported local-device-id device-id)
Return a map of the services supported by the remote device.
-

set-remote-properties!

(set-remote-properties! device-id write-access-specifications)(set-remote-properties! local-device-id device-id write-access-specifications)
Set the given remote object properties.
+Return the cached extended information.

segmentation-supported

(segmentation-supported device-id)(segmentation-supported local-device-id device-id)
Return the type of segmentatin supported.
+

services-supported

(services-supported device-id)(services-supported local-device-id device-id)
Return a map of the services supported by the remote device.
+

set-remote-properties!

(set-remote-properties! device-id write-access-specifications)(set-remote-properties! local-device-id device-id write-access-specifications)
Set the given remote object properties.
 
 Will block until we receive a response back, success or failure.
 
@@ -55,9 +56,9 @@
 {[:analog-input 1] [[:present-value 10.0][:description "short description"]]}
 
 If the remote device doesn't support 'write-property-multiple',
-fallback to writing all properties individually.

set-remote-property!

(set-remote-property! device-id object-identifier property-identifier property-value)(set-remote-property! local-device-id device-id object-identifier property-identifier property-value)
Set the given remote object property.
+fallback to writing all properties individually.

set-remote-property!

(set-remote-property! device-id object-identifier property-identifier property-value)(set-remote-property! local-device-id device-id object-identifier property-identifier property-value)
Set the given remote object property.
 
  Will block until we receive a response back, success or failure.
 
 Property-value can be the value directly OR a map resulting from
-`advanced-property'

write-single-multiple-properties

(write-single-multiple-properties local-device-id device-id write-access-specifications)
\ No newline at end of file +`advanced-property'

write-single-multiple-properties

(write-single-multiple-properties local-device-id device-id write-access-specifications)
\ No newline at end of file diff --git a/bacure.serial-connection.html b/bacure.serial-connection.html index 8824925..3c5e1a9 100644 --- a/bacure.serial-connection.html +++ b/bacure.serial-connection.html @@ -1,5 +1,5 @@ -bacure.serial-connection documentation

bacure.serial-connection

connection-opened?

(connection-opened? com-port)

ensure-connection-closed!

(ensure-connection-closed! com-port)
serial/close! returns nil. NOTE: You must terminate any MS/TP nodes that
-reference this connection first!

get-input-stream

(get-input-stream connection)

get-opened-serial-connection!

(get-opened-serial-connection! {:keys [com-port], :as config})
Creates a new connection if this one hasn't been created yet.
-

get-output-stream

(get-output-stream connection)
\ No newline at end of file +bacure.serial-connection documentation

bacure.serial-connection

connection-opened?

(connection-opened? com-port)

ensure-connection-closed!

(ensure-connection-closed! com-port)
serial/close! returns nil. NOTE: You must terminate any MS/TP nodes that
+reference this connection first!

get-input-stream

(get-input-stream connection)

get-opened-serial-connection!

(get-opened-serial-connection! {:keys [com-port], :as config})
Creates a new connection if this one hasn't been created yet.
+

get-output-stream

(get-output-stream connection)
\ No newline at end of file diff --git a/bacure.services.html b/bacure.services.html index a9ef476..505b400 100644 --- a/bacure.services.html +++ b/bacure.services.html @@ -1,9 +1,9 @@ -bacure.services documentation

bacure.services

send-request-promise

(send-request-promise device-id request)(send-request-promise local-device-id device-id request)
Send the request to the remote device.
+bacure.services documentation

bacure.services

send-request-promise

(send-request-promise device-id request)(send-request-promise local-device-id device-id request)
Send the request to the remote device.
 The possible return values are :
 
 {:success <expected valuezs - if any>
  :error {:error-class ..., :error-code ...}}
 
-Will block until the remote device answers.

send-subscribe-cov

(send-subscribe-cov local-device-id remote-device-id object-identifier {:keys [process-identifier confirmed? lifetime-seconds], :or {process-identifier events/default-cov-process-id, confirmed? false, lifetime-seconds 60}, :as args})

send-who-has

(send-who-has local-device-id object-identifier-or-name {:keys [min-range max-range], :or {min-range 0, max-range 4194303}, :as args})

send-who-is

(send-who-is local-device-id {:keys [min-range max-range], :as args})

send-who-is-router-to-network

(send-who-is-router-to-network local-device-id)
\ No newline at end of file +Will block until the remote device answers.

send-subscribe-cov

(send-subscribe-cov local-device-id remote-device-id object-identifier {:keys [process-identifier confirmed? lifetime-seconds], :or {process-identifier events/default-cov-process-id, confirmed? false, lifetime-seconds 60}, :as args})

send-who-has

(send-who-has local-device-id object-identifier-or-name {:keys [min-range max-range], :or {min-range 0, max-range 4194303}, :as args})

send-who-is

(send-who-is local-device-id {:keys [min-range max-range], :as args})

send-who-is-router-to-network

(send-who-is-router-to-network local-device-id)
\ No newline at end of file diff --git a/bacure.state.html b/bacure.state.html index 33dd488..873ab55 100644 --- a/bacure.state.html +++ b/bacure.state.html @@ -1,10 +1,10 @@ -bacure.state documentation

bacure.state

assoc-in-local-device!

(assoc-in-local-device! device-id ks v)
Set the value
-

assoc-local-device!

(assoc-local-device! device-id local-device)
Assoc a local device with the given key
-

assoc-serial-connection!

clear-local-devices!

(clear-local-devices!)
Remove all traces of local devices in the local cache.
+bacure.state documentation

bacure.state

assoc-in-local-device!

(assoc-in-local-device! device-id ks v)
Set the value
+

assoc-local-device!

(assoc-local-device! device-id local-device)
Assoc a local device with the given key
+

assoc-serial-connection!

clear-local-devices!

(clear-local-devices!)
Remove all traces of local devices in the local cache.
 WARNING: Doesn't clean up; ports might still be bound to the removed
-devices.

dissoc-local-device!

(dissoc-local-device! device-id)
Dissoc the local device associated with the given key, if any.
-

get-in-local-device

(get-in-local-device device-id ks & [default])
Return the value
-

get-local-device

(get-local-device device-id)
Return the local device
-

get-serial-connection-property

local-devices

request-response

serial-connections

set-request-response!

\ No newline at end of file +devices.

dissoc-local-device!

(dissoc-local-device! device-id)
Dissoc the local device associated with the given key, if any.
+

get-in-local-device

(get-in-local-device device-id ks & [default])
Return the value
+

get-local-device

(get-local-device device-id)
Return the local device
+

get-serial-connection-property

local-devices

request-response

serial-connections

set-request-response!

\ No newline at end of file diff --git a/bacure.util.html b/bacure.util.html index 5961fb3..36e6366 100644 --- a/bacure.util.html +++ b/bacure.util.html @@ -1,13 +1,14 @@ -bacure.util documentation

bacure.util

arglists-valid?

(arglists-valid? arglists)

configurable-wait

(configurable-wait {:keys [wait-seconds], :or {wait-seconds 1}, :as args})

defnd

macro

(defnd name doc-string? attr-map? [params*] prepost-map? body)(defnd name doc-string? attr-map? ([params*] prepost-map? body) + attr-map?)
Same as `defn`, but will automatically add an n-1 arity,
+bacure.util documentation

bacure.util

arglists-valid?

(arglists-valid? arglists)

configurable-wait

(configurable-wait {:keys [wait-seconds], :or {wait-seconds 1}, :as args})

defnd

macro

(defnd name doc-string? attr-map? [params*] prepost-map? body)(defnd name doc-string? attr-map? ([params*] prepost-map? body) + attr-map?)
Same as `defn`, but will automatically add an n-1 arity,
 where the first argument (local-device-id) can be omited. For
 example, given the following arguments, it will create a new arity :
 [local-device-id remote-device-id] -> [remote-device-id].
 
 This is intended to make it easier to use the functions at the REPL
-when working with a single local-device.

mapify

macro

(mapify & symbols)
Given some symbols, construct a map with the symbols as keys, and
+when working with a single local-device.

mapify

macro

(mapify & symbols)
Given some symbols, construct a map with the symbols as keys, and
 the value of the symbols as the map values. For example:
 (Let [aa 12]
    (mapify aa))
-=> {:aa 12}
\ No newline at end of file +=> {:aa 12}

wait-while

(wait-while predicate-fn timeout-ms)
Blocks until predicate returns false, or throws if timeout.
+
\ No newline at end of file diff --git a/index.html b/index.html index ca53963..00598a9 100644 --- a/index.html +++ b/index.html @@ -1,3 +1,3 @@ -Bacure 1.1.1

Bacure 1.1.1

Released under the GNU General Public License V3

A Clojure wrapper for the bacnet4j library... and some nice additions.

Installation

To install, add the following dependency to your project or build file:

[bacure "1.1.1"]

Namespaces

bacure.coerce

bacure.coerce.obj

bacure.coerce.service.acknowledgement

Public variables and functions:

    bacure.coerce.service.confirmed

    Public variables and functions:

    bacure.coerce.type.constructed

    bacure.coerce.type.enumerated

    bacure.coerce.type.error

    Public variables and functions:

      bacure.coerce.type.primitive

      bacure.core

      bacure.events

      bacure.local-device

      bacure.local-save

      bacure.network

      bacure.read-properties

      bacure.remote-device

      bacure.serial-connection

      bacure.services

      bacure.state

      bacure.util

      Public variables and functions:

      user

      Public variables and functions:

        \ No newline at end of file +Bacure 1.2.0

        Bacure 1.2.0

        Released under the GNU General Public License V3

        A Clojure wrapper for the bacnet4j library... and some nice additions.

        Installation

        To install, add the following dependency to your project or build file:

        [bacure "1.2.0"]

        Namespaces

        bacure.coerce

        bacure.coerce.obj

        bacure.coerce.service.acknowledgement

        Public variables and functions:

          bacure.coerce.service.confirmed

          Public variables and functions:

          bacure.coerce.type.constructed

          bacure.coerce.type.enumerated

          bacure.coerce.type.error

          Public variables and functions:

            bacure.coerce.type.primitive

            bacure.core

            bacure.events

            bacure.local-device

            bacure.local-save

            bacure.network

            bacure.read-properties

            bacure.remote-device

            bacure.serial-connection

            bacure.services

            bacure.state

            bacure.util

            Public variables and functions:

            \ No newline at end of file diff --git a/user.html b/user.html index b32c223..4bd70fb 100644 --- a/user.html +++ b/user.html @@ -1,3 +1,3 @@ -user documentation

            user

            \ No newline at end of file +user documentation

            user

            \ No newline at end of file