* 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
* 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
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>
* 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
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>
* 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.
* Refactor property lists member function for WriteProperty default case.
* Refactor time-value object unit testing
* Added test for unsupported property to common property test
* 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
* 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
* 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.
* [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>
* 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>