Commit Graph

57 Commits

Author SHA1 Message Date
Steve Karg 55b8b3d93c fix BACnet/IP on OS to bind broadcast to specific port (#489)
* Fixes #346 by binding the broadcast socket to the port specific broadcast address rather than INADDR_ANY or INADDR_BROADCAST. Added additional compile and environment options for those who might need them. 

* Changed the define USE_CLASSADDR to BACNET_IP_BROADCAST_USE_CLASSADDR to help manage namespaces.

* Added BACNET_IP_BROADCAST_BIND_ADDR environment variable to override the default broadcast binding address.

---------

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2023-09-10 10:24:18 -05:00
Greg Shue b8d345679b Oscbs 33 ci zephyr port (#375)
* zephyr: twister build fixes/patches

* zephyr: hack: suppress bvlc test (build failures)

Co-authored-by: Gregory Shue <gregory.shue@legrand.com>
2023-01-05 16:53:29 -08:00
Steve Karg b91735af13 Bugfix/code clean using gcc warnings (#371)
* Enable extra GCC warnings to discover subtle bugs

* convert c++ comments to c comments

* cleanup pedantic compiler warnings

* Compile apps with GNU89 GNU99 GNU11 and GNU17

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-12-25 21:43:51 -06:00
fprwi6labs 5a3d7a4ab2 Fix linkage conflict when use stack in C++ project (#360) 2022-11-21 09:30:45 -06:00
Steve Karg 70c290d1ad Feature/bacnet ipv6 foreign device registration (#355)
* Added IPv6 Foreign Device Registration for apps

* Fix debug message in BACnet/IPv6 Linux port

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-11-17 08:14:33 -06:00
Alexander Wells 5b30674215 Provide getter for broadcast BIP socket (#350) 2022-10-24 13:44:42 -05:00
Steve Karg cc4911a185 make pretty 2022-09-10 10:32:50 -05:00
Steve Karg abe4642189 Issue 326 struct tm temp time; (#330)
* Convert struct tm and time.h to datetime.h usage

* remove use of time.h standard file

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-08-24 14:10:05 -05:00
Steve Karg 95b487ea6f Bugfix/c89 compile fixes (#327)
* Fix code to be able to compile with older C89 ANSI compilers

* Convert C++ comments to C89 comments.

* default to std=gnu89

* Fix to enable CMake 3.1 to build on Centos7

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-08-23 13:37:32 -05:00
jci-zimm 9615327a9a support a BACDL_CUSTOM datalink define which allows for externally linked datalink_xxx functions (#292)
Co-authored-by: jzimmen_jcplc <nathan.m.zimmerman@jci.com>
2022-06-13 13:22:16 -05:00
Steve Karg f147283293 Feature/apdu null length returned (#285)
* Add APDU as NULL to get BACnet type lengths.

* Fix bacapp copy test to succeed

* fix BACnet REAL and DOUBLE decode

* Add unit test for NULL APDU encoding for length

* Add unit tests for bacapp context

* refactor host-n-port to hostnport.c module

* fix BVLC decoder

* additional unit testing for bacapp

* include bacdevobjpropref module in builds

* simplify bacapp snprintf to be able to return length

* adjust compiler for variable-length arrays

* fix bug found by scan-build

Authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-06-01 15:42:50 -05:00
Mikhail Antropov 810bfefb34 Fix error in datalink/bvlc.c (#288) 2022-05-29 21:00:37 -05:00
Ondřej Hruška 0dec80fae7 Add functions to enable/disable debug logging (#280)
* Add "bip_debug_disable()"

* Add "bvlc_debug_disable()"

* Add setters for BIP_DL_Debug (BBMD registration debug logging)
2022-05-25 21:43:08 -05:00
Ondřej Hruška 44bd46d395 Make "dlenv_network_port_init()" public (was static) (#281)
This is needed when initing other than by calling "dlenv_init()", e.g. to avoid using env variables and exit()
2022-05-25 21:42:50 -05:00
Steve Karg e08680044e Added FD BBMD Address encoding. (#269)
* Added FD BBMD Address encoder and decoder

* Added FD BBMD address to bacapp

* Added FD BBMD address to network port object

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-05-10 17:06:51 -05:00
Mikhail Antropov 09864bdf91 Fix code review 2022-04-25 20:07:28 +03:00
Mikhail Antropov 30bdb89040 Remove rx62n testing 2022-04-25 02:36:33 +03:00
Steve Karg 2e3ce60751 Fix BDT-1 port override (#252)
* Fix BDT-1 port override

* fix BIP NAT port number

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-04-17 00:11:02 -05:00
Steve Karg c9d42d268e Bugfix/fix splint warnings (#250)
* Fix SPLINT to perform static defect analysis

Fix the SPLINT invocation in Makefile
Fix C files where SPLINT detected problems.
Remove UCIX check from SPLINT
Use SPLINT friendly parsing code disable for bacsec

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-04-12 13:00:29 -05:00
Steve Karg 12a5e48b3e Bugfix/btl mstp local broadcast discard (#248)
* Discard Confirmed PDU DNER on local broadcast. Discard DER on local broacast.

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-04-02 08:44:04 -05:00
Steve Karg c3a4c229fe Issue 87 execute tests with GitHub ci (#234)
* Enable lcov coverage in unit testing via cmake.

* fix pipeline build error

* add compile options for unit test to silence some warnings

* remove all BAC_TEST unit tests in src/bacnet/ folder. They are now in test/bacnet/ folders using ztest.

* removed key.c - only used for unit test.

* produce XML test result output for parsing

* produce junit XML test result output

* change lint workflow to quality

* update readme badge for quality results

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-02-28 20:09:46 -06:00
Nick Schaf 585cdb4a7d dlmstp statistics enhancements (#235)
- Add lost-token count
- Add invalid-frame-received count
- Add function to reset statistics
- Add function to retrieve statistics
2022-02-28 17:40:32 -06:00
Steve Karg 5e70eeecfc Issue 10 ci add support for code spelling checks (#231)
* added make targets spell and codespell for spelling checks

* fix spelling errors detected by codespell

* added codespell to github workflow

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-02-27 16:02:17 -06:00
Nick Schaf b31cb43e22 Avoid redefining MSTP timeouts (#230)
* Avoid redefining MSTP timeouts

* Remove duplicate MS/TP time definitions

Ports of MS/TP datalink included #defines of several time values, which
were already defined in src/bacnet/datalink/mstpdef.h.  All those ports
already include that header.
2022-02-26 08:58:57 -06:00
Nick Schaf f5017b71b1 Feature/MSTP promiscuous read (#228)
* dlmstp callbacks for prmiscuous read

Add callback functions for start and completion of received frames to
inform the caller of these events.

* Fix exports and grammar

* Clarify naming of frame-complete callback

* Fixup code style and variable naming
2022-02-26 08:58:34 -06:00
Steve Karg 295f127c2b Feature/makefile add apps library (#218)
* add BACnet stack library at apps/lib

* convert apps to use apps/lib for smaller binary

* fix -DBACDL_ALL=1 build

* fix piface build

* datalink MAX_MPDU and MAX_HEADER cleanup

* add bip6 to git workflow

* fix system library dependency of BACnet library

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-01-29 15:55:40 -06:00
Steve Karg 8847d7eea1 Fixed BACDL=none build for makefile building (#213)
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-01-12 09:10:00 -06:00
Alexander Wells ca32676662 Add bip_get_socket (#210)
* Add function to get BIP socket

* Add bip_get_socket to all applicable ports
2022-01-10 10:15:54 -06:00
Steve Karg 861eff121c Feature/bip6 win32 debug enhancements (#212)
* Move win32 specific checks to bacport.h module

* Create IPv6 snprintf function in bvlc6.c module

* Improve BIP6 debug for win32 port

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-01-10 10:13:51 -06:00
Steve Karg 889b7f9357 Feature/bip6 debug enable (#209)
* Added BACNET_BIP6_DEBUG environment variable to enhance BACnet/IPv6 debugging

* Added BACNET_BIP6_DEBUG environment variable to enhance BACnet/IPv6 debugging

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2022-01-08 11:34:11 -06:00
Steve Karg 88a3921c5b Issue 188 compile failed when bbmd enabled 0 (#200)
* Fix compile for BBMD=none

* Add compile for BBMD=none to pipeline

* remove appveyor. add codeql badge

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2021-10-13 10:37:01 -05:00
Steve Karg eff691aedd Bugfix/codeql initial fixes (#195)
* Fix to BVLC6 bounds checking

* Convert MSTP capture to use datetime library

* Convert timesync app to use datetime and mstimer library

* fix workflow per warning

* fix BSD mstimer init function name

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2021-09-17 09:21:26 -05:00
Greg Shue 8b8ef8f338 Issue 187 enable skipped ztest suites (#189)
* Fix some ztests that were skipped

* Expose bacapp_same_value()

* Fix bacapp, ptransfer tests

* Fix bugs in Load_Control object & tests

* refactor days functions from datetime module

* fix legacy ctests

* Add bacnet/basic/sys/days.[ch] to Zephyr build

* Update ztest to match from Zephyr v2.6.0; update ringbuf, datetime to build

* Fixup ztest test for object/acc

* Fix bvlc_address_from_ascii; enable/fix bvlc test

* Comment cleanup

* test/bacnet/basic/object/lc partially enabled

* Fix bacapp_decode_data_len return status on erroneous input

* fix ztest include fatal error

* fix ztest strsignal reference fatal error

* fix zassert_mem_equal reference syntax error

* fix zassert_mem_equal reference syntax error

Co-authored-by: Gregory Shue <gregory.shue@legrand.us>
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2021-08-16 17:29:40 -05:00
Steve Karg 541f4024fb Bugfix/network port object bdt required (#184)
* Added BDT encoding to network port object.

* Added BDT encoding rules from clause 21

* Added FDT encoding to network port object.

* added more unit tests for BVLC

* Fix network port and device object unit tests

* fix router build for bvlc dependencies

* fix router build for bvlc dependencies

* fix network port MSTP compile

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
Co-authored-by: Steve Karg <steve.karg@legrand.us>
2021-08-03 09:55:01 -05:00
Steve Karg 4b9e154256 Feature/mstp extended frames cobs encoding (#183)
* added COBS encode and decode from BACnet standard

* Add unit tests for COBS encoding and decoding

* Improve COBS unit test and API.

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2021-07-30 16:16:12 -05:00
Steve Karg a4fe367ac0 Added write BDT application (#170)
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2021-04-23 13:46:21 -05:00
Steve Karg 297a11665b Fix MSTP skip data state to result in not-for-us (#165)
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2021-04-23 13:44:20 -05:00
Steve Karg 69f876f1c9 Discard confirmed APDU from original broadcast in BIP and BIP6 datalink (#149)
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2021-01-13 13:59:16 -06:00
Steve Karg 511adb646c Added MSV object API create/delete/cleanup. Added BIP6 API for Contiki. (#134)
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2020-10-10 10:45:58 -05:00
Txinto c1429ba7be Fixing BACDL_ETHERNET compilation (#108)
Co-authored-by: Txinto Vaz <txinto@iac.es>
2020-08-13 10:19:42 -05:00
Steve Karg 15dce68947 make pretty using clang-format 10 2020-06-19 14:44:32 -05:00
Carlos Gomes Martinho 981d4036c8 refactor: rename test macro to prevent collisions (#91)
* refactor: rename test macro to prevent collisions

* style: align cmake epilog

* refactor: rename define in makefiles
2020-05-28 08:55:05 -05:00
Steve Karg 1ead6acea5 Fix BACnet IPv4 decode to allow for NULL (#72)
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2020-04-15 00:03:21 -05:00
Steve Karg d7918bb2ea Feature/add bbmd unit tests (#65)
* Added som BBMD IPv4 and IPv6 unit tests

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2020-04-11 22:58:07 -05:00
Steve Karg eedfa58a55 Feature/refactor bacnet ipv4 add unit tests (#64)
* refactor BACnet/IPv4 BVLC into encode-decode library with unit tests
Added Read-Broadcast-Distribution-Table encoding and unit test.
Added Read-Broadcast-Distribution-Table-Ack encoding and unit test.
Added Read-Foreign-Device-Table-Ack encoding and unit test.
Added some BDT/FDT diff copy functions with unit tests
Added some FDT add and delete entry functions with unit tests
Added some BDT set append and clear entry functions with unit tests
Added some BIPv4 address conversion functions with unit tests
Added non-BBMD handling unit test
Added basic unit test for BBMD handler
Added BBMD broadcast mask get set and unit tests
Added IPv6 maintenance timer.
Added ReadFDT app
Fixed ReadBDT app
Added Who-Is to Makefile for individual app build
Fixed debugging code blocks projects by swapping bip.c for h_bbmd.c module.
Ported BACnet/IPv4 to refactored BVLC for Linux, BSD, Windows
Fix datalink debug for DLENV module
Improve BIPv4 linux driver debug info
Added BDT mask functions
Reduce debug info clutter in Who-Is app by using environment option
Fix TTL seconds upper bounds addition
Fix CIDR prefix calculation on Linux BIPv4.
Convert BSD BIPv4 to BVLCv4
Fix CMake build for BIPv4 (Linux, BSD, Windows)
Added [U]nsigned to 0xBAC0 constants
Cleanup POSIX and Win32 API sockets
Remove unnecessary file scope variable initialization
Fix routed NPDU to depend on datalink; fix warning
Remove OS dependent network code from gateway
Enable BBMD client in library by default
Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
Co-authored-by: Steve Karg <steve.karg@legrand.us>
2020-04-04 11:31:54 -05:00
Steve Karg d557522c1f Bugfix/atmel studio arm compile warnings (#60)
* Cleanup warnings generated by Atmel Studio compiling for SAMD21 ARM

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2020-03-20 16:42:41 -05:00
Steve Karg 81d3a0b4a4 fix BVLC6 Delete-Foreign-Device-Table-Entry (#56)
* fix BVLC6 Delete-Foreign-Device-Table-Entry

* Add unit test failure detection to Makefile report target

* Fix the IPv6 layers for sending PDU

Co-authored-by: Steve Karg <skarg@users.sourceforge.net>
2020-03-12 12:24:07 -05:00
Anonymous Maarten 4a916468c6 Export symbols in order to support shared libraries (#54)
* Add BAC_ROUTING compile definition

* Reorder cmake

* Fix OpenSSL support: support both 1.0 and 1.1t pus

* Explicitly export symbols, hidden by default

* Build shared libraries on travis using cmake

* Learn Makefile about static library

* Fix build using mingw with cmake

* Do not cleanup twice or after potential free
2020-03-06 15:42:03 -06:00
Steve Karg bb5fafc06a feat remove openssl dependency functions and add missing file to cmake (#52)
* feat: remove openssl dependency functions and add missing file to cmake

* chore: also build shared lib

* chore: also build shared for github ci

* chore: do not test shared libs in ci for the moment
2020-03-04 13:35:14 -06:00
Steve Karg cf963a63ca Added IPv6 ascii address decode (#43) 2020-02-10 17:15:47 -06:00