CDT I-BM API 1.0.0
Loading...
Searching...
No Matches
CdtHv.h
1#pragma once
2
3#include "CdtBaseBmAPI.h"
4#include "hvCalibration.h"
5
6enum class TiaBoardVersion : uint8_t { V3_0 = 0, V3_2 = 1 };
7enum class I2cRequestAction : uint8_t { READ = 0, WRITE = 1 };
8
9class CdtHv : public virtual CdtBaseBMAPI {
10 public:
11 CdtHv(std::string name, TiaBoardVersion tia_board_version);
12
13 TiaBoardVersion getTiaBoardVersion() const { return tiaVersion; }
14 const std::string& getTiaBoardVersionLabel() const { return tiaBoardVersionLabel; }
15
16 void setHvTimeout(uint32_t val);
17 uint32_t getHvTimeout();
18 bool isHVRampRunning() const;
19 void requestHVStop();
20 void resetHVStop();
21 double readHV(rmmStatus* status = NULL);
22 void writeHV(const double voltage, const double voltagePerSec);
23 bool isStopHVRequested() const;
24
25 protected:
26 uint32_t calcDacForVoltage(const double voltage);
27 void jumpToVoltage(const double voltage);
28 bool isI2cRequestDone();
29 rmmStatus runI2cRequest(I2cRequestAction action, uint32_t dac_value = 0xFF);
30
31 std::atomic<uint32_t> previousDacValue{0};
32 TiaBoardVersion tiaVersion;
33 std::string tiaBoardVersionLabel;
34
35 private:
36 RMMLog log;
37 std::atomic<uint32_t> hvTimeout{1000};
38 std::atomic<bool> _isHVRampRunning{false};
39 std::atomic<bool> _hvStopRequested{false};
40};
CdtBaseBMAPI(RMMAPI *rmmApi, int ring, int node, std::string name, FENRegMap additional_reg_map)
Constructor for the CdtBm class.
Definition CdtBaseBmAPI.cpp:14
bool isI2cRequestDone()
Checks if an I2C request has completed.
Definition CdtHv.cpp:236
rmmStatus runI2cRequest(I2cRequestAction action, uint32_t dac_value=0xFF)
Executes an I2C read or write request to the HV module.
Definition CdtHv.cpp:197
uint32_t getHvTimeout()
Definition CdtHv.cpp:65
void resetHVStop()
Resets the stop request flag, allowing operations to continue.
Definition CdtHv.cpp:27
void writeHV(const double voltage, const double voltagePerSec)
Writes a voltage value to the HV chip, ensuring proper enabling and smooth ramping.
Definition CdtHv.cpp:77
bool isHVRampRunning() const
Checks if the high-voltage (HV) ramp process is currently running.
Definition CdtHv.cpp:121
void setHvTimeout(uint32_t val)
Definition CdtHv.cpp:17
void requestHVStop()
Requests to stop ongoing operations.
Definition CdtHv.cpp:22
uint32_t calcDacForVoltage(const double voltage)
Calculates the DAC value for a given voltage.
Definition CdtHv.cpp:151
double readHV(rmmStatus *status=NULL)
Reads the measured voltage from the HV chip via I2C.
Definition CdtHv.cpp:38
bool isStopHVRequested() const
Checks if a stop request has been issued.
Definition CdtHv.cpp:128
void jumpToVoltage(const double voltage)
Jumps to a specific high voltage value.
Definition CdtHv.cpp:137