From d29aaa68695afe648faef8173ccb2e4124172edc Mon Sep 17 00:00:00 2001
From: Sonia Minolli <sonia.minolli@synchrotron-soleil.fr>
Date: Wed, 2 Dec 2015 09:29:25 +0000
Subject: [PATCH] Created tag release_1_6_0.

---
 ...doc => PulseCounting_user_manual-Ind4.doc} | Bin 2186240 -> 2184704 bytes
 pom.xml                                       |   3 +-
 src/BufferedCounterDt.cpp                     |  33 +-
 src/BufferedCounterDt.h                       |   9 +
 src/BufferedCounterEvt.cpp                    |  34 +-
 src/BufferedCounterEvt.h                      |   9 +
 src/BufferedCounterPeriod.cpp                 | 463 ++++++++++++++++++
 src/BufferedCounterPeriod.h                   | 195 ++++++++
 src/BufferedCounterPos.cpp                    |  34 +-
 src/BufferedCounterPos.h                      |  10 +
 src/ConfigurationParser.cpp                   |   4 +
 src/ConfigurationParser.h                     |   3 +-
 src/CounterFactory.cpp                        |   4 +
 src/NI6602_Interface.cpp                      | 261 +++++++++-
 src/NI6602_Interface.h                        |   8 +
 src/NexusManager.cpp                          |   4 +-
 src/NexusManager.h                            |  19 +-
 src/PeriodCounter.cpp                         | 349 +++++++++++++
 src/PeriodCounter.h                           |  91 ++++
 src/PulseCounting.cpp                         |   9 +-
 src/PulseCountingManager.cpp                  |   6 +-
 src/PulseCountingManagerBuffered.cpp          |  22 +-
 src/PulseCountingTypesAndConsts.h             |   5 +-
 src/main.cpp                                  |  14 +-
 24 files changed, 1548 insertions(+), 41 deletions(-)
 rename doc/{PulseCounting_user_manual-Ind3.doc => PulseCounting_user_manual-Ind4.doc} (90%)
 create mode 100644 src/BufferedCounterPeriod.cpp
 create mode 100644 src/BufferedCounterPeriod.h
 create mode 100644 src/PeriodCounter.cpp
 create mode 100644 src/PeriodCounter.h

diff --git a/doc/PulseCounting_user_manual-Ind3.doc b/doc/PulseCounting_user_manual-Ind4.doc
similarity index 90%
rename from doc/PulseCounting_user_manual-Ind3.doc
rename to doc/PulseCounting_user_manual-Ind4.doc
index 83b25e1104d9c2fad0b8fa49992e08a4b78aed61..b7ebf53f816b912db78d2c157893687a3eed1793 100644
GIT binary patch
delta 79678
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

delta 81764
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

diff --git a/pom.xml b/pom.xml
index f97ad4e..44e5d8c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
    
    <groupId>fr.soleil.device</groupId>
    <artifactId>PulseCounting-${aol}-${mode}</artifactId>
-   <version>1.4.1-SNAPSHOT</version>
+   <version>1.6.0</version>
    
    <packaging>nar</packaging>
    <name>PulseCounting</name>
@@ -43,7 +43,6 @@
        <dependency>
            <groupId>fr.soleil.lib</groupId>
            <artifactId>NI660Xsl-${aol}-${library}-${mode}</artifactId>
-		   <version>1.4.0</version>
        </dependency>
             <dependency>
                 <groupId>fr.soleil.lib</groupId>
diff --git a/src/BufferedCounterDt.cpp b/src/BufferedCounterDt.cpp
index 88cb94e..e55d40a 100644
--- a/src/BufferedCounterDt.cpp
+++ b/src/BufferedCounterDt.cpp
@@ -29,6 +29,7 @@ BufferedCounterDt::BufferedCounterDt (BCEconfig p_conf, NexusManager * storage)
 	this->m_dataBuffer_thread = NULL;
   m_cntOverrun = false;
   m_cntTimedout = false;
+  m_storageError = false;
   m_data.clear();
 	m_cfg = p_conf;
   m_storage_mgr = storage;
@@ -144,6 +145,13 @@ void BufferedCounterDt::handle_scaled_buffer(ni660Xsl::InScaledBuffer* buffer, l
   DEBUG_STREAM << "BufferedCounterDt::handle_scaled_buffer() entering..." << std::endl;
 	DEBUG_STREAM << "BufferedCounterDt::handle_scaled_buffer() - samples to read = " << _samples_read << std::endl;
 
+  // check samples number is > 0
+  if (_samples_read <= 0)
+  {
+    ERROR_STREAM << "BufferedCounterDt::handle_scaled_buffer-> samples to read negative or null value!" << std::endl;
+    this->stopCnt();
+	return;
+  }	
 	yat::AutoMutex<> guard(this->m_buffLock);
 
 	ni660Xsl::InScaledBuffer& buf = *buffer;
@@ -170,12 +178,16 @@ void BufferedCounterDt::handle_scaled_buffer(ni660Xsl::InScaledBuffer* buffer, l
       catch (Tango::DevFailed & df)
       {
 	      ERROR_STREAM << "BufferedCounterDt::handle_raw_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
       catch (...)
       {
 	      ERROR_STREAM << "BufferedCounterDt::handle_raw_buffer-> pushNexusData caugth unknown exception!" << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
     }
 
@@ -205,12 +217,16 @@ void BufferedCounterDt::handle_scaled_buffer(ni660Xsl::InScaledBuffer* buffer, l
       catch (Tango::DevFailed & df)
       {
         ERROR_STREAM << "BufferedCounterDt::handle_raw_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
       catch (...)
       {
         ERROR_STREAM << "BufferedCounterDt::handle_raw_buffer-> pushNexusData caugth unknown exception!" << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
     }
   }
@@ -269,12 +285,16 @@ void BufferedCounterDt::handle_scaled_buffer(ni660Xsl::InScaledBuffer* buffer, l
         catch (Tango::DevFailed & df)
         {
 	        ERROR_STREAM << "BufferedCounterDt::handle_raw_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
-          // Should we stop acquisition if nx problem?
+          // We should stop acquisition if nx problem!
+          this->m_storageError = true;
+          this->stopCnt();
         }
         catch (...)
         {
 	        ERROR_STREAM << "BufferedCounterDt::handle_raw_buffer-> pushNexusData caugth unknown exception!" << std::endl;
-          // Should we stop acquisition if nx problem?
+          // We should stop acquisition if nx problem!
+          this->m_storageError = true;
+          this->stopCnt();
         }
       }
 		}
@@ -299,6 +319,7 @@ void BufferedCounterDt::startCnt()
 	DEBUG_STREAM << "BufferedCounterDt::startCnt() entering..." << endl;
   this->m_cntOverrun = false;
   this->m_cntTimedout = false;
+  this->m_storageError = false;
 
 	{
 		yat::AutoMutex<> guard(this->m_buffLock);
diff --git a/src/BufferedCounterDt.h b/src/BufferedCounterDt.h
index ae56eb0..4695548 100644
--- a/src/BufferedCounterDt.h
+++ b/src/BufferedCounterDt.h
@@ -145,6 +145,12 @@ public:
     return this->m_cntTimedout;
   }
 
+  // has counter stopped on storage error?
+  bool isStorageKO()
+  {
+    return this->m_storageError;
+  }
+
 protected:
 
 	// counter config
@@ -177,6 +183,9 @@ protected:
   // timeout flag
   bool m_cntTimedout;
 
+  // Storage error flag
+  bool m_storageError;
+
   // storage manager
   NexusManager * m_storage_mgr;
 };
diff --git a/src/BufferedCounterEvt.cpp b/src/BufferedCounterEvt.cpp
index 30ed6d7..72ba367 100644
--- a/src/BufferedCounterEvt.cpp
+++ b/src/BufferedCounterEvt.cpp
@@ -30,6 +30,7 @@ BufferedCounterEvt::BufferedCounterEvt (BCEconfig p_conf, NexusManager * storage
 	this->m_dataBuffer_thread = NULL;
   m_cntOverrun = false;
   m_cntTimedout = false;
+  m_storageError = false;
   m_data.clear();
 	m_cfg = p_conf;
   m_storage_mgr = storage;
@@ -135,6 +136,14 @@ void BufferedCounterEvt::handle_raw_buffer(ni660Xsl::InRawBuffer* buffer, long&
 	DEBUG_STREAM << "BufferedCounterEvt::handle_raw_buffer() entering..." << std::endl;
 	DEBUG_STREAM << "BufferedCounterEvt::handle_raw_buffer() - samples to read = " << _samples_read << std::endl;
 
+  // check samples number is > 0
+  if (_samples_read <= 0)
+  {
+    ERROR_STREAM << "BufferedCounterEvt::handle_raw_buffer-> samples to read negative or null value!" << std::endl;
+    this->stopCnt();
+	return;
+  }	
+  
 	yat::AutoMutex<> guard(this->m_buffLock);
 
 	ni660Xsl::InRawBuffer& buf = *buffer;
@@ -164,12 +173,16 @@ void BufferedCounterEvt::handle_raw_buffer(ni660Xsl::InRawBuffer* buffer, long&
       catch (Tango::DevFailed & df)
       {
 	      ERROR_STREAM << "BufferedCounterEvt::handle_raw_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
       catch (...)
       {
 	      ERROR_STREAM << "BufferedCounterEvt::handle_raw_buffer-> pushNexusData caugth unknown exception!" << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
     }
 
@@ -220,12 +233,16 @@ void BufferedCounterEvt::handle_raw_buffer(ni660Xsl::InRawBuffer* buffer, long&
       catch (Tango::DevFailed & df)
       {
         ERROR_STREAM << "BufferedCounterEvt::handle_raw_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
       catch (...)
       {
         ERROR_STREAM << "BufferedCounterEvt::handle_raw_buffer-> pushNexusData caugth unknown exception!" << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
     }
   }
@@ -290,12 +307,16 @@ void BufferedCounterEvt::handle_raw_buffer(ni660Xsl::InRawBuffer* buffer, long&
         catch (Tango::DevFailed & df)
         {
 	        ERROR_STREAM << "BufferedCounterEvt::handle_raw_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
-          // Should we stop acquisition if nx problem?
+          // We should stop acquisition if nx problem!
+          this->m_storageError = true;
+          this->stopCnt();
         }
         catch (...)
         {
 	        ERROR_STREAM << "BufferedCounterEvt::handle_raw_buffer-> pushNexusData caugth unknown exception!" << std::endl;
-          // Should we stop acquisition if nx problem?
+          // We should stop acquisition if nx problem!
+          this->m_storageError = true;
+          this->stopCnt();
         }
       }
 		}
@@ -330,6 +351,7 @@ void BufferedCounterEvt::startCnt()
 	DEBUG_STREAM << "BufferedCounterEvt::startCnt() entering..." << endl;
   this->m_cntOverrun = false;
   this->m_cntTimedout = false;
+  this->m_storageError = false;
 
 	{
 		yat::AutoMutex<> guard(this->m_buffLock);
diff --git a/src/BufferedCounterEvt.h b/src/BufferedCounterEvt.h
index 85f1aae..37beb6f 100644
--- a/src/BufferedCounterEvt.h
+++ b/src/BufferedCounterEvt.h
@@ -145,6 +145,12 @@ public:
     return this->m_cntTimedout;
   }
 
+  // has counter stopped on storage error?
+  bool isStorageKO()
+  {
+    return this->m_storageError;
+  }
+
 protected:
 
 	// counter config
@@ -180,6 +186,9 @@ protected:
   // timeout flag
   bool m_cntTimedout;
 
+  // Storage error flag
+  bool m_storageError;
+
   // storage manager
   NexusManager * m_storage_mgr;
 };
diff --git a/src/BufferedCounterPeriod.cpp b/src/BufferedCounterPeriod.cpp
new file mode 100644
index 0000000..9e4033d
--- /dev/null
+++ b/src/BufferedCounterPeriod.cpp
@@ -0,0 +1,463 @@
+//=============================================================================
+// BufferedCounterPeriod.cpp
+//=============================================================================
+// abstraction.......BufferedCounterPeriod for PulseCounting
+// class.............BufferedCounterPeriod
+// original author...S.Minolli - Nexeya
+//=============================================================================
+
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <yat4tango/LogHelper.h>
+#include "BufferedCounterPeriod.h"
+
+namespace PulseCounting_ns
+{
+
+// ============================================================================
+// BufferedCounterPeriod::BufferedCounterPeriod ()
+// ============================================================================ 
+BufferedCounterPeriod::BufferedCounterPeriod (BCEconfig p_conf, NexusManager * storage)
+: yat4tango::TangoLogAdapter(p_conf.hostDevice)
+{
+	this->m_bufferNbToReceive = 0;
+	this->m_currentBufferNb = 0;
+	this->m_firstPtReceivedBuff = 0;
+	this->m_acquisitionDone = true;
+	this->m_dataBuffer_thread = NULL;
+  m_cntOverrun = false;
+  m_cntTimedout = false;
+  m_storageError = false;
+  m_data.clear();
+	m_cfg = p_conf;
+  m_storage_mgr = storage;
+}
+
+// ============================================================================
+// BufferedCounterPeriod::~BufferedCounterPeriod ()
+// ============================================================================ 
+BufferedCounterPeriod::~BufferedCounterPeriod ()
+{
+	
+}
+
+// ============================================================================
+// BufferedCounterPeriod::updateRawBuffer
+// ============================================================================
+void BufferedCounterPeriod::updateRawBuffer()
+  throw(Tango::DevFailed)
+{
+	// Delete "buffer recover" thread if exists and if data recovery is over
+	if (this->m_dataBuffer_thread)
+	{
+		if (this->m_dataBuffer_thread->updateDone())
+		{
+			yat::Thread::IOArg ioa;
+			this->m_dataBuffer_thread->exit();
+			this->m_dataBuffer_thread->join(&ioa);
+			//std::cout << "BufferedCounterPeriod::updateRawBuffer - BR thread exited for counter " 
+			//  << this->m_cfg.cnt.number << std::endl;
+			this->m_dataBuffer_thread = NULL; 
+		}
+	}
+
+	// Task the buffer reception if acquisition is on & if previous buffer recovery is over
+	if ((!this->m_acquisitionDone) && 
+		  (this->m_dataBuffer_thread == NULL))
+	{
+		this->m_dataBuffer_thread = new BRPRThread(m_cfg.hostDevice, static_cast<yat::Thread::IOArg>(this));
+		DEBUG_STREAM << "BufferedCounterPeriod Thread created ..." << endl;
+		if (this->m_dataBuffer_thread == NULL)
+		{
+			ERROR_STREAM << "Buffer recovery cannot be tasked for counter " 
+				<< this->m_cfg.cnt.number << std::endl;
+			THROW_DEVFAILED(
+        _CPTC("DEVICE_ERROR"),
+				_CPTC("Failed to start buffer recover task!"),
+				_CPTC("BufferedCounterPeriod::updateRawBuffer"));    
+		}
+		//std::cout << "BufferedCounterPeriod::updateRawBuffer - starting Buffer recovery thread for counter " 
+		//  << this->m_cfg.cnt.number << std::endl;
+		this->m_dataBuffer_thread->start_undetached();   
+	}
+}
+
+// ============================================================================
+// BufferedCounterPeriod::getRawBuffer
+// ============================================================================
+void BufferedCounterPeriod::getRawBuffer()
+{
+	// call "get raw buffer" to compose the whole buffer.
+	// In "polling" mode, the client has to poll to compose the acquisition buffer.
+	if (!this->m_acquisitionDone)
+	{
+		DEBUG_STREAM << "BufferedCounterPeriod::GetRawBuffer entering..." << endl;
+		//- from NI660Xsl - calls ni660Xsl::handle_xxx methods
+		try
+		{
+			ni660Xsl::BufferedPeriodMeasurement::get_raw_buffer(); // the driver waits 'buffer depth' seconds...
+		}
+		catch(ni660Xsl::DAQException & nie)
+		{
+			throw_devfailed(nie);
+		}
+	}
+}
+
+// ============================================================================
+// BufferedCounterPeriod::handle_timeout ()
+// ============================================================================ 
+void BufferedCounterPeriod::handle_timeout()
+  throw (Tango::DevFailed)
+{
+	ERROR_STREAM << "BufferedCounterPeriod::handle_timeout() entering..." << endl;
+	this->m_cntTimedout = true;
+}
+
+// ============================================================================
+// BufferedCounterPeriod::handle_data_lost ()
+// ============================================================================ 
+void BufferedCounterPeriod::handle_data_lost()
+  throw (Tango::DevFailed)
+{
+	ERROR_STREAM << "BufferedCounterPeriod::handle_data_lost() entering..." << endl;
+	this->m_cntOverrun = true;
+}
+
+// ============================================================================
+// BufferedCounterPeriod::handle_raw_buffer ()
+// ============================================================================ 
+void BufferedCounterPeriod::handle_raw_buffer(ni660Xsl::InRawBuffer* buffer, long& _samples_read)
+  throw (Tango::DevFailed)
+{
+  //- PERIOD values are not raw !!!
+  delete buffer;
+}
+
+// ============================================================================
+// BufferedCounterPeriod::handle_scaled_buffer ()
+// ============================================================================ 
+void BufferedCounterPeriod::handle_scaled_buffer(ni660Xsl::InScaledBuffer* buffer, long& _samples_read)
+  throw (Tango::DevFailed)
+{
+  DEBUG_STREAM << "BufferedCounterPeriod::handle_scaled_buffer() entering..." << std::endl;
+	DEBUG_STREAM << "BufferedCounterPeriod::handle_scaled_buffer() - samples to read = " << _samples_read << std::endl;
+
+  // check samples number is > 0
+  if (_samples_read <= 0)
+  {
+    ERROR_STREAM << "BufferedCounterPeriod::handle_scaled_buffer-> samples to read negative or null value!" << std::endl;
+    this->stopCnt();
+	return;
+  }	
+  
+	yat::AutoMutex<> guard(this->m_buffLock);
+
+	ni660Xsl::InScaledBuffer& buf = *buffer;
+	RawData_t & data = this->m_data;
+  bool data_to_be_stored = (this->m_cfg.acq.nexusFileGeneration && this->m_cfg.cnt.nexus);
+
+	//- Continuous acquisition: only one buffer is received !!
+	if (this->m_cfg.acq.continuousAcquisition)
+	{
+		DEBUG_STREAM << "continuous acquisition: nb buffer to receive = 1!" << std::endl;  
+
+		for (unsigned long idx = 0; idx < (unsigned long)_samples_read; idx++)
+		{
+			data[idx] = (data_t)(buf[idx]);
+		}
+
+    // store received buffer in Nexus, if nx storage enabled
+    if (data_to_be_stored && this->m_storage_mgr)
+    {
+      try
+      {
+        this->m_storage_mgr->pushNexusData(this->m_cfg.cnt.name, &data[0], (unsigned long)_samples_read);
+      }
+      catch (Tango::DevFailed & df)
+      {
+	      ERROR_STREAM << "BufferedCounterPeriod::handle_raw_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
+      }
+      catch (...)
+      {
+	      ERROR_STREAM << "BufferedCounterPeriod::handle_raw_buffer-> pushNexusData caugth unknown exception!" << std::endl;
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
+      }
+    }
+
+    // stop acquisition
+		this->stopCnt();
+	}
+  else if (this->m_bufferNbToReceive == 0) //- infinite mode
+  {
+		DEBUG_STREAM << "one buffer received." << std::endl;
+
+		unsigned long nb_to_copy;
+		nb_to_copy = buf.depth();
+		DEBUG_STREAM << "NB to copy : " << nb_to_copy << endl;
+
+		for (unsigned long idx = 0; idx < nb_to_copy; idx++ )
+		{
+			data[idx] = (data_t)(buf[idx]);
+		}
+
+    // store received buffer in Nexus, if nx storage enabled for this counter
+    if (data_to_be_stored && this->m_storage_mgr)
+    {
+      try
+      {
+        this->m_storage_mgr->pushNexusData(this->m_cfg.cnt.name, &data[0], nb_to_copy);
+      }
+      catch (Tango::DevFailed & df)
+      {
+        ERROR_STREAM << "BufferedCounterPeriod::handle_raw_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
+      }
+      catch (...)
+      {
+        ERROR_STREAM << "BufferedCounterPeriod::handle_raw_buffer-> pushNexusData caugth unknown exception!" << std::endl;
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
+      }
+    }
+  }
+	else //- not continuous nor infinite
+	{
+		//- All buffers have not been yet received
+		if (this->m_currentBufferNb < this->m_bufferNbToReceive)
+		{
+			DEBUG_STREAM << "buffer currently received = " << this->m_currentBufferNb + 1 << " on " << this->m_bufferNbToReceive << std::endl;
+			unsigned long nb_to_copy;
+
+			if (((unsigned long)this->m_cfg.acq.samplesNumber - this->m_firstPtReceivedBuff) < buf.depth())
+			{
+				nb_to_copy = (unsigned long)this->m_cfg.acq.samplesNumber - this->m_firstPtReceivedBuff;
+			}
+			else
+			{
+				nb_to_copy = buf.depth();
+			}
+			DEBUG_STREAM << "NB to copy : " << nb_to_copy << endl;
+
+      // tempo buffer for storage
+      RawData_t bufNx;
+      if (data_to_be_stored)
+      {
+        // force length with _samples_read because in the case of incomplete buffer 
+        // (i.e. last buffer to receive), the nx manager requires fixed length = buffer depth size
+        bufNx.capacity(_samples_read);
+        bufNx.force_length(_samples_read);
+        bufNx.fill(yat::IEEE_NAN);
+      }
+
+			for (unsigned long idx = 1; idx < nb_to_copy; idx++ )
+			{
+				data[idx + this->m_firstPtReceivedBuff] = (data_t)(buf[idx]);
+        if (data_to_be_stored)
+          bufNx[idx] = data[idx + this->m_firstPtReceivedBuff];
+			}
+
+			//- at start, m_firstPtReceivedBuff equals 0.
+			//- m_firstPtReceivedBuff is the position of the 1st point of the buffer
+			data[this->m_firstPtReceivedBuff] = (data_t)(buf[0]);
+      if (data_to_be_stored)
+        bufNx[0] = data[this->m_firstPtReceivedBuff];
+
+			this->m_currentBufferNb++;
+			this->m_firstPtReceivedBuff += nb_to_copy;
+
+      // store received buffer in Nexus, if nx storage enabled for this counter
+      if (data_to_be_stored && this->m_storage_mgr)
+      {
+        try
+        {
+          this->m_storage_mgr->pushNexusData(this->m_cfg.cnt.name, &bufNx[0], nb_to_copy);
+        }
+        catch (Tango::DevFailed & df)
+        {
+	        ERROR_STREAM << "BufferedCounterPeriod::handle_raw_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
+          // We should stop acquisition if nx problem!
+          this->m_storageError = true;
+          this->stopCnt();
+        }
+        catch (...)
+        {
+	        ERROR_STREAM << "BufferedCounterPeriod::handle_raw_buffer-> pushNexusData caugth unknown exception!" << std::endl;
+          // We should stop acquisition if nx problem!
+          this->m_storageError = true;
+          this->stopCnt();
+        }
+      }
+		}
+
+		// if all requested buffers are received 
+		if (this->m_currentBufferNb == this->m_bufferNbToReceive)
+		{	
+			// stop acquisition
+			this->stopCnt();
+		}
+	}
+
+  delete buffer;
+}
+
+// ============================================================================
+// BufferedCounterPeriod::startCnt
+// ============================================================================
+void BufferedCounterPeriod::startCnt()
+  throw (Tango::DevFailed)
+{
+	DEBUG_STREAM << "BufferedCounterPeriod::startCnt() entering..." << endl;
+  this->m_cntOverrun = false;
+  this->m_cntTimedout = false;
+  this->m_storageError = false;
+
+	{
+		yat::AutoMutex<> guard(this->m_buffLock);
+
+    // reset current counters & buffers
+		this->m_currentBufferNb = 0;
+		this->m_firstPtReceivedBuff = 0;
+		this->m_acquisitionDone = false;
+
+    // check if infinite mode
+    if (this->m_cfg.acq.samplesNumber == 0)
+    {
+      // set data length to buffer depth
+	    this->m_data.capacity(this->m_cfg.acq.bufferDepth);
+	    this->m_data.force_length(this->m_cfg.acq.bufferDepth);
+    }
+    else
+    {
+      // set data length to samples nber
+	    this->m_data.capacity(this->m_cfg.acq.samplesNumber);
+	    this->m_data.force_length(this->m_cfg.acq.samplesNumber);
+    }
+	  this->m_data.fill(yat::IEEE_NAN);
+
+		unsigned long buffer_depth_nbpts = 0;
+
+		if (this->m_cfg.acq.continuousAcquisition)
+		{
+			buffer_depth_nbpts = this->m_cfg.acq.samplesNumber;
+		}
+		else
+		{
+			buffer_depth_nbpts = static_cast<unsigned long>(this->m_cfg.acq.bufferDepth);
+		}
+		m_bufferNbToReceive = (m_cfg.acq.samplesNumber + buffer_depth_nbpts - 1) / buffer_depth_nbpts;
+		DEBUG_STREAM << "Buffer to receive : " << m_bufferNbToReceive << endl;
+	}
+
+	//- from NI660Xsl
+  try
+  {
+	  ni660Xsl::BufferedPeriodMeasurement::start();
+  }
+	catch(ni660Xsl::DAQException & nie)
+	{
+		throw_devfailed(nie);
+	}
+
+#if !defined (USE_CALLBACK) 
+	// start the data buffer waiting task for the 1st time
+	this->updateRawBuffer();
+#endif
+}
+
+// ============================================================================
+// BufferedCounterPeriod::stopCnt
+// ============================================================================
+void BufferedCounterPeriod::stopCnt()
+  throw (Tango::DevFailed)
+{
+  DEBUG_STREAM << "BufferedCounterPeriod::stopCnt() entering..." << endl;
+	this->m_acquisitionDone = true;
+
+  try
+  {
+    //- from NI660Xsl
+    ni660Xsl::BufferedPeriodMeasurement::abort(); // we use abort to stop counting immediately
+	  ni660Xsl::BufferedPeriodMeasurement::release(); // sets an UNKNOWN state in NI660Xsl lib !
+  }
+	catch(...)
+	{
+	  // DAQmx 9.x abort pb workaround
+		ERROR_STREAM << "BufferedCounterPeriod::stopCnt() - Aborting counter generates exception, do nothing..." << std::endl;
+	}
+}
+
+// ============================================================================
+// BufferedCounterPeriod::get_value ()
+// ============================================================================ 
+RawData_t & BufferedCounterPeriod::get_value()
+{
+  yat::AutoMutex<> guard(this->m_buffLock);
+  return this->m_data;
+}
+
+//*****************************************************************************
+// BRPRThread
+//*****************************************************************************
+// ============================================================================
+// BRPRThread::BRPRThread
+// ============================================================================
+BRPRThread::BRPRThread (Tango::DeviceImpl * hostDevice, yat::Thread::IOArg ioa)
+: yat::Thread(ioa),
+Tango::LogAdapter (hostDevice),
+m_goOn(true),
+m_isUpdateDone(false)
+{
+	//- noop ctor
+}
+
+// ============================================================================
+// BRPRThread::~BRPRThread
+// ============================================================================
+BRPRThread::~BRPRThread (void)
+{
+	//- noop dtor
+}
+
+// ============================================================================
+// BRPRThread::run_undetached
+// ============================================================================
+yat::Thread::IOArg BRPRThread::run_undetached (yat::Thread::IOArg ioa)
+{
+	DEBUG_STREAM << "BRPRThread::run_undetached() entering... " << std::endl;
+
+	m_isUpdateDone = false;
+	//- get ref. to out our parent task
+	BufferedCounterPeriod * cm_task = reinterpret_cast<BufferedCounterPeriod *>(ioa);
+
+	//std::cout << "**Wait for buffer value to be set from board..." << std::endl;
+	cm_task->getRawBuffer(); 
+
+	// when function returns, the buffer is handled (or timeout if no data)
+	//std::cout << "**Buffer update done." << std::endl;
+	m_isUpdateDone = true;
+
+	return 0;
+}
+
+
+// ============================================================================
+// BRPRThread::exit
+// ============================================================================
+void BRPRThread::exit (void)
+{
+	this->m_goOn = false;
+}
+
+} // namespace PulseCounting_ns
+
diff --git a/src/BufferedCounterPeriod.h b/src/BufferedCounterPeriod.h
new file mode 100644
index 0000000..2056efa
--- /dev/null
+++ b/src/BufferedCounterPeriod.h
@@ -0,0 +1,195 @@
+//=============================================================================
+// BufferedCounterPeriod.h
+//=============================================================================
+// abstraction.......BufferedCounterPeriod for PulseCounting
+// class.............BufferedCounterPeriod
+// original author...S.Minolli - Nexeya
+//=============================================================================
+
+#ifndef _BUFFERED_COUNTER_PRD_H
+#define _BUFFERED_COUNTER_PRD_H
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <yat4tango/LogHelper.h>
+#include "PulseCountingTypesAndConsts.h"
+#include <NI660Xsl/BufferedPeriodMeasurement.h>
+#include <yat/threading/Thread.h>
+#include <yat4tango/ExceptionHelper.h>
+#include "NexusManager.h"
+
+namespace PulseCounting_ns
+{
+
+
+	// ============================================================================
+	// class: BRPRThread
+	// ============================================================================
+	class BRPRThread : public yat::Thread, public Tango::LogAdapter
+	{
+		friend class BufferedCounterPeriod;
+
+	protected:
+		//- ctor ---------------------------------
+		BRPRThread (Tango::DeviceImpl * hostDevice, yat::Thread::IOArg ioa);
+
+		//- dtor ---------------------------------
+		virtual ~BRPRThread (void);
+
+		//- thread's entry point
+		virtual yat::Thread::IOArg run_undetached (yat::Thread::IOArg ioa);
+
+		//- asks this BRPRThread to quit
+		virtual void exit (void);
+
+		//- Thread state
+		bool isThreadAlive()
+		{
+			return m_goOn;
+		}
+
+		//- Buffer update state
+		bool updateDone()
+		{
+			return m_isUpdateDone;
+		}
+
+	private:
+		//- thread's ctrl flag
+		bool m_goOn;
+
+		//- data update done
+		bool m_isUpdateDone;
+	};
+
+
+
+// ============================================================================
+// class: BufferedCounterPeriod
+// ============================================================================
+class BufferedCounterPeriod : public yat4tango::TangoLogAdapter, public ni660Xsl::BufferedPeriodMeasurement
+{
+public:
+
+  //- constructor
+  BufferedCounterPeriod (BCEconfig p_conf, NexusManager * storage);
+
+  //- destructor
+  virtual ~BufferedCounterPeriod ();
+
+  //*********** NI660Xsl inheritance  ****************
+  // These handle_xxx functions are called directly by NI660XSl lib in "callback mode" and
+  // called after wait task ends in "polling" mode.
+
+  //- handle timeout
+  void handle_timeout()
+	  throw (Tango::DevFailed);
+
+  //- handle data lost
+  void handle_data_lost()
+	  throw (Tango::DevFailed);
+
+  //- handle raw buffer
+  void handle_raw_buffer(ni660Xsl::InRawBuffer* buffer, long& _samples_read)
+	  throw (Tango::DevFailed);
+
+  //- handle scaled buffer
+  void handle_scaled_buffer(ni660Xsl::InScaledBuffer* buffer, long& _samples_read)
+	  throw (Tango::DevFailed);
+
+
+  //********** local members  ****************
+  // start counter
+  void startCnt()
+    throw (Tango::DevFailed);
+
+  // stop counter
+  void stopCnt()
+    throw (Tango::DevFailed);
+
+  //- set local value
+  void set_value();
+
+  //- get value
+  RawData_t & get_value();
+
+  // Acquisition done info
+  bool isAcquisitionDone()
+  {
+    yat::AutoMutex<> guard(this->m_buffLock);
+	  return this->m_acquisitionDone;
+  }
+
+  // updates raw buffer <=> starts waiting task if not already running
+  // (used in "polling" mode)
+  void updateRawBuffer()
+	  throw(Tango::DevFailed);
+
+	// gets raw buffer <=> calls the driver waiting task (used in "polling" mode)
+  void getRawBuffer();
+
+  //- release counter
+  void deleteObject()
+	  throw (Tango::DevFailed);
+
+  // is counter in overrun ?
+  bool isOverrun()
+  {
+    return this->m_cntOverrun;
+  }
+
+  // has counter timed out ?
+  bool isTimedout()
+  {
+    return this->m_cntTimedout;
+  }
+
+  // has counter stopped on storage error?
+  bool isStorageKO()
+  {
+    return this->m_storageError;
+  }
+
+protected:
+
+	// counter config
+	BCEconfig m_cfg;
+
+	// total number of buffers to receive for each acquisition
+	unsigned long m_bufferNbToReceive;
+
+	// current number of buffers actually received
+	unsigned long m_currentBufferNb;
+
+	// First point of the currently received buffer
+	unsigned long m_firstPtReceivedBuff;
+
+	// raw data buffer
+	RawData_t m_data;
+
+	// Acquisition done flag
+	bool m_acquisitionDone;
+
+	//- data mutex protection
+	yat::Mutex m_buffLock;
+
+	// Data buffer waiting task
+	BRPRThread * m_dataBuffer_thread;
+
+  // overrun flag
+  bool m_cntOverrun;
+
+  // timeout flag
+  bool m_cntTimedout;
+
+  // Storage error flag
+  bool m_storageError; // soso crash rock
+
+  // storage manager
+  NexusManager * m_storage_mgr;
+};
+
+} // namespace PulseCounting_ns
+
+#endif // _BUFFERED_COUNTER_PRD_H
diff --git a/src/BufferedCounterPos.cpp b/src/BufferedCounterPos.cpp
index e2e7551..7dc900a 100644
--- a/src/BufferedCounterPos.cpp
+++ b/src/BufferedCounterPos.cpp
@@ -30,6 +30,7 @@ BufferedCounterPos::BufferedCounterPos (BCEconfig p_conf, NexusManager * storage
 	this->m_dataBuffer_thread = NULL;
   this->m_cntOverrun = false;
   this->m_cntTimedout = false;
+  this->m_storageError = false;
 	m_data.clear();
 	m_cfg = p_conf;
   m_storage_mgr = storage;
@@ -144,6 +145,14 @@ void BufferedCounterPos::handle_scaled_buffer(ni660Xsl::InScaledBuffer* buffer,
 	DEBUG_STREAM << "BufferedCounterPos::handle_scaled_buffer() entering..." << std::endl;
 	DEBUG_STREAM << "BufferedCounterPos::handle_scaled_buffer() - samples to read = " << _samples_read << std::endl;
 
+  // check samples number is > 0
+  if (_samples_read <= 0)
+  {
+    ERROR_STREAM << "BufferedCounterPos::handle_scaled_buffer-> samples to read negative or null value!" << std::endl;
+    this->stopCnt();
+	return;
+  }
+
   yat::AutoMutex<> guard(this->m_buffLock);
 
 	ni660Xsl::InScaledBuffer& buf = *buffer;
@@ -178,12 +187,16 @@ void BufferedCounterPos::handle_scaled_buffer(ni660Xsl::InScaledBuffer* buffer,
       catch (Tango::DevFailed & df)
       {
 	      ERROR_STREAM << "BufferedCounterPos::handle_scaled_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
       catch (...)
       {
 	      ERROR_STREAM << "BufferedCounterPos::handle_scaled_buffer-> pushNexusData caugth unknown exception!" << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
     }
 
@@ -251,12 +264,16 @@ void BufferedCounterPos::handle_scaled_buffer(ni660Xsl::InScaledBuffer* buffer,
       catch (Tango::DevFailed & df)
       {
         ERROR_STREAM << "BufferedCounterPos::handle_scaled_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
       catch (...)
       {
         ERROR_STREAM << "BufferedCounterPos::handle_scaled_buffer-> pushNexusData caugth unknown exception!" << std::endl;
-        // Should we stop acquisition if nx problem?
+        // We should stop acquisition if nx problem!
+        this->m_storageError = true;
+        this->stopCnt();
       }
     }
   }
@@ -334,12 +351,16 @@ void BufferedCounterPos::handle_scaled_buffer(ni660Xsl::InScaledBuffer* buffer,
         catch (Tango::DevFailed & df)
         {
 	        ERROR_STREAM << "BufferedCounterPos::handle_scaled_buffer-> pushNexusData caught DevFailed: " << df << std::endl;
-          // Should we stop acquisition if nx problem?
+          // We should stop acquisition if nx problem!
+          this->m_storageError = true;
+          this->stopCnt();
         }
         catch (...)
         {
 	        ERROR_STREAM << "BufferedCounterPos::handle_scaled_buffer-> pushNexusData caugth unknown exception!" << std::endl;
-          // Should we stop acquisition if nx problem?
+          // We should stop acquisition if nx problem!
+          this->m_storageError = true;
+          this->stopCnt();
         }
       }
 		}
@@ -364,6 +385,7 @@ void BufferedCounterPos::startCnt()
   DEBUG_STREAM << "BufferedCounterPos::startCnt() entering..." << endl;
   this->m_cntOverrun = false;
   this->m_cntTimedout = false;
+  this->m_storageError = false;
 
 	{
 		yat::AutoMutex<> guard(this->m_buffLock);
diff --git a/src/BufferedCounterPos.h b/src/BufferedCounterPos.h
index ec64fa5..1d4e751 100644
--- a/src/BufferedCounterPos.h
+++ b/src/BufferedCounterPos.h
@@ -141,6 +141,13 @@ public:
     return this->m_cntTimedout;
   }
 
+  // has counter stopped on storage error?
+  bool isStorageKO()
+  {
+    return this->m_storageError;
+  }
+
+
 protected:
 	// counter config
 	BCEconfig m_cfg;
@@ -175,6 +182,9 @@ protected:
   // timeout flag
   bool m_cntTimedout;
 
+  // Storage error flag
+  bool m_storageError;
+
   // storage manager
   NexusManager * m_storage_mgr;
 };
diff --git a/src/ConfigurationParser.cpp b/src/ConfigurationParser.cpp
index c11fa7b..2b6f7f1 100644
--- a/src/ConfigurationParser.cpp
+++ b/src/ConfigurationParser.cpp
@@ -269,6 +269,10 @@ E_CounterMode_t ConfigurationParser::extractMode (CounterKeys_t acq_config)
   {
     mode = COUNTER_MODE_DELTATIME;
   }
+  else if (0 == tokenValue.compare(kKEY_MODE_PERIOD))
+  {
+    mode = COUNTER_MODE_PERIOD;
+  }
   else
   {
     // bad value ==> fatal error
diff --git a/src/ConfigurationParser.h b/src/ConfigurationParser.h
index 113e2e1..1eb6c53 100644
--- a/src/ConfigurationParser.h
+++ b/src/ConfigurationParser.h
@@ -25,15 +25,14 @@ namespace PulseCounting_ns
 static const std::string kKEY_VALUE_SEPARATOR (":");
 static const std::string kVALUE_SEPARATOR_CL (":");
 static const std::string kVALUE_SEPARATOR_COMA (",");
-static const std::string kCONFIG_NAME ("Counter");
 
 //- property strings for config
-static const std::string kKEY_COUNTER ("Counter");
 static const std::string kKEY_NAME ("Name");
 static const std::string kKEY_MODE ("Mode");
 static const std::string kKEY_MODE_EVT ("EVT");
 static const std::string kKEY_MODE_POS ("POS");
 static const std::string kKEY_MODE_DT ("DT");
+static const std::string kKEY_MODE_PERIOD ("PERIOD");
 static const std::string kKEY_TRANSFER ("Transfer");
 static const std::string kKEY_TRANSFER_DMA ("DMA");
 static const std::string kKEY_TRANSFER_ITR ("ITR");
diff --git a/src/CounterFactory.cpp b/src/CounterFactory.cpp
index 190beb1..e555c5c 100644
--- a/src/CounterFactory.cpp
+++ b/src/CounterFactory.cpp
@@ -14,6 +14,7 @@
 #include "EventCounter.h"
 #include "PositionCounter.h"
 #include "DeltaTimeCounter.h"
+#include "PeriodCounter.h"
 
 namespace PulseCounting_ns
 {
@@ -37,6 +38,9 @@ GenericCounterInterface * CounterFactory::instanciate (Tango::DeviceImpl * hostD
   case COUNTER_MODE_DELTATIME:
 	  l_counter = new DeltaTimeCounter(hostDevice, p_acq_mode, p_board);
 	  break;
+  case COUNTER_MODE_PERIOD:
+	  l_counter = new PeriodCounter(hostDevice, p_acq_mode, p_board);
+	  break;
   case UNDEFINED_COUNTER_MODE:
 	  l_counter = NULL;
 	  break;
diff --git a/src/NI6602_Interface.cpp b/src/NI6602_Interface.cpp
index 0f5f07a..07437f5 100644
--- a/src/NI6602_Interface.cpp
+++ b/src/NI6602_Interface.cpp
@@ -79,6 +79,13 @@ void NI6602_Interface::initCounter(CounterConfig p_cfg)
 					  m_scalar_dt_ct_list[p_cfg.name] = NULL;
 				  }
 				  break;
+			  case COUNTER_MODE_PERIOD:
+				  if (m_scalar_prd_ct_list[p_cfg.name])
+				  {
+					  delete m_scalar_prd_ct_list[p_cfg.name];
+					  m_scalar_prd_ct_list[p_cfg.name] = NULL;
+				  }
+				  break;
         default:
 				  break;
 		  }
@@ -108,6 +115,13 @@ void NI6602_Interface::initCounter(CounterConfig p_cfg)
 				  m_buffer_dt_ct_list[p_cfg.name] = NULL;
 			  }
 			  break;
+		  case COUNTER_MODE_PERIOD:
+			  if (m_buffer_prd_ct_list[p_cfg.name])
+			  {
+				  delete m_buffer_prd_ct_list[p_cfg.name];
+				  m_buffer_prd_ct_list[p_cfg.name] = NULL;
+			  }
+			  break;
 		  default:
 			  break;
 		}
@@ -313,6 +327,7 @@ void NI6602_Interface::configureCounter(CounterConfig p_cfg)
 	ni660Xsl::EventCountChan l_evtConfig;
 	ni660Xsl::PositionChan l_posConfig;
   ni660Xsl::DeltaTimeChan l_dtConfig;
+  ni660Xsl::PeriodChan l_prdConfig;
 	ni660Xsl::AngularEncoderChan l_angConfig;
 	ni660Xsl::LinearEncoderChan l_linConfig;
 	ni::AngleUnitsType l_angleUnits;
@@ -585,6 +600,43 @@ void NI6602_Interface::configureCounter(CounterConfig p_cfg)
 				  break;
 		  }
       l_dtConfig.units = l_dtUnits;
+      break;
+
+    //********************************************************************/
+    // PERIOD COUNTER
+    //********************************************************************/
+	  case COUNTER_MODE_PERIOD:
+		  l_prdConfig.chan_name = std::string("/") + p_cfg.boardName + std::string("/") + std::string("ctr")
+			  + yat::XString<size_t>::to_string(p_cfg.number);
+
+		  ni::EdgeType edge;
+		  switch (p_cfg.edge)
+		  {
+		    case COUNTING_EDGE_RISING:
+			    edge = ni::rising_edge;
+			    break;
+		    case COUNTING_EDGE_FALLING:
+			    edge = ni::falling_edge;
+			    break;
+		    default:
+			    edge = ni::rising_edge; //default value if not defined
+			    break;
+		  }
+		  l_prdConfig.edge = edge;
+		  
+      switch (p_cfg.dt_unit)
+		  {
+			  case ENC_UNIT_TICK:
+				  l_dtUnits = ni::time_ticks;
+				  break;
+			  case ENC_UNIT_SEC:
+				  l_dtUnits = ni::seconds;
+				  break;
+        default:
+				  l_dtUnits = ni::seconds;
+				  break;
+		  }
+      l_prdConfig.units = l_dtUnits;
       break;
 
 	  default:
@@ -703,6 +755,40 @@ void NI6602_Interface::configureCounter(CounterConfig p_cfg)
 		    throw_devfailed(nie);
 	    }
     }
+    else if (p_cfg.mode == COUNTER_MODE_PERIOD) 
+    {
+      // Create PERIOD counting object and configure it
+	    try
+	    {
+		    m_scalar_prd_ct_list[p_cfg.name] = new ni660Xsl::SimplePeriodMeasurement();
+
+        if (m_scalar_prd_ct_list[p_cfg.name])
+        {
+	        std::string pause_trigger;
+          // Check board
+	        if ((this->m_clk_cfg.channelName.compare(CLOCK_INTERNAL) == 0) &&
+              (this->m_clk_cfg.boardName.compare(p_cfg.boardName) == 0))
+	        {
+		        // Master board: generates clock on ctr0 = trigger
+		        pause_trigger = "/"  + p_cfg.boardName + "/ctr0InternalOutput";
+	        }
+	        else
+	        {
+		        // Not master board: receives external clock on PFI38
+		        pause_trigger = "/"  + p_cfg.boardName + "/PFI38";
+	        }
+
+		      m_scalar_prd_ct_list[p_cfg.name]->set_pause_trigger(pause_trigger, ni::low);
+		      m_scalar_prd_ct_list[p_cfg.name]->add_input_channel(l_prdConfig);
+		      m_scalar_prd_ct_list[p_cfg.name]->init();
+		      m_scalar_prd_ct_list[p_cfg.name]->configure();  
+        }
+	    }
+	    catch(ni660Xsl::DAQException & nie)
+	    {
+		    throw_devfailed(nie);
+	    }
+    }
     else
     {
       // bad counter mode, nothing to do...
@@ -930,6 +1016,68 @@ void NI6602_Interface::configureCounter(CounterConfig p_cfg)
 				throw_devfailed(nie);
 			}
     }
+    else if (p_cfg.mode == COUNTER_MODE_PERIOD)
+    {
+      // Create PERIOD counting object and configure it
+      try
+      {
+        m_buffer_prd_ct_list[p_cfg.name] = new BufferedCounterPeriod(l_conf, m_storage);
+
+        if (m_buffer_prd_ct_list[p_cfg.name])
+        {
+					// Define acquisition
+					m_buffer_prd_ct_list[p_cfg.name]->set_timeout(m_cfg.timeout);
+					m_buffer_prd_ct_list[p_cfg.name]->set_overrun_strategy(ni::notify);
+					m_buffer_prd_ct_list[p_cfg.name]->set_timing_mode(ni::continuous);
+					m_buffer_prd_ct_list[p_cfg.name]->set_buffer_depth(buffer_depth_nbpts);
+
+					if (p_cfg.memTranfer == MEMORY_TRSF_DMA)
+					{
+						m_buffer_prd_ct_list[p_cfg.name]->set_data_tranfer_mechanism(ni::dma);
+					}
+					else
+					{
+						m_buffer_prd_ct_list[p_cfg.name]->set_data_tranfer_mechanism(ni::interrupts);
+					}
+
+					std::string pause_trigger;
+          // Check board
+	        if ((this->m_clk_cfg.channelName.compare(CLOCK_INTERNAL) == 0) &&
+              (this->m_clk_cfg.boardName.compare(p_cfg.boardName) == 0))
+					{
+						// Master board: generates clock on ctr0 = trigger
+						pause_trigger = "/"  + p_cfg.boardName + "/ctr0InternalOutput";
+					}
+					else
+					{
+						// Not master board: receives external clock on PFI38
+						pause_trigger = "/"  + p_cfg.boardName + "/PFI38";
+					}
+
+					double max_rate = 1.1 / m_cfg.integrationTime;
+					m_buffer_prd_ct_list[p_cfg.name]->set_sample_clock(pause_trigger, ni::rising_edge, max_rate);
+
+					if (this->m_cfg.startTriggerUse)
+					{
+						m_buffer_prd_ct_list[p_cfg.name]->set_start_trigger(pause_trigger, ni::rising_edge);
+					}
+
+#if defined (USE_CALLBACK) 
+				  DEBUG_STREAM << "Callback mode set" << std::endl;
+          m_buffer_prd_ct_list[p_cfg.name]->set_callback_mode(true);
+          m_buffer_prd_ct_list[p_cfg.name]->set_total_nb_pts(this->m_cfg.samplesNumber);
+#endif					
+
+					m_buffer_prd_ct_list[p_cfg.name]->add_input_channel(l_prdConfig);
+					m_buffer_prd_ct_list[p_cfg.name]->init();
+					m_buffer_prd_ct_list[p_cfg.name]->configure();
+        }
+      }
+			catch(ni660Xsl::DAQException & nie)
+			{
+				throw_devfailed(nie);
+			}
+    }
     else
     {
       // bad counter mode, nothing to do...
@@ -963,6 +1111,9 @@ void NI6602_Interface::startCounter(CounterConfig p_cfg)
 			    case COUNTER_MODE_DELTATIME:
 				    m_scalar_dt_ct_list[p_cfg.name]->start();
 				    break;
+			    case COUNTER_MODE_PERIOD:
+				    m_scalar_prd_ct_list[p_cfg.name]->start();
+				    break;
           default:
 				    break;
 			  }
@@ -980,7 +1131,10 @@ void NI6602_Interface::startCounter(CounterConfig p_cfg)
 			    case COUNTER_MODE_DELTATIME:
 				    m_buffer_dt_ct_list[p_cfg.name]->startCnt();
 				    break;
-			    default:
+			    case COUNTER_MODE_PERIOD:
+				    m_buffer_prd_ct_list[p_cfg.name]->startCnt();
+				    break;
+          default:
 				    break;
 			  }
 			  break;
@@ -1023,6 +1177,11 @@ void NI6602_Interface::stopCounter(CounterConfig p_cfg)
 				    m_scalar_dt_ct_list[p_cfg.name]->stop();
 				    m_scalar_dt_ct_list[p_cfg.name]->release();
 				    break;
+			    case COUNTER_MODE_PERIOD:
+            //- from NI660XSl
+				    m_scalar_prd_ct_list[p_cfg.name]->stop();
+				    m_scalar_prd_ct_list[p_cfg.name]->release();
+				    break;
           default:
 				    break;
 			  }
