Updated to version 1.3.6 for release on 2024-05-12 Mother's Day! (#635)
* Updated to version 1.3.6 for release on 2024-05-12 Mother's Day!
This commit is contained in:
@@ -20,6 +20,82 @@ The git repositories are hosted at the following sites:
|
|||||||
### Fixed
|
### Fixed
|
||||||
### Removed
|
### Removed
|
||||||
|
|
||||||
|
## [1.3.6] - 2024-05-12
|
||||||
|
|
||||||
|
### Security
|
||||||
|
|
||||||
|
* Fixed bacapp snprintf to account for string size zero behavior of snprintf.
|
||||||
|
* Changed all the sprintf to use snprintf instead. (#628)
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
* Added Get/Set functions in the basic notification class object to support
|
||||||
|
properties relative permanence requirement. (#629)
|
||||||
|
* Added help text to explain how to decode complex data in the WriteProperty
|
||||||
|
example app. (#627)
|
||||||
|
* Added host_n_port_context_decode function.
|
||||||
|
* Added timestamp & datetime snprintf ASCII function.
|
||||||
|
* Added required linux Ethernet library for ethernet build. (#620)
|
||||||
|
* Added .obj to gitignore. (#620)
|
||||||
|
* Added create-object and delete-object recipes in GCC Makefile. (#620)
|
||||||
|
* Added datalink timer to all example OS apps. (#620)
|
||||||
|
* Added writefile API to basic file object example. (#620)
|
||||||
|
* Added API to device-client to make it more robust. (#620)
|
||||||
|
* Added API in network-port object for getting the ASCII object-name. (#620)
|
||||||
|
* Added debug print with a timestamp option. (#620)
|
||||||
|
* Added debug print with hex dump print. (#620)
|
||||||
|
* Added API to network port object for activate and discard. (#620)
|
||||||
|
* Added default define for debug with timestamp. (#620)
|
||||||
|
* Added prototype in header for disabled debug printf. (#620)
|
||||||
|
* Added fifo peek ahead function to peek at more than one byte. (#620)
|
||||||
|
* Added get-mac value for network port that uses buffer rather than
|
||||||
|
octetstring. (#620)
|
||||||
|
* Added API for basic multistate objects number-of-states.
|
||||||
|
* Added reliability, active-text, inactive-text to basic binary-input object.
|
||||||
|
* Added reliability property to basic binary-value object.
|
||||||
|
* Added API for setting multi state text with null-terminated name lists
|
||||||
|
in basic objects. (#614)
|
||||||
|
* Added Create/Delete object services to Analog Input, Analog Value,
|
||||||
|
Binary Input, Binary Value, Multistate Input, Multistate Value basic
|
||||||
|
object examples, and updated their units tests. (#612)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
* Changed clang-format to include AlignAfterOpenBracket: AlwaysBreak and
|
||||||
|
BinPackArguments: true. Used make pretty-test to reformat the test/bacnet
|
||||||
|
.c/.h files with the updated format.
|
||||||
|
* Changed most microcontroller ports to use BACAPP_MINIMAL to specify
|
||||||
|
which datatypes can be written. (#620)
|
||||||
|
* Changed format in CMake to enable cleaner SC merge. (#620)
|
||||||
|
* Changed the first instance of a basic integer value object from 1 to 0. (#619)
|
||||||
|
* Changed basic time-value object present-value to be decoupled from
|
||||||
|
current time, and changed out-of-service property to be writable.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
* Fixed nuisance print messages in ports/linux/dlmstp by changing
|
||||||
|
to debug print only. (#633)
|
||||||
|
* Fixed compile warnings in basic objects. (#630)
|
||||||
|
* Added API for setting multi state text with null-terminated name lists
|
||||||
|
in basic objects. (#630)
|
||||||
|
* Fixed example app router-ipv6 to build under ports/win32. (#630)
|
||||||
|
* Fixed example app router-mstp to build under ports/win32 with MinGW. (#630)
|
||||||
|
* Fixed invalid comparison in life-safety-zone basic object.
|
||||||
|
* Fixed CMake build for BDT and FDT to only apply to BIP and BIP6
|
||||||
|
* Fixed basic notification class object logic behind valid transitions. (#623)
|
||||||
|
* Fixed export build that uses rpm_ack_object_property_process(). (#622)
|
||||||
|
* Fixed zephyr bip_get_addr endian UDP port number
|
||||||
|
* Fixed BACnet port for APPLE to use BSD in CMake. (#620)
|
||||||
|
* Fixed zephyr OS for BACnet/IP warning. (#620)
|
||||||
|
* Fixed zephyr OS log to not require log_strdup. (#620)
|
||||||
|
* Fixed UDP port endian for zephyr os BACnet/IP
|
||||||
|
* Fixed basic network port object header dependency on readrange.h file
|
||||||
|
* Fixed basic binary object active and inactive text setting.
|
||||||
|
* Fixed unit test checking for unknown property in basic objects.
|
||||||
|
* Fixed example apps to enable binding to device instance 4194303. (#615)
|
||||||
|
* Fixed compile warnings in basic objects. (#614)
|
||||||
|
* Fixed life safety zone default object name. (#613)
|
||||||
|
|
||||||
## [1.3.5] - 2024-04-01
|
## [1.3.5] - 2024-04-01
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
|
|||||||
|
|
||||||
project(
|
project(
|
||||||
bacnet-stack
|
bacnet-stack
|
||||||
VERSION 1.3.5
|
VERSION 1.3.6
|
||||||
LANGUAGES C)
|
LANGUAGES C)
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|||||||
+1
-1
@@ -132,7 +132,7 @@ static void print_usage(char *filename)
|
|||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *value_string = NULL;
|
char *value_string;
|
||||||
bool status = false;
|
bool status = false;
|
||||||
BACNET_COV_DATA cov_data;
|
BACNET_COV_DATA cov_data;
|
||||||
BACNET_PROPERTY_VALUE value_list;
|
BACNET_PROPERTY_VALUE value_list;
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ static void My_Router_Handler(BACNET_ADDRESS *src,
|
|||||||
uint16_t npdu_len)
|
uint16_t npdu_len)
|
||||||
{
|
{
|
||||||
uint16_t dnet = 0;
|
uint16_t dnet = 0;
|
||||||
uint16_t len = 0;
|
|
||||||
uint16_t j = 0;
|
uint16_t j = 0;
|
||||||
|
|
||||||
switch (npdu_data->network_message_type) {
|
switch (npdu_data->network_message_type) {
|
||||||
@@ -94,7 +93,7 @@ static void My_Router_Handler(BACNET_ADDRESS *src,
|
|||||||
/* It shall be transmitted with a local broadcast address,
|
/* It shall be transmitted with a local broadcast address,
|
||||||
and shall never be routed. */
|
and shall never be routed. */
|
||||||
if (npdu_len >= 2) {
|
if (npdu_len >= 2) {
|
||||||
len += decode_unsigned16(npdu, &dnet);
|
(void)decode_unsigned16(npdu, &dnet);
|
||||||
printf(": network number = %u\n", (unsigned)dnet);
|
printf(": network number = %u\n", (unsigned)dnet);
|
||||||
} else {
|
} else {
|
||||||
printf(": network number = missing!\n");
|
printf(": network number = missing!\n");
|
||||||
@@ -104,7 +103,7 @@ static void My_Router_Handler(BACNET_ADDRESS *src,
|
|||||||
contain SNET/SADR or DNET/DADR information In the NPCI or
|
contain SNET/SADR or DNET/DADR information In the NPCI or
|
||||||
that are sent with a local unicast address. */
|
that are sent with a local unicast address. */
|
||||||
if (npdu_len >= 2) {
|
if (npdu_len >= 2) {
|
||||||
len += decode_unsigned16(npdu, &dnet);
|
(void)decode_unsigned16(npdu, &dnet);
|
||||||
printf(": network number = %u. SNET=%u\n", (unsigned)dnet,
|
printf(": network number = %u. SNET=%u\n", (unsigned)dnet,
|
||||||
(unsigned)src->net);
|
(unsigned)src->net);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -254,7 +254,7 @@ int main(int argc, char *argv[])
|
|||||||
time_t current_seconds = 0;
|
time_t current_seconds = 0;
|
||||||
time_t timeout_seconds = 0;
|
time_t timeout_seconds = 0;
|
||||||
bool found = false;
|
bool found = false;
|
||||||
char *value_string = NULL;
|
char *value_string;
|
||||||
bool status = false;
|
bool status = false;
|
||||||
int args_remaining = 0, tag_value_arg = 0, i = 0;
|
int args_remaining = 0, tag_value_arg = 0, i = 0;
|
||||||
long property_tag;
|
long property_tag;
|
||||||
|
|||||||
@@ -1528,7 +1528,6 @@ bool Channel_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
|
|||||||
BACNET_APPLICATION_DATA_VALUE value;
|
BACNET_APPLICATION_DATA_VALUE value;
|
||||||
int element_len = 0;
|
int element_len = 0;
|
||||||
uint32_t count = 0;
|
uint32_t count = 0;
|
||||||
uint32_t array_index = 0;
|
|
||||||
|
|
||||||
/* decode the some of the request */
|
/* decode the some of the request */
|
||||||
len = bacapp_decode_application_data(
|
len = bacapp_decode_application_data(
|
||||||
@@ -1589,7 +1588,6 @@ bool Channel_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
|
|||||||
wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
|
wp_data->error_code = ERROR_CODE_WRITE_ACCESS_DENIED;
|
||||||
} else if (wp_data->array_index == BACNET_ARRAY_ALL) {
|
} else if (wp_data->array_index == BACNET_ARRAY_ALL) {
|
||||||
count = CONTROL_GROUPS_MAX;
|
count = CONTROL_GROUPS_MAX;
|
||||||
array_index = 1;
|
|
||||||
/* extra elements still encoded in application data */
|
/* extra elements still encoded in application data */
|
||||||
element_len = len;
|
element_len = len;
|
||||||
do {
|
do {
|
||||||
@@ -1611,7 +1609,6 @@ bool Channel_Write_Property(BACNET_WRITE_PROPERTY_DATA *wp_data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
count--;
|
count--;
|
||||||
array_index++;
|
|
||||||
if (count) {
|
if (count) {
|
||||||
element_len = bacapp_decode_application_data(
|
element_len = bacapp_decode_application_data(
|
||||||
&wp_data->application_data[len],
|
&wp_data->application_data[len],
|
||||||
|
|||||||
@@ -361,7 +361,7 @@ bool Routed_Device_Is_Valid_Network(uint16_t dest_net, int *DNET_list)
|
|||||||
|
|
||||||
uint32_t Routed_Device_Index_To_Instance(unsigned index)
|
uint32_t Routed_Device_Index_To_Instance(unsigned index)
|
||||||
{
|
{
|
||||||
index = index;
|
(void)index;
|
||||||
return Devices[iCurrent_Device_Idx].bacObj.Object_Instance_Number;
|
return Devices[iCurrent_Device_Idx].bacObj.Object_Instance_Number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2139,7 +2139,6 @@ bool bvlc_address_from_ascii(BACNET_IP_ADDRESS *addr, const char *addrstr)
|
|||||||
uint16_t tmp = 0;
|
uint16_t tmp = 0;
|
||||||
char c = 0;
|
char c = 0;
|
||||||
unsigned char i = 0, j = 0;
|
unsigned char i = 0, j = 0;
|
||||||
uint8_t charsread = 0;
|
|
||||||
|
|
||||||
if (!addr) {
|
if (!addr) {
|
||||||
return false;
|
return false;
|
||||||
@@ -2168,7 +2167,6 @@ bool bvlc_address_from_ascii(BACNET_IP_ADDRESS *addr, const char *addrstr)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
++addrstr;
|
++addrstr;
|
||||||
++charsread;
|
|
||||||
} while ((c != '.') && (c != 0) && (c != ' '));
|
} while ((c != '.') && (c != 0) && (c != ' '));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,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.5"
|
#define BACNET_VERSION_TEXT "1.3.6"
|
||||||
#define BACNET_VERSION_CODE BACNET_VERSION(1,3,5)
|
#define BACNET_VERSION_CODE BACNET_VERSION(1,3,6)
|
||||||
#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