AssettoCorsa UDP 인터페이스에서 원격 측정 데이터를 얻기 위한 라이브러리입니다. 라이브러리는 C API를 기반으로 하며 C++ 래퍼 API 및 Python 확장 모듈도 제공합니다.
C/C++ 라이브러리를 컴파일하고 빌드하려면 시스템에 gcc
및 GNU make
설치해야 합니다. Python 확장의 경우 Python3
이 시스템에 있어야 합니다.
전체 라이브러리를 빌드하려면 다음 명령을 작성하십시오.
$ make
이는 실제로 C 라이브러리 바이너리를 lib/
디렉토리에 정적 라이브러리로 빌드합니다. Python 확장 모듈은 python-extension/build/
디렉터리에도 내장됩니다.
이 섹션에서는 제공된 세 가지 API에 대한 라이브러리의 간략한 사용법을 설명합니다. 추가 사용 예는 examples/
디렉토리에서 찾을 수 있습니다.
이 예에는 include/
에 라이브러리 헤더가 포함되어 있습니다. 그런 다음 라이브러리를 초기화하고 자동차 정보 실시간 이벤트를 수신하도록 구독한 다음 하나의 이벤트를 읽은 후 통신을 닫습니다.
#include "acudp.h"
int main ()
{
// Init library
acudp_handle * acudp ;
acudp_init ( & acudp ));
// Subscribe to car info events
acudp_setup_response_t setup_response ;
acudp_send_handshake ( acudp , & setup_response );
acudp_client_subscribe ( acudp , ACUDP_SUBSCRIPTION_UPDATE );
// Read car data
acudp_car_t data ;
acudp_read_update_event ( acudp , & data );
/* ... process car data ... */
// Close communication and exit library
acudp_send_dismiss ( acudp );
acudp_exit ( acudp );
return 0 ;
}
단순화를 위해 오류 검사는 수행되지 않습니다. 모든 오류 코드는 라이브러리 헤더 파일에서 찾을 수 있습니다.
이 예에는 include/
에 라이브러리 헤더가 포함되어 있습니다. 그리고 C 예제와 동일한 작업을 수행합니다.
# include " acudp.hpp "
int main ()
{
// Initailise ACUDP instance and connect to server
acudp::ACUDP acudp{};
acudp. send_handshake ();
// Subscribe to car info events
acudp. subscribe (acudp::SubscribeMode::update);
// Read car data
auto car = acudp. read_update_event ();
/* ... process car data ... */
// All resources are freed by RAII. No need to manually disconnect.
return 0 ;
}
다시 말하지만 단순화를 위해 약간의 예외가 확인됩니다. 모든 예외는 라이브러리 헤더 파일에서 찾을 수 있습니다.
이 예에서는 이전 예와 동일한 작업을 수행합니다.
import acudp
if __name__ == "__main__" :
# Initailise ACUDP instance and connect to server
client = acudp . ACUDP ()
client . send_handshake ()
# Subscribe to car info events
client . subscribe_to_updates ()
# Read car data
car_info = client . read_update_event ();
## ... process car_info data ... ##
# Disconnect client
client . send_dismiss ()
다시 말하지만 단순화를 위해 약간의 예외가 확인됩니다.
모든 문서는 DOCUMENTATION.md 파일에서 찾을 수 있습니다.
누락된 주요 기능은 다음 중 하나에 대한 지원을 추가하는 것입니다.