@@ -1040,6 +1199,9 @@ void NI6602_Interface::stopCounter(CounterConfig p_cfg)
 				  case COUNTER_MODE_DELTATIME:
 					  m_buffer_dt_ct_list[p_cfg.name]->stopCnt();
 					  break;
+				  case COUNTER_MODE_PERIOD:
+					  m_buffer_prd_ct_list[p_cfg.name]->stopCnt();
+					  break;
           default:
 					  break;
 				}
@@ -1301,6 +1463,7 @@ Tango::DevState NI6602_Interface::getCounterState(CounterConfig p_cfg)
 
   bool l_overrun = false;
   bool l_timedout = false;
+  bool l_storageErr = false; // soso crash rock
 
 
 	switch (m_acq_mode)
@@ -1314,7 +1477,7 @@ Tango::DevState NI6602_Interface::getCounterState(CounterConfig p_cfg)
             if (m_scalar_pos_ct_list[p_cfg.name])
             {
               // get underlying counter state
-				      l_state =  m_scalar_pos_ct_list[p_cfg.name]->state();
+				      l_state = m_scalar_pos_ct_list[p_cfg.name]->state();
             }
             else
             {
@@ -1353,6 +1516,24 @@ Tango::DevState NI6602_Interface::getCounterState(CounterConfig p_cfg)
 				      l_state = m_scalar_dt_ct_list[p_cfg.name]->state();
             }
             else
