2020-06-10 18:40:44 +08:00
|
|
|
use super::{Error, Channel};
|
2020-06-09 00:20:10 +08:00
|
|
|
|
|
|
|
pub trait PowerMeasurementInterface {
|
2020-06-10 18:40:44 +08:00
|
|
|
fn sample_converter(&mut self, channel: Channel) -> Result<f32, Error>;
|
2020-06-09 00:20:10 +08:00
|
|
|
|
2020-06-10 18:40:44 +08:00
|
|
|
fn measure_power(&mut self, channel: Channel) -> Result<f32, Error> {
|
2020-06-09 00:20:10 +08:00
|
|
|
let analog_measurement = self.sample_converter(channel)?;
|
|
|
|
|
|
|
|
// The AD8363 with VSET connected to VOUT provides an output voltage of 51.7mV / dB at
|
|
|
|
// 100MHz.
|
|
|
|
Ok(analog_measurement / 0.0517)
|
|
|
|
}
|
|
|
|
}
|