diff --git a/src/MetadataExporter.cpp b/src/MetadataExporter.cpp
index 125baec0a451646b3b0dc6f7386785e5b13f7dbb..1d8deaa1208ef2805f9d3e071d80e021e7ebaa10 100644
--- a/src/MetadataExporter.cpp
+++ b/src/MetadataExporter.cpp
@@ -549,14 +549,14 @@ void MetadataExporter::on()
}
catch(std::exception& ex)
{
- set_state(Tango::FAULT);
+ set_state(Tango::ALARM);
std::stringstream error_stream;
error_stream << "MetadataExporter::On() " << ex.what() << std::endl;
set_status(error_stream.str());
}
catch(...)
{
- set_state(Tango::FAULT);
+ set_state(Tango::ALARM);
set_status("MetadataExporter::On() unknown error");
}
@@ -581,14 +581,14 @@ void MetadataExporter::off()
}
catch(std::exception& ex)
{
- set_state(Tango::FAULT);
+ set_state(Tango::ALARM);
std::stringstream error_stream;
error_stream << "MetadataExporter::Off() " << ex.what() << std::endl;
set_status(error_stream.str());
}
catch(...)
{
- set_state(Tango::FAULT);
+ set_state(Tango::ALARM);
set_status("MetadataExporter::Off() unknown error");
}
diff --git a/src/MetadataExporter.xmi b/src/MetadataExporter.xmi
index e6e2621255a132684e19540c9539166dec4ceb49..728e265dab9b38ea33f184054b1ece783214fce9 100644
--- a/src/MetadataExporter.xmi
+++ b/src/MetadataExporter.xmi
@@ -117,6 +117,7 @@
ON
FAULT
+ ALARM
@@ -135,7 +136,10 @@
-
+
+
+
+
diff --git a/src/MetadataExporterStateMachine.cpp b/src/MetadataExporterStateMachine.cpp
index e611b63c07ac1911d2a0dde52ebf5df18e7c2911..17814d0b5c97c822d3c597270df33e6ad53007b5 100644
--- a/src/MetadataExporterStateMachine.cpp
+++ b/src/MetadataExporterStateMachine.cpp
@@ -43,7 +43,8 @@
//================================================================
// ON | Metadata exporter is in ON state (ready to incoming connections)
// OFF | Metadata exporter is in OFF state (not ready for incoming connections)
-// FAULT | Metadata exporter is in FAULT state (an error occurred)
+// FAULT | Metadata exporter is in FAULT state (not ready to propagate metadata)
+// ALARM | Metadata exporter is in ALARM state (not ready to propagate metadata)
namespace MetadataExporter_ns
@@ -66,7 +67,8 @@ bool MetadataExporter::is_On_allowed(TANGO_UNUSED(const CORBA::Any &any))
{
// Compare device state with not allowed states.
if (get_state()==Tango::ON ||
- get_state()==Tango::FAULT)
+ get_state()==Tango::FAULT ||
+ get_state()==Tango::ALARM)
{
/*----- PROTECTED REGION ID(MetadataExporter::OnStateAllowed) ENABLED START -----*/