esd安装win10 gtp(esd安装win10 包含类似错误)

简介

工业串口服务器,以提供串口与网络服务器之间的 双向数据透明传输 为核心业务。在不用修改原有产品系统的情况下,为串口设备提供了便捷的联网通道,即扩展了物联网功能,又保障了原有系统的稳定性。

串口端主要为 RS-232、485、422 等接口,网络端通常为 TCP、UDP、MQTT、HTTP 等协议服务器。

本文以实现 串口MQTT服务器 为项目目标,展开讲解,介绍如何通过 EsDA 工具和 MPC-ZC1 平台,进行应用开发,逐步完成项目需求。

前期准备

可通过 EsDA MPC-ZC1 入门篇相关文章,掌握 EsDA 基本开发流程:

EsDA MPC-ZC1 入门(一)—— 软件安装EsDA MPC-ZC1 入门(二)—— LED 控制

项目需求

项目开发前,先对项目需求进行梳理和拆解,主要有以下几点:

支持串口通信支持MQTT通信串口与MQTT服务器实现数据透传支持串口和MQTT服务器控制 LED 显示本文仅以 LED 作为扩展业务,可根据实际需求进行扩展

业务框图

根据项目需求,大致将系统划分为以下几大模块:

串口通信实现串口的数据收发功能实现串口基本参数配置功能(波特率、奇偶校验位、数据位)MQTT通信实现MQTT客户端功能配置目标服务器地址、端口发布和订阅指定主题数据解析解析数据流中的控制命令数据分发将解析出来的数据分发到其他模块

业务开发

串口通信

实现串口通信模块,需要使用到串口相关的 AWFlow 节点,包括 serial_ex、serial_in_ex、serial_out_ex 3个节点。

节点介绍

serial_ex

串口配置节点,属于隐式节点,不会被显示在画布中,需要配套对应的功能节点一起使用。

属性

名称(name): 节点名称,用于索引查找本节点显示名称(displayName): 用于画布上显示的名称端口(port): 用于索引串口设备波特率(baudrate): 串口波特率参数字节大小(bytesize): 数据位参数奇偶校验(parity): 串口奇偶校验位参数停止位(stopbits): 串口停止位参数流控(flowcontrol): 串口流控模式配置帧超时(frame_timeout): 收到数据后的总体等待时间帧长度(frame_length): 期望收据的数据长度码间超时(intersymbol_timeout): 字节间的最大超时时间

其中 帧超时、帧长度、码间超时 可用于分包应用,3个参数可同时使用,任意一个条件满足都会触发分包。

配置节点(config类型)只存在节点属性,不具备输入输出功能

serial_in_ex

串口接收节点,负责读取指定串口接收到的数据

属性

名称(name): 节点名称,用于索引查找本节点显示名称(displayName): 用于画布上显示的名称配置节点名称(config): 绑定一个串口配置节点

输入

pump类型节点通常不具备数据输入

输出

payload: 读取到串口接收的数据,字符串(可按二进制提取)payloadLength: 数据长度,uint32_t 类型payloadType: payload 的数据类型,用于后续节点数据处理istream: 数据流对象,保存着串口接收的原始数据流当 帧超时、帧长度、码间超时 其中任意参数有效时,输出payload 格式,否则输出 istream

serial_out_ex

串口发送节点,将上级节点输出的数据发送至串口发送接口。

属性

名称(name): 节点名称,用于索引查找本节点显示名称(displayName): 用于画布上显示的名称配置节点名称(config): 绑定一个串口配置节点

输入

payload: 负载数据,字符串类型(也可按二进制转换)payloadLength: 负载数据长度,uint32_t类型payloadType: 指示payload的数据类型istream: 数据流对象支持输入 payload 和 istream 数据,优先使用 istream

输出

sink类型节点通常不具备数据输出

回发验证

我们通过一个串口数据回发功能来验证串口通信模块。

添加节点

添加 serial_in_ex 和 serial_out_ex 节点到画布上。

配置节点

双击 serial_in_ex 节点,打开属性面板

选择 “添加新的 serial_ex 节点” ,点击编辑配置,进入配置节点属性面板。

点击添加,完成配置

可以看到已经创建了一个新的配置节点,名为 serial_ex,继续点击完成,结束接收节点的配置。

同样的,双击 serial_out_ex 节点,打开属性面板,直接选择刚刚创建的配置节点

点击完成,保存配置。

串口设备:Uart1波特率:115200字节大小:8bits奇偶校验:None停止位:1bits流控:None帧超时:100帧长度:0码间超时:0绘制流图

将 serial_in_ex 与 serial_out_ex 节点进行连接

下载验证

确保硬件正确连接

选择流图下载接口

点击下载

完成流图下载,通过串口工具进行数据回发测试。

MQTT通信

实现 MQTT 通信模块,需要使用到相关的AWFlow节点,包括 mqtt_config、mqtt_in、mqtt_out 3个节点。

节点介绍

mqtt_config

