Fix type definitions for inner_tag and object_instance when uint32_t is defined as long unsigned int instead of unsigned int (#1293)
esp32: replace port with PlatformIO implementation and add CI build (#1292)
Bugfix/special event read property write property (#1291)
Reverted unsigned decorator to BACNET_MAX_INSTANCE and BACNET_MAX_OBJECT constants since they are compared to signed values in some use cases which then fails when unsigned is promoted.
Implement parsing for BACnetSpecialEvent in bacapp and add unit tests (#1290)
[WIP] moving host name structs into hostnport module. Changes in h_bbmd should be in netport and let netport manage the host to IP lookup.
Merge remote-tracking branch 'origin/master' into feature/bbmd-host-lookup-table
Fixed off-by-one bug in gateway main() causing duplicate I-Am broadcast (#1289)
Add multi-device support for BACnet gateway routing (#1279)
Feature/structured view object subordinate list add remove (#1283)
Refactor CMakeLists.txt to replace BIG_ENDIAN definition with BACNET_BIG_ENDIAN to fix missing function in builds. (#1284)
Remove push and pull_request triggers, keeping only workflow_dispatch for macOS CI tests
Change macOS runner from macos-15-intel to macos-14-large for CI workflow
Update macOS runner version to macos-15-intel for CI workflow
Added INTRINSIC_REPORTING CMake option to enable intrinsic reporting at build time (#1275)
Fixed missing keylist.h include in objects.h for OS_Keylist type dependency (#1277)
[WIP] refactoring bbmdhost into h_bbmd.c module.
OK, thanks. I must be doing something very wrong here then.
The library example ports/atmega328 features 32KB ISP Flash memory, 2KB SRAM, and 1KB EEPROM. text data bss dec hex filename 26256 856 330 27442 6b32 bacnet.elf Total static RAM usage is calculated as data + bss, which in this case, is 856+330=1186 which fits in the 2K available. See the project for details about which files are used and defines are declared. The library example ports/at91sam7s features 64K flash memory and 16K SRAM. After changing MAX_APDU=50: [build] [100%] Linking C executable...
The library example ports/atmega328 features 32KB ISP Flash memory, 2KB SRAM, and 1KB EEPROM. text data bss dec hex filename 26256 856 330 27442 6b32 bacnet.elf ``` Total static RAM usage is calculated as data + bss, which in this case, is 856+330=1186 which fits in the 2K available. See the project for details about which files are used and defines are declared. The library example [ports/at91sam7s](https://sourceforge.net/p/bacnet/src/ci/master/tree/ports/at91sam7s/) features 64K flash memory and...
Is there anything more that can be done to get things even smaller? the PIC18F46Q10 only has a maximum of some 3.7K of ram. How much space does a bare minimum BACnet configuration consume? As is I still cannot get my 'hello BACnet' program to compile. Should I be looking into a processor with more memory?
Merge remote-tracking branch 'origin/master' into bugfix/add-more-bibbs-to-bacepics
Fixed javadoc header in bvlc-pico. Added ports/pico to CHANGELOG.
Add Raspberry Pi Pico port (#1232)
Add void *context field to service data structures (#1265)
Bump microsoft/setup-msbuild from 2 to 3 (#1271)
Fixed missing BACNET_STACK_EXPORT macro for PositiveInteger_Value_Count() function declaration (#1273)
feat: Update EPICS output to explicitly format proprietary properties and standard properties within proprietary objects.
feat: add BBMD host name handling for BACnet/IPv4, including list management and IP address lookup.
Add lighting_command_refresh() unit test (#1269)
Updated CHANGELOG for recent changes.
Bugfix/lighting output low high trim fade (#1268)
The src/bacnet/config.h file contains default sizing is for the OS based applications with plenty of RAM. The embedded configuration for tiny RAM devices can be found in many of ports/ examples, usually in either the Makefile or in the project settings (defines) or by using a custom bacnet-config.h module. For example, the PIC18 example Makefile shows the following settings that override the default config.h values: BFLAGS = -DBACDL_MSTP BFLAGS += -DMAX_APDU=128 BFLAGS += -DBIG_ENDIAN=0 BFLAGS +=...
For the most part I think I have the code figured out. But what is the minimum memory configuration possible for the BACnet stack? I am currently unable to compile as is due to the stack trying to use several large buffers totaling many times larger than the amount of memory I have available, and that's in just a hello world style configuration. There isn't even a program of my own yet.
Changed BACNET_NO_DEV_ID to use UINT32_MAX (same value), and added U decorators to BACNET_MAX_INSTANCE and BACNET_MAX_OBJECT constants.
Add octet string buffer duplication functions and refactor related structures (#1266)
Fixed FQDN hostname limit in minimal hostnport implementation (#1263)
Feature/octetstring value and length api (#1264)
feat: Adapt PIC18F6720 port to SDCC compiler by updating Makefile, headers, and source file organization.
Fixed duplicate name in RPM unit test. (#1260)
I'll start with taking a look from that xplained device as I'd rather stay current with the versioning, can't say I've ever heard of it though. Thanks for the advice!
Sorry about the PIC18 mess - I haven't maintained the port to the PICs since my prototype products are in boxes somewhere and the code doesn't build in the pipeline with open source tooling. You could pull an older version such as the 0.8.x branch which might still be relevant. Alternately, you can try to craft your project with the guidance from one of the other microcontroller ports such as ports/xplained/. Review the Makefile for details about which minimal set of files to use from the library...
Hello all, I am attempting to port the PIC18f6720 port to the PIC18F46Q10. However, I am having difficulty making heads or tails of the code in the port (and the entire rest of the stack for that matter). It seems to have multiple contradictions to the rest of the stack, often preventing compilation. Additionally, several files in the port are not referenced by it's main.c nor in any of the files included by it's main.c. Worse still, I cannot find any concrete instantiation of the mstp_port struct...
docs: add latest changes to CHANGELOG.
fix: Add input validation to `Schedule_Recalculate_PV` and `Schedule_Timer` functions to prevent segmentation fault occurring in Schedule_Recalculate_PV() during application startup (#1259)
Bugfix/read-range-address-list-encode (#1149)
Fix Trend Log ReadRangeACK BY_SEQUENCE where an incorrect FirstSequence is sometimes returned. (#1150)
chore: Add `*.idx` to `.gitignore` to prevent indexing files from being tracked.
Reject non-device objects in bacnet_recipient_decode function
Merge remote-tracking branch 'origin/master' into bugfix/add-more-bibbs-to-bacepics
Add property_list_read_only_member function to check for READ-ONLY properties (#1258)
Merge remote-tracking branch 'origin/master' into bugfix/add-more-bibbs-to-bacepics
Changed COV FSM handler to stay IDLE until there is a valid subscriber. (#1257)
Fixed bacnet_strdup() to compile with C89/C90 without warnings.
Merge remote-tracking branch 'origin/master' into bugfix/add-more-bibbs-to-bacepics
Merge remote-tracking branch 'origin/master' into bugfix/add-more-bibbs-to-bacepics
Add BACnet Zigbee link layer support with bzll port implementation
[WIP] adding a BACnet Zigbee link layer general handler.
Feature/writable structured view object lists (#1256)
Added array size parameter in BACnet array write handlers avoid a duplicate decoding operation. Avoid duplicate checking of array size in object handlers. (#1253)
Add bacnet_strdup function to replace POSIX strdup and update bacfile to use it (#1251)
Fixed Device Management-Backup and Restore-B functionality to keep configuration files during the restore operation. (#1250)
Prevent deletion of backup files during restore process (#1249)
Fix macro naming for Octet String configuration in BACnet device object to align with existing Zephyr RTOS port.
Bugfix/backup restore failure timeout (#1247)
Add CreateObject and DeleteObject for Octet String and Positive Integer Values (#1246)
Add PROP_TIMER_RUNNING to writable properties and implement Timer_Running_Set functionality (#1245)
Secure BACnet decoders and service requests (#1244)
Added Who-Is-Router process for Notification Class recipient unknown router addresses. (#1243)
Add initialization and unpacking functions for BACnet Character String buffer decoder. (#1242)
Secure the BVLC decoders by replacing deprecated primitive and complex data decoders. (#1241)
Chore/unit-test-cmake-and-ztest-time-duration (#1240)
Add Host-N-Port minimal encode and decode (#1239)
Added API for extending the basic Device object and children with proprietary properties for ReadProperty and WriteProperty services. (#1238)
Schedule sets the correct value but only in the schedule object. References are not set yet. (#1236)
Add octet and character string buffer codecs to used with fixed size buffers that are not declared as BACNET_OCTET_STRING or BACNET_CHARACTER_STRING. (#1237)
Fixes the problem of Object properties references not being written. (#1235)
Merge remote-tracking branch 'origin/master' into feature/bacnet-segementation-for-large-replies
Updated CHANGELOG for pull-request #1230
Split dlenv_init in order to use bsc node registration from outside (#1230)
Add Create & Delete to Accumulator object (#1234)
Update Structured View Node Type to BACNET_NODE_POINT and adjust relationships to the subordinate. (#1233)
Added AWAIT_RESPONSE state for unsegmented confirmed messages (untested)
Hello everybody. I am implemening BACnet protocol in one of our device using the BACnet stack of Steve Karg. My device has the Register Foreign Device function is now working correctly. My device can also be correctly added to the BBMD's Foreign Device Table (FDT). But I have the following 2 problems: if a broadcast who-is is sent in the subnet where the BBMD is located, my device does not respond with an I-AM. my device also does not respond to a distribute-broadcast-to-network who-is request in...
Changed version to 1.5.0.rc4 for security fix tracking in branch.
Update SECUIRTY for recent CVE published.
Add BACnet reinitialized state names and parser (#1228)
Updated SECURITY with recent CVE
Updated version to 1.4.3.rc2 for security tracking in branch.
Updated CHANGELOG for recent changes.
Fix stack buffer overflow in Schedule_Weekly_Schedule_Set (#1222)
WriteProperty decoding length underflow (#1231)
Fixed conditional compilation of mstp.c and mstptext.c based on BACDL_MSTP option (#1229)
WriteProperty decoding length underflow (#1231)
Fixed conditional compilation of mstp.c and mstptext.c based on BACDL_MSTP option (#1229)
Add BACnet reinitialized state names and parser
Remove BACFILE dependency in RAM file systems and add mock file object functions for testing (#1227)
Refactor comments in Device_Write_Property_Local() for clarity and consistency
Sync service handler initialization in bacnet_basic_init() with apps/server when backup and restore, time master, and COV subscription features are enabled.
Removed ifdef BACFILE where no longer needed. (#1225)