HelperEAFProgramData HelperCompass HelperInfinityQS HelperSerial HelperTCP dotnet_analyzer_diagnostic
		
			
				
	
	
		
			178 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			178 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System.Text;
 | |
| 
 | |
| namespace File_Watcher.Helpers.EDA;
 | |
| 
 | |
| [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[] StoragePaths { 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()
 | |
|     {
 | |
|         Parameters = [];
 | |
|         ObjectType = null;
 | |
|         StoragePaths = [];
 | |
|         GeneralTriggers = [];
 | |
|         StopTriggersDCP = [];
 | |
|         LogisticsColumns = [];
 | |
|         Source = string.Empty;
 | |
|         StartTriggersDCP = [];
 | |
|         LogisticsTriggers = [];
 | |
|         Filename = string.Empty;
 | |
|         UnitName = string.Empty;
 | |
|         LogisticsAttributes = [];
 | |
|         ContainerName = string.Empty;
 | |
|         ParametersAsCsv = string.Empty;
 | |
|         StartTimeFormat = string.Empty;
 | |
|         ConfigurationState = string.Empty;
 | |
|         LogisticsTriggersKeysKeyMapping = [];
 | |
|         LogisticsEquipmentAlias = string.Empty;
 | |
|         ConfigurationProductiveState = string.Empty;
 | |
|         LogisticsTriggersCallDefinitionAttributes = [];
 | |
|     }
 | |
| 
 | |
|     public Common(ModuleInstanceTypeName objectType, object unitName, object containerName, object configurationState, object configurationProductiveState)
 | |
|     {
 | |
|         Parameters = [];
 | |
|         StoragePaths = [];
 | |
|         GeneralTriggers = [];
 | |
|         StopTriggersDCP = [];
 | |
|         LogisticsColumns = [];
 | |
|         Source = string.Empty;
 | |
|         StartTriggersDCP = [];
 | |
|         LogisticsTriggers = [];
 | |
|         Filename = string.Empty;
 | |
|         ObjectType = objectType;
 | |
|         LogisticsAttributes = [];
 | |
|         ParametersAsCsv = string.Empty;
 | |
|         StartTimeFormat = string.Empty;
 | |
|         UnitName = unitName.ToString();
 | |
|         LogisticsTriggersKeysKeyMapping = [];
 | |
|         LogisticsEquipmentAlias = string.Empty;
 | |
|         ContainerName = containerName.ToString();
 | |
|         LogisticsTriggersCallDefinitionAttributes = [];
 | |
|         ConfigurationState = configurationState.ToString();
 | |
|         ConfigurationProductiveState = configurationProductiveState.ToString();
 | |
|     }
 | |
| 
 | |
|     public void Update(PDSFConfiguration configuration)
 | |
|     {
 | |
|         if (configuration.Settings.StoragePaths is null)
 | |
|             StoragePaths = [];
 | |
|         else
 | |
|             StoragePaths = configuration.Settings.StoragePaths;
 | |
|         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([item.Use.ToString(), item.Order.ToString("000"), item.Key, item.Placeholder]);
 | |
|         foreach (PDSFConfigurationDataCollectionLogisticsColumn item in configuration.DataCollection.Logistics.Columns)
 | |
|             LogisticsColumns.Add([item.ID.ToString(), item.Prefix]);
 | |
|         foreach (PDSFConfigurationDataCollectionParameter1 item in from l in configuration.DataCollection.VirtualParameters orderby l.Use descending, l.Order select l)
 | |
|         {
 | |
|             if (item?.Conditions is null)
 | |
|                 continue;
 | |
|             if (string.IsNullOrEmpty(item.Alias) && !string.IsNullOrEmpty(item.Conditions.ConditionModel?.Name))
 | |
|             {
 | |
|                 if (item.Use)
 | |
|                     Parameters.Add([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([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([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([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([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([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([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([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?[] parameter in Parameters)
 | |
|         {
 | |
|             for (int i = 0; i < 7; i++)
 | |
|                 _ = text.Append('"').Append(parameter[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([item.Name, gv.Name, gv.ParameterName, gv.Formula]);
 | |
|         }
 | |
|         {
 | |
|             PDSFConfigurationDataCollectionStartTriggersDCP item = configuration.DataCollection.StartTriggers.DCP;
 | |
|             if (item is not null)
 | |
|                 StartTriggersDCP.Add([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([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, [item.Keys.KeyMapping.KeyName, item.Keys.KeyMapping.ParameterName, item.Keys.KeyMapping.Formula]);
 | |
|                 LogisticsTriggersCallDefinitionAttributes.Add(item.Name, []);
 | |
|                 foreach (PDSFConfigurationDataCollectionLogisticsTriggersUpdateTriggerLogisticRequestCallDefinitionLogisticCallDefinitionAttribute att in item.CallDefinition.Attributes)
 | |
|                     LogisticsTriggersCallDefinitionAttributes[item.Name].Add([att.LogisticsKey, att.Source, att.MappedParameterName, att.Formula]);
 | |
|             }
 | |
|         }
 | |
|         {
 | |
|             PDSFConfigurationDataCollectionStopTriggersDCP item = configuration.DataCollection.StopTriggers.DCP;
 | |
|             if (item is not null)
 | |
|                 StopTriggersDCP.Add([item.Name, item.Rule, item.ResolveGlobalVariableBeforeTrigger.ToString(), item.ResetGlobalVariablesAfterTrigger.ToString()]);
 | |
|         }
 | |
|     }
 | |
| 
 | |
| } |