ไลบรารีสำหรับรับข้อมูลโทรมาตรจากอินเทอร์เฟซ AssettoCorsa UDP ไลบรารีนี้ใช้ C API และยังมี C++ wrapper API และโมดูลส่วนขยาย Python
ในการคอมไพล์และสร้างไลบรารี C/C++ จำเป็นต้องติดตั้ง gcc
และ 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
ฟังก์ชั่นหลักที่ขาดหายไปคือการเพิ่มการรองรับสำหรับ: