장치 SDK 래퍼는 장치 간의 실제 차이점을 유지하면서 호출 규칙을 표준화해야 합니다. 일치하는 API 이름은 매개변수 의미, 버퍼 소유권 또는 오류 상태를 정의하지 않습니다. 다음은 어댑터 설계 방법이지 임의의 장치가 이미 통합되었다는 주장이 아닙니다.
매개변수 의미를 먼저 정의하세요.
| 필드 | 필수정보 | 피해야 할 문제 |
|---|---|---|
| 식별자 | 애플리케이션 이름, 장치 매핑 및 적용 모드 | 다른 의미를 지닌 동일한 이름 |
| 유형 및 단위 | 정수, 부동 소수점, 열거형, 부울 및 명시적 단위 | 호환되지 않는 단위로 숫자 복사 |
| 접근 능력 | 읽기 전용 또는 쓰기 가능, 동적 범위 및 상태 종속성 | 이미지 캡처 중에 변경할 수 없는 매개변수 쓰기 |
| 열거형과 기본값 | 실제 지원되는 값 및 다시 읽기 | 지원되지 않는 설정을 성공으로 보고 |
| 활성화 조건 | 중지, 재시작 또는 재연결이 필요한지 여부 | 호출이 반환된 직후 프레임이 새 설정을 사용한다고 가정 |
필드 이름을 바꾸는 것 이상의 작업을 수행하세요. 지원되지 않는 기능에 대해 식별 가능한 상태를 반환합니다. 호환되는 단위에 대한 변환 및 반올림을 정의합니다. 대상 SDK의 기능에 따라 읽기, 장치 상태 및 이미지 변경을 확인합니다.
프레임 데이터 수명
공급업체 SDK, 어댑터 또는 호출자가 버퍼를 할당하는지, 읽을 수 있는 기간, 해제 또는 반환해야 하는 시기, 크로스 스레드 사용이 허용되는지, 복사가 발생하는지 여부를 문서화합니다. 차원, 형식, 행 보폭 및 유효한 길이는 함께 이미지 데이터를 설명합니다. 빽빽하게 채워진 행을 가정하지 마세요.
수명을 확인하지 않고 장기 실행 다운스트림 작업에 비동기 콜백 포인터를 전달하지 마세요. 이미지 캡처 종료, 연결 끊김 및 장치 파괴에도 미해결 프레임, 대기 중인 콜백 및 리소스 해제에 대한 주문이 필요합니다.
상태 및 오류 출처
허용된 통화 및 전환 조건과 함께 연결 끊김, 연결됨, 구성됨, 획득, 중지 및 오류 상태를 별도로 고려하십시오. 시간 초과, 연결 끊김, 지원되지 않는 매개변수, 버퍼 부족 및 구문 분석 실패를 별도로 표현합니다. 래퍼의 오류 코드와 함께 공급업체 오류 코드 및 컨텍스트를 유지합니다.
예시 이상의 검증
지정된 장치 및 버전의 경우 매개변수 경계, 반복 시작 및 중지, 프레임 시간 초과, 버퍼 반환, 동시 호출 및 재연결을 테스트합니다. 오류를 삽입할 수 없거나 지원되지 않는 이유를 기록합니다. API 문서, 오류 표, 빌드 지침, 예제 및 합의된 테스트 기록을 제공합니다.
관련 서비스: 비전 장치 SDK 그리고 내장된 이미지 이미지 캡처.