initial gps read/write and publish
This commit is contained in:
parent
df46a56cc3
commit
1fc1218ba6
1 changed files with 41 additions and 1 deletions
42
src/gps.rs
42
src/gps.rs
|
@ -4,9 +4,49 @@ use std::sync::mpsc::SyncSender;
|
|||
use std::thread;
|
||||
use std::time::Duration;
|
||||
|
||||
use esp_idf_hal::prelude::*;
|
||||
use esp_idf_hal::serial;
|
||||
|
||||
use ublox::*;
|
||||
|
||||
use crate::modem::Msg;
|
||||
|
||||
pub fn main(sender: SyncSender<Msg>) -> Result<(), anyhow::Error> {
|
||||
pub fn main<T: Sync + Send>(
|
||||
rx: esp_idf_hal::gpio::Gpio32<T>,
|
||||
tx: esp_idf_hal::gpio::Gpio33<T>,
|
||||
uart: serial::UART2,
|
||||
sender: SyncSender<Msg>,
|
||||
) -> Result<(), anyhow::Error> {
|
||||
let serial_pins = serial::Pins {
|
||||
tx,
|
||||
rx,
|
||||
cts: None,
|
||||
rts: None,
|
||||
};
|
||||
let _serial: serial::Serial<serial::UART2, _, _> = serial::Serial::new(
|
||||
uart,
|
||||
serial_pins,
|
||||
serial::config::Config::default().baudrate(Hertz(9600)),
|
||||
)?;
|
||||
|
||||
let mut parser = Parser::default();
|
||||
let mut it = parser.consume(&raw_packet);
|
||||
|
||||
loop {
|
||||
match it.next() {
|
||||
Some(Ok(packet)) => {
|
||||
println!("We've received a &PacketRef, we can handle it ... {:?}", packet);
|
||||
}
|
||||
Some(Err(err)) => {
|
||||
println!("Received a malformed packet {:?}", err);
|
||||
}
|
||||
None => {
|
||||
println!("The internal buffer is now empty");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
println!("entering GPS sender loop ...");
|
||||
for i in 0..20 {
|
||||
println!("sending GPS message ({}) of 20 ...", i);
|
||||
|
|
Loading…
Add table
Reference in a new issue