diff --git a/.gitignore b/.gitignore index fe01cb433401d8ad7035c4ad0896ecbefa963657..d6a362e074a7cb6b88588c5f95529e0337c7e5af 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ envPaths *.db.d build.sh build +.iocsh_history diff --git a/cmds/st.cmd b/cmds/st.cmd index 9f5e01fed9d219c5124dd52ce9316e1c6c380db2..64bc96c855f9a16fc4d7ffa25309d8882cf08ce4 100644 --- a/cmds/st.cmd +++ b/cmds/st.cmd @@ -29,7 +29,7 @@ dbLoadRecords("$(vmmTbl_DB)/vmm_tbl.db", "P=$(P), R=NDet-VMM-001:, PORT=RMM, RIN iocInit() dbpf $(P)$(R)Temperature-R.SCAN 2 -#dbpf $(P)$(R)ProcessPktCount-S.SCAN 2 +dbpf $(P)$(R)ProcessPktCount-S.SCAN 2 dbpf $(P)$(R)VoltVCCINT-R.SCAN 2 dbpf $(P)$(R)VoltVCC1V8-R.SCAN 2 dbpf $(P)$(R)VoltVADJ1V8-R.SCAN 2 @@ -37,4 +37,4 @@ dbpf $(P)$(R)VoltVCC1V2-R.SCAN 2 dbpf $(P)$(R)VoltMGTAVCC-R.SCAN 2 dbpf $(P)$(R)VoltMGTAVTT-R.SCAN 2 dbpf $(P)$(R)VoltVCCINTIOBRAM-R.SCAN 2 -# + diff --git a/vmmTblApp/src/vmm_config.cpp b/vmmTblApp/src/vmm_config.cpp index cee4c5ede01ca0e3a2aeda5bdee3982edf12064b..d5d49f06ff130e87dd52f6c4630bfaad3520e7c8 100644 --- a/vmmTblApp/src/vmm_config.cpp +++ b/vmmTblApp/src/vmm_config.cpp @@ -19,16 +19,14 @@ FENConfigModule::~FENConfigModule() { } void FENConfigModule::acquire(bool acquire) { - std::string message; - std::vector<std::string> linkStatus; if (acquire) { enableAcquisition(false); sendAll(true); enableAcquisition(true); - checkLinkStatus(message, linkStatus); + checkLinkStatus(linkStatus); } else { enableAcquisition(false); - checkLinkStatus(message, linkStatus); + checkLinkStatus(linkStatus); } } @@ -52,22 +50,17 @@ void FENConfigModule::enableAcquisition(bool enabled) { pFEN->userRegWrite("sc_acq_on_off", 0x00000000); } -void FENConfigModule::checkLinkStatus(std::string& message, std::vector<std::string>& linkStatus) { - linkStatus.clear(); - for (int n = 0; n < HYBRIDS_PER_FEN; n++) linkStatus.push_back("0"); - +void FENConfigModule::checkLinkStatus(uint8_t* linkStatus) { uint32_t result = readWriteRegs("sc_app_link_status", 0, "app_link_status"); - std::stringstream ss; + std::stringstream tmpStream; + tmpStream << std::hex << result; + std::string str = tmpStream.str(); - for (int n = 0; n < HYBRIDS_PER_FEN; n++) { - if (isHybridEnabled(n)) { - linkStatus[n] = std::to_string(result); - ss << "hybr. " + std::to_string(n) + ": " + linkStatus[n] << std::endl; - } + for (size_t n = 0; n < str.size(); n++) { + linkStatus[n] = static_cast<uint8_t>(std::stoi(str.substr(str.size() - 1 - n, 1))); + std::cout << "hybr. " << n << ": " << static_cast<int>(linkStatus[n]) << std::endl; } - message = ss.str(); - std::cout << "Message: " << message << std::endl; } void FENConfigModule::configFEN() { diff --git a/vmmTblApp/src/vmm_config.h b/vmmTblApp/src/vmm_config.h index 8e301d48ff962af7bf101d6fd621b75d28a8ce9c..56c233d81860481c4ce1bdabd0589ca33d99b49e 100644 --- a/vmmTblApp/src/vmm_config.h +++ b/vmmTblApp/src/vmm_config.h @@ -32,7 +32,8 @@ private: bool enabled_hybrids[HYBRIDS_PER_FEN] = {}; uint32_t readWriteRegs(std::string command_reg, int index, std::string read_reg); uint16_t getChMap(); - void checkLinkStatus(std::string& message, std::vector<std::string>& linkStatus); + void checkLinkStatus(uint8_t* linkStatus); void sendAll(bool useConfigCheck); void enableAcquisition(bool enabled); + uint8_t linkStatus[HYBRIDS_PER_FEN]; };