数据源管理主要包含Tag点的增删改查,pt3开头的接口处理普通点,tag3开头的接口可处理其他类型的点。
●tag3_query_tags_basic_info_by_name
tag query |
|
///*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; }
//*/ |