统计计算

Navigation:  C++ > 统计管理接口 >

统计计算

Previous pageReturn to chapter overviewNext page

 

《统计计算》主要介绍介绍一下接口:

st3_tag_stats_calc

 

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;

}

 

 

//*/

 

 

©2015. All Rights Reserved.