归档数据接口

Navigation:  C++ >

归档数据接口

Previous pageReturn to chapter overviewNext page

 

《归档数据接口》的主要内容包:

 

ar3_query_raw_records

ar3_query_raw_records_number

ar3_query_specify_num_raw_recs

ar3_query_interp_record_by_mode

ar3_query_interp_records_by_mode

ar3_query_tags_interp_records_by_mode

Archive Record

copycode!MISSING PHRASE 'COPYCODE'!

///* Archive Record 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 normalTag;

 int32 nRecNum = 3;

 HD3Record records[3];

 uint32 nTagIDs[3];

 int32 nErrorCodes[3];

 int32 i = 0;

 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;

 }

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

 

 Sleep(30000);

 // save snapshots

 for (i = 0; i < nRecNum; i ++)

 {

         nTagIDs[i] = normalTag.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;

 }

 

 //query raw recs num

 HD3TimeRegion timeRegion;

 int32 nRecNumQueried;

 timeRegion.left.nSec = 1;

 timeRegion.left.nMsec = 0;

 timeRegion.right.nSec = 36000;

 timeRegion.right.nMsec = 0;

 timeRegion.bLeftClosed = true;

 timeRegion.bRightClosed = true;

 nRet = ar3_query_raw_records_number(normalTag.nTagID, &timeRegion, &nRecNumQueried);

 if (nRet != RD_SUCCESS)

 {

         printf("tag [id:%d] query raw records number failed, error code[%d]!\n", normalTag.nTagID, nRet);

         nt3_disconnect();

         return -1;

 }

 printf("tag [id:%d] query raw records number successful, nRecNum is %d in time area [%d s : %d ms] to  [%d s : %d ms] !\n",

         normalTag.nTagID, nRecNumQueried,        timeRegion.left.nSec,        timeRegion.left.nMsec, timeRegion.right.nSec, timeRegion.right.nMsec );

 

 //query raw recs

 HD3Record recordsQueried[2];

 nRecNumQueried = 2;

 

 do

 {

         nRet = ar3_query_raw_records(nTagIDs[0], &timeRegion, &nRecNumQueried, recordsQueried);

         if (nRet != RD_SUCCESS)

         {

                 printf("tag [id:%d] query raw records failed, error code[%d]!\n", normalTag.nTagID, nRet);

                 nt3_disconnect();

                 return -1;

         }

         for (i = 0; i < nRecNumQueried; i ++)

         {

                 printf("tag [id:%d] record time [%d s : %d ms], quality [%d], value [%d]!\n",

                         normalTag.nTagID, recordsQueried[i].nSec, recordsQueried[i].nMsec,

                         recordsQueried[i].nQuality, recordsQueried[i].value.nInt32);

         }

         //reset end time

         if (2 == nRecNumQueried)

         {

                 timeRegion.right.nSec = recordsQueried[1].nSec;

                 timeRegion.right.nMsec = recordsQueried[1].nMsec;

                 if ( 0 == timeRegion.right.nMsec )

                 {

                         timeRegion.right.nSec --;

                         timeRegion.right.nMsec = 999;

                 }

                 else

                 {

                         timeRegion.right.nMsec --;

                 }                        

         }

 } while (2 == nRecNumQueried);

 

 //query specify number records

 timeRegion.left.nSec = 100;

 timeRegion.left.nMsec = 0;

 nRecNumQueried = 2;

 nRet = ar3_query_specify_num_raw_recs(normalTag.nTagID, &timeRegion.left, true, &nRecNumQueried, recordsQueried);

 if (nRet != RD_SUCCESS)

 {

         printf("tag [id:%d] query 2 records from time [%d s : %d ms] to the earlier time failed, error code[%d]!\n",

                 normalTag.nTagID, timeRegion.left.nSec, timeRegion.left.nMsec, nRet);

         nt3_disconnect();

         return -1;

 }

 

 printf("tag [id:%d] query 2 records from time [%d s : %d ms] to the earlier time successful!\n",

         normalTag.nTagID, timeRegion.left.nSec, timeRegion.left.nMsec);

 for (i = 0; i < 2; i ++)

 {

         printf("tag [id:%d] raw record time [%d s : %d ms], quality [%d], value [%d]!\n",

                 normalTag.nTagID, recordsQueried[i].nSec, recordsQueried[i].nMsec,

                 recordsQueried[i].nQuality, recordsQueried[i].value.nInt32);

 }

 

 //modify record

 recordsQueried[0].value.nInt32 = 999;

 nRet = ar3_modify_record(normalTag.nTagID, &recordsQueried[0]);

 if (nRet != RD_SUCCESS)

 {

         printf("tag [id:%d] modify record failed, error code[%d]!\n", normalTag.nTagID, nRet);

         nt3_disconnect();

         return -1;

 }

 

 printf("tag [id:%d] modify record successful!\n", normalTag.nTagID);

 

 //delete record

 HD3Time hdTime;

 hdTime.nSec = recordsQueried[0].nSec;

 hdTime.nMsec = recordsQueried[0].nMsec;

 nRet = ar3_delete_record(normalTag.nTagID, &hdTime);

 if (nRet != RD_SUCCESS)

 {

         printf("tag [id:%d] delete record failed, error code[%d]!\n", normalTag.nTagID, nRet);

         nt3_disconnect();

         return -1;

 }

 printf("tag [id:%d] delete record successful!\n", normalTag.nTagID);

 

 

 //query one interpolate rec by mode

 recordsQueried[0].nSec = 1;

 recordsQueried[0].nMsec = 500;

 nRet = ar3_query_interp_record_by_mode(HD3_REC_INTERP_QUERY_MODE_LINEAR, normalTag.nTagID, &(recordsQueried[0]));

 if (nRet != RD_SUCCESS)

 {

         printf("tag [id:%d] query interpolate record by mode failed, error code[%d]!\n", normalTag.nTagID, nRet);

         nt3_disconnect();

         return -1;

 }

 

 printf("tag [id:%d] query interpolate record by mode successful, time [%d s : %d ms], quality [%d], value [%d]!\n",

         normalTag.nTagID, recordsQueried[0].nSec, recordsQueried[0].nMsec,

         recordsQueried[0].nQuality, recordsQueried[0].value.nInt32);

 

 //query interpolate records

 recordsQueried[0].nSec = 1;

 recordsQueried[0].nMsec = 300;

 recordsQueried[1].nSec = 1;

 recordsQueried[1].nMsec = 800;

 nRet = ar3_query_interp_records_by_mode(HD3_REC_INTERP_QUERY_MODE_PREV, normalTag.nTagID, 2, recordsQueried, nErrorCodes);

 if (RD_SUCCESS == nRet)

 {

         printf("query tag [id:%d] interpolate records by mode successful\n", normalTag.nTagID);

         for (i = 0; i < 2; i ++)

         {

                 printf("tag [id:%d] query interpolate records by mode successful,  time [%d s : %d ms], quality [%d], value [%d]!\n",

                         normalTag.nTagID, recordsQueried[i].nSec, recordsQueried[i].nMsec,

                         recordsQueried[i].nQuality, recordsQueried[i].value.nInt32);

         }

 

 }

 else if (EC_HD_API_QUERY_INTERP_REC_FAILED == nRet)

 {

         for (i = 0; i < 2; i ++)

         {

                 if (RD_SUCCESS == nErrorCodes[i])

                 {

                         printf("tag [id:%d] query interpolate record time by mode [%d s : %d ms], quality [%d], value [%d]!\n",

                                 normalTag.nTagID, recordsQueried[i].nSec, recordsQueried[i].nMsec,

                                 recordsQueried[i].nQuality, recordsQueried[i].value.nInt32);

                 }

                 else

                 {

                         printf("tag [id:%d] query interpolate record failed, error code [%d], record time [%d s : %d ms]!\n",

                                 normalTag.nTagID, nErrorCodes[i], recordsQueried[i].nSec, recordsQueried[i].nMsec);

                 }

         }

 }

 else

 {

         printf("tag [id:%d] query interpolate record failed, error code[%d]!\n", normalTag.nTagID, nRet);

         nt3_disconnect();

         return -1;

 }

 

 //disconnect

 nt3_disconnect();

 return 0;

}

 

 

//*/

 

 

 

©2015. All Rights Reserved.