操作文档
首页
  • 智能网关系列入门
  • 配置软件使用说明
  • 云平台使用说明
  • 云组态使用说明
  • 数据分析使用说明
  • Box系列使用说明
  • MQTT接入
  • 智能网关系列入门(旧)
  • 配置软件使用说明(旧)
  • BOXConfig使用教程
  • 云平台使用教程
  • 报表设计器使用教程
开发者平台
  • 硬件相关
  • 配置软件相关
  • 平台相关
  • 远程编程相关
  • 组态设计相关
  • 报表相关
  • 第三方BOX相关
  • BoxConfig相关
私有化平台
更新记录
首页
  • 智能网关系列入门
  • 配置软件使用说明
  • 云平台使用说明
  • 云组态使用说明
  • 数据分析使用说明
  • Box系列使用说明
  • MQTT接入
  • 智能网关系列入门(旧)
  • 配置软件使用说明(旧)
  • BOXConfig使用教程
  • 云平台使用教程
  • 报表设计器使用教程
开发者平台
  • 硬件相关
  • 配置软件相关
  • 平台相关
  • 远程编程相关
  • 组态设计相关
  • 报表相关
  • 第三方BOX相关
  • BoxConfig相关
私有化平台
更新记录
  • 新手指引
  • 平台简介

  • 开发者后台

  • API文档

    • 使用流程
    • SDK下载
    • 接口列表

      • 企业
      • 项目
      • 设备
      • 用户
      • 角色
      • 部门
      • 变量
        • 概述
        • 批量变量控制
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 查询条件存储的变量历史值
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 获取扫描设备的Json
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 获取变量分组列表
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 获取变量的历史数据
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 获取指定变量属性值
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 获取变量列表
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 根据收藏组id获取变量列表
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 根据变量id获取变量列表
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 根据项目id获取变量列表
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 根据模板id获取变量列表
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 跟据变量标签id,获取变量列表
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 获取变量列表
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 获取变量属性列表
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 获取变量值
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 维护变量数值
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 扫描设备
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 计算变量的日均值
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
        • 控制设备变量的值
          • 请求参数
          • 返回参数
          • java-sdk 调用示例
          • HTTP 调用示例
      • 模板
      • 系统
      • 报警
      • 标签
      • 看板
      • 看板分组
      • 看板过滤分组
      • 看板树
      • 报表
      • 客户
      • 变量收藏
      • 权限组
      • 日志
      • 消息推送
      • 消息中心服务
  • 示例教程

  • 常见问题

  • 开发者平台
  • API文档
  • 接口列表
2025-11-15
目录

变量

# 概述

变量API 变量是整个项目的基础数据来源,可根据不同的变量指标 计算出不同的变量值,当数据可视化时即可根据不同条件 查询不同的变量值。 该API提供了控制的变量值以及 查询历史变量信息以及查询变量值等等

类名

VariantApi.java

成员方法

名称 方法 Method Path
批量变量控制 batchWriteVariantValue POST /api-business/variant/batchWriteVariantValue
查询条件存储的变量历史值 getConditionHistoryVariantData POST /api-business/variant/getConditionHistoryVariantData
获取扫描设备的Json getScanDevicesJson POST /api-business/variant/getScanDevicesJson
获取变量分组列表 getVariantGroupList POST /api-business/variant/getVariantGroupList
获取变量的历史数据 getVariantHistoryData POST /api-business/variant/getVariantHistoryData
获取指定变量属性值 getVariantIndex POST /api-business/variant/getVariantIndex
获取变量列表 getVariantList POST /api-business/variant/getVariantList
根据收藏组id获取变量列表 getVariantListByFavoriteId POST /api-business/variant/getVariantListByFavoriteId
根据变量id获取变量列表 getVariantListByIds POST /api-business/variant/getVariantListByIds
根据项目id获取变量列表 getVariantListByProjectIds POST /api-business/variant/getVariantListByProjectIds
根据模板id获取变量列表 getVariantListByTemplateIds POST /api-business/variant/getVariantListByTemplateIds
跟据变量标签id,获取变量列表 getVariantListByVariantTagIds POST /api-business/variant/getVariantListByVariantTagIds
获取变量列表 getVariantListNew POST /api-business/variant/getVariantListNew
获取变量属性列表 getVariantPropertiesList POST /api-business/variant/getVariantPropertiesList
获取变量值 getVariantRealtimeValueList POST /api-business/variant/getVariantRealtimeValueList
维护变量数值 maintainVariantIndex POST /api-business/variant/maintainVariantIndex
扫描设备 scanDevices POST /api-business/variant/scanDevices
计算变量的日均值 variantDailyAverageValue POST /api-business/variant/variantDailyAverageValue
控制设备变量的值 writeVariantValue POST /api-business/variant/writeVariantValue

