11 个版本 (稳定)
2.3.1 | 2023 年 2 月 20 日 |
---|---|
2.2.0 | 2020 年 7 月 30 日 |
1.0.2 | 2020 年 7 月 14 日 |
0.2.1 | 2020 年 7 月 12 日 |
0.1.1 | 2020 年 7 月 12 日 |
在 网络编程 中排名 #1257
每月下载量 32 次
105KB
3K SLoC
cm-telemetry
实现 Codemasters(及其好友)UDP 遥测协议并提供与之交互的抽象。
支持的游戏
- F1 2020
- F1 2022
- Dirt Rally 2.0
示例
use cm_telemetry::f1::f1_2020::F1_2020;
use cm_telemetry::TelemetryServer;
fn main() {
let server =
TelemetryServer::<F1_2020>::new("127.0.0.1:20777").expect("failed to bind to address");
loop {
let event = server.next();
if let Err(e) = event {
println!("error: {:?}", e);
continue;
}
match event.unwrap() {
F1_2020::FinalClassification(_data) => println!("Received FinalClassification packet"),
F1_2020::LobbyInfo(_data) => println!("Received LobbyInfo packet"),
_ => ()
}
使用外部定义的游戏
你可以通过在一个类型上实现 Event
特性,然后使用 cm_telemetry::Server::<T>::new(addr)
来初始化它,以支持(库外部)的新游戏。
欢迎 PR :)
进一步阅读
https://forums.codemasters.com/topic/50942-f1-2020-udp-specification/ https://answers.ea.com/t5/General-Discussion/F1-22-UDP-Specification/td-p/11551274
依赖
~2.5MB
~53K SLoC