GnuRadio Companion OOT XML Schema文档

时间:2017-10-02 22:56:09

标签: gnuradio-companion

GnuRadio配套使用XML文件来描述树外(OOT)模块块的API。描述该XML模式的文档在哪里?

1 个答案:

答案 0 :(得分:1)

此处有部分说明:https://wiki.gnuradio.org/index.php/GNURadioCompanion#Creating_the_XML_Block_Definition

  
      
  • 名称标记用于指示块,参数和端口的标签文本。

  •   
  • 标记是唯一标识符,它们可能不包含空格。块密钥在GRC中的所有块中必须是全局唯一的。该   参数键只能在块内唯一。

  •   
  • 类别标记是一个unix样式的路径,表示块选择窗口内块的位置。路径可以是新的   类别(自定义),或表示子类别(过滤器/自定义)。至   将一个块放入根类别,只需使用一个斜杠(/)即可   根路径。

  •   
  • import 标记(可以有多个)必须是包含块的模块的有效python import语句。

  •   
  • make 标记包含构建块所需的代码。此代码本质上是嵌套在xml标记内的猎豹模板。   生成代码后,模板会对代码执行文本替换   “$”参数。有关更高级的功能,请参阅猎豹   模板文档。

  •   
  • 回调标记会在您的自定义块中注册一个set方法。注册set-method后,可以在运行时调用set-method   当变量改变时。可以有任意数量的回调标签,   你的块的每个set方法都有一个。如果是这样,或者没有回调标签   不适用。

  •   
  • 对于 param 标记,类型标记的常用值为:complex,real,int,complex_vector,real_vector,int_vector,string,   和原始的。原始类型允许使用任何值而不执行   类型检查。真实类型应该用于单个和双重   精确浮点数。 int类型应该用于   长,小,短,和字符。

  •   
  • 隐藏标记控制参数在GRC中的显示方式。它可以是无,部分(在道具对话框中显示,而不是在块中   帆布)或全部。

  •   
  • 接收器标记表示输入端口,标记表示输出端口。类型标记的允许值为:complex,   float,int,short和byte。对于具有向量长度的端口,请指定a   类型标记后的vlen标记。

  •   

代替更好的替代方案,有一个描述块的XML的文档类型定义:https://github.com/gnuradio/gnuradio/blob/master/grc/core/block.dtd。相关部分如下所示:

<!--
    Top level element.
    A block contains a name, ...parameters list, and list of IO ports.
 -->
<!ELEMENT block (name, key, category?, throttle?, flags?, import*, var_make?, var_value?,
        make, callback*, param_tab_order?, param*, bus_sink?, bus_source?, check*,
        sink*, source*, bus_structure_sink?, bus_structure_source?, doc?,  grc_source?)>
<!--
    Sub level elements.
 -->
<!ELEMENT param_tab_order (tab+)>
<!ELEMENT param (base_key?, name, key, value?, type?, hide?, option*, tab?)>
<!ELEMENT option (name, key, opt*)>
<!ELEMENT sink (name, type, vlen?, domain?, nports?, optional?, hide?)>
<!ELEMENT source (name, type, vlen?, domain?, nports?, optional?, hide?)>
<!--
    Bottom level elements.
    Character data only.
 -->

维基百科描述了Document type definition中使用的限定符:

  

量词是紧随其后的单个字符   它适用的指定项目,限制连续的数量   在内容的指定位置出现这些项目   元素;它可能是:

     
      
  • +用于指定项目必须出现一次或多次 - 每次出现的有效内容可能不同;

  •   
  • *用于指定允许任何数量(零个或多个)出现 - 该项目是可选的,每个项目的有效内容   发生可能不同

  •   
  • ?用于指定一定不能   不止一次出现 - 该项目是可选的;

  •   

&lt; check&gt; 标记可用于验证。例如。如果你有一个带有键“title”的参数和另一个带有键“num”的参数,你可以使用以下顶级标签进行验证。

<check>$title != ""</check>
<check>$num &gt; -1</check>
<check>$num &lt; 5</check>