using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL;
using Tango.BL.Entities;
using Tango.Integration.Operation;
using Tango.Settings;
using Tango.Transport.Adapters;
namespace Tango.Integration.ExternalBridge
{
public class ExternalBridgeTcpFirmwareClient : MachineOperator, IExternalBridgeClient
{
public bool RequiresAuthentication { get; } = false;
private String _serialNumber;
///
/// Gets the machine serial number.
///
public String SerialNumber
{
get { return _serialNumber; }
set
{
_serialNumber = value;
RaisePropertyChangedAuto();
}
}
private String _ipAddress;
///
/// Gets or sets the machine IP address.
///
public String IPAddress
{
get { return _ipAddress; }
private set { _ipAddress = value; RaisePropertyChangedAuto(); }
}
private int _port;
///
/// Gets or sets the machine port.
///
public int Port
{
get { return _port; }
private set { _port = value; RaisePropertyChangedAuto(); }
}
public Machine Machine { get; private set; }
public ExternalBridgeTcpFirmwareClient()
{
ComponentName = $"External Bridge TCP Firmware Client {_component_counter++}";
var settings = SettingsManager.Default.GetOrCreate();
IPAddress = settings.FirmwareIPAddress;
Port = settings.FirmwarePort;
UseKeepAlive = false;
EnableDiagnostics = true;
Adapter = new TcpTransportAdapter(IPAddress, Port);
}
public ExternalBridgeTcpFirmwareClient(Machine machine) : this()
{
SetMachine(machine);
}
public void SetMachine(Machine machine)
{
Machine = machine;
SerialNumber = Machine.SerialNumber;
}
}
}