Files
bacnet_stack/ports/esp32
Kari Argillander a2f1d6959d 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>
2024-08-29 14:08:02 -05:00
..

Bacnet Server for Espressif ESP32
    Steve Karg Bacnet stack using PlatformIO open source ecosystem for IoT development on VSCode or Atom
    F. Chaxel 2017

TODO list :

(Install VSCode or Atom and add the PlatformIO extension)

Edit platformio.ini to adjust board, Com Port, ...

Goto lib/stack and copy the requested files from Steve code :

   all .h from include directory (not all required by it's simple)

   these .c files from src or demo/handlers
    abort.c
    address.c
    apdu.c
    bacaddr.c
    bacapp.c
    bacdcode.c
    bacerror.c
    bacint.c
    bacreal.c
    bacstr.c
    bip.c
    bvlc.c
    cov.c
    datetime.c
    bacdevobjpropref.c
    dcc.c
    debug.c
    h_cov.c
    h_ucov.c
    h_npdu.c
    h_rp.c
    h_rpm.c
    h_whois.c
    h_wp.c
    iam.c
    hostnport.c
    lighting.c
    memcopy.c
    noserv.c
    npdu.c
    proplist.c
    reject.c
    rp.c
    rpm.c
    s_iam.c
    tsm.c
    whois.c
    wp.c

Modify
    in config.h
        MAX_TSM_TRANSACTIONS 255, set the value to 10 for instances
    in main.c
        wifi_config to fit your wifi network
        BACNET_LED 5, set another IO number depending of your board

A lot of Warning will be issued at compile time due to the redefinition of BIT macros.
Could be removes by placing a #ifndef #BIT0 .. #endif arround the BIT macro in bits.h,
and moving to the top of include list
    #include "bacnet/datalink/datalink.h" in tsm.c, s_iam and in device.c
    #include "bacport.h" in bip.c and in bip.h (redondant include in bip.c)
    #include "bacnet/datalink/bvlc.h" in bvlc.c