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 = 0x200 ;//程序存储内存在址增量
|
|
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 ;
|
}
|
}
|