jiazx0107@163.com
2023-12-14 8435cf1d25d07b09e2a9937d39bed1c1a422e4f0
src/main/java/com/fzzy/protocol/weightyh/MessageConsumer.java
@@ -1,12 +1,12 @@
package com.fzzy.protocol.weightyh;
import com.fzzy.api.data.GatewayDeviceType;
import com.fzzy.api.utils.BytesUtil;
import com.fzzy.api.utils.SpringUtil;
import com.fzzy.gateway.GatewayUtils;
import com.fzzy.gateway.api.DeviceReportService;
import com.fzzy.gateway.api.GatewayRemoteManager;
import com.fzzy.gateway.data.BaseReqData;
import com.fzzy.gateway.entity.GatewayDevice;
import com.fzzy.gateway.hx2023.service.HxGatewaySyncWeightImpl1;
import com.ld.io.api.IoMsgConsumer;
import com.ld.io.api.IoSession;
import lombok.extern.slf4j.Slf4j;
@@ -24,7 +24,7 @@
    private long timeTag = 0;
    private GatewayRemoteManager reportService;
    private GatewayRemoteManager gatewayRemoteManager;
    @Override
    public void consume(IoSession session, byte[] bytes) {
@@ -36,7 +36,7 @@
     */
    public void analysisInfo(String ip, Integer port, byte[] bytes) {
        String strMsg = BytesUtil.bytesToString(bytes);
        //log.debug("开始解析地磅返回信息=" + strMsg);
        if (strMsg.length() < 22) {
            return;
        }
@@ -48,7 +48,7 @@
        timeTag = System.currentTimeMillis();
        String temp = strMsg.substring(2, 4);
        String symbol = HexASCIIToConvert(temp);
        //String symbol = HexASCIIToConvert(temp);
        temp = strMsg.substring(4, 16);
        String w = HexASCIIToConvert(temp);
        temp = strMsg.substring(16, 18);
@@ -57,12 +57,11 @@
        //最终重量结果
        double weigh = Double.valueOf(w) / d;
        log.debug("WEIGHT-MESSAGE=" + strMsg);
        log.debug("----------地磅称重数值解析------{}", weigh);
        //当前地磅协议不支持传递SN,使用局域网IP作为SN
        String sn = ip;
        //根据信息获取设备
        GatewayDevice device = GatewayUtils.getCacheByDeviceSn(sn);
@@ -73,11 +72,21 @@
        }
        //直接调用实现类,更多实现类单独调用
        if (null == reportService) {
            reportService = SpringUtil.getBean(GatewayRemoteManager.class);
        if (null == gatewayRemoteManager) {
            gatewayRemoteManager = SpringUtil.getBean(GatewayRemoteManager.class);
        }
        reportService.getDeviceReportService(device.getProvinceProtocol()).report2GatewayBySn(weigh, device);
        //数据封装推送
        BaseReqData reqData = new BaseReqData();
        reqData.setDevice(device);
        reqData.setDeviceId(device.getDeviceId());
        reqData.setProductId(device.getProductId());
        reqData.setDeviceName(device.getDeviceName());
        reqData.setWeight(weigh);
        if (weigh > 0) {
            gatewayRemoteManager.getDeviceReportService(device.getPushProtocol()).reportWeightData(reqData);
        }
    }
    /**