| | |
| | | import com.alibaba.fastjson2.annotation.JSONField; |
| | | import com.dy.common.mw.protocol.Command; |
| | | import com.dy.common.mw.protocol.CommandType; |
| | | import com.dy.common.mw.protocol.MidResult; |
| | | import com.dy.common.mw.protocol.MidResultFromRtu; |
| | | import com.dy.common.mw.protocol.p206V1.upVos.DataCd960XVo; |
| | | import com.dy.common.softUpgrade.Com1601Vo; |
| | | import com.dy.common.softUpgrade.state.UpgradeRtu; |
| | | import com.dy.common.softUpgrade.state.UpgradeTaskVo; |
| | |
| | | this.currentPackage = 0 ; |
| | | this.currentRamAddr = 0 ; |
| | | this.lastDownDt = "" ; |
| | | this.lastDownDtAt = 0L ; |
| | | this.reTryTimes = 0 ; |
| | | this.isOver = false ; |
| | | } |
| | |
| | | this.currentPackage = 0 ; |
| | | this.currentRamAddr = 0 ; |
| | | this.lastDownDt = "" ; |
| | | this.lastDownDtAt = 0L ; |
| | | this.reTryTimes = 0 ; |
| | | this.isOver = false ; |
| | | } |
| | |
| | | * @param code |
| | | * @param softData |
| | | * @param callbackCom |
| | | * @param objects |
| | | */ |
| | | @Override |
| | | public void trigger(String code, String protocolName, Short protocolVersion, byte[][] softData, Callback callbackCom){ |
| | | public void trigger(String code, String protocolName, Short protocolVersion, byte[][] softData, Callback callbackCom, Object ...objects){ |
| | | if(!this.isOver){ |
| | | //升级未完成 |
| | | if(this.state == STATE_OFFLINE || this.state == STATE_UNSTART){ |
| | |
| | | if(code.equals(UpgradeCode.cd_9601)){ |
| | | //下发配置返回 |
| | | this.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ; |
| | | this.lastDownDtAt = System.currentTimeMillis() ; |
| | | callbackCom.call(createCommand1602(protocolName, protocolVersion, currentPackage, currentRamAddr, softData));//下发数据包指令 |
| | | }else if(code.equals(UpgradeCode.cd_9602)){ |
| | | //下发数据包返回 |
| | |
| | | currentRamAddr += RAMADDRADD ; |
| | | if(currentPackage < totalPackage){ |
| | | this.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ; |
| | | this.lastDownDtAt = System.currentTimeMillis() ; |
| | | callbackCom.call(createCommand1602(protocolName, protocolVersion, currentPackage, currentRamAddr, softData)); |
| | | }else{ |
| | | this.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ; |
| | | this.lastDownDtAt = System.currentTimeMillis() ; |
| | | callbackCom.call(createCommand1603(protocolName, protocolVersion));//下发校验指令 |
| | | } |
| | | }else if(code.equals(UpgradeCode.cd_9603)){ |
| | | //下发校验返回 |
| | | this.setStateAtReceiveRes9603Time() ; |
| | | this.setStateAtReceiveRes9603Time(objects) ; |
| | | callbackCom.call(createCommand1600(protocolName, protocolVersion));//下发复位指令,此指令无应答 |
| | | }else{ |
| | | //当前是升级中状态,并且升级未完成,收到了非960X系列功能码,则升级失败 |
| | |
| | | this.currentRamAddr = 0 ; |
| | | this.isOver = false ; |
| | | this.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ; |
| | | this.lastDownDtAt = System.currentTimeMillis() ; |
| | | } |
| | | |
| | | /** |
| | | * 设置1603指令返回时刻的状态 |
| | | */ |
| | | private void setStateAtReceiveRes9603Time(){ |
| | | private void setStateAtReceiveRes9603Time(Object ...objects){ |
| | | this.isOver = true ;//升级完成 |
| | | this.state = STATE_SUCCESS ; |
| | | if(objects != null && objects.length > 0){ |
| | | if(objects[0] instanceof com.dy.common.mw.protocol.p206V1.upVos.DataCd960XVo){ |
| | | com.dy.common.mw.protocol.p206V1.upVos.DataCd960XVo vo = (com.dy.common.mw.protocol.p206V1.upVos.DataCd960XVo)objects[0] ; |
| | | if(vo != null && !vo.success){ |
| | | this.state = STATE_FAILRTU ; |
| | | } |
| | | } else if(objects[0] instanceof com.dy.common.mw.protocol.p206V2.upVos.DataCd960XVo){ |
| | | com.dy.common.mw.protocol.p206V2.upVos.DataCd960XVo vo = (com.dy.common.mw.protocol.p206V2.upVos.DataCd960XVo)objects[0] ; |
| | | if(vo != null && !vo.success){ |
| | | this.state = STATE_FAILRTU ; |
| | | } |
| | | } else if(objects[0] instanceof com.dy.common.mw.protocol.p206V202404.upVos.DataCd960XVo){ |
| | | com.dy.common.mw.protocol.p206V202404.upVos.DataCd960XVo vo = (com.dy.common.mw.protocol.p206V202404.upVos.DataCd960XVo)objects[0] ; |
| | | if(vo != null && !vo.success){ |
| | | this.state = STATE_FAILRTU ; |
| | | } |
| | | } |
| | | } |
| | | this.lastDownDt = DateTime.yyyy_MM_dd_HH_mm_ss() ; |
| | | this.lastDownDtAt = System.currentTimeMillis() ; |
| | | } |
| | | |
| | | @Override |