EN
节点文档

节点文档

查找每个节点的用途,查看真实节点样式、输入输出和配置参数,并在页面中尝试修改。

当前显示 210 / 210 个节点

自动化

38 个节点
按角度转向
使用目标设置中的每圈鼠标计数转动镜头。

使用已校准的目标配置转向 90 度。

navigation.turn
按下组合键
原子按下并反向释放一组规范化按键。

在配置目标中按一次 Ctrl+C,再进行后续操作。

keyboard.press
按住按键
按下规范化按键并输出 Run 级租约;必须连接释放节点,异常结束也会自动释放。

按住前进键执行一段操作,再把租约交给释放按住输入节点。

keyboard.hold
按住鼠标键
在目标坐标按住鼠标键并输出 Run 级租约;异常结束时自动释放。

在指定坐标按住左键,完成其他操作后用输出租约释放。

mouse.hold
等待窗口出现
在给定时限内按已配置应用路径和窗口选择器等待窗口出现。

启动应用后等待配置选择器匹配到窗口,再开始操作。

window.wait
等待窗口消失
在给定时限内等待配置目标的匹配窗口全部消失。

发送关闭请求后等待匹配窗口全部消失。

window.wait-gone
等待画面变化
持续捕获精确目标,直到指定区域相对基准画面的变化达到阈值。

点击翻页后等待内容区域相对基准画面产生足够变化。

observation.wait-change
等待画面稳定
持续捕获精确目标,直到指定区域在稳定时长内保持低于变化阈值。

页面加载后等待区域保持稳定,再截图识别,减少过渡画面的干扰。

observation.wait-stable
等待模板出现
在精确窗口中持续获取新画面,直到指定模板出现或超时。

等待“加载完成”模板出现,再开始后续自动化步骤。

template.wait
等待模板消失
在精确窗口中持续获取新画面,直到指定模板不再出现或超时。

等待加载遮罩模板消失,再继续操作页面。

template.wait-gone
点击模板
复用给定源画面检查一次,或持续捕获精确窗口,再点击模板命中中心。

选择按钮模板,在配置目标中找到匹配后点击其中心。

template.click
读取窗口状态
读取配置目标当前的窗口状态、前台标记、屏幕位置与尺寸。

读取窗口是否在前台及其尺寸,决定是否先激活或调整窗口。

window.state
构造实时位置
将坐标和朝向转换为标准位置,可接入识图、插件或其他数据来源。

把采集到的 X/Y 和朝向组装成标准实时位置,保留采样时间与有效性。

position.make
关闭窗口
解析当前配置目标并向窗口发送关闭请求。

任务结束后向目标窗口发送关闭请求。

window.close
还原窗口
解析当前配置目标并还原窗口。

对最小化或最大化的目标窗口执行还原。

window.restore
回放键鼠宏
校验原子宏并在独占的精确目标会话中保持真实按下、松开与等待顺序。

在选定目标中回放已经录制并保存的键鼠宏。

macro.play
回放精准轨迹
按原始时序回放 InputClip 中的按键、点击、连续移动、拖拽、滚轮与相对鼠标位移。

选择已录制的精准输入轨迹,按原时序回放连续拖动或鼠标位移。

input-clip.play
获取鼠标位置
读取鼠标在桌面目标客户区内的当前位置,并输出可直接用于移动节点的比例坐标。

读取当前鼠标在目标客户区的位置,再接到移动或坐标计算节点。

mouse.position
激活目标
解析当前配置目标,然后置前桌面窗口或启动 Android 包。

输入前先激活配置目标,让桌面窗口置前或启动 Android 目标包。

window.activate
截取窗口
通过配置的截图后端截取目标画面,并提交持久 Image BlobRef。

截取配置目标的当前画面,交给模板识别或 AI 节点。

window.capture
解析实时位置
按字段映射解析 JSON 坐标;无效或过期数据会标记为不可用。

把插件给出的 JSON 位置文本按字段映射解析,供导航节点读取。

position.parse
启动应用
直接使用应用槽位中配置的程序路径和参数启动。

选择已配置程序路径的应用目标,在工作流开始后启动该应用,再等待它的窗口出现。

app.launch
释放按住输入
消费按住输入租约并立即释放该租约拥有的所有按键或鼠标键。

把按住按键或鼠标键节点输出的租约接入,在操作结束时立即释放。

