168 lines
5.7 KiB
C#
168 lines
5.7 KiB
C#
using System;
|
|
using System.Windows.Input;
|
|
using System.Windows.Media;
|
|
using System.Windows.Media.Imaging;
|
|
using DTS.Common.Base;
|
|
using DTS.Common.Enums.Hardware;
|
|
using DTS.Common.Interface.Hardware.AddEditHardware;
|
|
using DTS.Common.Utilities.Logging;
|
|
|
|
namespace HardwareList.Model
|
|
{
|
|
public class DASModule : BasePropertyChanged, IAddEditHardwareDASModule
|
|
{
|
|
public bool Disabled { get; set; } = false;
|
|
|
|
private SLICEBridgeTypes _sliceBridgeType = SLICEBridgeTypes.Bridge;
|
|
|
|
public SLICEBridgeTypes SLICEBridgeType
|
|
{
|
|
get => _sliceBridgeType;
|
|
set
|
|
{
|
|
SetProperty(ref _sliceBridgeType, value, "SLICEBridgeType");
|
|
SetImage();
|
|
}
|
|
}
|
|
|
|
private HardwareTypes _moduleType = HardwareTypes.UNDEFINED;
|
|
public HardwareTypes ModuleType
|
|
{
|
|
get => _moduleType;
|
|
set
|
|
{
|
|
SetProperty(ref _moduleType, value, "ModuleType");
|
|
SetImage();
|
|
}
|
|
}
|
|
|
|
private string _serialNumber = "";
|
|
public string SerialNumber
|
|
{
|
|
get => _serialNumber;
|
|
set => SetProperty(ref _serialNumber, value, "SerialNumber");
|
|
}
|
|
|
|
private ImageSource _dasImage = null;
|
|
|
|
public ImageSource DASImage
|
|
{
|
|
get => _dasImage;
|
|
set => SetProperty(ref _dasImage, value, "DASImage");
|
|
}
|
|
|
|
private static readonly SLICEBridgeTypes[] _availableNanoBridges = new SLICEBridgeTypes[]
|
|
{
|
|
SLICEBridgeTypes.Bridge,
|
|
SLICEBridgeTypes.IEPE
|
|
};
|
|
|
|
public SLICEBridgeTypes[] AvailableNanoBridges => _availableNanoBridges;
|
|
|
|
private static readonly SLICEBridgeTypes[] _availableMicroBridges = new SLICEBridgeTypes[]
|
|
{
|
|
SLICEBridgeTypes.Bridge,
|
|
SLICEBridgeTypes.IEPE,
|
|
SLICEBridgeTypes.ARS,
|
|
SLICEBridgeTypes.ACC
|
|
};
|
|
|
|
public SLICEBridgeTypes[] AvailableMicroBridges => _availableMicroBridges;
|
|
|
|
private static readonly HardwareTypes[] _availableRackModules = new HardwareTypes[]
|
|
{
|
|
HardwareTypes.UNDEFINED,
|
|
HardwareTypes.SIM,
|
|
HardwareTypes.TOM,
|
|
HardwareTypes.DIM
|
|
};
|
|
public HardwareTypes[] AvailableRACKModules => _availableRackModules;
|
|
|
|
/// <summary>
|
|
/// Uri for finding images using the application resources
|
|
/// </summary>
|
|
private static readonly Uri _baseUri = new Uri("pack://application:,,,/ResourceFile.xaml");
|
|
private void SetImage()
|
|
{
|
|
var fileName = string.Empty;
|
|
switch (ModuleType)
|
|
{
|
|
case HardwareTypes.SLICE_Bridge:
|
|
switch (SLICEBridgeType)
|
|
{
|
|
case SLICEBridgeTypes.ACC:
|
|
fileName = @"Assets/Hardware/SLICEACC_Side.png";
|
|
break;
|
|
case SLICEBridgeTypes.ARS:
|
|
fileName = @"Assets/Hardware/SLICEARS_Side.png";
|
|
break;
|
|
case SLICEBridgeTypes.Bridge:
|
|
fileName = @"Assets/Hardware/SLICEBridge_Side.png";
|
|
break;
|
|
case SLICEBridgeTypes.IEPE:
|
|
fileName = @"Assets/Hardware/SLICEIEPE_Side.png";
|
|
break;
|
|
}
|
|
break;
|
|
case HardwareTypes.TOM:
|
|
fileName = @"Assets/Hardware/TDAS_TOM_Front.jpg";
|
|
break;
|
|
case HardwareTypes.SIM:
|
|
fileName = @"Assets/Hardware/TDAS_SIM_Front.jpg";
|
|
break;
|
|
case HardwareTypes.DIM:
|
|
fileName = @"Assets/Hardware/TDAS_DIM_Front.jpg";
|
|
break;
|
|
default:
|
|
fileName = @"Assets/Hardware/TDAS_Rack_Cover.png";
|
|
break;
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(fileName))
|
|
{
|
|
DASImage = null;
|
|
return;
|
|
}
|
|
|
|
try
|
|
{
|
|
var image = new BitmapImage(new Uri(_baseUri, fileName));
|
|
image.Freeze();
|
|
DASImage = image;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
APILogger.Log(
|
|
$"Failed to get image: {fileName} for type: {ModuleType.ToString()} exception: {ex.Message.ToString()}");
|
|
}
|
|
}
|
|
public IAddEditHardwareHardware OwningHardware { get; set; }
|
|
|
|
public string GetSerialNumberPrefix()
|
|
{
|
|
switch (ModuleType)
|
|
{
|
|
case HardwareTypes.DIM: return "DIM";
|
|
case HardwareTypes.SIM: return "SIM";
|
|
case HardwareTypes.SLICE_Bridge:
|
|
{
|
|
switch (SLICEBridgeType)
|
|
{
|
|
case SLICEBridgeTypes.ACC: return "AC";
|
|
case SLICEBridgeTypes.ARS: return "AR";
|
|
case SLICEBridgeTypes.Bridge: return "BR";
|
|
case SLICEBridgeTypes.IEPE: return "IEPE";
|
|
}
|
|
}
|
|
break;
|
|
case HardwareTypes.TOM:
|
|
return "TOM";
|
|
}
|
|
return string.Empty;
|
|
}
|
|
public DASModule()
|
|
{
|
|
}
|
|
}
|
|
}
|