函数使用说明
函数使用说明
本文档使用 MrDoc 发布
-
+
首页
函数使用说明
## 功能介绍 数字机器人(SDR-skybird digital robot)内置函数引擎(函数引擎语言为ES6标准JavaScript),支持用户手动写表达式进行数据处理。 <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913201620.png" width="30%"/> ## 节点配置 <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913201751.png" width="90%"/> ### 配置表达式 以javascript语言编写数据处理函数。系统中内置系统变量、内存寄存器、持久寄存器、系统方法,还可以使用自定义函数。 <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913201915.png" width="90%"/> #### 系统变量$msg <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202134.png" width="50%"/> $msg:上一个节点输出的结果,在本节点中可以以$msg.变量的形式进行引用。 #### 内存寄存器$db <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202327.png" width="50%"/> - 内存寄存器:引擎内置的数据存储对象,可以理解为一个数组,数组内可以存储各种数据类型的值,目前支持:bool,int,string,float,map(Key-Value结构),array。 - $db: 是内存寄存器的对象引用变量,通过$db对内存寄存器设置或获取不同类型的值。其封装了各种数据类型的get/set方法,通过下标索引参数(0…499)获取/设置。$db.isRisingEdge/$db.isFallingEdge用于判断上升/下降沿。上升/下降沿判断逻辑是通过上一个值和当前值变化判断,上升沿:false -> true,下降沿:true -> false。注意这里true和false不是严格意义上bool类型,JavaScript把null、undefined、0、NaN和空字符串''视为false,其他值一概视为true 例如: ```javascript $db.setBoolValue(0,true);//表示设置下标0的数据为bool类型的值true; $db.setBoolValue(0,false);//表示设置下标0的数据为bool类型的值false; $db.isFallingEdge(0); //true $db.setIntValue(1,0);//表示设置下标0的数据为int类型的值0; $db.setIntValue(1,1);//表示设置下标0的数据为int类型的值1; $db.isRisingEdge(1); //true ``` **PS: 内存寄存器顾名思义数据存储于内存,系统重启时内存寄存器中所有的数据都将丢失** #### 持久寄存器$dbs <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202428.png" width="30%"/> - 持久寄存器:引擎内置的数据存储对象,可以理解为一个map(Key-Value),和内存寄存器一样,可以支持存储bool,int,string,float,map(Key-Value结构),array类型数据。数据都存放于SDR数据库 - $dbs: 是内存寄存器的对象引用变量,通过$dbs对持久寄存器设置或获取不同类型的值。其封装了各种数据类型的get/set方法,通过string类型Key获取设置值 - 总之,内存或持久寄存器给引擎提供了公共数据存储途径,借助寄存器在系统内跨引擎通讯。 #### 系统方法 <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202551.png" width="30%"/> SDR内置了丰富的系统方法,根据方法名称就能直观理解每个方法的含义,需要强调的是Lodash相关的方法并未完整列出,如果列表中没有找到Lodash相关方法,您也可以直接使用。[LodashJs文档](https://www.lodashjs.com/ "LodashJs文档") #### 自定义方法 如果有些逻辑可以复用,我们建议您抽取出来封装成单独的方法。我们提供了自定义方法功能。 <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202741.png" width="100%"/> <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202758.png" width="100%"/> <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202815.png" width="100%"/> <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202835.png" width="100%"/> ### 代码调试 业务逻辑写完后,可以使用代码调试功能调试代码。具体的操作如下: 1. 将debugger 作为单独一行插入到需要调试的代码前 <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202857.png" width="100%"/> 2. 点击代码调试按钮,将弹出框中调试链接地址复制下来 <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202917.png" width="100%"/> 3. 在浏览器新Tab中打开调试链接地址 <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202931.png" width="100%"/> 4. 将函数节点保存,并触发执行 <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913202947.png" width="50%"/> 5. 回到第三步打开的新Tab,将看到调试断点已经打在debugger语句上,按照浏览器调试JS脚步的机制一步步往下调试即可 <img src="https://cloudbird-1305191050.cos.ap-guangzhou.myqcloud.com/20230913203010.png" width="100%"/>
admin
2023年9月13日 20:30
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码