173 lines
11 KiB
C#
173 lines
11 KiB
C#
using System.Text;
|
|
|
|
namespace EDAViewer.Singleton.Helper;
|
|
|
|
[Serializable]
|
|
public class Common
|
|
{
|
|
|
|
public string? ConfigurationProductiveState { get; set; }
|
|
public string? ConfigurationState { get; set; }
|
|
public string? ContainerName { get; set; }
|
|
public ModuleInstanceTypeName? ObjectType { get; set; }
|
|
public string? UnitName { get; set; }
|
|
//
|
|
public string Filename { get; set; }
|
|
public string StartTimeFormat { get; set; }
|
|
public string StoragePath { get; set; }
|
|
//
|
|
public List<string[]> GeneralTriggers { get; set; }
|
|
public List<string[]> LogisticsAttributes { get; set; }
|
|
public List<string[]> LogisticsColumns { get; set; }
|
|
public string LogisticsEquipmentAlias { get; set; }
|
|
public List<string?[]> LogisticsTriggers { get; set; }
|
|
public Dictionary<int, List<string[]>> LogisticsTriggersCallDefinitionAttributes { get; set; }
|
|
public Dictionary<int, string[]> LogisticsTriggersKeysKeyMapping { get; set; }
|
|
public List<string[]> Parameters { get; set; }
|
|
public string ParametersAsCsv { get; set; }
|
|
public string Source { get; set; }
|
|
public List<string[]> StartTriggersDCP { get; set; }
|
|
public List<string[]> StopTriggersDCP { get; set; }
|
|
|
|
[Obsolete("Only for DeserializeObject")]
|
|
public Common()
|
|
{
|
|
ObjectType = null;
|
|
Parameters = new();
|
|
Source = string.Empty;
|
|
Filename = string.Empty;
|
|
GeneralTriggers = new();
|
|
StopTriggersDCP = new();
|
|
UnitName = string.Empty;
|
|
LogisticsColumns = new();
|
|
StartTriggersDCP = new();
|
|
LogisticsTriggers = new();
|
|
StoragePath = string.Empty;
|
|
LogisticsAttributes = new();
|
|
ContainerName = string.Empty;
|
|
ParametersAsCsv = string.Empty;
|
|
StartTimeFormat = string.Empty;
|
|
ConfigurationState = string.Empty;
|
|
LogisticsEquipmentAlias = string.Empty;
|
|
ConfigurationProductiveState = string.Empty;
|
|
LogisticsTriggersKeysKeyMapping = new Dictionary<int, string[]>();
|
|
LogisticsTriggersCallDefinitionAttributes = new Dictionary<int, List<string[]>>();
|
|
}
|
|
|
|
public Common(ModuleInstanceTypeName objectType, object unitName, object containerName, object configurationState, object configurationProductiveState)
|
|
{
|
|
Parameters = new();
|
|
Source = string.Empty;
|
|
Filename = string.Empty;
|
|
GeneralTriggers = new();
|
|
ObjectType = objectType;
|
|
StopTriggersDCP = new();
|
|
LogisticsColumns = new();
|
|
StartTriggersDCP = new();
|
|
LogisticsTriggers = new();
|
|
StoragePath = string.Empty;
|
|
LogisticsAttributes = new();
|
|
ParametersAsCsv = string.Empty;
|
|
StartTimeFormat = string.Empty;
|
|
UnitName = unitName.ToString();
|
|
LogisticsEquipmentAlias = string.Empty;
|
|
ContainerName = containerName.ToString();
|
|
ConfigurationState = configurationState.ToString();
|
|
LogisticsTriggersKeysKeyMapping = new Dictionary<int, string[]>();
|
|
ConfigurationProductiveState = configurationProductiveState.ToString();
|
|
LogisticsTriggersCallDefinitionAttributes = new Dictionary<int, List<string[]>>();
|
|
}
|
|
|
|
public void Update(PDSFConfiguration configuration)
|
|
{
|
|
StoragePath = configuration.Settings.StoragePath;
|
|
StartTimeFormat = configuration.Settings.StartTimeFormat;
|
|
Filename = configuration.Settings.Filename;
|
|
//
|
|
Source = configuration.DataCollection.Source;
|
|
LogisticsEquipmentAlias = configuration.DataCollection.Logistics.EquipmentAlias;
|
|
//if (LogisticsEquipmentAlias == "R47-PLC")
|
|
//{ }
|
|
foreach (PDSFConfigurationDataCollectionLogisticsAttribute item in (from l in configuration.DataCollection.Logistics.Attributes orderby l.Use descending, l.Order select l))
|
|
LogisticsAttributes.Add(new string[] { item.Use.ToString(), item.Order.ToString("000"), item.Key, item.Placeholder });
|
|
foreach (PDSFConfigurationDataCollectionLogisticsColumn item in configuration.DataCollection.Logistics.Columns)
|
|
LogisticsColumns.Add(new string[] { item.ID.ToString(), item.Prefix });
|
|
foreach (PDSFConfigurationDataCollectionParameter1 item in (from l in configuration.DataCollection.VirtualParameters orderby l.Use descending, l.Order select l))
|
|
{
|
|
if (string.IsNullOrEmpty(item.Alias) && !string.IsNullOrEmpty(item.Conditions.ConditionModel.Name))
|
|
{
|
|
if (item.Use)
|
|
Parameters.Add(new string[] { item.Use.ToString(), item.Order.ToString("000"), item.FullName, item.Conditions.ConditionModel.Name, item.HardWareId, item.Description, item.Conditions.ConditionModel.Formula, true.ToString(), (configuration.DataCollection.Logistics.Columns.Length + 1 + item.Order).ToString("000") });
|
|
else
|
|
Parameters.Add(new string[] { item.Use.ToString(), item.Order.ToString("000"), item.FullName, item.Conditions.ConditionModel.Name, item.HardWareId, item.Description, string.Empty, true.ToString(), (configuration.DataCollection.Logistics.Columns.Length + 1 + item.Order).ToString("000") });
|
|
}
|
|
else
|
|
{
|
|
if (item.Use)
|
|
Parameters.Add(new string[] { item.Use.ToString(), item.Order.ToString("000"), item.FullName, item.Alias, item.HardWareId, item.Description, item.Conditions.ConditionModel.Formula, true.ToString(), (configuration.DataCollection.Logistics.Columns.Length + 1 + item.Order).ToString("000") });
|
|
else
|
|
Parameters.Add(new string[] { item.Use.ToString(), item.Order.ToString("000"), item.FullName, item.Alias, item.HardWareId, item.Description, string.Empty, true.ToString(), (configuration.DataCollection.Logistics.Columns.Length + 1 + item.Order).ToString("000") });
|
|
}
|
|
}
|
|
foreach (PDSFConfigurationDataCollectionParameter item in (from l in configuration.DataCollection.Parameters orderby l.Use descending, l.Order select l))
|
|
{
|
|
if (string.IsNullOrEmpty(item?.Alias) && !string.IsNullOrEmpty(item?.Conditions?.ConditionModel?.Name))
|
|
{
|
|
if (item.Use)
|
|
Parameters.Add(new string[] { item.Use.ToString(), item.Order.ToString("000"), item.FullName, item.Conditions.ConditionModel.Name, item.HardWareId, item.Description, item.Conditions.ConditionModel.Formula, false.ToString(), (configuration.DataCollection.Logistics.Columns.Length + 1 + item.Order).ToString("000") });
|
|
else
|
|
Parameters.Add(new string[] { item.Use.ToString(), item.Order.ToString("000"), item.FullName, item.Conditions.ConditionModel.Name, item.HardWareId, item.Description, string.Empty, false.ToString(), (configuration.DataCollection.Logistics.Columns.Length + 1 + item.Order).ToString("000") });
|
|
}
|
|
else
|
|
{
|
|
if (item is null)
|
|
continue;
|
|
if (item.Use)
|
|
Parameters.Add(new string[] { item.Use.ToString(), item.Order.ToString("000"), item.FullName, item.Alias, item.HardWareId, item.Description, item.Conditions.ConditionModel.Formula, false.ToString(), (configuration.DataCollection.Logistics.Columns.Length + 1 + item.Order).ToString("000") });
|
|
else
|
|
Parameters.Add(new string[] { item.Use.ToString(), item.Order.ToString("000"), item.FullName, item.Alias, item.HardWareId, item.Description, string.Empty, false.ToString(), (configuration.DataCollection.Logistics.Columns.Length + 1 + item.Order).ToString("000") });
|
|
}
|
|
}
|
|
Parameters = (from l in Parameters orderby l[0] descending, l[1] select l).ToList();
|
|
StringBuilder text = new();
|
|
//text.AppendLine("\"AliasName\";\"Condition\";\"EventId\";\"ExceptionId\";\"Formula\";\"HardwareId\";\"OrderId\";\"ParameterName\";\"Remark\";\"ReportName\";\"SourceId\";\"Use\"");
|
|
//"Test";"";"";"";"";"";"1";"MICROSCOPE01/MET08MESMICROSCOPE/Test";"";"MICROSCOPE01/MET08MESMICROSCOPE/FileRead";"";"True""
|
|
_ = text.AppendLine("\"Use\";\"OrderId\";\"ReportName\";\"ParameterName\";\"AliasName\";\"HardwareId\";\"Remark\";\"Formula\"");
|
|
foreach (string[] item in Parameters)
|
|
{
|
|
for (int i = 0; i < 7; i++)
|
|
_ = text.Append('"').Append(item[i]).Append("\";");
|
|
_ = text.Remove(text.Length - 1, 1);
|
|
_ = text.AppendLine();
|
|
}
|
|
ParametersAsCsv = text.ToString();
|
|
foreach (PDSFConfigurationDataCollectionGeneralTriggers item in configuration.DataCollection.GeneralTriggers)
|
|
{
|
|
foreach (PDSFConfigurationDataCollectionGeneralTriggersVariableModel gv in item.GlobalVariables)
|
|
GeneralTriggers.Add(new string[] { item.Name, gv.Name, gv.ParameterName, gv.Formula });
|
|
}
|
|
{
|
|
PDSFConfigurationDataCollectionStartTriggersDCP item = configuration.DataCollection.StartTriggers.DCP;
|
|
if (item is not null)
|
|
StartTriggersDCP.Add(new string[] { item.Name, item.Rule, item.ResolveGlobalVariableBeforeTrigger.ToString() });
|
|
}
|
|
if (configuration.DataCollection.Logistics.Triggers.UpdateTrigger is not null)
|
|
{
|
|
foreach (PDSFConfigurationDataCollectionLogisticsTriggersUpdateTriggerLogisticRequest item in configuration.DataCollection.Logistics.Triggers.UpdateTrigger.LogisticRequest)
|
|
{
|
|
LogisticsTriggers.Add(new string?[] { item.Name.ToString(), item.LogisticsColumn.Fixed.ToString(), item.Rule, item.Keys.Scenario, item.Keys.DefaultJobIndex.ToString(), item.Keys.DefaultCarrierIndex.ToString(), item.Keys.DefaultSlotIndex.ToString(), item.DataPool.ToString() });
|
|
if (item.Keys.KeyMapping is not null)
|
|
LogisticsTriggersKeysKeyMapping.Add(item.Name, new string[] { item.Keys.KeyMapping.KeyName, item.Keys.KeyMapping.ParameterName, item.Keys.KeyMapping.Formula });
|
|
LogisticsTriggersCallDefinitionAttributes.Add(item.Name, new());
|
|
foreach (PDSFConfigurationDataCollectionLogisticsTriggersUpdateTriggerLogisticRequestCallDefinitionLogisticCallDefinitionAttribute att in item.CallDefinition.Attributes)
|
|
LogisticsTriggersCallDefinitionAttributes[item.Name].Add(new string[] { att.LogisticsKey, att.Source, att.MappedParameterName, att.Formula });
|
|
}
|
|
}
|
|
{
|
|
PDSFConfigurationDataCollectionStopTriggersDCP item = configuration.DataCollection.StopTriggers.DCP;
|
|
if (item is not null)
|
|
StopTriggersDCP.Add(new string[] { item.Name, item.Rule, item.ResolveGlobalVariableBeforeTrigger.ToString(), item.ResetGlobalVariablesAfterTrigger.ToString() });
|
|
}
|
|
}
|
|
|
|
} |