RMM API 2.0.0
Loading...
Searching...
No Matches
FrontEndBase.h
1#pragma once
2
3#include <cstdint>
4
5#include "FrontEndInterface.h"
6#include "RMMApi.h"
7#include "RMMParams.h"
8#include "RMMRegisterAccess.h"
9
16
18 public:
19 FrontEndBase(RMMAPI* pRmmAPI, int ring, int node, FENRegMap addrMap, std::string name,
20 int lockTime = RMMRings::FE_DEFAULT_LOCK_TIME);
21 RMMResult userRegRead(const std::string& name) override;
22 RMMResult userRegRead(uint32_t addr) override;
23 RMMResult userRegWrite(const std::string& name, uint32_t data) override;
24 RMMResult userRegWrite(uint32_t addr, uint32_t data) override;
25 RMMResult userFieldRead(const std::string& reg, int bit_begin, int bit_width) override;
26 RMMResult userFieldRead(uint32_t addr, int bit_begin, int bit_width) override;
27 RMMResult userFieldWrite(const std::string& reg, int bit_begin, int bit_width, uint32_t data) override;
28 RMMResult userFieldWrite(uint32_t addr, int bit_begin, int bit_width, uint32_t data) override;
29 int getLockTime() const;
30 FENRegMap& getAddrMap();
31
36 int getRing() const { return ring; };
37
42 int getNode() const { return node; };
43
44 /* Log management */
45 rmmStatus setLogMask(int mask);
46 std::string getFeType();
47
48 private:
49 RMMRegisterAccess& RMMRegs;
50 RMMLog rmmLog;
51 RMMAPI* rmmAPI;
52 FENRegMap regMap;
53 std::list<std::string> processMap(FENRegMap map);
54 rmmStatus getFeRegAddress(const std::string& name, std::string& reg_address, int regbank_offset = 0x0);
55 rmmStatus getFeRegAddress(const std::string& name, uint32_t& reg_address, int regbank_offset = 0x0);
56 rmmStatus getInternalRegAddress(const std::string& name, uint32_t& address);
57 int ring;
58 int node;
59 int lock_time;
60};
int getRing() const
Gets the ring index.
Definition FrontEndBase.h:36
int getNode() const
Gets the node index.
Definition FrontEndBase.h:42
RMMResult userRegRead(const std::string &name) override
Reads data from a register in the Front End.
Definition FrontEndBase.cpp:55
rmmStatus setLogMask(int mask)
set rmmLog log mask
Definition FrontEndBase.cpp:330
FrontEndBase(RMMAPI *pRmmAPI, int ring, int node, FENRegMap addrMap, std::string name, int lockTime=RMMRings::FE_DEFAULT_LOCK_TIME)
Constructor of the FrontEndBase class.
Definition FrontEndBase.cpp:12
std::string getFeType()
Retrieves the front-end firmware type as an ASCII string.
Definition FrontEndBase.cpp:346
FENRegMap & getAddrMap()
Returns the FEN's address map.
Definition FrontEndBase.cpp:333
RMMResult userFieldRead(const std::string &reg, int bit_begin, int bit_width) override
Reads a field from a frontend user space register.
Definition FrontEndBase.cpp:127
RMMResult userRegWrite(const std::string &name, uint32_t data) override
Writes data to a register in the Front End.
Definition FrontEndBase.cpp:89
RMMResult userFieldWrite(const std::string &reg, int bit_begin, int bit_width, uint32_t data) override
Writes to a field in a frontend user space register.
Definition FrontEndBase.cpp:180
Interface for interacting with the frontends, providing methods for reading and writing user register...
Definition FrontEndInterface.h:16
Base class for controlling and monitoring the RMM system.
Definition RMMApi.h:38
Class for managing and writing log messages to different log levels and files.
Definition RMMLog.h:47
Class to handle register access over the ESS Readout Master Module.
Definition RMMRegisterAccess.h:57
Struct to represent the result of an RMM register operation.
Definition RMMRegisterAccess.h:37