package com.dy.common.softUpgrade.state; import com.alibaba.fastjson2.annotation.JSONField; import com.dy.common.mw.protocol.Command; import com.dy.common.util.Callback; import lombok.Data; /** * @Author: liurunyu * @Date: 2024/11/11 17:33 * @Description */ @Data public class UpgradeRtu { @JSONField(serialize = false) public static final int STATE_OFFLINE = -1 ;//-1-离线 @JSONField(serialize = false) public static final int STATE_UNSTART = 0 ;//0-未开始 @JSONField(serialize = false) public static final int STATE_RUNNING = 1 ;//1-升级中 @JSONField(serialize = false) public static final int STATE_SUCCESS = 2 ;//2-升级成功 @JSONField(serialize = false) public static final int STATE_FAILONE = 3 ;//3-升级失败(一包死) @JSONField(serialize = false) public static final int STATE_FAIL = 4 ;//4-升级失败(多包死) @JSONField(serialize = false) public static final int STATE_FAILOFFLINE = 5 ;//4-升级失败(离线) @JSONField(serialize = false) public static final int RAMADDRADD = 0x20 ;//程序存储内存在址增量 public String rtuAddr ; public int state ;// -1-离线,0-未开始,1-升级中,2-升级成功,3-升级失败(1包死),4-升级失败(非1包死),5-升级失败(离线) public int totalPackage ;// 总包数 public int currentPackage ;// 当前下发升级包数 public int currentRamAddr ;// 当前下发升级包RTU存储地址 public String lastDownDt ;// 最后下发升级数据包时间(yyyy-mm-dd HH:HH:SS) public int reTryTimes ;//升级不成功,重试次数 public boolean isOver ;//是否升级过程结束,1:结束,0:未结束 public String toString(){ StringBuilder sb = new StringBuilder(); sb.append("RTU(" + rtuAddr + ")升级状态:") ; sb.append(" \n当 前 状 态:" + getStateName(state)) ; sb.append(" \n需下发数据包总数:" + totalPackage) ; sb.append(" \n当前下发升级包数:" + currentPackage) ; sb.append(" \n当前下发存储地址:" + currentRamAddr) ; sb.append(" \n当前下发数据时间:" + lastDownDt) ; sb.append(" \n升级失败重试次数:" + reTryTimes) ; sb.append(" \n升级过程是否结束:" + (isOver?"是":"否")) ; return sb.toString() ; } public static String getStateName(int state){ switch (state) { case STATE_OFFLINE: return "离线"; case STATE_UNSTART: return "未开始"; case STATE_RUNNING: return "升级中"; case STATE_SUCCESS: return "升级成功"; case STATE_FAILONE: return "一包死"; case STATE_FAIL: return "多包死"; case STATE_FAILOFFLINE: return "离线失败"; default: return "未知"; } } /** * 触发升级 * @param code * @param softData * @param callbackCom */ public void trigger(String code, String protocolName, Short protocolVersion, byte[][] softData, Callback callbackCom){ return ; } public Command createCommand1601(String protocolName, Short protocolVersion){ return null ; } public Command createCommand1602(String protocolName, Short protocolVersion, int currentPackage, Integer ramAddr, byte[][] softData){ return null ; } public Command createCommand1603(String protocolName, Short protocolVersion){ return null ; } public Command createCommand1600(String protocolName, Short protocolVersion){ return null ; } }