0

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

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

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

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

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

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

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

4

1 回答 1

0

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

创建本地参与者后,我使用本地参与者 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
于 2021-06-22T15:00:08.547 回答