CDT I-BM API 1.0.0
Loading...
Searching...
No Matches
CdtCascade.h
1#pragma once
2
3#include <cstdarg>
4
5#include "CdtHv.h"
6#include "RegSize.h"
7
8static const uint16_t MAX_ERROR_MSG = 256;
9enum class CascadeProp {
10 FilterXDuration,
11 FilterXSize,
12 FilterEMIStop,
13 RsMask,
14 Measurement,
15 SimType,
16 ResetSim,
17 FilterYSize,
18 FilterYDuration,
19 FilterSkew,
20 MeasClient,
21 DisableNeutron
22};
23using CascadePropInfo = std::tuple<std::string, uint8_t, uint8_t, RegSize, uint32_t>;
24using CascadePropMap = std::unordered_map<CascadeProp, CascadePropInfo>;
25
33class CdtCascade : public CdtHv {
34 public:
35 CdtCascade(RMMAPI* rmmApi, int ring, int node, std::string name, TiaBoardVersion tia_board_version);
36 CdtCascade(RMMAPI* rmmApi, int ring, int node, std::string name);
37 uint32_t readProperty(CascadeProp prop, rmmStatus* stat = nullptr);
38 rmmStatus writeProperty(CascadeProp prop, uint32_t val);
39 RMMResult getProperty(CascadeProp prop);
40 rmmStatus setProperty(CascadeProp prop, uint32_t val);
41 rmmStatus writeDefaultProperty(CascadeProp prop);
42
43 void configFE();
44 RMMLog log;
45
46 private:
47 CascadePropInfo searchPropInfo(CascadeProp prop);
48
49 /* Operation parameters. Will be written to hardware
50 in configFE() */
51 CascadePropMap propMap_ = CascadePropMap{
52 {CascadeProp::FilterXSize, CascadePropInfo("filter_xsize", 0, 3, RegSize(0b111, 3), 3)},
53 {CascadeProp::FilterXDuration, CascadePropInfo("filter_xsize", 4, 8, RegSize(0b11111111, 5), 5)},
54 {CascadeProp::FilterYSize, CascadePropInfo("filter_xsize", 12, 3, RegSize(0b111, 3), 3)},
55 {CascadeProp::FilterYDuration, CascadePropInfo("filter_xsize", 16, 8, RegSize(0b11111111, 5), 5)},
56 {CascadeProp::FilterSkew, CascadePropInfo("filter_xsize", 24, 8, RegSize(0b11111111, 1), 1)},
57 {CascadeProp::MeasClient, CascadePropInfo("meas_reset", 1, 1, RegSize(0b1, 0), 0)},
58 {CascadeProp::DisableNeutron, CascadePropInfo("md_base", 1, 1, RegSize(0b1, 0), 0)},
59 {CascadeProp::FilterEMIStop, CascadePropInfo("filter_base", 16, 10, RegSize(0b1111111111, 16), 16)},
60 {CascadeProp::RsMask, CascadePropInfo("rs_mask_data", 0, 32, RegSize(0xffffffff, 0xffffffff), 0xffffffff)},
61 {CascadeProp::Measurement, CascadePropInfo("meas_base", 0, 1, RegSize(1, 1), 1)},
62 {CascadeProp::SimType, CascadePropInfo("sim_base", 1, 3, RegSize(3, 0), 0)},
63 {CascadeProp::ResetSim, CascadePropInfo("sim_base", 0, 1, RegSize(1, 0), 0)}};
64
65 rmmStatus checkError(const char* functionName, rmmStatus stat, const char* msg, ...);
66};
CdtCascade(RMMAPI *rmmApi, int ring, int node, std::string name, TiaBoardVersion tia_board_version)
Constructor for the CdtCascade class.
Definition CdtCascade.cpp:16
rmmStatus writeProperty(CascadeProp prop, uint32_t val)
Writes a cascade Property to hardware.
Definition CdtCascade.cpp:83
rmmStatus setProperty(CascadeProp prop, uint32_t val)
Writes a cascade Property to program memory.
Definition CdtCascade.cpp:129
rmmStatus writeDefaultProperty(CascadeProp prop)
Gets a property from memory, writes it into hardware.
Definition CdtCascade.cpp:148
RMMResult getProperty(CascadeProp prop)
Reads a cascade Property from program memory.
Definition CdtCascade.cpp:108
uint32_t readProperty(CascadeProp prop, rmmStatus *stat=nullptr)
Reads a cascade Property from hardware.
Definition CdtCascade.cpp:54
Definition RegSize.h:4