using DTS.Common.Converters; using DTS.Common.Interface.DASFactory; using DTS.Common.Interface.DASFactory.Diagnostics.HardwareList; using DTS.Common.Interface.DataRecorders; using System; using System.ComponentModel; using System.Net; namespace DTS.Common.Interface.Hardware { public interface IAllATDStatus { IATDStatus[] ATDs { get; } void AddDevice(IDeviceArmStatus device, string parent); void PopulateFromHardware(IDASHardware[] hardware); AllATDStatuses OverallStatus { get; } } public enum AllATDStatuses { NotConnected, Connecting, AllConnected, AllArmed, Errors } public interface IATDStatus { AllATDStatuses Status { get; } IDistributorArmStatus[] Distributors { get; } void AddDistributor(IDistributorArmStatus distributor); IPAddress IP { get; } void SetIP(IPAddress ip); void UpdateAggregateStatus(); } public interface IDistributorArmStatus { bool EmptyDistributor { get; } IDeviceArmStatus Distributor { get; } void SetDistributor(IDeviceArmStatus distributor); DistributorStatuses DistributorStatus { get; } void SetDistributorStatus(DistributorStatuses status); AllATDStatuses AggregateStatus { get; } IDeviceArmStatus[] Devices { get; } void AddDevice(IDeviceArmStatus device); string SerialNumber { get; } void SetSerialNumber(string serial); void UpdateAggregateStatus(); DateTime? LastSeen { get; } float? InputVoltage { get; } float? BackupVoltage { get; } void UpdateStatusFromQATS(IUDPQATSEntry qats); } [TypeConverter(typeof(EnumDescriptionTypeConverter))] public enum DistributorStatuses { [Description("DistributorStatus_OFFLINE")] NotConnected, [Description("DistributorStatus_ONLINE")] Connected, [Description("DistributorStatus_ARMED")] Armed, [Description("DistributorStatus_IDLE")] NotArmed, [Description("DistributorStatus_ARMEDFAULTED")] Errored } [TypeConverter(typeof(EnumDescriptionTypeConverter))] public enum DASStatuses { [Description("DASStatus_Offline")] MissingNotBooted, [Description("DASStatus_Online")] BootedNotArmedYet, [Description("DASStatus_Online")] BootedNeverArmed, [Description("DASStatus_ARMED")] ArmedReady, [Description("DASStatus_ARMEDFAULTED")] ArmedButFailedDiag, [Description("DASStatus_READYFORDL")] ReadyForDownload } [Flags] public enum DiagStatuses { Passed, NoResults, FailedShunt, FailedOffset, FailedTilt, FailedTemperature } public interface IDeviceArmStatus { bool HasArmed { get; set; } DASStatuses DASStatus { get; } void SetDASStatus(DASStatuses status); DiagStatuses DiagStatus { get; } void SetDiagStatus(DiagStatuses status); IDistributorArmStatus Distributor { get; } void SetDistributor(IDistributorArmStatus distributor); IDASHardware Hardware { get; } void SetHardware(IDASHardware hardware); IDASCommunication DASCommunication { get; } void SetDASCommunication(IDASCommunication das); string SerialNumber { get; } void SetSerialNumber(string serial); DateTime? LastSeen { get; } float? InputVoltage { get; } float? BackupVoltage { get; } void UpdateStatusFromQATS(IUDPQATSEntry qats); string ShuntResults { get; } string OffsetResults { get; } double? TiltX { get; } double? TiltY { get; } double? TiltZ { get; } string IPAddress { get; } bool Triggered { get; } } }