#ifndef RCUCONTROLENGINE_H #define RCUCONTROLENGINE_H #include #include "rcu_issue.h" #include "../CentralHeaders/BitConstants.h" #include "../CentralHeaders/TpcException.h" using namespace std; //use when to compile on outdated slc #include #include #include class RCUControlEngine { public: RCUControlEngine(); ~RCUControlEngine(); uint32_t sendRCU_EXEC(); uint32_t sendRCU_STOP_EXEC(); uint32_t sendRCU_ALTRO_INSTRUCTION_STORE(uint32_t wordCount); uint32_t sendRCU_WRITE_INSTRUCTION(uint32_t wordCount); uint32_t sendRCU_EXEC_INSTRUCTION(uint32_t wordCount); /* uint32_t sendRCU_WRITE_PATTERN8(uint32_t wordCount); uint32_t sendRCU_WRITE_PATTERN16(uint32_t wordCount); uint32_t sendRCU_WRITE_PATTERN32(uint32_t wordCount); uint32_t sendRCU_WRITE_PATTERN10(uint32_t wordCount); uint32_t sendRCU_READ_PATTERN(uint32_t wordCount); */ uint32_t sendRCU_READ_INSTRUCTION(uint32_t wordCount); uint32_t sendRCU_READ_MEMORY(uint32_t address); uint32_t sendRCU_WRITE_MEMORY(uint32_t address); uint32_t sendRCU_WRITE_RESULT(uint32_t wordCount); uint32_t sendRCU_READ_RESULT(uint32_t wordCount); uint32_t sendRCU_WRITE_MEMBLOCK(uint32_t wordCount); uint32_t sendRCU_READ_MEMBLOCK(uint32_t wordCount); uint32_t sendRCU_ALTRO_INSTRUCTION_EXECUTE(); uint32_t sendRCU_ALTRO_INSTRUCTION_CLEAR(); uint32_t sendRCU_ALTRO_INSTRUCTION_WRITE_FILE(); uint32_t sendRCU_ALTRO_INSTRUCTION_READ_FILE(); uint32_t sendRCU_ALTRO_INSTRUCTION_FILE_NAME(uint32_t wordCount); uint32_t sendRCU_WRITE_TRGCFG(); //uint32_t sendRCU_READ_ERRST(); uint32_t sendRCU_READ_TRGCFG(); uint32_t sendRCU_WRITE_PMCFG(); uint32_t sendRCU_READ_PMCFG(); /* uint32_t sendRCU_CHECK_ERROR(); uint32_t sendRCU_EN_AUTO_CHECK(bool autoCheckState); uint32_t sendRCU_SET_ABM(uint32_t busMasterDevice); uint32_t sendRCU_SET_DCS_ABM(); uint32_t sendRCU_SET_DDL_ABM(); uint32_t sendRCU_CHECK_VERSION(uint32_t version); */ uint32_t sendRCU_CONFGFEC(); uint32_t sendRCU_RESET(uint32_t parameter); uint32_t sendGLB_RESET(); uint32_t sendRCU_RESET(); uint32_t sendFEC_RESET(); uint32_t sendRCU_L1TRG_SELECT(uint32_t parameter); uint32_t sendRCU_L1_TTC(); uint32_t sendRCU_L1_I2C(); uint32_t sendRCU_L1_CMD(); uint32_t sendRCU_SYNC_SCLK_L1TTC(); uint32_t sendRCU_WRITE_AFL(); uint32_t sendRCU_READ_AFL(); uint32_t sendRCU_WRITE_ACL(uint32_t wordCount); uint32_t sendRCU_READ_ACL(uint32_t wordCount); uint32_t sendRCU_WRITE_EN_INT_BA(); //uint32_t sendRCU_READ_EN_INT_BA(); uint32_t sendRCU_WRITE_FPGA_CONF(); uint32_t sendRCU_READ_FPGA_CONF(); uint32_t sendRCU_WRITE_FLASH(); //uint32_t sendRCU_READ_FLASH(); uint32_t sendRCU_REG_CFG_STORE(uint32_t wordCount); uint32_t sendRCU_REG_CFG_EXECUTE(); uint32_t sendRCU_REG_CFG_EXECUTE_SINGLE(); uint32_t sendRCU_REG_CFG_CLEAR(); uint32_t sendRCU_REG_CFG_WRITE_FILE(); uint32_t sendRCU_REG_CFG_READ_FILE(); uint32_t sendRCU_REG_CFG_FILE_NAME(uint32_t wordCount); uint32_t sendFEE_CONFIGURE(uint32_t wordCount); uint32_t sendFEE_CONFIGURE_NOSTATE(uint32_t wordCount); uint32_t sendFEE_CONFIGURE_32(); uint32_t sendFEE_CONFIGURE_32_NOSTATE(); uint32_t sendFEE_CONFIGURE_1Word(uint32_t configID, uint32_t device, uint32_t hwAddress); uint32_t sendFEE_CONFIGURE_END(); uint32_t sendFEE_CONFIGURE_END_NOSTATE(); uint32_t sendFEE_CONFIGURE_END_1Word(uint32_t configID, uint32_t device, uint32_t hwAddress); uint32_t sendFEE_VERIFICATION(); uint32_t sendFEE_VERIFICATION(uint32_t wordCount); uint32_t sendFEE_EXTERNAL_CONFIGURATION(); uint32_t sendFEE_EXTERNAL_CONFIGURATION(uint32_t wordCount); uint32_t sendCE_CMD_TAILER(); uint32_t deviceCE() { return (uint32_t) 0; }; uint32_t deviceRCU() { return (uint32_t) 1; }; uint32_t deviceFEC() { return (uint32_t) 2; }; uint32_t deviceAltro() { return (uint32_t) 3; }; uint32_t deviceChannel() { return (uint32_t) 4; }; // RCU FW V1 uint32_t busMasterDDL() { return (uint32_t) 0; }; uint32_t busMasterDCS() { return (uint32_t) 1; }; // RCU FW V2 uint32_t sendRCU_WRITE_ALTROIF(); uint32_t sendRCU_WRITE_TRGCONF(); uint32_t sendRCU_WRITE_RDOMOD(); uint32_t sendRCU_WRITE_ALTROCFG1(); uint32_t sendRCU_WRITE_ALTROCFG2(); uint32_t sendRCU_WRITE_RCUID(); uint32_t sendRCU_WRITE_TTC_CONTROL(); uint32_t sendRCU_WRITE_TTC_L1_LATENCY(); uint32_t sendRCU_WRITE_TTC_L1_MSG_LATENCY(); uint32_t sendRCU_WRITE_TTC_ROI_CONFIG1(); uint32_t sendRCU_WRITE_TTC_ROI_CONFIG2(); uint32_t sendRCU_WRITE_TTC_L2_LATENCY(); uint32_t sendRCU_WRITE_TTC_ROI_LATENCY(); uint32_t sendRCU_WRITE_HLMEM(uint32_t wordCount); uint32_t sendRCU_WRITE_PEDMEM(uint32_t channelAddress); uint32_t sendRCU_READ_ALTROIF(); uint32_t sendRCU_READ_TRGCONF(); uint32_t sendRCU_READ_RDOMOD(); uint32_t sendRCU_READ_ALTROCFG1(); uint32_t sendRCU_READ_ALTROCFG2(); uint32_t sendRCU_READ_RCUID(); uint32_t sendRCU_READ_TTC_CONTROL(); uint32_t sendRCU_READ_TTC_L1_LATENCY(); uint32_t sendRCU_READ_TTC_L1_MSG_LATENCY(); uint32_t sendRCU_READ_TTC_ROI_CONFIG1(); uint32_t sendRCU_READ_TTC_ROI_CONFIG2(); uint32_t sendRCU_READ_TTC_L2_LATENCY(); uint32_t sendRCU_READ_TTC_ROI_LATENCY(); uint32_t sendRCU_READ_HLMEM(); private: }; #endif // RCUCONTROLENGINE_H