Release/version 1.4.0 candidate (#758)
This commit is contained in:
+148
@@ -20,6 +20,151 @@ The git repositories are hosted at the following sites:
|
|||||||
### Fixed
|
### Fixed
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
## [1.4.0] - 2024-11-04
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
* Secured BACnetAccessRule encoding and decoding and added unit testing.
|
||||||
|
Fixed BACnetAccessRule application integration into Access Rights object.
|
||||||
|
Improved unit testing and code coverage. (#790)
|
||||||
|
* Secured Active-COV-Subscriptions property encoding. (#763)
|
||||||
|
* Secured COV handling after refactor to using local buffer. (#802)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
* Added BACnet Secure Connect datalink. Added BACnet/SC hub application. (#818)
|
||||||
|
* Added WriteGroup service to blinkt app demo. (#843)
|
||||||
|
* Added blinkt and piface build in gcc pipeline to prevent bit rot. (#842)
|
||||||
|
* Added missing MS/TP zero configuration preferred address API and usage. (#840)
|
||||||
|
* Added unit testing for FIFO peek feature. (#839)
|
||||||
|
* Added IPv6 Zone Index function to return ASCII. (#838)
|
||||||
|
* Added network port callbacks for pending changes activate and discard. (#836)
|
||||||
|
* Added WriteProperty setter for BACnet Unsigned Integer values. (#834)
|
||||||
|
* Added linker specific code for Darwin for compiling mstpcrc. (#833)
|
||||||
|
* Added WriteGroup service and Channel object interfaces. (#829)
|
||||||
|
* Added common property test for BACnetARRAY. (#828)
|
||||||
|
* Added code to parse BACnetAccessRule from ASCII command line. (#827)
|
||||||
|
* Added a common BACnetARRAY write property iterator function. (#826)
|
||||||
|
* Added cmake build artificats to gitignore.
|
||||||
|
* Added some optional properties into the object property lists up to
|
||||||
|
protocol-revision 22. (#789)
|
||||||
|
* Added serial-number property to basic device object example. (#789)
|
||||||
|
* Added optional description property to basic network port object
|
||||||
|
example. (#788)
|
||||||
|
* Added ucix_get_list and ucix_set_list function. (#780)
|
||||||
|
* Added uci include and lib for cmake. (#779)
|
||||||
|
* Added BACnet Ethernet support for MacOS X via pcap library. (#775)
|
||||||
|
* Added local tool aptfile to use with apt based development
|
||||||
|
installation. (#772)
|
||||||
|
* Added MS/TP support for MacOS X. (#764)
|
||||||
|
* Added pre-commit clang-format 17 format check in pipeline. Formatted
|
||||||
|
entire code base except external/ folders. (#755)
|
||||||
|
* Added RP and RPM error code indications in callbacks in bac-rw.c
|
||||||
|
module handling. (#756)
|
||||||
|
* Added editorconfig, a widely used and supported file in profession IDEs.
|
||||||
|
The configuration file indicates how files should be formatted. (#753)
|
||||||
|
* Added pre-commit configuration which can automatically check some basic
|
||||||
|
code formatting rules everytime someone makes commit. This can also be
|
||||||
|
used in the pipeline during a pull-request for automated checking.
|
||||||
|
pre-commit can also be used in a local workspace or within an IDE.
|
||||||
|
pre-commit makes it easy to select clang-format version so everyone is
|
||||||
|
using same one.
|
||||||
|
* Added basic object-name get for ASCII names to enable free if they were
|
||||||
|
dynamically created. Added unit testing to validate the basic object
|
||||||
|
ASCII object-name API. (#754)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
* Changed the lint apt install in quality pipeline to be consistent (#837)
|
||||||
|
* Changed apps/epics by enabling BACnetARRAY checking. (#823)
|
||||||
|
* Changed BACnet Ethernet and IPv6 on win32 by switching from
|
||||||
|
WinPcap to npcap. Included npcap SDK in cmake and libs for
|
||||||
|
IPv6 in cmake. (#774)
|
||||||
|
* Changed pipeline gcc.yml to reduce known warnings from legacy
|
||||||
|
API by adding LEGACY flag to make bip-apps with GNU99. (#795)
|
||||||
|
* Changed ATmega168 example for ATmega328 on Arduino Uno R3 with DFR0259
|
||||||
|
RS485 shield. Added ADC interface from BDK port and mapped to some AV
|
||||||
|
objects. Removed MS/TP MAC address DIP switch GPIO and moved MS/TP
|
||||||
|
configuration to AV objects. Added AV units property. Added some
|
||||||
|
Uno R3 Digital Inputs and outputs mapped to some BV. Added AVR EEPROM
|
||||||
|
from BDK port and mapped some non-volatile data
|
||||||
|
including MAC address and max manager and baud rate,
|
||||||
|
device ID and names and description and location. (#784)
|
||||||
|
* Changed the datalink abstraction to enable selecting multiple datalinks
|
||||||
|
using BACDL_MULTIPLE and one or more other BACDL defines. (#717)
|
||||||
|
* Moved west manifest, zephyr folder, and ports/zephyr folders to
|
||||||
|
another repository https://github.com/bacnet-stack/bacnet-stack-zephyr
|
||||||
|
so that the rapid pace of Zephyr OS development changes will have
|
||||||
|
a less impact on the development of the BACnet Stack library. (#757)
|
||||||
|
* Removed static scope on character array used for object-name since the array
|
||||||
|
gets copied into characterstring array and static is not needed. (#754)
|
||||||
|
* Changed clang-format rules to always align const to left side,
|
||||||
|
and insertbraces to avoid having to use clang-tidy. (#753)
|
||||||
|
* Moved external files, such as driver libraries, to external/ folders.
|
||||||
|
It is lot easier to work with automatic formatters if we have external
|
||||||
|
files in different folder. For some tools we can just exclude
|
||||||
|
external folder all together. (#744)
|
||||||
|
* Changed most of the functions use of pointer parameters to const.
|
||||||
|
Used clang-tidy and sonarlint to help find places where const could be
|
||||||
|
easily applied. (#714)
|
||||||
|
* Changed bacapp_snprintf_value() to be const correct. After that
|
||||||
|
we got a warning that the 4th function call argument is an uninitialized
|
||||||
|
value in bacapp_snprintf_weeklyschedule(). Fixed the warning by setting
|
||||||
|
array_index to zero. (#714)
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* Fixed MS/TP zero-config preferred-station setting to not filter getter. (#844)
|
||||||
|
* Fixed MS/TP module flush stderr compile error from leftover. (#844)
|
||||||
|
* Fixed device object compile errors and added IPv6 recipes for blinkt
|
||||||
|
and piface (#841)
|
||||||
|
* Fixed BACnet basic file object to have dynamic name, mime-type, path. (#835)
|
||||||
|
* Fixed MS/TP Slave Node FSM to enable receiving DNER frames. (#832)
|
||||||
|
* Fixed BACnetLightingCommand decode options by setting them. (#830)
|
||||||
|
* Fixed jquery.js used for syntax highlighting in PERL documentation. (#817)
|
||||||
|
* Fixed EXC_BAD_ACCESS in datalink_set() strcasecmp(). (#816)
|
||||||
|
* Fixed BACNET_APPLICATION_DATA_VALUE declarations to be initialized so
|
||||||
|
that the next pointer is NULL by default. (#814)
|
||||||
|
* Fixed mstpcap utility by setting This-Station to the MS/TP promiscuous
|
||||||
|
mode address 255. Fixed MS/TP receive filter for valid data frames which
|
||||||
|
was missing. Fixed MS/TP zero-config duplicate node detection. Reset
|
||||||
|
silence during MS/TP capture after writing packet to prevent endless
|
||||||
|
packets when stream is interrupted. (#812)
|
||||||
|
* Fixed the Linux MSTP turnaround delay implementation. (#809)
|
||||||
|
* Fixed app/router compiled with optimize Os when the program exits with
|
||||||
|
bit out of range 0 - FD_SETSIZE on fd_set. Solution disables optimize
|
||||||
|
for size by static set optimize 2 for GCC. Fixes (#793) (#808)
|
||||||
|
* Fixed app/router-ipv6 duplicate symbol by using Device_Object_Instance_Number
|
||||||
|
from device-client.c module. Fixes (#778). (#806) (#807)
|
||||||
|
* Fixed bsd/bip6.c:35:16: error: variadic macros are a C99 feature (#805)
|
||||||
|
* Fixed MS/TP FSM TS (this station) filter that was removed for zero-config
|
||||||
|
permiscuous feature. (#803)
|
||||||
|
* Fixed app router-ipv6 cmake (#800)
|
||||||
|
* Fixed app router cmake (#799)
|
||||||
|
* Fixed IP_DHCP_Enable property being present in Network Port object
|
||||||
|
by adding compiler define. (#796)
|
||||||
|
* Fixed app/router in cmake recipe. (#794)
|
||||||
|
* Fixed mismatched comments in netport.c module. (#792)
|
||||||
|
* Fixed app/server when compiled with BAC_ROUTING. (#783)
|
||||||
|
* Fixed a warning emitted from arm-none-eabi-gcc in hostnport.c (#785)
|
||||||
|
* Fixed duplicated C file in CMakeLists.txt (#781)
|
||||||
|
* Fixed cmake dependencies to build readbdt, readfdt and router-ipv6
|
||||||
|
if BACDL_BIP=OFF. (#777)
|
||||||
|
* Fixed compiler warning in ports/bsd/rs485.c module. (#771)
|
||||||
|
* Fixed UTF-8 passwords for DeviceCommunicationControl to hold up to
|
||||||
|
20 UTF-8 characters. (#767)
|
||||||
|
* Fixed "types-limits" compiler warnings. (#766)
|
||||||
|
* Fixed variable data type for boolean in RPM structure. Fixed RPM error
|
||||||
|
handling to use callback. Fixed bacrpm app example when not enough
|
||||||
|
command line parameters are used. Fixed empty-list EPICS printing.
|
||||||
|
Fixed RPM-Ack processing for end of list-of-results. Added minimal
|
||||||
|
handling for segmentation-not-supported during RPM of object
|
||||||
|
properties. (#765)
|
||||||
|
* Fixed the order of operations in SubscribeCOV so the dest_index gets written
|
||||||
|
to the correct slot instead of an initial MAX_COV_SUBSCRIPTIONS-1. (#761)
|
||||||
|
* Fixed some spelling typos in comments. (#762)
|
||||||
|
* Fixed COV detection in the basic Binary Output object example. (#751)
|
||||||
|
|
||||||
## [1.3.8] - 2024-08-26
|
## [1.3.8] - 2024-08-26
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
@@ -31,6 +176,9 @@ The git repositories are hosted at the following sites:
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
* Added BACDL_ETHERNET build in the pipeline for MacOS Linux and Windows. (#822)
|
||||||
|
* Added apps/router to ports/bsd by sharing API with ports/linux. (#821)
|
||||||
|
* Added missing router-mstp in cmake (#820)
|
||||||
* Added shield option explanation to ports/stm32f4xx/README.md (#749)
|
* Added shield option explanation to ports/stm32f4xx/README.md (#749)
|
||||||
* Added API for intrinsic reporting properties in Binary Value and Binary
|
* Added API for intrinsic reporting properties in Binary Value and Binary
|
||||||
Input objects (#742)
|
Input objects (#742)
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
|
|||||||
|
|
||||||
project(
|
project(
|
||||||
bacnet-stack
|
bacnet-stack
|
||||||
VERSION 1.3.8
|
VERSION 1.4.0
|
||||||
LANGUAGES C)
|
LANGUAGES C)
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -46,13 +46,21 @@ This BACnet protocol stack implementation is specifically designed for the
|
|||||||
embedded BACnet appliance, using a GPL with exception license (like eCos),
|
embedded BACnet appliance, using a GPL with exception license (like eCos),
|
||||||
which means that any changes to the core code that are distributed are shared,
|
which means that any changes to the core code that are distributed are shared,
|
||||||
but the BACnet library can be linked to proprietary code without the proprietary
|
but the BACnet library can be linked to proprietary code without the proprietary
|
||||||
code becoming GPL. Note that some of the source files are designed as
|
code becoming GPL. The text of the GPL exception included in each source
|
||||||
skeleton or example or template files, and are not copyrighted as GPL.
|
file is as follows:
|
||||||
|
|
||||||
The text of the GPL exception included in each source file is as follows:
|
* SPDX-License-Identifier: GPL-2.0-or-later WITH GCC-exception-2.0
|
||||||
|
|
||||||
* SPDX-License-Identifier: GPL-2.0-or-later WITH GCC-exception-2.0
|
Note that some of the source files are designed as skeleton or example
|
||||||
^^^^^^^^^^^^^^^^^^^^^^
|
or template files, and are not copyrighted as GPL. The text of the license
|
||||||
|
for these files is designated in each source file as follows:
|
||||||
|
|
||||||
|
* SPDX-License-Identifier: MIT
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
A software bill-of-materials can be generated using grep:
|
||||||
|
|
||||||
|
$ grep -nrw SPDX --include=*.[c,h]
|
||||||
|
|
||||||
The code is written in C for portability, and includes unit tests (PC based
|
The code is written in C for portability, and includes unit tests (PC based
|
||||||
unit tests). Since the code is designed to be portable, it compiles with GCC as
|
unit tests). Since the code is designed to be portable, it compiles with GCC as
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
#define BACNET_VERSION(x, y, z) (((x) << 16) + ((y) << 8) + (z))
|
#define BACNET_VERSION(x, y, z) (((x) << 16) + ((y) << 8) + (z))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BACNET_VERSION_TEXT "1.3.8"
|
#define BACNET_VERSION_TEXT "1.4.0"
|
||||||
#define BACNET_VERSION_CODE BACNET_VERSION(1, 3, 8)
|
#define BACNET_VERSION_CODE BACNET_VERSION(1, 4, 0)
|
||||||
#define BACNET_VERSION_MAJOR ((BACNET_VERSION_CODE >> 16) & 0xFF)
|
#define BACNET_VERSION_MAJOR ((BACNET_VERSION_CODE >> 16) & 0xFF)
|
||||||
#define BACNET_VERSION_MINOR ((BACNET_VERSION_CODE >> 8) & 0xFF)
|
#define BACNET_VERSION_MINOR ((BACNET_VERSION_CODE >> 8) & 0xFF)
|
||||||
#define BACNET_VERSION_MAINTENANCE (BACNET_VERSION_CODE & 0xFF)
|
#define BACNET_VERSION_MAINTENANCE (BACNET_VERSION_CODE & 0xFF)
|
||||||
|
|||||||
Reference in New Issue
Block a user