|
@ -357,10 +357,11 @@ TrxBoard::TrxBoard() : _offsetSlave0(0), _offsetSlave1(0x400000), _offsetSlave2( |
|
|
|
|
|
|
|
|
TrxBoard::ScenHwRegister::ScenHwRegister() |
|
|
TrxBoard::ScenHwRegister::ScenHwRegister() |
|
|
{ |
|
|
{ |
|
|
|
|
|
elementPosition = new ProbeElementPosition; |
|
|
|
|
|
rxBeamformer = new RxBeamformerProperties; |
|
|
configLut = new ReceiverConfiguration; |
|
|
configLut = new ReceiverConfiguration; |
|
|
elementPosition = new ProbeElementPosition; |
|
|
|
|
|
rxBeamformer = new RxBeamformerProperties; |
|
|
|
|
|
pulse = new PulseProperties; |
|
|
pulse = new PulseProperties; |
|
|
|
|
|
freqPoint = new FreqPoint; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
TrxBoard::ScenGenHardwareParam::ScenGenHardwareParam() |
|
|
TrxBoard::ScenGenHardwareParam::ScenGenHardwareParam() |
|
@ -403,16 +404,17 @@ TrxBoard::~TrxBoard() |
|
|
|
|
|
|
|
|
TrxBoard::ScenHwRegister::~ScenHwRegister() |
|
|
TrxBoard::ScenHwRegister::~ScenHwRegister() |
|
|
{ |
|
|
{ |
|
|
|
|
|
delete elementPosition; |
|
|
|
|
|
delete rxBeamformer; |
|
|
delete configLut; |
|
|
delete configLut; |
|
|
delete rxBeamformer; |
|
|
delete freqPoint; |
|
|
delete elementPosition; |
|
|
|
|
|
delete pulse; |
|
|
delete pulse; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
TrxBoard::ScenGenHardwareParam::~ScenGenHardwareParam() |
|
|
TrxBoard::ScenGenHardwareParam::~ScenGenHardwareParam() |
|
|
{ |
|
|
{ |
|
|
|
|
|
delete indexParams; |
|
|
delete hwRegister; |
|
|
delete hwRegister; |
|
|
delete indexParams; |
|
|
|
|
|
delete rxParams; |
|
|
delete rxParams; |
|
|
delete txParams; |
|
|
delete txParams; |
|
|
} |
|
|
} |
|
@ -620,97 +622,162 @@ void TrxBoard::setScenario(ScenGenHardwareOutput_t& scenGenHw) |
|
|
emulatorStop(); |
|
|
emulatorStop(); |
|
|
sramClear(first4M); |
|
|
sramClear(first4M); |
|
|
|
|
|
|
|
|
_scenParams->focusTypeNumber = scenGenHw.focusTypeNumber; |
|
|
if(scenGenHw.focusTypeNumber > FOCUS_TYPE_NUMBER_MAX) |
|
|
if(_scenParams->focusTypeNumber > FOCUS_TYPE_NUMBER_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Focus type number is out of range"); |
|
|
throw SonoException("Focus type number is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->focusTypeNumber = scenGenHw.focusTypeNumber; |
|
|
|
|
|
|
|
|
_scenParams->totalTxShotNumber = scenGenHw.totalTxShotNumber; |
|
|
if(scenGenHw.totalTxShotNumber > TOTAL_TX_SHOT_NUMBER_MAX) |
|
|
if(_scenParams->totalTxShotNumber > TOTAL_TX_SHOT_NUMBER_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Total tx shot number is out of range"); |
|
|
throw SonoException("Total tx shot number is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->totalTxShotNumber = scenGenHw.totalTxShotNumber; |
|
|
|
|
|
|
|
|
_scenParams->rxBeamFormerNumber = scenGenHw.rxBeamFormerNumber; |
|
|
if(scenGenHw.rxBeamFormerNumber.size() > RX_BEAMFORMER_NUMBER_MAX) |
|
|
if(_scenParams->rxBeamFormerNumber.size() > RX_BEAMFORMER_NUMBER_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Rx beam former number is out of range"); |
|
|
throw SonoException("Rx beam former number is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->rxBeamFormerNumber = scenGenHw.rxBeamFormerNumber; |
|
|
|
|
|
|
|
|
_scenParams->scenarioStartIndex = scenGenHw.hwRegister.scenarioStartIndex; |
|
|
if(scenGenHw.hwRegister.scenarioEndIndex > SCENARIO_INDEX_MAX) |
|
|
_scenParams->scenarioEndIndex = scenGenHw.hwRegister.scenarioEndIndex; |
|
|
|
|
|
|
|
|
|
|
|
if(_scenParams->scenarioEndIndex > SCENARIO_INDEX_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Scenario end index is out of range"); |
|
|
throw SonoException("Scenario end index is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if(_scenParams->scenarioEndIndex < _scenParams->scenarioStartIndex) |
|
|
if(scenGenHw.hwRegister.scenarioEndIndex < scenGenHw.hwRegister.scenarioStartIndex) |
|
|
{ |
|
|
{ |
|
|
throw SonoException( |
|
|
throw SonoException( |
|
|
"The scenario end index must be greater than or equal to the scenario start index"); |
|
|
"The scenario end index must be greater than or equal to the scenario start index"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if(_scenParams->scenarioEndIndex != (_scenParams->totalTxShotNumber - 1)) |
|
|
if(scenGenHw.hwRegister.scenarioEndIndex != (scenGenHw.totalTxShotNumber - 1)) |
|
|
{ |
|
|
{ |
|
|
throw SonoException( |
|
|
throw SonoException( |
|
|
"The scenario end index must be equal to the total tx shot number minus one"); |
|
|
"The scenario end index must be equal to the total tx shot number minus one"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->scenarioStartIndex = scenGenHw.hwRegister.scenarioStartIndex; |
|
|
|
|
|
_scenParams->scenarioEndIndex = scenGenHw.hwRegister.scenarioEndIndex; |
|
|
|
|
|
|
|
|
_scenParams->hwRegister->blendWeight = scenGenHw.hwRegister.blendWeight; |
|
|
if(scenGenHw.hwRegister.blendWeight.size() != BLENDWEIGHT_LUT_MAX) |
|
|
if(_scenParams->hwRegister->blendWeight.size() != BLENDWEIGHT_LUT_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Blend weight lut is out of range"); |
|
|
throw SonoException("Blend weight lut is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->blendWeight = scenGenHw.hwRegister.blendWeight; |
|
|
|
|
|
|
|
|
_scenParams->hwRegister->elementPosition->xPosition = scenGenHw.hwRegister.elementXPosition; |
|
|
if(scenGenHw.hwRegister.elementXPosition.size() != ELEMENT_POSITION_LUT_MAX) |
|
|
if(_scenParams->hwRegister->elementPosition->xPosition.size() != ELEMENT_POSITION_LUT_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Element position x is out of range"); |
|
|
throw SonoException("Element position x is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->elementPosition->xPosition = scenGenHw.hwRegister.elementXPosition; |
|
|
|
|
|
|
|
|
_scenParams->hwRegister->elementPosition->yPosition = scenGenHw.hwRegister.elementYPosition; |
|
|
if(scenGenHw.hwRegister.elementYPosition.size() != ELEMENT_POSITION_LUT_MAX) |
|
|
if(_scenParams->hwRegister->elementPosition->yPosition.size() != ELEMENT_POSITION_LUT_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Element position y is out of range"); |
|
|
throw SonoException("Element position y is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->elementPosition->yPosition = scenGenHw.hwRegister.elementYPosition; |
|
|
|
|
|
|
|
|
_scenParams->hwRegister->elementPosition->zPosition = scenGenHw.hwRegister.elementZPosition; |
|
|
if(scenGenHw.hwRegister.elementZPosition.size() != ELEMENT_POSITION_LUT_MAX) |
|
|
if(_scenParams->hwRegister->elementPosition->zPosition.size() != ELEMENT_POSITION_LUT_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Element position z is out of range"); |
|
|
throw SonoException("Element position z is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->elementPosition->zPosition = scenGenHw.hwRegister.elementZPosition; |
|
|
|
|
|
|
|
|
_scenParams->hwRegister->freqLut = scenGenHw.hwRegister.freqLut; |
|
|
// if(scenGenHw.hwRegister.freqLut.size() != FREQUENCY_LUT_MAX)
|
|
|
if(_scenParams->hwRegister->freqLut.size() != FREQUENCY_LUT_MAX) |
|
|
// {
|
|
|
{ |
|
|
// throw SonoException("Frequency lut is out of range");
|
|
|
throw SonoException("Frequency lut is out of range"); |
|
|
// }
|
|
|
} |
|
|
// _scenParams->hwRegister->freqLut = scenGenHw.hwRegister.freqLut;
|
|
|
|
|
|
|
|
|
_scenParams->hwRegister->dtgcLut = scenGenHw.hwRegister.dtgcLut; |
|
|
if(scenGenHw.hwRegister.dtgcLut.size() != DTGC_LUT_MAX) |
|
|
if(_scenParams->hwRegister->dtgcLut.size() != DTGC_LUT_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Dtgc lut is out of range"); |
|
|
throw SonoException("Dtgc lut is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->dtgcLut = scenGenHw.hwRegister.dtgcLut; |
|
|
|
|
|
|
|
|
_scenParams->hwRegister->pulseTypeNumber = scenGenHw.hwRegister.pulseTypeNumber; |
|
|
if(scenGenHw.hwRegister.pulseTypeNumber > PULSE_LUT_MAX) |
|
|
if(_scenParams->hwRegister->pulseTypeNumber > PULSE_LUT_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Pulse type number is out of range"); |
|
|
throw SonoException("Pulse type number is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->pulseTypeNumber = scenGenHw.hwRegister.pulseTypeNumber; |
|
|
|
|
|
|
|
|
_scenParams->hwRegister->rxBeamFormerTypeNumber = scenGenHw.hwRegister.rxBeamFormerTypeNumber; |
|
|
if(scenGenHw.hwRegister.rxBeamFormerTypeNumber > RXBEAMFORMER_LUT_MAX) |
|
|
if(_scenParams->hwRegister->rxBeamFormerTypeNumber > RXBEAMFORMER_LUT_MAX) |
|
|
|
|
|
{ |
|
|
{ |
|
|
throw SonoException("Rx beam former type number is out of range"); |
|
|
throw SonoException("Rx beam former type number is out of range"); |
|
|
} |
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->rxBeamFormerTypeNumber = scenGenHw.hwRegister.rxBeamFormerTypeNumber; |
|
|
|
|
|
|
|
|
|
|
|
if(scenGenHw.hwRegister.receiverConfigTypeNumber > RRECEIVER_CONFIGURATION_LUT_MAX) |
|
|
|
|
|
{ |
|
|
|
|
|
throw SonoException("Receiver config type number is out of range"); |
|
|
|
|
|
} |
|
|
_scenParams->hwRegister->receiverConfigTypeNumber = |
|
|
_scenParams->hwRegister->receiverConfigTypeNumber = |
|
|
scenGenHw.hwRegister.receiverConfigTypeNumber; |
|
|
scenGenHw.hwRegister.receiverConfigTypeNumber; |
|
|
if(_scenParams->hwRegister->receiverConfigTypeNumber > RRECEIVER_CONFIGURATION_LUT_MAX) |
|
|
|
|
|
|
|
|
if(scenGenHw.hwRegister.startFreqLut.size() != START_FREQ_LUT_MAX) |
|
|
{ |
|
|
{ |
|
|
throw SonoException("Receiver config type number is out of range"); |
|
|
throw SonoException("Start freq lut is out of range"); |
|
|
|
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->startFreqLut = scenGenHw.hwRegister.startFreqLut; |
|
|
|
|
|
|
|
|
|
|
|
if(scenGenHw.hwRegister.endFreqLut.size() != END_FREQ_LUT_MAX) |
|
|
|
|
|
{ |
|
|
|
|
|
throw SonoException("End freq lut is out of range"); |
|
|
|
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->endFreqLut = scenGenHw.hwRegister.endFreqLut; |
|
|
|
|
|
|
|
|
|
|
|
if(scenGenHw.hwRegister.freqPointLut.size() != FREQ_POINT_LUT_MAX) |
|
|
|
|
|
{ |
|
|
|
|
|
throw SonoException("Freq point lut is out of range"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_scenParams->hwRegister->freqPoint->clear(); |
|
|
|
|
|
foreach(auto i, scenGenHw.hwRegister.freqPointLut) |
|
|
|
|
|
{ |
|
|
|
|
|
_scenParams->hwRegister->freqPoint->startFreqPoint.append(i.startFreqPoint); |
|
|
|
|
|
_scenParams->hwRegister->freqPoint->endFreqPoint.append(i.endFreqPoint); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(scenGenHw.hwRegister.freqStepLut.size() != FREQ_STEP_LUT_MAX) |
|
|
|
|
|
{ |
|
|
|
|
|
throw SonoException("Freq step lut is out of range"); |
|
|
|
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->freqStepLut = scenGenHw.hwRegister.freqStepLut; |
|
|
|
|
|
|
|
|
|
|
|
if(scenGenHw.hwRegister.lpfWeightStepLut.size() != LPF_WEIGHT_STEP_LUT_MAX) |
|
|
|
|
|
{ |
|
|
|
|
|
throw SonoException("Lpf weight step lut is out of range"); |
|
|
|
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->lpfWeightStepLut = scenGenHw.hwRegister.lpfWeightStepLut; |
|
|
|
|
|
|
|
|
|
|
|
if(scenGenHw.hwRegister.startLpfWeightLut.size() != START_LPF_WEIGHT_LUT_MAX) |
|
|
|
|
|
{ |
|
|
|
|
|
throw SonoException("Lpf weight step lut is out of range"); |
|
|
|
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->startLpfWeightLut = scenGenHw.hwRegister.startLpfWeightLut; |
|
|
|
|
|
|
|
|
|
|
|
if(scenGenHw.hwRegister.apodizationParams.size() > RXBEAMFORMER_LUT_MAX) |
|
|
|
|
|
{ |
|
|
|
|
|
throw SonoException("Apodization parameters is out of range"); |
|
|
|
|
|
} |
|
|
|
|
|
_scenParams->hwRegister->apodizationParams.clear(); |
|
|
|
|
|
foreach(auto temp, scenGenHw.hwRegister.apodizationParams) |
|
|
|
|
|
{ |
|
|
|
|
|
ApodizationParameters params; |
|
|
|
|
|
params.winOpenStepVal = temp.winOpenStepVal; |
|
|
|
|
|
params.winOpenStopVal = temp.winOpenStopVal; |
|
|
|
|
|
params.maxApertureSize = temp.maxApertureSize; |
|
|
|
|
|
params.minApertureSize = temp.minApertureSize; |
|
|
|
|
|
params.winOpenStartVal = temp.winOpenStartVal; |
|
|
|
|
|
params.winOpenStopPoint = temp.winOpenStopPoint; |
|
|
|
|
|
params.winOpenStartPoint = temp.winOpenStartPoint; |
|
|
|
|
|
params.rxActiveElementStep1 = temp.rxActiveElementStep1; |
|
|
|
|
|
params.rxActiveElementStep2 = temp.rxActiveElementStep2; |
|
|
|
|
|
params.rxActiveElementStepStopPoint = temp.rxActiveElementStepStopPoint; |
|
|
|
|
|
params.rxActiveElementStepStartPoint = temp.rxActiveElementStepStartPoint; |
|
|
|
|
|
params.rxActiveElementStepChangePoint = temp.rxActiveElementStepChangePoint; |
|
|
|
|
|
|
|
|
|
|
|
_scenParams->hwRegister->apodizationParams.append(params); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
_scenParams->hwRegister->pulse->clear(); |
|
|
_scenParams->hwRegister->pulse->clear(); |
|
@ -742,6 +809,7 @@ void TrxBoard::setScenario(ScenGenHardwareOutput_t& scenGenHw) |
|
|
_scenParams->hwRegister->configLut->stbEn.append(k.stbEn); |
|
|
_scenParams->hwRegister->configLut->stbEn.append(k.stbEn); |
|
|
_scenParams->hwRegister->configLut->lpfSel.append(k.lpfSel); |
|
|
_scenParams->hwRegister->configLut->lpfSel.append(k.lpfSel); |
|
|
_scenParams->hwRegister->configLut->dTgcEn.append(k.dTgcEn); |
|
|
_scenParams->hwRegister->configLut->dTgcEn.append(k.dTgcEn); |
|
|
|
|
|
_scenParams->hwRegister->configLut->blendEn.append(k.blendEn); |
|
|
_scenParams->hwRegister->configLut->aTgcSel.append(k.aTgcSel); |
|
|
_scenParams->hwRegister->configLut->aTgcSel.append(k.aTgcSel); |
|
|
_scenParams->hwRegister->configLut->focusNo.append(k.focusNo); |
|
|
_scenParams->hwRegister->configLut->focusNo.append(k.focusNo); |
|
|
_scenParams->hwRegister->configLut->lineMode.append(k.lineMode); |
|
|
_scenParams->hwRegister->configLut->lineMode.append(k.lineMode); |
|
@ -757,6 +825,8 @@ void TrxBoard::setScenario(ScenGenHardwareOutput_t& scenGenHw) |
|
|
|
|
|
|
|
|
_scenParams->hwRegister->noiseReject = scenGenHw.hwRegister.noiseRejectValue; |
|
|
_scenParams->hwRegister->noiseReject = scenGenHw.hwRegister.noiseRejectValue; |
|
|
|
|
|
|
|
|
|
|
|
_scenParams->hwRegister->frameLoggerControl = scenGenHw.hwRegister.frameLoggerControl; |
|
|
|
|
|
|
|
|
_scenParams->indexParams->endOfEnsemble = scenGenHw.indexParams.endOfEnsemble; |
|
|
_scenParams->indexParams->endOfEnsemble = scenGenHw.indexParams.endOfEnsemble; |
|
|
_scenParams->indexParams->endOfSubBatch = scenGenHw.indexParams.endOfSubBatch; |
|
|
_scenParams->indexParams->endOfSubBatch = scenGenHw.indexParams.endOfSubBatch; |
|
|
_scenParams->indexParams->endOfSubFrame = scenGenHw.indexParams.endOfSubFrame; |
|
|
_scenParams->indexParams->endOfSubFrame = scenGenHw.indexParams.endOfSubFrame; |
|
@ -889,6 +959,12 @@ void TrxBoard::setScenario (ScenGenHardwareParam* _scenParams) |
|
|
_scenParams->hwRegister->pulse); |
|
|
_scenParams->hwRegister->pulse); |
|
|
scenParamsFilling(set); |
|
|
scenParamsFilling(set); |
|
|
|
|
|
|
|
|
|
|
|
this->_beamFormerSlave0->apodizationParameters(_scenParams->hwRegister->apodizationParams); |
|
|
|
|
|
this->_beamFormerSlave1->apodizationParameters(_scenParams->hwRegister->apodizationParams); |
|
|
|
|
|
this->_beamFormerSlave2->apodizationParameters(_scenParams->hwRegister->apodizationParams); |
|
|
|
|
|
|
|
|
|
|
|
scenParamsFilling(set); |
|
|
|
|
|
|
|
|
////this->_beamFormerSlave0->afeLut(_scenParams->hwRegister->afe);
|
|
|
////this->_beamFormerSlave0->afeLut(_scenParams->hwRegister->afe);
|
|
|
////this->_beamFormerSlave1->afeLut(_scenParams->hwRegister->afe);
|
|
|
////this->_beamFormerSlave1->afeLut(_scenParams->hwRegister->afe);
|
|
|
////this->_beamFormerSlave2->afeLut(_scenParams->hwRegister->afe);
|
|
|
////this->_beamFormerSlave2->afeLut(_scenParams->hwRegister->afe);
|
|
@ -898,9 +974,21 @@ void TrxBoard::setScenario (ScenGenHardwareParam* _scenParams) |
|
|
this->_dsp->receiverConfigurationLut(_scenParams->hwRegister->receiverConfigTypeNumber, |
|
|
this->_dsp->receiverConfigurationLut(_scenParams->hwRegister->receiverConfigTypeNumber, |
|
|
_scenParams->hwRegister->configLut); |
|
|
_scenParams->hwRegister->configLut); |
|
|
|
|
|
|
|
|
_unsignedQntzrVec = Calculation::qntzr(_scenParams->hwRegister->freqLut, 0, 24, 0, 0, true); |
|
|
// _unsignedQntzrVec = Calculation::qntzr(_scenParams->hwRegister->freqLut, 0, 24, 0, 0, true);
|
|
|
QList<quint32> freqLutQ = _unsignedQntzrVec.toList(); |
|
|
// QList<quint32> freqLutQ = _unsignedQntzrVec.toList();
|
|
|
this->_dsp->frequencyLut(freqLutQ); |
|
|
// this->_dsp->frequencyLut(freqLutQ);
|
|
|
|
|
|
|
|
|
|
|
|
_unsignedQntzrVec = Calculation::qntzr(_scenParams->hwRegister->freqStepLut, 1, 32, 16, 0, true, true, true); |
|
|
|
|
|
QList<quint32> freqStepLutQ = _unsignedQntzrVec.toList(); |
|
|
|
|
|
this->_dsp->freqStepLut(freqStepLutQ); |
|
|
|
|
|
|
|
|
|
|
|
_unsignedQntzrVec = Calculation::qntzr(_scenParams->hwRegister->lpfWeightStepLut, 0, 16, 23, 0, true); |
|
|
|
|
|
QList<quint32> lpfWeightStepLutQ = _unsignedQntzrVec.toList(); |
|
|
|
|
|
this->_dsp->lpfWeightStepLut(lpfWeightStepLutQ); |
|
|
|
|
|
|
|
|
|
|
|
_unsignedQntzrVec = Calculation::qntzr(_scenParams->hwRegister->startLpfWeightLut, 0, 17, 16, 0, true); |
|
|
|
|
|
QList<quint32> startLpfWeightLutQ = _unsignedQntzrVec.toList(); |
|
|
|
|
|
this->_dsp->startLpfWeightLut(startLpfWeightLutQ); |
|
|
|
|
|
|
|
|
_unsignedQntzrVec = |
|
|
_unsignedQntzrVec = |
|
|
Calculation::qntzr(_scenParams->hwRegister->dtgcLut, 0, 12, 8, 0, true, false); |
|
|
Calculation::qntzr(_scenParams->hwRegister->dtgcLut, 0, 12, 8, 0, true, false); |
|
@ -921,8 +1009,16 @@ void TrxBoard::setScenario (ScenGenHardwareParam* _scenParams) |
|
|
|
|
|
|
|
|
this->_dsp->mlaOffsetAddr(_scenParams->hwRegister->mlaOffsetAddr); |
|
|
this->_dsp->mlaOffsetAddr(_scenParams->hwRegister->mlaOffsetAddr); |
|
|
|
|
|
|
|
|
|
|
|
this->_dsp->startFreqLut(_scenParams->hwRegister->startFreqLut); |
|
|
|
|
|
|
|
|
|
|
|
this->_dsp->endFreqLut(_scenParams->hwRegister->endFreqLut); |
|
|
|
|
|
|
|
|
|
|
|
this->_dsp->freqPointLut(_scenParams->hwRegister->freqPoint); |
|
|
|
|
|
|
|
|
this->_dsp->noiseReject(_scenParams->hwRegister->noiseReject); |
|
|
this->_dsp->noiseReject(_scenParams->hwRegister->noiseReject); |
|
|
|
|
|
|
|
|
|
|
|
this->_dsp->frameLoggerCtrl(_scenParams->hwRegister->frameLoggerControl); |
|
|
|
|
|
|
|
|
///////////////////////////////// Sram setting ///////////////////////////////
|
|
|
///////////////////////////////// Sram setting ///////////////////////////////
|
|
|
this->_sram->setSramIndex(_scenParams->totalTxShotNumber, _scenParams->indexParams); |
|
|
this->_sram->setSramIndex(_scenParams->totalTxShotNumber, _scenParams->indexParams); |
|
|
|
|
|
|
|
@ -1851,6 +1947,25 @@ quint32 TrxBoard::getFrameLostCounter() const |
|
|
return (this->_misc->getFrameLostCount()); |
|
|
return (this->_misc->getFrameLostCount()); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void TrxBoard::elementActiveEnable(eActiveElements &slaveElements, quint64 &elements) const |
|
|
|
|
|
{ |
|
|
|
|
|
QList<quint32> littleEndianList; |
|
|
|
|
|
quint32 highElements = elements >> 32; |
|
|
|
|
|
quint32 lowElements = elements & 0xFFFFFFFF; |
|
|
|
|
|
littleEndianList.push_back(lowElements); |
|
|
|
|
|
littleEndianList.push_back(highElements); |
|
|
|
|
|
|
|
|
|
|
|
switch (slaveElements) |
|
|
|
|
|
{ |
|
|
|
|
|
case slave0Elements: this->_beamFormerSlave0->elementActiveEn(littleEndianList); |
|
|
|
|
|
break; |
|
|
|
|
|
case slave1Elements: this->_beamFormerSlave1->elementActiveEn(littleEndianList); |
|
|
|
|
|
break; |
|
|
|
|
|
case slave2Elements: this->_beamFormerSlave2->elementActiveEn(littleEndianList); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
void TrxBoard::adcCaptureConfig(captureConfig& capCfg) const |
|
|
void TrxBoard::adcCaptureConfig(captureConfig& capCfg) const |
|
|
{ |
|
|
{ |
|
|
//ADC capture config
|
|
|
//ADC capture config
|
|
|