# 批量变量控制

ResultObject batchWriteVariantValue(variantValues)

# 请求参数

名称 类型 描述 备注
variantValues List<WriteVariantValue> 批量设置变量值 ,格式: 设备ID1:变量ID1:值1,设备ID2:变量ID2:值2

# 返回参数

ResultObject

名称 类型 描述 备注
code String 响应码 -
data Object 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
List<WriteVariantValue> variantValues = Arrays.asList(new WriteVariantValue());

try {
    ResultObject result = apiInstance.batchWriteVariantValue(variantValues);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.batchWriteVariantValue异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/batchWriteVariantValue
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"variantValues":[
		{
			"variantId":0,
			"deviceId":"",
			"value":""
		}
	]
}
1
2
3
4
5
6
7
8
9

# 查询条件存储的变量历史值

ResultMapStringListArrayObject getConditionHistoryVariantData(queryHistoryCurveForm)

# 请求参数

名称 类型 描述 备注
queryHistoryCurveForm QueryConditionHistoryParam queryHistoryCurveForm

# QueryConditionHistoryParam

名称 类型 描述 备注
conditionStorageId String 条件存储id
endTime String 结束时间
projectId String 项目Id
startTime String 开始时间

# 返回参数

ResultMapStringListArrayObject

名称 类型 描述 备注
code String 响应码 -
data Map<String, List<List<Object>>> 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryConditionHistoryParam queryHistoryCurveForm = new QueryConditionHistoryParam();

try {
    ResultMapStringListArrayObject result = apiInstance.getConditionHistoryVariantData(queryHistoryCurveForm);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getConditionHistoryVariantData异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getConditionHistoryVariantData
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"conditionStorageId":"",
	"startTime":"",
	"endTime":"",
	"projectId":""
}
1
2
3
4
5
6

# 获取扫描设备的Json

ResultObject getScanDevicesJson(deviceId, id, mainId)

# 请求参数

名称 类型 描述 备注
deviceId String deviceId -
id String id -
mainId String mainId -

# 返回参数

ResultObject

名称 类型 描述 备注
code String 响应码 -
data Object 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
String deviceId = "deviceId_example";
String id = "id_example";
String mainId = "mainId_example";

try {
    ResultObject result = apiInstance.getScanDevicesJson(deviceId, id, mainId);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getScanDevicesJson异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getScanDevicesJson
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"deviceId":"",
	"id":"",
	"mainId":""
}
1
2
3
4
5

# 获取变量分组列表

ResultListVariantGroupVo getVariantGroupList(queryVariantGroupParam)

# 请求参数

名称 类型 描述 备注
queryVariantGroupParam QueryVariantGroupParam queryVariantGroupParam

# QueryVariantGroupParam

名称 类型 描述 备注
resourceId String 资源id
resourceType String 指定资源id的类型。可选[project,template]

# 返回参数

ResultListVariantGroupVo

名称 类型 描述 备注
code String 响应码 -
data List<VariantGroupVo> 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

VariantGroupVo

名称 类型 描述 备注
deviceId String 设备id -
groupId String 分组id -
groupName String 分组名称 -
id String 主键id -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryVariantGroupParam queryVariantGroupParam = new QueryVariantGroupParam();

try {
    ResultListVariantGroupVo result = apiInstance.getVariantGroupList(queryVariantGroupParam);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantGroupList异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantGroupList
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"resourceId":"",
	"resourceType":""
}
1
2
3
4

# 获取变量的历史数据

ResultMapStringListArrayObject getVariantHistoryData(queryHistoryCurveForm)

# 请求参数

名称 类型 描述 备注
queryHistoryCurveForm QueryVariantHistoryParam queryHistoryCurveForm

# QueryVariantHistoryParam

名称 类型 描述 备注
endTime String 结束时间
sampleNumber Integer 是否使用自定义抽样 <=0使用默认, >0=使用sampleNumber进行抽样, 最大20w -
startTime String 开始时间
variantList List<String> 变量集合 格式[deviceId:variantId,...]

# 返回参数

ResultMapStringListArrayObject

名称 类型 描述 备注
code String 响应码 -
data Map<String, List<List<Object>>> 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryVariantHistoryParam queryHistoryCurveForm = new QueryVariantHistoryParam();

try {
    ResultMapStringListArrayObject result = apiInstance.getVariantHistoryData(queryHistoryCurveForm);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantHistoryData异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantHistoryData
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"startTime":"",
	"endTime":"",
	"sampleNumber":0
}
1
2
3
4
5