+            {
+              l_state = ni660Xsl::InputOperation::UNKNOWN;
+            }
+			    }
+			    catch (...)
+			    {
+				    l_state = -1;
+			    }
+			    break;
+		    case COUNTER_MODE_PERIOD:
+			    try
+			    {
+            if (m_scalar_prd_ct_list[p_cfg.name])
+            {
+              // get underlying counter state
+				      l_state = m_scalar_prd_ct_list[p_cfg.name]->state();
+            }
+            else
             {
               l_state = ni660Xsl::InputOperation::UNKNOWN;
             }
@@ -1379,9 +1560,10 @@ Tango::DevState NI6602_Interface::getCounterState(CounterConfig p_cfg)
             // get underlying counter state
 				    l_state = m_buffer_pos_ct_list[p_cfg.name]->state();
 
-            // get buffering errors (overrun or timeout)
+            // get buffering errors (overrun, timeout or storage error)
             l_overrun = m_buffer_pos_ct_list[p_cfg.name]->isOverrun();
             l_timedout = m_buffer_pos_ct_list[p_cfg.name]->isTimedout();
+            l_storageErr = m_buffer_pos_ct_list[p_cfg.name]->isStorageKO(); // soso crash rock
           }
           else
           {
@@ -1402,9 +1584,10 @@ Tango::DevState NI6602_Interface::getCounterState(CounterConfig p_cfg)
             // get underlying counter state
 				    l_state = m_buffer_evt_ct_list[p_cfg.name]->state();
 
-            // get buffering errors (overrun or timeout)
+            // get buffering errors (overrun, timeout or storage error)
             l_overrun = m_buffer_evt_ct_list[p_cfg.name]->isOverrun();
             l_timedout = m_buffer_evt_ct_list[p_cfg.name]->isTimedout();
+            l_storageErr = m_buffer_evt_ct_list[p_cfg.name]->isStorageKO(); // soso crash rock
           }
           else
           {
@@ -1424,9 +1607,33 @@ Tango::DevState NI6602_Interface::getCounterState(CounterConfig p_cfg)
             // get underlying counter state
 				    l_state = m_buffer_dt_ct_list[p_cfg.name]->state();
 
-            // get buffering errors (overrun or timeout)
+            // get buffering errors (overrun, timeout or storage error)
             l_overrun = m_buffer_dt_ct_list[p_cfg.name]->isOverrun();
             l_timedout = m_buffer_dt_ct_list[p_cfg.name]->isTimedout();
+            l_storageErr = m_buffer_dt_ct_list[p_cfg.name]->isStorageKO(); // soso crash rock
+          }
+          else
+          {
+            l_state = ni660Xsl::InputOperation::UNKNOWN;
+          }
+			  }
+			  catch (...)
+			  {
+				  l_state = -1;
+			  }
+			  break;
+		  case COUNTER_MODE_PERIOD:
+			  try
+			  {
+          if (m_buffer_prd_ct_list[p_cfg.name])
+          {
+            // get underlying counter state
+				    l_state = m_buffer_prd_ct_list[p_cfg.name]->state();
+
+            // get buffering errors (overrun, timeout or storage error)
+            l_overrun = m_buffer_prd_ct_list[p_cfg.name]->isOverrun();
+            l_timedout = m_buffer_prd_ct_list[p_cfg.name]->isTimedout();
+            l_storageErr = m_buffer_prd_ct_list[p_cfg.name]->isStorageKO(); // soso crash rock
           }
           else
           {
@@ -1478,6 +1685,9 @@ Tango::DevState NI6602_Interface::getCounterState(CounterConfig p_cfg)
   if (l_timedout)
     l_val = Tango::DISABLE;
 
+  if (l_storageErr) // soso crash rock
+    l_val = Tango::FAULT;
+
 	return l_val;
 }
 
@@ -1521,6 +1731,16 @@ data_t NI6602_Interface::getCounterScalarValue(CounterConfig p_cfg)
 			  l_val = -1;
 		  }
 		  break;
+	  case COUNTER_MODE_PERIOD:
+		  try
+		  {
+			  l_val = m_scalar_prd_ct_list[p_cfg.name]->get_current_scaled_value();
+		  }
+		  catch (...)
+		  {
+			  l_val = -1;
+		  }
+		  break;
     default:
 		  break;
 	}
@@ -1553,6 +1773,12 @@ RawData_t & NI6602_Interface::getCounterBufferValue(CounterConfig p_cfg)
 		    return m_buffer_dt_ct_list[p_cfg.name]->get_value();
 		  }
 		  break;
+	  case COUNTER_MODE_PERIOD:
+		  if (m_buffer_prd_ct_list[p_cfg.name] != NULL)
+		  {
+		    return m_buffer_prd_ct_list[p_cfg.name]->get_value();
+		  }
+		  break;
     default:
       THROW_DEVFAILED(
          _CPTC("CONFIGURATION_ERROR"), 
@@ -1594,6 +1820,12 @@ void NI6602_Interface::updateCounterBufferValue(CounterConfig p_cfg)
         m_buffer_dt_ct_list[p_cfg.name]->updateRawBuffer();
 		  }
 		  break;
+	  case COUNTER_MODE_PERIOD:
+		  if (m_buffer_prd_ct_list[p_cfg.name] != NULL)
+		  {
+        m_buffer_prd_ct_list[p_cfg.name]->updateRawBuffer();
+		  }
+		  break;
     default:
 		  break;
 	}
