LED节点添加、配置、连线等基本开发过程

LED节点添加、配置、连线等基本开发过程,第1张

继上一篇章 EsDA MPC-ZC1 入门(一)—— 软件安装 ,本章节以最简单的 LED控制 例程来介绍 AWFlow 应用流图的基本开发过程。

整个教程通过5个步骤,演示了节点添加、配置、连线等基本开发过程,实现了LED点亮, 闪烁, 流水灯等功能。

Step.1 搜索 LED 节点

可通过搜索框,快速定位到 LED 节点。

LED节点添加、配置、连线等基本开发过程,16b5760a-1ea1-11ed-ba43-dac502259ad0.png,第2张

每一个节点都有对应的帮助文档,详细介绍了节点的属性、输入参数、输出数据、行为特性和对应例程。

LED节点添加、配置、连线等基本开发过程,16c9aaa8-1ea1-11ed-ba43-dac502259ad0.png,第3张

1. LED 节点属性

名称(Name):节点名称,可用于索引查找本节点;

显示名称(Display Name):用于画布上显示的名称,仅做显示;

设备名称(Device Name):用于索引硬件 LED 设备,通常由目标板提供枚举选项;

初始状态(IniTIal State):LED 初始状态,on(亮) 或 off(灭)。

2. LED 输入参数

payload(负载数据):指示 LED 的状态参数,0(灭),1(亮),2(反转);

TImer(闪烁周期):当本参数存在时,LED 进入闪烁模式,并按照参数值,周期性闪烁;

device_name(设备名称):通常用于多 LED 控制时,匹配指定 LED 设备;

fast_blink(闪烁次数):当使能 TImer 功能,此参数可用于设置闪烁参数。

所有节点的输入参数皆由上级节点输出提供,通常为 msg 对象携带的对应属性参数。

3. LED 输出数据LED 为 sink 类型节点,不对外输出。

Step.2 添加 LED 节点

将 LED 节点推拽至画布上,完成节点添加。

LED节点添加、配置、连线等基本开发过程,16ecbc46-1ea1-11ed-ba43-dac502259ad0.png,第4张

双击画布上的 LED 节点,打开节点配置界面。

LED节点添加、配置、连线等基本开发过程,16f7d680-1ea1-11ed-ba43-dac502259ad0.png,第5张

此处选择 led_red 设备,对应板载的红色LED,并将初始状态配置为 on,然后点击完成。

属性说明可以参考 LED 节点属性 章节。

Step.3 下载流图

点击 请选择目标板,选中目标板通信接口(AWFlow Designer 后台会自动检测符合AWFlow 通信标准的通信接口)。

LED节点添加、配置、连线等基本开发过程,170c3170-1ea1-11ed-ba43-dac502259ad0.png,第6张

点击下载流图按钮。

LED节点添加、配置、连线等基本开发过程,171d2480-1ea1-11ed-ba43-dac502259ad0.png,第7张

下载完成。

LED节点添加、配置、连线等基本开发过程,17348076-1ea1-11ed-ba43-dac502259ad0.png,第8张

此时可以看到板子的 红色LED 已经亮起,这是因为我们配置了 LED 的初始状态为 on,所以当 LED 节点被加载时,会点亮对应的LED。

LED节点添加、配置、连线等基本开发过程,1740121a-1ea1-11ed-ba43-dac502259ad0.png,第9张

虽然LED已经成功点亮,但是仅使用 LED 节点并不能实现复杂的状态控制功能,我们需要进一步添加其他节点来实现复杂业务。

Step.4 添加业务

大多数带有业务的数据流,都会根据系统中的一些事件来做出响应的,一般以一个 pump 类型的节点作为起始点,通过此节点接收系统事件来触发数据流执行,这里我们以 1秒 反转一次LED状态 作为业务。我们需要添加一个 TImer 节点,利用 timer 节点产生的周期事件来触发数据流执行,同时推动一个 fscript 脚本节点来向 LED 节点输入反转的命令。

添加 timer 节点

LED节点添加、配置、连线等基本开发过程,175caaa6-1ea1-11ed-ba43-dac502259ad0.png,第10张

添加 fscript 节点

LED节点添加、配置、连线等基本开发过程,17704af2-1ea1-11ed-ba43-dac502259ad0.png,第11张

编辑 fscript 节点

LED节点添加、配置、连线等基本开发过程,17807008-1ea1-11ed-ba43-dac502259ad0.png,第12张

如图片所示:

添加 timer、fscript 节点,并进行连线;

编辑 fscript 节点脚本。

msg.payload = 2

可参考 LED 输入参数

timer 节点默认以 1 秒为周期,触发数据流运行,向 fscript 传递定时计数值,此处 fscript 节点并未使用 timer 的计数值,仅利用其周期事件来向 LED 节点发送反转命令。

LED节点添加、配置、连线等基本开发过程,178d9fc6-1ea1-11ed-ba43-dac502259ad0.png,第13张

下载流图

重复 Step.3 下载流图 的步骤,下载最新流图,可以看到板载红色LED整以1秒的周期进行反转。

LED节点添加、配置、连线等基本开发过程,17996572-1ea1-11ed-ba43-dac502259ad0.gif,第14张

Step.5 扩展业务

为了更加深入的了解业务的开发过程,这里通过流水灯业务进一步扩大业务规模。

1. 添加新数据流

按照之前添加节点的方式,新增额外2路LED控制数据流,如下图所示:

可选中画布中的 fscript 和 led 节点通过 ctrl+c 复制,ctrl+v 粘贴来快速添加节点。

LED节点添加、配置、连线等基本开发过程,17ca6c44-1ea1-11ed-ba43-dac502259ad0.png,第15张

2. 配置LED节点

3路 LED 配置如下图所示:

LED节点添加、配置、连线等基本开发过程,17d7e25c-1ea1-11ed-ba43-dac502259ad0.png,第16张

LED节点添加、配置、连线等基本开发过程,17e190a4-1ea1-11ed-ba43-dac502259ad0.png,第17张

LED节点添加、配置、连线等基本开发过程,17f42c82-1ea1-11ed-ba43-dac502259ad0.png,第18张

3. 配置业务节点

3路 fscript 节点配置如下图所示:

LED节点添加、配置、连线等基本开发过程,17fe211a-1ea1-11ed-ba43-dac502259ad0.png,第19张

LED节点添加、配置、连线等基本开发过程,180ab3b2-1ea1-11ed-ba43-dac502259ad0.png,第20张

LED节点添加、配置、连线等基本开发过程,18188a32-1ea1-11ed-ba43-dac502259ad0.png,第21张

前面我们了解到 timer 节点会周期性向下一节点推送一个定时器计数值(msg.payload),我们可利用这个计数值来索引不同的LED。

if (msg.payload /1000 %3 == 0) { output.payload = 1} else { output.payload = 0

总共有3路LED,那么我们通过 msg.payload /1000 % 3 计算来获得3个索引条件。

timer 节点计数精度为1毫秒,默认计数周期为1秒,除以 1000 获得秒计数值。

代码点亮LED

msg.payload /1000 %3 == 0红色

msg.payload /1000 %3 == 1蓝色

msg.payload /1000 %3 == 2绿色

由于 timer 节点的输出数据(msg),需要被推送到多路数据流上,所以为了不影响其他数据流的使用,这里我们选择 output 作为输出数据。

最终流图如下所示:

LED节点添加、配置、连线等基本开发过程,18272038-1ea1-11ed-ba43-dac502259ad0.png,第22张

4. 下载流图重复Step.3 下载流图 的步骤,下载最新流图,可以看到板载LED整以1秒的周期进行切换显示。

LED节点添加、配置、连线等基本开发过程,1831c718-1ea1-11ed-ba43-dac502259ad0.gif,第23张

审核编辑:汤梓红

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2999292.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-26
下一篇 2022-09-26

发表评论

登录后才能评论

评论列表(0条)

保存