Skip to content

PubSub UDP Quickstart sample didn't work on MAC #2367

@algorni

Description

@algorni

Type of issue

  • Bug
  • Enhancement
  • Compliance
  • Question
  • Help wanted

Current Behavior

Trying the PubSub over UDP unicast.

This is the configuration i'm trying to use for the publisher: with just the Simple dataset (i've ameded also teh PublishedValuesWriters to just generate data for teh Simple dataset):

<?xml version="1.0" encoding="utf-8"?>
<PubSubConfigurationDataType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
  <PublishedDataSets>
    <PublishedDataSetDataType>
      <Name>Simple</Name>
      <DataSetFolder />
      <DataSetMetaData>
        <Namespaces />
        <StructureDataTypes />
        <EnumDataTypes />
        <SimpleDataTypes />
        <Name>Simple</Name>
        <Description i:nil="true" />
        <Fields>
          <FieldMetaData>
            <Name>BoolToggle</Name>
            <Description i:nil="true" />
            <FieldFlags>0</FieldFlags>
            <BuiltInType>1</BuiltInType>
            <DataType>
              <Identifier>i=1</Identifier>
            </DataType>
            <ValueRank>-1</ValueRank>
            <ArrayDimensions />
            <MaxStringLength>0</MaxStringLength>
            <DataSetFieldId>
              <String>982accab-275d-4b0c-abd6-be15d97abb95</String>
            </DataSetFieldId>
            <Properties />
          </FieldMetaData>
          <FieldMetaData>
            <Name>Int32</Name>
            <Description i:nil="true" />
            <FieldFlags>0</FieldFlags>
            <BuiltInType>6</BuiltInType>
            <DataType>
              <Identifier>i=6</Identifier>
            </DataType>
            <ValueRank>-1</ValueRank>
            <ArrayDimensions />
            <MaxStringLength>0</MaxStringLength>
            <DataSetFieldId>
              <String>e0138b37-a8e7-4ef4-b4bf-7e3272f306cb</String>
            </DataSetFieldId>
            <Properties />
          </FieldMetaData>
          <FieldMetaData>
            <Name>Int32Fast</Name>
            <Description i:nil="true" />
            <FieldFlags>0</FieldFlags>
            <BuiltInType>6</BuiltInType>
            <DataType>
              <Identifier>i=6</Identifier>
            </DataType>
            <ValueRank>-1</ValueRank>
            <ArrayDimensions />
            <MaxStringLength>0</MaxStringLength>
            <DataSetFieldId>
              <String>c8539ac3-6c95-42a2-9574-8040041d8fcd</String>
            </DataSetFieldId>
            <Properties />
          </FieldMetaData>
          <FieldMetaData>
            <Name>DateTime</Name>
            <Description i:nil="true" />
            <FieldFlags>0</FieldFlags>
            <BuiltInType>13</BuiltInType>
            <DataType>
              <Identifier>i=13</Identifier>
            </DataType>
            <ValueRank>-1</ValueRank>
            <ArrayDimensions />
            <MaxStringLength>0</MaxStringLength>
            <DataSetFieldId>
              <String>543a7e87-8f9e-4246-b52c-b9a34870fab6</String>
            </DataSetFieldId>
            <Properties />
          </FieldMetaData>
        </Fields>
        <DataSetClassId>
          <String>00000000-0000-0000-0000-000000000000</String>
        </DataSetClassId>
        <!--
        <ConfigurationVersion>
          <MajorVersion>675820800</MajorVersion>
          <MinorVersion>675820800</MinorVersion>
        </ConfigurationVersion>
        -->
      </DataSetMetaData>
      <ExtensionFields />
      <DataSetSource>
        <TypeId>
          <Identifier>i=15953</Identifier>
        </TypeId>
        <Body>
          <PublishedDataItemsDataType xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
            <PublishedData>
              <PublishedVariableDataType>
                <PublishedVariable>
                  <Identifier>ns=2;s=BoolToggle</Identifier>
                </PublishedVariable>
                <AttributeId>13</AttributeId>
                <SamplingIntervalHint>0</SamplingIntervalHint>
                <DeadbandType>0</DeadbandType>
                <DeadbandValue>0</DeadbandValue>
                <SubstituteValue>
                  <Value>
                    <Null />
                  </Value>
                </SubstituteValue>
                <MetaDataProperties />
              </PublishedVariableDataType>
              <PublishedVariableDataType>
                <PublishedVariable>
                  <Identifier>ns=2;s=Int32</Identifier>
                </PublishedVariable>
                <AttributeId>13</AttributeId>
                <SamplingIntervalHint>0</SamplingIntervalHint>
                <DeadbandType>0</DeadbandType>
                <DeadbandValue>0</DeadbandValue>
                <SubstituteValue>
                  <Value>
                    <Null />
                  </Value>
                </SubstituteValue>
                <MetaDataProperties />
              </PublishedVariableDataType>
              <PublishedVariableDataType>
                <PublishedVariable>
                  <Identifier>ns=2;s=Int32Fast</Identifier>
                </PublishedVariable>
                <AttributeId>13</AttributeId>
                <SamplingIntervalHint>0</SamplingIntervalHint>
                <DeadbandType>0</DeadbandType>
                <DeadbandValue>0</DeadbandValue>
                <SubstituteValue>
                  <Value>
                    <Null />
                  </Value>
                </SubstituteValue>
                <MetaDataProperties />
              </PublishedVariableDataType>
              <PublishedVariableDataType>
                <PublishedVariable>
                  <Identifier>ns=2;s=DateTime</Identifier>
                </PublishedVariable>
                <AttributeId>13</AttributeId>
                <SamplingIntervalHint>0</SamplingIntervalHint>
                <DeadbandType>0</DeadbandType>
                <DeadbandValue>0</DeadbandValue>
                <SubstituteValue>
                  <Value>
                    <Null />
                  </Value>
                </SubstituteValue>
                <MetaDataProperties />
              </PublishedVariableDataType>
            </PublishedData>
          </PublishedDataItemsDataType>
        </Body>
      </DataSetSource>
    </PublishedDataSetDataType>
  </PublishedDataSets>
  <Connections>
    <PubSubConnectionDataType>
      <Name>Publisher Connection UDP UADP</Name>
      <Enabled>true</Enabled>
      <PublisherId>
        <Value>
          <UInt16 xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">1</UInt16>
        </Value>
      </PublisherId>
      <TransportProfileUri>http://opcfoundation.org/UA-Profile/Transport/pubsub-udp-uadp</TransportProfileUri>
      <Address>
        <TypeId>
          <Identifier>i=21176</Identifier>
        </TypeId>
        <Body>
          <NetworkAddressUrlDataType xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
            <NetworkInterface>en7</NetworkInterface>
            <Url>opc.udp://127.0.0.1:4840</Url>
          </NetworkAddressUrlDataType>
        </Body>
      </Address>
      <ConnectionProperties />
      <TransportSettings i:nil="true" />
      <WriterGroups />
      <ReaderGroups />
    </PubSubConnectionDataType>
  </Connections>
  <Enabled>true</Enabled>