@@ -1688,6 +1920,16 @@ void NI6602_Interface::releaseCounter(CounterConfig p_cfg)
 			    m_scalar_dt_ct_list[p_cfg.name] = NULL;
 		    }
 		    break;
+	    case COUNTER_MODE_PERIOD:
+		    if (m_scalar_prd_ct_list[p_cfg.name])
+		    {
+			    m_scalar_prd_ct_list[p_cfg.name]->stop();
+			    m_scalar_prd_ct_list[p_cfg.name]->release();
+
+			    delete m_scalar_prd_ct_list[p_cfg.name];
+			    m_scalar_prd_ct_list[p_cfg.name] = NULL;
+		    }
+		    break;
       default:
 		    break;
 	  }
@@ -1724,6 +1966,15 @@ void NI6602_Interface::releaseCounter(CounterConfig p_cfg)
 			    m_buffer_dt_ct_list[p_cfg.name] = NULL;
 		    }
 		    break;
+	    case COUNTER_MODE_PERIOD:
+		    if (m_buffer_prd_ct_list[p_cfg.name])
+		    {
+			    m_buffer_prd_ct_list[p_cfg.name]->stopCnt();
+
+			    delete m_buffer_prd_ct_list[p_cfg.name];
+			    m_buffer_prd_ct_list[p_cfg.name] = NULL;
+		    }
+		    break;
       default:
 		    break;
 	  }
diff --git a/src/NI6602_Interface.h b/src/NI6602_Interface.h
index 2f3085a..c8ca799 100644
--- a/src/NI6602_Interface.h
+++ b/src/NI6602_Interface.h
@@ -16,9 +16,11 @@
 #include "BufferedCounterEvt.h"
 #include "BufferedCounterPos.h"
 #include "BufferedCounterDt.h"
+#include "BufferedCounterPeriod.h"
 #include <NI660Xsl/SimpleEventCounting.h>
 #include <NI660Xsl/SimplePositionMeasurement.h>
 #include <NI660Xsl/SimpleDTMeasurement.h>
+#include <NI660Xsl/SimplePeriodMeasurement.h>
 #include <NI660Xsl/FinitePulseTrainGeneration.h>
 #include <NI660Xsl/ContinuousPulseTrainGeneration.h>
 
@@ -134,6 +136,9 @@ private:
   // buffer dt counter
 	std::map<std::string, BufferedCounterDt *> m_buffer_dt_ct_list;
 
+  // buffer period counter
+	std::map<std::string, BufferedCounterPeriod *> m_buffer_prd_ct_list;
+
 	// max counter number
 	unsigned int m_max_nb_ct;
 
@@ -146,6 +151,9 @@ private:
 	// simple dt measurement
 	std::map<std::string, ni660Xsl::SimpleDTMeasurement *> m_scalar_dt_ct_list;
 
