《统计计算》主要介绍介绍一下接口:
stats calc |
|
///* Stats Calc Function
#include "hdKingAPI.h" #include "error_code.h" #include "data_types.h" #include "hd3Struct.h" #include <stdio.h> #include <string.h> #include <Windows.h>
int32 main() { int32 nRet = RD_SUCCESS; HD3Connection conn; HD3PtTagProp tag; const char* szTagName = "szTagName"; int32 nRecNum = 3; HD3Record records[3]; uint32 nTagIDs[3]; int32 nErrorCodes[3]; double dValue; float fPercentGood = 0.0; int32 i = 0; HD3Mask mask; HD3StRelatedParam stParam; HD3TimeRegion stTimeRegion;
//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; } printf("connect to server successful!\n");
//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 tag strcpy(tag.szTagName, szTagName); tag.nTagType = HD3_TAG_TYPE_INT32; mask.nCommMask = HD3M_COMM_PROP_TAG_NAME | HD3M_COMM_PROP_TAG_TYPE; mask.nExtMask = 0; nRet = pt3_add_tag(&tag, &mask, "", &tag.nTagID); if (nRet != RD_SUCCESS) { printf("add tags[%s] failed, error code [%d]!\n", tag.szTagName, nRet); nt3_disconnect(); return -1; } printf("add tags[%s] successful!\n", tag.szTagName);
Sleep(30000); // save snapshots for (i = 0; i < nRecNum; i ++) { nTagIDs[i] = tag.nTagID; records[i].nSec = 1 + i; records[i].nMsec = 0; records[i].nQuality = 192; records[i].value.nInt32 = records[i].nSec; }
nRet = sn3_save_snapshots(nRecNum, nTagIDs, records, nErrorCodes); if (nRet != RD_SUCCESS) { printf("save snapshots failed, error code[%d]!\n", nRet); nt3_disconnect(); return -1; } printf("save %d record successful!\n", nRecNum);
//calc arith mean using raw data stTimeRegion.bLeftClosed = true; stTimeRegion.bRightClosed = true; stTimeRegion.left.nSec = 0; stTimeRegion.left.nMsec = 0; stTimeRegion.right.nSec = records[nRecNum - 1].nSec + 1; stTimeRegion.right.nMsec = 0; stParam.pTimeRegions = &stTimeRegion; stParam.nTimeRegionNum = 1; stParam.fPercentGood = 0; stParam.nStatsType = HD3_STATS_TYPE_ARITH_MEAN; stParam.nSampleType = HD3_STATS_SAMPLE_TYPE_RAW; strcpy(stParam.szFilterExpr, "");
nRet = st3_tag_stats_calc(tag.nTagID, &stParam, &dValue); if (nRet != RD_SUCCESS) { printf("save snapshots failed, error code[%d]!\n", nRet); nt3_disconnect(); return -1; } printf("save %d record successful!\n", nRecNum);
nt3_disconnect(); return 0; }
//*/
|