Allow lane grouping check to account for lanes in fatal
Currently the check looks like this (only applicable to inner layer)
// Check frame lane grouping is correct (these groupings are hardcoded in the firmware)
let mut lane_ids = self
.lane_data_frames
.iter()
.map(|lane_data_frame| ib_data_word_id_to_lane(lane_data_frame.lane_id))
.collect::<Vec<u8>>();
lane_ids.sort_unstable();
match lane_ids.as_slice() {
&[0, 1, 2] | &[3, 4, 5] | &[6, 7, 8] => return Ok(()),
_ => return Err("Invalid lane grouping".to_string()),
}
The check for groupings should be more dynamic, e.g. if lane 1 is in fatal then the check should be for a &[0, 2]
grouping.