using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL.Entities;
using Tango.FSE.Common.MachineUpdates;
namespace Tango.FSE.Common.RemoteUpgrade
{
public interface IRemoteUpgradeManager
{
///
/// Creates a Tango Update Package for the current connected machine.
///
/// The tango version.
/// The file path.
///
Task CreateTupFile(TangoVersion tangoVersion, String targetFilePath);
///
/// Creates a Tango Update Package for specified machine.
///
/// The tango version.
/// The machine serial number.
/// The file path.
///
Task CreateTupFile(TangoVersion tangoVersion, String serialNumber, String targetFilePath);
///
/// Creates a firmware upgrade package file.
///
/// The tango version.
/// The file path.
///
Task CreateTfpFile(TangoVersion tangoVersion, String targetFilePath);
///
/// Performs a remote application upgrade using the specified .tup file.
///
/// The .tup file.
/// Specify whether to upgrade the firmware while doing the complete upgrade. (SetupFirmware/FPGA)
///
Task PerformRemoteApplicationUpgrade(String tupFile, bool upgradeFirmware = true);
///
/// Performs a remote firmware upgrade using the specified .tfp file.
///
/// The .tfp file.
///
Task PerformRemoteFirmwareUpgrade(String tfpFile);
}
}