| | |
| | | @JSONField(serialize = false) |
| | | protected Integer ugMaxRtuSameTime ;//同时升级RTU最大个数 |
| | | @JSONField(serialize = false) |
| | | private Boolean openNoUpgrade ;//阀开(泵开)不执行升级 |
| | | @JSONField(serialize = false) |
| | | private Integer lastOpenMaxGoOn ;//阀开(泵开)状态设置以来持续最长时间(秒钟),超过这个时间认为状态无效(这个时长取决于工作报间隔) |
| | | |
| | | public String setupDt ;//设置时间(yyyy-mm-dd HH:MM:SS) |
| | |
| | | /** |
| | | * 初始化配置信息 |
| | | */ |
| | | public void initOption(Integer lastOpenMaxGoOn, Integer failTryTimes, Integer ugMaxRtuSameTime) { |
| | | public void initOption(Boolean openNoUpgrade, |
| | | Integer lastOpenMaxGoOn, |
| | | Integer failTryTimes, |
| | | Integer ugMaxRtuSameTime) { |
| | | this.openNoUpgrade = openNoUpgrade; |
| | | this.lastOpenMaxGoOn = lastOpenMaxGoOn; |
| | | this.failTryTimes = failTryTimes; |
| | | this.ugMaxRtuSameTime = ugMaxRtuSameTime; |
| | |
| | | //当前RTU已经升级完成,无需再升级 |
| | | return; |
| | | }else{ |
| | | if(this.openNoUpgrade){ |
| | | //首先判断是否是阀门打开状态 |
| | | RtuStatus rtuStatus = RtuStatusDealer.oneStatus(rtuAddr) ; |
| | | if(rtuStatus != null |
| | | && rtuStatus.valveOpenTrueCloseFalse != null |
| | | && rtuStatus.valveOpenTrueCloseFalse.booleanValue() == true |
| | | && rtuStatus.valveStatusLastTimeStamp != null){ |
| | | //有状态,并且是阀开(泵开) |
| | | Long now = System.currentTimeMillis() ; |
| | | Long gap = now - rtuStatus.valveStatusLastTimeStamp ; |
| | | if(gap < this.lastOpenMaxGoOn){ |
| | | //这时采纳阀门打开状态,进而不能升级 |
| | | ugRtu.isOver = true ; |
| | | ugRtu.state = UpgradeRtu.STATE_FAILOPEN ; |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if(UpgradeUnit.confVo.ugMaxRtuAtOnce > 0){ |
| | | //设置了同时升级的RTU最大数量的限制 |
| | | if(ugRtu.state == UpgradeRtuDev.STATE_OFFLINE){ |