File quads_config_fe.cpp

FileList > midas_fe > quads_config_fe.cpp

Go to the source code of this file

MIDAS frontend for configuring and controlling MuPix quads. More...

  • #include <stdio.h>
  • #include <stdlib.h>
  • #include <sys/mman.h>
  • #include <unistd.h>
  • #include <iostream>
  • #include <list>
  • #include "midas.h"
  • #include "DummyFEBSlowcontrolInterface.h"
  • #include "FEBSlowcontrolInterface.h"
  • #include "Mutrig3Config.h"
  • #include "mcstd.h"
  • #include "mfe.h"
  • #include "missing_hardware.h"
  • #include "msystem.h"
  • #include "mudaq_device.h"
  • #include "odb_setup.h"
  • #include "odbxx.h"
  • #include "utils.h"

Public Attributes

Type Name
std::vector< uint32_t > adc_banks = {}
uint8_t bitpattern_mupix = {}
uint8_t bitpattern_mutrig = {}
std::vector< uint32_t > counters_XXCE = {}
std::vector< uint32_t > counters_XXCF = {}
std::vector< uint32_t > counters_XXCH = {}
std::vector< uint32_t > counters_XXCP = {}
std::vector< uint32_t > counters_XXCR = {}
EQUIPMENT equipment = /* multi line expression */
BOOL equipment_common_overwrite = TRUE
std::vector< uint32_t > feb_hits = {0,0,0,0}
std::vector< uint32_t > feb_hits_last = {0,0,0,0}
FEBSlowcontrolInterface * feb_sc
const char * frontend_file_name = \_\_FILE\_\_
const char * frontend_name = "Quads"
std::vector< uint32_t > lvds_banks = {}
midas::odb m_settings
std::vector< uint32_t > matrix_banks = {}
mudaq::DmaMudaqDevice * mup = nullptr
std::vector< uint32_t > readout_banks = {}
reset reset_protocol
std::vector< uint32_t > values_XXSM = {}
std::vector< float > values_XXTM = {}

Public Functions

Type Name
int begin_of_run ()
int end_of_run ()
int frontend_exit_user ()
int frontend_init ()
void init_banks ()
int init_mudaq (mudaq::MudaqDevice & mu)
int quad_loop ()
int read_sc_event (char * pevent, int off)
void sc_settings_changed (midas::odb o)
int write_command_by_id (uint8_t command, uint32_t payload, bool has_payload)
int write_command_by_name (const char * name, uint32_t payload=0, uint16_t address=0)

Detailed Description

This frontend is part of the MIDAS data acquisition system. It handles initialization, configuration, and control of MuPix devices using either a real or dummy FEB (Front-End Board) slow control interface. It communicates with the hardware via a mudaq::MudaqDevice, optionally utilizing DMA.

Key responsibilities of this frontend include: * Opening and verifying the MuPix hardware device. * Selecting the appropriate FEB slow control implementation based on compilation flags. * Initializing LVDS bank configurations and bit patterns. * Interfacing with the MIDAS Online Database (ODB) to fetch run-time configuration. * Registering itself with MIDAS using appropriate frontend metadata.

Preprocessor directives like NO_A10_BOARD are used to determine whether to instantiate a dummy or real FEB control interface, enabling testing on systems without hardware attached.

Note:

Ensure all dependencies (mudaq library, MIDAS, system headers) are present and properly configured.

Author:

Marius Snella Köppel

Date:

2025-07-04

Public Attributes Documentation

variable adc_banks

std::vector<uint32_t> adc_banks;

variable bitpattern_mupix

uint8_t bitpattern_mupix[N_BYTES_MUPIX];

variable bitpattern_mutrig

uint8_t bitpattern_mutrig[N_BYTES_MUTRIG];

variable counters_XXCE

std::vector<uint32_t> counters_XXCE;

variable counters_XXCF

std::vector<uint32_t> counters_XXCF;

variable counters_XXCH

std::vector<uint32_t> counters_XXCH;

variable counters_XXCP

std::vector<uint32_t> counters_XXCP;

variable counters_XXCR

std::vector<uint32_t> counters_XXCR;

variable equipment

EQUIPMENT equipment[];

variable equipment_common_overwrite

BOOL equipment_common_overwrite;

variable feb_hits

std::vector<uint32_t> feb_hits;

variable feb_hits_last

std::vector<uint32_t> feb_hits_last;

variable feb_sc

FEBSlowcontrolInterface* feb_sc;

variable frontend_file_name

const char* frontend_file_name;

variable frontend_name

const char* frontend_name;

variable lvds_banks

std::vector<uint32_t> lvds_banks;

variable m_settings

midas::odb m_settings;

variable matrix_banks

std::vector<uint32_t> matrix_banks;

variable mup

mudaq::DmaMudaqDevice* mup;

variable readout_banks

std::vector<uint32_t> readout_banks;

variable reset_protocol

reset reset_protocol;

variable values_XXSM

std::vector<uint32_t> values_XXSM;

variable values_XXTM

std::vector<float> values_XXTM;

Public Functions Documentation

function begin_of_run

int begin_of_run () 

function end_of_run

int end_of_run () 

function frontend_exit_user

int frontend_exit_user () 

function frontend_init

int frontend_init () 

function init_banks

void init_banks () 

function init_mudaq

int init_mudaq (
    mudaq::MudaqDevice & mu
) 

function quad_loop

int quad_loop () 

function read_sc_event

int read_sc_event (
    char * pevent,
    int off
) 

function sc_settings_changed

void sc_settings_changed (
    midas::odb o
) 

function write_command_by_id

int write_command_by_id (
    uint8_t command,
    uint32_t payload,
    bool has_payload
) 

function write_command_by_name

int write_command_by_name (
    const char * name,
    uint32_t payload=0,
    uint16_t address=0
) 


The documentation for this class was generated from the following file midas_fe/quads_config_fe.cpp