#1
dubin
4 天以前 f9ccc882fc1b1296f0c843a888a5962b45df236d
src/main/java/com/zy/core/network/real/ZyStationRealConnect.java
@@ -22,6 +22,7 @@
import com.zy.core.network.api.ZyStationConnectApi;
import com.zy.core.network.entity.ZyStationStatusEntity;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.text.MessageFormat;
@@ -35,6 +36,7 @@
    private List<ZyStationStatusEntity> statusList;
    private List<ZyStationStatusEntity> barcodeStatusList;
    private List<ZyStationStatusEntity> scaleStatusList;
    private SiemensS7Net siemensNet;
    private DeviceConfig deviceConfig;
    private RedisUtil redisUtil;
@@ -87,34 +89,31 @@
            }
            statusList = JSONObject.parseArray(basDevp.getStationList(), ZyStationStatusEntity.class);
            if (statusList != null) {
                statusList.sort(Comparator.comparing(ZyStationStatusEntity::getStationId));
            }
            barcodeStatusList = JSONObject.parseArray(basDevp.getBarcodeStationList(), ZyStationStatusEntity.class);
        }
        OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) (statusList.size() * 2));
        OperateResultExOne<byte[]> result = siemensNet.Read("DB100.0", (short) (statusList.size() * 8));
        if (result.IsSuccess) {
            for (int i = 0; i < statusList.size(); i++) {
                ZyStationStatusEntity statusEntity = statusList.get(i); // 站点编号
                boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, i * 2, 2);
                boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, i * 8 + 6, 2);
                statusEntity.setAutoing(status[0]); // 自动
                statusEntity.setLoading(status[1]); // 有物
                statusEntity.setInEnable(status[2]); // 可入
                statusEntity.setOutEnable(status[3]);// 可出
                statusEntity.setEmptyMk(status[4]); // 空板信号
                statusEntity.setFullPlt(status[5]); // 满托盘
            }
        }
        OperateResultExOne<byte[]> result1 = siemensNet.Read("DB100.0", (short) (statusList.size() * 4));
        if (result1.IsSuccess) {
            for (int i = 0; i < statusList.size(); i++) {
                ZyStationStatusEntity statusEntity = statusList.get(i);
                statusEntity.setTaskNo((int) siemensNet.getByteTransform().TransInt16(result1.Content, i * 4)); // 工作号
                statusEntity.setTargetStaNo((int) siemensNet.getByteTransform().TransInt16(result1.Content, i * 4 + 2)); // 目标站
                statusEntity.setTaskNo(siemensNet.getByteTransform().TransInt32(result.Content, i * 8)); // 工作号
                statusEntity.setTargetStaNo((int) siemensNet.getByteTransform().TransInt16(result.Content, i * 8 + 4)); // 目标站
            }
        }
        // 条码扫描器
        OperateResultExOne<byte[]> result2 = siemensNet.Read("DB101.100", (short) (statusList.size() * 10));
        OperateResultExOne<byte[]> result2 = siemensNet.Read("DB101.0", (short) (barcodeStatusList.size() * 16));
        if (result2.IsSuccess) {
            for (int i = 0; i < barcodeStatusList.size(); i++) {
                ZyStationStatusEntity barcodeEntity = barcodeStatusList.get(i);
@@ -122,7 +121,7 @@
                if (statusEntity == null) {
                    continue;
                }
                String barcode = siemensNet.getByteTransform().TransString(result2.Content, i * 10 + 2, 8, "UTF-8");
                String barcode = siemensNet.getByteTransform().TransString(result2.Content, i * 16, 4, "UTF-8");
                barcode = barcode.trim();
                barcodeEntity.setBarcode(barcode);
            }