# 获取指定变量属性值

ResultVariantIndexVo getVariantIndex(queryVariantIndexParam)

根据(模板|项目id)/(template|project)/变量Id/设备Id 获取变量数值信息

# 请求参数

名称 类型 描述 备注
queryVariantIndexParam QueryVariantIndexParam queryVariantIndexParam

# QueryVariantIndexParam

名称 类型 描述 备注
deviceId String 设备Id
resourceId String 模板/项目Id
resourceType String project/template
variantId Integer 变量Id

# 返回参数

ResultVariantIndexVo

名称 类型 描述 备注
code String 响应码 -
data VariantIndexVo 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

VariantIndexVo

名称 类型 描述 备注
createdTime OffsetDateTime 创建时间 -
dataType String 变量类型 -
deviceId String 虚拟设备ID -
indexType String 值类型 -
plcName String 设备名称 -
resourceId String 项目/模板ID -
resourceType String project/template -
updatedTime OffsetDateTime 修改时间 -
variantId Integer 变量ID -
variantName String 变量名称 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryVariantIndexParam queryVariantIndexParam = new QueryVariantIndexParam();

try {
    ResultVariantIndexVo result = apiInstance.getVariantIndex(queryVariantIndexParam);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantIndex异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantIndex
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"resourceId":"",
	"variantId":0,
	"deviceId":"",
	"resourceType":""
}
1
2
3
4
5
6

# 获取变量列表

ResultIPageVariantDetailedInfoVo getVariantList(queryVariantParam)

根据不同得条件查询变量

# 请求参数

名称 类型 描述 备注
queryVariantParam QueryVariantParam queryVariantParam

# QueryVariantParam

名称 类型 描述 备注
currentPage Integer 当前页
isStorageStored Boolean 只返回存在 条件储存关联关系的 变量 -
isStored Boolean 返回存在 储存的变量 -
keyword String 模糊搜索变量id/名称 -
pageSize Integer 分页大小
resourceIds List<String> 资源id列表,由resourceType指定类型
resourceType String 资源类型,可选【project=‘项目’,template=‘模板’,device=‘设备’,variantFavorite=‘变量组(单个查询.模板项目拼接项目格式:favoriteId:projectId)’,condition=‘条件储存’,variantTag=‘变量标签’】
saveType String 类型 可传值:[0,1,2,3]对应【0.不存储,1.周期存储(需要制定saveValue周期时间),2.变化存储,3.条件存储】 -
saveValue String 值,在saveType指定为1时需要指定savaValue -
variantGroupIds List<String> 变量分组id -
variantLevel String 控制等级 -
writeable String 可读/读写 -

# 返回参数

ResultIPageVariantDetailedInfoVo

名称 类型 描述 备注
code String 响应码 -
data IPageVariantDetailedInfoVo 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

IPageVariantDetailedInfoVo

名称 类型 描述 备注
current Long -
hitCount Boolean -
pages Long -
records List<VariantDetailedInfoVo> -
searchCount Boolean -
size Long -
total Long -

VariantDetailedInfoVo

名称 类型 描述 备注
addr String 变量地址 -
addrType String 变量地址 -
addrType2 String 变量地址 -
addrValue String 变量地址 -
addrValue2 String 变量地址 -
collectorName String 变量地址 -
dataType String 数据类型 -
deviceId String 设备id -
groupName String 分组名称 -
levelName String 安全类型名称 -
phoneVisible Integer 可移动的 -
plcId Integer plcId -
plcName String plc名称 -
projectId String 项目Id -
readOnly Boolean 是否只读 -
remark String 变量描述 -
saveRangeEnabled Boolean 是否开启 -
saveRangeMax String 最大值 -
saveRangeMin String 最小值 -
saveTimeUnit String 单位 -
saveType String 保存类型 -
saveValue String 保存值 -
showAddr String 变量显示地址 -
sort Integer 排序号 -
tagId String 关联标签id -
tagName String 关联标签name -
textFalse String textFalse -
textTrue String textTrue -
unit String 单位 -
variantId Integer 变量id -
variantLevel String 变量级别 -
variantName String 变量name -
writeable String 读写 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryVariantParam queryVariantParam = new QueryVariantParam();

try {
    ResultIPageVariantDetailedInfoVo result = apiInstance.getVariantList(queryVariantParam);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantList异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantList
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"saveType":"",
	"saveValue":"",
	"isStorageStored":false,
	"pageSize":0,
	"writeable":"",
	"currentPage":0,
	"isStored":false,
	"keyword":"",
	"resourceType":"",
	"variantLevel":""
}
1
2
3
4
5
6
7
8
9
10
11
12

