From d5314c674587514f9e731dd5741261bc7747c93b Mon Sep 17 00:00:00 2001 From: Paul Date: Sun, 2 Feb 2025 22:38:53 +0100 Subject: [PATCH] add more informations in db --- src/db.rs | 20 ++++++++++++++++---- src/parser/mod.rs | 3 +++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/db.rs b/src/db.rs index 4667e7e..c058806 100644 --- a/src/db.rs +++ b/src/db.rs @@ -2,10 +2,11 @@ use rusqlite::*; const DBPATH: &'static str = "data/tracker.db"; const STATEMENTS: [&str; 2] = [ -"CREATE TABLE log (id integer primary key autoincrement, time text, latitude float, longitude float);", +"CREATE TABLE log (id integer primary key autoincrement, time text, latitude float, longitude float, speed integer, height integer, direction integer);", "CREATE INDEX idx_time on log (time);",]; const QUERY_INSERT: &'static str = - "INSERT INTO log (time, latitude, longitude) values (:time, :latitude, :longitude)"; + "INSERT INTO log (time, latitude, longitude, speed, height, direction) + VALUES (:time, :latitude, :longitude, :speed, :height, :direction)"; pub fn connectdb() -> Result { let conn = Connection::open(DBPATH)?; @@ -33,8 +34,19 @@ fn set_pragmas(conn: &Connection) -> Result<()> { Ok(()) } -pub fn insert(conn: &Connection, time: &String, latitude: &f64, longitude: &f64) -> Result<()> { - match conn.execute(QUERY_INSERT, params![time, latitude, longitude]) { +pub fn insert( + conn: &Connection, + time: &String, + latitude: &f64, + longitude: &f64, + speed: &u16, + height: &u16, + direction: &u16, +) -> Result<()> { + match conn.execute( + QUERY_INSERT, + params![time, latitude, longitude, speed, height, direction], + ) { Ok(inserted) => println!("{} rows were inserted", inserted), Err(err) => println!("insert failed: {}", err), } diff --git a/src/parser/mod.rs b/src/parser/mod.rs index 2cd8376..25cb5f5 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -328,6 +328,9 @@ impl Message { &t.time.format("%Y-%m-%d %H:%M:%S").to_string(), &t.latitude, &t.longitude, + &t.speed, + &t.height, + &t.direction, ) .unwrap();