You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2026/09/20 20:29:23 UTC
(plc4x) branch develop updated (81a01006e0 -> 74e4e71972)
This is an automated email from the ASF dual-hosted git repository.
chrisdutz pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
from 81a01006e0 fix: Tried fixing the python build.
new 4b9564b9f1 chore: Updated the knx vendors
new a1d964f15b chore: Updated the bacnet vendors
new 74e4e71972 fix: Hopefully resolved the issues with the python build.
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../python/complex-type-template.python.ftlh | 25 ++++
.../bacnetip/readwrite/model/BACnetVendorId.go | 144 +++++++++++++++++++--
.../knxnetip/readwrite/model/KnxManufacturer.go | 92 ++++++++++++-
.../java/bacnetip/readwrite/BACnetVendorId.java | 18 ++-
.../java/knxnetip/readwrite/KnxManufacturer.java | 16 ++-
.../knxnetip/readwrite/model/KnxManufacturer.cs | 49 ++++++-
.../plc4py/protocols/modbus/readwrite/ModbusPDU.py | 4 +
.../plc4py/protocols/umas/readwrite/ModbusPDU.py | 2 +
.../plc4py/protocols/umas/readwrite/UmasPDUItem.py | 2 +
.../protocols/bacnetip/bacnet-vendorids.mspec | 10 +-
.../protocols/knxnetip/knx-master-data.mspec | 11 +-
11 files changed, 344 insertions(+), 29 deletions(-)
(plc4x) 01/03: chore: Updated the knx vendors
Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
chrisdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 4b9564b9f1c5efcf74c89639176da0ba7b499e77
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Sun Sep 20 22:28:35 2026 +0200
chore: Updated the knx vendors
---
.../knxnetip/readwrite/model/KnxManufacturer.go | 92 ++++++++++++++++++++--
.../java/knxnetip/readwrite/KnxManufacturer.java | 16 +++-
.../knxnetip/readwrite/model/KnxManufacturer.cs | 49 ++++++++++--
.../protocols/knxnetip/knx-master-data.mspec | 11 ++-
4 files changed, 149 insertions(+), 19 deletions(-)
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go b/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
index 4e80eb4891..6bfd52dc6e 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
@@ -873,8 +873,13 @@ const (
KnxManufacturer_M_RUEDIGER_WOLF_AB KnxManufacturer = 827
KnxManufacturer_M_KOLORS_INDIA_PRIVATE_LIMITED KnxManufacturer = 828
KnxManufacturer_M_GERALD_DOCENKO KnxManufacturer = 829
- KnxManufacturer_M_ABB___RESERVED KnxManufacturer = 830
- KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED KnxManufacturer = 831
+ KnxManufacturer_M_VK_SYSTEMS_OY KnxManufacturer = 830
+ KnxManufacturer_M_GXCIT KnxManufacturer = 831
+ KnxManufacturer_M_SCHWARZ_WORKS_GMBH KnxManufacturer = 832
+ KnxManufacturer_M_LTECH KnxManufacturer = 833
+ KnxManufacturer_M_LE_ETS_AI KnxManufacturer = 834
+ KnxManufacturer_M_ABB___RESERVED KnxManufacturer = 835
+ KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED KnxManufacturer = 836
)
var KnxManufacturerValues []KnxManufacturer
@@ -1712,6 +1717,11 @@ func init() {
KnxManufacturer_M_RUEDIGER_WOLF_AB,
KnxManufacturer_M_KOLORS_INDIA_PRIVATE_LIMITED,
KnxManufacturer_M_GERALD_DOCENKO,
+ KnxManufacturer_M_VK_SYSTEMS_OY,
+ KnxManufacturer_M_GXCIT,
+ KnxManufacturer_M_SCHWARZ_WORKS_GMBH,
+ KnxManufacturer_M_LTECH,
+ KnxManufacturer_M_LE_ETS_AI,
KnxManufacturer_M_ABB___RESERVED,
KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED,
}
@@ -4973,10 +4983,30 @@ func (e KnxManufacturer) Number() uint16 {
}
case 830:
{ /* '830' */
- return 43954
+ return 892
}
case 831:
{ /* '831' */
+ return 893
+ }
+ case 832:
+ { /* '832' */
+ return 894
+ }
+ case 833:
+ { /* '833' */
+ return 895
+ }
+ case 834:
+ { /* '834' */
+ return 896
+ }
+ case 835:
+ { /* '835' */
+ return 43954
+ }
+ case 836:
+ { /* '836' */
return 43959
}
case 84:
@@ -8255,7 +8285,7 @@ func (e KnxManufacturer) Name() string {
}
case 816:
{ /* '816' */
- return "Haar-Informatik"
+ return "Haar Informatik"
}
case 817:
{ /* '817' */
@@ -8319,10 +8349,30 @@ func (e KnxManufacturer) Name() string {
}
case 830:
{ /* '830' */
- return "ABB - reserved"
+ return "VK Systems Oy"
}
case 831:
{ /* '831' */
+ return "GXCIT"
+ }
+ case 832:
+ { /* '832' */
+ return "Schwarz Works GmbH"
+ }
+ case 833:
+ { /* '833' */
+ return "LTECH"
+ }
+ case 834:
+ { /* '834' */
+ return "LE-ETS-AI"
+ }
+ case 835:
+ { /* '835' */
+ return "ABB - reserved"
+ }
+ case 836:
+ { /* '836' */
return "Busch-Jaeger Elektro - reserved"
}
case 84:
@@ -10037,8 +10087,18 @@ func KnxManufacturerByValue(value uint16) (enum KnxManufacturer, ok bool) {
case 83:
return KnxManufacturer_M_DURABLE_TECHNOLOGIES, true
case 830:
- return KnxManufacturer_M_ABB___RESERVED, true
+ return KnxManufacturer_M_VK_SYSTEMS_OY, true
case 831:
+ return KnxManufacturer_M_GXCIT, true
+ case 832:
+ return KnxManufacturer_M_SCHWARZ_WORKS_GMBH, true
+ case 833:
+ return KnxManufacturer_M_LTECH, true
+ case 834:
+ return KnxManufacturer_M_LE_ETS_AI, true
+ case 835:
+ return KnxManufacturer_M_ABB___RESERVED, true
+ case 836:
return KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED, true
case 84:
return KnxManufacturer_M_INNOTEAM, true
@@ -11706,6 +11766,16 @@ func KnxManufacturerByName(value string) (enum KnxManufacturer, ok bool) {
return KnxManufacturer_M_GERALD_DOCENKO, true
case "M_DURABLE_TECHNOLOGIES":
return KnxManufacturer_M_DURABLE_TECHNOLOGIES, true
+ case "M_VK_SYSTEMS_OY":
+ return KnxManufacturer_M_VK_SYSTEMS_OY, true
+ case "M_GXCIT":
+ return KnxManufacturer_M_GXCIT, true
+ case "M_SCHWARZ_WORKS_GMBH":
+ return KnxManufacturer_M_SCHWARZ_WORKS_GMBH, true
+ case "M_LTECH":
+ return KnxManufacturer_M_LTECH, true
+ case "M_LE_ETS_AI":
+ return KnxManufacturer_M_LE_ETS_AI, true
case "M_ABB___RESERVED":
return KnxManufacturer_M_ABB___RESERVED, true
case "M_BUSCH_JAEGER_ELEKTRO___RESERVED":
@@ -13448,6 +13518,16 @@ func (e KnxManufacturer) PLC4XEnumName() string {
return "M_GERALD_DOCENKO"
case KnxManufacturer_M_DURABLE_TECHNOLOGIES:
return "M_DURABLE_TECHNOLOGIES"
+ case KnxManufacturer_M_VK_SYSTEMS_OY:
+ return "M_VK_SYSTEMS_OY"
+ case KnxManufacturer_M_GXCIT:
+ return "M_GXCIT"
+ case KnxManufacturer_M_SCHWARZ_WORKS_GMBH:
+ return "M_SCHWARZ_WORKS_GMBH"
+ case KnxManufacturer_M_LTECH:
+ return "M_LTECH"
+ case KnxManufacturer_M_LE_ETS_AI:
+ return "M_LE_ETS_AI"
case KnxManufacturer_M_ABB___RESERVED:
return "M_ABB___RESERVED"
case KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED:
diff --git a/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java b/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java
index 1ec20a0989..2258bc71af 100644
--- a/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java
+++ b/plc4j/drivers/knxnetip/src/main/generated/org/apache/plc4x/java/knxnetip/readwrite/KnxManufacturer.java
@@ -1657,7 +1657,7 @@ public enum KnxManufacturer {
M_SYNCPRO((int) 815, (int) 876, "SYNCPRO"),
- M_HAAR_INFORMATIK((int) 816, (int) 877, "Haar-Informatik"),
+ M_HAAR_INFORMATIK((int) 816, (int) 877, "Haar Informatik"),
M_DIE_BILDUNGSMANUFAKTUR_GMBH((int) 817, (int) 878, "DIE-Bildungsmanufaktur GmbH"),
@@ -1685,9 +1685,19 @@ public enum KnxManufacturer {
M_GERALD_DOCENKO((int) 829, (int) 891, "Gerald Docenko"),
- M_ABB___RESERVED((int) 830, (int) 43954, "ABB - reserved"),
+ M_VK_SYSTEMS_OY((int) 830, (int) 892, "VK Systems Oy"),
- M_BUSCH_JAEGER_ELEKTRO___RESERVED((int) 831, (int) 43959, "Busch-Jaeger Elektro - reserved");
+ M_GXCIT((int) 831, (int) 893, "GXCIT"),
+
+ M_SCHWARZ_WORKS_GMBH((int) 832, (int) 894, "Schwarz Works GmbH"),
+
+ M_LTECH((int) 833, (int) 895, "LTECH"),
+
+ M_LE_ETS_AI((int) 834, (int) 896, "LE-ETS-AI"),
+
+ M_ABB___RESERVED((int) 835, (int) 43954, "ABB - reserved"),
+
+ M_BUSCH_JAEGER_ELEKTRO___RESERVED((int) 836, (int) 43959, "Busch-Jaeger Elektro - reserved");
private static final Map<Integer, KnxManufacturer> map;
diff --git a/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxManufacturer.cs b/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxManufacturer.cs
index c34ba35cfe..0152a97f05 100644
--- a/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxManufacturer.cs
+++ b/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxManufacturer.cs
@@ -855,8 +855,13 @@ namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
M_RUEDIGER_WOLF_AB = 827,
M_KOLORS_INDIA_PRIVATE_LIMITED = 828,
M_GERALD_DOCENKO = 829,
- M_ABB___RESERVED = 830,
- M_BUSCH_JAEGER_ELEKTRO___RESERVED = 831,
+ M_VK_SYSTEMS_OY = 830,
+ M_GXCIT = 831,
+ M_SCHWARZ_WORKS_GMBH = 832,
+ M_LTECH = 833,
+ M_LE_ETS_AI = 834,
+ M_ABB___RESERVED = 835,
+ M_BUSCH_JAEGER_ELEKTRO___RESERVED = 836,
}
public static class KnxManufacturerInfo
@@ -3305,10 +3310,25 @@ namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
case KnxManufacturer.M_DURABLE_TECHNOLOGIES: { /* '83' */
return 122;
}
- case KnxManufacturer.M_ABB___RESERVED: { /* '830' */
+ case KnxManufacturer.M_VK_SYSTEMS_OY: { /* '830' */
+ return 892;
+ }
+ case KnxManufacturer.M_GXCIT: { /* '831' */
+ return 893;
+ }
+ case KnxManufacturer.M_SCHWARZ_WORKS_GMBH: { /* '832' */
+ return 894;
+ }
+ case KnxManufacturer.M_LTECH: { /* '833' */
+ return 895;
+ }
+ case KnxManufacturer.M_LE_ETS_AI: { /* '834' */
+ return 896;
+ }
+ case KnxManufacturer.M_ABB___RESERVED: { /* '835' */
return 43954;
}
- case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '831' */
+ case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '836' */
return 43959;
}
case KnxManufacturer.M_INNOTEAM: { /* '84' */
@@ -5764,7 +5784,7 @@ namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
return "SYNCPRO";
}
case KnxManufacturer.M_HAAR_INFORMATIK: { /* '816' */
- return "Haar-Informatik";
+ return "Haar Informatik";
}
case KnxManufacturer.M_DIE_BILDUNGSMANUFAKTUR_GMBH: { /* '817' */
return "DIE-Bildungsmanufaktur GmbH";
@@ -5811,10 +5831,25 @@ namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
case KnxManufacturer.M_DURABLE_TECHNOLOGIES: { /* '83' */
return "Durable Technologies";
}
- case KnxManufacturer.M_ABB___RESERVED: { /* '830' */
+ case KnxManufacturer.M_VK_SYSTEMS_OY: { /* '830' */
+ return "VK Systems Oy";
+ }
+ case KnxManufacturer.M_GXCIT: { /* '831' */
+ return "GXCIT";
+ }
+ case KnxManufacturer.M_SCHWARZ_WORKS_GMBH: { /* '832' */
+ return "Schwarz Works GmbH";
+ }
+ case KnxManufacturer.M_LTECH: { /* '833' */
+ return "LTECH";
+ }
+ case KnxManufacturer.M_LE_ETS_AI: { /* '834' */
+ return "LE-ETS-AI";
+ }
+ case KnxManufacturer.M_ABB___RESERVED: { /* '835' */
return "ABB - reserved";
}
- case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '831' */
+ case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '836' */
return "Busch-Jaeger Elektro - reserved";
}
case KnxManufacturer.M_INNOTEAM: { /* '84' */
diff --git a/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec b/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec
index 4951ff54d6..bcaad1914e 100644
--- a/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec
+++ b/protocols/knxnetip/src/main/generated/protocols/knxnetip/knx-master-data.mspec
@@ -1569,7 +1569,7 @@
['813' M_SMARTOMATIC_GMBH ['874', '"Smartomatic GmbH"']]
['814' M_T_MAC_TECHNOLOGIES_LTD ['875', '"t-mac Technologies Ltd"']]
['815' M_SYNCPRO ['876', '"SYNCPRO"']]
- ['816' M_HAAR_INFORMATIK ['877', '"Haar-Informatik"']]
+ ['816' M_HAAR_INFORMATIK ['877', '"Haar Informatik"']]
['817' M_DIE_BILDUNGSMANUFAKTUR_GMBH ['878', '"DIE-Bildungsmanufaktur GmbH"']]
['818' M_READYKNX ['879', '"readyKNX"']]
['819' M_SMARTVOS ['880', '"smartVOS"']]
@@ -1583,8 +1583,13 @@
['827' M_RUEDIGER_WOLF_AB ['889', '"RĂ¼diger Wolf AB"']]
['828' M_KOLORS_INDIA_PRIVATE_LIMITED ['890', '"KOLORS INDIA PRIVATE LIMITED"']]
['829' M_GERALD_DOCENKO ['891', '"Gerald Docenko"']]
- ['830' M_ABB___RESERVED ['43954', '"ABB - reserved"']]
- ['831' M_BUSCH_JAEGER_ELEKTRO___RESERVED ['43959', '"Busch-Jaeger Elektro - reserved"']]
+ ['830' M_VK_SYSTEMS_OY ['892', '"VK Systems Oy"']]
+ ['831' M_GXCIT ['893', '"GXCIT"']]
+ ['832' M_SCHWARZ_WORKS_GMBH ['894', '"Schwarz Works GmbH"']]
+ ['833' M_LTECH ['895', '"LTECH"']]
+ ['834' M_LE_ETS_AI ['896', '"LE-ETS-AI"']]
+ ['835' M_ABB___RESERVED ['43954', '"ABB - reserved"']]
+ ['836' M_BUSCH_JAEGER_ELEKTRO___RESERVED ['43959', '"Busch-Jaeger Elektro - reserved"']]
]
(plc4x) 02/03: chore: Updated the bacnet vendors
Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
chrisdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit a1d964f15b18cce8f74c31966c91f429497a9cbc
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Sun Sep 20 22:28:49 2026 +0200
chore: Updated the bacnet vendors
---
.../bacnetip/readwrite/model/BACnetVendorId.go | 144 +++++++++++++++++++--
.../java/bacnetip/readwrite/BACnetVendorId.java | 18 ++-
.../protocols/bacnetip/bacnet-vendorids.mspec | 10 +-
3 files changed, 162 insertions(+), 10 deletions(-)
diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetVendorId.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetVendorId.go
index de2eaeb8be..cc3b7d2ccb 100644
--- a/plc4go/protocols/bacnetip/readwrite/model/BACnetVendorId.go
+++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetVendorId.go
@@ -336,7 +336,7 @@ const (
BACnetVendorId_ROMUTEC_STEUERU_REGELSYSTEME_GMBH BACnetVendorId = 290
BACnetVendorId_PRIBUSIN_INC BACnetVendorId = 291
BACnetVendorId_ADVANTAGE_CONTROLS BACnetVendorId = 292
- BACnetVendorId_CRITICAL_ROOM_CONTROL BACnetVendorId = 293
+ BACnetVendorId_CRC BACnetVendorId = 293
BACnetVendorId_LEGRAND BACnetVendorId = 294
BACnetVendorId_TONGDY_CONTROL_TECHNOLOGY_CO_LTD BACnetVendorId = 295
BACnetVendorId_ISSARO_INTEGRIERTE_SYSTEMTECHNIK BACnetVendorId = 296
@@ -1689,6 +1689,14 @@ const (
BACnetVendorId_CORE_CONTROLS_AILLC BACnetVendorId = 1654
BACnetVendorId_MODUTROL_PTY_LTD BACnetVendorId = 1655
BACnetVendorId_KAESER_KOMPRESSORENSE BACnetVendorId = 1656
+ BACnetVendorId_CUNNECT_GMBH BACnetVendorId = 1657
+ BACnetVendorId_BENNETT_AUTOMATIONLLC BACnetVendorId = 1658
+ BACnetVendorId_LESOPHISTIQUE_TECH_PVT_LTD BACnetVendorId = 1659
+ BACnetVendorId_EBMPAPSTNEO_GMBH_COKG BACnetVendorId = 1660
+ BACnetVendorId_AVYANNA_TECH_PVT_LTD BACnetVendorId = 1661
+ BACnetVendorId_CONTROL_BY_WEB BACnetVendorId = 1662
+ BACnetVendorId_COOLER_MASTER_CO_LTD BACnetVendorId = 1663
+ BACnetVendorId_BES_TECH_INC BACnetVendorId = 1664
BACnetVendorId_UNKNOWN_VENDOR BACnetVendorId = 0xFFFF
)
@@ -1990,7 +1998,7 @@ func init() {
BACnetVendorId_ROMUTEC_STEUERU_REGELSYSTEME_GMBH,
BACnetVendorId_PRIBUSIN_INC,
BACnetVendorId_ADVANTAGE_CONTROLS,
- BACnetVendorId_CRITICAL_ROOM_CONTROL,
+ BACnetVendorId_CRC,
BACnetVendorId_LEGRAND,
BACnetVendorId_TONGDY_CONTROL_TECHNOLOGY_CO_LTD,
BACnetVendorId_ISSARO_INTEGRIERTE_SYSTEMTECHNIK,
@@ -3343,6 +3351,14 @@ func init() {
BACnetVendorId_CORE_CONTROLS_AILLC,
BACnetVendorId_MODUTROL_PTY_LTD,
BACnetVendorId_KAESER_KOMPRESSORENSE,
+ BACnetVendorId_CUNNECT_GMBH,
+ BACnetVendorId_BENNETT_AUTOMATIONLLC,
+ BACnetVendorId_LESOPHISTIQUE_TECH_PVT_LTD,
+ BACnetVendorId_EBMPAPSTNEO_GMBH_COKG,
+ BACnetVendorId_AVYANNA_TECH_PVT_LTD,
+ BACnetVendorId_CONTROL_BY_WEB,
+ BACnetVendorId_COOLER_MASTER_CO_LTD,
+ BACnetVendorId_BES_TECH_INC,
BACnetVendorId_UNKNOWN_VENDOR,
}
}
@@ -6261,10 +6277,42 @@ func (e BACnetVendorId) VendorId() uint16 {
{ /* '1656' */
return 1656
}
+ case 1657:
+ { /* '1657' */
+ return 1657
+ }
+ case 1658:
+ { /* '1658' */
+ return 1658
+ }
+ case 1659:
+ { /* '1659' */
+ return 1659
+ }
case 166:
{ /* '166' */
return 166
}
+ case 1660:
+ { /* '1660' */
+ return 1660
+ }
+ case 1661:
+ { /* '1661' */
+ return 1661
+ }
+ case 1662:
+ { /* '1662' */
+ return 1662
+ }
+ case 1663:
+ { /* '1663' */
+ return 1663
+ }
+ case 1664:
+ { /* '1664' */
+ return 1664
+ }
case 167:
{ /* '167' */
return 167
@@ -12867,10 +12915,42 @@ func (e BACnetVendorId) VendorName() string {
{ /* '1656' */
return "Kaeser Kompressoren SE"
}
+ case 1657:
+ { /* '1657' */
+ return "cunnect GmbH"
+ }
+ case 1658:
+ { /* '1658' */
+ return "Bennett Automation, LLC"
+ }
+ case 1659:
+ { /* '1659' */
+ return "Lesophistique Tech Pvt Ltd"
+ }
case 166:
{ /* '166' */
return "Cooper Controls"
}
+ case 1660:
+ { /* '1660' */
+ return "Ebm-papst neo GmbH & Co. KG"
+ }
+ case 1661:
+ { /* '1661' */
+ return "Avyanna Tech Pvt Ltd"
+ }
+ case 1662:
+ { /* '1662' */
+ return "ControlByWeb"
+ }
+ case 1663:
+ { /* '1663' */
+ return "Cooler Master Co., Ltd."
+ }
+ case 1664:
+ { /* '1664' */
+ return "Bes-Tech, Inc."
+ }
case 167:
{ /* '167' */
return "Duksan Mecasys Co., Ltd."
@@ -13433,7 +13513,7 @@ func (e BACnetVendorId) VendorName() string {
}
case 293:
{ /* '293' */
- return "Critical Room Control"
+ return "CRC"
}
case 294:
{ /* '294' */
@@ -18016,8 +18096,24 @@ func BACnetVendorIdByValue(value uint16) (enum BACnetVendorId, ok bool) {
return BACnetVendorId_MODUTROL_PTY_LTD, true
case 1656:
return BACnetVendorId_KAESER_KOMPRESSORENSE, true
+ case 1657:
+ return BACnetVendorId_CUNNECT_GMBH, true
+ case 1658:
+ return BACnetVendorId_BENNETT_AUTOMATIONLLC, true
+ case 1659:
+ return BACnetVendorId_LESOPHISTIQUE_TECH_PVT_LTD, true
case 166:
return BACnetVendorId_COOPER_CONTROLS, true
+ case 1660:
+ return BACnetVendorId_EBMPAPSTNEO_GMBH_COKG, true
+ case 1661:
+ return BACnetVendorId_AVYANNA_TECH_PVT_LTD, true
+ case 1662:
+ return BACnetVendorId_CONTROL_BY_WEB, true
+ case 1663:
+ return BACnetVendorId_COOLER_MASTER_CO_LTD, true
+ case 1664:
+ return BACnetVendorId_BES_TECH_INC, true
case 167:
return BACnetVendorId_DUKSAN_MECASYS_CO_LTD, true
case 168:
@@ -18299,7 +18395,7 @@ func BACnetVendorIdByValue(value uint16) (enum BACnetVendorId, ok bool) {
case 292:
return BACnetVendorId_ADVANTAGE_CONTROLS, true
case 293:
- return BACnetVendorId_CRITICAL_ROOM_CONTROL, true
+ return BACnetVendorId_CRC, true
case 294:
return BACnetVendorId_LEGRAND, true
case 295:
@@ -21316,8 +21412,24 @@ func BACnetVendorIdByName(value string) (enum BACnetVendorId, ok bool) {
return BACnetVendorId_MODUTROL_PTY_LTD, true
case "KAESER_KOMPRESSORENSE":
return BACnetVendorId_KAESER_KOMPRESSORENSE, true
+ case "CUNNECT_GMBH":
+ return BACnetVendorId_CUNNECT_GMBH, true
+ case "BENNETT_AUTOMATIONLLC":
+ return BACnetVendorId_BENNETT_AUTOMATIONLLC, true
+ case "LESOPHISTIQUE_TECH_PVT_LTD":
+ return BACnetVendorId_LESOPHISTIQUE_TECH_PVT_LTD, true
case "COOPER_CONTROLS":
return BACnetVendorId_COOPER_CONTROLS, true
+ case "EBMPAPSTNEO_GMBH_COKG":
+ return BACnetVendorId_EBMPAPSTNEO_GMBH_COKG, true
+ case "AVYANNA_TECH_PVT_LTD":
+ return BACnetVendorId_AVYANNA_TECH_PVT_LTD, true
+ case "CONTROL_BY_WEB":
+ return BACnetVendorId_CONTROL_BY_WEB, true
+ case "COOLER_MASTER_CO_LTD":
+ return BACnetVendorId_COOLER_MASTER_CO_LTD, true
+ case "BES_TECH_INC":
+ return BACnetVendorId_BES_TECH_INC, true
case "DUKSAN_MECASYS_CO_LTD":
return BACnetVendorId_DUKSAN_MECASYS_CO_LTD, true
case "FUJIIT_CO_LTD":
@@ -21598,8 +21710,8 @@ func BACnetVendorIdByName(value string) (enum BACnetVendorId, ok bool) {
return BACnetVendorId_PRIBUSIN_INC, true
case "ADVANTAGE_CONTROLS":
return BACnetVendorId_ADVANTAGE_CONTROLS, true
- case "CRITICAL_ROOM_CONTROL":
- return BACnetVendorId_CRITICAL_ROOM_CONTROL, true
+ case "CRC":
+ return BACnetVendorId_CRC, true
case "LEGRAND":
return BACnetVendorId_LEGRAND, true
case "TONGDY_CONTROL_TECHNOLOGY_CO_LTD":
@@ -24688,8 +24800,24 @@ func (e BACnetVendorId) PLC4XEnumName() string {
return "MODUTROL_PTY_LTD"
case BACnetVendorId_KAESER_KOMPRESSORENSE:
return "KAESER_KOMPRESSORENSE"
+ case BACnetVendorId_CUNNECT_GMBH:
+ return "CUNNECT_GMBH"
+ case BACnetVendorId_BENNETT_AUTOMATIONLLC:
+ return "BENNETT_AUTOMATIONLLC"
+ case BACnetVendorId_LESOPHISTIQUE_TECH_PVT_LTD:
+ return "LESOPHISTIQUE_TECH_PVT_LTD"
case BACnetVendorId_COOPER_CONTROLS:
return "COOPER_CONTROLS"
+ case BACnetVendorId_EBMPAPSTNEO_GMBH_COKG:
+ return "EBMPAPSTNEO_GMBH_COKG"
+ case BACnetVendorId_AVYANNA_TECH_PVT_LTD:
+ return "AVYANNA_TECH_PVT_LTD"
+ case BACnetVendorId_CONTROL_BY_WEB:
+ return "CONTROL_BY_WEB"
+ case BACnetVendorId_COOLER_MASTER_CO_LTD:
+ return "COOLER_MASTER_CO_LTD"
+ case BACnetVendorId_BES_TECH_INC:
+ return "BES_TECH_INC"
case BACnetVendorId_DUKSAN_MECASYS_CO_LTD:
return "DUKSAN_MECASYS_CO_LTD"
case BACnetVendorId_FUJIIT_CO_LTD:
@@ -24970,8 +25098,8 @@ func (e BACnetVendorId) PLC4XEnumName() string {
return "PRIBUSIN_INC"
case BACnetVendorId_ADVANTAGE_CONTROLS:
return "ADVANTAGE_CONTROLS"
- case BACnetVendorId_CRITICAL_ROOM_CONTROL:
- return "CRITICAL_ROOM_CONTROL"
+ case BACnetVendorId_CRC:
+ return "CRC"
case BACnetVendorId_LEGRAND:
return "LEGRAND"
case BACnetVendorId_TONGDY_CONTROL_TECHNOLOGY_CO_LTD:
diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java
index 799cad7e40..1291ff6c0f 100644
--- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java
+++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetVendorId.java
@@ -611,7 +611,7 @@ public enum BACnetVendorId {
ADVANTAGE_CONTROLS((int) 292, (int) 292, "Advantage Controls"),
- CRITICAL_ROOM_CONTROL((int) 293, (int) 293, "Critical Room Control"),
+ CRC((int) 293, (int) 293, "CRC"),
LEGRAND((int) 294, (int) 294, "LEGRAND"),
@@ -3317,6 +3317,22 @@ public enum BACnetVendorId {
KAESER_KOMPRESSORENSE((int) 1656, (int) 1656, "Kaeser Kompressoren SE"),
+ CUNNECT_GMBH((int) 1657, (int) 1657, "cunnect GmbH"),
+
+ BENNETT_AUTOMATIONLLC((int) 1658, (int) 1658, "Bennett Automation, LLC"),
+
+ LESOPHISTIQUE_TECH_PVT_LTD((int) 1659, (int) 1659, "Lesophistique Tech Pvt Ltd"),
+
+ EBMPAPSTNEO_GMBH_COKG((int) 1660, (int) 1660, "Ebm-papst neo GmbH & Co. KG"),
+
+ AVYANNA_TECH_PVT_LTD((int) 1661, (int) 1661, "Avyanna Tech Pvt Ltd"),
+
+ CONTROL_BY_WEB((int) 1662, (int) 1662, "ControlByWeb"),
+
+ COOLER_MASTER_CO_LTD((int) 1663, (int) 1663, "Cooler Master Co., Ltd."),
+
+ BES_TECH_INC((int) 1664, (int) 1664, "Bes-Tech, Inc."),
+
UNKNOWN_VENDOR((int) 0xFFFF, (int) 0xFFFF, "Unknown");
private static final Map<Integer, BACnetVendorId> map;
diff --git a/protocols/bacnetip/src/main/generated/protocols/bacnetip/bacnet-vendorids.mspec b/protocols/bacnetip/src/main/generated/protocols/bacnetip/bacnet-vendorids.mspec
index f573861e4e..426c51659b 100644
--- a/protocols/bacnetip/src/main/generated/protocols/bacnetip/bacnet-vendorids.mspec
+++ b/protocols/bacnetip/src/main/generated/protocols/bacnetip/bacnet-vendorids.mspec
@@ -314,7 +314,7 @@
['290' ROMUTEC_STEUERU_REGELSYSTEME_GMBH ['290', '"Romutec Steuer-u. Regelsysteme GmbH"']]
['291' PRIBUSIN_INC ['291', '"Pribusin, Inc."']]
['292' ADVANTAGE_CONTROLS ['292', '"Advantage Controls"']]
- ['293' CRITICAL_ROOM_CONTROL ['293', '"Critical Room Control"']]
+ ['293' CRC ['293', '"CRC"']]
['294' LEGRAND ['294', '"LEGRAND"']]
['295' TONGDY_CONTROL_TECHNOLOGY_CO_LTD ['295', '"Tongdy Control Technology Co., Ltd."']]
['296' ISSARO_INTEGRIERTE_SYSTEMTECHNIK ['296', '"ISSARO Integrierte Systemtechnik"']]
@@ -1667,6 +1667,14 @@
['1654' CORE_CONTROLS_AILLC ['1654', '"CoreControlsAi, LLC"']]
['1655' MODUTROL_PTY_LTD ['1655', '"Modutrol Pty Ltd"']]
['1656' KAESER_KOMPRESSORENSE ['1656', '"Kaeser Kompressoren SE"']]
+ ['1657' CUNNECT_GMBH ['1657', '"cunnect GmbH"']]
+ ['1658' BENNETT_AUTOMATIONLLC ['1658', '"Bennett Automation, LLC"']]
+ ['1659' LESOPHISTIQUE_TECH_PVT_LTD ['1659', '"Lesophistique Tech Pvt Ltd"']]
+ ['1660' EBMPAPSTNEO_GMBH_COKG ['1660', '"Ebm-papst neo GmbH & Co. KG"']]
+ ['1661' AVYANNA_TECH_PVT_LTD ['1661', '"Avyanna Tech Pvt Ltd"']]
+ ['1662' CONTROL_BY_WEB ['1662', '"ControlByWeb"']]
+ ['1663' COOLER_MASTER_CO_LTD ['1663', '"Cooler Master Co., Ltd."']]
+ ['1664' BES_TECH_INC ['1664', '"Bes-Tech, Inc."']]
['0xFFFF' UNKNOWN_VENDOR ['0xFFFF', '"Unknown"']]
]
(plc4x) 03/03: fix: Hopefully resolved the issues with the python build.
Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
chrisdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 74e4e71972923e1dd5faa81659d099aba288cdde
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Sun Sep 20 22:29:14 2026 +0200
fix: Hopefully resolved the issues with the python build.
---
.../python/complex-type-template.python.ftlh | 25 ++++++++++++++++++++++
.../plc4py/protocols/modbus/readwrite/ModbusPDU.py | 4 ++++
.../plc4py/protocols/umas/readwrite/ModbusPDU.py | 2 ++
.../plc4py/protocols/umas/readwrite/UmasPDUItem.py | 2 ++
4 files changed, 33 insertions(+)
diff --git a/code-generation/language/python/src/main/resources/templates/python/complex-type-template.python.ftlh b/code-generation/language/python/src/main/resources/templates/python/complex-type-template.python.ftlh
index 10a98c6a29..8c677faa77 100644
--- a/code-generation/language/python/src/main/resources/templates/python/complex-type-template.python.ftlh
+++ b/code-generation/language/python/src/main/resources/templates/python/complex-type-template.python.ftlh
@@ -732,6 +732,24 @@ class ${type.name}<#if type.isDiscriminatedParentTypeDefinition()></#if>(<#if ty
# Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
builder: ${type.name}Builder = None
+ <#-- A case that does not pin a discriminator down to a value inherits whatever was read
+ from the wire. Collect those here and hand them to the instance after it was built,
+ the same way the Java code-generator retains them. -->
+ <#assign retainedDiscriminatorNames=[]>
+ <#list switchField.cases as case>
+ <#list switchField.discriminatorExpressions as discriminatorExpression>
+ <#assign discriminatorName=discriminatorExpression.asLiteral().orElseThrow().asVariableLiteral().orElseThrow().discriminatorName>
+ <#if type.isDiscriminatorField(discriminatorName) && !case.isNonDiscriminatorField(discriminatorName)
+ && (!(case.discriminatorValueTerms?size > discriminatorExpression?index) || helper.isWildcard(case.discriminatorValueTerms[discriminatorExpression?index]))>
+ <#if !retainedDiscriminatorNames?seq_contains(discriminatorName)>
+ <#assign retainedDiscriminatorNames=retainedDiscriminatorNames + [discriminatorName]>
+ </#if>
+ </#if>
+ </#list>
+ </#list>
+ <#list retainedDiscriminatorNames as retainedDiscriminatorName>
+ _retained_${helper.camelCaseToSnakeCase(retainedDiscriminatorName)} = ${helper.camelCaseToSnakeCase(retainedDiscriminatorName)}
+ </#list>
<#list switchField.cases as case>
<#if case.discriminatorValueTerms?has_content>
from plc4py.protocols.${protocolName}.${outputFlavor?replace('-', '')}.${case.name} import ${case.name}
@@ -824,6 +842,13 @@ class ${type.name}<#if type.isDiscriminatedParentTypeDefinition()></#if>(<#if ty
<#list reservedFields as reservedField>
_${helper.camelCaseToSnakeCase(type.name)}.reserved_field${reservedField?index} = reserved_field_${reservedField?index}
</#list>
+ <#-- Discriminators the chosen sub-type does not pin down keep the value read from the wire,
+ instead of the sub-type's placeholder default. -->
+ <#if retainedDiscriminatorNames??>
+ <#list retainedDiscriminatorNames as retainedDiscriminatorName>
+ _${helper.camelCaseToSnakeCase(type.name)}.${helper.camelCaseToSnakeCase(retainedDiscriminatorName)} = _retained_${helper.camelCaseToSnakeCase(retainedDiscriminatorName)}
+ </#list>
+ </#if>
return _${helper.camelCaseToSnakeCase(type.name)}
<#else>
_${helper.camelCaseToSnakeCase(type.name)}: ${type.name} = ${type.name}(<@compress single_line=true>
diff --git a/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDU.py b/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDU.py
index e03ec11f67..34cc848ec3 100644
--- a/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDU.py
+++ b/plc4py/plc4py/protocols/modbus/readwrite/ModbusPDU.py
@@ -122,6 +122,8 @@ class ModbusPDU(ABC, PlcMessage):
# Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
builder: ModbusPDUBuilder = None
+ _retained_function_flag = function_flag
+ _retained_response = response
from plc4py.protocols.modbus.readwrite.ModbusPDUError import ModbusPDUError
if error_flag == bool(True):
@@ -647,6 +649,8 @@ class ModbusPDU(ABC, PlcMessage):
read_buffer.pop_context("ModbusPDU")
# Create the instance
_modbus_pdu: ModbusPDU = builder.build()
+ _modbus_pdu.function_flag = _retained_function_flag
+ _modbus_pdu.response = _retained_response
return _modbus_pdu
def equals(self, o: object) -> bool:
diff --git a/plc4py/plc4py/protocols/umas/readwrite/ModbusPDU.py b/plc4py/plc4py/protocols/umas/readwrite/ModbusPDU.py
index 6c10ec76d6..3530557383 100644
--- a/plc4py/plc4py/protocols/umas/readwrite/ModbusPDU.py
+++ b/plc4py/plc4py/protocols/umas/readwrite/ModbusPDU.py
@@ -145,6 +145,7 @@ class ModbusPDU(ABC, PlcMessage):
# Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
builder: ModbusPDUBuilder = None
+ _retained_function_flag = function_flag
from plc4py.protocols.umas.readwrite.ModbusPDUError import ModbusPDUError
if error_flag == bool(True):
@@ -174,6 +175,7 @@ class ModbusPDU(ABC, PlcMessage):
read_buffer.pop_context("ModbusPDU")
# Create the instance
_modbus_pdu: ModbusPDU = builder.build(umas_request_function_key, byte_length)
+ _modbus_pdu.function_flag = _retained_function_flag
return _modbus_pdu
def equals(self, o: object) -> bool:
diff --git a/plc4py/plc4py/protocols/umas/readwrite/UmasPDUItem.py b/plc4py/plc4py/protocols/umas/readwrite/UmasPDUItem.py
index f12e9cc73f..b4d132e8cd 100644
--- a/plc4py/plc4py/protocols/umas/readwrite/UmasPDUItem.py
+++ b/plc4py/plc4py/protocols/umas/readwrite/UmasPDUItem.py
@@ -153,6 +153,7 @@ class UmasPDUItem(ABC, PlcMessage):
# Switch Field (Depending on the discriminator values, passes the instantiation to a sub-type)
builder: UmasPDUItemBuilder = None
+ _retained_umas_request_function_key = umas_request_function_key
from plc4py.protocols.umas.readwrite.UmasInitCommsRequest import (
UmasInitCommsRequest,
)
@@ -312,6 +313,7 @@ class UmasPDUItem(ABC, PlcMessage):
read_buffer.pop_context("UmasPDUItem")
# Create the instance
_umas_pduitem: UmasPDUItem = builder.build(pairing_key, byte_length)
+ _umas_pduitem.umas_request_function_key = _retained_umas_request_function_key
return _umas_pduitem
def equals(self, o: object) -> bool: