diff --git a/pom.xml b/pom.xml index c6bd0bd58945688abcd7381214ca6a69ce26eefb..db8bfaaae40afd68b322c68b30ab8c6152135159 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ <groupId>fr.soleil.device</groupId> <artifactId>AIControllerV2-${aol}-${mode}</artifactId> - <version>2.5.1-SNAPSHOT</version> + <version>2.5.2</version> <packaging>nar</packaging> <name>AIControllerV2</name> @@ -69,11 +69,11 @@ <groupId>fr.soleil.lib</groupId> <artifactId>YAT4Tango-${aol}-${library}-${mode}</artifactId> </dependency> - <dependency> - <groupId>fr.soleil.lib</groupId> - <artifactId>NexusCPPV2-${aol}-${library}-${mode}</artifactId> - </dependency> - <dependency> + <dependency> + <groupId>fr.soleil.lib</groupId> + <artifactId>NexusCPP-${aol}-${library}-${mode}</artifactId> + </dependency> + <dependency> <groupId>fr.soleil.lib</groupId> <artifactId>ASL-${aol}-${library}-${mode}</artifactId> <version>1.5.0</version> diff --git a/src/AIController.cpp b/src/AIController.cpp index 9845d532b1fe7c9ae5f2fa6be0317949b806c852..80bc0a3ab3d4a43f17c44a06517c78c169e2fece 100644 --- a/src/AIController.cpp +++ b/src/AIController.cpp @@ -712,6 +712,9 @@ void AIController::read_frequency(Tango::Attribute &attr) //----------------------------------------------------------------------------- void AIController::write_frequency(Tango::WAttribute &attr) { +SYSTEMTIME start, write; +GetSystemTime(&start); + DEBUG_STREAM << "AIController::write_frequency(Tango::WAttribute &attr) entering... "<< endl; //- check Device state @@ -740,6 +743,9 @@ void AIController::write_frequency(Tango::WAttribute &attr) this->m_aiManager->setSamplingRate(freq); store_value_as_property(freq, "__Frequency"); + +GetSystemTime(&write); +DEBUG_STREAM << "INSTRU - write_frequency() function took " << 1e3 * (write.wSecond - start.wSecond) + (write.wMilliseconds - start.wMilliseconds) << " ms." << std::endl; } //+---------------------------------------------------------------------------- diff --git a/src/AIManager.cpp b/src/AIManager.cpp index ea6dfc0615f242543b948a82f2f293aca5fe60ed..64f4d3fd98539e31e22e13ecf2e5de8be7b2333c 100644 --- a/src/AIManager.cpp +++ b/src/AIManager.cpp @@ -915,6 +915,10 @@ void AIManager::checkSamplesNumber() void AIManager::setSamplingRate(double rate) throw (Tango::DevFailed) { +SYSTEMTIME start, write, temp1, temp2, temp3; +GetSystemTime(&start); +DEBUG_STREAM << "AIManager::setSamplingRate() entering... "<< endl; + yat::AutoMutex<> guard(this->m_freqLock); //- save current frequency value @@ -927,11 +931,12 @@ void AIManager::setSamplingRate(double rate) bool restart_acquisition = false; if (this->m_currentAcquisition->getAcqState() == Tango::RUNNING) { + DEBUG_STREAM << "AIManager::setSamplingRate: stop acquisition before changing frequency... "<< endl; try { this->m_currentAcquisition->stopAcquisition(); restart_acquisition = true; - + // sleep a while for history finalization yat::Thread::sleep(500); } @@ -951,9 +956,12 @@ void AIManager::setSamplingRate(double rate) THROW_DEVFAILED(_CPTC("UNKNOWN_ERROR"), _CPTC("Failed to stop acquisition (caught [...])!"), _CPTC("AIManager::setSamplingRate")); - } + } } +GetSystemTime(&temp1); +DEBUG_STREAM << "INSTRU - setSamplingRate - stopping current acquisition (if needed) took " << 1e3 * (temp1.wSecond - start.wSecond) + (temp1.wMilliseconds - start.wMilliseconds) << " ms." << std::endl; + //- set new sampling rate try { @@ -981,6 +989,10 @@ void AIManager::setSamplingRate(double rate) _CPTC("AIManager::setSamplingRate")); } + +GetSystemTime(&temp2); +DEBUG_STREAM << "INSTRU - setSamplingRate - set new sampling rate took " << 1e3 * (temp2.wSecond - temp1.wSecond) + (temp2.wMilliseconds - temp1.wMilliseconds) << " ms." << std::endl; + //- restart acquisition if previously stopped if (restart_acquisition) { @@ -1038,6 +1050,12 @@ void AIManager::setSamplingRate(double rate) _CPTC("AIManager::setSamplingRate")); } } + +GetSystemTime(&temp3); +DEBUG_STREAM << "INSTRU - setSamplingRate - restarting acquisition (if needed) took " << 1e3 * (temp3.wSecond - temp2.wSecond) + (temp3.wMilliseconds - temp2.wMilliseconds) << " ms." << std::endl; + +GetSystemTime(&write); +DEBUG_STREAM << "INSTRU - setSamplingRate() function took " << 1e3 * (write.wSecond - start.wSecond) + (write.wMilliseconds - start.wMilliseconds) << " ms." << std::endl; } // ====================================================================== diff --git a/src/AcqMode.cpp b/src/AcqMode.cpp index aa1d735285981ebfaaddeba67c1dbfa2007787dd..6548338b3b2af23a17782509f1ce4e2cde41d01d 100644 --- a/src/AcqMode.cpp +++ b/src/AcqMode.cpp @@ -779,6 +779,10 @@ void AcqMode::abortAcquisition() void AcqMode::setSamplingRate(double rate) throw (Tango::DevFailed) { +SYSTEMTIME start, write, temp1, temp2, temp3, temp4; +GetSystemTime(&start); +DEBUG_STREAM << "AcqMode::setSamplingRate() entering... "<< endl; + // reinit error management this->m_errorMsg = ""; this->m_errorOccurred = false; @@ -821,13 +825,19 @@ void AcqMode::setSamplingRate(double rate) _CPTC("AcqMode::setSamplingRate")); } +GetSystemTime(&temp1); +DEBUG_STREAM << "INSTRU - AcqMode::setSamplingRate - computing new buffer depth took " << 1e3 * (temp1.wSecond - start.wSecond) + (temp1.wMilliseconds - start.wMilliseconds) << " ms." << std::endl; + this->m_daqConfig.set_sampling_rate(rate); - this->m_daqConfig.set_buffer_depth(depth); + this->m_daqConfig.set_buffer_depth(depth); // re-allocate memory for raw & scaled data buffers this->unsetDataBufferMem(); this->setDataBufferMem(this->m_daqConfig.get_buffer_depth()); +GetSystemTime(&temp2); +DEBUG_STREAM << "INSTRU - AcqMode::setSamplingRate - configuring local buffers took " << 1e3 * (temp2.wSecond - temp1.wSecond) + (temp2.wMilliseconds - temp1.wMilliseconds) << " ms." << std::endl; + // call ContinuousAI::configure() try { @@ -854,6 +864,9 @@ void AcqMode::setSamplingRate(double rate) _CPTC("AcqMode::setSamplingRate")); } +GetSystemTime(&temp3); +DEBUG_STREAM << "INSTRU - AcqMode::setSamplingRate - configuring ASL buffers took " << 1e3 * (temp3.wSecond - temp2.wSecond) + (temp3.wMilliseconds - temp2.wMilliseconds) << " ms." << std::endl; + // set my local current acquisition data this->m_acquisitionParam.frequency = rate; @@ -877,8 +890,15 @@ void AcqMode::setSamplingRate(double rate) // data buffer depth could have changed if (this->m_dataTrt.hasMask) { +DEBUG_STREAM << "AcqMode::setSamplingRate() : configure data mask " << std::endl; this->setBoolDataMask(this->m_dataTrt.timeSlotMask); } + +GetSystemTime(&temp4); +DEBUG_STREAM << "INSTRU - AcqMode::setSamplingRate - setting data history & mask took " << 1e3 * (temp4.wSecond - temp3.wSecond) + (temp4.wMilliseconds - temp3.wMilliseconds) << " ms." << std::endl; + +GetSystemTime(&write); +DEBUG_STREAM << "INSTRU - AcqMode::setSamplingRate() function took " << 1e3 * (write.wSecond - start.wSecond) + (write.wMilliseconds - start.wMilliseconds) << " ms." << std::endl; }