实现 StopUpgrade
This commit is contained in:
@@ -159,17 +159,24 @@ func (PendingCollection) TableName() string {
|
||||
type OTATaskStatus string
|
||||
|
||||
const (
|
||||
OTATaskStatusPending OTATaskStatus = "待开始" // 任务已创建,等待下发
|
||||
OTATaskStatusInProgress OTATaskStatus = "进行中" // 任务已下发,设备正在处理
|
||||
OTATaskStatusSuccess OTATaskStatus = "成功" // 设备报告升级成功,新固件已运行
|
||||
OTATaskStatusAlreadyUpToDate OTATaskStatus = "版本已是最新" // 设备报告版本已是最新,未执行升级
|
||||
OTATaskStatusFailedPreCheck OTATaskStatus = "预检失败" // 设备报告升级前检查失败 (如拒绝降级、准备分区失败)
|
||||
OTATaskStatusFailedDownload OTATaskStatus = "下载或校验失败" // 设备报告文件下载或校验失败 (包括清单文件和固件文件)
|
||||
OTATaskStatusFailedRollback OTATaskStatus = "固件回滚" // 新固件启动失败,设备自动回滚
|
||||
OTATaskStatusTimedOut OTATaskStatus = "超时" // 平台在超时后仍未收到最终报告
|
||||
OTATaskStatusPlatformError OTATaskStatus = "平台内部错误" // 平台处理过程中发生的非设备报告错误
|
||||
OTATaskStatusPending OTATaskStatus = "待开始" // 任务已创建,等待下发
|
||||
|
||||
OTATaskStatusInProgress OTATaskStatus = "进行中" // 任务已下发,设备正在处理
|
||||
|
||||
OTATaskStatusSuccess OTATaskStatus = "成功" // 设备报告升级成功,新固件已运行
|
||||
OTATaskStatusAlreadyUpToDate OTATaskStatus = "版本已是最新" // 设备报告版本已是最新,未执行升级
|
||||
|
||||
OTATaskStatusFailedPreCheck OTATaskStatus = "预检失败" // 设备报告升级前检查失败 (如拒绝降级、准备分区失败)
|
||||
OTATaskStatusFailedDownload OTATaskStatus = "下载或校验失败" // 设备报告文件下载或校验失败 (包括清单文件和固件文件)
|
||||
OTATaskStatusFailedRollback OTATaskStatus = "固件回滚" // 新固件启动失败,设备自动回滚
|
||||
OTATaskStatusTimedOut OTATaskStatus = "超时" // 平台在超时后仍未收到最终报告
|
||||
OTATaskStatusPlatformError OTATaskStatus = "平台内部错误" // 平台处理过程中发生的非设备报告错误
|
||||
OTATaskStatusStopped OTATaskStatus = "手动停止" // 手动停止
|
||||
)
|
||||
|
||||
// OTADir 是 OTA 升级相关的临时文件存储目录
|
||||
const OTADir = "ota"
|
||||
|
||||
// OTATask 记录一次 OTA 升级任务的详细信息
|
||||
type OTATask struct {
|
||||
// ID 是数据库自增主键,将作为 task_id 在平台与设备间通信
|
||||
@@ -186,6 +193,15 @@ type OTATask struct {
|
||||
FinalReportedVersion string `gorm:"type:varchar(32);comment:任务结束后,设备上报的最终固件版本"`
|
||||
}
|
||||
|
||||
func (o OTATask) IsOver() bool {
|
||||
switch o.Status {
|
||||
case OTATaskStatusPending, OTATaskStatusInProgress:
|
||||
return false
|
||||
default:
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// TableName 自定义 GORM 使用的数据库表名
|
||||
func (OTATask) TableName() string {
|
||||
return "ota_tasks"
|
||||
|
||||
Reference in New Issue
Block a user