7 #include <lwip/netif.h>
10 #define KNX_SERIAL Serial
13 #ifndef KNX_FLASH_OFFSET
14 #error "KNX_FLASH_OFFSET is not defined. E.g. 0x1DB000 for BK7231N"
15 #elif (KNX_FLASH_OFFSET % 4096) != 0
16 #error "KNX_FLASH_OFFSET must be a multiple of 4096"
19 static uint8_t NVS_buffer[KNX_FLASH_SIZE];
22 #ifndef KNX_NO_DEFAULT_UART
36 return WiFi.localIP();
41 return WiFi.subnetMask();
46 return WiFi.gatewayIP();
51 WiFi.macAddress(addr);
56 return lt_cpu_get_mac_id();
69 for (netif = netif_list; netif != NULL; netif = netif->next)
71 netif->flags |= NETIF_FLAG_IGMP;
74 IPAddress mcastaddr(htonl(addr));
75 KNX_DEBUG_SERIAL.printf(
"setup multicast addr: %d.%d.%d.%d port: %d ip: %d.%d.%d.%d\n", mcastaddr[0], mcastaddr[1], mcastaddr[2], mcastaddr[3], port, WiFi.localIP()[0], WiFi.localIP()[1], WiFi.localIP()[2], WiFi.localIP()[3]);
76 uint8_t result = _udp.beginMulticast(mcastaddr, port);
77 KNX_DEBUG_SERIAL.printf(
"multicast setup result %d\n", result);
87 _udp.beginMulticastPacket();
88 _udp.write(buffer, len);
95 int len = _udp.parsePacket();
102 KNX_DEBUG_SERIAL.printf(
"udp buffer to small. was %d, needed %d\n", maxLen, len);
106 _udp.read(buffer, len);
112 IPAddress ucastaddr(htonl(addr));
113 println(
"sendBytesUniCast endPacket fail");
115 if(_udp.beginPacket(ucastaddr, port) == 1)
117 _udp.write(buffer, len);
119 if(_udp.endPacket() == 0)
120 println(
"sendBytesUniCast endPacket fail");
123 println(
"sendBytesUniCast beginPacket fail");
140 lt_flash_read(KNX_FLASH_OFFSET, NVS_buffer, KNX_FLASH_SIZE);
146 if(KNX_FLASH_SIZE <= 0)