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 2023/12/23 09:23:58 UTC
(plc4x) branch develop updated (5cdfef1234 -> 43b5e7d2f4)
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
from 5cdfef1234 chore: Added Timecho to the list of commercial support offerings,
new a8f029ed7f chore: Updated vendor ids
new 43b5e7d2f4 feat: Continued working on getting the PN stuff working.
The 2 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:
.../knxnetip/readwrite/model/KnxManufacturer.go | 26 +++++--
.../java/knxnetip/readwrite/KnxManufacturer.java | 5 +-
.../java/profinet/packets/PnDcpPacketFactory.java | 3 +-
.../profinet/protocol/ProfinetProtocolLogic.java | 81 ++++++++++------------
...oTest2.java => ManualProfinetIoTestAdamPN.java} | 2 +-
...Test.java => ManualProfinetIoTestSimocode.java} | 4 +-
...java => ManualProfinetIoTestWagoPNCoupler.java} | 2 +-
....java => ManualProfinetIoTestZylkSimocode.java} | 10 +--
.../plc4x/java/profinet/device/ProfinetDevice.java | 3 +-
.../plc4x/java/profinet/ManualProfinetIoTest.java | 4 +-
.../knxnetip/readwrite/model/KnxManufacturer.cs | 19 +++--
.../protocols/knxnetip/knx-master-data.mspec | 5 +-
12 files changed, 92 insertions(+), 72 deletions(-)
copy plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/{ManualProfinetIoTest2.java => ManualProfinetIoTestAdamPN.java} (97%)
rename plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/{ManualProfinetIoTest.java => ManualProfinetIoTestSimocode.java} (94%)
rename plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/{ManualProfinetIoTest3.java => ManualProfinetIoTestWagoPNCoupler.java} (97%)
rename plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/{ManualProfinetIoTest2.java => ManualProfinetIoTestZylkSimocode.java} (86%)
(plc4x) 02/02: feat: Continued working on getting the PN stuff working.
Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 43b5e7d2f490ec7aa7b3aa924e017d499f6e6d8c
Author: Christofer Dutz <cd...@apache.org>
AuthorDate: Sat Dec 23 10:23:49 2023 +0100
feat: Continued working on getting the PN stuff working.
---
.../java/profinet/packets/PnDcpPacketFactory.java | 3 +-
.../profinet/protocol/ProfinetProtocolLogic.java | 81 ++++++++++------------
...oTest2.java => ManualProfinetIoTestAdamPN.java} | 2 +-
...Test.java => ManualProfinetIoTestSimocode.java} | 4 +-
...java => ManualProfinetIoTestWagoPNCoupler.java} | 2 +-
....java => ManualProfinetIoTestZylkSimocode.java} | 10 +--
.../plc4x/java/profinet/device/ProfinetDevice.java | 3 +-
.../plc4x/java/profinet/ManualProfinetIoTest.java | 4 +-
8 files changed, 52 insertions(+), 57 deletions(-)
diff --git a/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/packets/PnDcpPacketFactory.java b/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/packets/PnDcpPacketFactory.java
index 79fcffe6ac..17c26edbdd 100644
--- a/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/packets/PnDcpPacketFactory.java
+++ b/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/packets/PnDcpPacketFactory.java
@@ -206,7 +206,8 @@ public class PnDcpPacketFactory {
Collections.singletonList(
new IODReadRequestHeader((short) 1, (short) 0, 0,
new Uuid(new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}),
- 0, 0, 1, 0xF000, 16696,
+ // * REMARK: It seems that it doesn't matter if we use subSlotNumber 0 or 1, the responses seem to be the same.
+ 0, 0, 0, 0xF000, 16696,
new Uuid(new byte[]{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}))
))
);
diff --git a/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java b/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java
index fefd5254e2..142d078e63 100644
--- a/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java
+++ b/plc4j/drivers/profinet-ng/src/main/java/org/apache/plc4x/java/profinet/protocol/ProfinetProtocolLogic.java
@@ -40,7 +40,6 @@ import org.apache.plc4x.java.spi.configuration.HasConfiguration;
import org.apache.plc4x.java.spi.context.DriverContext;
import org.apache.plc4x.java.spi.messages.DefaultPlcBrowseItem;
import org.apache.plc4x.java.spi.messages.DefaultPlcBrowseResponse;
-import org.apache.plc4x.java.spi.messages.DefaultPlcSubscriptionResponse;
import org.apache.plc4x.java.utils.rawsockets.netty.RawSocketChannel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -50,13 +49,18 @@ import java.security.SecureRandom;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.atomic.AtomicInteger;
public class ProfinetProtocolLogic extends Plc4xProtocolBase<Ethernet_Frame> implements HasConfiguration<ProfinetConfiguration> {
+ // This is the minimum cycle time defined in the PN Spec (Page 205): 31,25us
+ private static final int NANOS_PER_CYCLE = 31250;
+
private ProfinetDriverContext profinetDriverContext;
private ProfinetConfiguration configuration;
+ private Integer cycleOffset = null;
+ private boolean connected = false;
+
private final Logger logger = LoggerFactory.getLogger(ProfinetProtocolLogic.class);
@Override
@@ -722,6 +726,7 @@ public class ProfinetProtocolLogic extends Plc4xProtocolBase<Ethernet_Frame> imp
RawSocketChannel pnChannel = (RawSocketChannel) context.getChannel();
PnDcpPacketFactory.sendApplicationReadyResponse(context, pnChannel, profinetDriverContext, payloadIPv4.getSourcePort(), dceRpc_packet.getActivityUuid(), arUuid, sessionKey);
+ connected = true;
// TODO: Prepare the subscription response.
// future.complete(new DefaultPlcSubscriptionResponse(subscriptionRequest, ))
});
@@ -732,45 +737,6 @@ public class ProfinetProtocolLogic extends Plc4xProtocolBase<Ethernet_Frame> imp
// We needed to put the code to expect the ApplicationReady to subscribe before sending,
// as the device sends it within 4 ms, and we can't guarantee that we're done setting up
// the listener.
-
- // TODO: Start sending data.
- Thread task = new Thread(() -> {
- int curCounterValue = 0;
- RawSocketChannel pnChannel = (RawSocketChannel) context.getChannel();
- MacAddress srcAddress = new MacAddress(pnChannel.getLocalMacAddress().getAddress());
- MacAddress dstAddress = new MacAddress(pnChannel.getRemoteMacAddress().getAddress());
- byte[] data = new byte[40];
- data[0] = (byte) 0x80;
- data[1] = (byte) 0x80;
- data[2] = (byte) 0x80;
- data[3] = (byte) 0x80;
- long nextExecutionTime = System.currentTimeMillis();
- System.out.println("Starting Loop");
- while(context.getChannel().isOpen()) {
- if(nextExecutionTime < System.currentTimeMillis()) {
- curCounterValue += 512;
- Ethernet_Frame frame = new Ethernet_Frame(
- dstAddress,
- srcAddress,
- new Ethernet_FramePayload_VirtualLan(VirtualLanPriority.INTERNETWORK_CONTROL, false, (short) 0,
- new Ethernet_FramePayload_PnDcp(
- new PnDcp_Pdu_RealTimeCyclic(0x8003,
- new PnIo_CyclicServiceDataUnit(data, (short) 40),
- curCounterValue, false, true,
- true, true, false, true)
- )
- )
- );
- System.out.println("Sending");
- context.sendToWire(frame);
- // Send a packet every 16ms
- nextExecutionTime += 16;
- }
- }
- System.out.println("Channel closed");
- });
- task.setPriority(Thread.MAX_PRIORITY);
- task.start();
});
});
@@ -779,11 +745,41 @@ public class ProfinetProtocolLogic extends Plc4xProtocolBase<Ethernet_Frame> imp
@Override
protected void decode(ConversationContext<Ethernet_Frame> context, Ethernet_Frame msg) throws Exception {
+ RawSocketChannel pnChannel = (RawSocketChannel) context.getChannel();
+/* MacAddress srcAddress = new MacAddress(pnChannel.getLocalMacAddress().getAddress());
+ MacAddress dstAddress = new MacAddress(pnChannel.getRemoteMacAddress().getAddress());
+ byte[] data = new byte[40];
+ data[0] = (byte) 0x60;
+ data[1] = (byte) 0x60;
+ data[2] = (byte) 0x60;
+ data[3] = (byte) 0x60;
+ data[4] = (byte) 0x60;
+ data[6] = (byte) 0x60;*/
+
if (msg.getPayload() instanceof Ethernet_FramePayload_PnDcp) {
Ethernet_FramePayload_PnDcp dcpPacket = (Ethernet_FramePayload_PnDcp) msg.getPayload();
if (dcpPacket.getPdu() instanceof PnDcp_Pdu_RealTimeCyclic) {
PnDcp_Pdu_RealTimeCyclic realTimeCyclic = (PnDcp_Pdu_RealTimeCyclic) dcpPacket.getPdu();
-// System.out.println(realTimeCyclic);
+
+/* // Save the offset of the first packet.
+ cycleOffset = realTimeCyclic.getCycleCounter();
+
+ int newCycleCounter = (int) ((((System.nanoTime() - startTime) / (NANOS_PER_CYCLE)) + cycleOffset) % 65536);
+ Ethernet_Frame frame = new Ethernet_Frame(
+ dstAddress,
+ srcAddress,
+ new Ethernet_FramePayload_VirtualLan(VirtualLanPriority.INTERNETWORK_CONTROL, false, (short) 0,
+ new Ethernet_FramePayload_PnDcp(
+ new PnDcp_Pdu_RealTimeCyclic(0x8003,
+ new PnIo_CyclicServiceDataUnit(data, (short) 40),
+ newCycleCounter, false, true,
+ true, true, false, true)
+ )
+ )
+ );
+ System.out.println("Sending");
+ context.sendToWire(frame);*/
+
} else {
System.out.println(dcpPacket);
}
@@ -792,7 +788,6 @@ public class ProfinetProtocolLogic extends Plc4xProtocolBase<Ethernet_Frame> imp
if(payloadIPv4.getPayload().getPayload() instanceof PnIoCm_Packet_Ping) {
DceRpc_Packet pingPacket = payloadIPv4.getPayload();
// Send back a ping response
- RawSocketChannel pnChannel = (RawSocketChannel) context.getChannel();
PnDcpPacketFactory.sendPingResponse(context, pnChannel, profinetDriverContext, payloadIPv4);
}
// The remote device terminated the connection.
diff --git a/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest2.java b/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestAdamPN.java
similarity index 97%
copy from plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest2.java
copy to plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestAdamPN.java
index 201986a321..8f5352d8eb 100644
--- a/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest2.java
+++ b/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestAdamPN.java
@@ -27,7 +27,7 @@ import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
-public class ManualProfinetIoTest2 {
+public class ManualProfinetIoTestAdamPN {
public static void main(String[] args) throws Exception {
// WireShark filter: "eth.addr == 74:fe:48:63:f6:c2"
diff --git a/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest.java b/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestSimocode.java
similarity index 94%
rename from plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest.java
rename to plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestSimocode.java
index 838bb9a257..95072070d8 100644
--- a/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest.java
+++ b/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestSimocode.java
@@ -22,13 +22,11 @@ package org.apache.plc4x.java.profinet;
import org.apache.plc4x.java.DefaultPlcDriverManager;
import org.apache.plc4x.java.api.PlcConnection;
import org.apache.plc4x.java.api.messages.*;
-import org.apache.plc4x.java.profinet.tag.ProfinetTag;
import java.time.Duration;
-import java.util.List;
import java.util.concurrent.TimeUnit;
-public class ManualProfinetIoTest {
+public class ManualProfinetIoTestSimocode {
public static void main(String[] args) throws Exception {
// WireShark filter: "eth.addr == 88:3f:99:00:06:ef"
diff --git a/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest3.java b/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestWagoPNCoupler.java
similarity index 97%
rename from plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest3.java
rename to plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestWagoPNCoupler.java
index f3f6aa61a2..aed2d41140 100644
--- a/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest3.java
+++ b/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestWagoPNCoupler.java
@@ -27,7 +27,7 @@ import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
-public class ManualProfinetIoTest3 {
+public class ManualProfinetIoTestWagoPNCoupler {
public static void main(String[] args) throws Exception {
// WireShark filter: "eth.addr == 00:30:de:61:37:79"
diff --git a/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest2.java b/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestZylkSimocode.java
similarity index 86%
rename from plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest2.java
rename to plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestZylkSimocode.java
index 201986a321..8170a6b5e8 100644
--- a/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest2.java
+++ b/plc4j/drivers/profinet-ng/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTestZylkSimocode.java
@@ -7,7 +7,7 @@
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
- * https://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
@@ -27,17 +27,17 @@ import org.apache.plc4x.java.api.messages.PlcSubscriptionResponse;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
-public class ManualProfinetIoTest2 {
+public class ManualProfinetIoTestZylkSimocode {
public static void main(String[] args) throws Exception {
- // WireShark filter: "eth.addr == 74:fe:48:63:f6:c2"
- try(PlcConnection connection = new DefaultPlcDriverManager().getConnection("profinet:raw://192.168.24.41")) {
+ // WireShark filter: eth.addr == 88:3f:99:03:ef:b0
+ try(PlcConnection connection = new DefaultPlcDriverManager().getConnection("profinet:raw://192.168.54.23")) {
// Create and execute the subscription request.
PlcSubscriptionRequest subscriptionRequest = connection.subscriptionRequestBuilder()
.addCyclicTagAddress("inputs", "1.1.INPUT.0:BYTE[10]", Duration.ofMillis(400))
.addCyclicTagAddress("output", "1.1.OUTPUT.0:DWORD", Duration.ofMillis(400))
.build();
- PlcSubscriptionResponse subscriptionResponse = subscriptionRequest.execute().get(10000, TimeUnit.MILLISECONDS);
+ PlcSubscriptionResponse subscriptionResponse = subscriptionRequest.execute().get(100000, TimeUnit.MILLISECONDS);
System.out.println(subscriptionResponse);
}
}
diff --git a/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetDevice.java b/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetDevice.java
index b9eb095147..1b8e2ec5a5 100644
--- a/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetDevice.java
+++ b/plc4j/drivers/profinet/src/main/java/org/apache/plc4x/java/profinet/device/ProfinetDevice.java
@@ -215,8 +215,7 @@ public class ProfinetDevice implements PlcSubscriber {
recordIdAndSend(writeParameters, deviceContext.getSourcePort(), deviceContext.getDestinationPort());
writeParameters.getResponseHandled().get(timeout, TimeUnit.NANOSECONDS);
break;
- // Send a CONTROL packet
- // TODO: I assume this tells the PN device that we'll be the new "master"
+ // Send a CONTROL packet telling the device we're done configuring the connection.
case PREMED:
WriteParametersEnd writeParametersEnd = new WriteParametersEnd();
recordIdAndSend(writeParametersEnd, deviceContext.getSourcePort(), deviceContext.getDestinationPort());
diff --git a/plc4j/drivers/profinet/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest.java b/plc4j/drivers/profinet/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest.java
index 0836021331..26bc1982b8 100644
--- a/plc4j/drivers/profinet/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest.java
+++ b/plc4j/drivers/profinet/src/test/java/org/apache/plc4x/java/profinet/ManualProfinetIoTest.java
@@ -34,11 +34,13 @@ public class ManualProfinetIoTest {
private static final Logger LOGGER = LoggerFactory.getLogger(ManualProfinetIoTest.class);
public static void main(String[] args) throws Exception {
+ // eth.addr == 88:3f:99:03:ef:b0
+
// In this example 192.168.54.2 is the local IP of the computer running PLC4J and 192.168.54.23 is the IP of the PN device.
//final PlcConnection connection = new DefaultPlcDriverManager().getConnection("profinet://192.168.54.2?gsddirectory=~/.gsd&devices=[[simocodexbpn156e,DAP%201,(1,),192.168.54.23]]&reductionratio=16&sendclockfactor=32&dataholdfactor=3&watchdogfactor=3");
// REMARK: The driver would use the local network device with the given IP address and to an auto-discovery, trying to find any devices returned with the matching name.
// If this device is then found and an IP address is provided, it would use PN-DCP to set the IP address of that device to the given value.
- final PlcConnection connection = new DefaultPlcDriverManager().getConnection("profinet://192.168.24.220?gsddirectory=~/.gsd&devices=[[cdxb195b3,DAP%201,(1,)]]&reductionratio=16&sendclockfactor=32&dataholdfactor=3&watchdogfactor=3");
+ final PlcConnection connection = new DefaultPlcDriverManager().getConnection("profinet://192.168.54.220?gsddirectory=~/.gsd&devices=[[simocodexbpn156e,DAP%201,(1,)]]&reductionratio=16&sendclockfactor=32&dataholdfactor=3&watchdogfactor=3");
PlcBrowseRequest browseRequest = connection.browseRequestBuilder().addQuery("all", "*").build();
PlcBrowseResponse plcBrowseResponse = browseRequest.execute().get(4000, TimeUnit.MILLISECONDS);
(plc4x) 01/02: chore: Updated vendor ids
Posted by cd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit a8f029ed7ffe3ade45671acb40d5e78d070af303
Author: Christofer Dutz <cd...@apache.org>
AuthorDate: Sat Dec 23 10:23:10 2023 +0100
chore: Updated vendor ids
---
.../knxnetip/readwrite/model/KnxManufacturer.go | 26 +++++++++++++++++-----
.../java/knxnetip/readwrite/KnxManufacturer.java | 5 +++--
.../knxnetip/readwrite/model/KnxManufacturer.cs | 19 +++++++++++-----
.../protocols/knxnetip/knx-master-data.mspec | 5 +++--
4 files changed, 40 insertions(+), 15 deletions(-)
diff --git a/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go b/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
index 472d054619..6b453c9c37 100644
--- a/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
+++ b/plc4go/protocols/knxnetip/readwrite/model/KnxManufacturer.go
@@ -700,8 +700,9 @@ const (
KnxManufacturer_M_MICHOI KnxManufacturer = 654
KnxManufacturer_M_CAV_AUDIOGUANGZHOUCO__LTD KnxManufacturer = 655
KnxManufacturer_M_HELKAMA_BICA_OY KnxManufacturer = 656
- KnxManufacturer_M_ABB___RESERVED KnxManufacturer = 657
- KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED KnxManufacturer = 658
+ KnxManufacturer_M_MODULYTE KnxManufacturer = 657
+ KnxManufacturer_M_ABB___RESERVED KnxManufacturer = 658
+ KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED KnxManufacturer = 659
)
var KnxManufacturerValues []KnxManufacturer
@@ -1366,6 +1367,7 @@ func init() {
KnxManufacturer_M_MICHOI,
KnxManufacturer_M_CAV_AUDIOGUANGZHOUCO__LTD,
KnxManufacturer_M_HELKAMA_BICA_OY,
+ KnxManufacturer_M_MODULYTE,
KnxManufacturer_M_ABB___RESERVED,
KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED,
}
@@ -3855,10 +3857,14 @@ func (e KnxManufacturer) Number() uint16 {
}
case 657:
{ /* '657' */
- return 43954
+ return 715
}
case 658:
{ /* '658' */
+ return 43954
+ }
+ case 659:
+ { /* '659' */
return 43959
}
case 66:
@@ -6509,10 +6515,14 @@ func (e KnxManufacturer) Name() string {
}
case 657:
{ /* '657' */
- return "ABB - reserved"
+ return "ModuLyte"
}
case 658:
{ /* '658' */
+ return "ABB - reserved"
+ }
+ case 659:
+ { /* '659' */
return "Busch-Jaeger Elektro - reserved"
}
case 66:
@@ -7921,8 +7931,10 @@ func KnxManufacturerByValue(value uint16) (enum KnxManufacturer, ok bool) {
case 656:
return KnxManufacturer_M_HELKAMA_BICA_OY, true
case 657:
- return KnxManufacturer_M_ABB___RESERVED, true
+ return KnxManufacturer_M_MODULYTE, true
case 658:
+ return KnxManufacturer_M_ABB___RESERVED, true
+ case 659:
return KnxManufacturer_M_BUSCH_JAEGER_ELEKTRO___RESERVED, true
case 66:
return KnxManufacturer_M_RTS_AUTOMATION, true
@@ -9244,6 +9256,8 @@ func KnxManufacturerByName(value string) (enum KnxManufacturer, ok bool) {
return KnxManufacturer_M_CAV_AUDIOGUANGZHOUCO__LTD, true
case "M_HELKAMA_BICA_OY":
return KnxManufacturer_M_HELKAMA_BICA_OY, true
+ case "M_MODULYTE":
+ return KnxManufacturer_M_MODULYTE, true
case "M_ABB___RESERVED":
return KnxManufacturer_M_ABB___RESERVED, true
case "M_BUSCH_JAEGER_ELEKTRO___RESERVED":
@@ -10629,6 +10643,8 @@ func (e KnxManufacturer) PLC4XEnumName() string {
return "M_CAV_AUDIOGUANGZHOUCO__LTD"
case KnxManufacturer_M_HELKAMA_BICA_OY:
return "M_HELKAMA_BICA_OY"
+ case KnxManufacturer_M_MODULYTE:
+ return "M_MODULYTE"
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 b3d922fdd0..875557c16a 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
@@ -754,9 +754,10 @@ public enum KnxManufacturer {
M_MICHOI((int) 654, (int) 712, (String) "Michoi"),
M_CAV_AUDIOGUANGZHOUCO__LTD((int) 655, (int) 713, (String) "CAV AUDIO(GUANGZHOU)CO.,LTD"),
M_HELKAMA_BICA_OY((int) 656, (int) 714, (String) "Helkama Bica Oy"),
- M_ABB___RESERVED((int) 657, (int) 43954, (String) "ABB - reserved"),
+ M_MODULYTE((int) 657, (int) 715, (String) "ModuLyte"),
+ M_ABB___RESERVED((int) 658, (int) 43954, (String) "ABB - reserved"),
M_BUSCH_JAEGER_ELEKTRO___RESERVED(
- (int) 658, (int) 43959, (String) "Busch-Jaeger Elektro - reserved");
+ (int) 659, (int) 43959, (String) "Busch-Jaeger Elektro - reserved");
private static final Map<Integer, KnxManufacturer> map;
static {
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 e089009bbe..698c63fe19 100644
--- a/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxManufacturer.cs
+++ b/plc4net/drivers/knxnetip/src/drivers/knxnetip/readwrite/model/KnxManufacturer.cs
@@ -681,8 +681,9 @@ namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
M_MICHOI = 654,
M_CAV_AUDIOGUANGZHOUCO__LTD = 655,
M_HELKAMA_BICA_OY = 656,
- M_ABB___RESERVED = 657,
- M_BUSCH_JAEGER_ELEKTRO___RESERVED = 658,
+ M_MODULYTE = 657,
+ M_ABB___RESERVED = 658,
+ M_BUSCH_JAEGER_ELEKTRO___RESERVED = 659,
}
public static class KnxManufacturerInfo
@@ -2552,10 +2553,13 @@ namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
case KnxManufacturer.M_HELKAMA_BICA_OY: { /* '656' */
return 714;
}
- case KnxManufacturer.M_ABB___RESERVED: { /* '657' */
+ case KnxManufacturer.M_MODULYTE: { /* '657' */
+ return 715;
+ }
+ case KnxManufacturer.M_ABB___RESERVED: { /* '658' */
return 43954;
}
- case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '658' */
+ case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '659' */
return 43959;
}
case KnxManufacturer.M_RTS_AUTOMATION: { /* '66' */
@@ -4539,10 +4543,13 @@ namespace org.apache.plc4net.drivers.knxnetip.readwrite.model
case KnxManufacturer.M_HELKAMA_BICA_OY: { /* '656' */
return "Helkama Bica Oy";
}
- case KnxManufacturer.M_ABB___RESERVED: { /* '657' */
+ case KnxManufacturer.M_MODULYTE: { /* '657' */
+ return "ModuLyte";
+ }
+ case KnxManufacturer.M_ABB___RESERVED: { /* '658' */
return "ABB - reserved";
}
- case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '658' */
+ case KnxManufacturer.M_BUSCH_JAEGER_ELEKTRO___RESERVED: { /* '659' */
return "Busch-Jaeger Elektro - reserved";
}
case KnxManufacturer.M_RTS_AUTOMATION: { /* '66' */
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 8668e99788..a162508f1f 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
@@ -1405,8 +1405,9 @@
['654' M_MICHOI ['712', '"Michoi"']]
['655' M_CAV_AUDIOGUANGZHOUCO__LTD ['713', '"CAV AUDIO(GUANGZHOU)CO.,LTD"']]
['656' M_HELKAMA_BICA_OY ['714', '"Helkama Bica Oy"']]
- ['657' M_ABB___RESERVED ['43954', '"ABB - reserved"']]
- ['658' M_BUSCH_JAEGER_ELEKTRO___RESERVED ['43959', '"Busch-Jaeger Elektro - reserved"']]
+ ['657' M_MODULYTE ['715', '"ModuLyte"']]
+ ['658' M_ABB___RESERVED ['43954', '"ABB - reserved"']]
+ ['659' M_BUSCH_JAEGER_ELEKTRO___RESERVED ['43959', '"Busch-Jaeger Elektro - reserved"']]
]