Skip to content
Snippets Groups Projects
Commit a07a6a51 authored by Marco Filho's avatar Marco Filho
Browse files

Add actual ADC reading

parent fa8342a7
No related branches found
No related tags found
1 merge request!7Major refactor
......@@ -52,4 +52,12 @@ record(ai, "$(P)$(R)$(HYB)$(VMM)$(C)AnalogMon-R"){
field(PINI, "YES")
field(SCAN, "I/O Intr")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_$(VMM)_ANALOGMON")
}
record(ai, "$(P)$(R)$(HYB)$(VMM)$(C)DACVal-R"){
field(DESC, "Read DAC value")
field(DTYP, "asynInt32")
field(PINI, "YES")
field(SCAN, "I/O Intr")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))HYB_$(HYB)_$(VMM)_DACVAL")
}
\ No newline at end of file
......@@ -6,20 +6,6 @@ record(bo, "$(P)$(R)ReadADC-VMMs-S") {
field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))READ_ADC_VMMS")
}
record(ai, "$(P)$(R)MonValue-VMM0-RB") {
field(DESC, "Monitor Value Read")
field(DTYP, "asynFloat64")
field(SCAN, "I/O Intr")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ADC_VALUE_VMM0")
}
record(ai, "$(P)$(R)MonValue-VMM1-RB") {
field(DESC, "Monitor Value Read")
field(DTYP, "asynFloat64")
field(SCAN, "I/O Intr")
field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))ADC_VALUE_VMM1")
}
record(bo, "$(P)$(R)Acquire-S") {
field(DESC, "Start/stop FEN acquisition")
field(VAL, "0")
......
......@@ -79,6 +79,13 @@ asynStatus VMMTbl::readInt32(asynUser *pasynUser, epicsInt32 *value) {
goto endOfReadInt32;
}
param_index = VecUtils::getIndex(vmmDACVAL_, function, hyb_index, vmm_index);
if (param_index == 0) {
this->pVmmAPI->readADC(hyb_index, vmm_index, tmp_val);
*value = tmp_val;
goto endOfReadInt32;
}
endOfReadInt32:
if (param_index < 0) {
asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,
......@@ -188,7 +195,7 @@ asynStatus VMMTbl::createEpicsParams() {
createParamAndStoreInVector("HYB_" + std::to_string(hyb) + key, typ, vec);
}
std::vector<int> SC, SL, ST, STH, SM, SD, SMX, DACIDX;
std::vector<int> SC, SL, ST, STH, SM, SD, SMX, DACIDX, DACVAL;
for (int vmm=0; vmm < VMMS_PER_HYBRID; vmm++) {
......@@ -225,6 +232,10 @@ asynStatus VMMTbl::createEpicsParams() {
param_name << "HYB_" << hyb <<"_" << vmm << "_ANALOGMON";
createParamAndStoreInVector(param_name.str(), asynParamInt32, &DACIDX);
param_name.str("");
param_name << "HYB_" << hyb <<"_" << vmm << "_DACVAL";
createParamAndStoreInVector(param_name.str(), asynParamInt32, &DACVAL);
}
this->vmmSC_.push_back(SC);
......@@ -235,6 +246,7 @@ asynStatus VMMTbl::createEpicsParams() {
this->vmmSD_.push_back(SD);
this->vmmSMX_.push_back(SMX);
this->vmmDACIDX_.push_back(DACIDX);
this->vmmDACVAL_.push_back(DACVAL);
}
......
......@@ -50,6 +50,7 @@ protected:
std::vector<std::vector<int>> vmmSD_;
std::vector<std::vector<int>> vmmSMX_;
std::vector<std::vector<int>> vmmDACIDX_;
std::vector<std::vector<int>> vmmDACVAL_;
private:
static constexpr const char *driverName = "VMMTbl";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment