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 文件中找到。
主要缺少的功能是添加对以下任一功能的支持: