package org.jeecg.modules.dry.runner;
|
|
import com.alibaba.fastjson.JSON;
|
import com.kangaroohy.milo.service.MiloService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.jeecg.modules.dry.entity.DryOpcDevice;
|
import org.jeecg.modules.dry.service.IDryOpcDeviceService;
|
import org.jeecg.modules.dry.vo.DryOpcMsgVo;
|
import org.jeecg.modules.dry.websocket.DrySocket;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.boot.ApplicationArguments;
|
import org.springframework.boot.ApplicationRunner;
|
import org.springframework.stereotype.Component;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Component
|
@Slf4j
|
public class OpcCustomRunner implements ApplicationRunner {
|
@Autowired
|
private MiloService miloService;
|
|
|
@Autowired
|
private IDryOpcDeviceService dryOpcDeviceService;
|
|
@Autowired
|
private DrySocket drySocket;
|
@Override
|
public void run(ApplicationArguments args) throws Exception {
|
|
subscript();
|
|
}
|
|
private void subscript() throws Exception {
|
List<String> ids = new ArrayList<>();
|
List<DryOpcDevice> list = dryOpcDeviceService.list();
|
list.forEach(item -> {
|
ids.add(item.getIdentifier());
|
});
|
// ids.add("通道 1.设备 1.标记 1");
|
// ids.add("通道 1.设备 1.标记 2");
|
// ids.add("channel1.device1.tag1");
|
// ids.add("channel1.device1.tag2");
|
// ids.add("channel1.device1.tag3");
|
// ids.add("channel1.device1.tag4");
|
// ids.add("channel1.device1.tag5");
|
// ids.add("channel1.device1.tag6");
|
miloService.subscriptionFromOpcUa(ids, (id,value)->{
|
log.info("subscription 点位:{} 订阅到消息:{}", id, value);
|
|
DryOpcMsgVo dryOpcMsgVo = new DryOpcMsgVo(id, (Boolean) value);
|
drySocket.pushMessage("1003", JSON.toJSONString(dryOpcMsgVo));
|
} );
|
}
|
}
|