创建解析器

本指南介绍了如何创建解析器。解析器执行数据转换和映射。确切的转换步骤在 Manufacturing Data Engine (MDE) 的 whistle 脚本文档中定义。

创建解析器

解析器通过 Whistle 脚本执行源到目标的映射。创建解析器时,您必须定义三个核心元素:

  1. 解析器订阅的消息流的 消息类(输入)。
  2. 解析器发出的 proto 记录流的 类型版本(输出)。
  3. 将来自指定 消息类(输入)的源消息转换为已定义 类型版本(输出)的 proto 记录的 Whistle 脚本。

Whistle 脚本应用于源消息类流中的每条消息,并输出特定 类型 版本的 proto 记录。我们建议您花时间对源消息类进行建模,以便它们共享通用的语义和架构结构。定义明确的源消息类有助于最大限度地减少 解析器 中的复杂条件逻辑。如需更多指导,请参阅对源消息类进行建模部分。

您可以使用配置 API 或控制台创建解析器:

REST

POST /configuration/v1/parsers

{
  "name": "PARSER_NAME",
  "messageClassName": "SOURCE_MESSAGE_CLASS_NAME",
  "typeReference": {
    "name": "TYPE_NAME",
    "version": TYPE_VERSION
  },
  "script": "WHISTLE_SCRIPT"
}

替换以下内容:

  • PARSER_NAME:解析器的名称。
  • SOURCE_MESSAGE_CLASS_NAME:此解析器订阅的消息流的 源消息类 的名称。
  • TYPE_NAME:此解析器发出的 proto 记录共享的 类型 的名称。
  • TYPE_VERSION:此解析器发出的 proto 记录共享的 类型版本
  • WHISTLE_SCRIPT:定义转换的 Whistle 脚本。

控制台

  1. 如需使用控制台创建新的解析器 ,请在顶部菜单中选择 PARSERS 部分。系统会显示可用解析器的列表:

    解析器 - 可用解析器列表

  2. 对于每个可用的解析器,列表中会显示以下信息:

    • Name:解析器的名称。
    • Message Class Name:解析器从中提取数据的消息类的名称。
    • Type:解析器发出的目标类型。
    • Type Version:解析器发出的目标类型版本。
    • Enabled:解析器的状态(已启用或已停用)。
    • Actions:解析器的可用操作:
      • “查看/修改”:打开给定解析器的修改菜单。
      • “停用/启用”:允许停用已启用的解析器或启用 已停用的解析器。
      • “测试解析器”:打开专用界面,以使用给定的 JSON 文件测试解析器。
      • “删除”:从 MDE 中删除解析器。
  3. 如需创建新的解析器,请点击 ADD NEW PARSER

  4. 如需打开给定解析器的修改部分,请点击操作 图标中的查看/修改 。屏幕右侧会显示一个侧边菜单,其中列出了创建新解析器所需的所有参数:

    解析器 - 新解析器

  5. 如需定义新解析器,必须提供以下参数:

    • Name:解析器的名称。创建后无法修改。
    • Message Class:解析器从中提取数据的消息类 的名称。解析器创建后无法修改。从可用消息类的列表中选择消息类。
    • Parser Code:定义与解析器关联的映射的 Whistle 文件。您可以随时对其进行修改。修改 Whistle 代码不会生成新版本的解析器。解析器实际上没有版本控制。
    • Type:解析器发出的输出类型 。解析器创建后无法修改。从可用类型的列表中选择类型。对于新解析器,系统默认选择最新类型版本。

如需创建解析器,请修改解析器参数,然后点击底部的 CREATE 。如果新解析器已成功创建,系统会显示确认消息。

测试解析器

您可以通过提供 Whistle 脚本和输入消息示例来测试解析器:

REST

POST /configuration/v1/parsers:test

{
  "script": "SCRIPT",
  "testMessage": TEST_MESSAGE
}

替换以下内容:

  • SCRIPT:要测试的 Whistle 脚本(格式为字符串)。
  • TEST_MESSAGE:输入测试消息(格式为 JSON 对象)。

控制台

您可以直接从操作 菜单以及修改解析器 菜单中测试解析器。

  1. 如需测试解析器,请点击 TEST 。系统会打开一个测试界面:

    解析器 - 可用解析器列表

  2. 提供 JSON 消息 示例来测试解析器。

  3. 输入 框中输入消息,然后点击 RUN TEST 按钮。

  • 如果转换成功,输出消息会显示在结果 框中。
  • 如果转换失败,系统会显示一条错误消息,其中包含错误可能的原因。
  1. 使用有效的 JSON 文件作为测试消息,该文件具有可由解析器的 Whistle 文件处理的结构。例如,以下是由 Manufactueing Connect 边缘生成的数值载荷示例,可在 default-numeric-value-to-default-numeric-records 解析器中进行测试:
{
  "datatype": "int",
  "description": "",
  "deviceID": "0619E715-D1B8-438F-A1AB-E4D65D27EE83",
  "deviceName": "MicroLogix1100",
  "metadata": {
    "location": "ES-BCN-GRA",
    "manufacturer": "AllenBradley",
    "model": "MicroLogix1100",
    "os_revision": "Series B FRN 12.0",
    "source": "mce"
  },
  "registerId": "0997D2ED-B2AB-434C-9754-C1A3C2E9C165",
  "success": true,
  "tagName": "Manufactueing Connect edge_July_test_tag",
  "timestamp": 1691163012045,
  "value": 8004
}

修改解析器

您可以更新现有解析器,包括更新 Whistle 脚本:

REST

PATCH /configuration/v1/parsers/NAME

{
  "disabled": DISABLED,
  "script": "SCRIPT",
  "typeReference": {
    "name": "TYPE_NAME",
    "version": TYPE_VERSION
  },
  "script": "WHISTLE_SCRIPT"
}

替换以下内容:

  • DISABLED:解析器的状态(true 或 false)。
  • NAME:解析器的名称。
  • TYPE_NAME:此解析器发出的 proto 记录共享的 类型 的名称。
  • TYPE_VERSION:此解析器发出的 proto 记录共享的 类型版本
  • WHISTLE_SCRIPT:定义转换的 Whistle 脚本。

控制台

  1. 如需打开给定解析器的修改部分,请点击操作 图标中的查看/修改

    解析器 - 可用操作列表

  2. 系统会打开修改解析器 侧边菜单,其中列出了配置解析器所需的参数:

    解析器 - 修改解析器侧边菜单

  • Name:解析器的名称。创建后无法修改。
  • Message Class:解析器从中提取数据的消息类 的名称。解析器创建后无法修改。
  • Parser Code:定义与解析器关联的映射的 Whistle 文件。您可以随时对其进行修改。修改 Whistle 代码不会生成新版本的解析器。解析器没有版本控制。
  • Type:解析器发出的输出类型 。解析器创建后无法修改。
  • Version:解析器发出的输出类型版本 。您可以随时修改为更高版本。
  1. 如需修改解析器,请修改解析器参数,然后点击 SAVE
  2. 如果解析器已成功创建,系统会显示确认消息。