package org.jeecg.modules.dry.controller; import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.service.MiloService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.eclipse.milo.opcua.sdk.client.OpcUaClient; import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue; import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId; import org.eclipse.milo.opcua.stack.core.types.builtin.StatusCode; import org.eclipse.milo.opcua.stack.core.types.builtin.Variant; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.dry.common.OPCUA; import org.jeecg.modules.dry.entity.DryOpcDevice; import org.jeecg.modules.dry.service.IDryOpcDeviceService; import org.jeecg.modules.dry.vo.CommandMessageVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; import java.util.concurrent.ExecutionException; /** * opc控制器,用于控制现场摄像头电源,灯的开关 */ @Api(tags="OPC控制器") @RestController @RequestMapping("/dry/opc") @Slf4j public class OpcController { @Autowired private MiloService miloService; @Autowired private IDryOpcDeviceService opcDeviceService; @ApiOperation(value="发送控制指令", notes="向服务端发送控制指令,由服务端转发给控制模块") @PostMapping("/sendWriteCommand") public Result sendWriteCommand(@RequestBody CommandMessageVo msgVo) throws Exception { miloService.writeToOpcUa(ReadWriteEntity.builder() .identifier(msgVo.getCode()) //Kep中是Boolean类型 .value(Boolean.valueOf(msgVo.getMsg())) .build()); return Result.OK(); } @ApiOperation(value="发送控制指令", notes="向服务端发送控制指令,由服务端转发给控制模块") @PostMapping("/initDevice") public Result initDevice() throws Exception { List list = opcDeviceService.list(); list.forEach(item -> { }); return Result.OK(); } }