</PubSubConfigurationDataType>

And this is the one for the Subscriber:

<?xml version="1.0" encoding="utf-8"?>
<PubSubConfigurationDataType xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
  <PublishedDataSets />
  <Connections>
    <PubSubConnectionDataType>
      <Name>Subscriber Connection UDP UADP</Name>
      <Enabled>true</Enabled>
      <PublisherId>
        <Value>
          <UInt16 xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">1</UInt16>
        </Value>
      </PublisherId>
      <TransportProfileUri>http://opcfoundation.org/UA-Profile/Transport/pubsub-udp-uadp</TransportProfileUri>
      <Address>
        <TypeId>
          <Identifier>i=21176</Identifier>
        </TypeId>
        <Body>
          <NetworkAddressUrlDataType xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
            <NetworkInterface>en7</NetworkInterface>
            <Url>opc.udp://127.0.0.1:4840</Url>
          </NetworkAddressUrlDataType>
        </Body>
      </Address>
      <ConnectionProperties />
      <TransportSettings i:nil="true" />
      <WriterGroups />
      <ReaderGroups>
        <ReaderGroupDataType>
          <Name>ReaderGroup 1</Name>
          <Enabled>true</Enabled>
          <SecurityMode>Invalid_0</SecurityMode>
          <SecurityGroupId i:nil="true" />
          <SecurityKeyServices />
          <MaxNetworkMessageSize>1500</MaxNetworkMessageSize>
          <GroupProperties />
          <TransportSettings>
            <TypeId>
              <Identifier>i=15995</Identifier>
            </TypeId>
            <Body>
              <ReaderGroupTransportDataType xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd" />
            </Body>
          </TransportSettings>
          <MessageSettings>
            <TypeId>
              <Identifier>i=15996</Identifier>
            </TypeId>
            <Body>
              <ReaderGroupMessageDataType xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd" />
            </Body>
          </MessageSettings>
          <DataSetReaders>
            <DataSetReaderDataType>
              <Name>Reader 1 UDP UADP</Name>
              <Enabled>true</Enabled>
              <PublisherId>
                <Value>
                  <UInt16 xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">1</UInt16>
                </Value>
              </PublisherId>
              <WriterGroupId>0</WriterGroupId>
              <DataSetWriterId>1</DataSetWriterId>
              <DataSetMetaData>
                <Namespaces />
                <StructureDataTypes />
                <EnumDataTypes />
                <SimpleDataTypes />
                <Name>Simple</Name>
                <Description i:nil="true" />
                <Fields>
                  <FieldMetaData>
                    <Name>BoolToggle</Name>
                    <Description i:nil="true" />
                    <FieldFlags>0</FieldFlags>
                    <BuiltInType>1</BuiltInType>
                    <DataType>
                      <Identifier>i=1</Identifier>
                    </DataType>
                    <ValueRank>-1</ValueRank>
                    <ArrayDimensions />
                    <MaxStringLength>0</MaxStringLength>
                    <DataSetFieldId>
                      <String>685fdbe8-5ed9-4aa2-952e-60b1833f8c80</String>
                    </DataSetFieldId>
                    <Properties />
                  </FieldMetaData>
                  <FieldMetaData>
                    <Name>Int32</Name>
                    <Description i:nil="true" />
                    <FieldFlags>0</FieldFlags>
                    <BuiltInType>6</BuiltInType>
                    <DataType>
                      <Identifier>i=6</Identifier>
                    </DataType>
                    <ValueRank>-1</ValueRank>
                    <ArrayDimensions />
                    <MaxStringLength>0</MaxStringLength>
                    <DataSetFieldId>
                      <String>455f5d6b-5ded-4261-be33-acb64c1994cb</String>
                    </DataSetFieldId>
                    <Properties />
                  </FieldMetaData>
                  <FieldMetaData>
                    <Name>Int32Fast</Name>
                    <Description i:nil="true" />
                    <FieldFlags>0</FieldFlags>
                    <BuiltInType>6</BuiltInType>
                    <DataType>
                      <Identifier>i=6</Identifier>
                    </DataType>
                    <ValueRank>-1</ValueRank>
                    <ArrayDimensions />
                    <MaxStringLength>0</MaxStringLength>
                    <DataSetFieldId>
                      <String>4532b89f-bbb1-4463-80d6-179ec83d397d</String>
                    </DataSetFieldId>
                    <Properties />
                  </FieldMetaData>
                  <FieldMetaData>
                    <Name>DateTime</Name>
                    <Description i:nil="true" />
                    <FieldFlags>0</FieldFlags>
                    <BuiltInType>13</BuiltInType>
                    <DataType>
                      <Identifier>i=13</Identifier>
                    </DataType>
                    <ValueRank>-1</ValueRank>
                    <ArrayDimensions />
                    <MaxStringLength>0</MaxStringLength>
                    <DataSetFieldId>
                      <String>d749fe7a-375e-4df0-81f8-9223e7c8b617</String>
                    </DataSetFieldId>
                    <Properties />
                  </FieldMetaData>
                </Fields>
                <DataSetClassId>
                  <String>00000000-0000-0000-0000-000000000000</String>
                </DataSetClassId>
                <ConfigurationVersion>
                  <MajorVersion>673142400</MajorVersion>
                  <MinorVersion>673142400</MinorVersion>
                </ConfigurationVersion>
              </DataSetMetaData>
              <DataSetFieldContentMask>32</DataSetFieldContentMask>
              <MessageReceiveTimeout>0</MessageReceiveTimeout>
              <KeyFrameCount>1</KeyFrameCount>
              <HeaderLayoutUri i:nil="true" />
              <SecurityMode>Invalid_0</SecurityMode>
              <SecurityGroupId i:nil="true" />
              <SecurityKeyServices />
              <DataSetReaderProperties />
              <TransportSettings>
                <TypeId>
                  <Identifier>i=16008</Identifier>
                </TypeId>
                <Body>
                  <DataSetReaderTransportDataType xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd" />
                </Body>
              </TransportSettings>
              <MessageSettings>
                <TypeId>
                  <Identifier>i=16016</Identifier>
                </TypeId>
                <Body>
                  <UadpDataSetReaderMessageDataType xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
                    <GroupVersion>0</GroupVersion>
                    <NetworkMessageNumber>0</NetworkMessageNumber>
                    <DataSetOffset>0</DataSetOffset>
                    <DataSetClassId>
                      <String>00000000-0000-0000-0000-000000000000</String>
                    </DataSetClassId>
                    <NetworkMessageContentMask>63</NetworkMessageContentMask>
                    <DataSetMessageContentMask>36</DataSetMessageContentMask>
                    <PublishingInterval>0</PublishingInterval>
                    <ReceiveOffset>0</ReceiveOffset>
                    <ProcessingOffset>0</ProcessingOffset>
                  </UadpDataSetReaderMessageDataType>
                </Body>
              </MessageSettings>
              <SubscribedDataSet>
                <TypeId>
                  <Identifier>i=16011</Identifier>
                </TypeId>
                <Body>
                  <TargetVariablesDataType xmlns="http://opcfoundation.org/UA/2008/02/Types.xsd">
                    <TargetVariables>
                      <FieldTargetDataType>
                        <DataSetFieldId>
                          <String>685fdbe8-5ed9-4aa2-952e-60b1833f8c80</String>
                        </DataSetFieldId>
                        <TargetNodeId>
                          <Identifier>ns=2;s=BoolToggle</Identifier>
                        </TargetNodeId>
                        <AttributeId>13</AttributeId>
                        <OverrideValueHandling>OverrideValue_2</OverrideValueHandling>
                        <OverrideValue>
                          <Value>
                            <Boolean>false</Boolean>
                          </Value>
                        </OverrideValue>
                      </FieldTargetDataType>
                      <FieldTargetDataType>
                        <DataSetFieldId>
                          <String>455f5d6b-5ded-4261-be33-acb64c1994cb</String>
                        </DataSetFieldId>
                        <TargetNodeId>
                          <Identifier>ns=2;s=Int32</Identifier>
                        </TargetNodeId>
                        <AttributeId>13</AttributeId>
                        <OverrideValueHandling>OverrideValue_2</OverrideValueHandling>
                        <OverrideValue>
                          <Value>
                            <Int32>0</Int32>
                          </Value>
                        </OverrideValue>
                      </FieldTargetDataType>
                      <FieldTargetDataType>
                        <DataSetFieldId>
                          <String>4532b89f-bbb1-4463-80d6-179ec83d397d</String>
                        </DataSetFieldId>
                        <TargetNodeId>
                          <Identifier>ns=2;s=Int32Fast</Identifier>
                        </TargetNodeId>
                        <AttributeId>13</AttributeId>
                        <OverrideValueHandling>OverrideValue_2</OverrideValueHandling>
                        <OverrideValue>
                          <Value>
                            <Int32>0</Int32>
                          </Value>
                        </OverrideValue>
                      </FieldTargetDataType>
                      <FieldTargetDataType>
                        <DataSetFieldId>
                          <String>d749fe7a-375e-4df0-81f8-9223e7c8b617</String>
                        </DataSetFieldId>
                        <TargetNodeId>
                          <Identifier>ns=2;s=DateTime</Identifier>
                        </TargetNodeId>
                        <AttributeId>13</AttributeId>
                        <OverrideValueHandling>OverrideValue_2</OverrideValueHandling>
                        <OverrideValue>
                          <Value>
                            <DateTime>0001-01-01T00:00:00</DateTime>
                          </Value>
                        </OverrideValue>
                      </FieldTargetDataType>
                    </TargetVariables>
                  </TargetVariablesDataType>
                </Body>
              </SubscribedDataSet>
            </DataSetReaderDataType>
          </DataSetReaders>
        </ReaderGroupDataType>
      </ReaderGroups>
    </PubSubConnectionDataType>
  </Connections>
  <Enabled>true</Enabled>
</PubSubConfigurationDataType>

What's wrong here?

p.s. i've used the reloa the XML instead of building all the time the configuration in code: UaPubSubConfigurationHelper
Anyway also when building in code didn't work

Expected Behavior

I expect that the subscriber application receive the data published by the publishing application.

Steps To Reproduce

I've used the Quick Start for pub sub and just reduced to the Simple dataset only.

Environment

- OS: macOs
- Environment: vscode
- Runtime: .net7
- Nuget Version:   
<ItemGroup>
    <PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.Core" Version="1.5.372.1-rc" />
    <PackageReference Include="OPCFoundation.NetStandard.Opc.Ua.PubSub" Version="1.5.372.1-beta" />
  </ItemGroup>

- Component: Opc.Ua.Core.PubSub
- Server:
- Client:

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions