计算点管理接口

Navigation:  C++ >

计算点管理接口

Previous pageReturn to chapter overviewNext page

计算点管理接口包含:

ca3_add_tag

ca3_add_tags

ca3_modify_tag_prop

ca3_modify_tags_prop

ca3_query_tag_prop

ca3_query_tags_cond

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

copycode!MISSING PHRASE 'COPYCODE'!

//*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.