+	// simple period measurement
+	std::map<std::string, ni660Xsl::SimplePeriodMeasurement *> m_scalar_prd_ct_list;
+
 	// finite clock
 	ni660Xsl::FinitePulseTrainGeneration * m_scalar_finite_clock;
 
diff --git a/src/NexusManager.cpp b/src/NexusManager.cpp
index 9f7f5e8..f57a1f7 100644
--- a/src/NexusManager.cpp
+++ b/src/NexusManager.cpp
@@ -21,7 +21,8 @@ NexusManager::NexusManager (Tango::DeviceImpl * host_device)
 : Tango::LogAdapter(host_device),
   m_pAcqWriter(NULL),
   m_finalizeDone(true),
-  m_finiteStorage(false)
+  m_finiteStorage(false),
+  m_excptOccured(false)
 #if defined (USE_NX_DS_FINALIZER)
   ,
   m_NexusDataStreamerFinalizer(NULL)
@@ -97,6 +98,7 @@ void NexusManager::initNexusAcquisition(std::string nexus_file_path,
   throw (Tango::DevFailed)
 {
   m_finalizeDone = false;
+  m_excptOccured = false;
 
   try
   {
diff --git a/src/NexusManager.h b/src/NexusManager.h
index e599a16..c303a7a 100644
--- a/src/NexusManager.h
+++ b/src/NexusManager.h
@@ -82,7 +82,7 @@ typedef nxItemList_t::iterator nxItemList_it_t;
 // ============================================================================
 // class: NexusManager
 // ============================================================================
-class NexusManager : public Tango::LogAdapter
+class NexusManager : public Tango::LogAdapter, nxcpp::IExceptionHandler
 {
 public:
 
@@ -192,6 +192,19 @@ public:
     return !(this->m_finalizeDone);
   }
 
+  //- Gets Nexus storage exception
+  bool hasStorageError()
+  {
+    return m_excptOccured;
+  }
+
+  // Nexus exception handler
+  void OnNexusException(const nxcpp::NexusException &e)
+  {
+    ERROR_STREAM << "NexusManager::OnNexusException() called!" << std::endl;
+	e.dump();
+    m_excptOccured = true;
+  }
 
 protected:
   
@@ -217,7 +230,9 @@ protected:
 
   //- list of items to store
   nxItemList_t m_itemList;
-  
+
+  //- nexus exception flag
+  bool m_excptOccured;
 };
 
 } // namespace PulseCounting_ns
diff --git a/src/PeriodCounter.cpp b/src/PeriodCounter.cpp
new file mode 100644
index 0000000..1244f4b
--- /dev/null
+++ b/src/PeriodCounter.cpp
@@ -0,0 +1,349 @@
+//=============================================================================
+// PeriodCounter.cpp
+//=============================================================================
+// abstraction.......PeriodCounter for PulseCounting
+// class.............PeriodCounter
+// original author...S.Minolli - Nexeya
+//=============================================================================
+
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <yat4tango/LogHelper.h>
+#include "PeriodCounter.h"
+
+namespace PulseCounting_ns
+{
+
+	//- check manager macro:
+#define CHECK_INTERFACE() \
+	do \
+	{ \
+	if (! m_interface) \
+	THROW_DEVFAILED(_CPTC("DEVICE_ERROR"), \
+	_CPTC("request aborted - the interface isn't accessible "), \
+	_CPTC("PeriodCounter::check_interface")); \
+} while (0)
+
+
+// ============================================================================
+// PeriodCounter::PeriodCounter ()
+// ============================================================================ 
+PeriodCounter::PeriodCounter (Tango::DeviceImpl * hostDevice, E_AcquisitionMode_t p_acq_mode, CountingBoardInterface * p_board)
+: GenericCounterInterface(hostDevice)
+{
+	m_is_available = true;
+	m_state = Tango::STANDBY;
+	m_acq_mode = p_acq_mode;
+	m_interface = p_board;
+	m_value = 0;
+}
+
+// ============================================================================
+// PeriodCounter::~PeriodCounter ()
+// ============================================================================ 
+PeriodCounter::~PeriodCounter ()
+{
+
+}
+
+// ============================================================================
+// PeriodCounter::is_available ()
+// ============================================================================ 
+bool PeriodCounter::is_available()
+{
+	return m_is_available;
+}
+
+// ============================================================================
+// PeriodCounter::init ()
+// ============================================================================ 
+void PeriodCounter::init(CounterConfig p_cfg)
+  throw (Tango::DevFailed)
+{
+	m_cfg = p_cfg;
+
+  CHECK_INTERFACE();
+
+	try
+	{
+		m_interface->initCounter(m_cfg);
+	}
+	catch (Tango::DevFailed &e)
+	{
+		ERROR_STREAM << e << std::endl;
+		RETHROW_DEVFAILED(e, 
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to initialize period counter!"), 
+			_CPTC("PeriodCounter::init")); 
+	}
+	catch (...)
+	{
+		ERROR_STREAM << "Failed to initialize period counter!" << std::endl;
+		THROW_DEVFAILED(
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to initialize period counter!"), 
+			_CPTC("PeriodCounter::init")); 
+	}
+}
+
+// ============================================================================
+// PeriodCounter::configure ()
+// ============================================================================ 
+void PeriodCounter::configure(CounterConfig p_cfg)
+  throw (Tango::DevFailed)
+{
+	m_cfg = p_cfg;
+
+  CHECK_INTERFACE();
+
+	try
+	{
+		m_interface->configureCounter(m_cfg);
+	}
+	catch (Tango::DevFailed &e)
+	{
+		ERROR_STREAM << e << std::endl;
+		RETHROW_DEVFAILED(e, 
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to configure period counter!"), 
+			_CPTC("PeriodCounter::configure")); 
+	}
+	catch (...)
+	{
+		ERROR_STREAM << "Failed to configure period counter!" << std::endl;
+		THROW_DEVFAILED(
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to configure period counter!"), 
+			_CPTC("PeriodCounter::configure")); 
+	}
+}
+
+// ============================================================================
+// PeriodCounter::start ()
+// ============================================================================ 
+void PeriodCounter::start()
+  throw (Tango::DevFailed)
+{
+  CHECK_INTERFACE();
+
+	try
+	{
+		m_interface->startCounter(m_cfg);
+	}
+	catch (Tango::DevFailed &e)
+	{
+		ERROR_STREAM << e << std::endl;
+		RETHROW_DEVFAILED(e, 
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to start period counter"), 
+			_CPTC("PeriodCounter::start")); 
+	}
+	catch (...)
+	{
+		ERROR_STREAM << "Failed to start period counter" << std::endl;
+		THROW_DEVFAILED(
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to start period counter"), 
+			_CPTC("PeriodCounter::start")); 
+	}
+	m_state = Tango::RUNNING;
+}
+
+// ============================================================================
+// PeriodCounter::stop ()
+// ============================================================================ 
+void PeriodCounter::stop()
+  throw (Tango::DevFailed)
+{
+  CHECK_INTERFACE();
+
+	try
+	{
+		m_interface->stopCounter(m_cfg);
+	}
+	catch (Tango::DevFailed &e)
+	{
+		ERROR_STREAM << e << std::endl;
+		RETHROW_DEVFAILED(e, 
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to stop period counter"), 
+			_CPTC("PeriodCounter::stop")); 
+	}
+	catch (...)
+	{
+		ERROR_STREAM << "Failed to stop period counter" << std::endl;
+		THROW_DEVFAILED(
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to stop period counter"), 
+			_CPTC("PeriodCounter::stop")); 
+	}
+	m_state = Tango::STANDBY;
+}
+
+// ============================================================================
+// PeriodCounter::get_state ()
+// ============================================================================ 
+Tango::DevState PeriodCounter::get_state()
+  throw (Tango::DevFailed)
+{
+  CHECK_INTERFACE();
+
+	try
+	{
+		return m_interface->getCounterState(m_cfg);
+	}
+	catch (Tango::DevFailed &e)
+	{
+		ERROR_STREAM << e << std::endl;
+		RETHROW_DEVFAILED(e, 
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to get period counter state!"), 
+			_CPTC("PeriodCounter::get_state")); 
+	}
+	catch (...)
+	{
+		ERROR_STREAM << "Failed to get period counter state!" << std::endl;
+		THROW_DEVFAILED(
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to get period counter state!"), 
+			_CPTC("PeriodCounter::get_state")); 
+	}
+}
+
+// ============================================================================
+// PeriodCounter::update_scalar_value ()
+// ============================================================================ 
+void PeriodCounter::update_scalar_value()
+  throw (Tango::DevFailed)
+{
+  CHECK_INTERFACE();
+
+	try
+	{
+    yat::AutoMutex<> guard(this->m_dataLock);
+		m_value = m_interface->getCounterScalarValue(m_cfg);
+	}
+	catch (Tango::DevFailed &e)
+	{
+		ERROR_STREAM << e << std::endl;
+		RETHROW_DEVFAILED(e,
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to update scalar period counter value!"), 
+			_CPTC("PeriodCounter::update_scalar_value")); 
+	}
+	catch (...)
+	{
+		ERROR_STREAM << "Failed to update scalar period counter value!" << std::endl;
+		THROW_DEVFAILED(
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to update scalar period counter value!"), 
+			_CPTC("PeriodCounter::update_scalar_value")); 
+	}
+}
+
+// ============================================================================
+// PeriodCounter::update_buffer_value ()
+// ============================================================================ 
+void PeriodCounter::update_buffer_value()
+  throw (Tango::DevFailed)
+{
+  CHECK_INTERFACE();
+
+	try
+	{
+    m_interface->updateCounterBufferValue(m_cfg);
+	}
+	catch (Tango::DevFailed &e)
+	{
+		ERROR_STREAM << e << std::endl;
+		RETHROW_DEVFAILED(e,
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to update buffer period counter value!"), 
+			_CPTC("PeriodCounter::update_buffer_value")); 
+	}
+	catch (...)
+	{
+		ERROR_STREAM << "Failed to update buffer period counter value!" << std::endl;
+		THROW_DEVFAILED(
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to update buffer period counter value!"), 
+			_CPTC("PeriodCounter::update_buffer_value")); 
+	}
+}
+
+// ============================================================================
+// PeriodCounter::get_scalar_value ()
+// ============================================================================ 
+data_t PeriodCounter::get_scalar_value()
+{
+  yat::AutoMutex<> guard(this->m_dataLock);
+	return m_value;
+}
+
+// ============================================================================
+// PeriodCounter::get_buffer_value ()
+// ============================================================================ 
+RawData_t PeriodCounter::get_buffer_value()
+  throw (Tango::DevFailed)
+{
+  CHECK_INTERFACE();
+
+	try
+	{
+		return m_interface->getCounterBufferValue(m_cfg);
+	}
+	catch (Tango::DevFailed &e)
+	{
+		ERROR_STREAM << e << std::endl;
+		RETHROW_DEVFAILED(e, 
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to get period counter buffer value"), 
+			_CPTC("PeriodCounter::get_buffer_value")); 
+	}
+	catch (...)
+	{
+		ERROR_STREAM << "Failed to get period counter buffer value" << std::endl;
+		THROW_DEVFAILED(
+      _CPTC("DEVICE_ERROR"), 
+			_CPTC("Failed to get period counter buffer value"), 
+			_CPTC("PeriodCounter::get_buffer_value")); 
+	}
+}
+
+// ============================================================================
+// PeriodCounter::get_name ()
+// ============================================================================ 
+std::string PeriodCounter::get_name()
+{
+	return m_cfg.name;
+}
+
+// ============================================================================
+// PeriodCounter::get_config ()
+// ============================================================================ 
+CounterConfig PeriodCounter::get_config()
+{
+	return m_cfg;
+}
+
+// ============================================================================
+// PeriodCounter::deleteObject ()
+// ============================================================================ 
+void PeriodCounter::deleteObject()
+  throw (Tango::DevFailed)
+{
+  CHECK_INTERFACE();
+
+	try
+	{
+		m_interface->releaseCounter(m_cfg);
+  }
+  catch(...)
+  {
+  }
+}
+
+} // namespace PulseCounting_ns
+
diff --git a/src/PeriodCounter.h b/src/PeriodCounter.h
new file mode 100644
index 0000000..a2cd631
--- /dev/null
+++ b/src/PeriodCounter.h
@@ -0,0 +1,91 @@
+//=============================================================================
+// PeriodCounter.h
+//=============================================================================
+// abstraction.......PeriodCounter for PulseCounting
+// class.............PeriodCounter
+// original author...S.Minolli - Nexeya
+//=============================================================================
+
+#ifndef _PERIOD_COUNTER_H
+#define _PERIOD_COUNTER_H
+
+// ============================================================================
+// DEPENDENCIES
+// ============================================================================
+#include <yat4tango/LogHelper.h>
+#include "PulseCountingTypesAndConsts.h"
+#include "GenericCounterInterface.h"
+
+namespace PulseCounting_ns
+{
+
+// ============================================================================
+// class: PeriodCounter
+// ============================================================================
+class PeriodCounter  : public GenericCounterInterface
+{
+
+public:
+
+  //- constructor
+  PeriodCounter (Tango::DeviceImpl * hostDevice, E_AcquisitionMode_t p_acq_mode, CountingBoardInterface * p_board);
+
+  //- destructor
+  virtual ~PeriodCounter ();
+  
+  //- is available?
+  bool is_available();
+
+  //- init
+  void init(CounterConfig p_cfg)
+	  throw (Tango::DevFailed);
+
+  //- configure
+  void configure(CounterConfig p_cfg)
+	  throw (Tango::DevFailed);
+
+  //- start
+  void start()
+	  throw (Tango::DevFailed);
+
+  //- stop
+  void stop()
+	  throw (Tango::DevFailed);
+
+  //- release counter
+  void deleteObject()
+    throw (Tango::DevFailed);
+
+  //- get State
+  Tango::DevState get_state()
+	  throw (Tango::DevFailed);
+	  
+  //- update scalar value
+  void update_scalar_value()
+	  throw (Tango::DevFailed);
+	  
+  //- update buffer value (used in "polling" mode)
+  void update_buffer_value()
+	  throw (Tango::DevFailed);
+	  
+  //- get scalar value
+  data_t get_scalar_value();
+	  
+  //- get buffer value
+  RawData_t get_buffer_value()
+	  throw (Tango::DevFailed);
+
+  //- get name
+  std::string get_name()
+	  throw (Tango::DevFailed);
+
+  //- get config
+  CounterConfig get_config()
+	  throw (Tango::DevFailed);
+  
+protected:
+};
+
+} // namespace PulseCounting_ns
+
+#endif // _PERIOD_COUNTER_H
diff --git a/src/PulseCounting.cpp b/src/PulseCounting.cpp
index 6beccf9..673588a 100644
--- a/src/PulseCounting.cpp
+++ b/src/PulseCounting.cpp
@@ -620,7 +620,14 @@ void PulseCounting::get_device_property()
           l_cfg.dt_unitStr = config_parser.extractUnitStr(l_keys);
 					l_cfg.memTranfer = config_parser.extractMemoryTransfer(l_keys);
         }
