tof_control/tcpc_control/
tcpc_vcp.rs

1use 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}