input.release-held
输入文本
向配置目标输入 Unicode 文本。

先点击输入框,再向同一目标输入待填写的 Unicode 文本。

keyboard.type-text
鼠标点击
在配置目标内执行一次点击。

将识别结果的中心坐标接到位置输入,在配置目标内执行左键点击。

mouse.click
鼠标滚动
在配置目标内执行滚动。

在目标区域向下滚动几格,再截取新的画面。

mouse.scroll
鼠标拖拽
按指定移动方式执行按下、移动和释放。

给出起点和终点,在指定时长内把目标窗口中的对象拖到新位置。

mouse.drag
停止目标应用
停止配置目标中的 Android 包;不支持该操作的目标会返回失败。

完成 Android 自动化后,停止目标配置指向的应用包。目标必须支持停止应用。

app.stop-target
相对移动鼠标
向配置目标发送相对位移。

发送少量相对水平位移,用于需要相对输入的目标。

mouse.move-relative
沿保存路径移动
直接选择保存的路线,一次读取后依次经过途经点;长路径无需经过数据线。定位源字符串变量应由采样节点持续更新。

选择已经保存的路线,配合持续更新的位置变量依次经过途经点。

navigation.follow-saved-path
沿路径移动
依次经过起点到终点。每点独立计时;终点 -1 表示最后一点。定位源字符串变量应由采样节点持续更新。

持续采样位置到字符串变量,接入一条路径,让移动从指定起点按顺序走到终点。

navigation.follow-path
移动并调整窗口
解析当前配置目标,并按屏幕像素设置窗口位置与尺寸。

用屏幕像素统一目标窗口的位置和尺寸,便于重复操作。

window.move-resize
移动到坐标
持续读取位置变量,远处保持前进,接近目标后减速;需要可通行的直线路径。

在可直线通行的场景中读取位置变量,逐步接近目标 X/Y。

navigation.move-to
移动鼠标
以即时、匀速直线或贝塞尔曲线移动到目标坐标。

将鼠标平滑移到识别坐标,暂不点击。

mouse.move
终止应用
终止与配置路径对应的进程,并返回终止数量。

自动化清理时终止配置路径对应的进程,用返回的终止数量确认处理了多少进程。

app.terminate
转向寻找图像
逐步转动镜头,等待画面稳定后识图,找到即停止。

围绕当前位置逐步转动镜头,直到识别到指定模板或达到搜索限制。

navigation.search-template
最大化窗口
解析当前配置目标并最大化窗口。

开始识别前将目标窗口最大化。

window.maximize
最小化窗口
解析当前配置目标并最小化窗口。

后台任务完成后最小化目标窗口。

window.minimize

流程

14 个节点
遍历列表
对强类型列表最多 10000 个元素逐一运行隔离 activation,并输出当前索引和元素。

把文件名列表接入列表输入,在循环体中逐个读取文件,并使用当前项与索引。

flow.for-each
等待信号
从此节点开始等待一次信号,收到后继续。

先开始等待 ready 信号,另一分支发送后再继续。

signal.wait
多路分支
按顺序比较可配置数量的同类型 case,并只触发首个匹配出口或默认出口。

按状态文字分别处理 ready、busy、done;增加 case 数量后填写匹配值,未命中走默认出口。

flow.switch
发送信号
向当前运行的所有同名订阅者发送一次信号;没有监听者时不保留。

向已经开始监听的同名分支发送刷新通知和附带值。

signal.send
分支
根据条件只从「真」或「假」中的一个路径继续。

把图像是否匹配的布尔结果接到条件,分别连接真、假两个处理路径。

flow.branch
监测任务
运行主任务并定时检测。触发打断后暂停主任务,处理结束后从原进度继续;主任务结束时停止监测。

主任务沿路径移动时定期检测异常画面,触发后执行处理分支,再恢复主任务。

flow.monitor
监听信号
持续监听当前运行的同名信号,按顺序处理;主任务结束或停止监听后释放。

在主任务期间持续监听名为 refresh 的运行内信号,按顺序处理每次通知。

signal.listen
结束分支
显式结束当前控制流分支,不再发出信号。

在无需继续处理的分支末尾明确结束该分支。

flow.end-branch
抛出错误
以稳定的 control.thrown 错误码结束当前分支,不产生成功出口。

检测到必要信息缺失时主动抛出说明文字,让当前分支进入错误处理。

