package com.dy.rtuMw.server.upgrade; import com.dy.common.mw.UnitAdapterInterface; import com.dy.common.mw.UnitCallbackInterface; import com.dy.common.mw.UnitInterface; import com.dy.common.softUpgrade.state.UpgradeTaskVo; import com.dy.common.util.Callback; /** * @Author: liurunyu * @Date: 2024/11/4 14:16 * @Description */ public class UpgradeUnit implements UnitInterface { private static UpgradeUnit instance = new UpgradeUnit() ; public static UpgradeUnitAdapter adapter ; public static UpgradeUnitConfigVo confVo ; private static UpgradeManager manager ; private UpgradeUnit(){} ; public static UpgradeUnit getInstance(){ return instance ; } @Override public void setAdapter(UnitAdapterInterface adapter) throws Exception { if(adapter == null){ throw new Exception("RTU远程升级模块适配器对象不能为空!") ; } UpgradeUnit.adapter = (UpgradeUnitAdapter)adapter ; UpgradeUnit.confVo = UpgradeUnit.adapter.getConfig() ; if(UpgradeUnit.confVo == null){ throw new Exception("RTU远程升级模块配置对象不能为空!") ; } } /** * 初始化上行数据处理任务池 */ @Override public void start(UnitCallbackInterface callback) throws Exception { if(confVo.enable){ manager = UpgradeManager.getInstance() ; manager.initOption(confVo); callback.call(null) ; System.out.println("RTU远程升级模块成功启动"); }else{ System.out.println("RTU远程升级模块配置不启动"); } } @Override public void stop(UnitCallbackInterface callback) throws Exception { overUpgradeTask() ; } /** * 设置升级任务 * @param vo UpgradeTaskVo 升级任务对象 * @throws Exception */ public void setUpgradeTask(UpgradeTaskVo vo) throws Exception { if(manager != null ){ manager.setUpgradeTask(vo) ; } } /** * 停止当前升级任务 * @throws Exception * @return null:停止任务成功,否则返回失败原因 */ public String overUpgradeTask() throws Exception { if(manager != null ){ return manager.forceOverUpgradeTask() ; }else{ return "通信中间件内部错误" ; } } /** * RTU有上行数据了,触发下发升级数据 * @param rtuAddr * @param code * @param callback */ public void trigger(String rtuAddr, String code, String protocolName, Short protocolVersion, Callback callback){ if(manager != null ){ manager.trigger(rtuAddr, code, protocolName, protocolVersion, callback); } } //////////////////////////////////////////////////// // // 查询升级状态信息 // //////////////////////////////////////////////////// /** * 当前升级状态 * @return public UpgradeState currentUpgradeState() { if(manager != null ){ return manager.currentUpgradeState(); } return null ; }*/ /** * Rtu升级信息 * @param rtuAddr * @return public UpgradeRtuDev upgradeRtuInfo(String rtuAddr){ if(manager != null ){ return manager.upgradeInfos(rtuAddr); } return null ; }*/ /** * Rtu升级信息 * @param rtuAddrList * @return public List upgradeRtuInfos(List rtuAddrList){ if(manager != null ){ return manager.upgradeInfos(rtuAddrList); } return null ; }*/ /** * Rtu升级信息 * @return public List upgradeRtuInfoAll(){ if(manager != null ){ return manager.upgradeInfoAll(); } return null ; }*/ }