sn3_save_snapshots_nowait:异步保存多点快照记录:
/**
* @brief 快照数据:保存多点快照记录(批量接口),不等待服务端返回结果
* @param nRecNum [记录个数]
* @param pTagIDArray [TagID数组]
* @param pRecArray [记录数
* @param pErrCodeArray [错误码数组]
* @return RD_SUCCESS, if all success
* EC_HD3_API_BATCH_REQUEST, if some failed
* hd3 error, otherwise
* @version 09/19/2023 g.l. modified version
*/
HD3_API
int32 sn3_save_snapshots_nowait(
hd3_in int32 nRecNum,
hd3_in const uint32* pTagIDArray,
hd3_in const HD3Record* pRecArray,
hd3_out int32* pErrCodeArray
);
示例程序:
#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_1 = "szTagName_1";
const char* szTagName_2 = "szTagName_2";
int32 nRecNum = 2;
HD3Record snapshotsSaved[2];
uint32 nTagIDs[2];
int32 nErrorCodes[2];
HD3Record snapshotsQueried[2];
int32 i = 0;
//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");
//save one snapshot
snapshotsSaved[0].nSec = 3600;
snapshotsSaved[0].nMsec = 0;
snapshotsSaved[0].nQuality = 192;
snapshotsSaved[0].nTagType = HD3_TAG_TYPE_INT32;
snapshotsSaved[0].value.nInt32 = 111;
nRet = sn3_save_snapshot_nowait(nTagIDs[0], &(snapshotsSaved[0]));
if (nRet != RD_SUCCESS)
{
printf("save snapshot failed, tag id [%d], error code [%d]!\n", nTagIDs[0], nRet);
nt3_disconnect();
return -1;
}
printf("save snapshot successful, tag id[%d]!\n", nTagIDs[0]);
/
//disconnect
nt3_disconnect();
return 0;
}