flow.throw
延迟
等待最长 24 小时且可随 Run 取消的时长,然后发出「完成」。

点击按钮后等待 2 秒,再继续读取界面状态;时长可填写 2000 毫秒。

flow.delay
运行开始
工作流运行开始时发出一次「已开始」。连接到需要启动的节点,例如持续采样与沿路径移动。

把“已开始”接到打开窗口或延迟节点,让工作流在启动时进入第一步。

event.run-started
重复
运行 0 到 10000 次隔离 activation。本轮「循环体」排空后才进入下一轮,「中断」和「继续」只作用于这个 region。

把次数设为 3,让循环体中的处理动作依次执行三轮。

flow.repeat
重试
执行 1 到 100 次尝试,只重试显式路由回该 region 的失败;「完成」和「耗尽」是两个独立结果。

给易失败的识别操作设置最多 3 次尝试,将需要重试的失败显式接回重试区域。

flow.retry
周期执行
按间隔运行检测。次数为 0 时持续运行,直到停止。上次检测未结束时跳过本次触发。

每隔 1000 毫秒读取一次窗口状态;次数填 0 可持续检测直到停止。

flow.periodic

面板

33 个节点
创建运行面板
为本次运行创建独立面板。运行结束后保留结果,停止接收交互。

旧流程先创建名为 progress 的运行面板,再在相同面板标识下注册组件。

panel.legacy.create
等待面板交互
消费已注册组件的下一条交互;早于此节点的点击也会保留。可按组件过滤,超时走失败输出。

等待已注册的“继续”按钮交互;可消费此前已经排队的点击。

panel.legacy.wait
等待面板交互
从此节点开始等待用户交互,超时进入失败分支;运行结束只释放本次等待。

显示确认按钮后开始等待一次交互,收到后继续;超时进入失败分支。

panel.wait
读取面板开关
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

从已注册的旧面板组件读取开关值,面板和组件标识须与注册时一致。

panel.legacy.read-toggle
读取面板数值
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

从已注册的旧面板组件读取数值值,面板和组件标识须与注册时一致。

panel.legacy.read-number
读取面板文本
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

从已注册的旧面板组件读取文本值,面板和组件标识须与注册时一致。

panel.legacy.read-text
读取组件开关值
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

从已管理面板读取用户选择的开关值,作为后续节点输入。

panel.read-toggle
读取组件数值
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

从已管理面板读取用户选择的数值值,作为后续节点输入。

panel.read-number
读取组件文本
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

从已管理面板读取用户选择的文本值,作为后续节点输入。

panel.read-text
更新组件开关值
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

将处理结果写入已管理面板的开关组件,让界面显示最新值。

panel.write-toggle
更新组件数值
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

将处理结果写入已管理面板的数值组件,让界面显示最新值。

panel.write-number
更新组件文本
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

将处理结果写入已管理面板的文本组件,让界面显示最新值。

panel.write-text
获取交互组件引用
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

取得已管理面板交互组件的类型化引用,直接连接到同类面板节点。

panel.ref-event
获取开关组件引用
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

取得已管理面板开关组件的类型化引用,直接连接到同类面板节点。

panel.ref-toggle
获取日志组件引用
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

取得已管理面板日志组件的类型化引用,直接连接到同类面板节点。

panel.ref-log
获取数值组件引用
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

取得已管理面板数值组件的类型化引用,直接连接到同类面板节点。

panel.ref-number
获取文本组件引用
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

取得已管理面板文本组件的类型化引用,直接连接到同类面板节点。

panel.ref-text
监听面板信号
持续接收所选面板的交互,按顺序执行事件分支;主任务结束或停止监听后释放。多个运行分别接收。

监听已管理面板的按钮交互,让每次点击按顺序进入事件处理分支。

panel.listen
结束运行面板
保留最后结果并停止本面板的交互,不会停止工作流。

旧流程处理结束后结束运行面板,保留最后显示的结果。

panel.legacy.end
设置已有开关值
只更新已有组件,不会创建组件。请先注册或显示对应组件,并使用相同的面板标识和组件标识。

用相同面板和组件标识更新已存在的开关组件;先注册,再更新。

panel.legacy.write-toggle
设置已有数值
只更新已有组件,不会创建组件。请先注册或显示对应组件,并使用相同的面板标识和组件标识。

