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