package com.ruoyi.iot.service; import com.ruoyi.iot.domain.CurrentDeviceData; import com.ruoyi.iot.domain.HistoryDeviceData; import com.ruoyi.iot.domain.IotDeviceDetail; import com.ruoyi.iot.domain.IotDeviceInfo; import com.ruoyi.iot.domain.response.CommandResponse; import com.ruoyi.ss.device.domain.Device; import com.ruoyi.ss.device.domain.enums.DeviceOnlineStatus; import java.util.List; /** * @author wjh * 2024/3/20 */ public interface IotService { /** * 向设备发送命令 * * @param deviceName OneNet设备名称(即设备表的MAC号) * @param command 命令字符串 * @param productId * @return */ default CommandResponse sendCommand(String deviceName, String command, String productId) { return sendCommand(deviceName, command, null, productId); } /** * 向设备发送命令 * * @param deviceName OneNet设备名称(即设备表的MAC号) * @param command 命令字符串 * @param timeout * @param productId * @return */ CommandResponse sendCommand(String deviceName, String command, Integer timeout, String productId); /** * 获取设备在线状态 * * @param deviceName OneNet设备名称(即设备表的MAC号) * @param productId */ DeviceOnlineStatus getOnlineStatus(String deviceName, String productId); /** * 通电 * * @param deviceName OneNet设备名称(即设备表的MAC号) * @param productId * @return 是否成功 */ boolean open(String deviceName, String productId); /** * 断电 * * @param deviceName OneNet设备名称(即设备表的MAC号) * @param productId * @return 是否成功 */ boolean close(String deviceName, String productId); /** * 获取历史设备数据点信息 * * @param deviceName OneNet设备名称(即设备表的MAC号) * @param productId */ HistoryDeviceData getHistoryDataPoint(String deviceName, String productId); /** * 批量获取当前设备数据点信息 * * @param deviceNames 设备名称列表 * @param productId */ List getCurrentDataPoint(List deviceNames, String productId); /** * 获取当前设备数据点信息 * * @param deviceName 设备名称 * @param productId */ CurrentDeviceData getCurrentDataPoint(String deviceName, String productId); /** * 获取设备详情 * * @param deviceName 设备名称 * @param productId */ IotDeviceDetail getDeviceDetail(String deviceName, String productId); /** * 设置剩余时长 * * @param deviceName 设备名称 * @param seconds 时长(秒) * @param productId */ CommandResponse setTime(String deviceName, long seconds, String productId); /** * 更新设备信息 * * @param device 设备信息 * @param productId */ boolean updateDevice(Device device, String productId); /** * 获取设备信息,并转化为IotDeviceInfo * * @param deviceName 设备名称 * @param productId */ IotDeviceInfo getDeviceInfo(String deviceName, String productId); /** * 获取设备信息列表,并转换为IotDeviceInfo * * @param deviceNames 设备名称列表 * @param productId */ List getDeviceInfo(List deviceNames, String productId); /** * 注册设备 */ int create(String mac, String productId); }