用相同面板和组件标识更新已存在的数值组件;先注册,再更新。

panel.legacy.write-number
设置已有文本值
只更新已有组件,不会创建组件。请先注册或显示对应组件,并使用相同的面板标识和组件标识。

用相同面板和组件标识更新已存在的文本组件;先注册,再更新。

panel.legacy.write-text
使用面板
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

选择已管理面板并获取它的引用,供后续面板节点复用。

panel.use
显示面板
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

在工作流开始时显示工作流设置中选定的面板。

panel.show
显示面板数值
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

在旧运行面板中显示当前处理数量。

panel.legacy.number
显示面板文本
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

在旧运行面板中展示识别出的文字。

panel.legacy.text
显示面板状态
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

在旧运行面板中显示“正在读取”一类状态信息。

panel.legacy.status
注册面板按钮
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

在已创建的运行面板中注册“继续”按钮,再等待其交互。

panel.legacy.button
注册面板开关
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

注册一个开关,让用户选择是否启用某个可选步骤。

panel.legacy.toggle
注册面板输入框
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

注册一个文件名输入框,随后读取用户填写的文字。

panel.legacy.input
注册面板下拉
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

注册模式下拉框并配置选项,供用户在运行面板中选择。

panel.legacy.select
追加面板日志
先创建同一标识的面板;组件标识相同则更新已有内容。控件重复注册保留用户选择。

在运行面板日志组件中追加当前处理步骤。

panel.legacy.log
追加面板日志
使用已管理的面板,默认跟随工作流设置;单独选择或接入引用可覆盖。

将处理进度追加到已管理面板的日志组件。

panel.log

数据

106 个节点
包含
判断文本里是否出现指定子串,给出真/假。两个输入都必须是文字,并且区分大小写。

判断返回文字是否包含 success,再接到分支节点。

text.contains
不等于
按同一精确类型的规范值判断是否不相等。

比较新识别的文字与上次记录;不相等时再更新结果。

comparison.not-equal
查找位置
Sub 在文本里第一次出现的位置(从 0 数,中文一个字算 1 个)。找不到得 -1。只想判断"包含吗"请用「包含」节点。

查找文字中第一个冒号的位置,找不到时按 -1 分支处理。

text.index-of
拆分模板匹配
取得模板匹配的分数、中心点和命中区域。

将上游结果接入,分别读取模板匹配结果的分数、中心点和边界,把需要的字段连到后续节点。

structure.break-template-match
拆分区域
把区域拆成位置、宽高和单位强类型输出。

将上游结果接入,分别读取区域的位置、宽高和单位,把需要的字段连到后续节点。

structure.break-region
拆分实时位置
读取位置的坐标、朝向和采样信息。

将上游结果接入,分别读取实时位置的坐标、朝向、有效性和采样信息,把需要的字段连到后续节点。

position.break
拆分文本
把文本按分隔符拆成列表。文本留空得空列表;分隔符留空则一个字一个字拆(中文安全)。

用换行符拆分多行文件名,再逐项处理得到的文字列表。

collection.split
拆分文件信息
取得路径、名称、扩展名、媒体类型、大小、修改时间和目录标记。

将上游结果接入,分别读取文件信息中的大小、扩展名和修改时间,把需要的字段连到后续节点。

structure.break-file-metadata
拆分颜色块
取得颜色块面积、中心点和边界区域。

将上游结果接入,分别读取颜色块的面积、中心点和边界,把需要的字段连到后续节点。

structure.break-color-blob
拆分坐标
把坐标拆成 X、Y 和单位三个强类型输出。

将上游结果接入,分别读取坐标中的 X、Y 和单位,把需要的字段连到后续节点。

structure.break-point
拆解交互组件引用
由面板管理器提供的稳定类型引用。

将上游结果接入,分别读取交互组件引用中的标识和面板信息,把需要的字段连到后续节点。

panel.ref.break-event
拆解开关组件引用
由面板管理器提供的稳定类型引用。

将上游结果接入,分别读取开关组件引用中的标识和面板信息,把需要的字段连到后续节点。

panel.ref.break-boolean
拆解路径
共享坐标参照中的有序点列。

将上游结果接入,分别读取路径的坐标参照和有序点列,把需要的字段连到后续节点。

path.break
拆解路径点
含稳定标识、坐标和可选高度的点位。

