* Expanded Object_List to Object_List[MAX_NUM_DEVICES] array to support per-device objects for virtual remote devices
* Added multi-device iteration for COV handler, device timer, and intrinsic reporting
* Added apps/gateway2 demo application
* When MAX_NUM_DEVICES == 1, behavior is identical to the original implementation
* Conditional compilation with macros ensures no impact on non-gateway applications
---------
Signed-off-by: Hyeongjun Kim <hjun1.kim@samsung.com>
Co-authored-by: haemeok-kang <haemeok.kang@samsung.com>
* Changed mstp.c and mstptext.c to be conditionally included using CMake generator expression
* Files are now only compiled when BACDL_MSTP is enabled
Signed-off-by: kimhyeongjun <hjun1.kim@samsung.com>
* Added example Device object and property value backup using create-object list-of-initial-values and writable properties. Initiated using ReinitializeDevice with STARTBACKUP command. Added backup and restore required properties to the Device object.
* Fixed fwrite parameters in bacfile_posix_write_stream_data to return the correct number of bytes written.
* Added Device Management-Backup and Restore-B (DM-BR-B) conversion to Wireshark PCAP format command line utility in apps/dmbrcap which decodes and provides a view of the binary backup file.
* Changed apps to build at protocol-revision 28 to be able to use the lighting output special values by default.
* Fixed blinkt app server name and removed the device.c module which was no longer needed.
* Added debug prints for lighting-output object for present-value and lighting-command property values which may be out-of-range.
* fix mstp on macos NS_PER_S is 1s and 0ns
* fix compile on freebsd
* port bsd: add compile warnings and comments
* port bsd: limit pthred prio to OS defined min/max value
e.g. FreeBSD min=0 max=31
* port bsd: fix clangformat
* Refactored BACnetShedLevel encoding, decoding, and printing into separate file. Added unit testing.
* Added API to load control object for shed-level, start-time, duty-window, full-duty-baseline, and enable.
* Fixed bacapp sprintf for shed level and host-n-port found in scan build.
Added segmentation support for server devices for some services. Configure BACNET_SEGMENTATION_ENABLED=1 to include in the library, and adjust BACNET_MAX_SEGMENTS_ACCEPTED for maximum number of segments.
* Added ListElement service callback for storing data.
* Added Audit Log and Time Value objects to basic device.
* Added Audit Log object to Makefile and CMake builds.
* Added basic timer object, internal state machine, and unit tests
* Added BACnetTimerStateChangeValue encode, decode, parse, print, and diff with unit tests
* Changed handler of add/remove list element to check if the property is a BACnetLIST
* Added BACnetLIST utility for handling WriteProperty to a list.
* Fixed outlier ReadProperty object handlers to return zero when the RP parameter is NULL.
* Added dynamic RAM file system to use with basic bacnet file object.
* Added static RAM file system to use with basic bacnet file object.
* Added check for read-only during AtomicWriteFile service API for BACnet File object.
* Change stm32f4xx example to use static RAM file system.
* Fixed bacfile_count() function return type
* Added Who-Am-I-Request encoding, decoding, unit tests, and command line application bacwhoami.
* Added You-Are-Request encoding, decoding, unit tests, and command line application bacyouare.
* Added Who-Am-I with Who-Is and You-Are handling into the example server application when run as device 4194303.
* Added bacmini example app with minimal analog and binary objects (#934)
* Fixed bacmini app build for Makefile and CMake
* Changed the folder for bacmini application to server-mini
---------
Co-authored-by: Ben Bartling <ben.bartling@gmail.com>
* Added daylight savings time calculation module with unit testing.
* Added datetime daylight savings time and clock API
* Added basic datetime_local() clock using mstimer as basis and time-sync option. Integrated clock with ports/stm32f4xx example.
* Refactored lighting command operations from the lighting output object, and added unit testing. Integrated the result back into lighting-output object.
* fix router compile warnings declaration-after-statement overlength-strings
* router disable PRINT(debug_level)
* ports rename dlmstp_[linux|bsd] to dlmstp_port
* copy ports/linux/dlmstp_port.c ports/bsd/dlmstp_port.c
* copy ports/linux/dlmstp_port.c ports/bsd/dlmstp_port.c
* fix typedef in bip_get_local_address_ioctl
* copy ports/linux/dlmstp_port.c ports/bsd/dlmstp_port.c
* add bsd support for router app
* fix clang __attribute__ optimize dont work
clang O2/O3/Os are also not working
* fix pre-commit
* fix bsd SO_BINDTODEVICE is not available
* add brew install libconfig for app router and bsd
* fix BACDL_MSTP test on macOS
* remove old comments
* 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
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