首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenDDS IDL序列类型

OpenDDS IDL序列类型
EN

Stack Overflow用户
提问于 2020-10-07 05:21:14
回答 1查看 194关注 0票数 0

我正在尝试使用以下IDL发布视频帧:

代码语言:javascript
复制
typedef sequence<octet> Pixels;
module message {
   @topic
   struct Image {
      int width;
      int height;
      int bytesPerPixel;
      Pixels  data;
};

我也想发送2个图像数据序列(例如,原始和过滤)。可以通过声明为数组来排序容器,而不是声明"Pixels data2“吗?typedef sequence<octet> Pixels[2]显示错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-07 07:58:41

好的,我把这个IDL给了opendds_idl

代码语言:javascript
复制
typedef sequence<octet> Pixels[2];
module message {
  @topic
  struct Image {
    unsigned short width;
    unsigned short height;
    unsigned short bytesPerPixel;
    Pixels data;
  };
};

它接受了它:

代码语言:javascript
复制
opendds_idl --syntax-only test.idl                                                    
processing test.idl

然而,我决定尝试用它来构建一个库,以防生成的代码出错,这似乎是真的。

代码语言:javascript
复制
testTypeSupportImpl.cpp: In function ‘bool OpenDDS::DCPS::gen_skip_over(OpenDDS::DCPS::Serializer&, Pixels_forany*)’:
testTypeSupportImpl.cpp:83:41: error: ‘sequence’ does not name a type; did you mean ‘servent’?
     if (!gen_skip_over(ser, static_cast<sequence*>(0))) return false;

其他错误随之而来。似乎我们不支持同时为数组和序列定义类型。用两个作品替换typedef:

代码语言:javascript
复制
typedef sequence<octet> PixelSeq;
typedef PixelSeq Pixels[2];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64233975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档