AssettoCorsa UDP インターフェイスからテレメトリ データを取得するためのライブラリ。このライブラリは C API に基づいており、C++ ラッパー API と Python 拡張モジュールも提供します。
C/C++ ライブラリをコンパイルしてビルドするには、システムにgcc
と GNU make
インストールする必要があります。 Python 拡張機能の場合、 Python3
システムに存在する必要があります。
ライブラリ全体をビルドするには、次のコマンドを作成します。
$ make
これにより、実際には C ライブラリのバイナリが静的ライブラリとしてlib/
ディレクトリにビルドされます。 Python 拡張モジュールもpython-extension/build/
ディレクトリにビルドされます。
このセクションでは、提供されている 3 つの API のライブラリの使用方法を簡単に説明します。さらなる使用例は、 examples/
ディレクトリにあります。
この例にはinclude/
にライブラリ ヘッダーが含まれています。次に、ライブラリを初期化し、車両情報のリアルタイム イベントを受信するようにライブラリをサブスクライブし、1 つのイベントを読み取った後に通信を閉じます。
#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 ファイルにあります。
不足している主な機能は、次のいずれかのサポートを追加することです。