API 레퍼런스

현재 최신 버전 (2.2.0)에 대한 매뉴얼을 보고 계십니다. 다른 버전에 액세스하려면 페이지 오른쪽 상단 모서리에 있는 '버전 전환' 버튼을 클릭하세요.

■ 현재 사용하고 있는 제품의 버전이 확실하지 않은 경우에는 언제든지 당사 기술 지원팀에 문의하시기 바랍니다.

Mech-Vision SDK는 비전 솔루션, 프로젝트, 스텝의 전체 수명 주기를 관리하기 위한 다음 핵심 클래스를 제공합니다.

핵심 클래스 개요

클래스명 설명

Solution

솔루션의 수명 주기를 관리합니다. 솔루션 열기, 닫기, 저장, 이름 변경과 함께 솔루션 정보, 프로젝트 정보, 카메라 정보, 통신 구성 등을 가져올 수 있습니다.

Project

비전 프로젝트를 관리합니다. 프로젝트 저장, 실행/정지, 출력 데이터 가져오기, 스텝 출력 포트 고정 등을 지원하며, 실행 상태 및 캡처 완료 콜백도 등록할 수 있습니다.

Step

비전 프로젝트 내의 단일 스텝을 관리합니다. 스텝 정보 가져오기, 스텝 파라미터 읽기/쓰기(JSON 형식), 스텝 단독 실행, 스텝 출력 데이터 가져오기 등을 지원합니다.

ErrorStatus

통합 오류 상태 구조체입니다. 작업 결과의 오류 코드(code)와 설명 정보(description)를 포함하며, 성공 여부를 판단하는 ok() 메서드를 제공합니다.

Solution 클래스

자주 사용하는 메서드

메서드 시그니처 반환값 설명

open(path, username, password)

ErrorStatus

지정한 경로의 솔루션을 엽니다. usernamepassword는 선택적 파라미터입니다(접근 제어가 없으면 비워 둠).

close(discardChanges=true)

ErrorStatus

현재 열려 있는 솔루션을 닫습니다. discardChanges=true 이면 저장하지 않은 변경 사항을 버리고 강제로 닫습니다.

save()

ErrorStatus

현재 솔루션을 저장합니다.

rename(name)

ErrorStatus

솔루션 이름을 변경합니다(솔루션 디렉터리 이름도 함께 변경). 이름 변경 작업 사이에는 일정 시간 간격이 필요합니다.

getInfo(info)

ErrorStatus

솔루션 기본 정보를 가져와 SolutionInfo 구조체에 출력합니다.

getAllProjectInfos(projectInfos)

ErrorStatus

솔루션 내 모든 프로젝트의 정보 목록을 가져와 vector<ProjectInfo> 에 출력합니다.

SolutionInfo 구조체

struct SolutionInfo {
    std::string name;       // 솔루션 이름
    std::string path;       // 솔루션 디렉터리의 절대 경로
    std::string version;    // 솔루션 버전
    bool hasChanges;        // 저장되지 않은 변경 사항 존재 여부
    bool isRunning;         // 실행 중 여부
};

Project 클래스

자주 사용하는 메서드

메서드 시그니처 반환값 설명

Project(name)

생성자이며, 프로젝트 이름을 전달합니다.

getInfo(info)

ErrorStatus

프로젝트 기본 정보를 가져와 ProjectInfo 구조체에 출력합니다.

save()

ErrorStatus

프로젝트를 저장합니다.

run(state, requestId, projectResult)

ErrorStatus

프로젝트를 실행합니다. stateOutputFinished(출력 스텝 완료까지 대기) 또는 Finished(전체 프로젝트 완료까지 대기)일 수 있습니다.

stopRun()

ErrorStatus

실행 중인 프로젝트를 중지합니다.

getOutput(outputJson)

ErrorStatus

프로젝트의 출력 데이터(JSON 문자열)를 가져옵니다.

pinStepOutput(stepPorts)

ErrorStatus

지정한 스텝의 출력 포트 데이터를 고정하여 프로젝트 실행 종료 후 데이터가 삭제되지 않도록 합니다.

setRunningChangedCallback(cb)

void

프로젝트 실행 상태 변경 콜백을 등록합니다(프로젝트 시작/종료 시 트리거됨).

setCaptureFinishedCallback(cb)

void

프로젝트 캡처 완료 콜백을 등록합니다(모든 캡처 스텝 실행 완료 후 트리거됨).

ProjectInfo 구조체

struct ProjectInfo {
    int id;               // 프로젝트 고유 ID
    std::string name;     // 프로젝트 이름
    std::string path;     // 프로젝트 파일의 절대 경로
    bool hasChanges;      // 저장되지 않은 변경 사항 존재 여부
    bool isRegistered;    // 등록 여부
    bool isRunning;       // 실행 중 여부
};