# 根据收藏组id获取变量列表

ResultListVariantByIdVo getVariantListByFavoriteId(queryVariantParam)

根据变量多个收藏组id获取变量列表

# 请求参数

名称 类型 描述 备注
queryVariantParam QueryVariantByFavoriteIdParam queryVariantParam

# QueryVariantByFavoriteIdParam

名称 类型 描述 备注
projectId String 项目ID, 不为空时查询项目数据, 当模板ID也不为空时以项目ID为主 -
templateId String 模板ID,不为空时查询模板数据,当项目ID也不为空时以项目ID为主 -
variantFavoriteId String 变量收藏组id -

# 返回参数

ResultListVariantByIdVo

名称 类型 描述 备注
code String 响应码 -
data List<VariantByIdVo> 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

VariantByIdVo

名称 类型 描述 备注
addr String 变量地址 -
addrType String 变量地址 -
addrType2 String 变量地址类型2 -
addrValue String 变量地址 -
addrValue2 String 变量地址2 -
collectorName String 控制器名称 -
dataType String 变量数据类型,也是变量的数据类型 -
deviceId String 设备id, 该变量所属设备id -
groupName String 分组名称 -
levelName String 安全类型名称 -
phoneVisible Integer 可移动的 -
plcId Integer plcId -
plcName String plc名称 -
projectId String 项目Id -
readOnly Boolean 是否只读 -
saveRangeEnabled Boolean 是否开启 -
saveRangeMax String 最大值 -
saveRangeMin String 最小值 -
saveTimeUnit String 单位 -
saveType String 保存类型, 0:不存储,1:周期存储,2:变化存储,3:条件存储 -
saveValue String 保存值 -
serialNumber String 设备序列号, 该变量所属设备序列号 -
showAddr String 变量对外显示地址 -
sort Integer 排序号 -
status Boolean 变量状态 是否在线 -
textFalse String textFalse -
textTrue String textTrue -
unit String 变量单位 -
value String 变量值 -
variantId Integer 变量id -
variantLevel String 变量级别 -
variantName String 变量名称 -
writeable String 读写类型 0:只读,1:可读可写 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryVariantByFavoriteIdParam queryVariantParam = new QueryVariantByFavoriteIdParam();

try {
    ResultListVariantByIdVo result = apiInstance.getVariantListByFavoriteId(queryVariantParam);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantListByFavoriteId异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantListByFavoriteId
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"templateId":"",
	"projectId":"",
	"variantFavoriteId":""
}
1
2
3
4
5

# 根据变量id获取变量列表

ResultListVariantDetailedInfoVo getVariantListByIds(variantList)

根据变量id获取变量详情

# 请求参数

名称 类型 描述 备注
variantList List<String> 变量列表 [设备id:变量id,设备id:...]

# 返回参数

ResultListVariantDetailedInfoVo

名称 类型 描述 备注
code String 响应码 -
data List<VariantDetailedInfoVo> 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

VariantDetailedInfoVo

名称 类型 描述 备注
addr String 变量地址 -
addrType String 变量地址 -
addrType2 String 变量地址 -
addrValue String 变量地址 -
addrValue2 String 变量地址 -
collectorName String 变量地址 -
dataType String 数据类型 -
deviceId String 设备id -
groupName String 分组名称 -
levelName String 安全类型名称 -
phoneVisible Integer 可移动的 -
plcId Integer plcId -
plcName String plc名称 -
projectId String 项目Id -
readOnly Boolean 是否只读 -
remark String 变量描述 -
saveRangeEnabled Boolean 是否开启 -
saveRangeMax String 最大值 -
saveRangeMin String 最小值 -
saveTimeUnit String 单位 -
saveType String 保存类型 -
saveValue String 保存值 -
showAddr String 变量显示地址 -
sort Integer 排序号 -
tagId String 关联标签id -
tagName String 关联标签name -
textFalse String textFalse -
textTrue String textTrue -
unit String 单位 -
variantId Integer 变量id -
variantLevel String 变量级别 -
variantName String 变量name -
writeable String 读写 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
List<String> variantList = Arrays.asList(new List<String>());

try {
    ResultListVariantDetailedInfoVo result = apiInstance.getVariantListByIds(variantList);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantListByIds异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantListByIds
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"variantList":[]
}
1
2
3

# 根据项目id获取变量列表

ResultIPageVariantByIdVo getVariantListByProjectIds(queryVariantParam)

根据变量多个项目id获取变量列表

# 请求参数

名称 类型 描述 备注
queryVariantParam QueryVariantByProjectIdParam queryVariantParam

