아진 모션 보드 제어 – 에러 코드 문자열 변환 소스 공유
- 이성열
- 2025-09-04
- 45
안녕하세요,
아진 모션 보드를 사용하며 개발하는 과정에서, AXT_FUNC_RESULT 에러 코드들을 사람이 이해하기 쉬운 문자열로 변환하는 Helper 클래스를 작성했습니다.
SDK 사용 중 에러 코드만 숫자로 나오면 원인을 빠르게 파악하기 어려운 경우가 있어, 한/영 병기된 메시지를 맵핑하여 바로 로그와 UI에 표시할 수 있도록 구성했습니다.아래 코드를 공유드리며, 이 기능이 다른 개발자분들께도 도움이 되기를 바랍니다.
기대 효과
-
에러 코드 해석 시간을 줄이고, 디버깅 생산성을 높일 수 있습니다.
-
한글과 영어 메시지를 병기하여, 한국 개발자뿐 아니라 해외 엔지니어와 협업 시에도 유용하게 활용할 수 있습니다.
-
SDK에 없는 숫자 코드가 들어오는 경우 로그를 남겨 추적할 수 있도록 했습니다.
바라는 점
이 기능이 앞으로도 다른 아진 개발자분들께 도움이 되기를 바랍니다.
또한, 가능하다면 다음 버전 업데이트 시 정식 SDK에 포함되어 기본 제공되면 좋겠습니다.
사용 방법
-
SDK 함수 호출 후 리턴값을 받아 처리
uint result = AxlOpen(7); // 예시: 라이브러리 오픈 함수 string msg = AxtErrorMessageHelper.GetErrorMsg(result);
XLog.Add("TEST", $"Result : {msg}");
출력 예시:
Result : 1001 : Library not opened (라이브러리 오픈 되지않음)
-
UI에 표시하거나 디버깅 로그에 출력
labelStatus.Text = AxtErrorMessageHelper.GetErrorMsg(result);
-
정의되지 않은 코드인 경우
-
SDK enum에 없는 코드가 들어오면
Undefined code
로 반환하며, 로그에 남겨 추적할 수 있습니다.
-
첨부파일
AxtErrorMessageHelper.cs
소스 일부
using System;
using System.Collections.Generic;
public static class AxtErrorMessageHelper
{
private const string PREFIX = "AxtError";
private static readonly Dictionary
{
// ===== 0 / Library & Common =====
{ 0, "API call succeeded (API 함수 수행 성공)" },
{ 1001, "Library not opened (라이브러리 오픈 되지않음)" },
{ 1002, "Library already open and in use (라이브러리 오픈 되어있고 사용 중임)" },
{ 1053, "Library initialization failed (라이브러리 초기화 실패)" },
{ 1054, "Unsupported hardware (지원하지않는 하드웨어)" },
{ 1055, "Lock file mismatches current scan info (Lock파일과 현재 Scan정보가 일치하지 않음)" },
// ...
// (전체 코드는 별첨)
};
///
/// AXT_FUNC_RESULT 코드 -> "코드 : English (한국어)" 포맷 문자열 반환
///
///
///
public static string GetErrorMsg(uint code)
{
uint ucode = unchecked((uint)code);
if (Map.TryGetValue(ucode, out string msg))
{
return $"{ucode} : {msg}";
}
if (Enum.IsDefined(typeof(AXT_FUNC_RESULT), ucode))
{
string enumName = ((AXT_FUNC_RESULT)ucode).ToString();
return $"{ucode} : {enumName} (정의된 한국어 메시지 없음)";
}
XLog.AddError(PREFIX, $"Undefined code {ucode}");
return $"{ucode} : Undefined code (정의되지 않은 코드)";
}
}