Fixed zephyr BACnet/IP for use in native_posix#738
Merged
Conversation
…level for BACnet.
skarg
added a commit
that referenced
this pull request
Oct 18, 2024
* Implement missing data types for calendar and schedule (#474)
* Added the SpecialEvent struct for the Exception_Schedule property of Schedule, encode/decode/same functions, unit tests, and integrated into bacapp functions.
* Added the CalendarEntry struct for the Date_List property of Calendar and the SpecialEvent struct, encode/decode functions, unit tests, and integrated into bacapp functions.
* Added the DateRange struct for the Effective_Period property of Schedule, encode/decode functions, unit tests, and integrated into bacapp functions.
---------
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
* Feature/oscbs 29 calendar time object (#440)
* Added basic Calendar object, unit tests, and integration with example device object.
* Added basic Time Value object, unit tests, and integration with example device object.
---------
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
* Feature/mstp zero config option (#564)
* Added a MS/TP zero-config (automatically choose an unused MAC address) using an algorithm that starts with MAC=64 and waits for a random number of PFM (minimum of 8 plus modulo 64) before attempting to choose a MAC sequentially from 64..127. The confirmation uses a 128-bit UUID with the MSTP Test Request frame. The modifications are in src/bacnet/datalink/mstp.c and src/bacnet/datalink/dlmstp.c modules enabling any device to use zero-config if enabled. A working demonstration is in the ports/stm32f4xx for the NUCLEO board. Complete unit testing is included. Options include lurking forever (wait for a router or another master node before joining) or lurking for a minimum time (enables self forming automatic MAC addressing device nodes).
* Added bacapp decoding for accumulator SCALE property (#566)
* update the changelog to the current master branch
* Updated version to 1.3.3 on 2024-02-02. Groundhog day!
* update release script to use tag option and remove tag reminder
* fix compile warnings
* Add missing object functions to analog inputs and values (#568)
* ai.c: add possibility to set a custom object name
The Name_Set function is already declared in the header but not
implemented. With this implementation, one can set a custom object name
from a server application.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
* av.c: add possibility to set a custom object name
The Name_Set function is already declared in the header but not
implemented. With this implementation, one can set a custom object name
from a server application.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
* ai.c: implement function to set custom description
For now the hard-coded behaviour was to return the object name whenever
a client requested the value for the description.
Therefore implement the functions Description and Description_Set already
declared in the header and add a Description property to the data
structure used. We also need to properly implement PROP_DESCRIPTION in
the Read_Property function.
This way we can set and read a custom decsription from a server application
and send the appropriate response to a read-property request asking for
PROP_DESCRIPTION.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
* av.c: implement function to set custom description
For now the hard-coded behaviour was to return the object name whenever
a client requested the value for the description.
Therefore implement the functions Description and Description_Set already
declared in the header and add a Description property to the data
structure used. We also need to properly implement PROP_DESCRIPTION in
the Read_Property function.
This way we can set and read a custom decsription from a server application
and send the appropriate response to a read-property request asking for
PROP_DESCRIPTION.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
* ai.c: implement function to set custom units
Implement the object functions related to Units already declared in the
header.
By default Analog Inputs will have the Unit UNITS_PERCENT. Add
functionality to be able to set and read custom units from a server
application.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
* av.c: implement function to set custom units
Implement the object functions related to Units already declared in the
header.
By default Analog Values will have the Unit UNITS_NO_UNIT. Add
functionality to be able to set and read custom units from a server
application.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
---------
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
Co-authored-by: Sebastian Weyer <sebastian.weyer@smile.fr>
* Move some platform compile fixes into platform.h file
* fix function header comment
* Bugfix/bacaddr dnet only init (#570)
* Fixed bacnet_address_init() when setting only the dnet value.
* Fixed MSVC snprintf from C99
* update keylist to use bool and stdint value for key not found. (#572)
* Updated keylist to use bool and stdint value for key not found.
* Added Keylist_Index_Key to deprecate Keylist_Key function
* Changed the deprecated Keylist_Key API to Keylist_Index_Key
* Added unit test for Keylist_Index_Key API
* Fixed the Network Port object subnet mask for IP example. (#573)
* remove ARM library for stm32f4xx port
* fix release tool to have a prefix folder with the tag version name
* enable rebuilding tagged release code and zips in a working tree in temp folder
* ao.c: set proper bounds for Analog_Output_Present_Value_Set and Analog_Output_Present_Value_Write (#575)
* ao.c: set proper bounds for Analog_Output_Present_Value_Write
The lower and upper bounds to the value passed to this function were
hard-coded to 0 and 100 respectively. This meant that a client was not
able to write a value outside of these bounds, regardless of the values
of `Min_Pres_Value` and `Max_Pres_Value`.
Now properly compare the new value against `Min_Pres_Value` and
`Max_Pres_Value` and only return `ERROR_CODE_VALUE_OUT_OF_RANGE` when it
is outside of this range.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
* ao.c: make Analog_Output_Present_Value_Set return 0 when out of range
Compare the new value passsed to `Analog_Output_Present_Value_Set`
against `Min_Pres_Value` and `Max_Pres_Value`. If the new value is
outside of these bounds, don't update the present value and return false.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
---------
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
Co-authored-by: Sebastian Weyer <sebastian.weyer@smile.fr>
* Add missing binary input functions (#574)
* bi.c: add possibility to set custom object names
Add an array of MAX_BINARY_INPUTS values containing the custom object
names.
When calling Binary_Input_Object_Name, if no custom name has been set,
return a string with the object type and the object instance number.
Otherwise, return the custom object name.
When setting the object name, first check that the string is not NULL,
then set the name in the new array.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
* bi.c: add possibility to set custom description
Implement functions Binary_Input_Description and
Binary_Input_Description_Set. Binary_Input_Description will return an
empty string if no custom description has been set yet.
In order to store the custom descriptions, we declare a new array with
MAX_BINARY_INPUTS amount of values.
When setting a new description using Binary_Input_Description_Set, we
first check that the new description is not NULL and then store it in
array at the object_instance position.
In the Binary_Input_Read_Property function, we need to split
PROP_DESCRIPTION from PROP_OBJECT_NAME in the switch case as before the
object name would be returned when the description was being read by a
client. Now we properly call Binary_Input_Description.
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
---------
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
Co-authored-by: Sebastian Weyer <sebastian.weyer@smile.fr>
* improve release script - only write to tmp folder
* add a clean target in apps to remove stale library
* Fixed apps/Makefile to use apps/lib/libbacnet.a module instead of omodule in system /usr/lib folder.
* Feature/arbitrary apdu application (#580)
* Added application to send an arbitrary APDU string of hex-ASCII
* Bugfix/bacapp deprecation fixes (#578)
* Secured bacapp_decode_application_data_safe(), bacapp_decode_application_data_len(), bacapp_decode_context_data(), bacapp_decode_known_property() for timestamp, bacapp_decode_context_data_len(), and bacapp_data_len() functions.
* Fixed Command, Credential Data Input, and Schedule objects unit test
* Feature/bacnet discover dnet devices (#583)
* Added an example application to discover devices and their objects and properties on a specific destination network. The application uses a BACnet Discovery FSM module along with the BACnet R/W FSM. The BACnet Discovery module stores the binary property data in Keylists and includes device object property queries and iterators.
* Added callback from BACnet R/W FSM module for I-Am messages.
* Removed dependency in BACnet R/W FSM module on rpm_ack_decode_service_request() which uses calloc/free value lists. Created an alternate RPM-ACK to RP-ACK processing function.
* Changed RPM handler to skip over unknown property values
* Fixed makefile for building the Linux router application. (#585)
* Fixed Makefile for building the Linux router application.
* Added a BASH script for parallel EPICS clients registering as foreign devices to a BBMD (#586)
* Added FAQ 18 for firewall info (#587)
* Added support for both DFR0259 and LINKSPRITE RS485 shield in build (#588)
* Added SHIELD=dfr0259 or SHIELD=linksprite build options to RS485 driver for stm32f4xx port.
* Updated changelog and version for 1.3.4 release (#589)
* Bugfix/mstp extended frames client (#592)
* Fix routing to a remote network in the router-mstp example.
The net, len and adr fields of remote_dest are not initialized
although they are used by the npdu_encode_pdu function in
case of "Routing to another Router". Thank you, Eugene!
* Fixed handling of received MS/TP extended frames.
mstp_port->DataLength should be set to the actual length of decoded data.
* Fix MSTP_Master_Node_FSM and MSTP_Slave_Node_FSM for extended frames.
BACNET_EXTENDED_DATA frames should be treated the same as
their corresponding BACNET_DATA frames.
* Fixed MSTP COBS frame encoding
cobs_frame_encode writes the encoded data to the
beginning of the buffer, overwriting the frame header.
The frame header is constructed before COBS frame encoding,
so it contains the wrong Frame Type and Data Length.
* Added extended frame client unit test
* Fix router-ipv6 application for remote networks
* Feature/life safety zone object example (#595)
* Added Keylist_Data_Free function to free all nodes and data in a list
* Added basic Life Safety Zone object type in the apps/server example, with unit testing.
* Require bacdef.h as first bacnet header to include (#598) (#600)
* Require bacdeps.h as first bacnet header to include
BACnet headers need to pull in optional configuration and
optional ecosystem overrides to allow integrators to control
builds. This commit changes bacnet header files to first
include bacnet/bacdep.h to consistently introduce integrator
header files.
Verified by:
1. make clean all test
2. ./zephyr/scripts/twister -p unit_testing \
-T bacnet-stack/zephyr/tests/
* Migrate BACNET_UNSIGNED_INTEGER defn to bacdef.h
Verified by:
1. make clean all test
2. ./zephyr/scripts/twister -p unit_testing \
-T bacnet-stack/zephyr/tests/
---------
Signed-off-by: Gregory Shue <gregory.shue@legrand.com>
Co-authored-by: Greg Shue <32416235+gregshue@users.noreply.github.com>
Co-authored-by: Gregory Shue <gregory.shue@legrand.com>
* Issues/issue 593 update to zephyr v3 6 0 (#601)
* [WIP] update manifest to zephyr v3.6.0
* [WIP] Deprecated ZTEST_NEW_API adjustments
Zephyr v3.6.0 removed Kconfig ZTEST_NEW_API.
The old ZTEST API is still used by non-Zephyr builds,
so the config setting is moved from `prj.conf` to
the test's CMakeLists.txt as `add_compile_definitions()`.
Verified by:
1. make clean all test
2. ./zephyr/scripts/twister -p unit_testing \
-T bacnet-stack/zephyr/tests/
---------
Co-authored-by: Gregory Shue <gregory.shue@legrand.com>
* Add core stack headers into bacdef.h and cleanup includes. (#602)
* Added dependent BACnet stack headers into bacdef.h file.
* Changed bacdef.h and other stack includes in c/h files to have a common pattern.
* Moved bits.h, bytes.h, and bacnet_stack_exports.h under bacnet/basic/sys/ folder.
* Bugfix/double float promotion warnings (#605)
* Fixed compile warnings from double-float promotions.
* Changed zephyr compile to suppress deprecation warnings
* Fixed CreateObject API return value in many objects header files
* Changed zephyr build defines as strdup is no longer required for log print of strings
* Secured the WPM and RPM service encoders (#604)
* Secured the WPM and RPM client service encoders.
* Fixed RPM and WPM apps when fail to encode request.
* Fixed WPM app number of arguments checking.
* Bugfix/zephyr build for minimal ram (#606)
* Removed BACnet objects from ports/zephyr. There should only be datalink and OS related interfaces in OS ports.
* Added Kconfig and bacnet-config.h options in ports/zephyr to keep small footprint for MCUs having less RAM
* Changed ports/zephry for BACnet/IP and date-time with latest zephyr OS
* Completed the implementation of object-instance and object index differentiation object/basic/ai.c module. Thanks, GauiStori! (#607)
* Fix double promotion in format specifier %f by casting floats to double. (#608)
* Refactor/property lists member function (#609)
* Refactor property lists member function for WriteProperty default case.
* Refactor time-value object unit testing
* Added test for unsupported property to common property test
* Bugfix/zephyr defines kconfig (#610)
* Added COV features to time-value object
* Added zephyr config names with BACNET prefix
* Release/version 1.3.5 rc1 (#611)
* Updated to version 1.3.5 for release on 2024-04-01 April Fool's Day!
* Feature - added create/delete/COV services for analog, binary, and multistate objects (#612)
* Added Create/Delete object services to Analog Input, Analog Value, Binary Input, Binary Value, Multistate Input, Multistate Value object examples, and updated their units tests.
* fixed life safety zone default object name (#613)
* Bugfix/basic object features cleanup (#614)
* Fixed compile warnings in basic objects
* Added API for setting multi state text with null-terminated name lists in basic objects
* Enable example apps to bind to device 4194303 (#615)
* Change time-value object present-value to not report current time. Added out-of-service property to WriteProperty.
* Fixed unit test checking for unknown property. Added reliability property to binary-value ReadProperty.
* Added reliability, active-text, inactive-text to binary-input object ReadProperty.
* Fixed binary object active and inactive text setting.
* Added API for multistate number-of-states
* Fixed basic network port object header dependency on readrange.h file.
* Fixed UDP port endian for zephyr os BACnet/IP
* Fixed UDP port endian for zephyr os BACnet/IP
* Change first instance of an integer value from 1 to 0 (#619)
Integer_Values instances start at 1 while other object instances
start at 0. Change this to have the same start for all objects.
Signed-off-by: Antoine Coutant <antoine.coutant@smile.fr>
* Chore/bacnet-sc-unrelated-cleanup (#620)
* Added required linux Ethernet library for ethernet build
* Added .obj to gitignore
* Fixed BACnet port for APPLE to use BSD in CMake
* Changed format in CMake to enable cleaner SC merge
* Added create-object and delete-object recipes in GCC Makefile
* Added datalink timer to all example OS apps
* Changed most microcontroller ports to use BACAPP_MINIMAL to specify which datatypes can be written.
* Fixed zephyr OS for BACnet/IP warning
* Fixed zephyr OS log to not require log_strdup
* Added writefile API to file object example
* Added API to device-client to make it more robust.
* Added API in network-port object for getting the ASCII object-name
* Added debug print with a timestamp option
* Added debug print with hex dump print
* Added API to network port object for activate and discard
* Added default define for debug with timestamp
* Added prototype in header for disabled debug printf.
* Added fifo peek ahead function to peek at more than one byte.
* Added get-mac value for network port that uses buffer rather than octetstring
* Fixed zephyr bip_get_addr endian UDP port number
* fix build with readable objects (#622)
When building the stack with readable objects, the
My_Read_Property_Multiple_Ack_Handler function defined in
src/bacnet/basic/client/bac-rw.c calls rpm_ack_object_property_process
which is defined in src/bacnet/rpm.h but unreachable without
BACNET_STACK_EXPORT.
How to reproduce the bug:
$ mkdir build
$ cd build/
$ cmake -DCMAKE_C_FLAGS="-DMAX_ANALOG_INPUTS=100" ..
$ make
...
[ 81%] Linking C executable bacpoll
/usr/bin/ld: CMakeFiles/bacpoll.dir/src/bacnet/basic/client/bac-rw.c.o: in function `My_Read_Property_Multiple_Ack_Handler':
bac-rw.c:(.text+0x188): undefined reference to `rpm_ack_object_property_process'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/bacpoll.dir/build.make:146: bacpoll] Error 1
make[1]: *** [CMakeFiles/Makefile2:523: CMakeFiles/bacpoll.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Signed-off-by: Antoine Coutant <antoine.coutant@smile.fr>
* Setting logic behind valit transitions check straight (#623)
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
* Fixed CMake build for BDT and FDT to only apply to BIP and BIP6.
* zephyr OS changes after bacdef.h refactor.
* zephyr OS changes after bacdef.h refactor.
* Add timestamp snprintf. Fix bacapp snprintf to account for string size zero behavior of snprintf.
* Added datetime to ASCII function.
* Added host_n_port_context_decode function.
* Added AlignAfterOpenBracket: AlwaysBreak and BinPackArguments: true to clang-format. Updated test/bacnet c/h files with updated format.
* Refactored all the sprintf to use snprintf instead. (#628)
* added some help about decoding complex data in WriteProperty example app. (#627)
* Fixed invalid comparison in life-safety-zone basic object.
* Merge pull request #39 from se-apc/devel/getters_and_setters_to_support_relative_permanence (#629)
Get/Set functions to support properties relative permanence requirement
* Bugfix/router mstp builds (#630)
* Fixed example app router-ipv6 to build under ports/win32
* Fixed example app router-mstp to build under ports/win32 with MinGW
* Added win32 builds of router-ipv6 and router-mstp to the Github pipeline
* Issues/issue 632 invoke id mismatch (#633)
Fixed nuisance print messages in ports/linux/dlmstp by changing to debug print only.
* 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!
* Fixed basic analog-value alarm-ack functionality. (#639)
* Fixed basic analog-value alarm-ack functionality.
* Added reliability property to basic analog-value.
* Fixed some basic analog-value and analog-input object function header comments.
* Fixed basic analog-value object intrinsic reporting and write property (#640)
* Fixed basic analog-value object intrinsic reporting for ack notification.
* Fixed basic analog-value object write property of present-value to priority 6.
* Feature/add basic structured view object (#641)
* Added basic structured view object and unit test. Added example structured view into server example.
* Removed creation of objects from basic device object into the server example
* Added function to determine if an object property is a BACnetARRAY. (#642)
* Added function to determine if an object property is a BACnetARRAY. Added property test for BACnetARRAY members.
* added secure BACnet primitive datatype encode functions. (#643)
* added secure BACnet primitive datatype encode functions.
* Bugfix/secure apdu handler unconfirmed (#645)
* Secured APDU handler by avoiding read ahead.
* Minor code cleanup of BACnetWeeklySchedule (#646)
* Minor code cleanup of BACnetWeeklySchedule
* Bugfix/secure alarm ack codec (#647)
* Secured BACnetAcknowledgeAlarmInfo codec and improved unit testing code coverage.
* Secured the WhoHas codec and improved unit test coverage. (#649)
* Secured BACnetTimeValue codec, and improved unit test coverage. (#648)
* Secured BACnetTimeValue codec, and improved unit test coverage.
* change config.h to default to client-server apps (#651)
* Secure ReadPropertyMultiple code, and improve unit test coverage. (#650)
* Added mail map to consolodate commit names (#652)
* Added simpler API to get/set Network Port MSTP MAC address (#653)
* Fixed RPM compiler warning. (#654)
* Added BACAPP Kconfig options for Zephyr OS builds. (#655)
* Added existing BBMD unit test by converting to cmake (#657)
* Refactor/snprintf next common shift function (#656)
* Bugfix/fix redundant compiler flags (#658)
* Improved GCC compiler flags in ARM, OS, and test builds. Removed redundant flags, and made them consistent across various builds.
* Fixed redundant redeclaration of various functions detected by change in compiler flags.
* Fixed string truncation warning in bip-init detected by change in compiler flags.
* Fixed some set-but-not-used variables by creating dummy functions instead of using macros.
* Fixed the Zephyr-OS BIP6 datalink module. (#659)
* chore: Update zephyr ztest include paths and compiler flags (#660)
* Feature/add memap cstack usage ports (#661)
* Added memap, avstack, and checkstackusage tools to STM32F4xx Makefile and CMake builds to calculate CSTACK depth and RAM usage
* Added memap, cstack, and ram-usage recipes to stm32f10x port Makefile. Added Cmake build.
* Removed local dlmstp.c module from stm32f10x port, and used the common datalink dlmstp.c module with MS/TP extended frames and zero-config support.
* Added .nm and .su to .gitignore to skip the analysis file residue.
* Added guard for some object inits to prevent memory leak by misuse (#662)
Co-authored-by: Nik Schewtschuk <nikonlinee@gmail.com>
* Added wildcard check for bi objects (#663)
Co-authored-by: Nik Schewtschuk <nikonlinee@gmail.com>
* Added guards in create object initialization to prevent memory leaks (#664)
* Refactor/ports xplained common dlmstp (#665)
* Refactored ports/xplained to use common DLMSTP module to enable extended frames
* Added floating point compares in cases where they don't exist in math library
* Added example basic bitstring value object. (#668)
* Fix datatype conversion errors found by splint. Fix Binary input/value set. (#672)
* ai.c, ao.c : Fix typos (#673)
* Adding activate-changes to the ReinitializeDevice options (#674)
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
* Refactor/mstp zero config state machine (#676)
* Changed MS/TP master node self destination checks to be located in receive FSM
* Changed MSTP zero configuration: modified comments for state transition names; modified next station increment; refactored the UUID rand() to not be required by common zero config implementation; added more unit tests.
* Added another context to MS/TP user data to allow additional user data
* Updated version to 1.3.7 for release. Happy Anniversary, Patricia! (#682)
* Reduced MS/TP MAX_APDU to use 480 by default in examples (#683)
* Reduced MS/TP MAX_APDU to 480 from 1476 so that devices not use new MS/TP extended frame types which older routers do not understand.
* Added extra objects to STM32F4xx example to elicit edge cases in object-list for testing.
* Fixed Object type list length for protocol-revision 24. (#684)
* Added BACnet/IPv6 properties to basic Network port object (#686)
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
* Fixed basic device object and ReadRange handling for test 9.21.2.2 and 9.21.2.3 array index (#692)
* Fixed network priority reponses for test 10.1.2 (#687)
* Fixed the common DLMSTP module destination address to use the destination in the request instead of zero (copy/pasta error). (#693)
* Added Binary Input and Binary Value intrinsic reporting CHANGE_OF_STATE algorithm as per 13.3.2 as per ASHRAE 135-2020 (#689)
* updating the MSTP zero config transition names (#698)
* Added set time callback with optional offset for BACnet TimeSynchronization services (#691)
* Fixed compile warnings from Binary Value header file.
* Moved timesync offset get/set from handler to ports to fix projects not using handler (#699)
* Fixed MSTPCAP build by removing BACnet Library
* Remove Makefile debug from MSTPCAP build
* Fixed compile warnings from recent merge into datetime ports.
* Fixed compile warnings from stricmp in indtext module on Windows.
* Fixed compile warnings from stricmp in indtext module on Windows.
* Added a check for apdu_len exceeding MAX_APDU in apdu_handler() for confirmed service and ignore the message if the APDU portion of the message is too long. (#696)
* Added reject response to unknown reserved network layer message types. (#690)
* Fixed MS/TP that was not working in ports/win32 (#694)
* Fixed BACnetHostNPort known property decoding. (#700)
* Fixed BACnetHostNPort known property decoding.
* Added BDT-Entry and FDT-Entry to BACapp for known property encoding/decoding.
* Added Zephyr settings and basic device in subsys. (#697)
* Added Zephyr settings subsys to enable storing of BACnet values according to BACnet object property value path.
* Added BACnet Basic features to enable basic samples. Refactored the zephyr BACnet profile B-SS sample to use BACnet basic subsys.
* * Changed header file include guards to unique namespace. Updated file headers comments with SPDX [issue #55] (#666)
* Fixed bitstring-value header file duplication.
* Fix typo (#701)
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
* Fixed zephyr B-SS sample build under native_sim
* Added more kconfig for zephyr build. Added more creatable objects for zephyr build.
* Fixed compile warning in network port object.
* Create bacnet strnlen and stricmp to avoid libc compiler problems
* Modifications for ASHRAE 135-2020cn engineering units (#703)
* Added bacnet-basic callback in zephyr subsys to include init and task in same thread.
* Added some dependency into zephyr kconfig for BACnet/IP builds. Updated simple sensor sample.
* Secure ReadProperty decoding and BACnetActionCommand (#702)
* Refactored and secured BACnetActionCommand codec into bacaction.c module for command object and added to bacapp module encode/decode with define for enabling and pseudo application tag for internal use.
* Simplified bacapp_data_len() and moved into bacdcode module as bacnet_enclosed_data_len() function.
* Secured ReadProperty-REQUEST and -ACK decoding.
* Removed deprecated Keylist_Key() functions from usage.
* Removed pseudo application datatypes from bacapp_data_decode() which only uses primitive application tag encoded values.
* Defined INT_MAX when it is not already defined by compiler or libc.
* Deprecated bacapp_decode_application_data_len() and bacapp_decode_context_data_len() as they are no longer used in any code in the library.
* Added BACnetScale to bacapp module. Improved complex property value decoding. Refactored bacapp_decode_known_property() function.
* Refactored and improved the bacapp_snprintf() function for printing EPICS.
* Fixed Lighting Output WriteProperty to handle known property decoding.
* Added mstpcap for MacOS (#705)
* Updated the Makefile for mstpcap to accomodate macOS and to build the bacnet lib. Compiling working version of mstpcap on macOS 14, although compiling should work on many earlier versions. The --extcap-interfaces flag now works for macOS which allows one to use mstpcap as an extcap for Wireshark while listing the available serial ports and baud rates.
* note: Had to use uname to figure out if one is on Darwin/macOS vs vanilla BSD. From there, macOS specific supported features and location are used. For instance, the 76800 baud rate is natively supported.
* note: MacOS doesn't like placing the mstpcap executable in the global extcap plugin directory as it corrupts the Wireshark executable from an xattr and SIP (System Integrity Protection) perspective and macOS will refuse to run it calling it 'corrupt'. One could turn off xattr stuff, using xattr -cr, but could be risky long term. A safer, permissible workaround is to place the executable in the user .local extcap directory: '/Users/<your_user_name>/.local/lib/wireshark/extcap/'. If the directory doesn't exist just create it and copy the executable there.
* note: make the executable from the root or apps folder, as there are defines in the apps folder that are common to all the apps. The mstpcap executable is copied to bacnet-stack/bin/ folder.
---------
Co-authored-by: Michael O'Neill <em.pee.oh@gmail.com>
* Added alaternate define for BACNET_NPDU_DATA as BACNET_NPCI_DATA.
* Fixed typo in command line argument check of example app for BACnet Network-Number-Is (#707)
* Added create and delete methods to basic device object table for calendar object.
* Added Exception_Schedule property to schedule object example. (#709)
* Fixed load control object and unit test. Added recipe to Makefile for Zephyr OS twister unit testing. (#710)
* Updated B-SS profile sample build for Zephyr OS. (#711)
* Fixed compile warnings and BACnet priority array decoding (#712)
* Fixed network port warning for unused static function.
* Fixed BACnetPriorityArray decoding in bacapp module
* Fixed epics print of BACnetDateTime complex data.
* Fixed unit test compiler warnings
* revert LCOV changes to test Makefile
* Fixed implicit conversion of float to double when using snprintf() format specifier %f.
* Fixed implicit conversion from float to double in lighting output and color.
* Fixed Lighting Output object lighting command decoding and ramp operations
* Fixed Lighting Output unit test builds after recent fixes added debug printing and implicit float to double promotion.
* Removed extraenous coverage recipe in test all recipe.
* Added CreateObject and DeleteObject to Load Control object. (#713)
* Improve SPDX identifier coverage (#716)
* Change MIT license texts to SPDX-License-Identifier
SPDX-License-Identifier is much easier to understand and grep than
license text so use that instead.
* Change GPL exception license texts to SPDX-License-Identifier
SPDX-License-Identifier is much easier to understand and grep than
license text so use that instead.
* Change misc license texts to SPDX-License-Identifier
There are some external code in repo which are not licenses as most of
the stuff in this repo. We still want every file to have SPDX identifier
to easily grep licenses.
* Add currently used license files
Even though Bacnet-Stack is using SPDX identifiers we still need to give
those license files with source. For this reason add all license files
to license/ folder.
SPDX has also files which would make same thing but this is style which
example Linux kernel is using and it is quite clear so I choose that one
for now.
I choosed not yet bring CC-PDDC as that is not right license for those
files.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Add and fix compiler warnings (#718)
* Add and remove compiler warning compile options
Add some new compiler warnings. Some of those does not build clean so
ignore them for now. This also helps if some user use those options so
we ignore those for them also.
Also remove following ignores as they do not produce any warnings:
- Wno-attributes
- Wno-long-long
- Wno-implicit-fallthrough
* Fix -Wmissing-declarations compiler warnings
Fix new -Wmissing-declarations compiler warnings. I tried to look which
should be in headers and which should be static. Might be that some
statics should be in header as it is not easy to choose if something
should be exported or not.
* Fix -Wmissing-field-initializers compiler warnings
If we use { { 0 } } compiler thinks we might have mean that we only
meant initialize first member of struct or have forgotton to add second
one. We could do { { 0 }, 0 } but we can just do { 0 } which tells
compiler that hey just intialize this whole thing to zero.
* tests: Fix couple -Wfloat-conversion warnings
Add f prefix to floating point numbers to get some double to float
warnings away.
* ci: Make warnings as errors with cmake main build
To keep repo more clean from warnings use Werror flag when building main
project.
Windows should need -DCMAKE_C_FLAGS="/WX" but we have not ignore errors
for that yet so let's not yet take it in use.
* ci: Build also tests in matrix build
Enable also tests to be builded in our main matrix build. This way tests
will be builded also with clang and in future also with MSVC. We also
keep build very clean now as all warnings as catched.
With this we can also take out -Werror from compile_options as we add
that in CI. It is not good practice to keep that option always on. It
makes development lot harder. See example this blog post [1].
[1]: https://embeddedartistry.com/blog/2017/05/22/werror-is-not-your-friend/
* getevent: Deprecate getevent_encode_apdu()
Steve suggested that we should deprecate getevent_encode_apdu() [1].
Suggested-by: Steve Karg
[1]: https://github.com/bacnet-stack/bacnet-stack/pull/718#discussion_r1715821735
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Added CreateObject, DeleteObject, and COV to Integer Value object (#719)
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
* Force C89/C90 compatible and for test C99 (#722)
* bacint: Do not use ULL suffix
For sake of be more compatible with C89/C90 let's not use ULL at all.
Overall conversion functions are lot cleaner now. Only idiotic thing is
in bacnet_unsigned_length() where we need to do shift. There is probably
better way to do that but could not come up any at resonable time.
* Force C89/C90 and for tests C99
bacnet-stack seems to be all compatible with C89/C90. This is probably
design choice. Let's force this in CMake so no one will break that by
accident.
In tests we are using some C99 features already. Let's not be to strict
about those as those are "just tests".
* Fix -Wdeclaration-after-statement warnings
To make code C89/C90 compatible fix -Wdeclaration-after-statement
warnings.
We got like following warning without this change.
```C
bacnet-stack/apps/epics/main.c:293:5: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement
293 | uint32_t Object_Instance;
| ^~~~~~~~
```
* cmake: Add -Wno-c99-extensions compiler option
Clang does not like _Bool which is used in stdbool.h files. For now
let's just ignore this. We could define that differently but let's think
that another time. Now goal is to get warning free CI with more code to
be builded in there.
* cmake: Add -Wno-long-long compiler option for apple
Apple seems to do stupid things with their system header. There is
UINT64_MAX with ULL suffix and not like in Linux and Windows
__UINT64_C(18446744073709551615)
For this reason we need to ignore Wlong-long for it.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Zephyr 3.7.0 integration fixes: (#723) (#724)
- Update west.yml
- Update samples.yaml to new syntax, board names
- Patches to ports/zephyr (some stubs)
Verified by:
1. ./zephyr/scripts/twister -p unit_testing -T bacnet-stack/zephyr/tests
2. ./zephyr/scripts/twister -T bacnet-stack/zephyr/samples/ --integration
Fix #721
Co-authored-by: Gregory Shue <gregory.shue@legrand.com>
* Build more code in CI (#725)
* bugfix/hostnport: Fix bacnet_fdt_entry_from_ascii() parse wrong
* apps/router: Fix Wstrict-prototypes compiler warnings
* apps/router: Fix -Wmissing-field-initializers compiler warning
* ports/linux: Fix -Wself-assign compiler warning
* ports/linux: Fix -Wunused-function compiler warning
* Fix -Wimplicit-function-declaration warnings
* ci: Add more compile options to enable more code build
* ci: Do not fail-fast our main matrix build
* cmake: Add -Wno-c99-extensions compiler option
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
* Fixed endless query in bac-rw module when error is returned. (#727)
* Revert "Zephyr 3.7.0 integration fixes: (#723) (#724)"
This reverts commit 2d7a2961a239307d7807f7ad1fa050fd92d1c9b4.
* Added device WriteProperty callback for non-volatile storing in basic device examples. (#728)
* Added mstpcap to apps/Makefile BSD build (#730)
* Added prototype for device object property list member to use for storing device data storing. (#735)
* Fixed zephyr BACnet/IP for use in native_posix. Fixed zephyr logging level for BACnet. (#738)
* Merge pull request #59 from se-apc/bugfix/out_of_resources_error_on_cov_address_list_depletion (#734)
We report an error: resources, no-space-to-add-list-element on reachng MAX_COV_ADDRESSES limit with COV subsriptions
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
* Fix couple compiler warnings (#737)
* linux/bip6: Use function over PRINTF macro
Our repo should be C89 compatibale. C89 does not support variac macros.
For this reason use variac functions. This also enables to print
different streams than just stderr.
Also now if something is changed in debug_fprintf it also affect here
which is good.
* Use __inline__ over inline in library
Use __inline__ over inline as that is C89/C90 combatible. With MSVC we
need to use __inline so just define __inline__ to it if not already.
* h_get_alarm_sum: Fix -Wself-assign compiler warning
We get Wself-assign if PRINT_ENABLED is 0
```
src/bacnet/basic/service/h_get_alarm_sum.c:129:16:
warning: explicitly assigning value of variable of type 'int' to itself
[-Wself-assign]
[build] 129 | bytes_sent = bytes_sent;
[build] | ~~~~~~~~~~ ^ ~~~~~~~~~~
```
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Added clauses c) and f) of 13.3.6 (out_of_range) algorithm and enabling transitions from high/low limit states to normal when Event_Enable = 0 for the basic Analog Value and Analog Input objects (#733)
* Added load control object into zephyr basic device example (#739)
* Make clean build with MSVC /Wall (#740)
* ci: Fix compile warning as errors was not correct
We want to enable warning as errors both Windows and Linux. This is
easiest to do with cmake option as -Werror does not work with MSVC. Also
it is self explaining what it does so no comment needed.
* dlmstp_linux: Fix -Wdeclaration-after-statement compiler warnings
Make dlmstp_linux C89/C90 combatible
```
/bacnet-stack/ports/linux/dlmstp_linux.c: In function ‘Timer_Silence’:
/bacnet-stack/ports/linux/dlmstp_linux.c:56:5: warning:
ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
56 | int32_t res;
| ^~~~~~~
/bacnet-stack/ports/linux/dlmstp_linux.c: In function ‘dlmstp_init’:
/bacnet-stack/ports/linux/dlmstp_linux.c:795:5: warning:
ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
795 | struct termios newtio;
| ^~~~~~
```
* Fix warnings produces by MSVC
Now that we have enabled /Wall for MSVC we get some warnings with it
which can be easily fixed.
We get following warnings:
```
src\bacnet\bacstr.c(223,39): warning C4127: conditional expression is constant
apps\router-mstp\main.c(1123,1): warning C4702: unreachable code
apps\epics\main.c(885,53): warning C4459: declaration of 'myState' hides global declaration
```
* cmake: Use /Wall with MSVC
Make MSVC to build cleanly with Wall. This might matter for some Windows
developers. And you never know if MSVC will find more bugs.
* cmake: Improve router build
Router build gives some warnings as it is not C90 compatible. It is ok
that example is not following C90 rules. Also it is annoing to new user
to build this cmake as first error usually is that libconfig is not
found. Let's just give warning about this so first build will usually go
smoother.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Fixed the length of the basic Network Port object MAC address property. (#741)
* Added API for intrinsic reporting properties in Binary Value and Binary Input objects (#742)
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
* Refactored required writable property function from epics app (#743)
* Fixed MacOS specific usage during FreeBSD 11.4 build (#745)
* Fixed path of exports header in BSD ports.
* Fixed MacOS specific include in BSD ports.
* Fixed MacOS specific IOSSIOSPEED and IOSSDATALAT usage in BSD ports
* Prepere repo so we can run auto formatters (#747)
* clang-format: Ignore javascript files
Ignore javascript files. Clang-format is not very good formatter for
javascript files anyway. If we ever need javascript formatter we should
use Prettier.
* clang-format: Ignore some lines in sources
Couple things get formatted really funky if we let clang-format format
those. Just ignore those locally.
* zephyr/tescase.yaml: Fix yaml syntax
pre-commit hook check-yaml did found out that there are two skips.
Remove another as this is not right syntax.
* Fix repo contains unicode replacement chars
When running pre-commit text-unicode-replacement-char it founds that
there is couple unicode replacemnt chars. Remove and replace these.
* Convert some tabs to spaces manually
We will soon auto format tabs to spaces. How ever it could not do couple
thing so fix those by hand first.
* Make files with shebang executables
It is good habit that if file has shebang then it is marked executable.
These where found with pre-commit check-shebang-scripts-are-executable
checker.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Strip tabs and trailing white spaces, and fix end of files (#748)
* format: Strip trailing whitespaces
We want to get rid of trailing whitespaces completly as they make just git
noice. Much better to start using automated tools to get rid of them once and
not getting them back again. This way git history will be cleaner and review
easier.
Commit was generated with:
pre-commit run --all-files trailing-whitespace
* format: Files should have exactly one new line end of them
It is good practice that every file has one new line. It is not now days so
mandatory but it also is not nice if file has lot of newlines end of it. We will
use pre-commit which takes automatically care about this so let's fix all.
Commit was generated with:
pre-commit run --all-files end-of-file-fixer
* format: Convert tabs to spaces
Project mostly use spaces over tabs. When mixing tabs and spaces this usually
makes formatting issues and also when changing those in commits it will make lot
of git noise. We will force spaces most of the time and use pre-commit to fix.
Commit was generated with:
pre-commit run --all-files remove-tabs
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Add shield option explanation to ports/stm32f4xx/README.md (#749)
* Updated Version to 1.3.8 for release on 2024-08-26 (#720)
* Fixed COV detection in the basic Binary Output object example. (#751)
* Added object-name c-string getter function to basic objects so they can be referenced to free if dynamically created. (#754)
* 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.
* Removed static scope on character array used for name since the array gets copied into characterstring array and static is not needed.
* Move some external files to external/ folder (#744)
It is lot easier to work with automatic formatters if we have external
files in different folder. For some tools we can example just exclude
external all together.
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Use pre-commit and editorconfig (#753)
* Add editorconfig and pre-commit config
Editorconfig is widly used and supported file. It says basic things how
files should be formatted.
pre-commit is tool which can automatically check some basic checks like
code formatting everytime someone makes commit. This can also be used in
CI to run these things. Then it is very easy to do same things locally
as in CI. This also makes easy to select clang-format version so
everyone is using same one.
* clang-format: Ignore folders where are external code
We should not format external code. Add clang-format files to exclude
those. We should move external code always to example external/ folder
so we can exclude those more easily.
* clang-format: Remove custom zephyr/.clang-gormat
This clang-format file where introduces before our root clang-format. It
does not make sense anymore as we have root clang-format. Removing this
will unifie formatting in whole repo.
* clang-format: Add couple new rules
Add couple new formatting rules.
Always align const to left side. We did have only one place where it was
right side so this make sense as it is already rule for us.
I choose also insertbraces becuase when I run this I notice that we have
lot of multiline code without braces. So very error prone places. This
will take error possibility away. Repo also always use braces even with
single line statments so this does not matter much.
* ci: Add pre-commit validation
Validate pre-commit in CI.
* format: Convert spaces to tabs in Makefiles
Makefile normally use tabs. We enforce that with editorconfig. Fix
couple places where spaces where still in use.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Make most of functions const correct (#714)
* Make most of the functions const correct
Used clang-tidy and sonarlint to help find places where const could
pretty easily applied. Also lot of hand work.
This commit does not yet touch handlers and typedefs of those.
* Fix Arduino uno handler_who_is() has extra parenthesis
For some reason there is extra parenthesis. Remove it this is more
likely buildable.
* Bugfix/bacapp: Fix uninitilized array_index
We have changed bacapp_snprintf_value() to be const correct. After that
we got
```
/home/runner/work/bacnet-stack/bacnet-stack/src/bacnet/bacapp.c:3183:27: warning: 4th function call argument is an uninitialized value [core.CallAndMessage]
ret_val = bacapp_snprintf_weeklyschedule(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
```
So analyzer could now spot that we do not actually initilize array_index
at all. Fix this by setting array_index to zero. Note that I actually do
not know if zeroing is right thing to do here. I choose zero as if this
has worked before it is most likely that it will work with zero value.
* cmake: Add and ignore Wwrite-strings compiler option
Wwrite-strings helps find places where const correctness is broken.
Example it will warn about these
```C
void func1(char* str);
func("test") /* "test" is const so we should not pass it to func1().
char* func2()
{
return "test"; /* func2() should return const char*.
}
```
We still need to ignore it as not all are fixed but let's add it already
so we remember that it should be opened at some point.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Added RP and RPM error code indications in callbacks (#756)
* Moved west manifest, zephyr folder, and ports/zephyr folders to another repository bacnet-stack-zephyr (#757)
* Run clang-format and enable CI check for it (#755)
* pre-commit: Update and enable clang-format check
There is newer version from clang-format so use that. We do not yet want
18 as that is little bit too new.
* Format some thing by hand which clang-format "breaks"
Clang-format will format some things little bit off in some cases.
Format some things by hand so we get cleaner end result.
* Run clang-format with
```
pre-commit run --all-files clang-format
```
We have already in previously checked places where clang-format does not
make good format and ignored those (hopefully most of the things).
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* [WIP] fixing BACnetAccessRule encoding and decoding.
* Added unit test for BACnetAccessRule
* Make it possible to select multiple datalinks (#717)
* datalink/dlenv: Rename addr -> addr6 when ipv6
If we are building this file with BACDL_BIP6 and BACDL_BIP enabled we
get two definitions for addr. For this reason rename other addr6 so
there will be no conflict.
* config: Reorder MAX_APDU selection so biggest is first
When multiple datalinks are selected we should guess biggest MAX_APDU.
To do that we need to order selection based on biggest to lowest. With
this change MAX_APDU should be more correct most of the times and user
does not need to specifie that by hand.
* Make it possible to select multiple datalinks
Before we had option to select all datalinks. Many times you however do
not need all datalinks but just some. Change logic so that it does not
matter if user selects multiple datalinks. Now user just select what
they want and everything should just work.
* dlenv: Move variables start of function
Because we use C89 we need to move variables start of block.
* datalink: Hide strings.h because Windows
Windows does not support strings.h. Hide it from it.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* Merge pull request #66 from se-apc/bugfix/cob_subscriptions_destination_indexing (#761)
Fixing order of operations so the dest_index gets written to the right slot instead of an initial MAX_COV_SUBSCRIPTIONS-1
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
* Fix some typos (#762)
* add mstp support for mac os x (#764)
build with
#cmake .. -G"CodeBlocks - Unix Makefiles" -DBACDL_MSTP=ON -DBACDL_BIP=OFF -DBAC_ROUTING=OFF
run with
#BACNET_IFACE="/dev/cu.usbserial-14320" BACNET_MSTP_MAC=03 BACNET_MSTP_BAUD=38400 ./readprop 2 device 2 77
* Clean "types-limits" warnings (#766)
* Fixed UTF-8 passwords for DeviceCommunicationControl to hold up to 20 UTF-8 characters (#767)
* bsd/rs485.c fix compiler warning (#771)
declaration-after-statement
* Secured Active-COV-Subscriptions property encoding. (#763)
* Bugfix/read property multiple client errors (#765)
* 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.
* Added local tool aptfile to use with apt based development installation. (#772)
* Fixed cmake dependencies to build readbdt, readfdt and router-ipv6 if BACDL_BIP=OFF (#777)
* add ether support for mac os x (#775)
Depends on pcap (e.g. with Wireshark)
build with
#cmake .. -G"CodeBlocks - Unix Makefiles" -DBACDL_ETHERNET=ON -DBACDL_BIP=OFF -DBAC_ROUTING=OFF
run as normal user (not root) like Wireshark
* add uci include and lib for cmake (#779)
* fix duplicated ports/bsd/bip-init.c (#781)
* Added ucix_get_list and ucix_set_list function (#780)
* Fixed a warning emitted from arm-none-eabi-gcc in hostnport.c (#785)
* Changed ATmega168 port to ATmega328 on Uno R3 with DFR0259 RS485 shield (#784)
* 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.
* Added optional description property to basic network port object example. (#788)
* Issues/issue 787 app bacepics misses optional parameters for the device object (#789)
* Added some optional properties into the object property lists up to protocol-revision 22
* Added serial-number property to basic device object example.
* Fixed BACnetAccessRule application integration into Access Rights object. Improved unit testing and code coverage. (#790)
* netport.c : Tiny improvements (#792)
* gcc.yml : Add LEGACY flag to make bip-apps with GNU99 (#795)
Otherwise, there were a lot of warnings
* win32: fix ethernet and bip6 (#774)
Switch from WinPcap ton npcap.
Include npcap sdk in cmake
add libs for ipv6 in cmake
fix ethernet uninitialized var
* fix server app doesn't work with BAC_ROUTING (#783)
* fix app router cmake (#794)
add missing port/linux/dlmstp_linux.c used by mstpmodule.c
* Added define to control IP_DHCP_Enable property being present in Network Port object (#796)
* fix app router cmake (#799)
Don't use return.
a) this is an if else
b) all apps below this would not be build
* fix app router-ipv6 cmake (#800)
remove not existing router-ipv6.h
* Merge pull request #78 from se-apc/bugfix/stack_smashing_on_cov_subscriptions_encoding (#802)
Resolving stack-smashing problem associated with variable length of subscriber's process ID 2..5 bytes
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
* Fixed MS/TP FSM TS filter that was removed for zero-config permiscuous feature. (#803)
* fix bsd/bip6.c:35:16: error: variadic macros are a C99 feature (#805)
Copy debug_fprintf_bip6() from linux
* Fix/router ipv6 test (#806)
* fix app router-ipv6: duplicate symbol
Makefile use Device_Object_Instance_Number from device-client.c (Device_Object_Instance_Number is not in bacnet.a from Makefile)
Cmake use Device_Object_Instance_Number from libbacnet-stac.a:device.c
This fix #778
* test ipv6
* fix app router-ipv6: duplicate symbol (#807)
Makefile use Device_Object_Instance_Number from device-client.c (Device_Object_Instance_Number is not in bacnet.a from Makefile)
Cmake use Device_Object_Instance_Number from libbacnet-stac.a:device.c
This fix #778
* fix app router (#808)
with optimize Os the program exits with
bit out of range 0 - FD_SETSIZE on fd_set
Disable optimize for size by static set optimize 2
This Fix #793
* Fix the MSTP turnaround delay implementation. (#809)
The usleep() function takes microseconds, not milliseconds. So,
T_turnaround needs to be calculated in microseconds. If we don't do
this, at a baud rate of 9600, we end up waiting 4 microseconds instead
of 4 milliseconds, which goes against the rule.
* Moved west manifest, zephyr folder, and ports/zephyr folders to another repository bacnet-stack-zephyr #757
* Merge branch 'master' into feature/sc-code-master
* Merge branch 'master' into feature/sc-code-master cleanup
* Merge branch 'master' into feature/sc-code-master install libwebsockets for checks
* Merge branch 'master' into feature/sc-code-master cleanup
* Merge branch 'master' into feature/sc-code-master restore README
* Merge branch 'master' into feature/sc-code-master fix compiler err and warn
* Merge branch 'master' into feature/sc-code-master install libwebsockets for checks
* Merge branch 'master' into feature/sc-code-master install libwebsockets for test
* Merge branch 'master' into feature/sc-code-master restore testcode
* Merge branch 'master' into feature/sc-code-master restore testcode
* Merge branch 'master' into feature/sc-code-master fix cmdline define BSC_CONF_TX_PRE
* Merge branch 'master' into feature/sc-code-master fix mock location
* Merge branch 'master' into feature/sc-code-master fix #ifdef
* Merge branch 'master' into feature/sc-code-master rm unused
* Merge branch 'master' into feature/sc-code-master fix cmake test
* Merge branch 'master' into feature/sc-code-master fix missing braces
* Merge branch 'master' into feature/sc-code-master fix ubuntu libwebsockets
* Merge branch 'master' into feature/sc-code-master fix ubuntu libwebsockets
* Merge branch 'master' into feature/sc-code-master fix ubuntu libwebsockets
* Merge branch 'master' into feature/sc-code-master pre-commit
* Merge branch 'master' into feature/sc-code-master spell check
* Merge branch 'master' into feature/sc-code-master switch of tests with bug's and add BUG comments
* Merge branch 'master' into feature/sc-code-master pre-commit
* Merge branch 'master' into feature/sc-code-master fix ubuntu libwebsockets
---------
Signed-off-by: Sebastian Weyer <sebastian.weyer@smile.fr>
Signed-off-by: Gregory Shue <gregory.shue@legrand.com>
Signed-off-by: Antoine Coutant <antoine.coutant@smile.fr>
Co-authored-by: Ondřej Hruška <ondra@ondrovo.com>
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
Co-authored-by: Mikhail Antropov <103285038+Michail-Antropov@users.noreply.github.com>
Co-authored-by: Sebastian Weyer <50481737+DocSepp@users.noreply.github.com>
Co-authored-by: Sebastian Weyer <sebastian.weyer@smile.fr>
Co-authored-by: Greg Shue <32416235+gregshue@users.noreply.github.com>
Co-authored-by: Gregory Shue <gregory.shue@legrand.com>
Co-authored-by: antocout <149781661+antocout@users.noreply.github.com>
Co-authored-by: Tomasz Kazimierz Motyl <butterfly_tm666@yahoo.com>
Co-authored-by: Tomasz Kazimierz Motyl <tomasz.motyl@se.com>
Co-authored-by: NikSchew <nikonlinee@googlemail.com>
Co-authored-by: Nik Schewtschuk <nikonlinee@gmail.com>
Co-authored-by: Jonathan <74002342+jd-imi@users.noreply.github.com>
Co-authored-by: GauiStori <gudjon@gudjon.org>
Co-authored-by: Nandkishor Biradar <nandkishor.biradar@danfoss.com>
Co-authored-by: Önder Görmez <ondergormez@gmail.com>
Co-authored-by: Eric Miller <ericwmiller@users.noreply.github.com>
Co-authored-by: Michael O'Neill <empeeoh@gmail.com>
Co-authored-by: Michael O'Neill <em.pee.oh@gmail.com>
Co-authored-by: Kari Argillander <kari.argillander@gmail.com>
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
Co-authored-by: Sergey Nazaryev <136235212+nazaryev-cool@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.