# 创建北向应用

南向插件用于连接南向设备实现数据采集，北向插件用于连接到IOT平台或边缘流处理引擎。北向插件和南向插件组合使用实现数据采集和数据传递。

Neuron 目前支持以下北向节点：

- **[MQTT](./mqtt/overview.md)**：MQTT 插件允许用户快速构建使用 MQTT 协议的物联网应用程序，可以在设备和云之间进行通讯。
- [**eKuiper**](./ekuiper/overview.md)：LF Edge [eKuiper](https://ekuiper.org/) 是轻量级物联网数据分析和流处理引擎，eKuiper 插件使用户能够将收集到的数据转发到 eKuiper 以进一步处理。
- **[SparkPlugB](./sparkplugb/overview.md)**：Sparkplug B 是一种建立在 MQTT 3.1.1 基础上的工业物联网数据传输规范。Sparkplug B 插件从设备采集到的数据可以通过 Sparkplug B 协议从边缘端传输到 Sparkplug B 应用中，用户也可以从 Sparkplug B 应用程序向 Neuron 发送指令修改设备数据。
- **[WebSocket](./websocket/websocket.md)**：WebSocket 网络协议支持在单个 TCP 连接上提供双向通信通道。借助 WebSocket 插件，用户可以将采集的数据推送到 WebSocket 服务器。
- **[Monitor](./monitor/overview.md)**：Neuron 在启动时创建一个 Monitor 单例节点，用于监控Neuron的运行状态。您可以在仪表板的**北向应用**页签中看到 Monitor 节点。

本节将以 MQTT 插件为例，演示完整的北向应用添加流程以及如何订阅南向数据组。

## 添加北向应用

创建北向 MQTT 节点，连接并将点位数值上传到 MQTT Broker。

在**配置 -> 北向应用**，点击 **添加应用** 添加 MQTT 客户端节点：

* 名称：此应用节点名称，例如，mqtt；
* 插件：选择 MQTT 插件。

点击**创建**后，将跳转至**应用配置**页面，我们将在这里配置 Neuron 与北向应用建立连接所需的参数。您也可点击设备卡片上的设备配置图标进入**应用配置**界面。

## 设置北向应用参数

点击应用卡片上的 **应用配置** 按键进入应用配置界面设置 MQTT 连接，有关 MQTT 插件的配置项，可以查看 [MQTT 页面](./mqtt/overview.md)。

点击**提交**，完成北向应用的配置，应用卡片自动进入 **运行中** 的工作状态。

## 设备卡片

在**北向应用**页，在右上角可以选择列表或卡片展示北向应用，这里将以设备卡片为例介绍其中各选项的含义。

* **名称**：用户为北向应用提供的唯一名称。
* **应用配置**：点击该按钮进入配置界面，用于设置 Neuron 连接北向应用所需的参数。
* **编辑**：在希望更改名称的目标节点，点击**编辑**图标，在弹出的**编辑设备**对话框，修改节点名称。
* **数据统计**：统计节点卡片信息。
* **DEBUG 日志**：打印当前节点的 DEBUG 级别日志，十分钟后，Neuron 将恢复打印默认级别日志。
* **删除**：从设备列表中删除该节点。
* **工作状态**：显示设备节点的当前状态，目前节点分为五种工作状态。
  * **初始化**：首次添加北向应用后，将进入初始化状态。
  * **配置中**：进入设备配置，并进入配置状态。
  * **就绪**：配置成功后，进入就绪状态。
  * **运行中**：运行设备卡片。
  * **停止**：停止设备卡片。
* **工作状态切换按钮**：是否打开与设备的连接。
  * 打开：Neuron与设备/应用建立连接，开始收集数据。
  * 关闭：断开设备连接，停止收集数据。
* **连接状态**：显示设备的连接状态。
* **插件**：用于显示该设备使用的插件模块的名称。

## 订阅南向数据

采集点位是以组为单位进行数据上传的，订阅选择要上传的点位组。

点击 MQTT 节点卡片，进入**组列表**页，点击 **添加订阅** 选择要订阅的点位组，订阅南向设备的点位组。

![subscriptions-add](./assets/subscription-add.png)

* 南向设备：选择要订阅的南向设备，例如，modbus-tcp-1；
* 组：选择南向设备下的某个组，例如，group-1。

## 运行与维护

### 数据统计

在设备卡片或设备列，您可点击数据统计图表查看及应用运行情况、接受和发送的数据情况

![north_statistics](./assets/north_statistics.png)

其中关键字段说明如下：

| 参数                  | 说明                                                         |
| --------------------- | ------------------------------------------------------------ |
| send_msgs_total       | 发送消息总条数                                               |
| send_msg_errors_total | 消息发送失败的总条数                                         |
| recv_msgs_total       | 接收消息的总条数                                             |
| link_state            | 节点连接状态<br />DISCONNECTED = 0<br /> CONNECTED = 1       |
| running_state         | 节点状态 <br />INIT = 1<br />READY = 2<br />RUNNING = 3<br />STOPPED = 4 |

### 故障诊断

如果设备运行出现任何问题，您可点击 DEBUG 日志图表，此时系统将自动打印该节点的 DEBUG 级别日志，十分钟后将切回系统默认级别日志。稍后，您可点击页面顶部功能栏的**系统信息** -> **日志**查看日志，并进行故障诊断。有关系统日志的详细解析，见[管理日志](../../admin/log-management.md)。