# QueryVariantByProjectIdParam

名称 类型 描述 备注
currentPage Integer 当前页, 为空=查所有
dataType String 数据类型 [int32/float/string....] -
deviceIds List<String> 设备Id列表 (不是强校验参数,传入错误将返回空) -
keyword String 模糊搜索变量id/名称 -
pageSize Integer 分页大小最大1w,大于1w时强行设置为1w, 为空=查所有
projectIds List<String> 项目ID列表,最大5个项目id
saveType String 类型 可传值:[0,1,2,3]对应【0.不存储,1.周期存储(需要制定saveValue周期时间),2.变化存储,3.条件存储】 -
saveValue String 周期储存值 在saveType指定为1时, 需要指定savaValue -
variantFavoriteIds List<String> 变量收藏组ids(不是强校验参数,传入错误将返回空) -
variantGroupIds List<String> 变量分组id(不是强校验参数,传入错误将返回空) -
variantLevel String 控制等级 '':不启用类别,2:专家类,3:工程师类,4:操作师类 -
variantStatus Integer 筛选变量状态 0:全部显示,1:在线,2不在线 -
writeable String 0:可读,1:可读可写 -

# 返回参数

ResultIPageVariantByIdVo

名称 类型 描述 备注
code String 响应码 -
data IPageVariantByIdVo 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

IPageVariantByIdVo

名称 类型 描述 备注
current Long -
hitCount Boolean -
pages Long -
records List<VariantByIdVo> -
searchCount Boolean -
size Long -
total Long -

VariantByIdVo

名称 类型 描述 备注
addr String 变量地址 -
addrType String 变量地址 -
addrType2 String 变量地址类型2 -
addrValue String 变量地址 -
addrValue2 String 变量地址2 -
collectorName String 控制器名称 -
dataType String 变量数据类型,也是变量的数据类型 -
deviceId String 设备id, 该变量所属设备id -
groupName String 分组名称 -
levelName String 安全类型名称 -
phoneVisible Integer 可移动的 -
plcId Integer plcId -
plcName String plc名称 -
projectId String 项目Id -
readOnly Boolean 是否只读 -
saveRangeEnabled Boolean 是否开启 -
saveRangeMax String 最大值 -
saveRangeMin String 最小值 -
saveTimeUnit String 单位 -
saveType String 保存类型, 0:不存储,1:周期存储,2:变化存储,3:条件存储 -
saveValue String 保存值 -
serialNumber String 设备序列号, 该变量所属设备序列号 -
showAddr String 变量对外显示地址 -
sort Integer 排序号 -
status Boolean 变量状态 是否在线 -
textFalse String textFalse -
textTrue String textTrue -
unit String 变量单位 -
value String 变量值 -
variantId Integer 变量id -
variantLevel String 变量级别 -
variantName String 变量名称 -
writeable String 读写类型 0:只读,1:可读可写 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryVariantByProjectIdParam queryVariantParam = new QueryVariantByProjectIdParam();

try {
    ResultIPageVariantByIdVo result = apiInstance.getVariantListByProjectIds(queryVariantParam);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantListByProjectIds异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantListByProjectIds
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"saveType":"",
	"saveValue":"",
	"dataType":"",
	"variantStatus":0,
	"pageSize":0,
	"writeable":"",
	"currentPage":0,
	"keyword":"",
	"variantLevel":""
}
1
2
3
4
5
6
7
8
9
10
11

# 根据模板id获取变量列表

ResultIPageVariantByIdVo getVariantListByTemplateIds(queryVariantParam)

根据变量多个模板id获取变量列表

# 请求参数

名称 类型 描述 备注
queryVariantParam QueryVariantByTemplateIdParam queryVariantParam

# QueryVariantByTemplateIdParam

名称 类型 描述 备注
currentPage Integer 当前页, 为空=查所有
deviceIds List<String> 设备Id列表 (不是强校验参数,传入错误将返回空) -
keyword String 模糊搜索变量id/名称 -
pageSize Integer 分页大小最大1w,大于1w时强行设置为1w, 为空=查所有
saveType String 类型 可传值:[0,1,2,3]对应【0.不存储,1.周期存储(需要制定saveValue周期时间),2.变化存储,3.条件存储】 -
saveValue String 周期储存值 在saveType指定为1时, 需要指定savaValue -
templateIds List<String> 项目ID列表
variantGroupIds List<String> 变量分组id(不是强校验参数,传入错误将返回空) -
variantLevel String 控制等级 '':不启用类别,2:专家类,3:工程师类,4:操作师类 -
writeable String 0:可读,1:可读可写 -