将上游结果接入,分别读取路径点的标识、坐标与高度,把需要的字段连到后续节点。

path-point.break
拆解路径坐标参照
坐标系、单位和轴向;局部参照需要显式对齐。

将上游结果接入,分别读取路径坐标参照的坐标系、单位和轴向,把需要的字段连到后续节点。

path-reference.break
拆解面板引用
由面板管理器提供的稳定类型引用。

将上游结果接入,分别读取面板引用中的标识、名称和版本信息,把需要的字段连到后续节点。

panel.ref.break-panel
拆解日志组件引用
由面板管理器提供的稳定类型引用。

将上游结果接入,分别读取日志组件引用中的标识和面板信息,把需要的字段连到后续节点。

panel.ref.break-log
拆解数值组件引用
由面板管理器提供的稳定类型引用。

将上游结果接入,分别读取数值组件引用中的标识和面板信息,把需要的字段连到后续节点。

panel.ref.break-number
拆解文本组件引用
由面板管理器提供的稳定类型引用。

将上游结果接入,分别读取文本组件引用中的标识和面板信息,把需要的字段连到后续节点。

panel.ref.break-string
乘
把两个数字相乘,给出积。

例如3 乘 4 得到 12,把结果连接到后续数值参数。

math.multiply
乘方
算 Base 的 Exp 次方。负底数的分数次方会报定义域错误,非有限结果会失败;0 的 0 次方按 1 处理。

例如计算 2 的 3 次方得到 8,把结果连接到后续数值参数。

math.power
除
用 A 除以 B,给出商。除数为 0 或结果超出有限数范围时会失败。

例如10 除以 2 得到 5,把结果连接到后续数值参数。

math.divide
大于
判断 A 是不是 > B,给出真/假。

将识别分数与阈值比较,分数更高时进入后续操作。

comparison.greater-than
大于等于
判断 A 是不是 ≥ B,给出真/假。

判断已处理数量是否达到目标数量,达到后结束分支。

comparison.greater-or-equal
等于
按同一精确类型的规范值判断是否相等;不会把不同类型偷偷转成文字。

比较两个同类型的状态值是否相同,把结果接入分支节点。

comparison.equal
点周围区域
按中心点的单位生成居中 ROI;ratio 区域会限制在画面内,px 区域保留像素宽高。

围绕识别到的中心点生成一个小区域,缩小下一次识别范围。

geometry.region-around-point
读取路径
读取选定内容版本,输出可连线的路径。

选择一个保存的路径内容版本,将其作为路径数据接到其他节点。

path.read
读取秒表
根据开始时间读取当前经过的毫秒数,不访问进程全局计时器。

将秒表开始时间接入,在任务仍进行时读取已经过的毫秒数。

time.stopwatch-read
读取状态
读取 Run 本地强类型状态槽的当前值。它是 recorded 数据 effect,没有控制流出口。

选择工作流中的状态变量,读取当前值并连到后续数据输入。

state.read
对齐局部路径
显式指定世界参照、原点和旋转角度,将局部路径变换为世界路径。

把局部录制路径放到世界参照中,显式设置原点与旋转角度。

path.align
反转路径
操作点位顺序并保留坐标参照,不改变输入路径。

把原路线倒序,用作返回方向的路线。

path.reverse
构建路径
操作点位顺序并保留坐标参照,不改变输入路径。

将坐标参照和有序路径点列表组装成可传递的路径。

path.make
观测时间
捕获宿主提供的调用时间(Unix 毫秒),并持久化到 Run 记录。

在关键步骤记录当前 Unix 毫秒时间,方便后续计算耗时。

time.observe
获取路径点
操作点位顺序并保留坐标参照,不改变输入路径。

按索引取出路径中的一个点,再拆解它的坐标和标识。

path.point
加
把两个数字相加,给出和。

例如2 与 3 相加得到 5,把结果连接到后续数值参数。

math.add
减
用 A 减去 B,给出差。

例如7 减 2 得到 5,把结果连接到后续数值参数。

math.subtract
结尾是
判断文本是否以 Suffix 结尾。Suffix 留空恒为真。

判断文件名是否以 .png 结尾。

text.ends-with
截断为整数
丢弃小数部分并检查安全整数范围,例如 -1.9 变成 -1。

把 -1.9 的小数部分去掉,得到整数 -1。

