快速入门

SDK 使用教程

本指南帮助您快速使用 SDK 对接 Inteagle 结构健康监测平台。

前置条件

  • 已获取 Access Key 和 Secret Key(联系销售获取)

SDK 安装

SDK 仓库https://github.com/inteagle-vision/shm-sdk

Java SDK

<dependency>
    <groupId>com.inteagle</groupId>
    <artifactId>shm-sdk</artifactId>
    <version>0.3.1</version>
</dependency>
dependencies {
    implementation 'com.inteagle:shm-sdk:0.3.1'
}

Go SDK

Go SDK 即将推出,敬请期待。


快速开始

1. 创建客户端

import com.inteagle.shm.InteagleClient;

InteagleClient client = InteagleClient.builder()
    .apiEndpoint("https://api.shm.inteagle.com")
    .credentials("your-access-key", "your-secret-key")
    .build();

2. 查询项目

// 查询项目列表
List<Project> projects = client.projects().list();

for (Project project : projects) {
    System.out.println("项目: " + project.getName());
    System.out.println("ID: " + project.getId());
}

// 查询项目详情
Project project = client.projects().get("project-id");

3. 查询监测点

// 查询项目下的监测点
List<MonitoringPoint> points = client.points().listByProject("project-id");

for (MonitoringPoint point : points) {
    System.out.println("监测点: " + point.getName());
}

// 查询监测点详情
MonitoringPoint point = client.points().get("point-id");

4. 查询设备

// 查询项目下的设备
List<Device> devices = client.devices().listByProject("project-id");

// 查询设备详情
Device device = client.devices().get("device-id");
System.out.println("设备状态: " + (device.isOnline() ? "在线" : "离线"));

5. 查询遥测数据

// 查询监测点最新数据
TelemetryResult latest = client.telemetry()
    .entity("POINT", "point-id")
    .latest();

System.out.println("dx: " + latest.getValue("dx"));
System.out.println("dy: " + latest.getValue("dy"));

// 查询历史数据
long endTs = System.currentTimeMillis();
long startTs = endTs - 24 * 60 * 60 * 1000; // 最近24小时

TelemetryResult history = client.telemetry()
    .entity("POINT", "point-id")
    .timeRange(startTs, endTs)
    .metrics("dx", "dy")
    .query();

6. 查询告警

// 查询活动告警
List<Alarm> alarms = client.alarms()
    .projectId("project-id")
    .status("ACTIVE")
    .list();

for (Alarm alarm : alarms) {
    System.out.println("告警: " + alarm.getType());
    System.out.println("级别: " + alarm.getSeverity());
}

7. 查询告警规则

// 查询项目的告警规则
List<AlarmRule> rules = client.alarmRules()
    .projectId("project-id")
    .list();

for (AlarmRule rule : rules) {
    System.out.println("规则: " + rule.getName());
    System.out.println("启用: " + rule.isEnabled());
}

命令行工具

SDK 提供命令行工具 shm-cli,方便调试和测试:

# 配置凭证
shm-cli config --access-key YOUR_KEY --secret-key YOUR_SECRET

# 查询项目
shm-cli projects list

# 查询监测点
shm-cli points list --project PROJECT_ID

# 查询遥测数据
shm-cli telemetry latest --entity-type POINT --entity-id POINT_ID

# 查询告警规则
shm-cli alarm-rules list --project PROJECT_ID

下一步