# 返回参数

ResultIPageVariantByIdVo

名称 类型 描述 备注
code String 响应码 -
data IPageVariantByIdVo 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

IPageVariantByIdVo

名称 类型 描述 备注
current Long -
hitCount Boolean -
pages Long -
records List<VariantByIdVo> -
searchCount Boolean -
size Long -
total Long -

VariantByIdVo

名称 类型 描述 备注
addr String 变量地址 -
addrType String 变量地址 -
addrType2 String 变量地址类型2 -
addrValue String 变量地址 -
addrValue2 String 变量地址2 -
collectorName String 控制器名称 -
dataType String 变量数据类型,也是变量的数据类型 -
deviceId String 设备id, 该变量所属设备id -
groupName String 分组名称 -
levelName String 安全类型名称 -
phoneVisible Integer 可移动的 -
plcId Integer plcId -
plcName String plc名称 -
projectId String 项目Id -
readOnly Boolean 是否只读 -
saveRangeEnabled Boolean 是否开启 -
saveRangeMax String 最大值 -
saveRangeMin String 最小值 -
saveTimeUnit String 单位 -
saveType String 保存类型, 0:不存储,1:周期存储,2:变化存储,3:条件存储 -
saveValue String 保存值 -
serialNumber String 设备序列号, 该变量所属设备序列号 -
showAddr String 变量对外显示地址 -
sort Integer 排序号 -
status Boolean 变量状态 是否在线 -
textFalse String textFalse -
textTrue String textTrue -
unit String 变量单位 -
value String 变量值 -
variantId Integer 变量id -
variantLevel String 变量级别 -
variantName String 变量名称 -
writeable String 读写类型 0:只读,1:可读可写 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryVariantByTemplateIdParam queryVariantParam = new QueryVariantByTemplateIdParam();

try {
    ResultIPageVariantByIdVo result = apiInstance.getVariantListByTemplateIds(queryVariantParam);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantListByTemplateIds异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantListByTemplateIds
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"saveType":"",
	"saveValue":"",
	"pageSize":0,
	"writeable":"",
	"currentPage":0,
	"keyword":"",
	"variantLevel":""
}
1
2
3
4
5
6
7
8
9

# 跟据变量标签id,获取变量列表

ResultListVariantByTagVo getVariantListByVariantTagIds(tagIds)

根据变量多个标签id获取变量列表

# 请求参数

名称 类型 描述 备注
tagIds List<String> tagIds -

# 返回参数

ResultListVariantByTagVo

名称 类型 描述 备注
code String 响应码 -
data List<VariantByTagVo> 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

VariantByTagVo

名称 类型 描述 备注
dataType String 变量数据类型,也是变量的数据类型 -
deviceId String 所属设备ID,所属 模板/项目 ID不为空时 那么就是 模板/项目 的设备 -
projectId String 所属项目ID -
templateId String 所属模板ID,当该属性不为空时,代表该变量是模板变量,且项目属于模板项目 -
variantId Integer 变量ID -
variantName String 变量名称 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
List<String> tagIds = Arrays.asList(new List<String>());

try {
    ResultListVariantByTagVo result = apiInstance.getVariantListByVariantTagIds(tagIds);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantListByVariantTagIds异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantListByVariantTagIds
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"tagIds":[]
}
1
2
3

# 获取变量列表

ResultIPageVariantDetailedInfoVo getVariantListNew(queryVariantParam)

根据不同得条件查询变量

# 请求参数

名称 类型 描述 备注
queryVariantParam QueryVariantParam queryVariantParam

# QueryVariantParam

名称 类型 描述 备注
currentPage Integer 当前页
isStorageStored Boolean 只返回存在 条件储存关联关系的 变量 -
isStored Boolean 返回存在 储存的变量 -
keyword String 模糊搜索变量id/名称 -
pageSize Integer 分页大小
resourceIds List<String> 资源id列表,由resourceType指定类型
resourceType String 资源类型,可选【project=‘项目’,template=‘模板’,device=‘设备’,variantFavorite=‘变量组(单个查询.模板项目拼接项目格式:favoriteId:projectId)’,condition=‘条件储存’,variantTag=‘变量标签’】
saveType String 类型 可传值:[0,1,2,3]对应【0.不存储,1.周期存储(需要制定saveValue周期时间),2.变化存储,3.条件存储】 -
saveValue String 值,在saveType指定为1时需要指定savaValue -
variantGroupIds List<String> 变量分组id -
variantLevel String 控制等级 -
writeable String 可读/读写 -

# 返回参数

ResultIPageVariantDetailedInfoVo

