Converter (TCP/IP)

使用 TCP/IP 转换器构造,可以使用从特定 MIB (SNMP 管理信息库) 对象检索数据的查询来扩展 bidi 通信 架构,然后将数据转换为基于 Conversion 元素中指定的值对列表的字符串值。 转换器构造在 Tcpbidi.xsd 中定义。

Attribute 说明
deviceIndex (可选) 一个布尔值,如果 为 TRUE,则表示关联的算法必须在指定的 OID 中包含设备索引;当此属性 为 FALSE 时,尾随零将追加到 OID。 默认值为 FALSE。 有关详细信息,请参阅此表后面的备注。
drvPrinterEvent (可选) 一个布尔值,该值指示端口监视器是否向驱动程序发送通知。 TRUE 值指示端口监视器向驱动程序发送通知;FALSE 表示端口监视器不向驱动程序发送通知。
name 一个表示架构元素名称的字符串值。
一个字符串值,表示 MIB 对象的地址,作为对象 ID (OID) 。
refreshInterval (可选) 轮询间隔的整数值(以秒为单位)。 默认值为 600 秒。
useFirstIndex (可选) 可设置为读取 MIB 表中第一个条目的布尔值。 仅当转换器构造位于 Property 实例中时,才使用此属性。

注意

支持 SNMP 协议的网络设备可以是不同子设备的主机,例如处理器、网络、打印机和磁盘存储。 网络打印机中实现的 MIB 表具有按设备索引编制索引的条目。 若要从 MIB 表 (检索数据(例如输入箱) 的名称),查询必须具有正确标识子设备的设备索引。 标准 TCP/IP 端口监视器允许通过端口配置 UI 手动配置设备索引。 将 deviceIndex 属性设置为 TRUE 的 bidi 扩展将生成具有从端口配置 UI 获取的适当设备索引的 OID。 此外,如果 Property 实例中包含 Converter 构造,并且 deviceIndex 属性缺失或设置为 FALSE,则 OID 的末尾将追加零索引。

转换例程支持以下 MIB 数据类型:

  • INTEGER

  • Integer32

  • 仪表 32

  • Counter32

  • TimeTicks

  • Unsigned32

  • Counter64

  • 不透明

  • 八进制字符串

  • 对象标识符

Conversion 元素

每个转换器构造将包含一个或多个 Conversion 元素,用于定义从 MIB 元素读取的值到 Bidi 架构值的映射。

Attribute 说明
mibValue (可选) 一个字符串值,表示可以从 MIB 读取的一个可能的数据值。
bidiValue (可选) 一个字符串值,表示如果数据与此 Conversion 元素的 mibValue 属性匹配,则返回的 bidi 值。

代码示例

下面的代码示例通过添加新属性和转换器构造来扩展 bidi 通信架构。

<Property name="Printer">
  <Property name="Layout">
    <Property name="InputBins">
      <IndexedProperty name="Bin">
        <Converter name="BinType" oid="1.3.6.1.2.1.43.8.2.1.2" deviceIndex="true">
          <Conversion mibValue="2" bidiValue="Unknown"/>
          <Conversion mibValue="3" bidiValue="SheetFeedAutoRemovableTray"/>
          <Conversion mibValue="4" bidiValue="SheetFeedAutoNonRemovableTray"/>
          <Conversion mibValue="5" bidiValue="SheetFeedManual"/>
          <Conversion mibValue="6" bidiValue="ContinuousRoll"/>
          <Conversion mibValue="7" bidiValue="ContinuousFanFold"/>
        </Converter>
      </IndexedProperty>
    </Property>
    <Property name="Orientation">
      <Converter name="CurrentValue" oid="1.3.6.1.2.1.43.15.1.1.7" deviceIndex="true" useFirstIndex="true">
        <Conversion mibValue="3" bidiValue="Portrait"/>
        <Conversion mibValue="4" bidiValue="Landscape"/>
     </Converter>
   </Property>
 </Property>
 <Property name="Custom">
    <Property name="HostResourceMIB">
      <Converter name="InterfaceName" oid="1.3.6.1.2.1.2.1">
      <Conversion mibValue="1" bidiValue="InterfaceOne"/>
    <Conversion mibValue="2" bidiValue="InterfaceTwo"/>
     </Converter>
  </Property>
 </Property
</Property>

前面的示例生成以下查询。

\Printer.Layout.InputBins.Bin###:BinType
\Printer.Layout.Orientation:CurrentValue
\Printer.Custom.HostResourceMIB:InterfaceName

BinType 转换器构造包含在 IndexedProperty 实例中,因此,当前 MIB 表行项会自动追加到 OID 中。

由于 的 CurrentValue Converter 构造包含在 Property 实例中,并且 useFirstIndex 属性设置为“true”,因此尾随“1”会自动追加到 OID。

InterfaceName 转换器构造包含在属性实例中,因此尾随零会自动追加到 OID。