Function gpsd::gps_sock_mainloop [] [src]

pub unsafe extern "C" fn gps_sock_mainloop(
    GPSDataT: *mut GPSDataT,
    timeout: c_int,
    hook: extern "C" fn(_: *mut GPSDataT)
) -> c_int

Continously read data from socket, invoking the given hook when successful.

Arguments

  • gpsDataT - Ref to GPSDataT

Example

let mut gps_data: GPSDataT = Default::default();
extern "C" fn print_gps(gps_data: *mut GPSDataT) {
   unsafe {
       println!("Timestamp {}", (*gps_data).fix.time);
       println!("{}", (*gps_data));
       println!("{}", (*gps_data).fix);
    }
}
// see gps_sock_open ...
let result = gps_sock_mainloop(&mut gps_data, 20000, print_gps);
gps_sock_stream(&mut gps_data, WATCH_ENABLE | WATCH_JSON, ptr::null_mut());
// see gps_sock_close ...