●函数:
public double getTagStats(int tagID, HDStatsType statsType, Date startTime, Date endTime,HDSampleType sampleType, int samplePeriod, int sampleOffset,double extParam1, double extParam2, String szFilterExpr, int nFilterFailMode) throws HDSdkException
●参数:
参数名称 |
数据类型 |
参数说明 |
默认值 |
tagID |
int |
所要计算的TagID |
|
statsType |
HDStatsType |
统计类型 |
|
startTime |
Date |
开始时间,闭区间 |
|
endTime |
Date |
结束时间,开区间 |
|
sampleType |
HDSampleType |
采样类型: 原始记录,线性插值,前向插值。 |
|
samplePeriod |
int |
采样周期: 采样类型为插值时,插值点的间隔为nPeriod, 单位为秒。 采样类型不是插值时,该参数可设为0。 |
|
sampleOffset |
int |
采样偏移量: 采样模式为插值时,插值点为startTime+nOffset,startTime+nOffset+nPeriod, 单位为秒。 不使用偏移量时,该参数可设为0。 采样类型不是插值时,该参数可设为0。 |
|
extParam1 |
double |
参数一: 计数和计时的参数, 值变化的参数,区间变化的第一个参数,在区间不在区间的第一个参数。 统计类型不是计时或者计数时,该参数可设为0。 |
|
extParam2 |
double |
参数二: 计数和计时的参数,区间变化的第二个参数,在区间不在区间的第二个参数。 统计类型不是计时或者计数时,该参数可设为0。 |
|
szFilterExpr |
String |
数据过滤表达式。不使用过滤表达式时,该参数可设为空字符串。 |
|
nFilterFailMode |
int |
过滤失败时对采样数据的处理,0为过滤采样数据,1为不过滤采样数据。不使用过滤表达式时,该参数可设为0。 |
|
useBadValue |
boolean |
是否使用bad value |
|
●返回值
返回值类型 |
返回值说明 |
double |
统计结果 |
●异常:
当参数出现错误时,向上抛出IllegalArgumentException异常
当后台查询出错时,向上抛出HDSdkException异常
●说明:
该接口用于所有统计计算操作。
可能需要先进行登录操作,请参考HDDataConnection类
●示例代码:
注: 标记为红色的代码行为当前接口的调用
import com.baosight.hdsdk.HDConnectionFactory;
import com.baosight.hdsdk.HDDataAnalysis;
import com.baosight.hdsdk.HDServerFactory;
import com.baosight.hdsdk.common.HDSampleType;
import com.baosight.hdsdk.common.HDStatsType;
import com.baosight.hdsdk.domain.data.HDDataConnection;
import com.baosight.hdsdk.domain.data.HDDataServer;
import com.baosight.hdsdk.exception.HDSdkException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Calculate {
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");
HDDataAnalysis da = new HDDataAnalysis(dataConn);
int tagID = 1;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date startTime = dateFormat.parse("2025-01-01 12:00:00");
Date endTime = dateFormat.parse("2025-01-01 13:00:00");
int samplePeriod = 10;
int sampleOffset = 10;
double extParam1 = 0.0;
double extParam2 = 0.0;
String szFilterExpr = "";
int nFilterFailMode = 0;
boolean useBadValue = true;
double result = da.getTagStats(tagID, HDStatsType.HD_STATS_TYPE_MAX, startTime, endTime, HDSampleType.HD_STATS_SAMPLE_TYPE_RAW, samplePeriod, sampleOffset, extParam1, extParam2, szFilterExpr, nFilterFailMode, useBadValue);
dataConn.dispose();
} catch (HDSdkException | ParseException e) {
e.printStackTrace();
}
}
}