ProjectResult 구조체

struct ProjectResult {
    std::string projectName; // 프로젝트 이름
    std::string requestId;   // 이번 실행의 고유 식별자
    int64_t jobId;           // 프로젝트 실행 작업 ID
    std::string outputJson;  // JSON 형식의 출력 데이터(피킹 포인트 포즈 등)
};

Step 클래스

자주 사용하는 메서드

메서드 시그니처 반환값 설명

Step(name, projectName)

생성자이며, 스텝 이름과 소속 프로젝트 이름을 전달합니다.

getInfo(info)

ErrorStatus

스텝 기본 정보를 가져와 StepInfo 구조체에 출력합니다.

getPropertiesJson(namesJson, propsJson)

ErrorStatus

속성 이름 JSON 배열에 따라 스텝 파라미터를 가져옵니다. namesJson 형식의 예: ["threshold"].

setPropertiesJson(propsJson)

ErrorStatus

JSON 문자열을 통해 스텝 파라미터를 일괄 설정합니다.

run(requestId, stepResult)

ErrorStatus

이 스텝만 단독 실행합니다(처음부터 해당 스텝까지 실행).

getOutput(portIndex, stepOutput)

ErrorStatus

지정한 포트의 스텝 출력 데이터를 가져옵니다(사전에 Project::pinStepOutput() 으로 포트를 고정해야 함).

StepInfo 구조체

struct StepInfo {
    std::string guid; // 스텝의 GUID
    std::string name; // 스텝 이름
};

ErrorStatus 구조체

모든 SDK 메서드는 `ErrorStatus`를 반환하며, 다음 필드를 포함합니다.

struct ErrorStatus {
    std::string code;        // 오류 코드(예: "SUCCESS", "-E_FILE_IO_ERROR")
    std::string description; // 오류 설명

    bool ok() const;         // 성공 여부(code == "SUCCESS")
};

자주 사용하는 오류 코드

오류 코드 의미

E_SUCCESS

작업 성공

E_INTERNAL

내부 오류(프로젝트 서비스 미등록 등)

E_FILEIO

파일 I/O 오류(경로 없음, 저장 실패 등)

E_INVALID_PARAM

잘못된 파라미터(파라미터가 비어 있거나 형식이 올바르지 않음)

E_NOT_COMPATIBLE

버전 비호환

E_PERMISSION_DENIED

권한 부족

E_SOLUTION_NOT_FOUND

솔루션이 열려 있지 않음

E_SOLUTION_LOGIN_FAILED

솔루션 사용자 이름 또는 비밀번호 오류

E_PROJECT_NOT_FOUND

프로젝트를 찾을 수 없음

E_PROJECT_RUNNING

프로젝트가 실행 중이어서 이 작업을 수행할 수 없음

E_PROJECT_EXEC_INSTANCE_OVERFLOW

실행 중인 프로젝트 작업 수가 상한을 초과함

E_STEP_NOT_FOUND

스텝이 존재하지 않음

E_STEP_INVALID_PROPERTY

스텝 속성 이름이 존재하지 않거나 속성값 유형이 일치하지 않음

E_RECIPE_NAME_NOT_FOUND

지정한 파라미터 레시피 이름이 존재하지 않음

E_GLOBAL_VARIABLE_NOT_FOUND

전역 변수가 존재하지 않음

E_GLOBAL_VARIABLE_TYPE_MISMATCH

전역 변수 유형 불일치

전역 함수

함수 시그니처 설명

void initialize(configFilePath={})

SDK를 초기화합니다. JSON 구성 파일 경로를 전달할 수 있으며, 전달하지 않으면 기본 구성을 사용합니다. 프로그램 시작 시 가장 먼저 호출해야 합니다.

void uninitialize()

SDK를 종료하고 모든 리소스를 해제합니다. 프로그램 종료 전에 반드시 호출해야 합니다.

bool startServer(serverPath={})

SDK를 통해 Vision 서비스를 시작합니다.

bool closeServer()

SDK를 통해 시작한 Vision 서비스를 종료합니다.

이 페이지가 도움이 되었습니까?

다음 방법을 통해 피드백을 보내주실 수 있습니다:

저희는 귀하의 개인정보를 소중히 다룹니다.

당사 웹사이트는 최상의 사용자 경험을 제공하기 위해 쿠키를 사용하고 있습니다. "모두 수락"을 클릭하시면 쿠키 사용에 동의하시는 것이며, "모두 거부"를 클릭하시면 이 웹사이트 방문 시 귀하의 정보가 추적되거나 기억되지 않도록 단일 쿠키만 사용됩니다.