-				else
+        else if (l_cfg.mode == COUNTER_MODE_PERIOD)
+        {
+					l_cfg.edge = config_parser.extractEdge(l_keys);
+          l_cfg.dt_unit = config_parser.extractUnit(l_keys);
+          l_cfg.dt_unitStr = config_parser.extractUnitStr(l_keys);
+					l_cfg.memTranfer = config_parser.extractMemoryTransfer(l_keys);
+        }
+        else
 				{
 					if (l_cfg.mode == COUNTER_MODE_POSITION)
 					{
diff --git a/src/PulseCountingManager.cpp b/src/PulseCountingManager.cpp
index e8896c6..29e9bf0 100644
--- a/src/PulseCountingManager.cpp
+++ b/src/PulseCountingManager.cpp
@@ -662,8 +662,10 @@ void PulseCountingManager::add_attributes(CounterConfig p_cfg)
 {
 	CHECK_MANAGER_DYN_ATTR_MANAGER();
 
-  // Do not create pulse width attributes for DT counters: unavailable function
-  if (p_cfg.mode == COUNTER_MODE_DELTATIME)
+  // Do not create pulse width attributes for DT & PERIOD counters: unavailable function
+  if ((p_cfg.mode == COUNTER_MODE_DELTATIME) || 
+      (p_cfg.mode == COUNTER_MODE_PERIOD))
+
   {
     return;
   }
diff --git a/src/PulseCountingManagerBuffered.cpp b/src/PulseCountingManagerBuffered.cpp
index dc1c3ee..df72159 100644
--- a/src/PulseCountingManagerBuffered.cpp
+++ b/src/PulseCountingManagerBuffered.cpp
@@ -296,8 +296,15 @@ void PulseCountingManagerBuffered::periodic_job_i()
 					}
 				}
 
-				// if one counter in FAULT or ALARM, stop counting process
-				if (acq_error)
+				// check nexus error
+				if (this->m_nexus_manager->hasStorageError())
+				{
+				  m_status = "Nexus exception handled, acquisition stopped!\n";
+				}
+
+				// if one counter in FAULT or ALARM,
+				// or if nexus error, stop counting process
+				if (acq_error || (this->m_nexus_manager->hasStorageError()))
 				{
 					m_state = Tango::FAULT;
           this->m_requestedStop = true;
@@ -383,8 +390,15 @@ void PulseCountingManagerBuffered::periodic_job_i()
 					}
 				}
 
-				// if one counter in FAULT or ALARM, stop counting process
-				if (acq_error)
+				// check nexus error
+				if (this->m_nexus_manager->hasStorageError())
+				{
+				  m_status = "Nexus exception handled, acquisition stopped!\n";
+				}
+
+				// if one counter in FAULT or ALARM, 
+				// or if nexus error, stop counting process
+				if (acq_error || (this->m_nexus_manager->hasStorageError()))
 				{
 					m_state = Tango::FAULT;
           this->m_requestedStop = true;
diff --git a/src/PulseCountingTypesAndConsts.h b/src/PulseCountingTypesAndConsts.h
index e4c156e..ec5262b 100644
--- a/src/PulseCountingTypesAndConsts.h
+++ b/src/PulseCountingTypesAndConsts.h
@@ -99,7 +99,8 @@ typedef enum
 	UNDEFINED_COUNTER_MODE  = 0x0,
 	COUNTER_MODE_EVENT      = 0x1,
 	COUNTER_MODE_POSITION   = 0x2,
-  COUNTER_MODE_DELTATIME  = 0x3
+  COUNTER_MODE_DELTATIME  = 0x3,
+  COUNTER_MODE_PERIOD     = 0x4
 } E_CounterMode_t;
 
 // ============================================================================
@@ -897,7 +898,7 @@ static std::vector<std::string> define_config_counter_example()
 {
 	std::vector<std::string> config;
 	config.push_back("Name:-- Counter name --");
-	config.push_back("Mode:-- POS / EVT / DT --");
+	config.push_back("Mode:-- POS / EVT / DT / PERIOD --");
 	config.push_back("Transfer:-- [ITR] / DMA (for buffered) -- optionnal --");
 	config.push_back("EdgeType:-- Falling / Rising --");
   config.push_back("2ndEdgeType:-- DTonly --> Falling / Rising --");
diff --git a/src/main.cpp b/src/main.cpp
index cb630b5..ea7d8d8 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -37,10 +37,20 @@ static const char *RcsId = "$Id $";
 #include <tango.h>
 #include <ace/ACE.h> // for timeout management in NI660XSl
 
+#if defined(ENABLE_CRASH_REPORT)
+# include <crashreporting/crash_report.h>
+#else
+# define DECLARE_CRASH_HANDLER
+# define INSTALL_CRASH_HANDLER
+#endif
+
+DECLARE_CRASH_HANDLER;
+
 int main(int argc,char *argv[])
 {
-
-	Tango::Util *tg;
+	INSTALL_CRASH_HANDLER;
+	
+	Tango::Util *tg = 0;
 	try
 	{
 		// Initialise the device server
-- 
GitLab