Replies: 3 comments 2 replies
-
Can you explain what you actually mean by |
Beta Was this translation helpful? Give feedback.
-
|
Well then, I guess it does not make sense to add more #defines when your intent is to remove as many as possible for clarity... I still believe there is a valid use-case for a 'trimmed down' minimal stack when implementing BACnet on microcontrollers where space is at a premium when considering the actual application code. Do you have any suggestions? I could create a branch that is never to be merged back into master called "minimal" or something and maintain that, or of course I could fork the repo, but that loses visibility to the community, or is there something else you can suggest? For reference, what I am suggesting is something like this: |
Beta Was this translation helpful? Give feedback.
-
|
The proposed define is for satisfying the Device object optionality from footnotes:
... To support the optionality, 3 defines should be used. Which device.c do you want to change? Since the device object is probably the most customized object, I started to refactor the mechanics of the BACnet device object into a handler - see the branch refactor-device-object-handling - to make the 'custom' properties and objects an easier task - create the object table and local device service handlers which can call into the I also implemented the I used another technique with the The read/write property handlers include all the possible properties, but check for property membership before processing: Of course, this technique will not result in smaller firmware but is intended for the OS based (Linux/Window/BSD/macOS/Zephyr) BACnet applications. Note that the There are some existing Thoughts? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Steve, what are your thoughts on using #ifdefs (set heirarchically in config.h and bacnet-config.h) to enable and disable services, objects, options...
For example #define USE_REAL_TIME_CLOCK 1 to enable the use of a RTC. Setting this to 0 would disable everything related to RTC in the stack - for those smaller projects.
It will obviously create more 'noise' in the sources, so it not an obvious decision to make for your 'reference stack', but I think it will turn out to be valuable/popular.
An alternative is to create (and then support!) a parallel branch that has these constructs...
I am happy to start the RTC issue because I have just done this in a project, but I am looking for guidance from you in accordance with your intent and plans for the code in general.
Beta Was this translation helpful? Give feedback.
All reactions