2026-01-16 09:06:30 +08:00
|
|
|
|
package com.ruoyi.device.domain.api;
|
|
|
|
|
|
|
|
|
|
|
|
import com.ruoyi.device.domain.model.thingsboard.AttributeMap;
|
|
|
|
|
|
import com.ruoyi.device.domain.model.thingsboard.DeviceInfo;
|
|
|
|
|
|
import com.ruoyi.device.domain.model.thingsboard.TelemetryMap;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* ThingsBoard设备服务接口
|
|
|
|
|
|
* 提供类型安全的设备查询功能
|
|
|
|
|
|
*/
|
|
|
|
|
|
public interface IThingsBoardDomain {
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取所有设备的迭代器
|
|
|
|
|
|
* 每次迭代返回一页设备列表
|
|
|
|
|
|
*
|
|
|
|
|
|
* @return 设备迭代器
|
|
|
|
|
|
*/
|
|
|
|
|
|
Iterable<List<DeviceInfo>> getAllDevices();
|
|
|
|
|
|
|
2026-01-17 15:22:02 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 获取所有网关设备的迭代器
|
|
|
|
|
|
* 每次迭代返回一页网关设备列表
|
|
|
|
|
|
* 只返回 additionalInfo.gateway = true 的设备
|
|
|
|
|
|
*
|
|
|
|
|
|
* @return 网关设备迭代器
|
|
|
|
|
|
*/
|
|
|
|
|
|
Iterable<List<DeviceInfo>> getAllGatewayDevices();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 根据设备ID获取设备信息
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param deviceId 设备ID
|
|
|
|
|
|
* @return 设备信息,如果设备不存在则返回 null
|
|
|
|
|
|
*/
|
|
|
|
|
|
DeviceInfo getDeviceInfo(String deviceId);
|
|
|
|
|
|
|
2026-01-16 09:06:30 +08:00
|
|
|
|
/**
|
|
|
|
|
|
* 根据设备ID获取设备的所有属性
|
|
|
|
|
|
* 只返回已注册的属性键对应的数据,未注册的键会被忽略
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param deviceId 设备ID
|
|
|
|
|
|
* @return 类型安全的属性映射
|
|
|
|
|
|
*/
|
|
|
|
|
|
AttributeMap getDeviceAttributes(String deviceId);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 根据设备ID获取设备的所有遥测数据
|
|
|
|
|
|
* 只返回已注册的遥测键对应的数据,未注册的键会被忽略
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param deviceId 设备ID
|
|
|
|
|
|
* @return 类型安全的遥测数据映射
|
|
|
|
|
|
*/
|
|
|
|
|
|
TelemetryMap getDeviceTelemetry(String deviceId);
|
2026-01-16 15:46:03 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 根据设备ID获取设备的预定义属性
|
|
|
|
|
|
* 只返回在 DeviceAttributes 中预定义的属性
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param deviceId 设备ID
|
|
|
|
|
|
* @return 类型安全的属性映射,只包含预定义的属性
|
|
|
|
|
|
*/
|
|
|
|
|
|
AttributeMap getPredefinedDeviceAttributes(String deviceId);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 根据设备ID获取设备的预定义遥测数据
|
|
|
|
|
|
* 只返回在 DeviceTelemetry 中预定义的遥测数据
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param deviceId 设备ID
|
|
|
|
|
|
* @return 类型安全的遥测数据映射,只包含预定义的遥测数据
|
|
|
|
|
|
*/
|
|
|
|
|
|
TelemetryMap getPredefinedDeviceTelemetry(String deviceId);
|
2026-01-17 13:57:14 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取设备所属的网关设备ID
|
|
|
|
|
|
* 通过 ThingsBoard 的 EntityRelation 查询设备与网关的 "Contains" 关系
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param deviceId 设备ID
|
|
|
|
|
|
* @return 网关设备ID,如果设备不属于任何网关则返回 null
|
|
|
|
|
|
*/
|
2026-01-17 16:08:58 +08:00
|
|
|
|
@Deprecated
|
2026-01-17 13:57:14 +08:00
|
|
|
|
String getDeviceGatewayId(String deviceId);
|
2026-01-17 15:22:02 +08:00
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* 获取网关设备的所有子设备ID列表
|
|
|
|
|
|
* 通过 ThingsBoard 的 EntityRelation 查询网关的 "Contains" 关系
|
|
|
|
|
|
*
|
|
|
|
|
|
* @param gatewayDeviceId 网关设备ID
|
|
|
|
|
|
* @return 子设备ID列表,如果网关没有子设备则返回空列表
|
|
|
|
|
|
*/
|
|
|
|
|
|
List<String> getGatewayChildDevices(String gatewayDeviceId);
|
2026-01-16 09:06:30 +08:00
|
|
|
|
}
|