报警组

Navigation:  C++ > 报警管理接口 >

报警组

Previous pageReturn to chapter overviewNext page

 

《报警组》的接口主要包括:

 

am3_add_group

am3_delete_group

am3_modify_group_desc

am3_query_group_child_groups

am3_query_group_child_tags

am3_query_group_props

am3_query_groupid

alarm group

copycode!MISSING PHRASE 'COPYCODE'!

//*Alarm Group Function

 

#include "hdKingAPI.h"

#include "error_code.h"

#include "data_types.h"

#include "hd3Struct.h"

#include <stdio.h>

#include <string.h>

 

int main()

{

 int32 nRet = RD_SUCCESS;

 HD3Connection conn;

 uint32 nOrphenGroupID = 0;

 const int32 ALARM_GROUP_COUNT = 2;

 uint32 nGroupIDs[ALARM_GROUP_COUNT] = {0};

 HD3AlarmGroup alarmGroups[ALARM_GROUP_COUNT];

 memset(alarmGroups, 0, sizeof(alarmGroups));

 int32 nErrCodes[ALARM_GROUP_COUNT];

 HD3PtTagProp normalTag;

 HD3HANDLE hIter = NULL;

 uint32 nChildGroupID = 0;

 uint32 nChildAlarmTagID = 0;

 HD3AlarmTagProp alarmTag;

 int32 i = 0;

 HD3Mask mask;

 uint32 nPtTagID = 0;

 uint32 nAlarmTagID = 0;

 HD3AlarmGroup queryAlarmGroups[ALARM_GROUP_COUNT];

 

 //connect

 strcpy(conn.szAddress, "127.0.0.1");

 conn.nPort = 5673;

 conn.nTimeout = 3;

 nRet = nt3_connect(&conn);

 if (nRet != RD_SUCCESS)

 {

         printf("connect to server failed, error code[%d]!\n", nRet);

         return -1;

 }

 

 //login

 nRet = sc3_login("admin", "admin");

 if (nRet != RD_SUCCESS)

 {

         printf("login failed, error code[%d]!\n", nRet);

         return -1;

 }

 printf("login successful!\n");

 

 //add alarm groups

 for (i = 0; i < ALARM_GROUP_COUNT; i ++)

 {

         sprintf(alarmGroups[i].szName, "alarm_group_name_%d", i);

         sprintf(alarmGroups[i].szDesc, "alarm_group_desc_%d", i);

 

         alarmGroups[i].nParentID = nOrphenGroupID;

         nRet = am3_add_group(alarmGroups+i, &nOrphenGroupID);

         if (nRet != RD_SUCCESS)

         {

                 printf("add alarm group[%s] failed, error code [%d]!\n", alarmGroups[i].szName, nRet);

                 nt3_disconnect();

                 return -1;

         }

         printf("add alarm group[%s] successful!\n",alarmGroups[i].szName);

 }

 

 //query alarm group id

 for (i = 0; i < ALARM_GROUP_COUNT; i ++)

 {

         nRet = am3_query_group_id(alarmGroups[i].szName, alarmGroups[i].nParentID, &(nGroupIDs[i]));

         if (nRet != RD_SUCCESS)

         {

                 printf("query alarm group [%s] id failed, error code [%d]!\n", alarmGroups[i].szName, nRet);

                 nt3_disconnect();

                 return -1;

         }

         printf("query alarm group[%s] id successful!\n",alarmGroups[i].szName);

 }

 

 //query alarm group props

 for (i = 0; i < ALARM_GROUP_COUNT; i ++)

 {

         nRet = am3_query_group_props(ALARM_GROUP_COUNT, nGroupIDs, queryAlarmGroups, nErrCodes);

         if (nRet != RD_SUCCESS)

         {

                 printf("query alarm group [id:%d] prop failed, error code [%d]!\n", nGroupIDs[i], nRet);

                 nt3_disconnect();

                 return -1;

         }

         printf("query alarm group[%d] prop successful!\n",nGroupIDs[i]);

 }

 

 //modify alarm group name and desc

 for (i = 0; i < ALARM_GROUP_COUNT; i ++)

 {

         strcat(alarmGroups[i].szName, "_modify");

         strcat(alarmGroups[i].szDesc, "_modify");

         if (i >= 1)

         {

                 alarmGroups[i].nParentID = nGroupIDs[i - 1];

         }

         nRet = am3_modify_group(nGroupIDs[i], alarmGroups + i);

         if (nRet != RD_SUCCESS)

         {

                 printf("modify alarm group [id:%d] name failed, error code [%d]!\n", nGroupIDs[i], nRet);

                 nt3_disconnect();

                 return -1;

         }

         printf("modify alarm group[id:%d] name successful!\n",nGroupIDs[i]);

 }

 

 //query child alarm group

 for (i = 0; i < ALARM_GROUP_COUNT; i ++)

 {

         nRet = am3_query_group_child_groups(nGroupIDs[i], &hIter);

         if (nRet != RD_SUCCESS)

         {

                 printf("query alarm group [id:%d] child group failed, error code [%d]!\n", nGroupIDs[i], nRet);

                 nt3_disconnect();

                 return -1;

         }        

 

         while (true)

         {

                 nRet = ut3_get_item_step(hIter, &nChildGroupID);

                 if (RD_SUCCESS == nRet)

                 {

                         printf("query alarm group [id:%d] child group successful, child group id %d!\n", nGroupIDs[i], nChildGroupID);

                 }

                 else if (EC_HD_API_QUERY_END == nRet)

                 {

                         printf("query alarm group [id:%d] child group complete!\n", nGroupIDs[i]);

                         break;

                 }

                 else

                 {

                         printf("query alarm group [id:%d] child group, error code [%d]!\n", nGroupIDs[i], nRet);

                         break;

                 }

         }

 

         ut3_free_handle(hIter);

 }

 

 //add normal tag        

 strcpy(normalTag.szTagName, "szNormalTag");

 normalTag.nTagType = HD3_TAG_TYPE_INT32;

 mask.nCommMask = HD3M_COMM_PROP_TAG_NAME | HD3M_COMM_PROP_TAG_TYPE;

 mask.nExtMask = 0;

 nRet = pt3_add_tag(&normalTag, &mask, "", &nPtTagID);

 if (nRet != RD_SUCCESS)

 {

         printf("add tag[%s] failed, error code [%d]!\n", normalTag.szTagName, nRet);

         nt3_disconnect();

         return -1;

 }

 printf("add tag[%s] successful!\n", normalTag.szTagName);

 

 // add alarm tag

 for (i = 0; i < ALARM_GROUP_COUNT; i ++)

 {

         sprintf(alarmTag.szTagName, "alarmTag_%d", i);

         strcpy(alarmTag.szSourceTagName, normalTag.szTagName);

         strcpy(alarmTag.szTest1, "GT(100)");

         strcpy(alarmTag.szAction1, "1_hihi_unack");

         alarmTag.nAlarmGroupID = nGroupIDs[i];

         mask.nCommMask = HD3M_COMM_PROP_TAG_NAME;

         mask.nExtMask = HD3M_AM_EXT_PROP_SOURCE_TAG | HD3M_AM_EXT_PROP_TEST1

                 | HD3M_AM_EXT_PROP_ACTION1 | HD3M_AM_EXT_PROP_ALARM_GROUP_ID;

         nRet = am3_add_tag(&alarmTag, &mask, "", &nAlarmTagID);

         if (nRet != RD_SUCCESS)

         {

                 printf("add alarm tag[%s] failed, error code [%d]!\n", alarmTag.szTagName, nRet);

                 nt3_disconnect();

                 return -1;

         }

         printf("add alarm tag[%s] successful!\n", alarmTag.szTagName);

 }

 

 //query alarm group tag

 for (i = 0; i < ALARM_GROUP_COUNT; i ++)

 {

         nRet = am3_query_group_child_tags(nGroupIDs[i], &hIter);

         if (nRet != RD_SUCCESS)

         {

                 printf("query alarm group [id:%d] child tags failed, error code [%d]!\n", nGroupIDs[i], nRet);

                 nt3_disconnect();

                 return -1;

         }        

 

         while (true)

         {

                 nRet = ut3_get_item_step(hIter, &nChildAlarmTagID);

                 if (RD_SUCCESS == nRet)

                 {

                         printf("query alarm group [id:%d] child tag successful, child tag id %d!\n", nGroupIDs[i], nChildAlarmTagID);

 

                         nRet = tag3_delete_tag(nChildAlarmTagID);

                         if (nRet != RD_SUCCESS)

                         {

                                 printf("delete alarm tag [id:%d] failed, error code [%d]!\n", nChildAlarmTagID, nRet);

                                 ut3_free_handle(hIter);

                                 nt3_disconnect();

                                 return -1;

                         }

                         printf("delete alarm tag [id:%d] successful!\n", nChildAlarmTagID);

                 }

                 else if (EC_HD_API_QUERY_END == nRet)

                 {

                         printf("query alarm group [id:%d] child tag complete!\n", nGroupIDs[i]);

                         break;

                 }

                 else

                 {

                         printf("query alarm group [id:%d] child tag, error code [%d]!\n", nGroupIDs[i], nRet);

                         break;

                 }

         }

 

         ut3_free_handle(hIter);

 }

 //delete alarm groups

 for (i = 0; i < ALARM_GROUP_COUNT; i ++)

 {

         nRet = am3_delete_group(nGroupIDs[ALARM_GROUP_COUNT - i - 1]);

         if (nRet != RD_SUCCESS)

         {

                 printf("delete alarm group [id:%d] failed, error code [%d]!\n", nGroupIDs[ALARM_GROUP_COUNT - i - 1], nRet);

                 nt3_disconnect();

                 return -1;

         }

         printf("delete alarm group [id:%d] successful!\n", nGroupIDs[ALARM_GROUP_COUNT - i - 1]);

 }

 

 //disconnect

 nt3_disconnect();

 return 0;

}

 

//*/

 

©2015. All Rights Reserved.