Skip to content
Snippets Groups Projects
VmmTblAPI.h 1.4 KiB
Newer Older
#pragma once

#include <vector>
#include <string>
#include <map>
#include <vector>
#include <memory>
#include <iostream>

#include "FrontEndBase.h"
#include "FrontEndFactory.h"
#include "VmmTblRegsMap.h"

#include "hybrid.h"
class VmmTblAPI : public FrontEndBase {
  VmmTblAPI(RMMAPI* rmmApi, int ring, int node, std::string name);
  ~VmmTblAPI();
Douglas Araujo's avatar
Douglas Araujo committed
  void configHybrid(int hybrid_index);
  bool configVMM(int hybrid_index, int vmm_index, bool enableConfigCheck=false);
  void fillGlobalRegisters(std::vector<std::string>& global, int hybrid_index, int vmm_index);
  void fillGlobalRegisters2(std::vector<std::string>& global, int hybrid_index, int vmm_index);
  void fillChRegisters(std::vector<std::string>& registers, int hybrid_index, int vmm_index);
Douglas Araujo's avatar
Douglas Araujo committed
  int readADC(int hybrid_index, int vmm_index);
Douglas Araujo's avatar
Douglas Araujo committed
  Hybrid& getHybrid(int index);
Douglas Araujo's avatar
Douglas Araujo committed
  bool enableHybrid(int hybrid, bool onOff);
  bool isHybridEnabled(int hybrid);
Douglas Araujo's avatar
Douglas Araujo committed
  void acquire(bool acquire);
  std::string readFwVersion(int hyb);
  std::string readIDChip(int hyb);
  std::string readGeoPos(int hyb);
  std::string checkLinkStatus(int hyb);
  void configFE();
Douglas Araujo's avatar
Douglas Araujo committed
  Hybrid hybrids[HYBRIDS_PER_FEN];
Douglas Araujo's avatar
Douglas Araujo committed
  bool enabled_hybrids[HYBRIDS_PER_FEN] = {};
Douglas Araujo's avatar
Douglas Araujo committed
  uint32_t readWriteRegs(std::string command_reg, int index, std::string read_reg);
Douglas Araujo's avatar
Douglas Araujo committed
  uint16_t getChMap();
Douglas Araujo's avatar
Douglas Araujo committed
  void sendAll(bool useConfigCheck);
  void enableAcquisition(bool enabled);
  uint8_t linkStatus[HYBRIDS_PER_FEN];