f806c5829b
* pre-commit: Update and enable clang-format check There is newer version from clang-format so use that. We do not yet want 18 as that is little bit too new. * Format some thing by hand which clang-format "breaks" Clang-format will format some things little bit off in some cases. Format some things by hand so we get cleaner end result. * Run clang-format with ``` pre-commit run --all-files clang-format ``` We have already in previously checked places where clang-format does not make good format and ignored those (hopefully most of the things). --------- Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
Port of BACnet/IP to LwIP 2.x
This LwIP BACnet/IP port uses a Makefile designed to be used from the continuous integration pipeline. The container is configured with Ubuntu Linux and uses APT to install liblwip-dev library and header files. This build method ensures that the code is valid for the particular LwIP library that is released with Ubuntu.
Integration Hints
Developer must set the IP address, netmask, and UDP port into the BACnet/IP module.
Integration used a main loop bare metal design, shown here as an example.
int main(void)
{
static bool valid_ip_address = false;
static bool bacnet_ip_initialized = false;
bacnet_init();
LwIP_Init();
/* Infinite loop */
for (;;) {
/* Periodic tasks */
LwIP_Periodic_Handler();
/* Run when there is a valid IP address */
if (netif.ip_addr.addr != 0) {
if (!valid_ip_address) {
valid_ip_address = true;
bip_set_addr(netif.ip_addr.addr);
bip_set_broadcast_addr(
(netif.ip_addr.addr & netif.netmask.addr) |
(~netif.netmask.addr));
} else {
if (bacnet_ip_initialized) {
bacnet_task();
} else {
bip_init(NULL);
bacnet_ip_initialized = true;
}
}
} else {
valid_ip_address = false;
}
}
}