名称 类型 描述 备注
code String 响应码 -
data IPageVariantDetailedInfoVo 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

IPageVariantDetailedInfoVo

名称 类型 描述 备注
current Long -
hitCount Boolean -
pages Long -
records List<VariantDetailedInfoVo> -
searchCount Boolean -
size Long -
total Long -

VariantDetailedInfoVo

名称 类型 描述 备注
addr String 变量地址 -
addrType String 变量地址 -
addrType2 String 变量地址 -
addrValue String 变量地址 -
addrValue2 String 变量地址 -
collectorName String 变量地址 -
dataType String 数据类型 -
deviceId String 设备id -
groupName String 分组名称 -
levelName String 安全类型名称 -
phoneVisible Integer 可移动的 -
plcId Integer plcId -
plcName String plc名称 -
projectId String 项目Id -
readOnly Boolean 是否只读 -
remark String 变量描述 -
saveRangeEnabled Boolean 是否开启 -
saveRangeMax String 最大值 -
saveRangeMin String 最小值 -
saveTimeUnit String 单位 -
saveType String 保存类型 -
saveValue String 保存值 -
showAddr String 变量显示地址 -
sort Integer 排序号 -
tagId String 关联标签id -
tagName String 关联标签name -
textFalse String textFalse -
textTrue String textTrue -
unit String 单位 -
variantId Integer 变量id -
variantLevel String 变量级别 -
variantName String 变量name -
writeable String 读写 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryVariantParam queryVariantParam = new QueryVariantParam();

try {
    ResultIPageVariantDetailedInfoVo result = apiInstance.getVariantListNew(queryVariantParam);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantListNew异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantListNew
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"saveType":"",
	"saveValue":"",
	"isStorageStored":false,
	"pageSize":0,
	"writeable":"",
	"currentPage":0,
	"isStored":false,
	"keyword":"",
	"resourceType":"",
	"variantLevel":""
}
1
2
3
4
5
6
7
8
9
10
11
12

# 获取变量属性列表

ResultIPageVariantIndexVo getVariantPropertiesList(queryVariantPropertiesParam)

根据(模板|项目id)/(template|project) 获取变量属性信息

# 请求参数

名称 类型 描述 备注
queryVariantPropertiesParam QueryVariantPropertiesParam queryVariantPropertiesParam

# QueryVariantPropertiesParam

名称 类型 描述 备注
currentPage Integer 当前页
keyword String 模糊搜索变量id/名称 -
pageSize Integer 分页大小
resourceId String 模板/项目Id
resourceType String project/template

# 返回参数

ResultIPageVariantIndexVo

名称 类型 描述 备注
code String 响应码 -
data IPageVariantIndexVo 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

IPageVariantIndexVo

名称 类型 描述 备注
current Long -
hitCount Boolean -
pages Long -
records List<VariantIndexVo> -
searchCount Boolean -
size Long -
total Long -

VariantIndexVo

名称 类型 描述 备注
createdTime OffsetDateTime 创建时间 -
dataType String 变量类型 -
deviceId String 虚拟设备ID -
indexType String 值类型 -
plcName String 设备名称 -
resourceId String 项目/模板ID -
resourceType String project/template -
updatedTime OffsetDateTime 修改时间 -
variantId Integer 变量ID -
variantName String 变量名称 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryVariantPropertiesParam queryVariantPropertiesParam = new QueryVariantPropertiesParam();

try {
    ResultIPageVariantIndexVo result = apiInstance.getVariantPropertiesList(queryVariantPropertiesParam);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantPropertiesList异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantPropertiesList
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"resourceId":"",
	"pageSize":0,
	"currentPage":0,
	"keyword":"",
	"resourceType":""
}
1
2
3
4
5
6
7

# 获取变量值

ResultListVariantRealtimeValue getVariantRealtimeValueList(variantIds)

根据变量列表查询变量值

# 请求参数

名称 类型 描述 备注
variantIds List<String> 变量列表,结构为[设备id:变量id,...] -

# 返回参数

ResultListVariantRealtimeValue

名称 类型 描述 备注
code String 响应码 -
data List<VariantRealtimeValue> 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

VariantRealtimeValue

名称 类型 描述 备注
good Boolean 变量状态 -
time Long 变量值时间 -
value String 变量值 -
variantId String 变量id -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
List<String> variantIds = Arrays.asList(new List<String>());

try {
    ResultListVariantRealtimeValue result = apiInstance.getVariantRealtimeValueList(variantIds);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.getVariantRealtimeValueList异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/getVariantRealtimeValueList
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"variantIds":[]
}
1
2
3

# 维护变量数值

ResultObject maintainVariantIndex(variantIndexForm)

