计算点管理接口包含:
●ca3_query_specify_page_tags_cond
●删除点参见tag3_delete_tag, tag3_delete_tags
●查询id参见tag3_query_id_by_name ,tag3_query_ids_by_names
calc tag |
|
//*Calc 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; HD3CalcTagProp calcTagSave; HD3CalcTagProp calcTagQuery; const char* szTagName_1 = "szCalcTagName_1"; const char* szTagName_2 = "szCalcTagName_2"; HD3FilterItem filterItem[2]; HD3FilterItemSet queryItemset; HD3HANDLE hIter = NULL; int32 nTagNum = 0; int32 nErrCode = 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 one normal tag and get tag id strcpy(normalTag.szTagName, "szNormalTag"); normalTag.nTagType = HD3_TAG_TYPE_INT32; HD3Mask mask; mask.nCommMask = HD3M_COMM_PROP_TAG_NAME | HD3M_COMM_PROP_TAG_TYPE; mask.nExtMask = 0; uint32 nPtTagID=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! tag id[%d]!\n", normalTag.szTagName, nPtTagID);
//add two calc tag strcpy(calcTagSave.szTagName, szTagName_1); calcTagSave.nTagType = HD3_TAG_TYPE_INT32; calcTagSave.nCalcMode = HD3_CALC_MODE_POLL; calcTagSave.nCalcPeriod = 60; sprintf(calcTagSave.szCalcExpr, "'%s' + 1", normalTag.szTagName); uint32 nTagID=0; //HD3Mask hdMask; mask.nCommMask = HD3M_COMM_PROP_TAG_NAME | HD3M_COMM_PROP_TAG_TYPE; mask.nExtMask = HD3M_CA_EXT_PROP_CALC_MODE | HD3M_CA_EXT_PROP_CALC_PERIOD | HD3M_CA_EXT_PROP_CALC_EXPR; nRet = ca3_add_tag( &calcTagSave, &mask, "", &nTagID); if (nRet != RD_SUCCESS) { printf("add calc tag[%s] failed, error code [%d]!\n", calcTagSave.szTagName, nRet); nt3_disconnect(); return -1; } printf("add calc tag[%s] successful! nTagID=%d\n", calcTagSave.szTagName, nTagID);
strcpy(calcTagSave.szTagName, szTagName_2); calcTagSave.nTagType = HD3_TAG_TYPE_INT32; calcTagSave.nCalcMode = HD3_CALC_MODE_POLL; calcTagSave.nCalcPeriod = 60; sprintf(calcTagSave.szCalcExpr, "'%s' + 1", normalTag.szTagName); nRet = ca3_add_tags(1, &calcTagSave,&mask, "", &nTagID, &nErrCode); if (nRet != RD_SUCCESS) { printf("add calc tag[%s] failed, error code [%d]!\n", calcTagSave.szTagName, nRet); nt3_disconnect(); return -1; } printf("add calc tag[%s] successful!nTagID=%d\n", calcTagSave.szTagName, nTagID);
//query tags by condition queryItemset.nSize = 2; queryItemset.pItem = filterItem; queryItemset.pItem[0].nItemID = HD3_TAG_COL_COMM_PROP_TAG_NAME; queryItemset.pItem[0].nRelation = HD3_RELATION_LIKE; strcpy(queryItemset.pItem[0].szValue, "*"); queryItemset.pItem[1].nItemID = HD3_TAG_COL_COMM_PROP_TAG_TYPE; queryItemset.pItem[1].nRelation = HD3_RELATION_EQUAL; sprintf(queryItemset.pItem[1].szValue, "%d", HD3_TAG_TYPE_INT32);
mask.nCommMask = HD3M_COMM_PROP_TAG_NAME; mask.nExtMask = 0; nRet = ca3_query_tags_cond(&queryItemset, &mask, &hIter); if (nRet != RD_SUCCESS) { printf("query calc tags by condition failed, error code [%d]!\n", nRet); nt3_disconnect(); return -1; }
while (true) { nRet = ut3_get_item_step(hIter, &calcTagQuery); if (RD_SUCCESS == nRet) { nTagNum ++; printf("query calc tag successful, tag name is %s!\n", calcTagQuery.szTagName); } else if (EC_HD_API_QUERY_END == nRet) { printf("query calc tag complete!\n"); break; } else { printf("query calc tag failed, error code [%d]!\n", nRet); break; } } printf("you have queried %d calc tags totally!\n", nTagNum);
ut3_free_handle(hIter);
//query page tag by condition HD3PageQueryTagParam hdparam; hdparam.itemSet.pItem = queryItemset.pItem; hdparam.itemSet.nSize = queryItemset.nSize; hdparam.mask = mask; hdparam.nCapacity = 20; hdparam.nStartID = 0; nRet = ca3_query_specify_page_tags_cond(&hdparam, &hIter); if (nRet != RD_SUCCESS) { printf("ca3_query_specify_page_tags_cond failed, error code [%d]!\n", nRet); nt3_disconnect(); return -1; } nTagNum = 0; while (true) { nRet = ut3_get_item_step(hIter, &calcTagQuery); if (RD_SUCCESS == nRet) { nTagNum ++; printf("query calc tag successful, tag name is %s!\n", calcTagQuery.szTagName); } else if (EC_HD_API_QUERY_END == nRet) { printf("query calc tag complete!\n"); break; } else { printf("query calc tag failed, error code [%d]!\n", nRet); break; } } printf("you have queried %d calc tags totally!\n", nTagNum);
ut3_free_handle(hIter);
//modify tag desc HD3Mask hdMask; hdMask.nCommMask = HD3M_COMM_PROP_DESCRIPTOR; hdMask.nExtMask = 0; strcpy(calcTagSave.szDescriptor, "calc tag descriptor is modified"); nRet = ca3_modify_tag_prop(nTagID, &calcTagSave, &hdMask); if (nRet != RD_SUCCESS) { printf("modify calc tag failed, tag id[%d], error code[%d]!\n", nTagID, nRet); nt3_disconnect(); return -1; } printf("modify calc tag successful, tag id[%d]!\n", nTagID);
//modify tag desc hdMask; hdMask.nCommMask = HD3M_COMM_PROP_DESCRIPTOR; hdMask.nExtMask = 0; strcpy(calcTagSave.szDescriptor, "calc tag descriptor is modified"); nRet = ca3_modify_tags_prop(1, &nTagID, &calcTagSave, &hdMask, &nErrCode); if (nRet != RD_SUCCESS) { printf("modify calc tag failed, tag id[%d], error code[%d]!\n", nTagID, nRet); nt3_disconnect(); return -1; } printf("modify calc tag successful, tag id[%d]!\n", nTagID);
//query tag prop nRet = ca3_query_tag_prop(nTagID, &calcTagQuery); if (nRet != RD_SUCCESS) { printf("query calc tag prop failed, tag id[%d], error code[%d]!\n", nTagID, nRet); nt3_disconnect(); return -1; } printf("query calc tag prop successful, tag id[%d], tag name[%s], tag description[%s]!\n", calcTagQuery.nTagID, calcTagQuery.szTagName, calcTagQuery.szDescriptor);
//delete tag nRet = tag3_delete_tag(nTagID); if (nRet != RD_SUCCESS) { printf("delete calc tag failed, tag id[%d], error code[%d]!\n", nTagID, nRet); nt3_disconnect(); return -1; } printf("delete calc tag successful, tag id[%d]!\n", nTagID);
nt3_disconnect();
return 0; }
//*/
|
©2015. All Rights Reserved.