Added BACnet/IPv6 datalink layer and example BACnet/IPv4 to BACnet/IPv6 router.
BVLC6 layer is working on Linux port without BBMD features yet. Win32 is implemented, untested.
Tested during BACnet North American Plugfest 2016.
........
Implemented the majority of functionalities presented in the standard, but there are several features that this patch currently lacks:
- Set-Master-Key message has a specific order of key adding and decoding which is not covered
- There is no general secure-apdu-handler function
- Checks for the type of keys used for signing/encryption of specific messages is not implemented
- The status of encrypted flag during the calculation of the signature is ambiguous
There is a Linux implementation using the OpenSSL library, with function prototypes broad enough to allow for different implementations.
Thank you, Nikola Jelić!
2. Changed file wpm.h (new struct added BACNET_WRITE_ACCESS_DATA, declaration for wpm_encode_apdu added)
3. Changed file wpm.c (definition added for wpm_encode_apdu)
4. client.h file updated with declaration for Send_Write_Property_Multiple_Request_Data
Thank you for the contribution, Daniel Blazevic!
Added Multi-state Value object example and unit tests, and added to demo/server example application.
Fixed Analog Input object, Analog Output object, Analog Value object, Device object, Multi-state Input object, Multi-state Output object examples to return correct error codes for WriteProperty service (per BACnet 135.1-2009-9.22.2.6).
Fixed top level ReadProperty and WriteProperty handlers in Device object to return correct error codes (per BACnet 135.1-2009-9.22.2.5)
1. Top (main) makefile defines build configuration variables and export them for sub-makes to use. BAC_ROUTING is defined here - is has been removed from config.h.
2. A new makefile has been added in demo subdirectory. It builds the demo applications. NOTE: the 'ports' target is not build.
For building, made it possible to include or exclude the routing functionality with simple changes in the main Makefile and enables in lib/Makefile and include/config.h
The Device object (device.c and .h) was extended to support the virtually routed Devices, with most of the new functions in new file gw_device.c to replace their simpler cousins in device.c.
Tamped down a few warnings.
For the demo/server Makefile, made an either/or choice between executable size optimization (normal) or gdb debug info and no optimization.
Fixed a build issue for the linux+MS/TP combination in trendlog.h
Setup library build to define BIP_DEBUG if it is a Debug build and if it is a BIP build.