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.SmDevice; import com.ruoyi.ss.device.domain.enums.DeviceOnlineStatus; import java.math.BigDecimal; import java.util.List; /** * @author wjh * 2024/3/20 */ public interface IotService { /** * 向设备发送命令 * @param deviceName OneNet设备名称(即设备表的MAC号) * @param command 命令字符串 * @return */ CommandResponse sendCommand(String deviceName, String command); /** * 获取设备在线状态 * @param deviceName OneNet设备名称(即设备表的MAC号) */ DeviceOnlineStatus getOnlineStatus(String deviceName); /** * 通电 * @param deviceName OneNet设备名称(即设备表的MAC号) * @return 是否成功 */ boolean open(String deviceName); /** * 断电 * @param deviceName OneNet设备名称(即设备表的MAC号) * @return 是否成功 */ boolean close(String deviceName); /** * 获取历史设备数据点信息 * @param deviceName OneNet设备名称(即设备表的MAC号) */ HistoryDeviceData getHistoryDataPoint(String deviceName); /** * 批量获取当前设备数据点信息 * @param deviceNames 设备名称列表 */ List getCurrentDataPoint(List deviceNames); /** * 获取当前设备数据点信息 * @param deviceName 设备名称 */ CurrentDeviceData getCurrentDataPoint(String deviceName); /** * 获取设备详情 * @param deviceName 设备名称 */ IotDeviceDetail getDeviceDetail(String deviceName); /** * 设备电量充值 * @param deviceName 设备名称 * @param num 充值度数(度) */ boolean recharge(String deviceName, BigDecimal num); /** * 更新设备信息 * @param device 设备信息 */ boolean updateDevice(SmDevice device); /** * 获取设备信息,并转化为IotDeviceInfo * @param deviceName 设备名称 */ IotDeviceInfo getDeviceInfo(String deviceName); /** * 获取设备信息列表,并转换为IotDeviceInfo * @param deviceNames 设备名称列表 */ List getDeviceInfo(List deviceNames); }