中间件修改内容:
1、当没农业综合站时即没相关配置项目内容为空时,启动时会产生bug;
2、整理优化代码。
4个文件已修改
69 ■■■■ 已修改文件
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttManager.java 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttMessageListener.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAppClient.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/Server.java
@@ -481,10 +481,8 @@
                ServerProperties.mqttAcceptDataMinInterval = conf.getSetAttrPlusInt(doc, "config.mqtt", "acceptDataMinInterval", null, 1, 720, null) * 60 * 1000L ;
                mqVo.useMemoryPersistence = conf.getSetAttrBoolean(doc, "config.mqtt", "useMemoryPersistence", null, null) ;
                String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, false, null) ;
                if(proAndDevIds == null || proAndDevIds.trim().equals("")){
                    throw new Exception("config.mqtt.protocolAndDeviceIds配置不合法") ;
                }else{
                String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, true, null) ;
                if(proAndDevIds != null && !proAndDevIds.trim().equals("")){
                    proAndDevIds = proAndDevIds.trim() ;
                    proAndDevIds = proAndDevIds.replaceAll(",", ",");
                    proAndDevIds = proAndDevIds.replaceAll(";", ";");
@@ -499,11 +497,8 @@
                    }
                }
                String subTopicAndQos = conf.getSetAttrTxt(doc, "config.mqtt", "subTopicAndQos", null, false, null) ;
                if(subTopicAndQos == null || subTopicAndQos.trim().equals("")){
                    throw new Exception("config.mqtt.subTopicAndQos配置的主题及Qos不合法") ;
                }else{
                String subTopicAndQos = conf.getSetAttrTxt(doc, "config.mqtt", "subTopicAndQos", null, true, null) ;
                if(subTopicAndQos != null && !subTopicAndQos.trim().equals("")){
                    subTopicAndQos = subTopicAndQos.trim() ;
                    subTopicAndQos = subTopicAndQos.replaceAll(",", ",");
                    subTopicAndQos = subTopicAndQos.replaceAll(";", ";");
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttManager.java
@@ -64,34 +64,39 @@
            throw new Exception("Mqtt连接池获得订阅连接不可用");
        }
        subClients.add(clientSub) ;
        // 订阅主题
        for(int i = 0; i < this.configVo.subTopics.length; i++){
            for(int j = 0 ; j < this.configVo.protocolAndDeviceIds.length; j++){
                clientSub.subscribe(ServerProperties.orgTag + "/"
                        + this.configVo.protocolAndDeviceIds[j] + "/"
                        + this.configVo.subTopics[i],
                        this.configVo.subTopicsQos[i],
                        //每一个订阅主题都有一个MqttMessageListener实例
                        new MqttMessageListener(new MqttNotify(){
                            @Override
                            public void notify(String devId, MqttNotifyInfo... infos) {
                                if(devId != null && infos != null && infos.length > 0){
                                    for(MqttNotifyInfo info : infos){
                                        if(info instanceof DevOnLineInfo){
                                            DevOnLineInfo onLineSt = (DevOnLineInfo)info;
                                            if(onLineSt.onLine != null && onLineSt.onLine.booleanValue()){
                                                DevStatusDealer.onLine(devId, ((DevOnLineInfo)info).protocol);
                                            }else{
                                                DevStatusDealer.offLine(devId);
        if(this.configVo.subTopics != null && this.configVo.subTopics.length > 0){
            if(this.configVo.protocolAndDeviceIds != null || this.configVo.protocolAndDeviceIds.length > 0){
                for(int i = 0; i < this.configVo.subTopics.length; i++){
                    for(int j = 0 ; j < this.configVo.protocolAndDeviceIds.length; j++){
                        clientSub.subscribe(ServerProperties.orgTag + "/"
                                        + this.configVo.protocolAndDeviceIds[j] + "/"
                                        + this.configVo.subTopics[i],
                                this.configVo.subTopicsQos[i],
                                //每一个订阅主题都有一个MqttMessageListener实例
                                new MqttMessageListener(new MqttNotify(){
                                    @Override
                                    public void notify(String devId, MqttNotifyInfo... infos) {
                                        if(devId != null && infos != null && infos.length > 0){
                                            for(MqttNotifyInfo info : infos){
                                                if(info instanceof DevOnLineInfo){
                                                    DevOnLineInfo onLineSt = (DevOnLineInfo)info;
                                                    if(onLineSt.onLine != null && onLineSt.onLine.booleanValue()){
                                                        DevStatusDealer.onLine(devId, ((DevOnLineInfo)info).protocol);
                                                    }else{
                                                        DevStatusDealer.offLine(devId);
                                                    }
                                                } else if(info instanceof DevRunInfo){
                                                    DevStatusDealer.setStatus(devId, (DevRunInfo)info);
                                                }
                                            }
                                        } else if(info instanceof DevRunInfo){
                                            DevStatusDealer.setStatus(devId, (DevRunInfo)info);
                                        }
                                    }
                                }
                            }
                        })
                );
                                })
                        );
                    }
                }
            }
        }
    }
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/java/com/dy/rtuMw/server/mqtt/MqttMessageListener.java
@@ -29,7 +29,7 @@
                public void callback(MqttSubMsg subMsg) {
                    DevStatusDealer.onLine(subMsg.deviceId, subMsg.protocol);
                    DevStatusDealer.afterReceiveSubMessage(subMsg.deviceId);
                    RtuLogDealer.log4Mqtt(subMsg.deviceId, "订阅消息    主题:" + subMsg.topic.longName() + "   元数据:" + subMsg.metaData);
                    RtuLogDealer.log4Mqtt(subMsg.deviceId, "订阅消息    主题:" + subMsg.topic.longName() + "   原数据:" + subMsg.metaData);
                }
                @Override
pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/video/ys/YsAppClient.java
@@ -25,7 +25,6 @@
    private static final String JobGroupName = "VideoYsGroup" ;
    private static final Integer ThreadPoolMaxCount = 1 ;//线程池线程最大个数
    private static final Integer ThreadPoolPriority = 5 ;//线程优先级
    private static final boolean quartzJobRunOneTimes = true ;//定时任务只执行一次
    @Value("${video.ys.accessTokenExpireDay: 7}")
    protected Integer accessTokenExpireDay;//AccessToken过期时间,单位天