|  |  | 
 |  |  | 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 |