多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# serial ___ 在一些场景中,我们需要使用到本机串口与设备进行一些通讯,这时候我们用到serial控件与串口进行通讯 ## 一、案例使用工具 1. **NetAssist(网络调试助手)** 本案例中用于创建TCP服务,让虚拟串口将接收到的信号转发到该端口上 - 下载地址 [NetAssist](http://am-file.gkiiot.com/file/NetAssist.exe) - 打开软件 - 创建TCP服务 这边创建端口为8000 ![](https://box.kancloud.cn/dd2047a04a5360099e17dae78447424e_637x575.png) - 服务创建完毕 ![](https://box.kancloud.cn/bc9684fc56665148ab174811d3bf88ca_637x575.png) 2. **USR-VCOM** 本案例中使用虚拟串口通讯,使用本工具可以创建虚拟串口,使用教程如下 - 软件下载地址[USR-VCOM](http://am-file.gkiiot.com/file/USR-VCOM_V3.7.1.520_Setup.zip) - 解压安装 - 创建一个串口,这边选择本机没有的串口COM1,协议选择TCP Clienti,端口填刚才我们创建的8000 ![](https://box.kancloud.cn/80ac674bbf4705ab59a37092907caba5_1126x652.png) - 虚拟串口创建完毕,并显示网络已连接 ![](https://box.kancloud.cn/3d6a727af99a554f56fd1e2662ee8575_1126x652.png) ## 二、案例使用控件 1. **定时器** 周期性触发输入时间戳或者相应的字符 ![20190319192401.png](https://i.loli.net/2019/03/19/5c90d154165f7.png) 2. **serial** 系列控件用于与本机串口通讯 ![](https://box.kancloud.cn/a3e24e6ae5c379e9c82ddfb789a5d5f9_75x74.png)![](https://box.kancloud.cn/4170b899fd78a10992603d13f0413dd1_75x72.png)![](https://box.kancloud.cn/21766bee83b38299ad6c324390081443_77x75.png) 3. **调试** 用于在调试窗口输出调试内容 ![20190319194748.png](https://i.loli.net/2019/03/19/5c90d6e68653a.png) ## 三、案例 1. 案例一:使用**serial in**向串口输入信息 ### 配置界面 按如下界面连接相应的控件 ![](https://box.kancloud.cn/eaa1c37015971e5a099099a585ae1d36_1384x821.png) ### 节点属性配置 ![20190319192401.png](https://i.loli.net/2019/03/19/5c90d154165f7.png) **定时器** 本案例中用于触发向**serial in**控件输入消息,这边我的消息选择 **json** 内容为`{"statu":"ok"}`,重复点击`周期性执行`,间隔选择`1秒`,配置相应属性后点击`完成`保存 ![](https://box.kancloud.cn/99117179fe3330a89795daaa19a1c12f_527x489.png) ![](https://box.kancloud.cn/bc687309b3b397acfba0cb10958ba45e_77x75.png) **serial in** 用于向串口输入信息。本案例中选择配置串口端口`COM1`,波特率`9600`,数据位`8`,校验`None`,停止位`1`,配置完成后点击`完成`进行保存 ![](https://box.kancloud.cn/ca15ef929f0644c663593e0d2d3fe5aa_512x297.png) ![](https://box.kancloud.cn/8e5e4ea5ceb254dde29caa87696c1671_524x569.png) ### 部署调试 按上面教程配置好相应控件后,点击菜单栏的`部署`菜单进行部署,部署后程序开始运行。 ![](https://box.kancloud.cn/d4bd0e558431fa6cd98447c888ea9280_1400x860.png) 打开 **NetAssist(网络调试助手)** 可以看到我们的TCP服务每隔一秒就会接受到虚拟串口转发的消息 ![](https://box.kancloud.cn/5ad81b0868e0510cbf74e44ab111db4c_637x575.png) ### 示例代码 以上教程可以通过拷贝下面代码实现快速复用,在新建的流程中点击界面右侧 **菜单栏**-**导入**-**剪贴板**,在文本框中粘贴下面代码后点击确定,即可快速复用 ```js [ { "id": "a7a23325.99c", "type": "serial out", "z": "41f61d2.fbe09e4", "name": "", "serial": "deea0d.bec835f", "x": 375, "y": 160, "wires": [] }, { "id": "e9b19dd.063fe6", "type": "inject", "z": "41f61d2.fbe09e4", "name": "", "topic": "", "payload": "{\"statu\":\"ok\"}", "payloadType": "json", "repeat": "1", "crontab": "", "once": false, "onceDelay": 0.1, "x": 240, "y": 160, "wires": [ [ "a7a23325.99c" ] ] }, { "id": "deea0d.bec835f", "type": "serial-port", "z": "", "serialport": "COM1", "serialbaud": "9600", "databits": "8", "parity": "none", "stopbits": "1", "newline": "\\n", "bin": "false", "out": "char", "addchar": false, "responsetimeout": "10000" } ] ``` <br> 2. 案例二:使用**serial out**监听来自串口的信息 ### 配置界面 按如下界面连接相应的控件 ![](https://box.kancloud.cn/412ea32ffb18ba81e1400c4b5793f9c7_1384x821.png) <br> <br> ### 节点属性配置 ![](https://box.kancloud.cn/c86f8ea67032b06b941777dffafb648c_73x72.png) **serial out** 本案例中用于监听来自串口的消息,本案例中选择配置串口端口`COM1`、波特率`9600`、数据位`8`、校验`None`、停止位`1`、拆分输入`静默之后`,配置完成后点击`完成`进行保存 ![](https://box.kancloud.cn/57c8214754f81a2e8214be74115e2ca4_521x561.png) <br> ![](https://box.kancloud.cn/a84ed2a1d2b611dab0abe329e77f0673_74x76.png) **调试** 用于在调试窗口输出监听到的消息,连接好后无需配置 <br> <br> ### 部署调试 按上面教程配置好相应控件后,点击菜单栏的`部署`菜单进行部署,部署后程序开始运行。我们使用 **NetAssist(网络调试助手)**软件搭建的TCP服务的`数据发送`窗口内输入`{"return":"ok"}`,点击`发送` ![](https://box.kancloud.cn/c02c7f04bb0a3f143a213183e971582c_637x575.png) 打开`海创IIoT软件`可以在调试窗口看到 **serial out** 控件从虚拟串口监听到的消息 ![](https://box.kancloud.cn/979e8c3009303cb065299a28792e79e6_1384x821.png) ### 示例代码 以上教程可以通过拷贝下面代码实现快速复用,在新建的流程中点击界面右侧 **菜单栏**-**导入**-**剪贴板**,在文本框中粘贴下面代码后点击确定,即可快速复用 ```js [ { "id": "47429129.272a4", "type": "serial in", "z": "41f61d2.fbe09e4", "name": "", "serial": "deea0d.bec835f", "x": 200, "y": 200, "wires": [ [ "a88b05bf.78a2f8" ] ] }, { "id": "a88b05bf.78a2f8", "type": "debug", "z": "41f61d2.fbe09e4", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "x": 335, "y": 200, "wires": [] }, { "id": "deea0d.bec835f", "type": "serial-port", "z": "", "serialport": "COM1", "serialbaud": "9600", "databits": "8", "parity": "none", "stopbits": "1", "newline": "0", "bin": "false", "out": "interbyte", "addchar": false, "responsetimeout": "10000" } ] ``` <br> <br> 3. 案例三:使用**serial request**向串口发送、接收数据 ### 配置界面 按如下界面连接相应的控件 ![](https://box.kancloud.cn/c661980b68db673bca24605145e49dec_1384x821.png) <br> <br> ### 节点属性配置 **定时器** 本案例中用于触发向**serial in**控件输入消息,这边我的消息选择 **json** 内容为`{"statu":"ok"}`,重复点击`周期性执行`,间隔选择`1秒`,配置相应属性后点击`完成`保存 ![](https://box.kancloud.cn/99117179fe3330a89795daaa19a1c12f_527x489.png) <br> ![](https://box.kancloud.cn/c99b7631f310279362a3858dd351014c_74x73.png) **serial out** 本案例中用于监听来自串口的消息,本案例中选择配置串口端口`COM1`、波特率`9600`、数据位`8`、校验`None`、停止位`1`、拆分输入`静默之后`,配置完成后点击`完成`进行保存 ![](https://box.kancloud.cn/57c8214754f81a2e8214be74115e2ca4_521x561.png) <br> ![](https://box.kancloud.cn/a84ed2a1d2b611dab0abe329e77f0673_74x76.png) **调试** 用于在调试窗口输出监听到的消息,连接好后无需配置 <br> <br> ### 部署调试 按上面教程配置好相应控件后,点击菜单栏的`部署`菜单进行部署,部署后程序开始运行。可以看到**serial request**控件向虚拟串口发送了一条消息,并处于等待接收状态 ![](https://box.kancloud.cn/c1266934ba126db52561ea9057e5b943_1384x821.png) 打开 **NetAssist(网络调试助手)** 可以看到我们的TCP服务接收到虚拟串口转发的消息,`数据发送`窗口内输入`{"return":"ok"}`,点击`发送` ![](https://box.kancloud.cn/9e3c32b82e527024c73f487dd1359585_637x575.png) 打开`海创IIoT软件`可以在调试窗口看到 **serial out** 控件从虚拟串口监听到的消息 ![](https://box.kancloud.cn/9b6b7e827db683cd284bc3c392c3957e_1384x821.png) ### 示例代码 以上教程可以通过拷贝下面代码实现快速复用,在新建的流程中点击界面右侧 **菜单栏**-**导入**-**剪贴板**,在文本框中粘贴下面代码后点击确定,即可快速复用 ```js [ { "id": "42ab587d.656478", "type": "inject", "z": "41f61d2.fbe09e4", "name": "", "topic": "", "payload": "{\"status\":\"ok\"}", "payloadType": "json", "repeat": "1", "crontab": "", "once": false, "onceDelay": 0.1, "x": 175, "y": 240, "wires": [ [ "cc2a51ae.39ee7" ] ] }, { "id": "cc2a51ae.39ee7", "type": "serial request", "z": "41f61d2.fbe09e4", "name": "", "serial": "deea0d.bec835f", "x": 315, "y": 240, "wires": [ [ "d2f7ae7e.03215" ] ] }, { "id": "d2f7ae7e.03215", "type": "debug", "z": "41f61d2.fbe09e4", "name": "", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "false", "x": 455, "y": 240, "wires": [] }, { "id": "deea0d.bec835f", "type": "serial-port", "z": "", "serialport": "COM1", "serialbaud": "9600", "databits": "8", "parity": "none", "stopbits": "1", "newline": "0", "bin": "false", "out": "interbyte", "addchar": false, "responsetimeout": "10000" } ] ```