conversion.truncate-to-integer
截取列表
从 Start 起取 Count 个元素并返回新列表。Start 为负时按 0;Count 为负时取到末尾;Count 为 0 或 Start 越界时返回空列表。

从列表序号 0 起截取 10 项,分批交给遍历列表节点。

collection.slice
截取路径
操作点位顺序并保留坐标参照,不改变输入路径。

从长路线中选取指定起止索引之间的路段。

path.slice
截取文本
从第 Start 个字符开始截 Length 个字符(中文一个字算 1 个)。Length 填 -1(默认)截到末尾,0 得空串。Start 超出范围得空串。

从序号 0 起取前 4 个字符;长度填 -1 可取到末尾。

text.substring
解析 JSON
把单个 JSON 文档解析并规范化成结构化值;不接受尾随值、负零或超出可互操作范围的数字。

将 HTTP 返回的 JSON 文本解析为结构化数据,再读取字段。

json.parse
绝对值
取 X 的绝对值(负变正)。

例如-3 取绝对值得到 3,把结果连接到后续数值参数。

math.absolute
开平方
算 X 的平方根。X 为负数时会报定义域错误(需要时先接「绝对值」节点)。

例如计算 9 的平方根得到 3,把结果连接到后续数值参数。

math.square-root
开头是
判断文本是否以 Prefix 开头。Prefix 留空恒为真。

判断一行文字是否以 ERROR 开头。

text.starts-with
两点距离
计算两个同单位坐标的直线距离,结果沿用该单位;ratio 与 px 混用会失败。

计算当前位置与目标点之间的距离;两个坐标须使用相同单位。

geometry.point-distance
列表包含
按规范值判断列表是否包含同类型、可比较的元素;不会转成文字后再比较。

判断文件名列表里是否已经包含 report.txt,结果接到分支节点避免重复处理。

collection.contains
列表长度
返回强类型列表中的元素数量。

读取待处理列表的数量,接到日志或数值面板展示任务总数。

collection.length
流转 Blob
消费当前运行内的带租约流,并提交为可持久保存的二进制内容。

把当前运行中的流收集成可保存的 Blob,并填写内容的媒体类型。

conversion.stream-to-blob
逻辑非
把真假反过来:真变假、假变真。

将“已经完成”取反,作为尚未完成时继续处理的条件。

logic.not
逻辑或
两个条件只要有一个为真就给出真,都为假才给假。

两种识别方式任意一种成功就继续,把结果接到同一个分支条件。

logic.or
逻辑与
两个条件都为真时才给出真,否则给假。没接线的输入默认当真,不会干扰结果。

把“窗口已出现”和“文本匹配”合并为同时满足才继续的条件。

logic.and
偏移坐标
在一个坐标上加水平/垂直偏移。百分比坐标会限制在屏幕内;像素坐标保持像素单位不缩放。

在模板匹配中心点上加少量水平偏移,点击其旁边的控件。

geometry.offset-point
拼接
把两个字符串合成一个值。它是数据函数,不声明控制流出口。

将“文件:”与文件名拼接,输出给日志节点。

text.concat
拼接列表
用分隔符拼接文字列表;不接受其它元素类型的列表。

将文字列表 ["红", "绿", "蓝"] 用逗号拼成一行展示文字。

collection.join
拼接路径
操作点位顺序并保留坐标参照,不改变输入路径。

把同一坐标参照下的两段路径按顺序拼接成一条路线。

path.join
启动秒表
记录本次调用的开始时间,并输出可显式连接的强类型时间点。

在耗时操作之前记录开始时间,连到读取或停止秒表节点。

time.stopwatch-start
取 JSON 路径
从 JSON 值里取字段或数组项。支持 $、.字段、[序号] 和 [*];未找到时得 null,通配列表会用 null 保留缺失项的位置。

从 {"user":{"name":"Ada"}} 中用 $.user.name 读取名字。

json.path
取负
把数字变号:正数变负、负数变正。

例如把 3 变号得到 -3,把结果连接到后续数值参数。

math.negate
取较大
两个数里取较大的那个。

例如从 3 和 7 中取较大值得到 7,把结果连接到后续数值参数。

math.maximum
取较大整数
从两个整数中给出较大值,结果仍为整数。

例如从 3 和 7 中取较大值得到 7;输入和结果均保持整数类型,可用于次数或索引。

math.integer-maximum
取较小
两个数里取较小的那个。

