You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2021/03/30 08:03:39 UTC
[plc4x] branch develop updated: plc4go: work on ads driver + fixes
on model-template.ftlh to enable complex types + fixes on
enum-template.ftlh to allow usage of constants + DriverTestRunner.go now
properly appends options + fixed possible deadlock in modbus driver + fixed
possible deadlock in knx driver
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new 92432a7 plc4go: work on ads driver + fixes on model-template.ftlh to enable complex types + fixes on enum-template.ftlh to allow usage of constants + DriverTestRunner.go now properly appends options + fixed possible deadlock in modbus driver + fixed possible deadlock in knx driver
92432a7 is described below
commit 92432a705702acb6a96bc7bc7d0e8572898a8617
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Tue Mar 30 10:03:25 2021 +0200
plc4go: work on ads driver
+ fixes on model-template.ftlh to enable complex types
+ fixes on enum-template.ftlh to allow usage of constants
+ DriverTestRunner.go now properly appends options
+ fixed possible deadlock in modbus driver
+ fixed possible deadlock in knx driver
---
.../main/resources/templates/go/enum-template.ftlh | 21 ++++
.../resources/templates/go/model-template.ftlh | 6 +-
plc4go/go.mod | 2 +-
plc4go/go.sum | 9 ++
plc4go/internal/plc4go/ads/Connection.go | 112 ++++++++++++++++++++-
plc4go/internal/plc4go/ads/Driver.go | 13 ++-
plc4go/internal/plc4go/ads/Reader.go | 47 ++++-----
plc4go/internal/plc4go/ads/Writer.go | 49 ++++-----
.../plc4go/ads/readwrite/model/AdsDataType.go | 21 ++++
.../plc4go/ads/readwrite/model/AmsPacket.go | 18 ++--
.../plc4go/ads/readwrite/model/AmsSerialFrame.go | 6 +-
.../plc4go/ads/readwrite/model/AmsTCPPacket.go | 6 +-
.../plc4go/ads/readwrite/model/CommandId.go | 21 ++++
.../ads/readwrite/model/ReservedIndexGroups.go | 21 ++++
.../plc4go/ads/readwrite/model/ReturnCode.go | 21 ++++
.../bacnetip/readwrite/model/APDUComplexAck.go | 12 +--
.../readwrite/model/APDUConfirmedRequest.go | 12 +--
.../bacnetip/readwrite/model/ApplicationTag.go | 21 ++++
.../bacnetip/readwrite/model/BACnetNetworkType.go | 21 ++++
.../bacnetip/readwrite/model/BACnetNodeType.go | 21 ++++
.../bacnetip/readwrite/model/BACnetNotifyType.go | 21 ++++
.../bacnetip/readwrite/model/BACnetObjectType.go | 21 ++++
.../plc4go/bacnetip/readwrite/model/BACnetTag.go | 12 +--
.../readwrite/model/BACnetTagWithContent.go | 12 +--
.../bacnetip/readwrite/model/BVLCForwardedNPDU.go | 6 +-
.../readwrite/model/BVLCOriginalBroadcastNPDU.go | 6 +-
.../readwrite/model/BVLCOriginalUnicastNPDU.go | 6 +-
.../plc4go/bacnetip/readwrite/model/NLM.go | 6 +-
.../plc4go/bacnetip/readwrite/model/NPDU.go | 30 +++---
plc4go/internal/plc4go/knxnetip/Driver.go | 10 +-
.../plc4go/knxnetip/readwrite/model/AccessLevel.go | 21 ++++
.../CEMIAdditionalInformationRelativeTimestamp.go | 6 +-
.../knxnetip/readwrite/model/CEMIPriority.go | 21 ++++
.../readwrite/model/ComObjectTableAddresses.go | 21 ++++
.../model/ComObjectTableRealisationType6.go | 6 +-
.../knxnetip/readwrite/model/ComObjectValueType.go | 21 ++++
.../knxnetip/readwrite/model/ConnectionRequest.go | 12 +--
.../knxnetip/readwrite/model/ConnectionResponse.go | 6 +-
.../ConnectionResponseDataBlockTunnelConnection.go | 6 +-
.../readwrite/model/ConnectionStateRequest.go | 6 +-
.../knxnetip/readwrite/model/DIBDeviceInfo.go | 30 +++---
.../knxnetip/readwrite/model/DescriptionRequest.go | 6 +-
.../readwrite/model/DescriptionResponse.go | 12 +--
.../readwrite/model/DeviceConfigurationAck.go | 6 +-
.../readwrite/model/DeviceConfigurationRequest.go | 6 +-
.../knxnetip/readwrite/model/DeviceDescriptor.go | 21 ++++
.../readwrite/model/DeviceDescriptorMediumType.go | 21 ++++
.../readwrite/model/DeviceDescriptorType2.go | 24 ++---
.../knxnetip/readwrite/model/DisconnectRequest.go | 6 +-
.../knxnetip/readwrite/model/FirmwareType.go | 21 ++++
.../readwrite/model/HPAIControlEndpoint.go | 6 +-
.../knxnetip/readwrite/model/HPAIDataEndpoint.go | 6 +-
.../readwrite/model/HPAIDiscoveryEndpoint.go | 6 +-
.../knxnetip/readwrite/model/HostProtocolCode.go | 21 ++++
.../readwrite/model/KnxDatapointMainType.go | 21 ++++
.../knxnetip/readwrite/model/KnxDatapointType.go | 21 ++++
.../readwrite/model/KnxInterfaceObjectProperty.go | 21 ++++
.../readwrite/model/KnxInterfaceObjectType.go | 21 ++++
.../plc4go/knxnetip/readwrite/model/KnxLayer.go | 21 ++++
.../knxnetip/readwrite/model/KnxManufacturer.go | 21 ++++
.../plc4go/knxnetip/readwrite/model/KnxMedium.go | 21 ++++
.../readwrite/model/KnxPropertyDataType.go | 21 ++++
.../plc4go/knxnetip/readwrite/model/LBusmonInd.go | 6 +-
.../knxnetip/readwrite/model/LDataExtended.go | 6 +-
.../plc4go/knxnetip/readwrite/model/LPollData.go | 6 +-
.../knxnetip/readwrite/model/SearchRequest.go | 6 +-
.../knxnetip/readwrite/model/SearchResponse.go | 18 ++--
.../plc4go/knxnetip/readwrite/model/Status.go | 21 ++++
.../readwrite/model/SupportedPhysicalMedia.go | 21 ++++
.../knxnetip/readwrite/model/TunnelingRequest.go | 6 +-
.../knxnetip/readwrite/model/TunnelingResponse.go | 6 +-
plc4go/internal/plc4go/modbus/Driver.go | 8 +-
.../modbus/readwrite/model/ModbusDataType.go | 21 ++++
.../modbus/readwrite/model/ModbusErrorCode.go | 21 ++++
.../plc4go/s7/readwrite/model/COTPProtocolClass.go | 21 ++++
.../plc4go/s7/readwrite/model/COTPTpduSize.go | 21 ++++
.../s7/readwrite/model/DataTransportErrorCode.go | 21 ++++
.../plc4go/s7/readwrite/model/DataTransportSize.go | 21 ++++
.../plc4go/s7/readwrite/model/DeviceGroup.go | 21 ++++
.../plc4go/s7/readwrite/model/MemoryArea.go | 21 ++++
.../model/S7ParameterUserDataItemCPUFunctions.go | 18 ++--
.../s7/readwrite/model/S7PayloadUserDataItem.go | 6 +-
.../s7/readwrite/model/SzlModuleTypeClass.go | 21 ++++
.../plc4go/s7/readwrite/model/SzlSublist.go | 21 ++++
.../plc4go/s7/readwrite/model/TransportSize.go | 21 ++++
.../plc4go/spi/testutils/DriverTestRunner.go | 11 +-
86 files changed, 1195 insertions(+), 251 deletions(-)
diff --git a/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh b/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh
index 71df811..2bfdb5a 100644
--- a/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/enum-template.ftlh
@@ -48,7 +48,9 @@ ${helper.fileName(protocolName, languageName, outputFlavor)?replace(".", "/")}/m
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -149,6 +151,25 @@ func (e ${type.name}) Serialize(io utils.WriteBuffer) error {
</#if>
</#if>
+func (m *${type.name}) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = ${type.name}ByName(string(tok))
+ }
+ }
+}
+
func (e ${type.name}) String() string {
switch e {
<#list helper.getUniqueEnumValues(type.enumValues) as enumValue>
diff --git a/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh b/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
index 5bb865e..7e6928a 100644
--- a/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
+++ b/build-utils/language-go/src/main/resources/templates/go/model-template.ftlh
@@ -935,11 +935,11 @@ func (m *${type.name}) UnmarshalXML(d *xml.Decoder, start xml.StartElement) erro
}
m.${field.name?cap_first} = data
<#elseif helper.needsPointerAccess(field)>
- var data *${helper.getLanguageTypeNameForField(field)}
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data ${helper.getLanguageTypeNameForField(field)}
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.${field.name?cap_first} = data
+ m.${field.name?cap_first} = &data
<#else>
var data ${helper.getLanguageTypeNameForField(field)}
if err := d.DecodeElement(&data, &tok); err != nil {
diff --git a/plc4go/go.mod b/plc4go/go.mod
index 285b6cc..443e834 100644
--- a/plc4go/go.mod
+++ b/plc4go/go.mod
@@ -29,5 +29,5 @@ require (
github.com/subchen/go-xmldom v1.1.2
github.com/tebeka/go2xunit v1.4.10 // indirect
golang.org/x/tools v0.1.0 // indirect
- gotest.tools/gotestsum v1.6.2 // indirect
+ gotest.tools/gotestsum v1.6.3 // indirect
)
diff --git a/plc4go/go.sum b/plc4go/go.sum
index 5788901..36a5f8c 100644
--- a/plc4go/go.sum
+++ b/plc4go/go.sum
@@ -9,10 +9,13 @@ github.com/elastic/go-licenser v0.3.1 h1:RmRukU/JUmts+rpexAw0Fvt2ly7VVu6mw8z4HrE
github.com/elastic/go-licenser v0.3.1/go.mod h1:D8eNQk70FOCVBl3smCGQt/lv7meBeQno2eI1S5apiHQ=
github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
+github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg=
+github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM=
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
+github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
github.com/icza/bitio v1.0.0 h1:squ/m1SHyFeCA6+6Gyol1AxV9nmPPlJFT8c2vKdj3U8=
@@ -21,9 +24,13 @@ github.com/icza/mighty v0.0.0-20180919140131-cfd07d671de6 h1:8UsGZ2rr2ksmEru6lTo
github.com/icza/mighty v0.0.0-20180919140131-cfd07d671de6/go.mod h1:xQig96I1VNBDIWGCdTt54nHt6EeI639SmHycLYL7FkA=
github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
+github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ=
+github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8=
github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
github.com/mattn/go-colorable v0.1.6 h1:6Su7aK7lXmJ/U79bYtBjLNaha4Fs1Rg9plHpcH+vvnE=
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
+github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8=
+github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE=
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
@@ -85,4 +92,6 @@ gotest.tools v1.4.0 h1:BjtEgfuw8Qyd+jPvQz8CfoxiO/UjFEidWinwEXZiWv0=
gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo=
gotest.tools/gotestsum v1.6.2 h1:QRO7xoLEUQOdSzBzUaasXvn6WOSQjf2hBIBDWEs3VqI=
gotest.tools/gotestsum v1.6.2/go.mod h1:H74H1IvjJE+E/1INpsn2P4+QW0uLDgL/T2sVajPHmTM=
+gotest.tools/gotestsum v1.6.3 h1:E3wOF4wmxKA19BB5wTY7t0L1m+QNARtDcBX4yqG6DEc=
+gotest.tools/gotestsum v1.6.3/go.mod h1:fTR9ZhxC/TLAAx2/WMk/m3TkMB9eEI89gdEzhiRVJT8=
gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8=
diff --git a/plc4go/internal/plc4go/ads/Connection.go b/plc4go/internal/plc4go/ads/Connection.go
index 4ffefcc..6d3e4d5 100644
--- a/plc4go/internal/plc4go/ads/Connection.go
+++ b/plc4go/internal/plc4go/ads/Connection.go
@@ -20,13 +20,17 @@ package ads
import (
"fmt"
+ readWriteModel "github.com/apache/plc4x/plc4go/internal/plc4go/ads/readwrite/model"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/interceptors"
internalModel "github.com/apache/plc4x/plc4go/internal/plc4go/spi/model"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/transports"
"github.com/apache/plc4x/plc4go/pkg/plc4go"
apiModel "github.com/apache/plc4x/plc4go/pkg/plc4go/model"
+ "github.com/pkg/errors"
"github.com/rs/zerolog/log"
+ "strconv"
+ "strings"
"time"
)
@@ -60,16 +64,116 @@ type Connection struct {
fieldHandler spi.PlcFieldHandler
valueHandler spi.PlcValueHandler
requestInterceptor internalModel.RequestInterceptor
+ // TODO: check if this is the right place here (it is kinda connection bound)
+ sourceAmsNetId readWriteModel.AmsNetId
+ sourceAmsPort uint16
+ targetAmsNetId readWriteModel.AmsNetId
+ targetAmsPort uint16
}
-func NewConnection(messageCodec spi.MessageCodec, options map[string][]string, fieldHandler spi.PlcFieldHandler) Connection {
- return Connection{
+func NewConnection(messageCodec spi.MessageCodec, options map[string][]string, fieldHandler spi.PlcFieldHandler) (*Connection, error) {
+ if err := checkForRequiredParameters(options, []string{"sourceAmsNetId", "sourceAmsPort", "targetAmsNetId", "targetAmsPort"}); err != nil {
+ return nil, err
+ }
+ // TODO: check array
+ split := strings.Split(options["sourceAmsNetId"][0], ".")
+ octet1, err := strconv.Atoi(split[0])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing sourceAmsNetId")
+ }
+ octet2, err := strconv.Atoi(split[1])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing sourceAmsNetId")
+ }
+ octet3, err := strconv.Atoi(split[2])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing sourceAmsNetId")
+ }
+ octet4, err := strconv.Atoi(split[3])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing sourceAmsNetId")
+ }
+ octet5, err := strconv.Atoi(split[4])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing sourceAmsNetId")
+ }
+ octet6, err := strconv.Atoi(split[5])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing sourceAmsNetId")
+ }
+ sourceAmsNetId := readWriteModel.AmsNetId{
+ Octet1: uint8(octet1),
+ Octet2: uint8(octet2),
+ Octet3: uint8(octet3),
+ Octet4: uint8(octet4),
+ Octet5: uint8(octet5),
+ Octet6: uint8(octet6),
+ }
+ // TODO: check array
+ sourceAmsPort, err := strconv.Atoi(options["sourceAmsPort"][0])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing sourceAmsPort")
+ }
+ // TODO: check array
+ split = strings.Split(options["targetAmsNetId"][0], ".")
+ octet1, err = strconv.Atoi(split[0])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing targetAmsNetId")
+ }
+ octet2, err = strconv.Atoi(split[1])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing targetAmsNetId")
+ }
+ octet3, err = strconv.Atoi(split[2])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing targetAmsNetId")
+ }
+ octet4, err = strconv.Atoi(split[3])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing targetAmsNetId")
+ }
+ octet5, err = strconv.Atoi(split[4])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing targetAmsNetId")
+ }
+ octet6, err = strconv.Atoi(split[5])
+ if err != nil {
+ return nil, errors.Wrap(err, "error parsing targetAmsNetId")
+ }
+ targetAmsNetId := readWriteModel.AmsNetId{
+ Octet1: uint8(octet1),
+ Octet2: uint8(octet2),
+ Octet3: uint8(octet3),
+ Octet4: uint8(octet4),
+ Octet5: uint8(octet5),
+ Octet6: uint8(octet6),
+ }
+ // TODO: check array
+ targetAmsPort, err := strconv.Atoi(options["targetAmsPort"][0])
+ if err != nil {
+ return nil, errors.Wrap(err, "error prasing targetAmsPort")
+ }
+ return &Connection{
messageCodec: messageCodec,
options: options,
fieldHandler: fieldHandler,
valueHandler: NewValueHandler(),
requestInterceptor: interceptors.NewSingleItemRequestInterceptor(),
+ sourceAmsNetId: sourceAmsNetId,
+ sourceAmsPort: uint16(sourceAmsPort),
+ targetAmsNetId: targetAmsNetId,
+ targetAmsPort: uint16(targetAmsPort),
+ }, nil
+}
+
+// TODO: move to a common utils place
+func checkForRequiredParameters(options map[string][]string, requiredParameters []string) error {
+ for _, parameter := range requiredParameters {
+ if options[parameter] == nil {
+ return errors.Errorf("required parameter %s missing", parameter)
+ }
}
+ return nil
}
func (m Connection) Connect() <-chan plc4go.PlcConnectionConnectResult {
@@ -117,12 +221,12 @@ func (m Connection) GetMetadata() apiModel.PlcConnectionMetadata {
func (m Connection) ReadRequestBuilder() apiModel.PlcReadRequestBuilder {
return internalModel.NewDefaultPlcReadRequestBuilderWithInterceptor(m.fieldHandler,
- NewReader(m.messageCodec), m.requestInterceptor)
+ NewReader(m.messageCodec, m.targetAmsNetId, m.targetAmsPort, m.sourceAmsNetId, m.sourceAmsPort), m.requestInterceptor)
}
func (m Connection) WriteRequestBuilder() apiModel.PlcWriteRequestBuilder {
return internalModel.NewDefaultPlcWriteRequestBuilder(
- m.fieldHandler, m.valueHandler, NewWriter(m.messageCodec))
+ m.fieldHandler, m.valueHandler, NewWriter(m.messageCodec, m.targetAmsNetId, m.targetAmsPort, m.sourceAmsNetId, m.sourceAmsPort))
}
func (m Connection) SubscriptionRequestBuilder() apiModel.PlcSubscriptionRequestBuilder {
diff --git a/plc4go/internal/plc4go/ads/Driver.go b/plc4go/internal/plc4go/ads/Driver.go
index b13bdb4..7cadb1f 100644
--- a/plc4go/internal/plc4go/ads/Driver.go
+++ b/plc4go/internal/plc4go/ads/Driver.go
@@ -61,7 +61,9 @@ func (m Driver) GetConnection(transportUrl url.URL, transports map[string]transp
if !ok {
log.Error().Stringer("transportUrl", &transportUrl).Msgf("We couldn't find a transport for scheme %s", transportUrl.Scheme)
ch := make(chan plc4go.PlcConnectionConnectResult)
- ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.Errorf("couldn't find transport for given transport url %#v", transportUrl))
+ go func() {
+ ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.Errorf("couldn't find transport for given transport url %#v", transportUrl))
+ }()
return ch
}
// Provide a default-port to the transport, which is used, if the user doesn't provide on in the connection string.
@@ -80,7 +82,14 @@ func (m Driver) GetConnection(transportUrl url.URL, transports map[string]transp
log.Debug().Msgf("working with codec %#v", codec)
// Create the new connection
- connection := NewConnection(codec, options, m.fieldHandler)
+ connection, err := NewConnection(codec, options, m.fieldHandler)
+ if err != nil {
+ ch := make(chan plc4go.PlcConnectionConnectResult)
+ go func() {
+ ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.Wrap(err, "couldn't create connection"))
+ }()
+ return ch
+ }
log.Info().Stringer("connection", connection).Msg("created connection, connecting now")
return connection.Connect()
}
diff --git a/plc4go/internal/plc4go/ads/Reader.go b/plc4go/internal/plc4go/ads/Reader.go
index 904a933..a3d0dea 100644
--- a/plc4go/internal/plc4go/ads/Reader.go
+++ b/plc4go/internal/plc4go/ads/Reader.go
@@ -34,12 +34,20 @@ import (
type Reader struct {
transactionIdentifier uint32
+ targetAmsNetId readWriteModel.AmsNetId
+ targetAmsPort uint16
+ sourceAmsNetId readWriteModel.AmsNetId
+ sourceAmsPort uint16
messageCodec spi.MessageCodec
}
-func NewReader(messageCodec spi.MessageCodec) *Reader {
+func NewReader(messageCodec spi.MessageCodec, targetAmsNetId readWriteModel.AmsNetId, targetAmsPort uint16, sourceAmsNetId readWriteModel.AmsNetId, sourceAmsPort uint16) *Reader {
return &Reader{
transactionIdentifier: 0,
+ targetAmsNetId: targetAmsNetId,
+ targetAmsPort: targetAmsPort,
+ sourceAmsNetId: sourceAmsNetId,
+ sourceAmsPort: sourceAmsPort,
messageCodec: messageCodec,
}
}
@@ -70,31 +78,16 @@ func (m *Reader) Read(readRequest model.PlcReadRequest) <-chan model.PlcReadRequ
log.Debug().Msgf("Invalid field item type %T", field)
return
}
- // TODO: move TargetAmsNetId, TargetAmsPort, SourceAmsNetId, SourceAmsPort to Connection
userdata := readWriteModel.AmsPacket{
- TargetAmsNetId: &readWriteModel.AmsNetId{
- Octet1: 0,
- Octet2: 0,
- Octet3: 0,
- Octet4: 0,
- Octet5: 0,
- Octet6: 0,
- },
- TargetAmsPort: 0,
- SourceAmsNetId: &readWriteModel.AmsNetId{
- Octet1: 0,
- Octet2: 0,
- Octet3: 0,
- Octet4: 0,
- Octet5: 0,
- Octet6: 0,
- },
- SourceAmsPort: 0,
- CommandId: readWriteModel.CommandId_ADS_READ,
- State: readWriteModel.NewState(false, false, false, false, false, true, false, false, false),
- ErrorCode: 0,
- InvokeId: 0,
- Data: nil,
+ TargetAmsNetId: &m.targetAmsNetId,
+ TargetAmsPort: m.targetAmsPort,
+ SourceAmsNetId: &m.sourceAmsNetId,
+ SourceAmsPort: m.sourceAmsPort,
+ CommandId: readWriteModel.CommandId_ADS_READ,
+ State: readWriteModel.NewState(false, false, false, false, false, true, false, false, false),
+ ErrorCode: 0,
+ InvokeId: 0,
+ Data: nil,
}
switch adsField.FieldType {
case StringField:
@@ -141,8 +134,8 @@ func (m *Reader) Read(readRequest model.PlcReadRequest) <-chan model.PlcReadRequ
return paket.Userdata.InvokeId == transactionIdentifier
},
func(message interface{}) error {
- // Convert the response into an ADU
- log.Trace().Msg("convert response to ADU")
+ // Convert the response into an amsTcpPaket
+ log.Trace().Msg("convert response to amsTcpPaket")
amsTcpPaket := readWriteModel.CastAmsTCPPacket(message)
// Convert the ads response into a PLC4X response
log.Trace().Msg("convert response to PLC4X response")
diff --git a/plc4go/internal/plc4go/ads/Writer.go b/plc4go/internal/plc4go/ads/Writer.go
index 1228370..117a392 100644
--- a/plc4go/internal/plc4go/ads/Writer.go
+++ b/plc4go/internal/plc4go/ads/Writer.go
@@ -33,12 +33,20 @@ import (
type Writer struct {
transactionIdentifier uint32
+ targetAmsNetId readWriteModel.AmsNetId
+ targetAmsPort uint16
+ sourceAmsNetId readWriteModel.AmsNetId
+ sourceAmsPort uint16
messageCodec spi.MessageCodec
}
-func NewWriter(messageCodec spi.MessageCodec) Writer {
+func NewWriter(messageCodec spi.MessageCodec, targetAmsNetId readWriteModel.AmsNetId, targetAmsPort uint16, sourceAmsNetId readWriteModel.AmsNetId, sourceAmsPort uint16) Writer {
return Writer{
transactionIdentifier: 0,
+ targetAmsNetId: targetAmsNetId,
+ targetAmsPort: targetAmsPort,
+ sourceAmsNetId: sourceAmsNetId,
+ sourceAmsPort: sourceAmsPort,
messageCodec: messageCodec,
}
}
@@ -82,31 +90,16 @@ func (m Writer) Write(writeRequest model.PlcWriteRequest) <-chan model.PlcWriteR
}
data := utils.Uint8ArrayToInt8Array(io.GetBytes())
- // TODO: move TargetAmsNetId, TargetAmsPort, SourceAmsNetId, SourceAmsPort to Connection
userdata := readWriteModel.AmsPacket{
- TargetAmsNetId: &readWriteModel.AmsNetId{
- Octet1: 0,
- Octet2: 0,
- Octet3: 0,
- Octet4: 0,
- Octet5: 0,
- Octet6: 0,
- },
- TargetAmsPort: 0,
- SourceAmsNetId: &readWriteModel.AmsNetId{
- Octet1: 0,
- Octet2: 0,
- Octet3: 0,
- Octet4: 0,
- Octet5: 0,
- Octet6: 0,
- },
- SourceAmsPort: 0,
- CommandId: readWriteModel.CommandId_ADS_READ,
- State: readWriteModel.NewState(false, false, false, false, false, true, false, false, false),
- ErrorCode: 0,
- InvokeId: 0,
- Data: nil,
+ TargetAmsNetId: &m.targetAmsNetId,
+ TargetAmsPort: m.targetAmsPort,
+ SourceAmsNetId: &m.sourceAmsNetId,
+ SourceAmsPort: m.sourceAmsPort,
+ CommandId: readWriteModel.CommandId_ADS_READ,
+ State: readWriteModel.NewState(false, false, false, false, false, true, false, false, false),
+ ErrorCode: 0,
+ InvokeId: 0,
+ Data: nil,
}
switch adsField.FieldType {
case StringField:
@@ -136,8 +129,8 @@ func (m Writer) Write(writeRequest model.PlcWriteRequest) <-chan model.PlcWriteR
}
userdata.InvokeId = transactionIdentifier
- // Assemble the finished ADU
- log.Trace().Msg("Assemble ADU")
+ // Assemble the finished amsTcpPaket
+ log.Trace().Msg("Assemble amsTcpPaket")
amsTcpPaket := readWriteModel.AmsTCPPacket{
Userdata: &userdata,
}
@@ -150,7 +143,7 @@ func (m Writer) Write(writeRequest model.PlcWriteRequest) <-chan model.PlcWriteR
return paket.Userdata.InvokeId == transactionIdentifier
},
func(message interface{}) error {
- // Convert the response into an ADU
+ // Convert the response into an responseAmsTcpPaket
responseAmsTcpPaket := readWriteModel.CastAmsTCPPacket(message)
// Convert the ads response into a PLC4X response
readResponse, err := m.ToPlc4xWriteResponse(amsTcpPaket, *responseAmsTcpPaket, writeRequest)
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go b/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
index 06960fd..5fa75f7 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AdsDataType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -615,6 +617,25 @@ func (e AdsDataType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *AdsDataType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = AdsDataTypeByName(string(tok))
+ }
+ }
+}
+
func (e AdsDataType) String() string {
switch e {
case AdsDataType_BOOL:
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go
index 009398c..fb359c2 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsPacket.go
@@ -261,11 +261,11 @@ func (m *AmsPacket) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "targetAmsNetId":
- var data *AmsNetId
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data AmsNetId
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.TargetAmsNetId = data
+ m.TargetAmsNetId = &data
case "targetAmsPort":
var data uint16
if err := d.DecodeElement(&data, &tok); err != nil {
@@ -273,11 +273,11 @@ func (m *AmsPacket) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
}
m.TargetAmsPort = data
case "sourceAmsNetId":
- var data *AmsNetId
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data AmsNetId
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.SourceAmsNetId = data
+ m.SourceAmsNetId = &data
case "sourceAmsPort":
var data uint16
if err := d.DecodeElement(&data, &tok); err != nil {
@@ -291,11 +291,11 @@ func (m *AmsPacket) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
}
m.CommandId = data
case "state":
- var data *State
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data State
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.State = data
+ m.State = &data
case "errorCode":
var data uint32
if err := d.DecodeElement(&data, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go
index 04242b1..df1211e 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsSerialFrame.go
@@ -245,11 +245,11 @@ func (m *AmsSerialFrame) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
}
m.Length = data
case "userdata":
- var data *AmsPacket
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data AmsPacket
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.Userdata = data
+ m.Userdata = &data
case "crc":
var data uint16
if err := d.DecodeElement(&data, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go b/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go
index afbdb7e..8c369f1 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/AmsTCPPacket.go
@@ -155,11 +155,11 @@ func (m *AmsTCPPacket) UnmarshalXML(d *xml.Decoder, start xml.StartElement) erro
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "userdata":
- var data *AmsPacket
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data AmsPacket
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.Userdata = data
+ m.Userdata = &data
}
}
}
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go b/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
index 2def90b..79f6a22 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/CommandId.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -126,6 +128,25 @@ func (e CommandId) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *CommandId) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = CommandIdByName(string(tok))
+ }
+ }
+}
+
func (e CommandId) String() string {
switch e {
case CommandId_INVALID:
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go b/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
index 98bb081..321d995 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/ReservedIndexGroups.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -226,6 +228,25 @@ func (e ReservedIndexGroups) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *ReservedIndexGroups) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = ReservedIndexGroupsByName(string(tok))
+ }
+ }
+}
+
func (e ReservedIndexGroups) String() string {
switch e {
case ReservedIndexGroups_ADSIOFFS_DEVDATA_ADSSTATE:
diff --git a/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go b/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
index 92151f2..9027219 100644
--- a/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
+++ b/plc4go/internal/plc4go/ads/readwrite/model/ReturnCode.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -686,6 +688,25 @@ func (e ReturnCode) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *ReturnCode) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = ReturnCodeByName(string(tok))
+ }
+ }
+}
+
func (e ReturnCode) String() string {
switch e {
case ReturnCode_OK:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
index eeda4e7..59af479 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUComplexAck.go
@@ -294,17 +294,17 @@ func (m *APDUComplexAck) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
}
m.OriginalInvokeId = data
case "sequenceNumber":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.SequenceNumber = data
+ m.SequenceNumber = &data
case "proposedWindowSize":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ProposedWindowSize = data
+ m.ProposedWindowSize = &data
case "serviceAck":
var dt *BACnetServiceAck
if err := d.DecodeElement(&dt, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
index 88e1586..cc6ccc7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/APDUConfirmedRequest.go
@@ -369,17 +369,17 @@ func (m *APDUConfirmedRequest) UnmarshalXML(d *xml.Decoder, start xml.StartEleme
}
m.InvokeId = data
case "sequenceNumber":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.SequenceNumber = data
+ m.SequenceNumber = &data
case "proposedWindowSize":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ProposedWindowSize = data
+ m.ProposedWindowSize = &data
case "serviceRequest":
var dt *BACnetConfirmedServiceRequest
if err := d.DecodeElement(&dt, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
index 1924ce5..2502fe4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/ApplicationTag.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -141,6 +143,25 @@ func (e ApplicationTag) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *ApplicationTag) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = ApplicationTagByName(string(tok))
+ }
+ }
+}
+
func (e ApplicationTag) String() string {
switch e {
case ApplicationTag_NULL:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
index 1d4bc73..dc30101 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNetworkType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -131,6 +133,25 @@ func (e BACnetNetworkType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *BACnetNetworkType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = BACnetNetworkTypeByName(string(tok))
+ }
+ }
+}
+
func (e BACnetNetworkType) String() string {
switch e {
case BACnetNetworkType_ETHERNET:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
index bff92ee..b78c7ed 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNodeType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -186,6 +188,25 @@ func (e BACnetNodeType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *BACnetNodeType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = BACnetNodeTypeByName(string(tok))
+ }
+ }
+}
+
func (e BACnetNodeType) String() string {
switch e {
case BACnetNodeType_UNKNOWN:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
index 1000973..a9934c4 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetNotifyType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -91,6 +93,25 @@ func (e BACnetNotifyType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *BACnetNotifyType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = BACnetNotifyTypeByName(string(tok))
+ }
+ }
+}
+
func (e BACnetNotifyType) String() string {
switch e {
case BACnetNotifyType_ALARM:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
index 537713d..18269c7 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetObjectType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -371,6 +373,25 @@ func (e BACnetObjectType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *BACnetObjectType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = BACnetObjectTypeByName(string(tok))
+ }
+ }
+}
+
func (e BACnetObjectType) String() string {
switch e {
case BACnetObjectType_ANALOG_INPUT:
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
index 2678c99..3f62e31 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTag.go
@@ -278,17 +278,17 @@ func (m *BACnetTag) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
}
m.LengthValueType = data
case "extTagNumber":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ExtTagNumber = data
+ m.ExtTagNumber = &data
case "extLength":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ExtLength = data
+ m.ExtLength = &data
default:
switch start.Attr[0].Value {
case "org.apache.plc4x.java.bacnetip.readwrite.BACnetTagApplicationNull":
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
index 2057e9e..ad7a8fa 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BACnetTagWithContent.go
@@ -304,17 +304,17 @@ func (m *BACnetTagWithContent) UnmarshalXML(d *xml.Decoder, start xml.StartEleme
}
m.LengthValueType = data
case "extTagNumber":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ExtTagNumber = data
+ m.ExtTagNumber = &data
case "extLength":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ExtLength = data
+ m.ExtLength = &data
case "propertyIdentifier":
var data []uint8
if err := d.DecodeElement(&data, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
index 004100e..b86c8c8 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCForwardedNPDU.go
@@ -197,11 +197,11 @@ func (m *BVLCForwardedNPDU) UnmarshalXML(d *xml.Decoder, start xml.StartElement)
}
m.Port = data
case "npdu":
- var data *NPDU
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data NPDU
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.Npdu = data
+ m.Npdu = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
index 228631e..da4db1d 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalBroadcastNPDU.go
@@ -137,11 +137,11 @@ func (m *BVLCOriginalBroadcastNPDU) UnmarshalXML(d *xml.Decoder, start xml.Start
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "npdu":
- var data *NPDU
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data NPDU
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.Npdu = data
+ m.Npdu = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
index 0cbab76..fb0992b 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/BVLCOriginalUnicastNPDU.go
@@ -137,11 +137,11 @@ func (m *BVLCOriginalUnicastNPDU) UnmarshalXML(d *xml.Decoder, start xml.StartEl
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "npdu":
- var data *NPDU
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data NPDU
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.Npdu = data
+ m.Npdu = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
index 0de9671..71ddeec 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NLM.go
@@ -182,11 +182,11 @@ func (m *NLM) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "vendorId":
- var data *uint16
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint16
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.VendorId = data
+ m.VendorId = &data
default:
switch start.Attr[0].Value {
case "org.apache.plc4x.java.bacnetip.readwrite.NLMWhoIsRouterToNetwork":
diff --git a/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go b/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go
index 8ac8e85..eef33eb 100644
--- a/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go
+++ b/plc4go/internal/plc4go/bacnetip/readwrite/model/NPDU.go
@@ -522,17 +522,17 @@ func (m *NPDU) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
}
m.NetworkPriority = data
case "destinationNetworkAddress":
- var data *uint16
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint16
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.DestinationNetworkAddress = data
+ m.DestinationNetworkAddress = &data
case "destinationLength":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.DestinationLength = data
+ m.DestinationLength = &data
case "destinationAddress":
var data []uint8
if err := d.DecodeElement(&data, &tok); err != nil {
@@ -540,17 +540,17 @@ func (m *NPDU) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
}
m.DestinationAddress = data
case "sourceNetworkAddress":
- var data *uint16
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint16
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.SourceNetworkAddress = data
+ m.SourceNetworkAddress = &data
case "sourceLength":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.SourceLength = data
+ m.SourceLength = &data
case "sourceAddress":
var data []uint8
if err := d.DecodeElement(&data, &tok); err != nil {
@@ -558,11 +558,11 @@ func (m *NPDU) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
}
m.SourceAddress = data
case "hopCount":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.HopCount = data
+ m.HopCount = &data
case "nlm":
var dt *NLM
if err := d.DecodeElement(&dt, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/Driver.go b/plc4go/internal/plc4go/knxnetip/Driver.go
index 2cd3314..8bef0c9 100644
--- a/plc4go/internal/plc4go/knxnetip/Driver.go
+++ b/plc4go/internal/plc4go/knxnetip/Driver.go
@@ -19,11 +19,11 @@
package knxnetip
import (
- "errors"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/transports"
"github.com/apache/plc4x/plc4go/pkg/plc4go"
"github.com/apache/plc4x/plc4go/pkg/plc4go/model"
+ "github.com/pkg/errors"
"net/url"
)
@@ -59,7 +59,9 @@ func (m Driver) GetConnection(transportUrl url.URL, transports map[string]transp
transport, ok := transports[transportUrl.Scheme]
if !ok {
ch := make(chan plc4go.PlcConnectionConnectResult)
- ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.New("couldn't find transport for given transport url "+transportUrl.String()))
+ go func() {
+ ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.Errorf("couldn't find transport for given transport url %#v", transportUrl))
+ }()
return ch
}
// Provide a default-port to the transport, which is used, if the user doesn't provide on in the connection string.
@@ -68,7 +70,9 @@ func (m Driver) GetConnection(transportUrl url.URL, transports map[string]transp
transportInstance, err := transport.CreateTransportInstance(transportUrl, options)
if err != nil {
ch := make(chan plc4go.PlcConnectionConnectResult)
- ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.New("couldn't initialize transport configuration for given transport url "+transportUrl.String()))
+ go func() {
+ ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.Errorf("couldn't initialize transport configuration for given transport url %#v", transportUrl))
+ }()
return ch
}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/AccessLevel.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/AccessLevel.go
index 6e96fd0..23e5e90 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/AccessLevel.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/AccessLevel.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -160,6 +162,25 @@ func (e AccessLevel) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *AccessLevel) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = AccessLevelByName(string(tok))
+ }
+ }
+}
+
func (e AccessLevel) String() string {
switch e {
case AccessLevel_Level0:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
index e18df20..0ed7d46 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIAdditionalInformationRelativeTimestamp.go
@@ -159,11 +159,11 @@ func (m *CEMIAdditionalInformationRelativeTimestamp) UnmarshalXML(d *xml.Decoder
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "relativeTimestamp":
- var data *RelativeTimestamp
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data RelativeTimestamp
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.RelativeTimestamp = data
+ m.RelativeTimestamp = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go
index 0688a5e..44ae803 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/CEMIPriority.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -96,6 +98,25 @@ func (e CEMIPriority) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *CEMIPriority) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = CEMIPriorityByName(string(tok))
+ }
+ }
+}
+
func (e CEMIPriority) String() string {
switch e {
case CEMIPriority_SYSTEM:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableAddresses.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableAddresses.go
index 3ae64e8..05e9476 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableAddresses.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableAddresses.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -15439,6 +15441,25 @@ func (e ComObjectTableAddresses) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *ComObjectTableAddresses) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = ComObjectTableAddressesByName(string(tok))
+ }
+ }
+}
+
func (e ComObjectTableAddresses) String() string {
switch e {
case ComObjectTableAddresses_DEV0001914201:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
index f2cc01a..ebbf1d2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectTableRealisationType6.go
@@ -137,11 +137,11 @@ func (m *ComObjectTableRealisationType6) UnmarshalXML(d *xml.Decoder, start xml.
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "comObjectDescriptors":
- var data *GroupObjectDescriptorRealisationType6
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data GroupObjectDescriptorRealisationType6
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ComObjectDescriptors = data
+ m.ComObjectDescriptors = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectValueType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectValueType.go
index b25b7e4..4c18010 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectValueType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ComObjectValueType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -220,6 +222,25 @@ func (e ComObjectValueType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *ComObjectValueType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = ComObjectValueTypeByName(string(tok))
+ }
+ }
+}
+
func (e ComObjectValueType) String() string {
switch e {
case ComObjectValueType_BIT1:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
index 65cae86..c45e48e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionRequest.go
@@ -173,17 +173,17 @@ func (m *ConnectionRequest) UnmarshalXML(d *xml.Decoder, start xml.StartElement)
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "hpaiDiscoveryEndpoint":
- var data *HPAIDiscoveryEndpoint
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data HPAIDiscoveryEndpoint
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.HpaiDiscoveryEndpoint = data
+ m.HpaiDiscoveryEndpoint = &data
case "hpaiDataEndpoint":
- var data *HPAIDataEndpoint
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data HPAIDataEndpoint
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.HpaiDataEndpoint = data
+ m.HpaiDataEndpoint = &data
case "connectionRequestInformation":
var dt *ConnectionRequestInformation
if err := d.DecodeElement(&dt, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
index dc59aa8..010088d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponse.go
@@ -224,11 +224,11 @@ func (m *ConnectionResponse) UnmarshalXML(d *xml.Decoder, start xml.StartElement
}
m.Status = data
case "hpaiDataEndpoint":
- var data *HPAIDataEndpoint
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data HPAIDataEndpoint
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.HpaiDataEndpoint = data
+ m.HpaiDataEndpoint = &data
case "connectionResponseDataBlock":
var dt *ConnectionResponseDataBlock
if err := d.DecodeElement(&dt, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
index 5cd1897..fe82714 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionResponseDataBlockTunnelConnection.go
@@ -137,11 +137,11 @@ func (m *ConnectionResponseDataBlockTunnelConnection) UnmarshalXML(d *xml.Decode
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "knxAddress":
- var data *KnxAddress
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data KnxAddress
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.KnxAddress = data
+ m.KnxAddress = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
index daf1536..024f010 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/ConnectionStateRequest.go
@@ -188,11 +188,11 @@ func (m *ConnectionStateRequest) UnmarshalXML(d *xml.Decoder, start xml.StartEle
}
m.CommunicationChannelId = data
case "hpaiControlEndpoint":
- var data *HPAIControlEndpoint
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data HPAIControlEndpoint
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.HpaiControlEndpoint = data
+ m.HpaiControlEndpoint = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
index 6fb1b91..1f5bc8c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DIBDeviceInfo.go
@@ -294,23 +294,23 @@ func (m *DIBDeviceInfo) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
}
m.KnxMedium = data
case "deviceStatus":
- var data *DeviceStatus
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data DeviceStatus
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.DeviceStatus = data
+ m.DeviceStatus = &data
case "knxAddress":
- var data *KnxAddress
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data KnxAddress
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.KnxAddress = data
+ m.KnxAddress = &data
case "projectInstallationIdentifier":
- var data *ProjectInstallationIdentifier
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data ProjectInstallationIdentifier
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ProjectInstallationIdentifier = data
+ m.ProjectInstallationIdentifier = &data
case "knxNetIpDeviceSerialNumber":
var _encoded string
if err := d.DecodeElement(&_encoded, &tok); err != nil {
@@ -323,17 +323,17 @@ func (m *DIBDeviceInfo) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
}
m.KnxNetIpDeviceSerialNumber = utils.ByteArrayToInt8Array(_decoded[0:_len])
case "knxNetIpDeviceMulticastAddress":
- var data *IPAddress
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data IPAddress
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.KnxNetIpDeviceMulticastAddress = data
+ m.KnxNetIpDeviceMulticastAddress = &data
case "knxNetIpDeviceMacAddress":
- var data *MACAddress
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data MACAddress
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.KnxNetIpDeviceMacAddress = data
+ m.KnxNetIpDeviceMacAddress = &data
case "deviceFriendlyName":
var _encoded string
if err := d.DecodeElement(&_encoded, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
index 773fcc7..c616e04 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionRequest.go
@@ -137,11 +137,11 @@ func (m *DescriptionRequest) UnmarshalXML(d *xml.Decoder, start xml.StartElement
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "hpaiControlEndpoint":
- var data *HPAIControlEndpoint
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data HPAIControlEndpoint
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.HpaiControlEndpoint = data
+ m.HpaiControlEndpoint = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
index 6eac4a1..2cf00c1 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DescriptionResponse.go
@@ -155,17 +155,17 @@ func (m *DescriptionResponse) UnmarshalXML(d *xml.Decoder, start xml.StartElemen
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "dibDeviceInfo":
- var data *DIBDeviceInfo
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data DIBDeviceInfo
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.DibDeviceInfo = data
+ m.DibDeviceInfo = &data
case "dibSuppSvcFamilies":
- var data *DIBSuppSvcFamilies
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data DIBSuppSvcFamilies
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.DibSuppSvcFamilies = data
+ m.DibSuppSvcFamilies = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
index 1f01bed..31b76d2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationAck.go
@@ -137,11 +137,11 @@ func (m *DeviceConfigurationAck) UnmarshalXML(d *xml.Decoder, start xml.StartEle
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "deviceConfigurationAckDataBlock":
- var data *DeviceConfigurationAckDataBlock
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data DeviceConfigurationAckDataBlock
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.DeviceConfigurationAckDataBlock = data
+ m.DeviceConfigurationAckDataBlock = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
index e491426..bd87f80 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceConfigurationRequest.go
@@ -155,11 +155,11 @@ func (m *DeviceConfigurationRequest) UnmarshalXML(d *xml.Decoder, start xml.Star
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "deviceConfigurationRequestDataBlock":
- var data *DeviceConfigurationRequestDataBlock
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data DeviceConfigurationRequestDataBlock
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.DeviceConfigurationRequestDataBlock = data
+ m.DeviceConfigurationRequestDataBlock = &data
case "cemi":
var dt *CEMI
if err := d.DecodeElement(&dt, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptor.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptor.go
index cb99d63..8028584 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptor.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptor.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -472,6 +474,25 @@ func (e DeviceDescriptor) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *DeviceDescriptor) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = DeviceDescriptorByName(string(tok))
+ }
+ }
+}
+
func (e DeviceDescriptor) String() string {
switch e {
case DeviceDescriptor_TP1_BCU_1_SYSTEM_1_0:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorMediumType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorMediumType.go
index e130aab..477951e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorMediumType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorMediumType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -106,6 +108,25 @@ func (e DeviceDescriptorMediumType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *DeviceDescriptorMediumType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = DeviceDescriptorMediumTypeByName(string(tok))
+ }
+ }
+}
+
func (e DeviceDescriptorMediumType) String() string {
switch e {
case DeviceDescriptorMediumType_TP1:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorType2.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorType2.go
index 3b5fd36..ffb3102 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorType2.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DeviceDescriptorType2.go
@@ -299,29 +299,29 @@ func (m *DeviceDescriptorType2) UnmarshalXML(d *xml.Decoder, start xml.StartElem
}
m.LogicalTagBase = data
case "channelInfo1":
- var data *ChannelInformation
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data ChannelInformation
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ChannelInfo1 = data
+ m.ChannelInfo1 = &data
case "channelInfo2":
- var data *ChannelInformation
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data ChannelInformation
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ChannelInfo2 = data
+ m.ChannelInfo2 = &data
case "channelInfo3":
- var data *ChannelInformation
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data ChannelInformation
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ChannelInfo3 = data
+ m.ChannelInfo3 = &data
case "channelInfo4":
- var data *ChannelInformation
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data ChannelInformation
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ChannelInfo4 = data
+ m.ChannelInfo4 = &data
}
}
}
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
index 64e7a59..116432c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/DisconnectRequest.go
@@ -188,11 +188,11 @@ func (m *DisconnectRequest) UnmarshalXML(d *xml.Decoder, start xml.StartElement)
}
m.CommunicationChannelId = data
case "hpaiControlEndpoint":
- var data *HPAIControlEndpoint
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data HPAIControlEndpoint
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.HpaiControlEndpoint = data
+ m.HpaiControlEndpoint = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/FirmwareType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/FirmwareType.go
index 5c7e471..7862eec 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/FirmwareType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/FirmwareType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -156,6 +158,25 @@ func (e FirmwareType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *FirmwareType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = FirmwareTypeByName(string(tok))
+ }
+ }
+}
+
func (e FirmwareType) String() string {
switch e {
case FirmwareType_SYSTEM_1:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go
index 44f190b..5df092c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIControlEndpoint.go
@@ -168,11 +168,11 @@ func (m *HPAIControlEndpoint) UnmarshalXML(d *xml.Decoder, start xml.StartElemen
}
m.HostProtocolCode = data
case "ipAddress":
- var data *IPAddress
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data IPAddress
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.IpAddress = data
+ m.IpAddress = &data
case "ipPort":
var data uint16
if err := d.DecodeElement(&data, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go
index fa317ad..5dbc8bd 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDataEndpoint.go
@@ -168,11 +168,11 @@ func (m *HPAIDataEndpoint) UnmarshalXML(d *xml.Decoder, start xml.StartElement)
}
m.HostProtocolCode = data
case "ipAddress":
- var data *IPAddress
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data IPAddress
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.IpAddress = data
+ m.IpAddress = &data
case "ipPort":
var data uint16
if err := d.DecodeElement(&data, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go
index e815724..ffd647c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/HPAIDiscoveryEndpoint.go
@@ -168,11 +168,11 @@ func (m *HPAIDiscoveryEndpoint) UnmarshalXML(d *xml.Decoder, start xml.StartElem
}
m.HostProtocolCode = data
case "ipAddress":
- var data *IPAddress
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data IPAddress
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.IpAddress = data
+ m.IpAddress = &data
case "ipPort":
var data uint16
if err := d.DecodeElement(&data, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go
index 360542b..ced5932 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/HostProtocolCode.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -86,6 +88,25 @@ func (e HostProtocolCode) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *HostProtocolCode) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = HostProtocolCodeByName(string(tok))
+ }
+ }
+}
+
func (e HostProtocolCode) String() string {
switch e {
case HostProtocolCode_IPV4_UDP:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointMainType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointMainType.go
index ed6eb35..649cb1e 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointMainType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointMainType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -1125,6 +1127,25 @@ func (e KnxDatapointMainType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *KnxDatapointMainType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = KnxDatapointMainTypeByName(string(tok))
+ }
+ }
+}
+
func (e KnxDatapointMainType) String() string {
switch e {
case KnxDatapointMainType_DPT_UNKNOWN:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointType.go
index fa64b39..ca1767f 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxDatapointType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -6021,6 +6023,25 @@ func (e KnxDatapointType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *KnxDatapointType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = KnxDatapointTypeByName(string(tok))
+ }
+ }
+}
+
func (e KnxDatapointType) String() string {
switch e {
case KnxDatapointType_DPT_UNKNOWN:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go
index 5107e01..d7b5f56 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectProperty.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -4651,6 +4653,25 @@ func (e KnxInterfaceObjectProperty) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *KnxInterfaceObjectProperty) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = KnxInterfaceObjectPropertyByName(string(tok))
+ }
+ }
+}
+
func (e KnxInterfaceObjectProperty) String() string {
switch e {
case KnxInterfaceObjectProperty_PID_UNKNOWN:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectType.go
index dd1217e..77732d5 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxInterfaceObjectType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -420,6 +422,25 @@ func (e KnxInterfaceObjectType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *KnxInterfaceObjectType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = KnxInterfaceObjectTypeByName(string(tok))
+ }
+ }
+}
+
func (e KnxInterfaceObjectType) String() string {
switch e {
case KnxInterfaceObjectType_OT_UNKNOWN:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
index cb7495e..adb47e0 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxLayer.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -91,6 +93,25 @@ func (e KnxLayer) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *KnxLayer) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = KnxLayerByName(string(tok))
+ }
+ }
+}
+
func (e KnxLayer) String() string {
switch e {
case KnxLayer_TUNNEL_LINK_LAYER:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxManufacturer.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxManufacturer.go
index b3a367d..d931476 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxManufacturer.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxManufacturer.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -7180,6 +7182,25 @@ func (e KnxManufacturer) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *KnxManufacturer) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = KnxManufacturerByName(string(tok))
+ }
+ }
+}
+
func (e KnxManufacturer) String() string {
switch e {
case KnxManufacturer_M_UNKNOWN:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxMedium.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxMedium.go
index 193bd86..9cd305c 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxMedium.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxMedium.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -106,6 +108,25 @@ func (e KnxMedium) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *KnxMedium) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = KnxMediumByName(string(tok))
+ }
+ }
+}
+
func (e KnxMedium) String() string {
switch e {
case KnxMedium_MEDIUM_RESERVED_1:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxPropertyDataType.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxPropertyDataType.go
index f8f8b23..dea8b86 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxPropertyDataType.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/KnxPropertyDataType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -955,6 +957,25 @@ func (e KnxPropertyDataType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *KnxPropertyDataType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = KnxPropertyDataTypeByName(string(tok))
+ }
+ }
+}
+
func (e KnxPropertyDataType) String() string {
switch e {
case KnxPropertyDataType_PDT_UNKNOWN:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
index 3af2460..cc90e84 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LBusmonInd.go
@@ -237,11 +237,11 @@ func (m *LBusmonInd) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
}
m.DataFrame = dt
case "crc":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.Crc = data
+ m.Crc = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
index aebe20e..6b94e3d 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LDataExtended.go
@@ -286,11 +286,11 @@ func (m *LDataExtended) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
}
m.ExtendedFrameFormat = data
case "sourceAddress":
- var data *KnxAddress
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data KnxAddress
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.SourceAddress = data
+ m.SourceAddress = &data
case "destinationAddress":
var _encoded string
if err := d.DecodeElement(&_encoded, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
index a8b6f01..2935bbf 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/LPollData.go
@@ -222,11 +222,11 @@ func (m *LPollData) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "sourceAddress":
- var data *KnxAddress
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data KnxAddress
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.SourceAddress = data
+ m.SourceAddress = &data
case "targetAddress":
var _encoded string
if err := d.DecodeElement(&_encoded, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
index 1930c03..92a71c9 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchRequest.go
@@ -137,11 +137,11 @@ func (m *SearchRequest) UnmarshalXML(d *xml.Decoder, start xml.StartElement) err
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "hpaiIDiscoveryEndpoint":
- var data *HPAIDiscoveryEndpoint
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data HPAIDiscoveryEndpoint
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.HpaiIDiscoveryEndpoint = data
+ m.HpaiIDiscoveryEndpoint = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
index 167d323..60608d7 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/SearchResponse.go
@@ -173,23 +173,23 @@ func (m *SearchResponse) UnmarshalXML(d *xml.Decoder, start xml.StartElement) er
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "hpaiControlEndpoint":
- var data *HPAIControlEndpoint
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data HPAIControlEndpoint
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.HpaiControlEndpoint = data
+ m.HpaiControlEndpoint = &data
case "dibDeviceInfo":
- var data *DIBDeviceInfo
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data DIBDeviceInfo
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.DibDeviceInfo = data
+ m.DibDeviceInfo = &data
case "dibSuppSvcFamilies":
- var data *DIBSuppSvcFamilies
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data DIBSuppSvcFamilies
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.DibSuppSvcFamilies = data
+ m.DibSuppSvcFamilies = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go
index f49ee99..b633f40 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/Status.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -136,6 +138,25 @@ func (e Status) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *Status) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = StatusByName(string(tok))
+ }
+ }
+}
+
func (e Status) String() string {
switch e {
case Status_NO_ERROR:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/SupportedPhysicalMedia.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/SupportedPhysicalMedia.go
index 442db6c..a1c49a2 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/SupportedPhysicalMedia.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/SupportedPhysicalMedia.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -368,6 +370,25 @@ func (e SupportedPhysicalMedia) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *SupportedPhysicalMedia) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = SupportedPhysicalMediaByName(string(tok))
+ }
+ }
+}
+
func (e SupportedPhysicalMedia) String() string {
switch e {
case SupportedPhysicalMedia_OTHER:
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
index 110af10..8d0f223 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingRequest.go
@@ -155,11 +155,11 @@ func (m *TunnelingRequest) UnmarshalXML(d *xml.Decoder, start xml.StartElement)
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "tunnelingRequestDataBlock":
- var data *TunnelingRequestDataBlock
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data TunnelingRequestDataBlock
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.TunnelingRequestDataBlock = data
+ m.TunnelingRequestDataBlock = &data
case "cemi":
var dt *CEMI
if err := d.DecodeElement(&dt, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
index e2a7924..86bd39a 100644
--- a/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
+++ b/plc4go/internal/plc4go/knxnetip/readwrite/model/TunnelingResponse.go
@@ -137,11 +137,11 @@ func (m *TunnelingResponse) UnmarshalXML(d *xml.Decoder, start xml.StartElement)
tok := token.(xml.StartElement)
switch tok.Name.Local {
case "tunnelingResponseDataBlock":
- var data *TunnelingResponseDataBlock
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data TunnelingResponseDataBlock
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.TunnelingResponseDataBlock = data
+ m.TunnelingResponseDataBlock = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/modbus/Driver.go b/plc4go/internal/plc4go/modbus/Driver.go
index ee5f9df..eb82b36 100644
--- a/plc4go/internal/plc4go/modbus/Driver.go
+++ b/plc4go/internal/plc4go/modbus/Driver.go
@@ -65,7 +65,9 @@ func (m Driver) GetConnection(transportUrl url.URL, transports map[string]transp
if !ok {
log.Error().Stringer("transportUrl", &transportUrl).Msgf("We couldn't find a transport for scheme %s", transportUrl.Scheme)
ch := make(chan plc4go.PlcConnectionConnectResult)
- ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.Errorf("couldn't find transport for given transport url %#v", transportUrl))
+ go func() {
+ ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.Errorf("couldn't find transport for given transport url %#v", transportUrl))
+ }()
return ch
}
// Provide a default-port to the transport, which is used, if the user doesn't provide on in the connection string.
@@ -75,7 +77,9 @@ func (m Driver) GetConnection(transportUrl url.URL, transports map[string]transp
if err != nil {
log.Error().Stringer("transportUrl", &transportUrl).Msgf("We couldn't create a transport instance for port %#v", options["defaultTcpPort"])
ch := make(chan plc4go.PlcConnectionConnectResult)
- ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.New("couldn't initialize transport configuration for given transport url "+transportUrl.String()))
+ go func() {
+ ch <- plc4go.NewPlcConnectionConnectResult(nil, errors.New("couldn't initialize transport configuration for given transport url "+transportUrl.String()))
+ }()
return ch
}
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go
index b61b719..5278e7f 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusDataType.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -328,6 +330,25 @@ func (e ModbusDataType) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *ModbusDataType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = ModbusDataTypeByName(string(tok))
+ }
+ }
+}
+
func (e ModbusDataType) String() string {
switch e {
case ModbusDataType_BOOL:
diff --git a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusErrorCode.go b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusErrorCode.go
index 310824e..f584919 100644
--- a/plc4go/internal/plc4go/modbus/readwrite/model/ModbusErrorCode.go
+++ b/plc4go/internal/plc4go/modbus/readwrite/model/ModbusErrorCode.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -126,6 +128,25 @@ func (e ModbusErrorCode) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *ModbusErrorCode) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = ModbusErrorCodeByName(string(tok))
+ }
+ }
+}
+
func (e ModbusErrorCode) String() string {
switch e {
case ModbusErrorCode_ILLEGAL_FUNCTION:
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go
index 3192c12..277f410 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPProtocolClass.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -101,6 +103,25 @@ func (e COTPProtocolClass) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *COTPProtocolClass) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = COTPProtocolClassByName(string(tok))
+ }
+ }
+}
+
func (e COTPProtocolClass) String() string {
switch e {
case COTPProtocolClass_CLASS_0:
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go b/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go
index 118f475..fc6443e 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/COTPTpduSize.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -148,6 +150,25 @@ func (e COTPTpduSize) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *COTPTpduSize) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = COTPTpduSizeByName(string(tok))
+ }
+ }
+}
+
func (e COTPTpduSize) String() string {
switch e {
case COTPTpduSize_SIZE_128:
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go b/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go
index 84a8c09..d423064 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/DataTransportErrorCode.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -106,6 +108,25 @@ func (e DataTransportErrorCode) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *DataTransportErrorCode) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = DataTransportErrorCodeByName(string(tok))
+ }
+ }
+}
+
func (e DataTransportErrorCode) String() string {
switch e {
case DataTransportErrorCode_RESERVED:
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go b/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go
index 3d95458..77a505c 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/DataTransportSize.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -148,6 +150,25 @@ func (e DataTransportSize) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *DataTransportSize) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = DataTransportSizeByName(string(tok))
+ }
+ }
+}
+
func (e DataTransportSize) String() string {
switch e {
case DataTransportSize_NULL:
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go b/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go
index 350a84f..eb17bb3 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/DeviceGroup.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -91,6 +93,25 @@ func (e DeviceGroup) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *DeviceGroup) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = DeviceGroupByName(string(tok))
+ }
+ }
+}
+
func (e DeviceGroup) String() string {
switch e {
case DeviceGroup_PG_OR_PC:
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go b/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go
index a83a3b3..ccdd34a 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/MemoryArea.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -166,6 +168,25 @@ func (e MemoryArea) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *MemoryArea) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = MemoryAreaByName(string(tok))
+ }
+ }
+}
+
func (e MemoryArea) String() string {
switch e {
case MemoryArea_COUNTERS:
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
index 4408c4e..d361dda 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7ParameterUserDataItemCPUFunctions.go
@@ -344,23 +344,23 @@ func (m *S7ParameterUserDataItemCPUFunctions) UnmarshalXML(d *xml.Decoder, start
}
m.SequenceNumber = data
case "dataUnitReferenceNumber":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.DataUnitReferenceNumber = data
+ m.DataUnitReferenceNumber = &data
case "lastDataUnit":
- var data *uint8
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint8
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.LastDataUnit = data
+ m.LastDataUnit = &data
case "errorCode":
- var data *uint16
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data uint16
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.ErrorCode = data
+ m.ErrorCode = &data
}
}
token, err = d.Token()
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go
index f4a45cf..8a244c9 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/S7PayloadUserDataItem.go
@@ -235,11 +235,11 @@ func (m *S7PayloadUserDataItem) UnmarshalXML(d *xml.Decoder, start xml.StartElem
}
m.TransportSize = data
case "szlId":
- var data *SzlId
- if err := d.DecodeElement(data, &tok); err != nil {
+ var data SzlId
+ if err := d.DecodeElement(&data, &tok); err != nil {
return err
}
- m.SzlId = data
+ m.SzlId = &data
case "szlIndex":
var data uint16
if err := d.DecodeElement(&data, &tok); err != nil {
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go b/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go
index 617c845..57cd402 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/SzlModuleTypeClass.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -96,6 +98,25 @@ func (e SzlModuleTypeClass) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *SzlModuleTypeClass) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = SzlModuleTypeClassByName(string(tok))
+ }
+ }
+}
+
func (e SzlModuleTypeClass) String() string {
switch e {
case SzlModuleTypeClass_CPU:
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go b/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go
index 32151a4..efea39e 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/SzlSublist.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -171,6 +173,25 @@ func (e SzlSublist) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *SzlSublist) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = SzlSublistByName(string(tok))
+ }
+ }
+}
+
func (e SzlSublist) String() string {
switch e {
case SzlSublist_MODULE_IDENTIFICATION:
diff --git a/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go b/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
index cdb4360..e58e413 100644
--- a/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
+++ b/plc4go/internal/plc4go/s7/readwrite/model/TransportSize.go
@@ -19,7 +19,9 @@
package model
import (
+ "encoding/xml"
"github.com/apache/plc4x/plc4go/internal/plc4go/spi/utils"
+ "io"
)
// Code generated by build-utils. DO NOT EDIT.
@@ -1459,6 +1461,25 @@ func (e TransportSize) Serialize(io utils.WriteBuffer) error {
return err
}
+func (m *TransportSize) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
+ var token xml.Token
+ var err error
+ for {
+ token, err = d.Token()
+ if err != nil {
+ if err == io.EOF {
+ return nil
+ }
+ return err
+ }
+ switch token.(type) {
+ case xml.CharData:
+ tok := token.(xml.CharData)
+ *m = TransportSizeByName(string(tok))
+ }
+ }
+}
+
func (e TransportSize) String() string {
switch e {
case TransportSize_BOOL:
diff --git a/plc4go/internal/plc4go/spi/testutils/DriverTestRunner.go b/plc4go/internal/plc4go/spi/testutils/DriverTestRunner.go
index e4ff029..2150714 100644
--- a/plc4go/internal/plc4go/spi/testutils/DriverTestRunner.go
+++ b/plc4go/internal/plc4go/spi/testutils/DriverTestRunner.go
@@ -36,6 +36,7 @@ import (
"os"
"runtime/debug"
"strconv"
+ "strings"
"testing"
"time"
)
@@ -50,8 +51,16 @@ type DriverTestsuite struct {
}
func (m DriverTestsuite) Run(driverManager plc4go.PlcDriverManager, testcase Testcase) error {
+ var options []string
+ for key, value := range m.driverParameters {
+ options = append(options, fmt.Sprintf("%s=%s", key, value))
+ }
+ optionsString := ""
+ if len(options) > 0 {
+ optionsString = "?" + strings.Join(options, "&")
+ }
// Get a connection
- connectionChan := driverManager.GetConnection(m.driverName + ":test://hurz")
+ connectionChan := driverManager.GetConnection(m.driverName + ":test://hurz" + optionsString)
connectionResult := <-connectionChan
if connectionResult.Err != nil {