canparser/
lib.rs

1use std::{collections::HashMap, fs::File, io::Read};
2
3use can_dbc::Message;
4
5pub mod payload;
6
7
8
9pub fn read_dbc(f: &mut File) -> HashMap<u32, Message> {
10    let mut buffer = Vec::<u8>::new();
11    f.read_to_end(&mut buffer).unwrap();
12
13    let dbc = can_dbc::DBC::from_slice(&buffer).expect("Failed to parse dbc file");
14    let mut db = HashMap::<u32, Message>::new();
15    for message in dbc.messages() {
16        db.insert(message.message_id().0, message.clone());
17    }
18    return db;
19}
20
21#[cfg(test)]
22mod tests {
23    use super::*;
24
25    #[test]
26    fn it_works() {
27        
28    }
29}