mirror of
https://github.com/JoelBender/bacpypes
synced 2025-10-05 22:18:16 +08:00
0.17.7 notes
parent
615c527e9b
commit
791b4a96fc
106
Release-Notes.md
106
Release-Notes.md
|
@ -1,12 +1,108 @@
|
|||
# Release Notes
|
||||
|
||||
## 0.17.7
|
||||
|
||||
There is a new way of handling strange topology problems, a `settings` module
|
||||
for gathering information from the environment in a more generic way, the
|
||||
network layer and router information cache has been overhauled, and lots of
|
||||
other smaller improvements along with additional sample applications.
|
||||
|
||||
### Route Aware Addresses
|
||||
|
||||
Using remote station address like "10:20" implies that the router to network 10
|
||||
can be found by doing a local broadcast Who-Is-Router-To-Network. Occassionally
|
||||
there are times when the client is not _really_ on the BACnet network, just
|
||||
lurking nearby. Unicast messages work fine because servers respond to
|
||||
the address that sent the request.
|
||||
|
||||
This *route aware* address format is extends the usual format with an additional
|
||||
suffix, **net:addr@route** where **route** is the address of the router to
|
||||
network **net**. For example, sending a request from 192.168.0.12 to
|
||||
"10:20@10.168.0.15" bypasses the request to look for the router to network 10
|
||||
and simply sends it on as a unicast message to 10.168.0.15. When the reply from
|
||||
the device is received by the router, the DNET/DLEN/DADR will have the source
|
||||
network in it and the router will assume that 192.168.0.12 is an acceptable
|
||||
address.
|
||||
|
||||
At the application layer of the client, the address will be presented with the
|
||||
address of router, which is normally abstracted away in the network layer. In
|
||||
this case the network topology information in the network layer is not updated.
|
||||
|
||||
To use this format the **route_aware** setting must be set, from the
|
||||
environmental variable BACPYPES\_ROUTE\_AWARE or from some other configuration
|
||||
information.
|
||||
|
||||
### Settings
|
||||
|
||||
There is a new `settings` module that contains the debug and route_aware
|
||||
settings for applications. When applications start up they can provide
|
||||
their own initialization information from the built-in `os` module, or can
|
||||
come from other sources like an INI or JSON file.
|
||||
|
||||
To make the settings names and the environmental variable names more consistent
|
||||
with each other the BACPYPES\_DEBUG\_FILE, BACPYPES\_MAX\_BYTES, and
|
||||
BACPYPES\_BACKUP\_COUNT have been renamed with underscores.
|
||||
|
||||
To take advantage of this new set of configuration options, there is a new
|
||||
`JSONArgumentParser` argument parser that mirrors the existing
|
||||
`ConfigArgumentParser` but uses a `--json` parameter rather than an `--ini`
|
||||
parameter. JSON files can contain much richer content than INI files.
|
||||
|
||||
### Router Info Cache (#213)
|
||||
|
||||
The routing information cache which contains the relationship between local
|
||||
station addresses and the reachable networks through a router has been
|
||||
significantly changed. It's a small data structure change from a dictionary of
|
||||
path information to a cross reference of routers and networks.
|
||||
|
||||
The `NetworkServiceElement` now has a startup function that builds a list of
|
||||
reachable networks for each adapter and calls `i_am_router_to_network()` to
|
||||
send them out.
|
||||
|
||||
The function `add_router_references()` changed to `update_router_references()`
|
||||
|
||||
For some reason lots in the sands of time, the `BIPNetworkApplication` passed
|
||||
a *true* for `noBroacast` which means that applications that were for browsing
|
||||
around a network couldn't receive I-Am-Router-To-Network broadcasts. This has
|
||||
been changed.
|
||||
|
||||
### Other Issues
|
||||
|
||||
Issue (#286) supports disabling COV for specific objects.
|
||||
|
||||
Issue (#283) fixes a bug handles socket error bindings.
|
||||
|
||||
Issue (#273) skips the propertyList property returning all properties for
|
||||
a ReadPropertyMultiple request.
|
||||
|
||||
Support Python3.7 using the same Python3.4 code base until "bacpypes3" is
|
||||
released. The new library will be based on async/await for Python3.6+ and will
|
||||
require Python3.7+ and websockets for BACnet/SC which requires TLS 1.3.
|
||||
|
||||
### Sample Applications
|
||||
|
||||
* **mini_device.py** is an application that supports many core services that
|
||||
applications need to present data on a BACnet network. It supports Who-Is
|
||||
and I-Am for device binding, Read and Write Property, Read and Write
|
||||
Property Multiple, and COV subscriptions.
|
||||
|
||||
* **OpenWeatherServer.py** is an application that uses the
|
||||
https://openweathermap.org/ service to get weather data and make it available
|
||||
over BACnet.
|
||||
|
||||
* **WhoIsIAmVLAN.py** is a router from BACnet/IP to a VLAN with devices that
|
||||
support Who-Is and I-Am.
|
||||
|
||||
* **RecurringWriteProperty.py** application demonstrates writing a series of
|
||||
values at a regular interval.
|
||||
|
||||
## 0.17.6
|
||||
|
||||
Placeholder.
|
||||
|
||||
## 0.17.5
|
||||
|
||||
## Object Identifier Strings
|
||||
### Object Identifier Strings
|
||||
|
||||
The `ObjectIdentifier` can now be given a string in the form **type:instance**
|
||||
where **type** is a name like **analogInput** or an unsigned integer, and
|
||||
|
@ -21,7 +117,7 @@ It now takes commands like this:
|
|||
> read 123:45 analogInput:67 presentValue
|
||||
```
|
||||
|
||||
## What-Is-Network-Number/Network-Number-Is
|
||||
### What-Is-Network-Number/Network-Number-Is
|
||||
|
||||
The network layer nows supports these two relatively new NPDUs for discovering
|
||||
the local topology. When a Network Service Access Point is bound to a network
|
||||
|
@ -51,16 +147,16 @@ messages about configured networks (and routers should call this function
|
|||
at startup). If a specific adapter parameter is given, it will send out a
|
||||
local broadcast about a "learned" network.
|
||||
|
||||
## I-Am-Router-To-Network Helper
|
||||
### I-Am-Router-To-Network Helper
|
||||
|
||||
There is a new `i_am_router_to_network()` function (and routers should call
|
||||
this function at startup) which announces its network topology information.
|
||||
|
||||
## COV Period
|
||||
### COV Period
|
||||
|
||||
The `covPeriod` property is now supported for the `PulseConverterObject`.
|
||||
|
||||
## Fixed Size Arrays
|
||||
### Fixed Size Arrays
|
||||
|
||||
There is now support for fixed length arrays. The `ArrayOf()` function,
|
||||
which returns a class that is a subclass of `Array`, now has two additional
|
||||
|
|
Loading…
Reference in New Issue
Block a user