summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xapplication/agent/inc/eventListener.h33
-rw-r--r--application/agent/src/eventListener.cpp287
2 files changed, 87 insertions, 233 deletions
diff --git a/application/agent/inc/eventListener.h b/application/agent/inc/eventListener.h
index f281af9430..cde11cf12c 100755
--- a/application/agent/inc/eventListener.h
+++ b/application/agent/inc/eventListener.h
@@ -24,32 +24,33 @@
*/
-class eventListener //: public commonThread
-
+class eventListener //: public commonThread
+
{
public:
- virtual ~eventListener();
-
- virtual void run();
-
+ virtual ~eventListener();
+
+ virtual void run();
+
/////////////////////////////////////////////////////////////////////
- // Singleton static accessor
- static eventListener* instance();
+ // Singleton static accessor
+ static eventListener* instance();
private:
eventListener();
- /**
+ /**
* Build the event detected
- */
- bool buildHostUpDown(unsigned int iHostId, uint8_t mac_addr[], bool isActive);
- bool buildMaxAttenuation(unsigned int iHostId, uint8_t mac_addr[], bool isActive);
- bool buildMaxNoise(unsigned int iHostId, uint8_t mac_addr[], bool isActive);
- static eventListener* m_instance_p;
-
- eventListenerSocket* m_socket;
+ */
+ bool buildHostUpDown(unsigned int iHostId, uint8_t mac_addr[], bool isActive);
+ bool buildMaxAttenuation(unsigned int iHostId, uint8_t mac_addr[], bool isActive);
+ bool buildMaxNoise(unsigned int iHostId, uint8_t mac_addr[], bool isActive);
+ bool buildEventForTrap(unsigned int iHostId, uint8_t mac_addr[], bool isActive, unsigned int type);
+ static eventListener* m_instance_p;
+
+ eventListenerSocket* m_socket;
};
diff --git a/application/agent/src/eventListener.cpp b/application/agent/src/eventListener.cpp
index e0b0d9ce7e..2a0e1795c8 100644
--- a/application/agent/src/eventListener.cpp
+++ b/application/agent/src/eventListener.cpp
@@ -233,242 +233,95 @@ eventListener* eventListener::instance()
-
-
+bool eventListener::buildHostUpDown(unsigned int iHostId, uint8_t mac_addr[], bool isActive)
+{
+ return buildEventForTrap(iHostId, mac_addr, isActive, 2);
+}
+bool eventListener::buildMaxAttenuation(unsigned int iHostId, uint8_t mac_addr[], bool isActive)
+{
+ return buildEventForTrap(iHostId, mac_addr, isActive, 3);
+}
-bool eventListener::buildHostUpDown(unsigned int iHostId, uint8_t mac_addr[], bool isActive)
+
+bool eventListener::buildMaxNoise(unsigned int iHostId, uint8_t mac_addr[], bool isActive)
{
-
- bool result = false;
-
- //a plc interface is down
- char* aManagedObject = "modem/interface/plc";
- DEBUG("aManagedObject: "<<aManagedObject <<endl);
-
- //hostId to store in the description
- char aDescription[18];
- sprintf(aDescription, "%02x:%02x:%02x:%02x:%02x:%02x", mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
-
- DEBUG("aDescription: "<<aDescription <<endl);
-
-
- if (strncmp(aDescription, "00:00:00:00:00:00", 17)==0)
- {
- DEBUG("Mac Address is a null host"<<endl);
- return result;
- }
- else
- {
- //long aTime=100;
- time_t aTime;
- time(&aTime);
+ return buildEventForTrap(iHostId, mac_addr, isActive, 4);
+}
+bool eventListener::buildEventForTrap(unsigned int iHostId, uint8_t mac_addr[], bool isActive, unsigned int type)
+{
+ bool result = false;
- //remote node transmission error
- unsigned long aPbCause = 25;
-
- AlarmObjectModel::alarmStatus aAlarmStatus;
- //alarm clear
- if (isActive)
- aAlarmStatus = (AlarmObjectModel::alarmStatus) 1;
- else
- aAlarmStatus = (AlarmObjectModel::alarmStatus) 2;
-
- //communication error
- AlarmObjectModel::eventType aEvent = (AlarmObjectModel::eventType) 2;
-
-
- //Build the alarm Object
- AlarmObjectModel aAlarmFromEvent(aManagedObject, aPbCause, aEvent, 0 , aAlarmStatus, aTime, aDescription );
+ //
+ char* aManagedObject = "modem/interface/plc";
+ DEBUG("aManagedObject: "<<aManagedObject <<endl);
-
- //If consumer producer: changes are here: put in queue instead of treating
- //The update automatically save the alarms in the file
- const AlarmObjectModel* aALarmMod = AlarmListManager::instance()->updateAlarmList(aAlarmFromEvent);
-
-
- if (0 != aALarmMod)
- {
- trapBuilder aTrapBuilder;
- aTrapBuilder.sendTrap(*aALarmMod);
- DEBUG("Trap should be sent"<<endl);
+ //hostId to store in the description
+ char aDescription[18];
+ sprintf(aDescription, "%02x:%02x:%02x:%02x:%02x:%02x",
+ mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
- // alarm has been removed from the list if its status is clear => delete alarm object
- if (aALarmMod->getAlarmStatus() == 2)
- {
- delete(aALarmMod);
- aALarmMod = NULL;
- }
+ DEBUG("aDescription: "<<aDescription <<endl);
- result = true;
- }
- else
+
+ if (strncmp(aDescription, "00:00:00:00:00:00", 17)==0)
{
- DEBUG( "Alarm returned by udpate is NULL !!!"<<endl);
+ DEBUG("Mac Address is a null host"<<endl);
+ return result;
}
- return result;
-
- }// if strncmp...
-}
+ else
+ {
+ //long aTime=100;
+ time_t aTime;
+ time(&aTime);
-bool eventListener::buildMaxAttenuation(unsigned int iHostId, uint8_t mac_addr[],
- bool isActive)
-{
-
- bool result = false;
-
- //
- char* aManagedObject = "modem/interface/plc";
- DEBUG("aManagedObject: "<<aManagedObject <<endl);
-
- //hostId to store in the description
- char aDescription[18];
- sprintf(aDescription, "%02x:%02x:%02x:%02x:%02x:%02x",
- mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
-
- DEBUG("aDescription: "<<aDescription <<endl);
-
-
- if (strncmp(aDescription, "00:00:00:00:00:00", 17)==0)
- {
- DEBUG("Mac Address is a null host"<<endl);
- return result;
- }
- else
- {
- //long aTime=100;
- time_t aTime;
- time(&aTime);
+ //remote node transmission error
+ unsigned long aPbCause = 25;
- //remote node transmission error
- unsigned long aPbCause = 25;
-
- AlarmObjectModel::alarmStatus aAlarmStatus;
- //alarm clear
- if (isActive)
- aAlarmStatus = (AlarmObjectModel::alarmStatus) 1;
- else
- aAlarmStatus = (AlarmObjectModel::alarmStatus) 2;
-
- //communication error
- AlarmObjectModel::eventType aEvent = (AlarmObjectModel::eventType) 3;
-
-
- //Build the alarm Object
- AlarmObjectModel aAlarmFromEvent(aManagedObject, aPbCause, aEvent, 0,
- aAlarmStatus, aTime, aDescription);
-
-
- //If consumer producer: changes are here: put in queue instead of treating
- //The update automatically save the alarms in the file
- const AlarmObjectModel* aALarmMod =
- AlarmListManager::instance()->updateAlarmList(aAlarmFromEvent);
-
-
- if (0 != aALarmMod)
- {
- trapBuilder aTrapBuilder;
- aTrapBuilder.sendTrap(*aALarmMod);
- DEBUG("Trap should be sent"<<endl);
-
- // alarm has been removed from the list if its status is clear => delete alarm object
- if (aALarmMod->getAlarmStatus() == 2)
- {
- delete(aALarmMod);
- aALarmMod = NULL;
- }
+ AlarmObjectModel::alarmStatus aAlarmStatus;
+ //alarm clear
+ if (isActive)
+ aAlarmStatus = (AlarmObjectModel::alarmStatus) 1;
+ else
+ aAlarmStatus = (AlarmObjectModel::alarmStatus) 2;
- result = true;
- }
- else
- {
- DEBUG( "Alarm returned by udpate is NULL !!!"<<endl);
- }
- return result;
-
- }// if strncmp...
-}
+ //communication error
+ AlarmObjectModel::eventType aEvent = (AlarmObjectModel::eventType) type;
+ //Build the alarm Object
+ AlarmObjectModel aAlarmFromEvent(aManagedObject, aPbCause, aEvent, 0,
+ aAlarmStatus, aTime, aDescription);
-bool eventListener::buildMaxNoise(unsigned int iHostId, uint8_t mac_addr[],
- bool isActive)
-{
-
- bool result = false;
-
- //
- char* aManagedObject = "modem/interface/plc";
- DEBUG("aManagedObject: "<<aManagedObject <<endl);
-
- //hostId to store in the description
- char aDescription[18];
- sprintf(aDescription, "%02x:%02x:%02x:%02x:%02x:%02x",
- mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]);
-
- DEBUG("aDescription: "<<aDescription <<endl);
-
-
- if (strncmp(aDescription, "00:00:00:00:00:00", 17)==0)
- {
- DEBUG("Mac Address is a null host"<<endl);
- return result;
- }
- else
- {
- //long aTime=100;
- time_t aTime;
- time(&aTime);
+ //If consumer producer: changes are here: put in queue instead of treating
+ //The update automatically save the alarms in the file
+ const AlarmObjectModel* aALarmMod =
+ AlarmListManager::instance()->updateAlarmList(aAlarmFromEvent);
- //remote node transmission error
- unsigned long aPbCause = 25;
-
- AlarmObjectModel::alarmStatus aAlarmStatus;
- //alarm clear
- if (isActive)
- aAlarmStatus = (AlarmObjectModel::alarmStatus) 1;
- else
- aAlarmStatus = (AlarmObjectModel::alarmStatus) 2;
-
- //communication error
- AlarmObjectModel::eventType aEvent = (AlarmObjectModel::eventType) 4;
-
-
- //Build the alarm Object
- AlarmObjectModel aAlarmFromEvent(aManagedObject, aPbCause, aEvent, 0,
- aAlarmStatus, aTime, aDescription);
-
-
- //If consumer producer: changes are here: put in queue instead of treating
- //The update automatically save the alarms in the file
- const AlarmObjectModel* aALarmMod =
- AlarmListManager::instance()->updateAlarmList(aAlarmFromEvent);
-
-
- if (0 != aALarmMod)
- {
- trapBuilder aTrapBuilder;
- aTrapBuilder.sendTrap(*aALarmMod);
- DEBUG("Trap should be sent"<<endl);
-
- // alarm has been removed from the list if its status is clear => delete alarm object
- if (aALarmMod->getAlarmStatus() == 2)
- {
- delete(aALarmMod);
- aALarmMod = NULL;
- }
+ if (0 != aALarmMod)
+ {
+ trapBuilder aTrapBuilder;
+ aTrapBuilder.sendTrap(*aALarmMod);
+ DEBUG("Trap should be sent"<<endl);
- result = true;
- }
- else
- {
- DEBUG( "Alarm returned by udpate is NULL !!!"<<endl);
- }
- return result;
-
- }// if strncmp...
+ // alarm has been removed from the list if its status is clear => delete alarm object
+ if (aALarmMod->getAlarmStatus() == 2)
+ {
+ delete(aALarmMod);
+ aALarmMod = NULL;
+ }
+
+ result = true;
+ }
+ else
+ {
+ DEBUG( "Alarm returned by udpate is NULL !!!"<<endl);
+ }
+ return result;
+
+ }// if strncmp...
}