节点信息输出
具体参照MaaFW文档:2.3 回调协议和3.3 Project Interface V2 协议 | 节点通知处理
MFAA 节点通知文档:MFAAvalonia/README.md
Piphline流水线协议消息输出模版
jsonc
// 在 Pipeline 中配置消息模板
{
"NodeA": {
"focus": {
"Node.Recognition.Succeeded": "{name} 识别命中,准备开始执行",
"Node.Action.Starting": "{name} 开始执行,任务 ID: {task_id}",
}
}
}
// 当该节点开始执行时,UI 即会收到回调
{
"message": "Node.Action.Starting",
"details_json": {
"task_id": 12345,
"action_id": 11111,
"name": "NodeA",
"focus": {
"Node.Recognition.Succeeded": "{name} 识别命中,准备开始执行",
"Node.Action.Starting": "{name} 开始执行,任务 ID: {task_id}"
}
}
}focus 值的两种写法
简写(纯字符串): 等价于 display: "log",内容仅展示在运行日志中。
json
"focus": {
"Node.Action.Starting": "{name} 开始执行"
}完整写法(对象): 可通过 display 字段指定展示渠道。 💡 v2.3.0
json
"focus": {
"Node.Action.Starting": {
"content": "{name} 开始执行",
"display": "toast"
}
}display 可选值 💡 v2.3.0
| 值 | 说明 | 行为特征 |
|---|---|---|
"log" | 运行日志(默认) | 追加到日志流,不打断操作 |
"toast" | 应用内轻提示 | 短暂浮现后自动消失,不阻塞 |
"notification" | 系统级通知 | 推送到 OS 通知中心,应用在后台时也可收到 |
"dialog" | 非阻塞式对话框 | 弹出信息框,任务流水线在后台继续执行 |
"modal" | 阻塞式弹窗 | 弹出后任务暂停等待用户确认,适合需要人工干预的场景 |
display 支持数组,同一条消息可同时推送到多个渠道:
json
"focus": {
"Node.Action.Succeeded": {
"content": "{name} 执行成功",
"display": ["log", "toast"]
},
"Node.Action.Failed": {
"content": "执行失败,请检查环境",
"display": ["log", "modal"]
}
}focus消息类型
| 消息类型 | 触发时机 | 可用占位符 |
|---|---|---|
Resource.Loading.Succeeded | 资源加载成功 | res_id, hash, path |
Resource.Loading.Failed | 资源加载失败 | res_id, hash, path |
Controller.Action.Starting | 控制器开始执行 | ctrl_id,uuid,action,param |
Controller.Action.Succeeded | 控制器执行成功 | ctrl_id,uuid,action,param |
Controller.Action.Failed | 控制器执行失败 | ctrl_id,uuid,action,param |
Tasker.Task.Starting | 任务开始执行 | task_id,entry,uuid,hash |
Tasker.Task.Succeeded | 任务执行成功 | task_id,entry,uuid,hash |
Tasker.Task.Failed | 任务执行失败 | task_id,entry,uuid,hash |
Node.Recognition.Starting | 节点识别开始 | task_id, reco_id, name |
Node.Recognition.Succeeded | 节点识别成功 | task_id, reco_id, name |
Node.Recognition.Failed | 节点识别失败 | task_id, reco_id, name |
Node.Action.Starting | 节点动作开始 | task_id, action_id, name |
Node.Action.Succeeded | 节点动作成功 | task_id, action_id, name |
Node.Action.Failed | 节点动作失败 | task_id, action_id, name |
Node.NextList.Starting | 下一步节点开始识别 | task_id,name,list |
Node.NextList.Succeeded | 下一步节点识别成功 | task_id,name,list |
Node.NextList.Failed | 下一步节点识别失败 | task_id,name,list |
Node.PipelineNode.Starting | 流水线节点开始执行 | task_id, node_id,name |
Node.PipelineNode.Succeeded | 流水线节点执行成功 | task_id, node_id,name |
Node.PipelineNode.Failed | 流水线节点执行失败 | task_id, node_id,name |
节点识别(Node.Recognition.x):
task_id: 任务 ID(数字)reco_id: 识别 ID(数字)name: 节点名称(字符串)focus: 焦点相关数据(任意类型)
节点动作(Node.Action.x):
task_id: 任务 ID(数字)action_id: 操作 ID(数字)name: 节点名称(字符串)focus: 焦点相关数据(任意类型)
下一步节点(Node.NextList.x):
task_id: 任务 ID(数字)name: 节点名称(字符串)list: 下一步节点列表(对象数组)name: 节点名称或锚点名称(字符串)jump_back: 是否回跳(布尔值)anchor: 是否为锚点引用(布尔值),若为 true 则 name 为锚点名称
focus: 焦点相关数据(任意类型)
流水线节点(Node.PipelineNode.x):
*整个节点的状态,失败是on_error状态 如果用nextlist,会有多次识别失败记录,用pipelinenode则指这个节点失败
task_id: 任务 ID(数字)node_id: 节点 ID(数字)name: 节点名称(字符串)
资源类型(Resource.Loading.x):
res_id: 资源 ID(数字)hash: 资源哈希值(字符串)path: 资源路径(字符串)
控制器(Controller.Action.x):
ctrl_id: 控制器 ID(数字)uuid: 唯一标识符(字符串)action: 动作类型(字符串)param: 动作参数(对象)
任务(Tasker.Task.x):
task_id: 任务 ID(数字)entry: 入口任务名称(字符串)uuid: 唯一标识符(字符串)hash: 任务哈希值(字符串)