例如从 3 和 7 中取较小值得到 3,把结果连接到后续数值参数。

math.minimum
取较小整数
从两个整数中给出较小值,结果仍为整数。

例如从 3 和 7 中取较小值得到 3;输入和结果均保持整数类型,可用于次数或索引。

math.integer-minimum
取列表元素
按从 0 开始的序号取元素;负数或越界会明确失败,序号不确定时先接「列表长度」。

从识别结果列表中读取序号 0 的第一项;先检查列表长度,避免空列表越界。

collection.get
取模
求 A 除以 B 的余数,支持小数;除数为 0 时会失败。

例如7 对 3 取余得到 1,把结果连接到后续数值参数。

math.modulo
去首尾空白
去掉文本开头和结尾的空格、换行、制表符。

去掉用户输入两端的空白,再做相等比较。

text.trim
三元选择
条件为真时输出「为真时」的值,为假时输出「为假时」的值;两路必须是同一种可观察的 JSON 内联类型。

根据布尔条件在“成功”和“失败”两段同类型文字中选一段显示。

logic.select
四舍五入
把 X 四舍五入。位数=0 取到整数;位数=2 保留 2 位小数;位数=-2 取整到百位(12345 得 12300)。位数最多 ±15(再多超出小数精度,按 ±15 算)。

例如把 3.14159 保留两位小数得到 3.14,把结果连接到后续数值参数。

math.round
四舍五入为整数
取最近整数并检查安全整数范围;半数远离零取整。

把 2.6 转成最近的整数 3,交给只接受整数的参数。

conversion.round-to-integer
随机布尔值
按零到一之间的显式概率观测一个 true/false 样本。

设置 0.5 概率生成布尔样本,接到分支选择两种测试路径。

random.boolean
随机取值
从非空的强类型列表中等概率观测一个元素,并持久化结果。

从非空候选文字列表中随机选取一项。

random.choice
随机数值
观测一个有限数值样本,并把结果持久化到 Run 记录。

在设定数值范围内采样,用作测试数据或随机偏移。

random.number
随机整数
从宿主加密熵源观测一个整数样本,并把结果持久化到 Run 记录。

在设定范围内采样整数,用作测试数据的随机编号。

random.integer
替换文本
把文本里的 Old 换成 New。「全部替换」开着换所有,关掉只换第一处。Old 留空时原样返回。

把识别文本中的旧分隔符替换为逗号,按需开启全部替换。

text.replace
停止秒表
根据开始时间记录最终经过的毫秒数,然后从「完成」继续。

操作结束后用原开始时间记录最终耗时,再从完成出口继续。

time.stopwatch-stop
文字转整数
严格解析安全整数;小数、空白或超出安全范围会失败。

把文本 "12" 转成整数后用作重复次数。

conversion.string-to-integer
限制范围
把 X 限制在 Min~Max 里:小于 Min 出 Min,大于 Max 出 Max,否则原样出。Min 比 Max 大时自动交换。

例如把 120 限制在 0 到 100 得到 100,把结果连接到后续数值参数。

math.clamp
限制整数范围
把整数限制在最小值和最大值之间,结果仍为整数。

例如把 120 限制在 0 到 100 得到 100;输入和结果均保持整数类型,可用于次数或索引。

math.integer-clamp
向上取整
向正无穷取整并检查安全整数范围,例如 1.1 变成 2。

计算批次数时把 2.2 向上转成整数 3。

conversion.ceiling-to-integer
向上取整
把 X 往大的方向取整:3.2 得 4,-3.7 得 -3。

例如3.2 向上取整得到 4,把结果连接到后续数值参数。

math.ceiling
向下取整
向负无穷取整并检查安全整数范围,例如 -1.1 变成 -2。

把计算出的 3.8 向下转成整数 3,用作列表序号。

conversion.floor-to-integer
向下取整
把 X 往小的方向取整:3.7 得 3,-3.2 得 -4。

例如3.7 向下取整得到 3,把结果连接到后续数值参数。

math.floor
小于
判断 A 是不是 < B,给出真/假。

判断剩余次数是否小于 1,小于时停止后续尝试。

comparison.less-than
小于等于
判断 A 是不是 ≤ B,给出真/假。

判断距离是否已小于或等于允许误差。

comparison.less-or-equal
写入状态
向 Run 本地状态槽写入类型完全一致的值,然后从「完成」继续。

