Compare commits
9 Commits
0be0b08f89
...
538675de1d
Author | SHA1 | Date | |
---|---|---|---|
538675de1d | |||
|
419e03c46a | ||
18e56690fe | |||
2d24b78a67 | |||
2ba548aa28 | |||
1b2303a47c | |||
9408990869 | |||
|
e8529a227c | ||
45d89aaaf5 |
@ -319,6 +319,7 @@ mod test_decode_ssv_memory {
|
|||||||
1, 49,
|
1, 49,
|
||||||
];
|
];
|
||||||
let blocks = decode_ssv_memory(&bytes, bytes.len());
|
let blocks = decode_ssv_memory(&bytes, bytes.len());
|
||||||
|
println!("{:#?}", blocks);
|
||||||
assert_eq!(blocks.len(), 2);
|
assert_eq!(blocks.len(), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -182,10 +182,13 @@ pub fn decode_zone_memoire(bytes: &[u8]) {
|
|||||||
situations: Vec::new(),
|
situations: Vec::new(),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
println!("--- Decoding Zone Memoire ---");
|
||||||
|
println!("Taille de la zone mémoire: {}", bytes.len());
|
||||||
while current_pos_general < bytes.len() - 1 {
|
while current_pos_general < bytes.len() - 1 {
|
||||||
num_champ = 0;
|
num_champ = 0;
|
||||||
current_groupe =
|
current_groupe =
|
||||||
256 * bytes[current_pos_general] as i32 + bytes[current_pos_general + 1] as i32;
|
256 * bytes[current_pos_general] as i32 + bytes[current_pos_general + 1] as i32;
|
||||||
|
println!("-- Nouveau groupe : {}", current_groupe);
|
||||||
current_pos_general += 2;
|
current_pos_general += 2;
|
||||||
|
|
||||||
let longueur_groupe: usize;
|
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
|
acc + (256_i32.pow(i as u32) * bytes[current_pos_general] as i32) as usize
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
println!("--- Longueur groupe: {}", longueur_groupe);
|
||||||
current_pos_general += 1;
|
current_pos_general += 1;
|
||||||
|
|
||||||
let mut current_pos_groupe = 0;
|
let mut current_pos_groupe = 0;
|
||||||
while current_pos_groupe < longueur_groupe {
|
while current_pos_groupe < longueur_groupe {
|
||||||
num_champ += 1;
|
num_champ += 1;
|
||||||
|
println!("---- Nouveau champ : {}", num_champ);
|
||||||
let longueur_champs: usize;
|
let longueur_champs: usize;
|
||||||
let nbre_octets_longueur: usize;
|
let nbre_octets_longueur: usize;
|
||||||
if bytes[current_pos_general] < 128 {
|
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
|
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];
|
let mut bytes_champ = vec![0; longueur_champs];
|
||||||
if longueur_champs > 0 {
|
if longueur_champs > 0 {
|
||||||
@ -223,6 +229,7 @@ pub fn decode_zone_memoire(bytes: &[u8]) {
|
|||||||
&bytes[current_pos_general + nbre_octets_longueur
|
&bytes[current_pos_general + nbre_octets_longueur
|
||||||
..current_pos_general + nbre_octets_longueur + longueur_champs],
|
..current_pos_general + nbre_octets_longueur + longueur_champs],
|
||||||
);
|
);
|
||||||
|
println!("----- Bytes du champ: {:?}", bytes_champ);
|
||||||
|
|
||||||
match current_groupe {
|
match current_groupe {
|
||||||
1 => match num_champ {
|
1 => match num_champ {
|
||||||
@ -374,17 +381,27 @@ pub fn decode_zone_memoire(bytes: &[u8]) {
|
|||||||
String::from_utf8_lossy(&bytes_champ).to_string();
|
String::from_utf8_lossy(&bytes_champ).to_string();
|
||||||
}
|
}
|
||||||
20 => {
|
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();
|
String::from_utf8_lossy(&bytes_champ).to_string();
|
||||||
}
|
}
|
||||||
21 => {
|
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();
|
String::from_utf8_lossy(&bytes_champ).to_string();
|
||||||
}
|
}
|
||||||
_ => (),
|
_ => (),
|
||||||
},
|
},
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
println!("----- Pas de bytes pour ce champ");
|
||||||
}
|
}
|
||||||
|
|
||||||
current_pos_general += longueur_champs + nbre_octets_longueur;
|
current_pos_general += longueur_champs + nbre_octets_longueur;
|
||||||
|
Loading…
Reference in New Issue
Block a user