58 lines
1.7 KiB
C#
58 lines
1.7 KiB
C#
/*
|
|
* Copyright (c) 2025 LG Electronics Inc.
|
|
* SPDX-License-Identifier: LicenseRef-LGE-Proprietary
|
|
*/
|
|
using Aurora.Api;
|
|
using Hermes;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace VisionCommon {
|
|
internal abstract class Updater {
|
|
protected Logger _logger;
|
|
protected double _machineVersion;
|
|
protected double _swVersion;
|
|
|
|
public Updater(string logTag, double machineVersion, double swVersion) {
|
|
_logger = new Logger(logTag);
|
|
_machineVersion = machineVersion;
|
|
_swVersion = swVersion;
|
|
}
|
|
|
|
public int Update(JToken machineToken, double machineVersion, double swVersion) {
|
|
if (!IsSupportVersion(machineVersion, swVersion)) {
|
|
return E2.NOT_SUPPORTED;
|
|
}
|
|
|
|
if (machineVersion < swVersion) {
|
|
return Upgrade(machineToken);
|
|
}
|
|
else if (swVersion < machineVersion) {
|
|
return Downgrade(machineToken);
|
|
}
|
|
|
|
return E1.GENERIC;
|
|
}
|
|
|
|
public bool IsSupportVersion(double machineVersion, double swVersion) {
|
|
if (MathUtil.Equals(_machineVersion, machineVersion, 0.01) &&
|
|
MathUtil.Equals(_swVersion, swVersion, 0.01)) {
|
|
return true;
|
|
}
|
|
else if (MathUtil.Equals(_machineVersion, swVersion, 0.01) &&
|
|
MathUtil.Equals(_swVersion, machineVersion, 0.01)) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
protected abstract int Upgrade(JToken machineToken);
|
|
protected abstract int Downgrade(JToken machineToken);
|
|
}
|
|
}
|