【问题标题】:Opensplice - Getting the nodeId in C# from a local participantOpensplice - 从本地参与者获取 C# 中的 nodeId
【发布时间】:2021-06-21 12:52:54
【问题描述】:

我正在使用 DCPSParticipant 内置主题来检索有关域中参与者的信息(我正在使用 C#)。

example 中,接收到的样本包含可以通过以下方式访问的节点标识:

int nodeId = data[i].Key[0];

现在,我想从本地创建的参与者那里获得相同的 ID。目标是将本地参与者与 ParticipantBuiltInTopicData 关联起来。

在 RTI 中,我们可以通过其实例句柄获取参与者的 GUID(参见 this post),但是我无法在 C# 中复制它。

如何从本地参与者那里获取 nodeID?

或者,我可以获取本地参与者的 GUID 吗?

【问题讨论】:

    标签: c# data-distribution-service opensplice


    【解决方案1】:

    我找到了一种方法,虽然看起来有点奇怪。

    创建本地参与者后,我使用本地参与者 instanceHandle 调用 GetDiscoveredParticipantData

    IDomainParticipant participant = DomainParticipantFactory.Instance.CreateParticipant(DomainId.Default);
    InstanceHandle handle = participant.InstanceHandle;
    ParticipantBuiltinTopicData selfData = new ParticipantBuiltinTopicData();
    
    participant.GetDiscoveredParticipantData(ref selfData, handle);
    Console.WriteLine(selfData.Key[0]); // Node id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-07
      • 2022-06-12
      • 2016-12-21
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-25
      相关资源
      最近更新 更多