tof_control/tcpc_control/
tcpc_vcp.rs1use crate::constant::*;
2use crate::helper::tcpc_type::{TCPCVcp, TCPCVcpError};
3use crate::device::ina219;
4
5impl TCPCVcp {
6 pub fn new() -> Self {
7 match Self::read_vcp() {
8 Ok(tcpc_vcp) => {
9 tcpc_vcp
10 }
11 Err(_) => {
12 Self {
13 tcpc_vcp: [f32::MAX; 3],
14 }
15 }
16 }
17 }
18 pub fn read_vcp() -> Result<TCPCVcp, TCPCVcpError> {
19 let tcpc_ina219 = ina219::INA219::new(1, TCPC_INA219_ADDRESS, TCPC_INA219_RSHUNT, TCPC_INA219_MEC);
20 tcpc_ina219.configure()?;
21 let tcpc_vcp = tcpc_ina219.read()?;
22
23 Ok(
24 TCPCVcp {
25 tcpc_vcp,
26 }
27 )
28 }
29}