DDS QoS:是否可以在不指定密钥的情况下发送数据?
DDS QoS: Is it possible to send data without specifying a key?
我目前正在使用 Eclipse Cyclone DDS C++,我想知道是否可以在不使用 IDL 中 #pragma keylist
指定的任何密钥的情况下发送数据。
是否可以通过 QoS 设置实现此目的?如果可以,怎么做?
如果您 #pragma keylist TYPE
没有列出任何关键字段,IDL 编译器将生成创建没有任何关键字段的主题所需的一切。所以
struct S {
long something;
string orother;
};
#pragma keylist S
完全有效,然后就可以为S
创建话题了。
我不太清楚你的意思
In this case writes to the same topic could not be distinguished by the readers.
以上将导致该主题的单个实例。您仍然可以拥有历史记录,因此 reader 仍然可以通过指定 KEEP_ALL
历史记录设置来确保它看到每个更新。因此 reader 仍然可以通过查看样本信息的内容 and/or 来区分写入,但是对于 DDS 这些都是对这一实例的更新。
Is it possible to achive this through the QoS-Settings?
不,您不能(目前)使用 QoS 设置覆盖关键字段。
我目前正在使用 Eclipse Cyclone DDS C++,我想知道是否可以在不使用 IDL 中 #pragma keylist
指定的任何密钥的情况下发送数据。
是否可以通过 QoS 设置实现此目的?如果可以,怎么做?
如果您 #pragma keylist TYPE
没有列出任何关键字段,IDL 编译器将生成创建没有任何关键字段的主题所需的一切。所以
struct S {
long something;
string orother;
};
#pragma keylist S
完全有效,然后就可以为S
创建话题了。
我不太清楚你的意思
In this case writes to the same topic could not be distinguished by the readers.
以上将导致该主题的单个实例。您仍然可以拥有历史记录,因此 reader 仍然可以通过指定 KEEP_ALL
历史记录设置来确保它看到每个更新。因此 reader 仍然可以通过查看样本信息的内容 and/or 来区分写入,但是对于 DDS 这些都是对这一实例的更新。
Is it possible to achive this through the QoS-Settings?
不,您不能(目前)使用 QoS 设置覆盖关键字段。