根据Form类中的 operateType属性 对变量数值进行对应 操作

# 请求参数

名称 类型 描述 备注
variantIndexForm VariantIndexForm variantIndexForm

# VariantIndexForm

名称 类型 描述 备注
deviceId String 设备Id
operateType String add/del(新增变量指标或 删除变量指标)
resourceId String 模板/项目Id
resourceType String project/template -
variantId Integer 变量Id
variantIndex String 变量指标

# 返回参数

ResultObject

名称 类型 描述 备注
code String 响应码 -
data Object 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
VariantIndexForm variantIndexForm = new VariantIndexForm();

try {
    ResultObject result = apiInstance.maintainVariantIndex(variantIndexForm);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.maintainVariantIndex异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/maintainVariantIndex
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"resourceId":"",
	"variantIndex":"",
	"operateType":"",
	"variantId":0,
	"deviceId":"",
	"resourceType":""
}
1
2
3
4
5
6
7
8

# 扫描设备

ResultObject scanDevices(param)

# 请求参数

名称 类型 描述 备注
param ScanDevicesParam param

# ScanDevicesParam

名称 类型 描述 备注
baud String -
dataBit String -
deviceId String -
id String -
ip String -
model String -
parity String -
plcId String -
port String -
portId String -
stopBit String -
timeout String -
type String -

# 返回参数

ResultObject

名称 类型 描述 备注
code String 响应码 -
data Object 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
ScanDevicesParam param = new ScanDevicesParam();

try {
    ResultObject result = apiInstance.scanDevices(param);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.scanDevices异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/scanDevices
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"baud":"",
	"stopBit":"",
	"parity":"",
	"dataBit":"",
	"ip":"",
	"portId":"",
	"type":"",
	"deviceId":"",
	"timeout":"",
	"port":"",
	"model":"",
	"id":"",
	"plcId":""
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 计算变量的日均值

ResultListDeviceDailyAverageValueVo variantDailyAverageValue(queryDailyAverageValueParam)

# 请求参数

名称 类型 描述 备注
queryDailyAverageValueParam QueryDailyAverageValueParam queryDailyAverageValueParam

# QueryDailyAverageValueParam

名称 类型 描述 备注
dailyAverageValues List<String> 变量集合 格式[deviceId:variantId,...]
endTime String 结束时间
startTime String 开始时间

# 返回参数

ResultListDeviceDailyAverageValueVo

名称 类型 描述 备注
code String 响应码 -
data List<DeviceDailyAverageValueVo> 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

DeviceDailyAverageValueVo

名称 类型 描述 备注
dailyAverageValueVos List<DailyAverageValueVo> -
deviceId String -

DailyAverageValueVo

名称 类型 描述 备注
avgValue Object -
variantId String -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
QueryDailyAverageValueParam queryDailyAverageValueParam = new QueryDailyAverageValueParam();

try {
    ResultListDeviceDailyAverageValueVo result = apiInstance.variantDailyAverageValue(queryDailyAverageValueParam);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.variantDailyAverageValue异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/variantDailyAverageValue
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"startTime":"",
	"endTime":""
}
1
2
3
4

# 控制设备变量的值

ResultObject writeVariantValue(param)

# 请求参数

名称 类型 描述 备注
param WriteVariantValue param

# WriteVariantValue

名称 类型 描述 备注
deviceId String 设备ID -
value String 变量值 -
variantId Integer 变量ID -

# 返回参数

ResultObject

名称 类型 描述 备注
code String 响应码 -
data Object 响应数据 -
msg String 响应消息 -
time OffsetDateTime 响应时间 -

# java-sdk 调用示例

//实例化api类,传入token
VariantApi apiInstance = new VariantApi(token);
//实例化请求参数
WriteVariantValue param = new WriteVariantValue();

try {
    ResultObject result = apiInstance.writeVariantValue(param);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("调用VariantApi.writeVariantValue异常: " + e.getMessage());
    e.printStackTrace();
}
1
2
3
4
5
6
7
8
9
10
11
12

# HTTP 调用示例

属性 名称
HTTP请求地址 http://[server]:[port]/api-business/variant/writeVariantValue
请求方式 POST
Content-Type application/json
header:key Authorization
header:value Bearer YOUR_ACCESS_TOKEN

请求参数:

{
	"variantId":0,
	"deviceId":"",
	"value":""
}
1
2
3
4
5
部门
模板

← 部门 模板→

最近更新
01
401-使用说明
02-07
02
DLT645串口
02-02
03
英威腾IVC系列串口
02-02
更多文章>
Copyright © 2021-2026 沪公网安备31011702891182号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式