Calculate current_abs_max_tec_i from all channels #119

Merged
sb10q merged 1 commits from atse/thermostat:generalise-fan-channel into master 2024-08-07 16:14:29 +08:00
1 changed files with 5 additions and 4 deletions

View File

@ -1,4 +1,4 @@
use core::{cmp::max_by, marker::PhantomData}; use core::marker::PhantomData;
use heapless::{consts::U2, Vec}; use heapless::{consts::U2, Vec};
use num_traits::Zero; use num_traits::Zero;
use serde::{Serialize, Serializer}; use serde::{Serialize, Serializer};
@ -561,9 +561,10 @@ impl Channels {
} }
pub fn current_abs_max_tec_i(&mut self) -> ElectricCurrent { pub fn current_abs_max_tec_i(&mut self) -> ElectricCurrent {
max_by(self.get_tec_i(0).abs(), (0..CHANNELS)
self.get_tec_i(1).abs(), .map(|channel| self.get_tec_i(channel).abs())
|a, b| a.partial_cmp(b).unwrap_or(core::cmp::Ordering::Equal)) .max_by(|a, b| a.partial_cmp(b).unwrap_or(core::cmp::Ordering::Equal))
Review

Quite curious though, is it internally same efficiency? I remember in some languages it's not in case of streams

Quite curious though, is it internally same efficiency? I remember in some languages it's not in case of streams
Review

It doesn't matter here. The bottleneck will be self.get_tec_i(channel) which blocks until the single conversion Adc readings return.

It doesn't matter here. The bottleneck will be `self.get_tec_i(channel)` which blocks until the single conversion Adc readings return.
.unwrap()
} }
} }