MQTT 配置节点,属于隐式节点,不会被显示在画布中,需要配套对应的功能节点一起使用。

属性

名称(name): 节点名称,用于索引查找本节点显示名称(displayName: 用于画布上显示的名称主机地址(host): 目标服务器域名(IP地址)端口(port): 目标服务器网络端口重连间隔(retry-interval): MQTT后台服务重连时间间隔,单位毫秒客户端ID(client-id): MQTT客户端ID用户名(user-name): MQTT客户端用户名密码(password): MQTT客户端密码保活包发送间隔(keep-alive-interval): 保活数据包发送周期,单位秒清除会话(clean-session): 使能自动清除历史会话上线主题服务质量等级(online-topic-qos): 上线QoS服务质量上线主题(online-topic-topic): 上线主题上线主题数据(online-topic-data): 上线主题数据遗嘱主题服务质量等级(last-will-qos): 遗嘱QoS服务质量遗嘱主题(last-will-topic): 遗嘱主题遗嘱主题数据(last-will-data): 遗嘱主题数据使能SSL(enable-ssl): 使能SSL加密功能根证书路径(root-ca-ssl): 根证书文件全路径客户端证书路径(client-certificate-path): 客户端证书文件全路径客户端密钥路径(client-private-key-path): 客户端密钥文件全路径

MQTT 配置属性项比较多,但好在节点中已经内置了常用的默认配置,用户仅需根据应用修改所需属性项即可。

配置节点(config类型)只存在节点属性,不具备输入输出功能

mqtt_in

MQTT 订阅节点,提供订阅指定主题的功能。

属性

名称(name): 节点名称,用于索引查找本节点显示名称(displayName): 用于画布上显示的名称主题(topic): 配置需要订阅的主题消息质量(qos): QoS主题服务质量等级配置(config): 绑定一个MQTT配置节点

输入

pump类型节点通常不具备数据输入

输出

topic: 主题标识,字符串类型payload: 负载数据,指针(pointer)类型payloadLength: 负载数据长度,uint32_t类型

mqtt_out

MQTT 发布节点,向服务器发布指定主题数据。

属性

名称(name): 节点名称,用于索引查找本节点显示名称(displayName): 用于画布上显示的名称消息质量(qos): QoS主题服务质量等级保留标志(retain): 使能主题信息在服务器保留主题(topic): 发布的主题配置(config): 绑定一个MQTT配置节点

输入

topic: 发布主题名称payload: 负载数据payloadLength: 负载数据长度,uint32_t类型

输出

sink类型节点通常不具备数据输出

回发验证

我们通过一个MQTT数据回发功能来验证MQTT通信模块。

添加节点

添加 mqtt_in 和 mqtt_out 节点到画布上。

配置节点

双击 mqtt_in_ex 节点,打开属性面板

选择 “添加新的 mqtt 节点” ,点击编辑配置,进入配置节点属性面板。

该节点已经内置好大部分常用的配置信息,此处,我们仅修改3个必须的属性项:

点击添加,完成配置

可以看到已经创建了一个新的配置节点,名为 mqtt,同时我们配置一个订阅主题 EsDA-MQTT-Down ,继续点击完成,结束接收节点的配置。

同样的,双击 mqtt_out 节点,打开属性面板,直接选择刚刚创建的配置节点,同时配置一个发布主题 EsDA-MQTT-Up

点击完成,保存配置。

主机地址:http://broker.emqx.io端口号:1883重连间隔:1000绘制流图

将 mqtt_in 与 mqtt_out 节点进行连接

下载验证

确保硬件正确连接,需要4G天线,以及一张可正常联网的SIM卡。

选择流图下载接口

点击下载

完成流图下载后,可通过MQTT客户端工具进行数据回发测试。

此处我们选择 MQTTX,下

下载结束并完成MQTTX客户端的安装,启动MQTTX客户端软件

点击新建连接,创建MQTT连接,如下进行配置

点击连接,完成客户端配置,进入连接后,添加订阅主题

订阅 MPC-ZC1 发布的主题 EsDA-MQTT-Up

最后发布 MPC-ZC1 订阅的主题 EsDA-MQTT-Down

输入发布的内容 EsDA MQTT Test Message!,点击发布主题,随后可以收到 MPC-ZC1 回发同样的内容。

串口MQTT透传

前面我们已经完成串口通信、MQTT通信功能,并进行数据回发测试,接下来我们要完成本项目的核心功能,串口与MQTT服务器之间的数据透明传输。

从前面两次数据回发的流图中,我们很容易想象到如下图所示的方式进行流图变换。

没错,只需将2条回发的数据流进行交换连接,即可达到2个通信接口的数据透明传输。

为了流图简洁性,我们进行节点的位置调整,如下所示。

下载流图,进行透传测试,效果如下图。

至此,我们完成串口服务器的核心功能,数据透明传输。后续我们会继续围绕串口服务器项目,进行业务的扩展,增加透传命令来控制设备上的LED。