数据源管理接口

Navigation:  C++ >

数据源管理接口

Previous pageReturn to chapter overviewNext page

 

数据源管理主要包含Tag点的增删改查,pt3开头的接口处理普通点,tag3开头的接口可处理其他类型的点。

tag3_delete_tag

tag3_delete_tags

tag3_query_id_by_name

tag3_query_ids_by_names

tag3_query_tag_num_cond

tag3_query_tags_basic_info_by_name

tag3_query_tags_comm_prop

tag3_query_tags_cond

 

tag query

copycode!MISSING PHRASE 'COPYCODE'!

///*Tag Function

 

#include "hdKingAPI.h"

#include "error_code.h"

#include "data_types.h"

#include "hd3Enum.h"

#include "hd3Struct.h"

#include <stdio.h>

#include <string.h>

 

int main()

{

 int32 nRet = RD_SUCCESS;

 HD3Connection conn;

 HD3PtTagProp normalTag;

 HD3StatsTagProp statsTag;

 HD3CalcTagProp calcTag;

 HD3SpcTagProp spcAlarmTag;

 HD3AlarmTagProp alarmTag;

 HD3HANDLE hIter = NULL;

 int32 nTotalTagNum = 0;

 HD3FilterItemSet filterSet;

 HD3FilterItem filterItem[2];

 HD3Mask mask;

 

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

 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 statistics tag

 strcpy(statsTag.szTagName, "szStatsTag");

 strcpy(statsTag.szSourceTagName, normalTag.szTagName);

 statsTag.nScanPeriod = 60;

 statsTag.nStatsType = HD3_STATS_TYPE_MAX;

 statsTag.nSampleMode = HD3_STATS_SAMPLE_MODE_INTERVAL;

 statsTag.nSampleInterval = 3600;

 statsTag.nSampleStartDate = 1;

 statsTag.nSampleType = HD3_STATS_SAMPLE_TYPE_RAW;

 statsTag.nCalcPeriod = 0;

 mask.nCommMask = HD3M_COMM_PROP_TAG_NAME;

 mask.nExtMask = HD3M_ST_EXT_PROP_SOURCE_TAG_NAME |HD3M_ST_EXT_PROP_SCAN_PERIOD

         | HD3M_ST_EXT_PROP_STATS_TYPE | HD3M_ST_EXT_PROP_SAMPLE_MODE

         | HD3M_ST_EXT_PROP_SAMPLE_INTERVAL | HD3M_ST_EXT_PROP_SAMPLE_START_DATE

         | HD3M_ST_EXT_PROP_SAMPLE_TYPE | HD3M_ST_EXT_PROP_CALC_PERIOD;

 nRet = st3_add_tag(&statsTag, &mask, "", &statsTag.nTagID);

 if (nRet != RD_SUCCESS)

 {

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

         nt3_disconnect();

         return -1;

 }

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

 

 //add calc tag

 strcpy(calcTag.szTagName, "szCalcTag");

 calcTag.nTagType = HD3_TAG_TYPE_INT32;

 calcTag.nCalcMode = HD3_CALC_MODE_POLL;

 calcTag.nCalcPeriod = 60;

 sprintf(calcTag.szCalcExpr, "'%s' + 1", normalTag.szTagName);

 mask.nCommMask = HD3M_COMM_PROP_TAG_NAME | HD3M_COMM_PROP_TAG_TYPE;

 mask.nExtMask = HD3M_CA_EXT_PROP_CALC_PERIOD | HD3M_CA_EXT_PROP_CALC_MODE | HD3M_CA_EXT_PROP_CALC_EXPR;

 nRet = ca3_add_tag(&calcTag, &mask, "", &calcTag.nTagID);

 if (nRet != RD_SUCCESS)

 {

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

         nt3_disconnect();

         return -1;

 }

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

 

 //add alarm tag

 strcpy(alarmTag.szTagName, "szAlarmTag");

 strcpy(alarmTag.szSourceTagName, normalTag.szTagName);

 strcpy(alarmTag.szTest1, "LT(10)");

 strcpy(alarmTag.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_tag(&alarmTag, &mask, "", &alarmTag.nTagID);

 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);

 

 //add spc alarm tag

 memset(&spcAlarmTag, 0, sizeof(spcAlarmTag));

 strcpy(spcAlarmTag.szTagName, "szSPCAlarmTag");

 strcpy(spcAlarmTag.szSourceTagName, "szStatsTag");

 spcAlarmTag.nCtrlChartType = HD3_SPC_CTRL_CHART_TYPE_XBAR;

 strcpy(spcAlarmTag.szUCLTagName, "szNormalTag");

 strcpy(spcAlarmTag.szCLTagName, "szNormalTag");

 strcpy(spcAlarmTag.szLCLTagName, "szNormalTag");

 spcAlarmTag.dUCLDefaultValue = 200;

 spcAlarmTag.dCLDefaultVaule = 100;

 spcAlarmTag.dLCLDefaultValue = 50;        

 

 mask.nCommMask = HD3M_COMM_PROP_TAG_NAME;

 mask.nExtMask = HD3M_SPC_EXT_PROP_SOURCE_TAG_NAME | HD3M_SPC_EXT_PROP_CTRL_CHART_TYPE | HD3M_SPC_EXT_PROP_RULE;

 

 nRet = spc3_add_tag(&spcAlarmTag, &mask, "", &spcAlarmTag.nTagID );

 if (nRet != RD_SUCCESS)

 {

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

         nt3_disconnect();

         return -1;

 }

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

 

 //query tag basic info by tag name

 HD3TagBasicInfo tagBasicInfo[5];

 int64 nTagClassMask = 0;

 int32 nErrCodes[5];

 

 strcpy(tagBasicInfo[0].szTagName, "szNormalTag");

 strcpy(tagBasicInfo[1].szTagName, "szAlarmTag");

 strcpy(tagBasicInfo[2].szTagName, "szStatsTag");

 strcpy(tagBasicInfo[3].szTagName, "szCalcTag");

 strcpy(tagBasicInfo[4].szTagName, "szSPCAlarmTag");

 

 nTagClassMask = HD3M_ALL;

 nRet = tag3_query_tags_basic_info_by_name(nTagClassMask, 5, tagBasicInfo, nErrCodes);

 if (nRet != RD_SUCCESS)

 {

         printf("tag_query_tags_baisc_info_by_name failed %d\n", nRet);

         nt3_disconnect();

         return -1;

 }

 for (int32 i = 0; i < 5; i ++)

 {

         printf("name[%s], id[%d], tag class[%d], tag type[%d]\n", tagBasicInfo[i].szTagName,

                 tagBasicInfo[i].nTagID, (int32)tagBasicInfo[i].nTagClass, (int32)tagBasicInfo[i].nTagType);

 }

 

 //query tag id by name

 nRet = tag3_query_id_by_name(normalTag.szTagName, &normalTag.nTagID);

 if (nRet != RD_SUCCESS)

 {

         printf("query tag id by name failed, error code [%d]!\n", nRet);

         nt3_disconnect();

         return -1;

 }

 printf("query  tag id by name successful\n");

 

 //query tag ids by name

 nRet = tag3_query_ids_by_names(1, &normalTag.szTagName, &normalTag.nTagID, &nErrCodes[0]);

 if (nRet != RD_SUCCESS)

 {

         printf("query tag ids by name failed, error code [%d]!\n", nRet);

         nt3_disconnect();

         return -1;

 }

 printf("query  tag ids by name successful\n");

 

 //query tag base props

 HD3CommTagProp tagsBaseProp[5];

 tagsBaseProp[0].nTagID = tagBasicInfo[0].nTagID;

 tagsBaseProp[1].nTagID = tagBasicInfo[1].nTagID;

 tagsBaseProp[2].nTagID = tagBasicInfo[2].nTagID;

 tagsBaseProp[3].nTagID = tagBasicInfo[3].nTagID;

 tagsBaseProp[4].nTagID = tagBasicInfo[4].nTagID;

 nTagClassMask = HD3M_ALL;

 memset(nErrCodes, 0, sizeof(nErrCodes));

 nRet = tag3_query_tags_common_prop(nTagClassMask,  5, HD3M_ALL, tagsBaseProp, nErrCodes);

 if (nRet != RD_SUCCESS)

 {

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

         nt3_disconnect();

         return -1;

 }

 printf("tag_query_tags_basic_prop successful!\n");

 

 //query tags base props  by condition

 filterItem[0].nItemID = HD3_TAG_COL_COMM_PROP_TAG_NAME;

 filterItem[0].nRelation = HD3_RELATION_LIKE;

 strcpy(filterItem[0].szValue, "*");

 

 filterItem[1].nItemID = HD3_TAG_COL_COMM_PROP_TAG_TYPE;

 filterItem[1].nRelation = HD3_RELATION_EQUAL;

 sprintf(filterItem[1].szValue, "%d", HD3_TAG_TYPE_DIGITAL);

 nTagClassMask = HD3M_ALL;

 filterSet.nSize = 2;

 filterSet.pItem = filterItem;

 nRet = tag3_query_tags_cond(nTagClassMask, &filterSet, HD3M_ALL, &hIter);

 if (nRet != RD_SUCCESS)

 {

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

         nt3_disconnect();

         return -1;

 }

 

 int32 nTagNum = 0;

 while (true)

 {

         nRet = ut3_get_item_step(hIter, &tagsBaseProp[0]);

         if (RD_SUCCESS == nRet)

         {

                 nTagNum ++;

                 printf("query tag successful, tag name is %s!\n", tagsBaseProp[0].szTagName);

         }

         else if (EC_HD_API_QUERY_END == nRet)

         {

                 printf("query tag complete!\n");

                 break;

         }

         else

         {

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

                 break;

         }

 }

 printf("you have queried %d tags totally!\n", nTagNum);

 

 ut3_free_handle(hIter);        

 

 nRet = tag3_query_tag_num_cond(HD3_TAG_CLASS_BASIC, &filterSet, &nTotalTagNum);

 if (nRet != RD_SUCCESS)

 {

         printf("query total tag number failed, error code [%d]!\n", nRet);

         nt3_disconnect();

         return -1;

 }

 printf("query total tag number successful tag number is %d\n", nTotalTagNum);

 

 HD3PageQueryTagParam pageQueryParam;

 HD3FilterItem fi;

 fi.nItemID = HD3_TAG_COL_COMM_PROP_TAG_NAME;

 fi.nRelation = HD3_RELATION_LIKE;

 strcpy(fi.szValue, "*");

 pageQueryParam.itemSet.pItem = &fi;

 pageQueryParam.itemSet.nSize = 1;

 pageQueryParam.mask.nCommMask = HD3M_ALL;

 pageQueryParam.mask.nExtMask = HD3M_ALL;

 pageQueryParam.nCapacity = 20;

 pageQueryParam.nStartID = 0;

 nRet = tag3_query_specify_page_tags_cond(HD3M_TAG_CLASS_CALC | HD3M_TAG_CLASS_BASIC | HD3M_TAG_CLASS_STATS, &pageQueryParam, &hIter);

 if (nRet != RD_SUCCESS)

 {

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

         nt3_disconnect();

         return -1;

 }

 

 nTagNum = 0;

 while (true)

 {

         nRet = ut3_get_item_step(hIter, &tagsBaseProp[0]);

         if (RD_SUCCESS == nRet)

         {

                 nTagNum ++;

                 printf("query tag successful, tag name is %s!\n", tagsBaseProp[0].szTagName);

         }

         else if (EC_HD_API_QUERY_END == nRet)

         {

                 printf("query tag complete!\n");

                 break;

         }

         else

         {

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

                 break;

         }

 }

 printf("you have queried %d tags totally!\n", nTagNum);

 ut3_free_handle(hIter);

 

 //delete tag

 nRet = tag3_delete_tag(spcAlarmTag.nTagID);

 if (nRet != RD_SUCCESS)

 {

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

         nt3_disconnect();

         return -1;

 }

 printf("delete tag successful\n");

 

 //delete tags

 nRet = tag3_delete_tags(1, &alarmTag.nTagID, &nErrCodes[0]);

 if (nRet != RD_SUCCESS)

 {

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

         nt3_disconnect();

         return -1;

 }

 printf("delete tag successful\n");

 

 nt3_disconnect();

 return 0;

}

 

//*/

 

©2015. All Rights Reserved.