acudp
1.0.0
用於從 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 檔案中找到。
主要缺少的功能是添加對以下任一功能的支援: