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

16 KiB

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" 장치 고유 코드(UUID) (연결 실패 시 비어 있음) ::: ::: 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
    장치 고유 코드(UUID) 획득

  • UnsupportedResolution
    지원하지 않는 해상도

  • ResolutionError
    해상도 획득 오류

  • Reconnecting
    연결 끊김 (adb / 에뮬레이터 충돌), 재연결 중

  • Reconnected
    연결 끊김 (adb / 에뮬레이터 충돌), 재연결 성공

  • Disconnect
    연결 끊김 (adb / 에뮬레이터 충돌), 재시도 실패

  • ScreencapFailed
    스크린샷 실패 (adb / 에뮬레이터 충돌), 재시도 실패

  • TouchModeNotAvailable
    지원하지 않는 터치 모드

  • ResolutionGot
    해상도를 획득함

  • FastestWayToScreencap
    가장 빠른 스크린샷 방식을 찾음, details 구조:

    • method (string, required): 가장 빠른 스크린샷 방식.
    • cost (number, required): 소요 시간 (밀리초).
    • alternatives (array