《报警点》主要接口包括:
▪am3_query_specify_page_tags_cond
alarm tag |
|
///*Alarm Tag 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; HD3PtTagProp normalTag; HD3AlarmTagProp alarmTagSave; HD3AlarmTagProp alarmTagQuery; const char* szTagName_1 = "szAlarmTagName_1"; const char* szTagName_2 = "szAlarmTagName_2"; HD3FilterItem filterItem[2]; HD3FilterItemSet filterSet; HD3HANDLE hIter = NULL; int32 nTagNum = 0; int32 nErrCode = 0; HD3Mask mask; HD3PageQueryTagParam pageQueryParam; uint32 nTagID = 0;
//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 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, "", &normalTag.nTagID); 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 two alarm tag strcpy(alarmTagSave.szTagName, szTagName_1); strcpy(alarmTagSave.szSourceTagName, normalTag.szTagName); strcpy(alarmTagSave.szTest1, "GT(100)"); strcpy(alarmTagSave.szAction1, "1_hihi_unack"); 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; nRet = am3_add_tag(&alarmTagSave, &mask, "", &alarmTagSave.nTagID); if (nRet != RD_SUCCESS) { printf("add alarm tag[%s] failed, error code [%d]!\n", alarmTagSave.szTagName, nRet); nt3_disconnect(); return -1; } printf("add alarm tag[%s] successful!\n", alarmTagSave.szTagName);
strcpy(alarmTagSave.szTagName, szTagName_2); strcpy(alarmTagSave.szSourceTagName, normalTag.szTagName); strcpy(alarmTagSave.szTest1, "LT(10)"); strcpy(alarmTagSave.szAction1, "2_lolo_unack"); 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; nRet = am3_add_tags(1, &alarmTagSave, &mask, "", &alarmTagSave.nTagID, &nErrCode); if (nRet != RD_SUCCESS) { printf("add alarm tag[%s] failed, error code [%d]!\n", alarmTagSave.szTagName, nRet); nt3_disconnect(); return -1; } printf("add alarm tag[%s] successful!\n", alarmTagSave.szTagName);
//query tags by condition filterSet.nSize = 2; filterSet.pItem = filterItem; filterSet.pItem[0].nItemID = HD3_TAG_COL_COMM_PROP_TAG_NAME; filterSet.pItem[0].nRelation = HD3_RELATION_LIKE; strcpy(filterSet.pItem[0].szValue, "*"); filterSet.pItem[1].nItemID = HD3_TAG_COL_COMM_PROP_TAG_TYPE; filterSet.pItem[1].nRelation = HD3_RELATION_EQUAL; sprintf(filterSet.pItem[1].szValue, "%d", HD3_TAG_TYPE_DIGITAL);
mask.nCommMask = HD3M_COMM_PROP_TAG_NAME; mask.nExtMask = 0; nRet = am3_query_tags_cond(&filterSet, &mask, &hIter); if (nRet != RD_SUCCESS) { printf("query alarm tags by condition failed, error code [%d]!\n", nRet); nt3_disconnect(); return -1; }
while (true) { nRet = ut3_get_item_step(hIter, &alarmTagQuery); if (RD_SUCCESS == nRet) { nTagNum ++; printf("query alarm tag successful, tag name is %s!\n", alarmTagQuery.szTagName); } else if (EC_HD_API_QUERY_END == nRet) { printf("query alarm tag complete!\n"); break; } else { printf("query alarm tag failed, error code [%d]!\n", nRet); break; } } printf("you have queried %d alarm tags totally!\n", nTagNum);
ut3_free_handle(hIter);
//query page
pageQueryParam.itemSet = filterSet; pageQueryParam.mask.nCommMask = HD3M_COMM_PROP_TAG_NAME; pageQueryParam.mask.nExtMask = 0; pageQueryParam.nCapacity = 20; pageQueryParam.nStartID = 0; nRet = am3_query_specify_page_tags_cond(&pageQueryParam, &hIter); if (nRet != RD_SUCCESS) { printf("query alarm tags by condition failed, error code [%d]!\n", nRet); nt3_disconnect(); return -1; } nTagNum = 0; while (true) { nRet = ut3_get_item_step(hIter, &alarmTagQuery); if (RD_SUCCESS == nRet) { nTagNum ++; printf("query alarm tag successful, tag name is %s!\n", alarmTagQuery.szTagName); } else if (EC_HD_API_QUERY_END == nRet) { printf("query alarm tag complete!\n"); break; } else { printf("query alarm tag failed, error code [%d]!\n", nRet); break; } } printf("you have queried %d alarm tags totally!\n", nTagNum);
ut3_free_handle(hIter);
//query tag id
nRet = tag3_query_id_by_name(szTagName_1, &nTagID); if (nRet != RD_SUCCESS) { printf("query alarm tag id failed, alarm tag name[%s], error code[%d]!\n", szTagName_1, nRet); nt3_disconnect(); return -1; } printf("alarm tag[%s] query tag id successful, alarm tag id[%d]!\n", szTagName_1, nTagID);
//modify tag props mask.nCommMask = HD3M_COMM_PROP_DESCRIPTOR; mask.nExtMask = 0; strcpy(alarmTagSave.szDescriptor, "alarm tag descriptor is modified"); nRet = am3_modify_tag_prop(nTagID, &alarmTagSave, &mask); if (nRet != RD_SUCCESS) { printf("modify alarm tag failed, tag id[%d], error code[%d]!\n", nTagID, nRet); nt3_disconnect(); return -1; } printf("modify alarm tag successful, tag id[%d]!\n", nTagID);
//modify tags props mask.nCommMask = HD3M_COMM_PROP_DESCRIPTOR; mask.nExtMask = 0; strcpy(alarmTagSave.szDescriptor, "alarm tag descriptor is modified"); nRet = am3_modify_tags_prop(1, &nTagID, &alarmTagSave, &mask, &nErrCode); if (nRet != RD_SUCCESS) { printf("modify alarm tag failed, tag id[%d], error code[%d]!\n", nTagID, nRet); nt3_disconnect(); return -1; } printf("modify alarm tag successful, tag id[%d]!\n", nTagID);
//query tag prop nRet = am3_query_tag_prop(nTagID, &alarmTagQuery); if (nRet != RD_SUCCESS) { printf("query alarm tag prop failed, tag id[%d], error code[%d]!\n", nTagID, nRet); nt3_disconnect(); return -1; } printf("query alarm tag prop successful, tag id[%d], tag name[%s], tag description[%s]!\n", alarmTagQuery.nTagID, alarmTagQuery.szTagName, alarmTagQuery.szDescriptor);
//delete alarm tag nRet = tag3_delete_tag(nTagID); if (nRet != RD_SUCCESS) { printf("delete alarm tag failed, tag id[%d], error code[%d]!\n", nTagID, nRet); nt3_disconnect(); return -1; } printf("delete alarm tag successful, tag id[%d]!\n", nTagID);
nt3_disconnect();
return 0; }
//*/ |