Skip to content

Commit

Permalink
feat: Added device-group options for local, remote and remote2 to the…
Browse files Browse the repository at this point in the history
… S7 config.
  • Loading branch information
chrisdutz committed Apr 19, 2024
1 parent 7800fd1 commit 8163b9e
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,13 @@
*/
package org.apache.plc4x.java.s7.readwrite.configuration;

import org.apache.plc4x.java.s7.readwrite.DeviceGroup;
import org.apache.plc4x.java.spi.configuration.PlcConnectionConfiguration;
import org.apache.plc4x.java.spi.configuration.annotations.ConfigurationParameter;
import org.apache.plc4x.java.spi.configuration.annotations.Description;
import org.apache.plc4x.java.spi.configuration.annotations.defaults.BooleanDefaultValue;
import org.apache.plc4x.java.spi.configuration.annotations.defaults.IntDefaultValue;
import org.apache.plc4x.java.spi.configuration.annotations.defaults.StringDefaultValue;

public class S7Configuration implements PlcConnectionConfiguration {

Expand All @@ -36,9 +38,14 @@ public class S7Configuration implements PlcConnectionConfiguration {
@Description("Slot value for the client (PLC4X device).")
public int localSlot = 1;

@ConfigurationParameter("local-device-group")
@StringDefaultValue("OTHERS")
@Description("Local Device Group. (Defaults to 'OTHERS').\nAllowed values:\n - PG_OR_PC\n - OS\n - OTHERS")
public DeviceGroup localDeviceGroup;

@ConfigurationParameter("local-tsap")
@IntDefaultValue(0)
@Description("Local Transport Service Access Point.")
@Description("Local Transport Service Access Point. (Overrides settings made in local-rack, local-slot and local-device-group. Be sure to convert into integer representation)")
public int localTsap = 0;

@ConfigurationParameter("remote-rack")
Expand All @@ -51,6 +58,16 @@ public class S7Configuration implements PlcConnectionConfiguration {
@Description("Slot value for the remote main CPU (PLC).")
public int remoteSlot = 0;

@ConfigurationParameter("remote-device-group")
@StringDefaultValue("PG_OR_PC")
@Description("Remote Device Group (Defaults to 'PG_OR_PC').\nAllowed values:\n - PG_OR_PC\n - OS\n - OTHERS")
public DeviceGroup remoteDeviceGroup;

@ConfigurationParameter("remote-tsap")
@IntDefaultValue(0)
@Description("Remote Transport Service Access Point. (Overrides settings made in remote-rack, remote-slot and remote-device-group. Be sure to convert into integer representation)")
public int remoteTsap = 0;

@ConfigurationParameter("remote-rack2")
@IntDefaultValue(0)
@Description("Rack value for the remote secondary CPU (PLC).")
Expand All @@ -61,10 +78,10 @@ public class S7Configuration implements PlcConnectionConfiguration {
@Description("Slot value for the remote secondary CPU (PLC).")
public int remoteSlot2 = 0;

@ConfigurationParameter("remote-tsap")
@IntDefaultValue(0)
@Description("Remote Transport Service Access Point.")
public int remoteTsap = 0;
@ConfigurationParameter("remote-device-group2")
@StringDefaultValue("PG_OR_PC")
@Description("Remote Device Group. (Defaults to 'PG_OR_PC').\nAllowed values:\n - PG_OR_PC\n - OS\n - OTHERS")
public DeviceGroup remoteDeviceGroup2;

@ConfigurationParameter("pdu-size")
@IntDefaultValue(1024)
Expand Down Expand Up @@ -121,6 +138,14 @@ public void setLocalSlot(int localSlot) {
this.localSlot = localSlot;
}

public DeviceGroup getLocalDeviceGroup() {
return localDeviceGroup;
}

public void setLocalDeviceGroup(DeviceGroup localDeviceGroup) {
this.localDeviceGroup = localDeviceGroup;
}

public int getLocalTsap() {
return localTsap;
}
Expand All @@ -145,6 +170,14 @@ public void setRemoteSlot(int remoteSlot) {
this.remoteSlot = remoteSlot;
}

public DeviceGroup getRemoteDeviceGroup() {
return remoteDeviceGroup;
}

public void setRemoteDeviceGroup(DeviceGroup remoteDeviceGroup) {
this.remoteDeviceGroup = remoteDeviceGroup;
}

public int getRemoteRack2() {
return remoteRack2;
}
Expand All @@ -153,6 +186,14 @@ public void setRemoteRack2(int remoteRack2) {
this.remoteRack2 = remoteRack2;
}

public DeviceGroup getRemoteDeviceGroup2() {
return remoteDeviceGroup2;
}

public void setRemoteDeviceGroup2(DeviceGroup remoteDeviceGroup2) {
this.remoteDeviceGroup2 = remoteDeviceGroup2;
}

public int getRemoteSlot2() {
return remoteSlot2;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,14 @@ public class S7DriverContext implements DriverContext, HasConfiguration<S7Config

@Override
public void setConfiguration(S7Configuration configuration) {
this.callingTsapId = S7TsapIdEncoder.encodeS7TsapId(DeviceGroup.OTHERS,
this.callingTsapId = S7TsapIdEncoder.encodeS7TsapId(configuration.localDeviceGroup,
configuration.localRack, configuration.localSlot);
this.calledTsapId = S7TsapIdEncoder.encodeS7TsapId(DeviceGroup.PG_OR_PC,
this.calledTsapId = S7TsapIdEncoder.encodeS7TsapId(configuration.remoteDeviceGroup,
configuration.remoteRack, configuration.remoteSlot);

this.calledTsapId2 = S7TsapIdEncoder.encodeS7TsapId(DeviceGroup.PG_OR_PC,
this.calledTsapId2 = S7TsapIdEncoder.encodeS7TsapId(configuration.remoteDeviceGroup2,
configuration.remoteRack2, configuration.remoteSlot2);


if (configuration.localTsap > 0) {
this.callingTsapId = configuration.localTsap;
}
Expand Down

0 comments on commit 8163b9e

Please sign in to comment.