2026-01-26 14:51:28 +09:00

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);
}
}