From 30de89cab4420eff88b6be2ce686f8786f5f53f1 Mon Sep 17 00:00:00 2001 From: Sonia Minolli <sonia.minolli@synchrotron-soleil.fr> Date: Tue, 26 May 2015 08:38:41 +0000 Subject: [PATCH] Created tag release_2_3_4. --- pom.xml | 2 +- src/AIManager.cpp | 32 ++++++++++++++++++++++++++++++-- src/NexusManager.h | 1 + 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index 0f5a887..49f5ee8 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ <groupId>fr.soleil.device</groupId> <artifactId>AIControllerV2-${aol}-${mode}</artifactId> - <version>2.3.4-SNAPSHOT</version> + <version>2.3.4</version> <packaging>nar</packaging> <name>AIControllerV2</name> diff --git a/src/AIManager.cpp b/src/AIManager.cpp index 8c314f8..3c185e0 100644 --- a/src/AIManager.cpp +++ b/src/AIManager.cpp @@ -891,7 +891,7 @@ void AIManager::setSamplingRate(double rate) this->m_currentAcquisition->stopAcquisition(); restart_acquisition = true; - // sleep a while for history & nexus finalization + // sleep a while for history finalization yat::Thread::sleep(500); } catch (Tango::DevFailed & df) @@ -965,6 +965,20 @@ void AIManager::setSamplingRate(double rate) try { + // wait for nexus finalization before restarting acquisition + if (this->m_currentAcqParam.nexusFileGeneration) + { + while(1) + { + Tango::DevState nx_state = this->m_currentAcquisition->getNexusState(); + if (nx_state != Tango::RUNNING) + { + break; + } + yat::Thread::sleep(50); + } + } + this->m_currentAcquisition->startAcquisition(); } catch (Tango::DevFailed & df) @@ -1006,7 +1020,7 @@ void AIManager::setIntegrationTime(double it) this->m_currentAcquisition->stopAcquisition(); restart_acquisition = true; - // sleep a while for history & nexus finalization + // sleep a while for history finalization yat::Thread::sleep(500); } catch (Tango::DevFailed & df) @@ -1089,6 +1103,20 @@ void AIManager::setIntegrationTime(double it) try { + // wait for nexus finalization before restarting acquisition + if (this->m_currentAcqParam.nexusFileGeneration) + { + while(1) + { + Tango::DevState nx_state = this->m_currentAcquisition->getNexusState(); + if (nx_state != Tango::RUNNING) + { + break; + } + yat::Thread::sleep(50); + } + } + this->m_currentAcquisition->startAcquisition(); } catch (Tango::DevFailed & df) diff --git a/src/NexusManager.h b/src/NexusManager.h index 4fff7cd..760e39c 100644 --- a/src/NexusManager.h +++ b/src/NexusManager.h @@ -171,6 +171,7 @@ public: //- Gets Nexus storage state: if true, storage in progress bool getNexusStorageState() { + yat::AutoMutex<> guard(this->m_finalizeNxLock); return !(this->m_finalizeDone); } -- GitLab