●函数:
public List<ImmutablePair<HDRecord, Integer>> queryTagsHisInterRecordByMode(List<Integer> tagIDs, Date interpTime,HDInterpolationMode mode, HDErrcode errcode) throws HDSdkException
●参数:
参数名称 |
数据类型 |
参数说明 |
默认值 |
tagIDs |
List<Integer> |
tag点id列表 |
|
interpTime |
Date |
插值时间点 |
|
mode |
HDInterpolationMode |
插值方式,参考HDInterpolationMode 可选值: HDInterpolationMode.FORWARD 前向插值方式(当前时刻有值,则取当前时刻的值,当前时刻无值,则取前一个时刻的值) HDInterpolationMode.INVALID 无效插值方式 HDInterpolationMode.LINEAR 线性插值方式(当前时刻有值,则取当前时刻的值,当前时刻无值,则根据前一个时刻的值和后一个时刻的值计算线性值) |
|
errcode |
HDErrcode |
查询结果的总体错误码,可以根据本参数判断是否为部分成功 |
|
●返回值:
返回值类型 |
返回值说明 |
List<ImmutablePair<HDRecord, Integer>> |
返回查询到的记录和对应的错误码 |
●异常:
当参数出现错误时,向上抛出IllegalArgumentException异常
当后台查询出错时,向上抛出HDSdkException异常
●说明:
该接口用于根据不同插值类型,查询多个tag在某个时间点的插值记录。
可能需要先进行登录操作,请参考HDDataConnection类
●示例代码:
注: 标记为红色的代码行为当前接口的调用
import com.baosight.hdsdk.HDConnectionFactory;
import com.baosight.hdsdk.HDDataProvider;
import com.baosight.hdsdk.HDServerFactory;
import com.baosight.hdsdk.common.HDInterpolationMode;
import com.baosight.hdsdk.domain.data.HDDataConnection;
import com.baosight.hdsdk.domain.data.HDDataServer;
import com.baosight.hdsdk.domain.data.HDRecord;
import com.baosight.hdsdk.exception.HDSdkException;
import org.apache.commons.lang3.tuple.ImmutablePair;
import com.baosight.hdjni.HDErrcode;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class IhdJavaSdkQueryTagVal {
public static void main(String[] args) {
// 设置服务器信息
String serverIP = "168.2.237.1";
String bakIp = "168.2.237.2";
HDDataServer server = HDServerFactory.getHDDataServer(serverIP,5673,bakIp,5673);
HDDataConnection dataConn = null;
try {
dataConn = HDConnectionFactory.getHDDataConnection(server);
dataConn.loginToServer("admin", "admin");
HDDataProvider dp = new HDDataProvider(dataConn);
List<Integer> tagIDsList = new ArrayList<>();
tagIDsList.add(1);
tagIDsList.add(2);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date interpTime = dateFormat.parse("2025-01-01 12:00:00");
HDErrcode errCode = new HDErrcode();
List<ImmutablePair<HDRecord, Integer>> interRecordsList = dp.queryTagsHisInterRecordByMode(tagIDsList, interpTime, HDInterpolationMode.FORWARD, errCode);
dataConn.dispose();
} catch (HDSdkException e) {
e.printStackTrace();
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
}