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::thread;
 | 
				
			||||||
use std::time::Duration;
 | 
					use std::time::Duration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use esp_idf_hal::prelude::*;
 | 
				
			||||||
 | 
					use esp_idf_hal::serial;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					use ublox::*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use crate::modem::Msg;
 | 
					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 ...");
 | 
					    println!("entering GPS sender loop ...");
 | 
				
			||||||
    for i in 0..20 {
 | 
					    for i in 0..20 {
 | 
				
			||||||
        println!("sending GPS message ({}) of 20 ...", i);
 | 
					        println!("sending GPS message ({}) of 20 ...", i);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue