diff --git a/crates/sesam-vitale/src/ssv_memory.rs b/crates/sesam-vitale/src/ssv_memory.rs index d00369a..a7f5a6e 100644 --- a/crates/sesam-vitale/src/ssv_memory.rs +++ b/crates/sesam-vitale/src/ssv_memory.rs @@ -319,6 +319,7 @@ mod test_decode_ssv_memory { 1, 49, ]; let blocks = decode_ssv_memory(&bytes, bytes.len()); + println!("{:#?}", blocks); assert_eq!(blocks.len(), 2); } } \ No newline at end of file diff --git a/crates/sesam-vitale/src/ssvlib_demo.rs b/crates/sesam-vitale/src/ssvlib_demo.rs index 16b6e42..619f7e0 100644 --- a/crates/sesam-vitale/src/ssvlib_demo.rs +++ b/crates/sesam-vitale/src/ssvlib_demo.rs @@ -182,10 +182,13 @@ pub fn decode_zone_memoire(bytes: &[u8]) { situations: Vec::new(), }; + println!("--- Decoding Zone Memoire ---"); + println!("Taille de la zone mémoire: {}", bytes.len()); while current_pos_general < bytes.len() - 1 { num_champ = 0; current_groupe = 256 * bytes[current_pos_general] as i32 + bytes[current_pos_general + 1] as i32; + println!("-- Nouveau groupe : {}", current_groupe); current_pos_general += 2; let longueur_groupe: usize; @@ -198,11 +201,13 @@ pub fn decode_zone_memoire(bytes: &[u8]) { acc + (256_i32.pow(i as u32) * bytes[current_pos_general] as i32) as usize }); } + println!("--- Longueur groupe: {}", longueur_groupe); current_pos_general += 1; let mut current_pos_groupe = 0; while current_pos_groupe < longueur_groupe { num_champ += 1; + println!("---- Nouveau champ : {}", num_champ); let longueur_champs: usize; let nbre_octets_longueur: usize; if bytes[current_pos_general] < 128 { @@ -216,6 +221,7 @@ pub fn decode_zone_memoire(bytes: &[u8]) { acc + (256_i32.pow(i as u32) * bytes[current_pos_general] as i32) as usize }); } + println!("----- Longueur champ: {}", longueur_champs); let mut bytes_champ = vec![0; longueur_champs]; if longueur_champs > 0 { @@ -223,6 +229,7 @@ pub fn decode_zone_memoire(bytes: &[u8]) { &bytes[current_pos_general + nbre_octets_longueur ..current_pos_general + nbre_octets_longueur + longueur_champs], ); + println!("----- Bytes du champ: {:?}", bytes_champ); match current_groupe { 1 => match num_champ { @@ -374,17 +381,27 @@ pub fn decode_zone_memoire(bytes: &[u8]) { String::from_utf8_lossy(&bytes_champ).to_string(); } 20 => { - carte_ps.situations.last_mut().unwrap().habilitation_à_signer_une_facture = + carte_ps + .situations + .last_mut() + .unwrap() + .habilitation_à_signer_une_facture = String::from_utf8_lossy(&bytes_champ).to_string(); } 21 => { - carte_ps.situations.last_mut().unwrap().habilitation_à_signer_un_lot = + carte_ps + .situations + .last_mut() + .unwrap() + .habilitation_à_signer_un_lot = String::from_utf8_lossy(&bytes_champ).to_string(); } _ => (), }, _ => (), } + } else { + println!("----- Pas de bytes pour ce champ"); } current_pos_general += longueur_champs + nbre_octets_longueur;