ZengTao
2023-12-05 24385ce9fee382e9600ce03108a814a66990981c
springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
@@ -3,6 +3,7 @@
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.charset.StandardCharsets;
import java.sql.Time;
import java.util.ArrayList;
import java.util.List;
@@ -10,6 +11,7 @@
import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
import com.google.common.primitives.Bytes;
import org.apache.ibatis.jdbc.Null;
public class S7control {
@@ -238,11 +240,25 @@
        for (String address : addressList) {
            byte[] bytes = s7PLC.readByte(address, 14);
            if (bytes != null) {
                String str = new String(bytes, StandardCharsets.US_ASCII);
//            System.out.println(bytes.toString());
          if (bytes != null) {
            String str = new String(bytes, StandardCharsets.UTF_8);
//          System.out.println(str);
//              if(str == null ){
//                   str = "";
//              }
                result.add(str);
            }
//            if ( bytes.toString().contains("@")) {
//                String str = "";
//
//                result.add(str);
//            }else{
//
//                String str = new String(bytes, StandardCharsets.US_ASCII);
//                result.add(str);
//            }
//            System.out.println(bytes.toString());
        }
        return result;
@@ -264,9 +280,12 @@
            }
        }
    }
    public void outmesid(String data, String addr) {
        System.out.println("outmesid: " + data);
//        System.out.println("outmesid: " + data);
        List<Byte> glassidlist = new ArrayList<>();
        String[] parts = addr.split("-");
        if (parts.length == 2) {
@@ -298,6 +317,12 @@
        return data;
    }
    public Long readtime(String address) {
        if (s7PLC==null)
            return null;
        return s7PLC.readTime(address);
    }
    private int extractAddressNumber(String address) {
        String numberStr = address.replaceAll("\\D+", ""); // 使用正则表达式提取数字部分
        return Integer.parseInt(numberStr);
@@ -317,6 +342,8 @@
        List<String> addresslist = GetAddressList(address, count, 1);
        return s7PLC.readBoolean(addresslist);
    }
    private List<String> GetAddressList(String address, int count, int addedbit) {
        List<String> addresslist = new ArrayList<String>();
@@ -329,6 +356,7 @@
        if (stringdatas.length == 2) {
            dbwindex = Integer.parseInt(stringdatas[1]);
        } else if (stringdatas.length == 3) {
            dbwindex = Integer.parseInt(stringdatas[1]);
            bitindex = Integer.parseInt(stringdatas[2]);
        } else
            return null;