3个版本
0.1.6 | 2024年6月11日 |
---|---|
0.1.5 | 2024年2月8日 |
0.1.3 | 2024年1月9日 |
1920 在 网络编程
23KB
376 行
gpsd_client
模块包含连接到[gpsd] https://gpsd.io/index.html以获取GPS坐标、接收到的卫星数量以及使用到的卫星数量的类型和函数。
gps-client
使用TcpStream连接到gpsd套接字服务器,以读取和写入到gpsd
的信息。此包是从python3 gpsd包建模的。
测试
gpsd_client
在Linux Debian发行版上与gpsd: 3.22进行了测试。有关gpsd的更多信息,请查阅https://gpsd.io/index.html的文档。
示例
use gpsd_client::*;
use std::thread;
use std::time::Duration;
use std::process;
fn main() {
// Connecting to the gpsd socket server.
let mut gps: GPS = match GPS::connect() {
Ok(t) => t,
Err(e) => {
println!("{e}");
process::exit(1);
}
};
let mut count: i32 = 0;
loop {
count += 1;
// Getting the data from the gps device.
let data: GPSData = gps.current_data().unwrap();
println!("{data:#?}");
let my_time: String = data.convert_time("America/Chicago").unwrap();
let mph: f32 = data.convert_speed(true);
let direction: String = data.travel_direction();
println!(
"Lat: {}, Lon: {}, Time: {}, Speed: {:.1}, Direction: {}",
data.lat, data.lon, my_time, mph, direction
);
if count == 5 { break; }
thread::sleep(Duration::from_millis(500));
}
// Closing the TcpStream and BufReader to the gpsd socket server.
gps.close();
}
依赖关系
~1.9–3MB
~48K SLoC