# topstack-sdk-java
**Repository Path**: iotopo/topstack-sdk-java
## Basic Information
- **Project Name**: topstack-sdk-java
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-08-05
- **Last Updated**: 2025-08-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# TopStack SDK Java
官方网址:https://www.iotopo.com
TopStack 是一款轻量型 Web 组态软件,提供设备数据采集、定时任务、控制策略、联动控制、设备告警、设备维护管理、设备绩效管理、能源管理、组态开发、报表开发等功能。支持移动端访问,支持本地部署,可帮助企业从无到有快速搭建工业物联网平台。
TopStack 目前已完成了信创生态的全面适配:
* 适配国产服务器:龙芯、飞腾、鲲鹏、海光、兆芯等。
* 适配国产操作系统:麒麟、统信等操作系统。
* 适配国产数据库:达梦、人大金仓等国产数据库。
本项目为 TopStack SDK 的 Java 版本,支持 JDK8及以上版本。
## 安装
### Maven
```xml
com.iotopo.topstack
topstack-sdk
1.0.1
```
## 认证方式
TopStack SDK Java 使用 AppID/AppSecret 认证方式:
```java
import com.iotopo.topstack.TopstackSDK;
// 使用 AppID/AppSecret 认证方式
TopstackSDK sdk = new TopstackSDK("http://localhost:8000", "your-app-id", "your-app-secret");
```
**认证方式说明:**
- **AppID/AppSecret 认证**:通过获取访问令牌进行认证,支持令牌自动刷新,适合企业级应用
- 自动调用 `/open_api/v1/auth/access_token` 接口获取访问令牌
- 访问令牌自动缓存,并在过期前5分钟自动刷新
- 所有 API 调用自动携带 Bearer 令牌进行认证
## 快速开始
### 初始化客户端
#### 方式一:使用 TopstackSDK(推荐)
```java
import com.iotopo.topstack.TopstackSDK;
// 使用 AppID/AppSecret 认证方式
TopstackSDK sdk = new TopstackSDK("http://localhost:8000", "your-app-id", "your-app-secret");
// 获取各个模块的 API 实例
IotApi iotApi = sdk.getIotApi();
```
#### 方式二:直接使用 TopstackClient
```java
import com.iotopo.topstack.client.TopstackClient;
import com.iotopo.topstack.iot.IotApi;
// 使用 AppID/AppSecret 认证方式
TopstackClient client = new TopstackClient("http://localhost:8000", "your-app-id", "your-app-secret");
IotApi iotApi = new IotApi(client);
```
### 查询单测点实时值
```java
import com.iotopo.topstack.iot.FindLastRequest;
import com.iotopo.topstack.iot.FindLastResponse;
import com.iotopo.topstack.client.ResponseData;
FindLastRequest request = new FindLastRequest();
request.setDeviceID("device-id");
request.setPointID("point-id");
ResponseData response = iotApi.findLast(request);
System.out.println("实时值: " + response.getData().getValue());
```
### 批量查询多测点实时值
```java
import java.util.Arrays;
import java.util.List;
FindLastRequest req1 = new FindLastRequest();
req1.setDeviceID("device1");
req1.setPointID("point1");
FindLastRequest req2 = new FindLastRequest();
req2.setDeviceID("device2");
req2.setPointID("point2");
List requests = Arrays.asList(req1, req2);
ResponseData> response = iotApi.findLastBatch(requests);
```
### 控制指令下发
```java
import com.iotopo.topstack.iot.SetValueRequest;
SetValueRequest request = new SetValueRequest();
request.setDeviceID("device-id");
request.setPointID("point-id");
request.setValue("value");
ResponseData