《报警组》的接口主要包括:
|
|
//*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; }
//*/ |