esp32: replace port with PlatformIO implementation and add CI build (#1292)

This commit is contained in:
Kato Gangstad
2026-04-06 15:33:17 +02:00
committed by GitHub
parent 3d668f2f96
commit 589a61b287
38 changed files with 2926 additions and 4708 deletions
+120
View File
@@ -0,0 +1,120 @@
# @file
# @brief Build-time BACnet source wiring for PlatformIO environments
# @author Kato Gangstad
Import("env")
from pathlib import Path
PIOENV = env.get("PIOENV", "")
if PIOENV not in (
"m5stamplc-mstp",
"m5stamplc-bip",
"esp32-poe-wifi-bip",
"esp32-poe-eth-bip",
"xiao-esp32c3-wifi-bip",
"m5stamplc-gateway-bip-mstp",
):
Return()
project_dir = Path(env.subst("$PROJECT_DIR")).resolve()
bacnet_src_root = (project_dir / ".." / ".." / "src").resolve()
bacnet_common_sources = [
"bacnet/basic/binding/address.c",
"bacnet/basic/server/bacnet_device.c",
"bacnet/basic/object/ai.c",
"bacnet/basic/object/bi.c",
"bacnet/basic/object/bo.c",
"bacnet/basic/npdu/h_npdu.c",
"bacnet/basic/service/h_apdu.c",
"bacnet/basic/service/h_dcc.c",
"bacnet/basic/service/h_noserv.c",
"bacnet/basic/service/h_rd.c",
"bacnet/basic/service/h_rp.c",
"bacnet/basic/service/h_rpm.c",
"bacnet/basic/service/h_whohas.c",
"bacnet/basic/service/h_whois.c",
"bacnet/basic/service/h_wp.c",
"bacnet/basic/service/s_iam.c",
"bacnet/basic/service/s_ihave.c",
"bacnet/basic/sys/datetime_mstimer.c",
"bacnet/basic/sys/days.c",
"bacnet/basic/sys/dst.c",
"bacnet/basic/sys/debug.c",
"bacnet/basic/sys/ringbuf.c",
"bacnet/basic/sys/fifo.c",
"bacnet/basic/sys/mstimer.c",
"bacnet/basic/tsm/tsm.c",
"bacnet/abort.c",
"bacnet/bacaction.c",
"bacnet/bacaddr.c",
"bacnet/bacapp.c",
"bacnet/bacdcode.c",
"bacnet/bacdest.c",
"bacnet/bacdevobjpropref.c",
"bacnet/bacerror.c",
"bacnet/bacint.c",
"bacnet/bacreal.c",
"bacnet/bacstr.c",
"bacnet/datetime.c",
"bacnet/dcc.c",
"bacnet/hostnport.c",
"bacnet/iam.c",
"bacnet/ihave.c",
"bacnet/indtext.c",
"bacnet/memcopy.c",
"bacnet/npdu.c",
"bacnet/proplist.c",
"bacnet/rd.c",
"bacnet/reject.c",
"bacnet/rp.c",
"bacnet/rpm.c",
"bacnet/timestamp.c",
"bacnet/whohas.c",
"bacnet/whois.c",
"bacnet/wp.c",
"bacnet/cov.c",
"bacnet/basic/sys/keylist.c",
]
bacnet_transport_sources = {
"m5stamplc-mstp": [
"bacnet/datalink/cobs.c",
"bacnet/datalink/crc.c",
"bacnet/datalink/dlmstp.c",
"bacnet/datalink/mstp.c",
"bacnet/datalink/mstptext.c",
],
"m5stamplc-bip": [
"bacnet/datalink/bvlc.c",
],
"esp32-poe-wifi-bip": [
"bacnet/datalink/bvlc.c",
],
"esp32-poe-eth-bip": [
"bacnet/datalink/bvlc.c",
],
"xiao-esp32c3-wifi-bip": [
"bacnet/datalink/bvlc.c",
],
"m5stamplc-gateway-bip-mstp": [
"bacnet/datalink/bvlc.c",
"bacnet/datalink/cobs.c",
"bacnet/datalink/crc.c",
"bacnet/datalink/dlmstp.c",
"bacnet/datalink/mstp.c",
"bacnet/datalink/mstptext.c",
],
}
bacnet_sources = bacnet_common_sources + bacnet_transport_sources.get(PIOENV, [])
env.Append(CPPPATH=[str(project_dir / "src"), str(bacnet_src_root)])
for rel in bacnet_sources:
env.BuildSources(
str(Path("$BUILD_DIR") / "bacnet"),
str(bacnet_src_root),
src_filter=f"+<{rel}>",
)