春风项目四线(合箱线、总装线)
yyt
2024-01-22 4c41b4b3d7a61c105afd2942f7608c6308ef2e27
更新OPCUA
已修改2个文件
68 ■■■■■ 文件已修改
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/cert/MethodName.java
@@ -6,6 +6,7 @@
import com.jcdm.main.da.opcuaconfig.domain.NodeEntity;
import com.jcdm.main.da.opcuaconfig.init.BeanUtils;
import com.jcdm.main.da.paramCollection.domain.DaParamCollection;
import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
import lombok.extern.slf4j.Slf4j;
import org.eclipse.milo.opcua.stack.core.types.builtin.DataValue;
import org.eclipse.milo.opcua.stack.core.types.builtin.NodeId;
@@ -18,6 +19,8 @@
@Slf4j
public class MethodName {
    private IDaCollectionParamConfService collectionParamConfService = BeanUtils.getBean(IDaCollectionParamConfService.class);
    private IDaParamCollectionService daParamCollectionService = BeanUtils.getBean(IDaParamCollectionService.class);
    private List<DataValue> s=null;
    public void getSn(String Node, String value) throws Exception {
        log.info(Node+":"+value);
        String[] parts = Node.split("[.]");
@@ -38,17 +41,21 @@
                DaCollectionParamConf daCollectionParamConf=new DaCollectionParamConf();
                daCollectionParamConf.setCollectParameterId(parts[0]+"."+parts[1]);
                b=collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf);
                List<String> ids = b.stream().map(e -> e.getCollectParameterId()).collect(Collectors.toList());
                Set<String> de=ListToSet(ids);
                List<DataValue> s=readValues(de);
//                s.forEach(element->{
//                    DaParamCollection Config=new DaParamCollection();
//                    String[] q = element.getIdentifier().split("[.]");
//                    Config.setParamCode(q[2]);
//                    Config.setLocationCode(q[1]);
//                    Config.setParamValue(element.getValue().toString());
//                    daParamCollectionService.insertDaParamCollection(Config);
//                });
                List<NodeId> nodeId = b.stream().map(info -> {
                    NodeId nodeid = new NodeId(2,info.getCollectParameterId());
                    return nodeid;
                }).collect(Collectors.toList());
                List<DataValue> s=readValues(nodeId);
                for(int i=0;i<nodeId.size();i++)
                {
                    DaParamCollection Config=new DaParamCollection();
                    Config.setParamCode(nodeId.get(i).getIdentifier().toString().split("[.]")[2]);
                    Config.setLocationCode(nodeId.get(i).getIdentifier().toString().split("[.]")[1]);
                    Config.setParamValue(s.get(i).getValue().getValue().toString());
                    daParamCollectionService.insertDaParamCollection(Config);
                }
                NodeEntity node2= NodeEntity.builder().index(2).identifier(parts[0]+"."+parts[1]+".RecordDataDone").value("21").type("short").build();
                Boolean out2=clientHandler.write(node2);
                log.info("节点:{},响应结果:{}", node2.getIdentifier(),out2);
@@ -56,14 +63,5 @@
            default:
                break;
        }
    }
    public Set<String> ListToSet(List<String> list) {
        Object[] objects = list.toArray();// 返回Object数组
        String[] strings1 = new String[list.size()];
        list.toArray(strings1);// 将转化后的数组放入已经创建好的对象中
        String[] strings2 = list.toArray(new String[0]);// 将转化后的数组赋给新对象
        Set<String> set = new HashSet<String>(Arrays.asList(strings2));
        return set;
    }
}
jcdm-main/src/main/java/com/jcdm/main/da/opcuaconfig/client/ClientHandler.java
@@ -227,12 +227,30 @@
     * @return {@link List<DataValue>}
     * @throws
     */
    public static List<DataValue> readValues(Set<String> keys){
        List<NodeId> nodeIdList=new ArrayList<>(500);
        keys.forEach(e->{
            NodeId nodeId = new NodeId(2, e);
            nodeIdList.add(nodeId);
        });
//    public static List<DataValue> readValues2(Set<String> keys){
//        List<NodeId> nodeIdList=new ArrayList<>(500);
//        keys.forEach(e->{
//            NodeId nodeId = new NodeId(2, e);
//            nodeIdList.add(nodeId);
//        });
//        try {
//            List<DataValue> dataValues=client.readValues(0.0, TimestampsToReturn.Both,nodeIdList).get();
//            return dataValues;
//        } catch (InterruptedException | ExecutionException e) {
//            e.printStackTrace();
//        }
//        return null;
//    }
    /**
     * 方法描述: 读取多个点位的值
     *
     * @param nodeIdList 点位集合
     * @return {@link List<DataValue>}
     * @throws
     */
    public static List<DataValue> readValues(List<NodeId> nodeIdList){
        try {
            List<DataValue> dataValues=client.readValues(0.0, TimestampsToReturn.Both,nodeIdList).get();
            return dataValues;