把最新识别结果写入同类型状态变量,让其他分支读取。

state.write
增加状态
在 Run State 锁内原子增加 Integer 或 Number,避免读取后写入的竞态。

每完成一个任务就将数值状态加 1,避免并行分支自行读改写造成丢计数。

state.increment
整数乘法
把两个整数相乘,结果仍为整数;超出安全整数范围会失败。

例如3 乘 4 得到 12;输入和结果均保持整数类型,可用于次数或索引。

math.integer-multiply
整数加法
把两个整数相加,结果仍为整数;超出安全整数范围会失败。

例如2 与 3 相加得到 5;输入和结果均保持整数类型,可用于次数或索引。

math.integer-add
整数减法
用整数 A 减去整数 B,结果仍为整数;超出安全整数范围会失败。

例如7 减 2 得到 5;输入和结果均保持整数类型,可用于次数或索引。

math.integer-subtract
整数绝对值
取得整数绝对值并保持整数类型。

例如-3 取绝对值得到 3;输入和结果均保持整数类型,可用于次数或索引。

math.integer-absolute
整数取负
改变整数符号并保持整数类型。

例如把 3 变号得到 -3;输入和结果均保持整数类型,可用于次数或索引。

math.integer-negate
整数取模
计算整数余数,结果仍为整数;除数为 0 会失败。

例如7 对 3 取余得到 1;输入和结果均保持整数类型,可用于次数或索引。

math.integer-modulo
正则匹配
判断文本里是否有匹配正则表达式的部分(是"包含"式:abc 用 b 也算中)。要整串完全匹配,给表达式首尾加 ^ 和 $。表达式无效时运行失败。

用 ^[0-9]+$ 判断输入是否整段都是数字字符。

text.regex-match
正则提取
从文本里提取第一段匹配正则表达式的内容;表达式带括号分组时取第 1 组。没匹配到时得空串,表达式无效时运行失败。

用正则从“订单号:12345”中提取数字部分。

text.regex-extract
转 JSON 文本
把可观察的 JSON 内联值规范序列化成文本;Blob、图像和运行时流不支持直接序列化。

把结构化结果转成 JSON 文本,交给日志或文本展示节点。

json.stringify
转布尔
严格解析小写文字 true 或 false;其它内容会失败。

将配置文本中的小写 true 转成布尔值,再接到条件输入。

conversion.string-to-boolean
转大写
把英文字母全部转成大写。

把待展示的英文编号统一转大写。

text.uppercase
转数字
严格解析有限十进制数字;空白、纯字母或超出范围会失败。

把文本 "12.5" 转成数值,再进行金额或距离计算。

conversion.string-to-number
转小写
把英文字母全部转成小写。

将文件扩展名转小写,再统一比较。

text.lowercase
转字符串
把可观察的 JSON 内联值转成文字;字符串保留原内容,其它值使用规范 JSON。Blob、图像和运行时流不支持直接转换。

把数值计数转成文字,再和“已处理:”拼接后显示。

conversion.to-string
状态元数据
读取状态槽的 revision 和最后修改时间,不暴露无类型值。

读取状态版本号和修改时间,判断观察期间是否发生变化。

state.metadata
状态最后变化
直接读取状态槽最后一次成功修改的 Unix 毫秒时间。

读取指定状态最后修改的时间,用于判断它多久没有更新。

state.last-change
追加元素
追加一个同类型元素并返回新列表;输入列表本身不会被修改。

在待处理文件名列表后追加一个新文件名,使用返回的新列表继续处理。

collection.append
字符串长度
数一段文字有多长,给出字符数。中文一个字算 1 个,与「截取文本」「查找位置」的位置口径一致。

计算输入文字长度,判断用户是否提供了内容。

text.length
组装坐标
用 X、Y 和 ratio 或 px 单位组装强类型坐标;ratio 坐标使用 0 到 1 的画面空间。

用 X=0.5、Y=0.5、单位 ratio 表示目标画面的中心点。

geometry.make-point
Blob 转流
把持久二进制内容打开为带租约的运行时流;该流只在当前运行内有效。

需要逐块消费二进制资源时,把持久 Blob 打开成当前运行内使用的流。

conversion.blob-to-stream

文件

7 个节点

视觉

5 个节点

AI

2 个节点

其他

5 个节点