Files
MaaAssistantArknights/docs/zh-cn/protocol/callback-schema.md
2026-07-07 00:30:53 +08:00

15 KiB
Raw Blame History

order, icon
order icon
2 material-symbols:u-turn-left

回调消息协议

::: info 注意 回调消息随版本更新飞速迭代中,本文档可能过时。如需获取最新内容可参考 C# 集成源码 :::

回调函数原型

typedef void(ASST_CALL* AsstCallback)(int msg, const char* details, void* custom_arg);

参数总览

  • int msg
    消息类型

    enum class AsstMsg
    {
        /* Global Info */
        InternalError     = 0,           // 内部错误
        InitFailed        = 1,           // 初始化失败
        ConnectionInfo    = 2,           // 连接相关信息
        AllTasksCompleted = 3,           // 全部任务完成
        AsyncCallInfo     = 4,           // 外部异步调用信息
        Destroyed         = 5,           // 实例已销毁
    
        /* TaskChain Info */
        TaskChainError     = 10000,      // 任务链执行/识别错误
        TaskChainStart     = 10001,      // 任务链开始
        TaskChainCompleted = 10002,      // 任务链完成
        TaskChainExtraInfo = 10003,      // 任务链额外信息
        TaskChainStopped   = 10004,      // 任务链手动停止
    
        /* SubTask Info */
        SubTaskError      = 20000,       // 原子任务执行/识别错误
        SubTaskStart      = 20001,       // 原子任务开始
        SubTaskCompleted  = 20002,       // 原子任务完成
        SubTaskExtraInfo  = 20003,       // 原子任务额外信息
        SubTaskStopped    = 20004,       // 原子任务手动停止
    
        /* Web Request */
        ReportRequest     = 30000,       // 上报请求
    };
    
  • const char* details
    消息详情json 字符串,详见 字段解释

  • void* custom_arg
    调用方自定义参数,会原样传出 AsstCreateEx 接口中的 custom_arg 参数C 系语言可利用该参数传出 this 指针

字段解释

InternalError

details 字段为空。

InitFailed

:::: field-group ::: field name="what" type="string" required 错误类型。 :::
::: field name="why" type="string" required 错误原因。 :::
::: field name="details" type="object" required 错误详情。 :::
::::

ConnectionInfo

:::: field-group ::: field name="what" type="string" required 信息类型。 ::: ::: field name="why" type="string" required 信息原因。 ::: ::: field name="uuid" type="string" 设备唯一码(连接失败时为空)。 ::: ::: field name="details" type="object" required 连接详情。其结构如下:

  • adb (string, required): AsstConnect 接口 adb_path 参数。
  • address (string, required): AsstConnect 接口 address 参数。
  • config (string, required): AsstConnect 接口 config 参数。

::: ::::

常见 What 字段

  • ConnectFailed
    连接失败

  • Connected
    已连接,注意此时的 uuid 字段值为空(下一步才是获取)

  • UuidGot
    已获取到设备唯一码

  • UnsupportedResolution
    分辨率不被支持

  • ResolutionError
    分辨率获取错误

  • Reconnecting
    连接断开adb / 模拟器 炸了),正在重连

  • Reconnected
    连接断开adb / 模拟器 炸了),重连成功

  • Disconnect
    连接断开adb / 模拟器 炸了),并重试失败

  • ScreencapFailed
    截图失败adb / 模拟器 炸了),并重试失败

  • TouchModeNotAvailable
    不支持的触控模式

  • ResolutionGot
    已获取到分辨率

  • FastestWayToScreencap
    已找到最快的截图方式,details 结构如下:

    • method (string, required): 最快的截图方式。
    • cost (number, required): 耗时,单位毫秒。
    • alternatives (array