텔레메트리 클라이언트는 텔레메트리 서비스와 상호작용하여 데이터 수집을 구성하고, 측정항목 구성을 관리하고, 텔레메트리 보고서를 수신하는 앱입니다. 클라이언트는 libsdv_telemetry_rust_wrapper Rust 라이브러리를 사용하여 서비스와 상호작용합니다.
API 노출 영역 개요
API 문서는 Rust 텔레메트리 클라이언트 라이브러리 API 참조를 확인하세요.
이 라이브러리는 기본 텔레메트리 서비스와 상호작용하기 위한 Rust 인터페이스를 제공합니다. 이 라이브러리는 다음 영역을 담당합니다.
서비스 수명 주기 관리: 텔레메트리 서비스에 대한 연결을 관리합니다.
- 초기화: 차단 호출을 사용하여 서비스에 대한 연결을 설정합니다. 연결 후 콜백을 등록하여 시스템 상태 및 새 보고서의 사용 가능 여부에 관한 비동기 알림을 수신할 수 있습니다.
- 종료: 서비스에서 정상적으로 연결을 해제하고 연결된 모든 리소스를 정리하는 방법을 제공합니다.
측정항목 구성 수명 주기 관리: 측정항목 구성의 수명 주기를 제어할 수 있습니다.
- 관리: 클라이언트는 측정항목 구성을 추가, 삭제, 활성화, 비활성화할 수 있습니다.
- 검사: 활성 및 비활성 구성 목록을 쿼리할 수 있습니다.
보고서 처리 및 검색: 텔레메트리 서비스에서 수집한 데이터에 대한 액세스를 용이하게 합니다.
- 알림: 새 측정항목 보고서를 검색할 준비가 되면 콜백을 사용하여 클라이언트에 비동기식으로 알립니다.
- 데이터 액세스: UUID별로 특정 보고서를 가져오고 사용 가능한 모든 보고서 목록을 검색하는 메서드를 제공합니다.
상태 및 오류 보고: 텔레메트리 서비스의 상태 및 상태에 관한 통계를 제공합니다.
- 비동기 상태 업데이트: 클라이언트는 전용 콜백을 통해 오류 및 경고를 포함한 실시간 상태 업데이트를 수신합니다. 이를 통해 강력한 오류 처리를 구현하고 서비스의 상태를 모니터링할 수 있습니다.
사용 예시
전체 수명 주기를 보여주는 컴파일 가능한 전체 앱은 샘플 클라이언트 구현 samples/telemetry/client/rust/telemetry_client/telemetry_rust_c_client.rs를 참고하세요.
샘플 클라이언트는 전체 라이브러리 API와 상호작용하는 명령줄 유틸리티입니다. 이 샘플은 채널을 사용하여 라이브러리의 콜백 기반 인터페이스를 비동기 Rust 런타임 (Tokio)과 연결하는 방법을 보여줍니다.
클라이언트는 다음 작업 시퀀스를 실행합니다.
- 텔레메트리 서비스에 대한 연결을 설정하고 상태 업데이트 및 측정항목 보고서 알림을 위한 콜백을 등록합니다.
- 명령줄 인수로 제공된 측정항목 구성 파일을 읽은 다음 서비스에 구성을 추가하고 활성화합니다.
- 백그라운드 작업을 사용하여 서비스에서 수신한 비동기 상태 메시지 (오류 또는 경고)를 로깅합니다.
- 다음 작업을 실행하여 데이터 검색 루프를 관리합니다.
- 측정항목 보고서가 준비되었다는 알림을 기다립니다.
- 전체 측정항목 보고서 데이터를 가져옵니다.
- 원하는 경우 보고서를 바이너리 프로토콜 버퍼 파일로 디스크에 씁니다.
- 첫 번째 측정항목 보고서를 생성하면 서비스에서 측정항목 구성을 삭제합니다. 이는 데모 구현이며 자체 클라이언트는 원하는 수의 보고서를 수신할 수 있습니다.
- 서비스에 대한 연결을 정상적으로 닫습니다.