tof_control/rb_control/
rb_dac.rsuse crate::constant::*;
use crate::helper::rb_type::RBError;
use crate::device::{ad5675, pca9548a};
pub fn set_dac() -> Result<(), RBError> {
let i2c_mux = pca9548a::PCA9548A::new(I2C_BUS, RB_PCA9548A_ADDRESS_2);
i2c_mux.select(RB_AD5675_CHANNEL)?;
let ad5675 = ad5675::AD5675::new(RB_AD5675_ADDRESS);
ad5675.write_dac(0, 25600);
ad5675.write_dac(1, 25600);
ad5675.write_dac(2, 42500);
ad5675.write_dac(3, 32000);
ad5675.write_dac(4, 22400);
i2c_mux.reset()?;
Ok(())
}
pub fn set_dac_500() -> Result<(), RBError> {
let i2c_mux = pca9548a::PCA9548A::new(I2C_BUS, RB_PCA9548A_ADDRESS_2);
i2c_mux.select(RB_AD5675_CHANNEL)?;
let ad5675 = ad5675::AD5675::new(RB_AD5675_ADDRESS);
ad5675.write_dac(2, 49600);
i2c_mux.reset()?;
Ok(())
}
pub fn dac_noi_mode() -> Result<(), RBError> {
let i2c_mux = pca9548a::PCA9548A::new(I2C_BUS, RB_PCA9548A_ADDRESS_2);
i2c_mux.select(RB_AD5675_CHANNEL)?;
let ad5675 = ad5675::AD5675::new(RB_AD5675_ADDRESS);
ad5675.write_dac(1, 25600);
i2c_mux.reset()?;
Ok(())
}
pub fn dac_vcal_mode() -> Result<(), RBError> {
let i2c_mux = pca9548a::PCA9548A::new(I2C_BUS, RB_PCA9548A_ADDRESS_2);
i2c_mux.select(RB_AD5675_CHANNEL)?;
let ad5675 = ad5675::AD5675::new(RB_AD5675_ADDRESS);
ad5675.write_dac(1, 46400);
i2c_mux.reset()?;
Ok(())
}
pub fn dac_tcal_mode() -> Result<(), RBError> {
let i2c_mux = pca9548a::PCA9548A::new(I2C_BUS, RB_PCA9548A_ADDRESS_2);
i2c_mux.select(RB_AD5675_CHANNEL)?;
let ad5675 = ad5675::AD5675::new(RB_AD5675_ADDRESS);
ad5675.write_dac(1, 25600);
i2c_mux.reset()?;
Ok(())
}
pub fn dac_sma_mode() -> Result<(), RBError> {
let i2c_mux = pca9548a::PCA9548A::new(I2C_BUS, RB_PCA9548A_ADDRESS_2);
i2c_mux.select(RB_AD5675_CHANNEL)?;
let ad5675 = ad5675::AD5675::new(RB_AD5675_ADDRESS);
ad5675.write_dac(1, 25600);
i2c_mux.reset()?;
Ok(())
}