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_OPEN = -2 ;//-1-阀开(泵开)不能升级 
 | 
    @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 ;//5-升级失败(离线) 
 | 
    @JSONField(serialize = false) 
 | 
    public static final int STATE_FAILOPEN = 6 ;//6-升级失败(阀开) 
 | 
    @JSONField(serialize = false) 
 | 
    public static final int STATE_FAILRTU = 7 ;//7-升级失败(RTU自己失败) 
 | 
    @JSONField(serialize = false) 
 | 
    public static final int RAMADDRADD = 0x200 ;//程序存储内存在址增量 
 | 
  
 | 
    public String rtuAddr ; 
 | 
    public int state ;// -1-离线,0-未开始,1-升级中,2-升级成功,3-升级失败(1包死),4-升级失败(非1包死),5-升级失败(离线),6-升级失败(阀开),7-升级失败(RTU) 
 | 
    public int totalPackage ;// 总包数 
 | 
    public int currentPackage ;// 当前下发升级包数 
 | 
    public int currentRamAddr ;// 当前下发升级包RTU存储地址 
 | 
    public String lastDownDt ;// 最后下发升级数据包时间(yyyy-mm-dd HH:HH:SS) 
 | 
    public Long lastDownDtAt ;// 最后下发升级数据包时刻 
 | 
    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_OPEN: 
 | 
                return "阀开"; 
 | 
            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 "离线失败"; 
 | 
            case STATE_FAILOPEN: 
 | 
                return "阀开失败"; 
 | 
            case STATE_FAILRTU: 
 | 
                return "RTU失败"; 
 | 
            default: 
 | 
                return "未知"; 
 | 
        } 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 触发升级 
 | 
     * @param code 
 | 
     * @param softData 
 | 
     * @param callbackCom 
 | 
     * @param objects 
 | 
     */ 
 | 
    public void trigger(String code, 
 | 
                        String protocolName, 
 | 
                        Short protocolVersion, 
 | 
                        byte[][] softData, 
 | 
                        Callback callbackCom, 
 | 
                        Object ...objects){ 
 | 
        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 ; 
 | 
    } 
 | 
} 
 |