Edgex Foundry导出数据


1、启动export-distro工程监听接收消息

2、ZeroMQEventSubscriber.java接收消息

3、转到spring integration 开始处理消息

4、分发到 “export-inboud-events” 请求通道

5、ValidEventFilter.java处理“export-inboud-events”请求,此步检查valuedescriptor是否在库里已存在。若valuedescriptor.check=true,则检查event中的reads中所有的valuedescriptor是否存在core-data库中valuedescriptor表中,存在下一步进入“valid-inbound-events”,否则进入“invalid-inbound-events”查检无效的,打印日志结束

6、查询enable =true有效的导出客户端,生成相应的消息,分别发给它们

7、进行设备过滤若导出客户注册时,定义了ExportFilter,并包含了此设备ID ,执行导出,否则不导出

8、如果导出客户端有定义filter的ValueDescriptor,则只导出定义的ValueDescriptor

9、转换成客户端想要的导出格式

<think>好的,我需要回答用户关于在EdgeX Foundry中实现南北向数据流通的问题。首先,我需要理解南北向数据流的定义。南向通常指与设备或传感器通信,北向则是与上层应用或云平台交互。EdgeX作为中间件,需要在这两者之间传输数据。 接下来,我应该考虑EdgeX的组件。核心服务包括设备服务、核心数据、元数据等。设备服务负责南向通信,将设备数据采集到核心数据服务。北向可能需要通过应用服务将处理后的数据发送到外部系统,比如MQTT Broker或云平台。 用户需要一个教程和示例,我应该分步骤说明。首先配置设备服务添加设备,然后通过核心数据获取设备数据,接着用应用服务处理并导出数据。可能还需要提到数据传输的协议,比如MQTT、HTTP等,以及配置相关服务的方法。 需要确保提到的步骤具体,比如修改配置文件、使用规则引擎,或者调用REST API。示例部分可以给出一个导出到MQTT的配置示例,或者应用函数脚本。同时,要检查是否有相关的引用资料,比如EdgeX官方文档或指南,添加引用标识。 可能还需要提到一些优化或安全措施,比如数据过滤、加密传输,但用户主要问的是实现流程,所以这些可以作为附加信息。最后,生成相关问题,比如如何扩展设备服务、数据安全传输方法等,帮助用户进一步学习。 现在整理步骤:1.配置南向设备服务;2.数据采集到核心服务;3.配置北向应用服务导出数据。每个步骤给出具体操作和示例配置。确保使用正确格式,行内公式用$...$,独立公式用$$...$$,但这个问题可能用不上数学公式。不过要保持中文回答,结构清晰,分点说明。</think>### EdgeX Foundry南北向数据流通实现步骤 #### 一、南向数据采集(设备到EdgeX) 1. **配置设备服务** EdgeX通过设备服务(Device Service)与物理设备通信。以Modbus设备为例: - 修改`device-modbus`服务的配置文件,定义设备地址、寄存器映射等参数。 - 示例配置片段: ```yaml DeviceList: - name: "TempSensor1" protocol: "MODBUS-TCP" Address: "192.168.1.100:502" Readings: - Name: "Temperature" PrimaryTable: "HOLDING_REGISTERS" StartingAddress: "0" ``` 2. **数据上传至核心数据服务** 设备服务自动将采集的数据发送到`core-data`服务存储,可通过API查看: ```bash curl http://localhost:59880/api/v2/reading/device/TempSensor1/10 ``` #### 二、北向数据导出EdgeX到外部系统) 1. **配置应用服务** 使用`app-service-configurable`处理并转发数据: - 创建配置文件`mqtt-export.yml`,定义数据管道: ```yaml Writable: Pipeline: Functions: - Name: "MQTTExport" Parameters: BrokerAddress: "tcp://broker.example.com:1883" Topic: "edgex/data" ``` 2. **触发数据导出** 应用服务会从`core-data`订阅数据,处理后通过MQTT发送到指定主题。 示例输出数据格式: ```json { "device": "TempSensor1", "readings": [{"name": "Temperature", "value": "25.3"}] } ``` #### 三、进阶配置(可选) - **数据过滤**:在应用服务中添加`FilterByDeviceName`函数,仅转发特定设备数据[^1]。 - **协议扩展**:支持HTTP/REST、AWS IoT Core等北向协议,需配置对应连接参数。 #### 四、验证流程 1. 使用`mosquitto_sub`监听MQTT主题: ```bash mosquitto_sub -t "edgex/data" -v ``` 2. 模拟设备数据更新,观察终端是否收到JSON消息。 ```mermaid graph LR A[Modbus设备] -->|TCP| B(设备服务) B -->|REST| C[核心数据] C -->|消息总线| D[应用服务] D -->|MQTT| E[云平台] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值