Check Dead Data¶
检测指定设备的测点数据是否为死数,同时返回测点的最后变更数据。
测点数据是否为死数判断条件:
- 测点最后变更数据的时间戳与系统当前时间相比大于指定的时间间隔(interval)
- 若指定测点的数据不存在,不返回数据
请求格式¶
POST https://{apigw-address}/tsdb-service/v2.1/data/latest/check-dead
请求参数(URI)¶
名称 | 位置(Path/Query) | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|---|
orgId | Query | 必需 | String | 资产所属的组织ID。如何获取orgId信息>> |
请求参数(Body)¶
名称 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
payload | 必需 | Object[] | 请求体,包含资产ID、测点ID、时间间隔等查询条件。详见 payload |
payload¶
名称 | 必需/可选 | 数据类型 | 描述 |
---|---|---|---|
assetId | 必需 | String | 资产ID。如何获取Asset ID信息>> |
pointId | 必需 | String | 资产测点ID。如何获取pointId信息>> |
interval | 必需 | Integer | 指定测点最后变更数据的时间戳与系统当前时间相比较的时间间隔,单位为毫秒。 |
响应参数¶
名称 | 数据类型 | 描述 |
---|---|---|
data | List<JSONObject> | 测点数据是否为死数检测结果。详见 items |
items¶
示例¶
{
"assetId": "yourAssetId",
"pointId": "yourPointId",
"duration": 1076897472,
"judgeResult": true,
"lastChangedValue": "1",
"lastChangedTimestamp": 1610667000000
}
参数¶
名称 | 数据类型 | 描述 |
---|---|---|
assetId | String | 资产ID。 |
pointId | String | 资产测点ID。 |
duration | Integer | 测点数据未变更的持续时长。 |
judgeResult | Boolean | 判断结果。true 表示测点数据为死数,false 表示测点数据不是死数。 |
lastChangedValue | Double | 测点的最后变更数据。 |
lastChangedTimestamp | Long | 测点最后变更数据时间戳,UNIX时间,精确到毫秒。 |
示例¶
请求示例¶
url: https://{apigw-address}/tsdb-service/v2.1/data/latest/check-dead?orgId=yourOrgId
method: POST
Content-Type: application/json
requestBody:
{
"payload": [
{
"assetId": "yourAssetId",
"pointId": "yourPointId",
"interval": 864000000
}
]
}
返回示例¶
{
"msg": "OK",
"code": 0,
"data": {
"items": [
{
"assetId": "yourAssetId",
"pointId": "yourPointId",
"duration": 1076897472,
"judgeResult": true,
"lastChangedValue": "1",
"lastChangedTimestamp": 1610667000000
},
{
"assetId": "yourAssetId",
"pointId": "yourPointId",
"duration": 1106897472,
"judgeResult": true,
"lastChangedValue": "1",
"lastChangedTimestamp": 1610637000000
},
{
"assetId": "yourAnotherAssetId",
"pointId": "yourPointId",
"duration": 1105757472,
"judgeResult": true,
"lastChangedValue": "29",
"lastChangedTimestamp": 1610638140000
}
]
},
"submsg": ""
}
Java SDK调用示例¶
import com.alibaba.fastjson.JSONObject;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envision.apim.poseidon.request.PoseidonRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CheckDeadData {
private static final String API_GATEWAY_URL = "https://{apigw-address}";
private static class Request extends PoseidonRequest {
public void setBodyParams(String key, Object value) {
bodyParams().put(key, value);
}
public void setMethod(String method) {
this.method = method;
}
private String method;
@Override
public String baseUri() {
return "";
}
@Override
public String method() {
return method;
}
}
public static void main(String[] args) {
//1.在EnOS管理门户的左边导航栏中点击应用注册。
//2.点击需调用API的应用,查看基本信息中的AccessKey和SecretKey
Poseidon poseidon = Poseidon.config(
PConfig.init()
.appKey("AccessKey of your APP")
.appSecret("SecretKey of your APP")
).method("POST").header("Content-Type", "application/json");
Request request = new Request();
List<Map<String, Object>> payload = new ArrayList<>();
Map<String, Object> param1 = new HashMap<>();
param1.put("assetId", "yourAssetId");
param1.put("pointId", "yourPointId");
param1.put("interval", 86400000);
Map<String, Object> param2 = new HashMap<>();
param2.put("assetId", "yourAnotherAssetId");
param2.put("pointId", "yourPointId");
param2.put("interval", 86400000);
payload.add(param1);
payload.add(param2);
request.setBodyParams("payload", payload);
JSONObject response = poseidon
.url(API_GATEWAY_URL + "/tsdb-service/v2.1/data/latest/check-dead")
.queryParam("orgId", "yourOrgId")
.getResponse(request, JSONObject.class);
System.out.println(response);
}
}