feat: 灯条段排序。

This commit is contained in:
2023-04-02 16:08:28 +08:00
parent 535f731770
commit 86e9b072bc
8 changed files with 89 additions and 186 deletions

View File

@@ -122,7 +122,8 @@ impl ConfigManager {
log::info!("mapper: {:?}", mapper);
}
}
log::info!("mapper: {:?}", config.mappers[4]);
Self::rebuild_mappers(&mut config);
let cloned_config = config.clone();
@@ -138,17 +139,31 @@ impl ConfigManager {
}
fn rebuild_mappers(config: &mut LedStripConfigGroup) {
let mut prev_end = 0;
let mut prev_pos_end = 0;
let mappers: Vec<SamplePointMapper> = config
.strips
.iter()
.map(|strip| {
let mapper = SamplePointMapper {
start: prev_end,
end: prev_end + strip.len,
};
prev_end = mapper.end;
mapper
.enumerate()
.map(|(index, strip)| {
let mapper = &config.mappers[index];
if mapper.start < mapper.end {
let mapper = SamplePointMapper {
start: mapper.start,
end: mapper.start + strip.len,
pos: prev_pos_end,
};
prev_pos_end = prev_pos_end + strip.len;
mapper
} else {
let mapper = SamplePointMapper {
end: mapper.end,
start: mapper.end + strip.len,
pos: prev_pos_end,
};
prev_pos_end = prev_pos_end + strip.len;
mapper
}
})
.collect();