package com.dcs.equipment.service;

import com.dcs.equipment.domain.DeviceRequest;
import com.dcs.equipment.domain.DeviceResponse;
import com.dcs.equipment.exception.device.DeviceIOException;
import com.dcs.hnyz.domain.vo.EquipmentParamFormVO;
import com.intelligt.modbus.jlibmodbus.exception.ModbusIOException;
import com.intelligt.modbus.jlibmodbus.exception.ModbusNumberException;
import com.intelligt.modbus.jlibmodbus.exception.ModbusProtocolException;

import java.util.List;
import java.util.Map;

/**
 * @author: wangpx
 * @date: 2025-06-30 22:05
 */
public interface DeviceService {

    List<EquipmentParamFormVO> getDataTwinEquipmentValues();

    void updateEquipmentCodes();

    Object getValueByCode(String deviceCode);

    List<Object> getValues(DeviceRequest request) throws ModbusProtocolException, ModbusNumberException, ModbusIOException, DeviceIOException;

    boolean setValue(DeviceRequest request);

    Map<String, List<DeviceResponse>> getResponseMapByDeviceRequests(List<DeviceRequest> requests);
}
