From ba9f39ec1d95b952b9d97bee776c4b53f3ddf972 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 08:26:20 +0100 Subject: [PATCH 01/21] Create draft PR for #585 From 560ec25e7e3266b57e659e627fed0e6360e32d18 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 08:30:17 +0100 Subject: [PATCH 02/21] plcsim folder moved one level up --- cake/BuildContext.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cake/BuildContext.cs b/cake/BuildContext.cs index 83a994205..846bd50fa 100644 --- a/cake/BuildContext.cs +++ b/cake/BuildContext.cs @@ -116,7 +116,7 @@ public void UpdateApaxDependencies(string file, string version) public string TestResultsCtrl => Path.Combine(Environment.WorkingDirectory.FullPath, "..//TestResultsCtrl//"); public string AppTestResultsDir => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//app_test_results//")); public string SourceDirPlcSim => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//source//plcsim//")); - public string PlcSimVirtualMemoryCardLocation => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//plcsim//")); + public string PlcSimVirtualMemoryCardLocation => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//plcsim//")); public string PlcName => "plc_line"; public string PlcIpAddress => "10.10.10.120"; From 92556700a8e6ca949002903decef347ba5283e20 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 10:08:11 +0100 Subject: [PATCH 03/21] Cleaning of the JSONREPOS folder added --- cake/AppsRunTaskHelpers.cs | 489 +++++++++++++++++++++++++++++++++++++ cake/Program.cs | 467 ++--------------------------------- 2 files changed, 503 insertions(+), 453 deletions(-) create mode 100644 cake/AppsRunTaskHelpers.cs diff --git a/cake/AppsRunTaskHelpers.cs b/cake/AppsRunTaskHelpers.cs new file mode 100644 index 000000000..d3e7053ea --- /dev/null +++ b/cake/AppsRunTaskHelpers.cs @@ -0,0 +1,489 @@ +using Cake.Common.Diagnostics; +using Cake.Common.IO; +using Cake.Core.Diagnostics; +using System; +using System.Diagnostics; +using System.IO; +using System.Linq; +using File = System.IO.File; +using Path = System.IO.Path; +// Build +// Copyright (c) 2023 MTS spol. s r.o, and Contributors. All Rights Reserved. +// Contributors: https://github.com/inxton/AXOpen/graphs/contributors +// See the LICENSE file in the repository root for more information. +// https://github.com/inxton/AXOpen/blob/master/LICENSE +// Third party licenses: https://github.com/inxton/AXOpen/blob/master/notices.md + + +internal static class AppsRunTaskHelpers +{ + + public static void BuildAndLoadPlc(BuildContext context, string appYamlFile, string appName, string logFilePath, ref bool summaryResult) + { + string plcName = context.PlcName; + string plcIpAddress = context.PlcIpAddress; + + // Validate application YAML file + if (string.IsNullOrWhiteSpace(appYamlFile)) + { + context.Log.Error("The provided YAML of the application is empty."); + return; + } + + if (!File.Exists(appYamlFile)) + { + context.Log.Error($"The provided application file does not exist: {appYamlFile}"); + return; + } + + if (string.IsNullOrWhiteSpace(appName)) + { + context.Log.Error("The provided application name is empty."); + return; + } + + string appFolder = Path.GetDirectoryName(appYamlFile); + if (string.IsNullOrWhiteSpace(appFolder) || !Directory.Exists(appFolder)) + { + context.Log.Error($"The provided path for the application does not exist: {appFolder}"); + return; + } + + // Run "apax install" + ApaxCmd.ApaxInstall(context, appFolder); + + // Run "apax plcsim" + string plcSimResult = ApaxCmd.ApaxPlcSim(context, appFolder, ref summaryResult); + WriteResult(context, plcSimResult, logFilePath, appendToSameLine: true); + + // Run "apax hwu" + string hwuResult = ApaxCmd.ApaxHwu(context, appFolder, ref summaryResult); + WriteResult(context, hwuResult, logFilePath, appendToSameLine: true); + + // Run "apax swfd" + string swfdResult = ApaxCmd.ApaxSwfd(context, appFolder, ref summaryResult); + WriteResult(context, swfdResult, logFilePath, appendToSameLine: true); + } + + public static void BuildAndStartHmi(BuildContext context, string appYamlFile, string appName, string logFilePath, ref bool summaryResult) + { + // Validate application YAML file + if (string.IsNullOrWhiteSpace(appYamlFile)) + { + context.Log.Error("The provided YAML of the application is empty."); + return; + } + + if (!context.FileExists(appYamlFile)) + { + context.Log.Error($"The provided application file does not exist: {appYamlFile}"); + return; + } + + if (string.IsNullOrWhiteSpace(appName)) + { + context.Log.Error("The provided application name is empty."); + return; + } + + string appFolder = Path.GetFullPath(Path.GetDirectoryName(appYamlFile)); + if (string.IsNullOrWhiteSpace(appFolder) || !context.DirectoryExists(appFolder)) + { + context.Log.Error($"The provided path for the application does not exist: {appFolder}"); + return; + } + + // Recreate solution file by running the slngen script + string slnGenPath = Path.GetFullPath(Path.GetFullPath(Path.Combine(appFolder, "..", "./slngen.ps1"))); + DotNetCmd.RunPowershellScript(context, slnGenPath, ""); + + // Clean solution + string solutionFile = Path.GetFullPath(Path.Combine(appFolder, "../this.sln")); + DotNetCmd.DotNetClean(context, solutionFile, "-c Debug"); + + // Build solution + string buildResult = DotNetCmd.DotNetBuildWithResult(context, solutionFile, "-c Debug", ref summaryResult); + WriteResult(context, buildResult, logFilePath, appendToSameLine: true); + + // Get blazor projects + var blazorFiles = Directory.GetFiles(appFolder, "*.csproj", SearchOption.AllDirectories).Where(file => file.Contains("blazor")).ToList(); + + if (blazorFiles.Any()) + { + foreach (var blazorFile in blazorFiles) + { + context.Log.Information($"Application 'blazor' file: {blazorFile}"); + + // Filter out libraries by checking for in the project file + string csprojContent = File.ReadAllText(blazorFile); + if (!csprojContent.Contains("")) + { + string runResult = DotNetCmd.DotNetRunWithResult(context, blazorFile, "-c Debug --framework net9.0", 60, ref summaryResult); + WriteResult(context, runResult, logFilePath, appendToSameLine: true); + } + } + } + else + { + context.Log.Information("No files containing 'blazor' in the filename and ending with '.csproj' were found."); + } + } + + public static (bool Success, string FilePath) CreateLogFile(BuildContext context, string fileNamePrefix = "app_test_result") + { + string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss"); // Generate the timestamp + string fileName = $"{fileNamePrefix}_{timestamp}.csv"; // Create the full file name + string appsRunResultFileName = Path.GetFullPath(Path.Combine(context.AppTestResultsDir, fileName)); + + // Create result directory + try + { + context.EnsureDirectoryExists(context.AppTestResultsDir); + } + catch (Exception ex) + { + context.Log.Error($"Failed to create the directory {context.AppTestResultsDir}: {ex.Message}"); + return (false, null); + } + context.Log.Information($"Directory: {context.AppTestResultsDir} has been created."); + + // Create result file + try + { + using (File.Create(appsRunResultFileName)) { } + context.Log.Information($"File '{appsRunResultFileName}' has been created."); + return (context.FileExists(appsRunResultFileName), appsRunResultFileName); + } + catch (Exception ex) + { + context.Log.Error($"Failed to create the file {appsRunResultFileName}: {ex.Message}"); + return (false, null); + } + } + + public static void DeleteJsonReposFolder(BuildContext context, string appFolder) + { + // Validate the instance name + if (string.IsNullOrWhiteSpace(appFolder)) + { + context.Log.Error("The provided instance name is empty."); + return; + } + + string jsonReposFolder = Path.Combine(appFolder, "JSONREPOS"); + if (context.DirectoryExists(jsonReposFolder)) + { + // Delete all files and subfolders + context.Log.Information($"The path {jsonReposFolder} already exists. It needs to be cleaned before."); + try + { + context.CleanDirectory(jsonReposFolder, new CleanDirectorySettings() { Force = true }); + Directory.Delete(jsonReposFolder); + } + catch (Exception ex) + { + context.Log.Error($"Failed to clean the directory {jsonReposFolder}: {ex.Message}"); + } + context.Log.Information($"Directory {jsonReposFolder} has been cleaned."); + } + } + + public static void InitializePlcSimInstance(BuildContext context, string instanceName) + { + string plcSimSourceDir = context.SourceDirPlcSim; + string memoryCardPath = context.PlcSimVirtualMemoryCardLocation; + + // Validate the memory card path + if (!context.DirectoryExists(memoryCardPath)) + { + context.Log.Error($"The provided path for the virtual memory card does not exist: {memoryCardPath}"); + return; + } + + // Validate the instance name + if (string.IsNullOrWhiteSpace(instanceName)) + { + context.Log.Error("The provided instance name is empty."); + return; + } + + // Determine the instance path + string instancePath = Path.GetFullPath(Path.Combine(memoryCardPath, instanceName)); + + if (context.DirectoryExists(instancePath)) + { + // Delete all files and subfolders + context.Log.Information($"The instance path {instancePath} already exists. It needs to be cleaned before."); + try + { + context.CleanDirectory(instancePath, new CleanDirectorySettings() { Force = true }); + } + catch (Exception ex) + { + context.Log.Error($"Failed to clean the directory {instancePath}: {ex.Message}"); + } + context.Log.Information($"Directory {instancePath} has been cleaned."); + } + + // Create the instance directory + try + { + context.EnsureDirectoryExists(instancePath); + } + catch (Exception ex) + { + context.Log.Error($"Failed to create directory {instancePath}: {ex.Message}"); + return; + } + context.Log.Information($"Directory: {instancePath} has been created."); + + // Source directory for PLC Sim files + if (!context.DirectoryExists(plcSimSourceDir)) + { + context.Log.Error($"Source directory for the plcsim {plcSimSourceDir} does not exist."); + return; + } + + // Copy plcsim virtual memory card content + try + { + context.CopyDirectory(plcSimSourceDir, instancePath); + } + catch (Exception ex) + { + context.Log.Error($"Failed to copy plcsim virtual memory card content from: {plcSimSourceDir} to: {instancePath}: {ex.Message}"); + return; + } + context.Log.Information($"Plcsim virtual memory card content has been copied succesfullt from: {plcSimSourceDir} to: {instancePath}"); + } + + public static void KillProcess(BuildContext context, string processName) + { + try + { + // Get all processes by name + Process[] processes = Process.GetProcessesByName(processName); + + if (processes.Length > 0) + { + foreach (var process in processes) + { + try + { + // Attempt to kill the process + process.Kill(true); // Forcefully terminate the process + context.Log.Information($"Successfully terminated process: {process.ProcessName} (ID: {process.Id})"); + } + catch (Exception ex) + { + context.Log.Error($"Failed to terminate process: {process.ProcessName} (ID: {process.Id}) - {ex.Message}"); + } + } + } + else + { + context.Log.Information($"No processes named '{processName}' were found."); + } + } + catch (Exception ex) + { + context.Log.Error($"An error occurred while attempting to find or kill processes: {ex.Message}"); + } + } + + public static void OverwriteSecurityFiles(BuildContext context, string appYamlFile, string plcName) + { + string sourceDirSecurityFiles = context.SourceDirSecurityFiles; + + // Check application YAML file + if (string.IsNullOrWhiteSpace(appYamlFile)) + { + context.Log.Error("The provided YAML of the application is empty."); + return; + } + + if (!context.FileExists(appYamlFile)) + { + context.Log.Error($"The provided application file does not exist: {appYamlFile}"); + return; + } + + string appFolder = Path.GetFullPath(Path.GetDirectoryName(appYamlFile)); + if (string.IsNullOrWhiteSpace(appFolder) || !context.DirectoryExists(appFolder)) + { + context.Log.Error($"The provided path for the application does not exist: {appFolder}"); + return; + } + + + if (string.IsNullOrWhiteSpace(plcName)) + { + context.Log.Error("The provided PLC name is empty."); + return; + } + + // Check source directory + if (string.IsNullOrWhiteSpace(sourceDirSecurityFiles)) + { + context.Log.Error("The provided directory name for the source directory of the security files is empty."); + return; + } + + if (!context.DirectoryExists(sourceDirSecurityFiles)) + { + context.Log.Error($"Source directory for the security file does not exist: {sourceDirSecurityFiles}"); + return; + } + + // Handle certification folder + string appCertFolder = Path.Combine(appFolder, "certs"); + if (context.DirectoryExists(appCertFolder)) + { + context.Log.Information($"The application certification folder {appCertFolder} already exists. It needs to be cleaned before."); + try + { + context.CleanDirectory(appCertFolder, new CleanDirectorySettings() { Force = true }); + context.Log.Information($"The application certification folder {appCertFolder} has been cleaned."); + } + catch (Exception ex) + { + context.Log.Error($"Failed to clean the application certification folder {appCertFolder}: {ex.Message}"); + } + } + else + { + try + { + context.EnsureDirectoryExists(appCertFolder); + context.Log.Information($"The application certification folder {appCertFolder} has been created."); + } + catch (Exception ex) + { + context.Log.Error($"Failed to create the application certification folder {appCertFolder}: {ex.Message}"); + } + } + + // Handle certification subfolder for the plc: 'plcName' + string appCertSubFolder = Path.GetFullPath(Path.Combine(appCertFolder, plcName)); + try + { + context.EnsureDirectoryExists(appCertSubFolder); + context.Log.Information($"The application certification subfolder {appCertSubFolder} has been created."); + } + catch (Exception ex) + { + context.Log.Error($"Failed to create the application certification folder {appCertSubFolder}: {ex.Message}"); + } + + // Handle certification file + string plcSourceCertificateFile = $"{plcName}.cer"; + string plcSourceCertificate = Path.GetFullPath(Path.Combine(sourceDirSecurityFiles, plcSourceCertificateFile)); + if (context.FileExists(plcSourceCertificate)) + { + try + { + context.CopyFileToDirectory(plcSourceCertificate, appCertSubFolder); + context.Log.Information($"Certification file '{plcSourceCertificateFile}' has been copied to: {appCertSubFolder}"); + } + catch (Exception ex) + { + context.Log.Error($"Failed to copy the certification file '{plcSourceCertificateFile}': {ex.Message}"); + } + } + else + { + context.Log.Error($"Certification file '{plcSourceCertificateFile}' does not exist in the directory: {sourceDirSecurityFiles}"); + } + + // Handle hwc folder + string appHwcFolder = Path.GetFullPath(Path.Combine(appFolder, "hwc")); + if (!context.DirectoryExists(appHwcFolder)) + { + context.Log.Error($"The application's hwc folder does not exist: {appHwcFolder}"); + return; + } + + // Handle hwc.gen subfolder + string appHwcGenFolder = Path.GetFullPath(Path.Combine(appHwcFolder, "hwc.gen")); + if (context.DirectoryExists(appHwcGenFolder)) + { + context.Log.Information($"The application's hwc.gen subfolder {appHwcGenFolder} already exists. It needs to be cleaned before."); + try + { + context.CleanDirectory(appHwcGenFolder, new CleanDirectorySettings() { Force = true }); + context.Log.Information($"The application's hwc.gen subfolder {appHwcGenFolder} has been cleaned."); + } + catch (Exception ex) + { + context.Log.Error($"Failed to clean the application's hwc.gen subfolder {appHwcGenFolder}: {ex.Message}"); + } + } + else + { + try + { + context.EnsureDirectoryExists(appHwcGenFolder); + context.Log.Information($"The application's hwc.gen subfolder {appHwcGenFolder} has been created."); + } + catch (Exception ex) + { + context.Log.Error($"Failed to create the application's hwc.gen subfolder {appHwcGenFolder}: {ex.Message}"); + } + } + + // Handle secutity configuration file + string securityConfigFileName = $"{plcName}.SecurityConfiguration.json"; + string securityConfigFile = Path.GetFullPath(Path.Combine(sourceDirSecurityFiles, securityConfigFileName)); + if (context.FileExists(securityConfigFile)) + { + try + { + context.CopyFileToDirectory(securityConfigFile, appHwcGenFolder); + context.Log.Information($"Security configuration file '{securityConfigFileName}' successfully copied to: {appHwcGenFolder}"); + } + catch (Exception ex) + { + context.Log.Error($"Failed to copy the file: {ex.Message}"); + } + } + else + { + context.Log.Information($"Security configuration file '{securityConfigFileName}' does not exist in the directory: {sourceDirSecurityFiles}"); + } + } + + public static void WriteResult(BuildContext context, string textToWrite, string logFilePath, bool appendToSameLine = false) + { + // Check if the log file exists + if (!context.FileExists(logFilePath)) + { + context.Log.Error($"The specified log file does not exist: {logFilePath}"); + return; + } + + try + { + if (appendToSameLine) + { + // Append to the same line without a newline + File.AppendAllText(logFilePath, textToWrite); + } + else + { + // Append text with a newline + File.AppendAllText(logFilePath, textToWrite + Environment.NewLine); + } + + context.Log.Information($"Text successfully written to file '{logFilePath}'."); + context.Log.Information("File content:"); + + // Read and display the content of the log file + var fileContent = File.ReadAllText(logFilePath); + context.Log.Information(fileContent); + } + catch (Exception ex) + { + context.Log.Error($"An error occurred while writing to the file: {ex.Message}"); + } + } +} \ No newline at end of file diff --git a/cake/Program.cs b/cake/Program.cs index 7af1d050c..96f02c122 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -324,16 +324,17 @@ public override void Run(BuildContext context) context.Log.Warning($"Skipping apps run"); return; } - KillProcess(context,"Siemens.Simatic.PlcSim.Advanced.UserInterface"); + + AppsRunTaskHelpers.KillProcess(context,"Siemens.Simatic.PlcSim.Advanced.UserInterface"); bool summaryResult = true; - var createResult = CreateLogFile(context, "app_test_result"); + var createResult = AppsRunTaskHelpers.CreateLogFile(context, "app_test_result"); if (createResult.Success) { string logFilePath = createResult.FilePath; - WriteResult(context, "AppName,PlcSim,PlcHw,PlcSw,DotnetBuild,DotnetRun", logFilePath); + AppsRunTaskHelpers.WriteResult(context, "AppName,PlcSim,PlcHw,PlcSw,DotnetBuild,DotnetRun", logFilePath); foreach (var library in context.Libraries) { @@ -350,21 +351,23 @@ public override void Run(BuildContext context) context.Log.Information($"Starting the application: {appName}"); context.Log.Information($"File of the application: {appFile}"); context.Log.Information($"###################################################"); + AppsRunTaskHelpers.WriteResult(context, " ", logFilePath); + AppsRunTaskHelpers.WriteResult(context, appName, logFilePath, appendToSameLine: true); - WriteResult(context, " ", logFilePath); - WriteResult(context, appName, logFilePath, appendToSameLine: true); + // Cleanup JSONREPOS + AppsRunTaskHelpers.DeleteJsonReposFolder(context, appFolder); // Initialize PLC Sim instance - InitializePlcSimInstance(context, appName); + AppsRunTaskHelpers.InitializePlcSimInstance(context, appName); // Overwrite security files - OverwriteSecurityFiles(context,appFile, context.PlcName); + AppsRunTaskHelpers.OverwriteSecurityFiles(context,appFile, context.PlcName); // Build and load PLC - BuildAndLoadPlc(context, appFile, appName, logFilePath, ref summaryResult); + AppsRunTaskHelpers.BuildAndLoadPlc(context, appFile, appName, logFilePath, ref summaryResult); // Build and start HMI - BuildAndStartHmi(context, appFile, appName, logFilePath, ref summaryResult); + AppsRunTaskHelpers.BuildAndStartHmi(context, appFile, appName, logFilePath, ref summaryResult); } } } @@ -373,452 +376,10 @@ public override void Run(BuildContext context) { Console.Error.WriteLine("Failed to create the log file."); } - KillProcess(context, "Siemens.Simatic.PlcSim.Advanced.UserInterface"); - context.Log.Information("Apps run done."); - } - - private static (bool Success, string FilePath) CreateLogFile(BuildContext context, string fileNamePrefix = "app_test_result") - { - string timestamp = DateTime.Now.ToString("yyyyMMdd_HHmmss"); // Generate the timestamp - string fileName = $"{fileNamePrefix}_{timestamp}.csv"; // Create the full file name - string appsRunResultFileName = Path.GetFullPath(Path.Combine(context.AppTestResultsDir, fileName)); - - // Create result directory - try - { - context.EnsureDirectoryExists(context.AppTestResultsDir); - } - catch (Exception ex) - { - context.Log.Error($"Failed to create the directory {context.AppTestResultsDir}: {ex.Message}"); - return (false, null); - } - context.Log.Information($"Directory: {context.AppTestResultsDir} has been created."); - - // Create result file - try - { - using (File.Create(appsRunResultFileName)) { } - context.Log.Information($"File '{appsRunResultFileName}' has been created."); - return (context.FileExists(appsRunResultFileName), appsRunResultFileName); - } - catch (Exception ex) - { - context.Log.Error($"Failed to create the file {appsRunResultFileName}: {ex.Message}"); - return (false, null); - } - } - - private static void WriteResult(BuildContext context,string textToWrite, string logFilePath, bool appendToSameLine = false) - { - // Check if the log file exists - if (!context.FileExists(logFilePath)) - { - context.Log.Error($"The specified log file does not exist: {logFilePath}"); - return; - } - - try - { - if (appendToSameLine) - { - // Append to the same line without a newline - File.AppendAllText(logFilePath, textToWrite); - } - else - { - // Append text with a newline - File.AppendAllText(logFilePath, textToWrite + Environment.NewLine); - } - - context.Log.Information($"Text successfully written to file '{logFilePath}'."); - context.Log.Information("File content:"); - - // Read and display the content of the log file - var fileContent = File.ReadAllText(logFilePath); - context.Log.Information(fileContent); - } - catch (Exception ex) - { - context.Log.Error($"An error occurred while writing to the file: {ex.Message}"); - } - } - - private static void KillProcess(BuildContext context,string processName) - { - try - { - // Get all processes by name - Process[] processes = Process.GetProcessesByName(processName); - - if (processes.Length > 0) - { - foreach (var process in processes) - { - try - { - // Attempt to kill the process - process.Kill(true); // Forcefully terminate the process - context.Log.Information($"Successfully terminated process: {process.ProcessName} (ID: {process.Id})"); - } - catch (Exception ex) - { - context.Log.Error($"Failed to terminate process: {process.ProcessName} (ID: {process.Id}) - {ex.Message}"); - } - } - } - else - { - context.Log.Information($"No processes named '{processName}' were found."); - } - } - catch (Exception ex) - { - context.Log.Error($"An error occurred while attempting to find or kill processes: {ex.Message}"); - } - } - - private static void InitializePlcSimInstance(BuildContext context, string instanceName) - { - string plcSimSourceDir = context.SourceDirPlcSim; - string memoryCardPath = context.PlcSimVirtualMemoryCardLocation; - - // Validate the memory card path - if (!context.DirectoryExists(memoryCardPath)) - { - context.Log.Error($"The provided path for the virtual memory card does not exist: {memoryCardPath}"); - return; - } - // Validate the instance name - if (string.IsNullOrWhiteSpace(instanceName)) - { - context.Log.Error("The provided instance name is empty."); - return; - } - - // Determine the instance path - string instancePath = Path.GetFullPath(Path.Combine(memoryCardPath, instanceName)); - - if (context.DirectoryExists(instancePath)) - { - // Delete all files and subfolders - context.Log.Information($"The instance path {instancePath} already exists. It needs to be cleaned before."); - try - { - context.CleanDirectory(instancePath, new CleanDirectorySettings() { Force = true }); - } - catch (Exception ex) - { - context.Log.Error($"Failed to clean the directory {instancePath}: {ex.Message}"); - } - context.Log.Information($"Directory {instancePath} has been cleaned."); - } - - // Create the instance directory - try - { - context.EnsureDirectoryExists(instancePath); - } - catch (Exception ex) - { - context.Log.Error($"Failed to create directory {instancePath}: {ex.Message}"); - return; - } - context.Log.Information($"Directory: {instancePath} has been created."); - - // Source directory for PLC Sim files - if (!context.DirectoryExists(plcSimSourceDir)) - { - context.Log.Error($"Source directory for the plcsim {plcSimSourceDir} does not exist."); - return; - } - - // Copy plcsim virtual memory card content - try - { - context.CopyDirectory(plcSimSourceDir, instancePath); - } - catch (Exception ex) - { - context.Log.Error($"Failed to copy plcsim virtual memory card content from: {plcSimSourceDir} to: {instancePath}: {ex.Message}"); - return; - } - context.Log.Information($"Plcsim virtual memory card content has been copied succesfullt from: {plcSimSourceDir} to: {instancePath}"); - } - - private static void OverwriteSecurityFiles(BuildContext context, string appYamlFile, string plcName) - { - string sourceDirSecurityFiles = context.SourceDirSecurityFiles; - - // Check application YAML file - if (string.IsNullOrWhiteSpace(appYamlFile)) - { - context.Log.Error("The provided YAML of the application is empty."); - return; - } - - if (!context.FileExists(appYamlFile)) - { - context.Log.Error($"The provided application file does not exist: {appYamlFile}"); - return; - } - - string appFolder = Path.GetFullPath(Path.GetDirectoryName(appYamlFile)); - if (string.IsNullOrWhiteSpace(appFolder) || !context.DirectoryExists(appFolder)) - { - context.Log.Error($"The provided path for the application does not exist: {appFolder}"); - return; - } - - - if (string.IsNullOrWhiteSpace(plcName)) - { - context.Log.Error("The provided PLC name is empty."); - return; - } - - // Check source directory - if (string.IsNullOrWhiteSpace(sourceDirSecurityFiles)) - { - context.Log.Error("The provided directory name for the source directory of the security files is empty."); - return; - } - - if (!context.DirectoryExists(sourceDirSecurityFiles)) - { - context.Log.Error($"Source directory for the security file does not exist: {sourceDirSecurityFiles}"); - return; - } - - // Handle certification folder - string appCertFolder = Path.Combine(appFolder, "certs"); - if (context.DirectoryExists(appCertFolder)) - { - context.Log.Information($"The application certification folder {appCertFolder} already exists. It needs to be cleaned before."); - try - { - context.CleanDirectory(appCertFolder, new CleanDirectorySettings() { Force = true}); - context.Log.Information($"The application certification folder {appCertFolder} has been cleaned."); - } - catch (Exception ex) - { - context.Log.Error($"Failed to clean the application certification folder {appCertFolder}: {ex.Message}"); - } - } - else - { - try - { - context.EnsureDirectoryExists(appCertFolder); - context.Log.Information($"The application certification folder {appCertFolder} has been created."); - } - catch (Exception ex) - { - context.Log.Error($"Failed to create the application certification folder {appCertFolder}: {ex.Message}"); - } - } - - // Handle certification subfolder for the plc: 'plcName' - string appCertSubFolder = Path.GetFullPath(Path.Combine(appCertFolder, plcName)); - try - { - context.EnsureDirectoryExists (appCertSubFolder); - context.Log.Information($"The application certification subfolder {appCertSubFolder} has been created."); - } - catch (Exception ex) - { - context.Log.Error($"Failed to create the application certification folder {appCertSubFolder}: {ex.Message}"); - } - - // Handle certification file - string plcSourceCertificateFile = $"{plcName}.cer"; - string plcSourceCertificate = Path.GetFullPath(Path.Combine(sourceDirSecurityFiles, plcSourceCertificateFile)); - if (context.FileExists(plcSourceCertificate)) - { - try - { - context.CopyFileToDirectory(plcSourceCertificate, appCertSubFolder); - context.Log.Information($"Certification file '{plcSourceCertificateFile}' has been copied to: {appCertSubFolder}"); - } - catch (Exception ex) - { - context.Log.Error($"Failed to copy the certification file '{plcSourceCertificateFile}': {ex.Message}"); - } - } - else - { - context.Log.Error($"Certification file '{plcSourceCertificateFile}' does not exist in the directory: {sourceDirSecurityFiles}"); - } - - // Handle hwc folder - string appHwcFolder = Path.GetFullPath(Path.Combine(appFolder, "hwc")); - if (!context.DirectoryExists(appHwcFolder)) - { - context.Log.Error($"The application's hwc folder does not exist: {appHwcFolder}"); - return; - } - - // Handle hwc.gen subfolder - string appHwcGenFolder = Path.GetFullPath(Path.Combine(appHwcFolder, "hwc.gen")); - if (context.DirectoryExists(appHwcGenFolder)) - { - context.Log.Information($"The application's hwc.gen subfolder {appHwcGenFolder} already exists. It needs to be cleaned before."); - try - { - context.CleanDirectory(appHwcGenFolder, new CleanDirectorySettings() { Force = true }); - context.Log.Information($"The application's hwc.gen subfolder {appHwcGenFolder} has been cleaned."); - } - catch (Exception ex) - { - context.Log.Error($"Failed to clean the application's hwc.gen subfolder {appHwcGenFolder}: {ex.Message}"); - } - } - else - { - try - { - context.EnsureDirectoryExists(appHwcGenFolder); - context.Log.Information($"The application's hwc.gen subfolder {appHwcGenFolder} has been created."); - } - catch (Exception ex) - { - context.Log.Error($"Failed to create the application's hwc.gen subfolder {appHwcGenFolder}: {ex.Message}"); - } - } - - // Handle secutity configuration file - string securityConfigFileName = $"{plcName}.SecurityConfiguration.json"; - string securityConfigFile = Path.GetFullPath(Path.Combine(sourceDirSecurityFiles, securityConfigFileName)); - if (context.FileExists(securityConfigFile)) - { - try - { - context.CopyFileToDirectory(securityConfigFile, appHwcGenFolder); - context.Log.Information($"Security configuration file '{securityConfigFileName}' successfully copied to: {appHwcGenFolder}"); - } - catch (Exception ex) - { - context.Log.Error($"Failed to copy the file: {ex.Message}"); - } - } - else - { - context.Log.Information($"Security configuration file '{securityConfigFileName}' does not exist in the directory: {sourceDirSecurityFiles}"); - } - } - - private static void BuildAndLoadPlc(BuildContext context, string appYamlFile, string appName, string logFilePath, ref bool summaryResult) - { - string plcName = context.PlcName; - string plcIpAddress = context.PlcIpAddress; - - // Validate application YAML file - if (string.IsNullOrWhiteSpace(appYamlFile)) - { - context.Log.Error("The provided YAML of the application is empty."); - return; - } - - if (!File.Exists(appYamlFile)) - { - context.Log.Error($"The provided application file does not exist: {appYamlFile}"); - return; - } - - if (string.IsNullOrWhiteSpace(appName)) - { - context.Log.Error("The provided application name is empty."); - return; - } - - string appFolder = Path.GetDirectoryName(appYamlFile); - if (string.IsNullOrWhiteSpace(appFolder) || !Directory.Exists(appFolder)) - { - context.Log.Error($"The provided path for the application does not exist: {appFolder}"); - return; - } - - // Run "apax install" - ApaxCmd.ApaxInstall(context,appFolder); - - // Run "apax plcsim" - string plcSimResult = ApaxCmd.ApaxPlcSim(context, appFolder, ref summaryResult); - WriteResult(context, plcSimResult, logFilePath, appendToSameLine: true); - - // Run "apax hwu" - string hwuResult = ApaxCmd.ApaxHwu(context, appFolder, ref summaryResult); - WriteResult(context, hwuResult, logFilePath, appendToSameLine: true); - - // Run "apax swfd" - string swfdResult = ApaxCmd.ApaxSwfd(context, appFolder, ref summaryResult); - WriteResult(context, swfdResult, logFilePath, appendToSameLine: true); - } - - public static void BuildAndStartHmi(BuildContext context, string appYamlFile, string appName, string logFilePath, ref bool summaryResult) - { - // Validate application YAML file - if (string.IsNullOrWhiteSpace(appYamlFile)) - { - context.Log.Error("The provided YAML of the application is empty."); - return; - } - - if (!context.FileExists(appYamlFile)) - { - context.Log.Error($"The provided application file does not exist: {appYamlFile}"); - return; - } - - if (string.IsNullOrWhiteSpace(appName)) - { - context.Log.Error("The provided application name is empty."); - return; - } - - string appFolder = Path.GetFullPath(Path.GetDirectoryName(appYamlFile)); - if (string.IsNullOrWhiteSpace(appFolder) || !context.DirectoryExists(appFolder)) - { - context.Log.Error($"The provided path for the application does not exist: {appFolder}"); - return; - } - - // Recreate solution file by running the slngen script - string slnGenPath = Path.GetFullPath(Path.GetFullPath(Path.Combine (appFolder, "..", "./slngen.ps1"))); - DotNetCmd.RunPowershellScript(context,slnGenPath, ""); - - // Clean solution - string solutionFile = Path.GetFullPath(Path.Combine(appFolder, "../this.sln")); - DotNetCmd.DotNetClean(context, solutionFile, "-c Debug"); - - // Build solution - string buildResult = DotNetCmd.DotNetBuildWithResult(context, solutionFile, "-c Debug",ref summaryResult); - WriteResult(context, buildResult, logFilePath, appendToSameLine: true ); - - // Get blazor projects - var blazorFiles = Directory.GetFiles(appFolder, "*.csproj", SearchOption.AllDirectories).Where(file => file.Contains("blazor")).ToList(); - - if (blazorFiles.Any()) - { - foreach (var blazorFile in blazorFiles) - { - context.Log.Information($"Application 'blazor' file: {blazorFile}"); - - // Filter out libraries by checking for in the project file - string csprojContent = File.ReadAllText(blazorFile); - if (!csprojContent.Contains("")) - { - string runResult = DotNetCmd.DotNetRunWithResult(context, blazorFile, "-c Debug --framework net9.0",60 , ref summaryResult); - WriteResult(context, runResult, logFilePath, appendToSameLine: true); - } - } - } - else - { - context.Log.Information("No files containing 'blazor' in the filename and ending with '.csproj' were found."); - } + AppsRunTaskHelpers.KillProcess(context, "Siemens.Simatic.PlcSim.Advanced.UserInterface"); + context.Log.Information("Apps run done."); } - } [TaskName("CreateArtifacts")] From a90d793fb66a563f74817b0a3df7cfff19086706 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 10:17:19 +0100 Subject: [PATCH 04/21] JSONREPOS folders removed --- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Groups/AdminGroup | 18 ------------- .../app/JSONREPOS/Users/ADMIN | 24 ----------------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Groups/AdminGroup | 19 -------------- .../app/JSONREPOS/Users/ADMIN | 24 ----------------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Users/ADMIN | 26 ------------------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Users/ADMIN | 26 ------------------- src/io/app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Groups/AdminGroup | 12 --------- .../app/JSONREPOS/Users/ADMIN | 26 ------------------- 20 files changed, 319 deletions(-) delete mode 100644 src/components.abb.robotics/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.balluff.identification/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.cognex.vision/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.cognex.vision/app/JSONREPOS/Users/ADMIN delete mode 100644 src/components.desoutter.tightening/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.drives/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.festo.drives/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.festo.drives/app/JSONREPOS/Users/ADMIN delete mode 100644 src/components.kuka.robotics/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.mitsubishi.robotics/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.rexroth.drives/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.rexroth.drives/app/JSONREPOS/Users/ADMIN delete mode 100644 src/components.rexroth.press/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.robotics/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.siem.identification/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.ur.robotics/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/components.ur.robotics/app/JSONREPOS/Users/ADMIN delete mode 100644 src/io/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/template.axolibrary/app/JSONREPOS/Groups/AdminGroup delete mode 100644 src/template.axolibrary/app/JSONREPOS/Users/ADMIN diff --git a/src/components.abb.robotics/app/JSONREPOS/Groups/AdminGroup b/src/components.abb.robotics/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/components.abb.robotics/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/components.balluff.identification/app/JSONREPOS/Groups/AdminGroup b/src/components.balluff.identification/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/components.balluff.identification/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/components.cognex.vision/app/JSONREPOS/Groups/AdminGroup b/src/components.cognex.vision/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 004af853b..000000000 --- a/src/components.cognex.vision/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,18 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator", - "process_settings_access", - "process_traceability_access", - "can_run_ground_mode", - "can_run_automat_mode", - "can_run_service_mode", - "can_skip_steps_in_sequence" - ], - "RolesHash": "AQAAAAIAAYagAAAAEMTcdj259g4CwDBck+qPTgZvRM/59cxUTQ6elcQNzxS61Caupvncg9hb9rcFKlu8ZA==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2024-01-15T22:18:51.2174131+01:00" -} \ No newline at end of file diff --git a/src/components.cognex.vision/app/JSONREPOS/Users/ADMIN b/src/components.cognex.vision/app/JSONREPOS/Users/ADMIN deleted file mode 100644 index 01814f233..000000000 --- a/src/components.cognex.vision/app/JSONREPOS/Users/ADMIN +++ /dev/null @@ -1,24 +0,0 @@ -{ - "Group": "AdminGroup", - "GroupHash": "AQAAAAIAAYagAAAAEEcU70+1evYLZYm2EYsjR/MMd/JqTEVhqMXVlFbwqOc1Fra1ezYz+Z0i2ixM8CJFdA==", - "CanUserChangePassword": false, - "RecordId": null, - "DataEntityId": "ADMIN", - "Created": "2024-01-15T22:15:16.5545605+01:00", - "Modified": "2024-01-15T22:15:16.5546114+01:00", - "Id": "1fecde23-cae2-44d1-a999-2bf2f25242c9", - "UserName": "admin", - "NormalizedUserName": "ADMIN", - "Email": null, - "NormalizedEmail": null, - "EmailConfirmed": false, - "PasswordHash": "AQAAAAIAAYagAAAAEJy19mCxfgjspwqpwrjsEfOlVZvxZFzSi8t3zmzMakYV2j4XaWqj9ugCI/dkFowpCw==", - "SecurityStamp": "1f14a8d6-614c-40d1-88de-b1a17108a9aa", - "ConcurrencyStamp": "e612bdb6-84f7-4c25-88f3-74556ecafb8b", - "PhoneNumber": null, - "PhoneNumberConfirmed": false, - "TwoFactorEnabled": false, - "LockoutEnd": null, - "LockoutEnabled": false, - "AccessFailedCount": 0 -} \ No newline at end of file diff --git a/src/components.desoutter.tightening/app/JSONREPOS/Groups/AdminGroup b/src/components.desoutter.tightening/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/components.desoutter.tightening/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/components.drives/app/JSONREPOS/Groups/AdminGroup b/src/components.drives/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/components.drives/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/components.festo.drives/app/JSONREPOS/Groups/AdminGroup b/src/components.festo.drives/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 9808ba188..000000000 --- a/src/components.festo.drives/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,19 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator", - "process_settings_access", - "process_traceability_access", - "can_run_ground_mode", - "can_run_automat_mode", - "can_run_service_mode", - "can_skip_steps_in_sequence", - "can_debug_components" - ], - "RolesHash": "AQAAAAIAAYagAAAAEHVFumzSmaBgsio6UsyHjR6MI5LGUqkOo/d1j/PXxVf8AUqylCPn588SZzR5Q+2/8g==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2024-01-26T12:13:22.9362272+01:00" -} \ No newline at end of file diff --git a/src/components.festo.drives/app/JSONREPOS/Users/ADMIN b/src/components.festo.drives/app/JSONREPOS/Users/ADMIN deleted file mode 100644 index cf8971eff..000000000 --- a/src/components.festo.drives/app/JSONREPOS/Users/ADMIN +++ /dev/null @@ -1,24 +0,0 @@ -{ - "Group": "AdminGroup", - "GroupHash": "AQAAAAIAAYagAAAAEHekatlldSJu5I12rpMp1BzTWG19DJDaYaa3NCLpDGWDzsNj1Mv29A9UeU99JE7riw==", - "CanUserChangePassword": false, - "RecordId": null, - "DataEntityId": "ADMIN", - "Created": "2023-12-06T19:10:35.9092885+01:00", - "Modified": "2024-01-25T13:26:38.74801+01:00", - "Id": "27075291-0d6d-4a5a-9691-fb8b24e72966", - "UserName": "admin", - "NormalizedUserName": "ADMIN", - "Email": null, - "NormalizedEmail": null, - "EmailConfirmed": false, - "PasswordHash": "AQAAAAIAAYagAAAAENLWGoqGncQHTcupYxxH2QWiIcYDyvHTE9vLy+VYjHHT916CuZAP7EXAA/058ovMpA==", - "SecurityStamp": "e4d68af7-5ac4-4b6b-b032-ddb6847ae9ed", - "ConcurrencyStamp": "ffb69522-34e0-41ed-bb8d-064ce6c50b20", - "PhoneNumber": null, - "PhoneNumberConfirmed": false, - "TwoFactorEnabled": false, - "LockoutEnd": null, - "LockoutEnabled": false, - "AccessFailedCount": 0 -} \ No newline at end of file diff --git a/src/components.kuka.robotics/app/JSONREPOS/Groups/AdminGroup b/src/components.kuka.robotics/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/components.kuka.robotics/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/components.mitsubishi.robotics/app/JSONREPOS/Groups/AdminGroup b/src/components.mitsubishi.robotics/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/components.mitsubishi.robotics/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/components.rexroth.drives/app/JSONREPOS/Groups/AdminGroup b/src/components.rexroth.drives/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index cfe8c50ed..000000000 --- a/src/components.rexroth.drives/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEPz6DSwQ1D1RtcZ/Vekk7k7pw5CKIjzNs8RDBziNUstdoYObQba7Fjeeghfierhq8g==", - "Created": "2025-02-04T17:11:46.0401962+01:00", - "Modified": "2025-02-04T17:12:02.8483783+01:00" -} \ No newline at end of file diff --git a/src/components.rexroth.drives/app/JSONREPOS/Users/ADMIN b/src/components.rexroth.drives/app/JSONREPOS/Users/ADMIN deleted file mode 100644 index c6636dfe7..000000000 --- a/src/components.rexroth.drives/app/JSONREPOS/Users/ADMIN +++ /dev/null @@ -1,26 +0,0 @@ -{ - "Group": "AdminGroup", - "GroupHash": "AQAAAAIAAYagAAAAEPwUPuBSaUJRAWnpAoSJQuch2sFiRkiZhivbVEQyEZvwqfJu0h0sUalTZN4ULPpXbQ==", - "CanUserChangePassword": false, - "RecordId": null, - "DataEntityId": "ADMIN", - "Created": "2025-02-04T17:12:32.2644804+01:00", - "Modified": "2025-02-04T17:12:32.2645253+01:00", - "EnableAutoLogOut": false, - "AutoLogOutTimeOutMinutes": 0, - "Id": "e3ff6f67-5772-47cc-8a59-4d49bbacb89a", - "UserName": "admin", - "NormalizedUserName": "ADMIN", - "Email": null, - "NormalizedEmail": null, - "EmailConfirmed": false, - "PasswordHash": "AQAAAAIAAYagAAAAEGYfZZCm0sVEPiG77OEVdCQnVYQ461ZrXAycxK7WK5f2eLbkh+aVkxcNcstNE1khfg==", - "SecurityStamp": "dffdeca2-81bd-4d71-8ab3-2e6be5d42d7a", - "ConcurrencyStamp": "cc52b2e6-2a32-46e2-8c0f-951fc8f4d4e6", - "PhoneNumber": null, - "PhoneNumberConfirmed": false, - "TwoFactorEnabled": false, - "LockoutEnd": null, - "LockoutEnabled": false, - "AccessFailedCount": 0 -} \ No newline at end of file diff --git a/src/components.rexroth.press/app/JSONREPOS/Groups/AdminGroup b/src/components.rexroth.press/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/components.rexroth.press/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/components.robotics/app/JSONREPOS/Groups/AdminGroup b/src/components.robotics/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/components.robotics/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/components.siem.identification/app/JSONREPOS/Groups/AdminGroup b/src/components.siem.identification/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/components.siem.identification/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/components.ur.robotics/app/JSONREPOS/Groups/AdminGroup b/src/components.ur.robotics/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/components.ur.robotics/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/components.ur.robotics/app/JSONREPOS/Users/ADMIN b/src/components.ur.robotics/app/JSONREPOS/Users/ADMIN deleted file mode 100644 index 6537b87fb..000000000 --- a/src/components.ur.robotics/app/JSONREPOS/Users/ADMIN +++ /dev/null @@ -1,26 +0,0 @@ -{ - "Group": "AdminGroup", - "GroupHash": "AQAAAAIAAYagAAAAEHPVlCXh9163kAXUPrdoYJjm468QIQxsdf0Dd1ATOP7NQn7JAcMZ2MF3mjcxkDWcrg==", - "CanUserChangePassword": false, - "RecordId": null, - "DataEntityId": "ADMIN", - "Created": "2025-02-04T17:32:59.7027358+01:00", - "Modified": "2025-02-04T17:32:59.7027767+01:00", - "EnableAutoLogOut": false, - "AutoLogOutTimeOutMinutes": 0, - "Id": "a1d04c59-cb46-4780-aa45-c713fdd8454e", - "UserName": "admin", - "NormalizedUserName": "ADMIN", - "Email": null, - "NormalizedEmail": null, - "EmailConfirmed": false, - "PasswordHash": "AQAAAAIAAYagAAAAEM3rgasnlHsbVH9yfWt1kAqzgm3OIGW/xjAQOE/lp0e8gwhStkuKihneR4mdr56JHg==", - "SecurityStamp": "17903705-de5e-4cdc-9380-d951b7b06128", - "ConcurrencyStamp": "c89ccf3d-029b-4d2a-87cc-75882390e9f2", - "PhoneNumber": null, - "PhoneNumberConfirmed": false, - "TwoFactorEnabled": false, - "LockoutEnd": null, - "LockoutEnabled": false, - "AccessFailedCount": 0 -} \ No newline at end of file diff --git a/src/io/app/JSONREPOS/Groups/AdminGroup b/src/io/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/io/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/template.axolibrary/app/JSONREPOS/Groups/AdminGroup b/src/template.axolibrary/app/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 8fc1109b7..000000000 --- a/src/template.axolibrary/app/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,12 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator" - ], - "RolesHash": "AQAAAAIAAYagAAAAEFMQB6OKJ9h2absnop3/241eQ1r0ZKSeKhZ+bKAj028Jt2GjYGXLJF/j94ExpkZt1Q==", - "Created": "2023-10-03T11:15:37.5601334+02:00", - "Modified": "2023-10-03T11:15:37.7766974+02:00" -} \ No newline at end of file diff --git a/src/template.axolibrary/app/JSONREPOS/Users/ADMIN b/src/template.axolibrary/app/JSONREPOS/Users/ADMIN deleted file mode 100644 index f1c0a9326..000000000 --- a/src/template.axolibrary/app/JSONREPOS/Users/ADMIN +++ /dev/null @@ -1,26 +0,0 @@ -{ - "Group": "AdminGroup", - "GroupHash": "AQAAAAIAAYagAAAAEKm3Bx32sL+pxD6POptbG+L4jk8k8qpQOcKk6R3n0/ej9dbJYkNvUZqTZXdRNANyiQ==", - "CanUserChangePassword": false, - "RecordId": null, - "DataEntityId": "ADMIN", - "Created": "2025-02-04T09:30:24.3605543+01:00", - "Modified": "2025-02-04T09:30:24.3606516+01:00", - "EnableAutoLogOut": false, - "AutoLogOutTimeOutMinutes": 0, - "Id": "728088f4-7135-4f4f-8fb7-a754b2b493ae", - "UserName": "admin", - "NormalizedUserName": "ADMIN", - "Email": null, - "NormalizedEmail": null, - "EmailConfirmed": false, - "PasswordHash": "AQAAAAIAAYagAAAAELUyTgwhR04fLevcky/wZ/EQ0D+8b5uDhWmHhgfHPt3CbmJDzj8GNh6df8GDtoAuXQ==", - "SecurityStamp": "cbca61e2-8791-49e2-ae04-279ad6374ad6", - "ConcurrencyStamp": "57471cd0-a088-401c-8e71-c64ae1a82a47", - "PhoneNumber": null, - "PhoneNumberConfirmed": false, - "TwoFactorEnabled": false, - "LockoutEnd": null, - "LockoutEnabled": false, - "AccessFailedCount": 0 -} \ No newline at end of file From c2c8a27c9b2fa43b43130c4f109640282d8affef Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 10:18:51 +0100 Subject: [PATCH 05/21] JSONREPS added to gitignore --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f44562ea4..aa3a80966 100644 --- a/.gitignore +++ b/.gitignore @@ -429,4 +429,7 @@ library_templates #DCP export dcp_export/ -*.apax.tgz \ No newline at end of file +*.apax.tgz + +#JSONREPOS +JSONREPOS/ From 218b557f572f476274da861b117ba8739ab39733 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 11:56:37 +0100 Subject: [PATCH 06/21] IP addresses alligned --- cake/BuildParameters.cs | 5 +- cake/Program.cs | 553 ++++++++++-------- cake/Properties/launchSettings.json | 4 + src/abstractions/app/apax.yml | 2 + src/components.abb.robotics/app/apax.yml | 2 + src/components.abstractions/app/apax.yml | 2 + .../app/apax.yml | 2 + src/components.cognex.vision/app/apax.yml | 2 + .../app/apax.yml | 2 + src/components.drives/app/apax.yml | 2 + src/components.elements/app/apax.yml | 2 + src/components.festo.drives/app/apax.yml | 2 + src/components.kuka.robotics/app/apax.yml | 2 + .../app/apax.yml | 2 + src/components.pneumatics/app/apax.yml | 2 + src/components.rexroth.drives/app/apax.yml | 2 + src/components.rexroth.press/app/apax.yml | 2 + src/components.robotics/app/apax.yml | 2 + .../app/apax.yml | 2 + src/components.ur.robotics/app/apax.yml | 2 + src/core/app/apax.yml | 2 + src/data/app/apax.yml | 6 +- src/inspectors/app/apax.yml | 2 + src/integrations/app/apax.yml | 2 + src/io/app/apax.yml | 2 + src/probers/app/apax.yml | 2 + src/simatic1500/app/apax.yml | 2 + src/template.axolibrary/app/apax.yml | 2 + src/timers/app/apax.yml | 2 + src/utils/app/apax.yml | 2 + 30 files changed, 358 insertions(+), 262 deletions(-) diff --git a/cake/BuildParameters.cs b/cake/BuildParameters.cs index 4e036d12c..ad7f1b675 100644 --- a/cake/BuildParameters.cs +++ b/cake/BuildParameters.cs @@ -49,9 +49,12 @@ public class BuildParameters [Option('b', "skip-build", Required = false, Default = false, HelpText = "Does not run build steps")] public bool NoBuild { get; set; } - [Option('a', "apps-run", Required = false, Default = false, HelpText = "Download and run apps")] + [Option('a', "apps-run", Required = false, Default = false, HelpText = "Download to PLC and run apps ")] public bool AppsRun{ get; set; } [Option('o', "do-publish-only", Required = false, Default = false, HelpText = "Skips all steps and publishes from pre-build artefacts.")] public bool PublishOnly { get; set; } + + [Option('s', "single-app-run-folder-name", Required = false, Default = "", HelpText = "Download to PLC and run just app from folder")] + public string AppRunOnlyFolderName { get; set; } } \ No newline at end of file diff --git a/cake/Program.cs b/cake/Program.cs index 96f02c122..5a50d29e6 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -69,251 +69,251 @@ public static int Main(string[] args) } } -[TaskName("CleanUp")] -public sealed class CleanUpTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - context.Log.Information("Build running with following parameters:"); - context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); +//[TaskName("CleanUp")] +//public sealed class CleanUpTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// context.Log.Information("Build running with following parameters:"); +// context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); - if (context.IsGitHubActions) - { - context.BuildParameters.CleanUp = true; - } +// if (context.IsGitHubActions) +// { +// context.BuildParameters.CleanUp = true; +// } - if (!context.BuildParameters.CleanUp) - { - context.Log.Information($"Skipping clean-up"); - return; - } +// if (!context.BuildParameters.CleanUp) +// { +// context.Log.Information($"Skipping clean-up"); +// return; +// } - Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); +// Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); - context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity}); - context.CleanDirectory(context.BuildsOutput); - context.CleanDirectory(context.Artifacts); - context.CleanDirectory(context.TestResults); - context.CleanDirectory(context.TestResultsCtrl); - } -} - -[TaskName("Provision")] -[IsDependentOn(typeof(CleanUpTask))] -public sealed class ProvisionTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - ProvisionTools(context); - - foreach (var library in context.Libraries) - { - context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); - } - } - - private static void ProvisionTools(BuildContext context) - { - context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() - { - Arguments = $"tool restore", - WorkingDirectory = context.RootDir - }).WaitForExit(); - } -} - -[TaskName("CatalogInstall")] -[IsDependentOn(typeof(ProvisionTask))] -public sealed class CatalogInstallTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - context.Libraries.ToList().ForEach(lib => - { - foreach (var apaxfile in context.GetApaxFiles(lib)) - { - context.ApaxCatalogInstall(apaxfile); - } - }); - - - } -} - -[TaskName("Build")] -[IsDependentOn(typeof(CatalogInstallTask))] -public sealed class BuildTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - if (context.BuildParameters.DoPack) - { - context.Libraries.ToList().ForEach(lib => - { - foreach (var apaxfile in context.GetApaxFiles(lib)) - { - context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); - context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); - } - }); - - context.Libraries.ToList().ForEach(lib => - { - foreach (var apaxfile in context.GetApaxFiles(lib)) - { - context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); - } - }); - } - - var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); - if (!context.BuildParameters.NoBuild) - { - var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); - context.CreateApaxTraversal(context.RootDir, traversalProject); - context.ApaxInstall(new[] { traversalProjectFolder }); - context.DotnetIxc(new[] { traversalProjectFolder }); - context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; - context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() - { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + - "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + - "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" - }); - context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); - } - - if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) - { - context.ApaxBuild(new []{traversalProjectFolder}); - } - } -} - -[TaskName("Tests")] -[IsDependentOn(typeof(BuildTask))] -public sealed class TestsTask : FrostingTask -{ - // Tasks can be asynchronous - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - if (!context.BuildParameters.DoTest) - { - context.Log.Warning($"Skipping tests"); - return; - } - - - if (context.BuildParameters.Paralellize) - { - context.Libraries.ToList().ForEach(lib => - { - context.ApaxClean(lib); - context.ApaxInstall(context.GetLibraryAxFolders(lib)); - context.ApaxBuild(context.GetLibraryAxFolders(lib)); - context.ApaxTestLibrary(lib); - if (context.BuildParameters.DoPack) - { - context.ApaxPack(lib); - context.ApaxCopyArtifacts(lib); - } - context.ApaxClean(lib); - }); - - } - else - { - context.Libraries.ToList().ForEach(lib => - { - context.Log.Information($"---------------------------------"); - context.Log.Information($"Testing {lib.folder}"); - context.Log.Information($"---------------------------------"); - context.ApaxClean(lib); - context.ApaxInstall(context.GetLibraryAxFolders(lib)); - context.ApaxBuild(context.GetLibraryAxFolders(lib)); - context.ApaxTestLibrary(lib); - if (context.BuildParameters.DoPack) - { - context.ApaxPack(lib); - context.ApaxCopyArtifacts(lib); - } - context.ApaxClean(lib); - }); - } +// context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity}); +// context.CleanDirectory(context.BuildsOutput); +// context.CleanDirectory(context.Artifacts); +// context.CleanDirectory(context.TestResults); +// context.CleanDirectory(context.TestResultsCtrl); +// } +//} + +//[TaskName("Provision")] +//[IsDependentOn(typeof(CleanUpTask))] +//public sealed class ProvisionTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// ProvisionTools(context); + +// foreach (var library in context.Libraries) +// { +// context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); +// } +// } + +// private static void ProvisionTools(BuildContext context) +// { +// context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() +// { +// Arguments = $"tool restore", +// WorkingDirectory = context.RootDir +// }).WaitForExit(); +// } +//} + +//[TaskName("CatalogInstall")] +//[IsDependentOn(typeof(ProvisionTask))] +//public sealed class CatalogInstallTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// context.Libraries.ToList().ForEach(lib => +// { +// foreach (var apaxfile in context.GetApaxFiles(lib)) +// { +// context.ApaxCatalogInstall(apaxfile); +// } +// }); + + +// } +//} + +//[TaskName("Build")] +//[IsDependentOn(typeof(CatalogInstallTask))] +//public sealed class BuildTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// if (context.BuildParameters.DoPack) +// { +// context.Libraries.ToList().ForEach(lib => +// { +// foreach (var apaxfile in context.GetApaxFiles(lib)) +// { +// context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); +// context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); +// } +// }); + +// context.Libraries.ToList().ForEach(lib => +// { +// foreach (var apaxfile in context.GetApaxFiles(lib)) +// { +// context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); +// } +// }); +// } + +// var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); +// if (!context.BuildParameters.NoBuild) +// { +// var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); +// context.CreateApaxTraversal(context.RootDir, traversalProject); +// context.ApaxInstall(new[] { traversalProjectFolder }); +// context.DotnetIxc(new[] { traversalProjectFolder }); +// context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; +// context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() +// { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + +// "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + +// "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" +// }); +// context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); +// } + +// if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) +// { +// context.ApaxBuild(new []{traversalProjectFolder}); +// } +// } +//} + +//[TaskName("Tests")] +//[IsDependentOn(typeof(BuildTask))] +//public sealed class TestsTask : FrostingTask +//{ +// // Tasks can be asynchronous +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// if (!context.BuildParameters.DoTest) +// { +// context.Log.Warning($"Skipping tests"); +// return; +// } + + +// if (context.BuildParameters.Paralellize) +// { +// context.Libraries.ToList().ForEach(lib => +// { +// context.ApaxClean(lib); +// context.ApaxInstall(context.GetLibraryAxFolders(lib)); +// context.ApaxBuild(context.GetLibraryAxFolders(lib)); +// context.ApaxTestLibrary(lib); +// if (context.BuildParameters.DoPack) +// { +// context.ApaxPack(lib); +// context.ApaxCopyArtifacts(lib); +// } +// context.ApaxClean(lib); +// }); + +// } +// else +// { +// context.Libraries.ToList().ForEach(lib => +// { +// context.Log.Information($"---------------------------------"); +// context.Log.Information($"Testing {lib.folder}"); +// context.Log.Information($"---------------------------------"); +// context.ApaxClean(lib); +// context.ApaxInstall(context.GetLibraryAxFolders(lib)); +// context.ApaxBuild(context.GetLibraryAxFolders(lib)); +// context.ApaxTestLibrary(lib); +// if (context.BuildParameters.DoPack) +// { +// context.ApaxPack(lib); +// context.ApaxCopyArtifacts(lib); +// } +// context.ApaxClean(lib); +// }); +// } - if (context.BuildParameters.TestLevel == 1) - { - context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); - } - if (context.BuildParameters.TestLevel == 2) - { +// if (context.BuildParameters.TestLevel == 1) +// { +// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); +// } +// if (context.BuildParameters.TestLevel == 2) +// { - context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); - } - if(context.BuildParameters.TestLevel >= 3) - { - foreach (var package in context.Libraries) - { - var app = Path.Combine(context.RootDir, package.folder, "app"); - var ax = Path.Combine(context.RootDir, package.folder, "ax"); - - if (Directory.Exists(app)) - { - context.ApaxDownload(app); - } - else if (Directory.Exists(ax)) - { - context.ApaxDownload(ax); - } - else - { - //throw new Exception($"No app or ax folder found for {package.folder}"); - context.Log.Information($"No app or ax folder found for {package.folder}"); - break; - } - - context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); - } - } - - context.Log.Information("Tests done."); - } -} +// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); +// } +// if(context.BuildParameters.TestLevel >= 3) +// { +// foreach (var package in context.Libraries) +// { +// var app = Path.Combine(context.RootDir, package.folder, "app"); +// var ax = Path.Combine(context.RootDir, package.folder, "ax"); + +// if (Directory.Exists(app)) +// { +// context.ApaxDownload(app); +// } +// else if (Directory.Exists(ax)) +// { +// context.ApaxDownload(ax); +// } +// else +// { +// //throw new Exception($"No app or ax folder found for {package.folder}"); +// context.Log.Information($"No app or ax folder found for {package.folder}"); +// break; +// } + +// context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); +// } +// } + +// context.Log.Information("Tests done."); +// } +//} [TaskName("AppsRun")] -[IsDependentOn(typeof(TestsTask))] +//[IsDependentOn(typeof(TestsTask))] public sealed class AppsRunTask : FrostingTask { // Tasks can be asynchronous @@ -336,39 +336,74 @@ public override void Run(BuildContext context) string logFilePath = createResult.FilePath; AppsRunTaskHelpers.WriteResult(context, "AppName,PlcSim,PlcHw,PlcSw,DotnetBuild,DotnetRun", logFilePath); - foreach (var library in context.Libraries) + if (string.IsNullOrEmpty(context.BuildParameters.AppRunOnlyFolderName)) { - if (library.app_run) + foreach (var library in context.Libraries) { - string appFolder = context.GetAppFolder(library); - string appFile = context.GetApaxFile(appFolder); - string appName = context.GetApplicationName(appFile); - - if (!string.IsNullOrEmpty(appFolder) && context.DirectoryExists(appFolder) && !string.IsNullOrEmpty(appFile) && context.FileExists(appFile) && !string.IsNullOrEmpty(appName)) + if (library.app_run) { - // Display the file details - context.Log.Information($"###################################################"); - context.Log.Information($"Starting the application: {appName}"); - context.Log.Information($"File of the application: {appFile}"); - context.Log.Information($"###################################################"); - AppsRunTaskHelpers.WriteResult(context, " ", logFilePath); - AppsRunTaskHelpers.WriteResult(context, appName, logFilePath, appendToSameLine: true); + string appFolder = context.GetAppFolder(library); + string appFile = context.GetApaxFile(appFolder); + string appName = context.GetApplicationName(appFile); + + if (!string.IsNullOrEmpty(appFolder) && context.DirectoryExists(appFolder) && !string.IsNullOrEmpty(appFile) && context.FileExists(appFile) && !string.IsNullOrEmpty(appName)) + { + // Display the file details + context.Log.Information($"###################################################"); + context.Log.Information($"Starting the application: {appName}"); + context.Log.Information($"File of the application: {appFile}"); + context.Log.Information($"###################################################"); + AppsRunTaskHelpers.WriteResult(context, " ", logFilePath); + AppsRunTaskHelpers.WriteResult(context, appName, logFilePath, appendToSameLine: true); + + // Cleanup JSONREPOS + AppsRunTaskHelpers.DeleteJsonReposFolder(context, appFolder); + + // Initialize PLC Sim instance + AppsRunTaskHelpers.InitializePlcSimInstance(context, appName); + + // Overwrite security files + AppsRunTaskHelpers.OverwriteSecurityFiles(context, appFile, context.PlcName); + + // Build and load PLC + AppsRunTaskHelpers.BuildAndLoadPlc(context, appFile, appName, logFilePath, ref summaryResult); + + // Build and start HMI + AppsRunTaskHelpers.BuildAndStartHmi(context, appFile, appName, logFilePath, ref summaryResult); + } + } + } + } + else + { + string appFolder = Path.Combine(Path.Combine(context.RootDir, context.BuildParameters.AppRunOnlyFolderName), "app"); + string appFile = context.GetApaxFile(appFolder); + string appName = context.GetApplicationName(appFile); + + if (!string.IsNullOrEmpty(appFolder) && context.DirectoryExists(appFolder) && !string.IsNullOrEmpty(appFile) && context.FileExists(appFile) && !string.IsNullOrEmpty(appName)) + { + // Display the file details + context.Log.Information($"###################################################"); + context.Log.Information($"Starting the application: {appName}"); + context.Log.Information($"File of the application: {appFile}"); + context.Log.Information($"###################################################"); + AppsRunTaskHelpers.WriteResult(context, " ", logFilePath); + AppsRunTaskHelpers.WriteResult(context, appName, logFilePath, appendToSameLine: true); - // Cleanup JSONREPOS - AppsRunTaskHelpers.DeleteJsonReposFolder(context, appFolder); + // Cleanup JSONREPOS + AppsRunTaskHelpers.DeleteJsonReposFolder(context, appFolder); - // Initialize PLC Sim instance - AppsRunTaskHelpers.InitializePlcSimInstance(context, appName); + // Initialize PLC Sim instance + AppsRunTaskHelpers.InitializePlcSimInstance(context, appName); - // Overwrite security files - AppsRunTaskHelpers.OverwriteSecurityFiles(context,appFile, context.PlcName); + // Overwrite security files + AppsRunTaskHelpers.OverwriteSecurityFiles(context, appFile, context.PlcName); - // Build and load PLC - AppsRunTaskHelpers.BuildAndLoadPlc(context, appFile, appName, logFilePath, ref summaryResult); + // Build and load PLC + AppsRunTaskHelpers.BuildAndLoadPlc(context, appFile, appName, logFilePath, ref summaryResult); - // Build and start HMI - AppsRunTaskHelpers.BuildAndStartHmi(context, appFile, appName, logFilePath, ref summaryResult); - } + // Build and start HMI + AppsRunTaskHelpers.BuildAndStartHmi(context, appFile, appName, logFilePath, ref summaryResult); } } } diff --git a/cake/Properties/launchSettings.json b/cake/Properties/launchSettings.json index b6d0c7c6d..0e44f110e 100644 --- a/cake/Properties/launchSettings.json +++ b/cake/Properties/launchSettings.json @@ -36,6 +36,10 @@ "commandName": "Project", "commandLineArgs": "--skip-build --apps-run" }, + "data_app_run_only": { + "commandName": "Project", + "commandLineArgs": "--skip-build --apps-run --single-app-run-folder-name data" + }, "test-L3-apps_run": { "commandName": "Project", "commandLineArgs": "--do-test --test-level 10 --apps-run" diff --git a/src/abstractions/app/apax.yml b/src/abstractions/app/apax.yml index d3100951e..89e6c42f2 100644 --- a/src/abstractions/app/apax.yml +++ b/src/abstractions/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Abstractions" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.abb.robotics/app/apax.yml b/src/components.abb.robotics/app/apax.yml index 625930234..42810c475 100644 --- a/src/components.abb.robotics/app/apax.yml +++ b/src/components.abb.robotics/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Abb.Robotics" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.abstractions/app/apax.yml b/src/components.abstractions/app/apax.yml index 082f8762d..b66d25655 100644 --- a/src/components.abstractions/app/apax.yml +++ b/src/components.abstractions/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Abstractions" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.balluff.identification/app/apax.yml b/src/components.balluff.identification/app/apax.yml index 0b50ab4d0..38d12d680 100644 --- a/src/components.balluff.identification/app/apax.yml +++ b/src/components.balluff.identification/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Balluff.Identification" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.cognex.vision/app/apax.yml b/src/components.cognex.vision/app/apax.yml index e06f7a66a..06ee80cb2 100644 --- a/src/components.cognex.vision/app/apax.yml +++ b/src/components.cognex.vision/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Cognex.Vision" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.desoutter.tightening/app/apax.yml b/src/components.desoutter.tightening/app/apax.yml index 598d230c6..4d1e27cdd 100644 --- a/src/components.desoutter.tightening/app/apax.yml +++ b/src/components.desoutter.tightening/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Desoutter.Tightening" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.drives/app/apax.yml b/src/components.drives/app/apax.yml index 6b4480239..1278f9eb8 100644 --- a/src/components.drives/app/apax.yml +++ b/src/components.drives/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Drives" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.elements/app/apax.yml b/src/components.elements/app/apax.yml index 74f362aab..41bba2359 100644 --- a/src/components.elements/app/apax.yml +++ b/src/components.elements/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Elements" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.festo.drives/app/apax.yml b/src/components.festo.drives/app/apax.yml index b7b49162e..ab3e14d2a 100644 --- a/src/components.festo.drives/app/apax.yml +++ b/src/components.festo.drives/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Festo.Drives" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.kuka.robotics/app/apax.yml b/src/components.kuka.robotics/app/apax.yml index b896f57a2..13131b543 100644 --- a/src/components.kuka.robotics/app/apax.yml +++ b/src/components.kuka.robotics/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Kuka.Robotics" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.mitsubishi.robotics/app/apax.yml b/src/components.mitsubishi.robotics/app/apax.yml index 6858595f1..8d831fa26 100644 --- a/src/components.mitsubishi.robotics/app/apax.yml +++ b/src/components.mitsubishi.robotics/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Mitsubishi.Robotics" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.pneumatics/app/apax.yml b/src/components.pneumatics/app/apax.yml index 615f591c4..6e2960782 100644 --- a/src/components.pneumatics/app/apax.yml +++ b/src/components.pneumatics/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Pneumatics" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.rexroth.drives/app/apax.yml b/src/components.rexroth.drives/app/apax.yml index aa8fe9159..48cecfdef 100644 --- a/src/components.rexroth.drives/app/apax.yml +++ b/src/components.rexroth.drives/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Rexroth.Drives" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.rexroth.press/app/apax.yml b/src/components.rexroth.press/app/apax.yml index 84eb598b5..c99f9d648 100644 --- a/src/components.rexroth.press/app/apax.yml +++ b/src/components.rexroth.press/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Rexroth.Press" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.robotics/app/apax.yml b/src/components.robotics/app/apax.yml index 1b4b4dde2..3be529f16 100644 --- a/src/components.robotics/app/apax.yml +++ b/src/components.robotics/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Robotics" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.siem.identification/app/apax.yml b/src/components.siem.identification/app/apax.yml index 3e2738233..3be79d175 100644 --- a/src/components.siem.identification/app/apax.yml +++ b/src/components.siem.identification/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Siem.Identification" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/components.ur.robotics/app/apax.yml b/src/components.ur.robotics/app/apax.yml index e908b12e1..cb5fa38c4 100644 --- a/src/components.ur.robotics/app/apax.yml +++ b/src/components.ur.robotics/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Components.Ur.Robotics" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/core/app/apax.yml b/src/core/app/apax.yml index 08ce1b817..d1c7b03fd 100644 --- a/src/core/app/apax.yml +++ b/src/core/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Core" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/data/app/apax.yml b/src/data/app/apax.yml index a8431900b..6b00bce5a 100644 --- a/src/data/app/apax.yml +++ b/src/data/app/apax.yml @@ -6,13 +6,15 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Data" - AXTARGET: 10.222.6.2 + AXTARGET: 10.10.10.120 AXTARGETPLATFORMINPUT: .\bin\1500\ AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" - USE_PLC_SIM_ADVANCED: "false" + USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/inspectors/app/apax.yml b/src/inspectors/app/apax.yml index 95090fbce..2024a32f9 100644 --- a/src/inspectors/app/apax.yml +++ b/src/inspectors/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Inspectors" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/integrations/app/apax.yml b/src/integrations/app/apax.yml index f72622a98..0d80dce10 100644 --- a/src/integrations/app/apax.yml +++ b/src/integrations/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Integrations" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/io/app/apax.yml b/src/io/app/apax.yml index 51d1866a8..c4515359c 100644 --- a/src/io/app/apax.yml +++ b/src/io/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Io" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/probers/app/apax.yml b/src/probers/app/apax.yml index e23554762..98335ba18 100644 --- a/src/probers/app/apax.yml +++ b/src/probers/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Probers" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/simatic1500/app/apax.yml b/src/simatic1500/app/apax.yml index de23598fa..67e8e3760 100644 --- a/src/simatic1500/app/apax.yml +++ b/src/simatic1500/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Simatic1500" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/template.axolibrary/app/apax.yml b/src/template.axolibrary/app/apax.yml index 3de4cb2e6..719d2fe9b 100644 --- a/src/template.axolibrary/app/apax.yml +++ b/src/template.axolibrary/app/apax.yml @@ -6,6 +6,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "app_apaxappname" AXTARGET: 10.10.10.120 @@ -13,6 +14,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/timers/app/apax.yml b/src/timers/app/apax.yml index 52d1ff48c..5d5ee1370 100644 --- a/src/timers/app/apax.yml +++ b/src/timers/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Timers" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: diff --git a/src/utils/app/apax.yml b/src/utils/app/apax.yml index d6a8c8bae..b6ee4fd47 100644 --- a/src/utils/app/apax.yml +++ b/src/utils/app/apax.yml @@ -7,6 +7,7 @@ targets: variables: APAX_BUILD_ARGS: - "--debug" # Generate debug information for target "1500" + # Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => PLC_NAME: "plc_line" DEFAULT_NAMESPACE: "AXOpen.Utils" AXTARGET: 10.10.10.120 @@ -14,6 +15,7 @@ variables: AX_USERNAME: "adm" AX_TARGET_PWD: "123ABCDabcd$#!" USE_PLC_SIM_ADVANCED: "true" + # <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. devDependencies: "@inxton/ax-sdk": '0.0.0-dev.0' dependencies: From 50dc5e295aeaa43e5422a747daa0c37ad14d606c Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 13:01:18 +0100 Subject: [PATCH 07/21] more grannular scripts added --- cake/Program.cs | 34 +++++--- src/abstractions/app/apax.yml | 78 ++++++++---------- src/components.abb.robotics/app/apax.yml | 79 ++++++++----------- src/components.abstractions/app/apax.yml | 79 ++++++++----------- .../app/apax.yml | 79 ++++++++----------- src/components.cognex.vision/app/apax.yml | 79 ++++++++----------- .../app/apax.yml | 79 ++++++++----------- src/components.drives/app/apax.yml | 79 ++++++++----------- src/components.elements/app/apax.yml | 79 ++++++++----------- src/components.festo.drives/app/apax.yml | 79 ++++++++----------- src/components.kuka.robotics/app/apax.yml | 79 ++++++++----------- .../app/apax.yml | 79 ++++++++----------- src/components.pneumatics/app/apax.yml | 79 ++++++++----------- src/components.rexroth.drives/app/apax.yml | 79 ++++++++----------- src/components.rexroth.press/app/apax.yml | 79 ++++++++----------- src/components.robotics/app/apax.yml | 79 ++++++++----------- .../app/apax.yml | 79 ++++++++----------- src/components.ur.robotics/app/apax.yml | 79 ++++++++----------- src/core/app/apax.yml | 78 +++++++----------- src/data/app/apax.yml | 79 ++++++++----------- src/inspectors/app/apax.yml | 79 ++++++++----------- src/integrations/app/apax.yml | 79 ++++++++----------- src/io/app/apax.yml | 79 ++++++++----------- src/probers/app/apax.yml | 79 ++++++++----------- src/scripts/hw_compile_and_download.sh | 8 +- src/scripts/hw_download_only.sh | 47 +++++++++++ src/scripts/sw_build_and_download_delta.sh | 14 ++-- src/scripts/sw_build_and_download_full.sh | 11 +-- src/scripts/sw_download_delta.sh | 42 ++++++++++ src/scripts/sw_download_full.sh | 42 ++++++++++ src/simatic1500/app/apax.yml | 79 ++++++++----------- src/template.axolibrary/app/apax.yml | 79 ++++++++----------- src/timers/app/apax.yml | 79 ++++++++----------- src/utils/app/apax.yml | 79 ++++++++----------- 34 files changed, 1008 insertions(+), 1321 deletions(-) create mode 100644 src/scripts/hw_download_only.sh create mode 100644 src/scripts/sw_download_delta.sh create mode 100644 src/scripts/sw_download_full.sh diff --git a/cake/Program.cs b/cake/Program.cs index 5a50d29e6..fd307de7f 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -329,15 +329,15 @@ public override void Run(BuildContext context) bool summaryResult = true; - var createResult = AppsRunTaskHelpers.CreateLogFile(context, "app_test_result"); - - if (createResult.Success) + if (string.IsNullOrEmpty(context.BuildParameters.AppRunOnlyFolderName)) { - string logFilePath = createResult.FilePath; - AppsRunTaskHelpers.WriteResult(context, "AppName,PlcSim,PlcHw,PlcSw,DotnetBuild,DotnetRun", logFilePath); + var createResult = AppsRunTaskHelpers.CreateLogFile(context, "app_test_result"); - if (string.IsNullOrEmpty(context.BuildParameters.AppRunOnlyFolderName)) + if (createResult.Success) { + string logFilePath = createResult.FilePath; + AppsRunTaskHelpers.WriteResult(context, "AppName,PlcSim,PlcHw,PlcSw,DotnetBuild,DotnetRun", logFilePath); + foreach (var library in context.Libraries) { if (library.app_run) @@ -376,7 +376,19 @@ public override void Run(BuildContext context) } else { - string appFolder = Path.Combine(Path.Combine(context.RootDir, context.BuildParameters.AppRunOnlyFolderName), "app"); + Console.Error.WriteLine("Failed to create the log file."); + } + } + else + { + var createResult = AppsRunTaskHelpers.CreateLogFile(context, "single_app_test_result"); + + if (createResult.Success) + { + string logFilePath = createResult.FilePath; + AppsRunTaskHelpers.WriteResult(context, "AppName,PlcSim,PlcHw,PlcSw,DotnetBuild,DotnetRun", logFilePath); + + string appFolder = Path.Combine(Path.Combine(context.RootDir, context.BuildParameters.AppRunOnlyFolderName), "app"); string appFile = context.GetApaxFile(appFolder); string appName = context.GetApplicationName(appFile); @@ -406,10 +418,10 @@ public override void Run(BuildContext context) AppsRunTaskHelpers.BuildAndStartHmi(context, appFile, appName, logFilePath, ref summaryResult); } } - } - else - { - Console.Error.WriteLine("Failed to create the log file."); + else + { + Console.Error.WriteLine("Failed to create the log file."); + } } AppsRunTaskHelpers.KillProcess(context, "Siemens.Simatic.PlcSim.Advanced.UserInterface"); diff --git a/src/abstractions/app/apax.yml b/src/abstractions/app/apax.yml index 89e6c42f2..0e8a1499f 100644 --- a/src/abstractions/app/apax.yml +++ b/src/abstractions/app/apax.yml @@ -37,75 +37,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.abb.robotics/app/apax.yml b/src/components.abb.robotics/app/apax.yml index 42810c475..cfac1ef9e 100644 --- a/src/components.abb.robotics/app/apax.yml +++ b/src/components.abb.robotics/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.abstractions/app/apax.yml b/src/components.abstractions/app/apax.yml index b66d25655..a566765e1 100644 --- a/src/components.abstractions/app/apax.yml +++ b/src/components.abstractions/app/apax.yml @@ -37,76 +37,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -118,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.balluff.identification/app/apax.yml b/src/components.balluff.identification/app/apax.yml index 38d12d680..83ce0d0cf 100644 --- a/src/components.balluff.identification/app/apax.yml +++ b/src/components.balluff.identification/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.cognex.vision/app/apax.yml b/src/components.cognex.vision/app/apax.yml index 06ee80cb2..244a9f758 100644 --- a/src/components.cognex.vision/app/apax.yml +++ b/src/components.cognex.vision/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.desoutter.tightening/app/apax.yml b/src/components.desoutter.tightening/app/apax.yml index 4d1e27cdd..b7d512df6 100644 --- a/src/components.desoutter.tightening/app/apax.yml +++ b/src/components.desoutter.tightening/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.drives/app/apax.yml b/src/components.drives/app/apax.yml index 1278f9eb8..dde6dbd91 100644 --- a/src/components.drives/app/apax.yml +++ b/src/components.drives/app/apax.yml @@ -37,76 +37,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -118,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.elements/app/apax.yml b/src/components.elements/app/apax.yml index 41bba2359..e35f6885d 100644 --- a/src/components.elements/app/apax.yml +++ b/src/components.elements/app/apax.yml @@ -37,76 +37,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -118,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.festo.drives/app/apax.yml b/src/components.festo.drives/app/apax.yml index ab3e14d2a..0bbe4044c 100644 --- a/src/components.festo.drives/app/apax.yml +++ b/src/components.festo.drives/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.kuka.robotics/app/apax.yml b/src/components.kuka.robotics/app/apax.yml index 13131b543..b644366b4 100644 --- a/src/components.kuka.robotics/app/apax.yml +++ b/src/components.kuka.robotics/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.mitsubishi.robotics/app/apax.yml b/src/components.mitsubishi.robotics/app/apax.yml index 8d831fa26..d811e6386 100644 --- a/src/components.mitsubishi.robotics/app/apax.yml +++ b/src/components.mitsubishi.robotics/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.pneumatics/app/apax.yml b/src/components.pneumatics/app/apax.yml index 6e2960782..7396fb6ff 100644 --- a/src/components.pneumatics/app/apax.yml +++ b/src/components.pneumatics/app/apax.yml @@ -37,76 +37,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -118,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.rexroth.drives/app/apax.yml b/src/components.rexroth.drives/app/apax.yml index 48cecfdef..edfbdb022 100644 --- a/src/components.rexroth.drives/app/apax.yml +++ b/src/components.rexroth.drives/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.rexroth.press/app/apax.yml b/src/components.rexroth.press/app/apax.yml index c99f9d648..7bea188a5 100644 --- a/src/components.rexroth.press/app/apax.yml +++ b/src/components.rexroth.press/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.robotics/app/apax.yml b/src/components.robotics/app/apax.yml index 3be529f16..6e6cece0e 100644 --- a/src/components.robotics/app/apax.yml +++ b/src/components.robotics/app/apax.yml @@ -37,76 +37,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -118,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.siem.identification/app/apax.yml b/src/components.siem.identification/app/apax.yml index 3be79d175..eb84e7b84 100644 --- a/src/components.siem.identification/app/apax.yml +++ b/src/components.siem.identification/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/components.ur.robotics/app/apax.yml b/src/components.ur.robotics/app/apax.yml index cb5fa38c4..6e225ac85 100644 --- a/src/components.ur.robotics/app/apax.yml +++ b/src/components.ur.robotics/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/core/app/apax.yml b/src/core/app/apax.yml index d1c7b03fd..13bcdf4b4 100644 --- a/src/core/app/apax.yml +++ b/src/core/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -118,7 +101,6 @@ scripts: cicb: | apax clean apax icb - mm1: | apax mon -t 10.10.10.120 -f messages1.mon -C .\\certs\\plc_line\\plc_line.cer -c mm2: | diff --git a/src/data/app/apax.yml b/src/data/app/apax.yml index 6b00bce5a..6a34f15d7 100644 --- a/src/data/app/apax.yml +++ b/src/data/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/inspectors/app/apax.yml b/src/inspectors/app/apax.yml index 2024a32f9..7d4ecae78 100644 --- a/src/inspectors/app/apax.yml +++ b/src/inspectors/app/apax.yml @@ -37,76 +37,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -118,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/integrations/app/apax.yml b/src/integrations/app/apax.yml index 0d80dce10..8dd73a6a9 100644 --- a/src/integrations/app/apax.yml +++ b/src/integrations/app/apax.yml @@ -40,76 +40,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -121,4 +104,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/io/app/apax.yml b/src/io/app/apax.yml index c4515359c..2852bf971 100644 --- a/src/io/app/apax.yml +++ b/src/io/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/probers/app/apax.yml b/src/probers/app/apax.yml index 98335ba18..5b4a0ac9c 100644 --- a/src/probers/app/apax.yml +++ b/src/probers/app/apax.yml @@ -37,76 +37,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -118,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/scripts/hw_compile_and_download.sh b/src/scripts/hw_compile_and_download.sh index 9758b0f4a..7d311e805 100644 --- a/src/scripts/hw_compile_and_download.sh +++ b/src/scripts/hw_compile_and_download.sh @@ -64,11 +64,13 @@ else printf "${RED}Please check the details above.${NC}\n" exit 1 fi -apax hwld -i bin/hwc/$PLC_NAME -t $PLC_IP_ADDRESS -C $certfile --nonInteractive --accept-security-disclaimer -l Information + +hw_download_only=$( dirname ${BASH_SOURCE[0]})"\\hw_download_only.sh" +$hw_download_only $PLC_NAME $PLC_IP_ADDRESS if [[ $? -eq 0 ]]; then - printf "${GREEN}Hardware configuration has been succesfully downloaded.${NC}" + printf "${GREEN}Hardware configuration downloaded succesfully.${NC}" else - printf "${RED}Downloading of the hardware configuration finished with an error!${NC}\n" + printf "${RED}Downloading hardware configuration finished with an error!${NC}\n" printf "${RED}Please check the details above.${NC}\n" exit 1 fi \ No newline at end of file diff --git a/src/scripts/hw_download_only.sh b/src/scripts/hw_download_only.sh new file mode 100644 index 000000000..313661381 --- /dev/null +++ b/src/scripts/hw_download_only.sh @@ -0,0 +1,47 @@ +export GREEN='\033[0;32m' +export RED='\033[0;31m' +export YELLOW='\033[0;33m' +export NC='\033[0m\r\n' # No Color+CRLF +if [ "$#" -ne 2 ]; then + printf "${RED}Usage: $0 .${NC}" + exit 1 +fi + +PLC_NAME=$1 +if [ -z $PLC_NAME ]; then + printf "${RED}The PLC_NAME could not be an empty string.${NC}" + exit 1 +fi + +PLC_IP_ADDRESS=$2 +validate_script=$( dirname ${BASH_SOURCE[0]})"\\validate_ip.sh" +if ! $validate_script "$PLC_IP_ADDRESS"; then + printf "${RED}The PLC_IP_ADDRESS '$PLC_IP_ADDRESS' is not a valid IP address.${NC}" + exit 1 +fi + +if ! [[ -d "./hwc" ]]; then + printf "${RED}Directory ".\hwc" does not exist!!!${NC}" + exit 1 +fi +hwcfile=".\hwc\\${PLC_NAME}.hwl.yml" +if ! [[ -e "$hwcfile" ]]; then + printf "${RED}Hardware configuration file $hwcfile does not exist!!!${NC}" + exit 1 +fi + +certfile="./certs/$PLC_NAME/$PLC_NAME.cer" +if ! [[ -e "$certfile" ]]; then + printf "${RED}Certification file $certfile does not exist!!!${NC}" + exit 1 +fi + +apax hwld -i bin/hwc/$PLC_NAME -t $PLC_IP_ADDRESS -C $certfile --nonInteractive --accept-security-disclaimer -l Information +if [[ $? -eq 0 ]]; then + printf "${GREEN}Hardware configuration has been succesfully downloaded.${NC}" +else + printf "${RED}Downloading of the hardware configuration finished with an error!${NC}\n" + printf "${RED}Please check the details above.${NC}\n" + exit 1 +fi + diff --git a/src/scripts/sw_build_and_download_delta.sh b/src/scripts/sw_build_and_download_delta.sh index b95a31e25..2a18331de 100644 --- a/src/scripts/sw_build_and_download_delta.sh +++ b/src/scripts/sw_build_and_download_delta.sh @@ -29,9 +29,13 @@ fi apax build --ignore-scripts dotnet ixc -certfile="./certs/$PLC_NAME/$PLC_NAME.cer" -if ! [[ -e "$certfile" ]]; then - printf "${RED}Certification file $certfile does not exist!!!${NC}" + +#sw_download_delta +sw_download_delta=$( dirname ${BASH_SOURCE[0]})"\\sw_download_delta.sh" +$sw_download_delta $PLC_NAME $PLC_IP_ADDRESS $PLATFORM +if [[ $? -eq 0 ]]; then + printf "${GREEN}Software changes has been succesfully downloaded using security certificate.${NC}" +else + printf "${RED}Downloading of the software changes using security certificate finished with an error!${NC}\n" + printf "${RED}Please check the details above.${NC}\n" exit 1 -fi -apax sld load --accept-security-disclaimer -t $PLC_IP_ADDRESS -i $PLATFORM -r -C $certfile --mode delta \ No newline at end of file diff --git a/src/scripts/sw_build_and_download_full.sh b/src/scripts/sw_build_and_download_full.sh index 1a3cba6c6..f9470d409 100644 --- a/src/scripts/sw_build_and_download_full.sh +++ b/src/scripts/sw_build_and_download_full.sh @@ -29,16 +29,13 @@ fi apax build --ignore-scripts dotnet ixc -certfile="./certs/$PLC_NAME/$PLC_NAME.cer" -if ! [[ -e "$certfile" ]]; then - printf "${RED}Certification file $certfile does not exist!!!${NC}" - exit 1 -fi -apax sld load --accept-security-disclaimer -t $PLC_IP_ADDRESS -i $PLATFORM -r -C $certfile + +#sw_download_full +sw_download_full=$( dirname ${BASH_SOURCE[0]})"\\sw_download_full.sh" +$sw_download_full $PLC_NAME $PLC_IP_ADDRESS $PLATFORM if [[ $? -eq 0 ]]; then printf "${GREEN}Software has been succesfully downloaded using security certificate.${NC}" else printf "${RED}Downloading of the software using security certificate finished with an error!${NC}\n" printf "${RED}Please check the details above.${NC}\n" exit 1 -fi \ No newline at end of file diff --git a/src/scripts/sw_download_delta.sh b/src/scripts/sw_download_delta.sh new file mode 100644 index 000000000..fd8cc925b --- /dev/null +++ b/src/scripts/sw_download_delta.sh @@ -0,0 +1,42 @@ +export GREEN='\033[0;32m' +export RED='\033[0;31m' +export YELLOW='\033[0;33m' +export NC='\033[0m\r\n' # No Color+CRLF + +if [ "$#" -ne 3 ]; then + printf "${RED}Usage: $0 .${NC}" + exit 1 +fi + +PLC_NAME=$1 +if [ -z $PLC_NAME ]; then + printf "${RED}The PLC_NAME could not be an empty string.${NC}" + exit 1 +fi + +PLC_IP_ADDRESS=$2 +validate_script=$( dirname ${BASH_SOURCE[0]})"\\validate_ip.sh" +if ! $validate_script "$PLC_IP_ADDRESS"; then + printf "${RED}The PLC_IP_ADDRESS '$PLC_IP_ADDRESS' is not a valid IP address.${NC}" + exit 1 +fi + +PLATFORM=$3 +if [ -z $PLATFORM ]; then + printf "${RED}The PLATFORM could not be an empty string.${NC}" + exit 1 +fi + +certfile="./certs/$PLC_NAME/$PLC_NAME.cer" +if ! [[ -e "$certfile" ]]; then + printf "${RED}Certification file $certfile does not exist!!!${NC}" + exit 1 +fi +apax sld load --accept-security-disclaimer -t $PLC_IP_ADDRESS -i $PLATFORM -r -C $certfile --mode delta +if [[ $? -eq 0 ]]; then + printf "${GREEN}Software has been succesfully downloaded using security certificate.${NC}" +else + printf "${RED}Downloading of the software using security certificate finished with an error!${NC}\n" + printf "${RED}Please check the details above.${NC}\n" + exit 1 +fi \ No newline at end of file diff --git a/src/scripts/sw_download_full.sh b/src/scripts/sw_download_full.sh new file mode 100644 index 000000000..112a56769 --- /dev/null +++ b/src/scripts/sw_download_full.sh @@ -0,0 +1,42 @@ +export GREEN='\033[0;32m' +export RED='\033[0;31m' +export YELLOW='\033[0;33m' +export NC='\033[0m\r\n' # No Color+CRLF + +if [ "$#" -ne 3 ]; then + printf "${RED}Usage: $0 .${NC}" + exit 1 +fi + +PLC_NAME=$1 +if [ -z $PLC_NAME ]; then + printf "${RED}The PLC_NAME could not be an empty string.${NC}" + exit 1 +fi + +PLC_IP_ADDRESS=$2 +validate_script=$( dirname ${BASH_SOURCE[0]})"\\validate_ip.sh" +if ! $validate_script "$PLC_IP_ADDRESS"; then + printf "${RED}The PLC_IP_ADDRESS '$PLC_IP_ADDRESS' is not a valid IP address.${NC}" + exit 1 +fi + +PLATFORM=$3 +if [ -z $PLATFORM ]; then + printf "${RED}The PLATFORM could not be an empty string.${NC}" + exit 1 +fi + +certfile="./certs/$PLC_NAME/$PLC_NAME.cer" +if ! [[ -e "$certfile" ]]; then + printf "${RED}Certification file $certfile does not exist!!!${NC}" + exit 1 +fi +apax sld load --accept-security-disclaimer -t $PLC_IP_ADDRESS -i $PLATFORM -r -C $certfile +if [[ $? -eq 0 ]]; then + printf "${GREEN}Software has been succesfully downloaded using security certificate.${NC}" +else + printf "${RED}Downloading of the software using security certificate finished with an error!${NC}\n" + printf "${RED}Please check the details above.${NC}\n" + exit 1 +fi \ No newline at end of file diff --git a/src/simatic1500/app/apax.yml b/src/simatic1500/app/apax.yml index 67e8e3760..6313aabb6 100644 --- a/src/simatic1500/app/apax.yml +++ b/src/simatic1500/app/apax.yml @@ -37,76 +37,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -118,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/template.axolibrary/app/apax.yml b/src/template.axolibrary/app/apax.yml index 719d2fe9b..d09bd5f02 100644 --- a/src/template.axolibrary/app/apax.yml +++ b/src/template.axolibrary/app/apax.yml @@ -36,76 +36,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -117,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/timers/app/apax.yml b/src/timers/app/apax.yml index 5d5ee1370..37c883edf 100644 --- a/src/timers/app/apax.yml +++ b/src/timers/app/apax.yml @@ -37,76 +37,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -118,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file diff --git a/src/utils/app/apax.yml b/src/utils/app/apax.yml index b6ee4fd47..e2e88fde5 100644 --- a/src/utils/app/apax.yml +++ b/src/utils/app/apax.yml @@ -38,76 +38,59 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - - r: | #restart PLC - ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME - + plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore - dotnet ixc - + dotnet ixc --skip-deps postbuild: apax run ixc # run after build - dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\..\\scripts\\dcp_utility_list_interfaces.sh - + ..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC - + ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME - + ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install - reset_plc: | #total reset of the PLC including IP and name - ..\\..\\scripts\\reset_plc.sh $AXTARGET - + ..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\..\\scripts\\clean_plc.sh $AXTARGET - + ..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD - - gsd: | # copy and install all gsdml files from library - ..\\..\\scripts\\copy_and_install_gsd.sh - - hwl: | # copy all templates from library - ..\\..\\scripts\\copy_hwl_templates.sh - + ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + gsd: | # copy and install all gsdml files from libraries + ..\\scripts\\copy_and_install_gsd.sh + hwl: | # copy all templates from libraries + ..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\..\\scripts\\hw_compile.sh - + ..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME - + ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + hwdo: | # download HW only using certificate + ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD - + ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET - + ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swfdo: | # software full download only + ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT - + ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + swddo: | # software delta download only + ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED - echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" - + ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install apax build @@ -119,4 +102,4 @@ scripts: apax ib cicb: | apax clean - apax icb + apax icb \ No newline at end of file From 985155bfde11e6af0ba797bec73d4e0b699834bb Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 13:22:10 +0100 Subject: [PATCH 08/21] relative paths to scripts fixed --- src/abstractions/app/apax.yml | 44 +++++++++---------- src/components.abb.robotics/app/apax.yml | 44 +++++++++---------- src/components.abstractions/app/apax.yml | 44 +++++++++---------- .../app/apax.yml | 44 +++++++++---------- src/components.cognex.vision/app/apax.yml | 44 +++++++++---------- .../app/apax.yml | 44 +++++++++---------- src/components.drives/app/apax.yml | 44 +++++++++---------- src/components.elements/app/apax.yml | 44 +++++++++---------- src/components.festo.drives/app/apax.yml | 44 +++++++++---------- src/components.kuka.robotics/app/apax.yml | 44 +++++++++---------- .../app/apax.yml | 44 +++++++++---------- src/components.pneumatics/app/apax.yml | 44 +++++++++---------- src/components.rexroth.drives/app/apax.yml | 44 +++++++++---------- src/components.rexroth.press/app/apax.yml | 44 +++++++++---------- src/components.robotics/app/apax.yml | 44 +++++++++---------- .../app/apax.yml | 44 +++++++++---------- src/components.ur.robotics/app/apax.yml | 44 +++++++++---------- src/core/app/apax.yml | 44 +++++++++---------- src/data/app/AXSharp.config.json | 2 +- src/data/app/apax.yml | 44 +++++++++---------- src/inspectors/app/apax.yml | 44 +++++++++---------- src/integrations/app/apax.yml | 44 +++++++++---------- src/io/app/apax.yml | 44 +++++++++---------- src/probers/app/apax.yml | 44 +++++++++---------- src/simatic1500/app/apax.yml | 44 +++++++++---------- src/template.axolibrary/app/apax.yml | 44 +++++++++---------- src/timers/app/apax.yml | 44 +++++++++---------- src/utils/app/apax.yml | 44 +++++++++---------- 28 files changed, 595 insertions(+), 595 deletions(-) diff --git a/src/abstractions/app/apax.yml b/src/abstractions/app/apax.yml index 0e8a1499f..91f28e93b 100644 --- a/src/abstractions/app/apax.yml +++ b/src/abstractions/app/apax.yml @@ -37,58 +37,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.abb.robotics/app/apax.yml b/src/components.abb.robotics/app/apax.yml index cfac1ef9e..8f87f4c72 100644 --- a/src/components.abb.robotics/app/apax.yml +++ b/src/components.abb.robotics/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.abstractions/app/apax.yml b/src/components.abstractions/app/apax.yml index a566765e1..cf699aeeb 100644 --- a/src/components.abstractions/app/apax.yml +++ b/src/components.abstractions/app/apax.yml @@ -37,58 +37,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.balluff.identification/app/apax.yml b/src/components.balluff.identification/app/apax.yml index 83ce0d0cf..e0a190c8e 100644 --- a/src/components.balluff.identification/app/apax.yml +++ b/src/components.balluff.identification/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.cognex.vision/app/apax.yml b/src/components.cognex.vision/app/apax.yml index 244a9f758..9d4a9efda 100644 --- a/src/components.cognex.vision/app/apax.yml +++ b/src/components.cognex.vision/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.desoutter.tightening/app/apax.yml b/src/components.desoutter.tightening/app/apax.yml index b7d512df6..279c0fc24 100644 --- a/src/components.desoutter.tightening/app/apax.yml +++ b/src/components.desoutter.tightening/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.drives/app/apax.yml b/src/components.drives/app/apax.yml index dde6dbd91..9862ed06c 100644 --- a/src/components.drives/app/apax.yml +++ b/src/components.drives/app/apax.yml @@ -37,58 +37,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.elements/app/apax.yml b/src/components.elements/app/apax.yml index e35f6885d..e2e6bbd8b 100644 --- a/src/components.elements/app/apax.yml +++ b/src/components.elements/app/apax.yml @@ -37,58 +37,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.festo.drives/app/apax.yml b/src/components.festo.drives/app/apax.yml index 0bbe4044c..f01b4f635 100644 --- a/src/components.festo.drives/app/apax.yml +++ b/src/components.festo.drives/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.kuka.robotics/app/apax.yml b/src/components.kuka.robotics/app/apax.yml index b644366b4..bc9466af4 100644 --- a/src/components.kuka.robotics/app/apax.yml +++ b/src/components.kuka.robotics/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.mitsubishi.robotics/app/apax.yml b/src/components.mitsubishi.robotics/app/apax.yml index d811e6386..c78ff5090 100644 --- a/src/components.mitsubishi.robotics/app/apax.yml +++ b/src/components.mitsubishi.robotics/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.pneumatics/app/apax.yml b/src/components.pneumatics/app/apax.yml index 7396fb6ff..ef1b10bfa 100644 --- a/src/components.pneumatics/app/apax.yml +++ b/src/components.pneumatics/app/apax.yml @@ -37,58 +37,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.rexroth.drives/app/apax.yml b/src/components.rexroth.drives/app/apax.yml index edfbdb022..2c7f938b3 100644 --- a/src/components.rexroth.drives/app/apax.yml +++ b/src/components.rexroth.drives/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.rexroth.press/app/apax.yml b/src/components.rexroth.press/app/apax.yml index 7bea188a5..18af7faed 100644 --- a/src/components.rexroth.press/app/apax.yml +++ b/src/components.rexroth.press/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.robotics/app/apax.yml b/src/components.robotics/app/apax.yml index 6e6cece0e..22f3d76d2 100644 --- a/src/components.robotics/app/apax.yml +++ b/src/components.robotics/app/apax.yml @@ -37,58 +37,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.siem.identification/app/apax.yml b/src/components.siem.identification/app/apax.yml index eb84e7b84..8446ab9e0 100644 --- a/src/components.siem.identification/app/apax.yml +++ b/src/components.siem.identification/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/components.ur.robotics/app/apax.yml b/src/components.ur.robotics/app/apax.yml index 6e225ac85..dd7dfc387 100644 --- a/src/components.ur.robotics/app/apax.yml +++ b/src/components.ur.robotics/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/core/app/apax.yml b/src/core/app/apax.yml index 13bcdf4b4..0916ed8d1 100644 --- a/src/core/app/apax.yml +++ b/src/core/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/data/app/AXSharp.config.json b/src/data/app/AXSharp.config.json index 7962d0519..33756cd1f 100644 --- a/src/data/app/AXSharp.config.json +++ b/src/data/app/AXSharp.config.json @@ -1 +1 @@ -{"OutputProjectFolder":"ix","UseBase":false,"NoDependencyUpdate":false,"IgnoreS7Pragmas":false,"SkipDependencyCompilation":false,"TargetPlatfromMoniker":"ax","ProjectFile":"axopen_data_app.csproj"} \ No newline at end of file +{"OutputProjectFolder":"ix","UseBase":false,"NoDependencyUpdate":false,"IgnoreS7Pragmas":false,"SkipDependencyCompilation":true,"TargetPlatfromMoniker":"ax","ProjectFile":"axopen_data_app.csproj"} \ No newline at end of file diff --git a/src/data/app/apax.yml b/src/data/app/apax.yml index 6a34f15d7..a8b762775 100644 --- a/src/data/app/apax.yml +++ b/src/data/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/inspectors/app/apax.yml b/src/inspectors/app/apax.yml index 7d4ecae78..1d186fcb5 100644 --- a/src/inspectors/app/apax.yml +++ b/src/inspectors/app/apax.yml @@ -37,58 +37,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/integrations/app/apax.yml b/src/integrations/app/apax.yml index 8dd73a6a9..248916094 100644 --- a/src/integrations/app/apax.yml +++ b/src/integrations/app/apax.yml @@ -40,58 +40,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/io/app/apax.yml b/src/io/app/apax.yml index 2852bf971..7c372e131 100644 --- a/src/io/app/apax.yml +++ b/src/io/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/probers/app/apax.yml b/src/probers/app/apax.yml index 5b4a0ac9c..bd28d873b 100644 --- a/src/probers/app/apax.yml +++ b/src/probers/app/apax.yml @@ -37,58 +37,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/simatic1500/app/apax.yml b/src/simatic1500/app/apax.yml index 6313aabb6..dd632a774 100644 --- a/src/simatic1500/app/apax.yml +++ b/src/simatic1500/app/apax.yml @@ -37,58 +37,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/template.axolibrary/app/apax.yml b/src/template.axolibrary/app/apax.yml index d09bd5f02..5b0d40020 100644 --- a/src/template.axolibrary/app/apax.yml +++ b/src/template.axolibrary/app/apax.yml @@ -36,58 +36,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/timers/app/apax.yml b/src/timers/app/apax.yml index 37c883edf..a5857f528 100644 --- a/src/timers/app/apax.yml +++ b/src/timers/app/apax.yml @@ -37,58 +37,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install diff --git a/src/utils/app/apax.yml b/src/utils/app/apax.yml index e2e88fde5..a5182aaae 100644 --- a/src/utils/app/apax.yml +++ b/src/utils/app/apax.yml @@ -38,58 +38,58 @@ scripts: # AX_TARGET_PWD: Password for 'AX_USERNAME' # USE_PLC_SIM_ADVANCED with value of "true" will automatically trigger PlcSimAdvanced when calling apax alf or apax all # PNIO_MAC: MAC address of the network adapter connected to the Profinet network - plcsim: ..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET - r: ..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME + plcsim: ..\\..\\scripts\\plcsimadvanced.sh $APAX_YML_NAME $PLC_NAME $AXTARGET + r: ..\\..\\scripts\\restart_PLC.sh $AXTARGET $PLC_NAME ixc: | # run ix builder dotnet tool restore dotnet ixc --skip-deps postbuild: apax run ixc # run after build dcpli: | # list all interfaces, used to discover MAC address of the adapter connected to PLC - ..\\scripts\\dcp_utility_list_interfaces.sh + ..\\..\\scripts\\dcp_utility_list_interfaces.sh dcpd: | # discover all accesible devices connected to adapter with MAC address equal to entered MAC, used to discover MAC-addresses of the slaves - ..\\scripts\\dcp_utility_discover.sh $PNIO_MAC + ..\\..\\scripts\\dcp_utility_discover.sh $PNIO_MAC hdl: | #List configured harware and its state - ..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME + ..\\..\\scripts\\hw_diag_list.sh $AXTARGET $PLC_NAME ci: | #clean and install dependencies apax clean apax install reset_plc: | #total reset of the PLC including IP and name - ..\\scripts\\reset_plc.sh $AXTARGET + ..\\..\\scripts\\reset_plc.sh $AXTARGET clean_plc: | #total reset of the PLC excluding IP and name - ..\\scripts\\clean_plc.sh $AXTARGET + ..\\..\\scripts\\clean_plc.sh $AXTARGET ssc: | # setup secure communication, create and import certificates, setup password for AX_USERNAME - ..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD + ..\\..\\scripts\\setup_secure_communication.sh $PLC_NAME $AX_USERNAME $AX_TARGET_PWD gsd: | # copy and install all gsdml files from libraries - ..\\scripts\\copy_and_install_gsd.sh + ..\\..\\scripts\\copy_and_install_gsd.sh hwl: | # copy all templates from libraries - ..\\scripts\\copy_hwl_templates.sh + ..\\..\\scripts\\copy_hwl_templates.sh hwcc: | # compile hardware configuration - ..\\scripts\\hw_compile.sh + ..\\..\\scripts\\hw_compile.sh hwid: | # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates - ..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_hardware_ids.sh $DEFAULT_NAMESPACE $PLC_NAME hwadr: | # copy the generated IoAddresses - ..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME + ..\\..\\scripts\\copy_io_addresses.sh $DEFAULT_NAMESPACE $PLC_NAME hwdo: | # download HW only using certificate - ..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_download_only.sh $PLC_NAME $AXTARGET hwfd: | # copy and install gsd, copy templates,compile, copy the HwIds, copy the IoAddresses, first download HW using password and upload certificate - ..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD + ..\\..\\scripts\\hw_first_download.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AX_TARGET_PWD hwu: | # copy and install gsd, copy templates, compile, copy the HwIds, copy the IoAddresses, download HW using certificate - ..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET + ..\\..\\scripts\\hw_update.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET swfd: | # software build and full download - ..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swfdo: | # software full download only - ..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_full.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swdd: | # software build and delta download - ..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_build_and_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT swddo: | # software delta download only - ..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT + ..\\..\\scripts\\sw_download_delta.sh $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT alf: | #clear plc except ip and name and provide all actions for install all, build and initial download hw so as sw START=$(date +%s) - ..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all_first.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" all: | #build and download hardware and software START=$(date +%s) - ..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED + ..\\..\\scripts\\all.sh $DEFAULT_NAMESPACE $PLC_NAME $AXTARGET $AXTARGETPLATFORMINPUT $AX_USERNAME $AX_TARGET_PWD $USE_PLC_SIM_ADVANCED echo $(date +%D)"-"$(date +%H)":"$(date +%M)":"$(date +%S) " - Finished in :" $(expr $(date +%s) - $START) "s" ib: | apax install From e5cec1f96611d8363d9155496c41b40aa6ddc3d4 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 15:05:13 +0100 Subject: [PATCH 09/21] IP addresses in HMI apps fixed --- cake/ApaxCmd.cs | 52 +++- cake/AppsRunTaskHelpers.cs | 113 +++++++++ cake/DotNetCmd.cs | 235 ++++++++++++++++++ cake/Program.cs | 9 +- src/abstractions/app/ix/Entry.cs | 4 +- src/components.abb.robotics/app/ix/Entry.cs | 2 + src/components.abstractions/app/ix/Entry.cs | 4 +- .../app/ix/Entry.cs | 2 + src/components.cognex.vision/app/ix/Entry.cs | 2 + .../app/ix/Entry.cs | 2 + src/components.drives/app/ix/Entry.cs | 2 + src/components.elements/app/ix/Entry.cs | 4 +- src/components.festo.drives/app/ix/Entry.cs | 2 + src/components.kuka.robotics/app/ix/Entry.cs | 2 + .../app/ix/Entry.cs | 2 + src/components.pneumatics/app/ix/Entry.cs | 4 +- src/components.rexroth.drives/app/ix/Entry.cs | 2 + src/components.rexroth.press/app/ix/Entry.cs | 2 + src/components.robotics/app/ix/Entry.cs | 2 + .../app/ix/Entry.cs | 2 + src/components.ur.robotics/app/ix/Entry.cs | 2 + src/core/app/ix/Entry.cs | 4 +- src/data/app/AXSharp.config.json | 2 +- src/data/app/apax.yml | 2 +- src/data/app/app.sln | 126 ---------- .../app/ix-blazor/JSONREPOS/Groups/AdminGroup | 4 +- src/data/app/ix/Entry.cs | 8 +- src/inspectors/app/ix/Entry.cs | 4 +- .../src/AXOpen.Integrations/Entry.cs | 4 +- src/io/app/ix/Entry.cs | 2 + src/probers/app/ix/Entry.cs | 4 +- src/simatic1500/app/ix/Entry.cs | 2 + src/template.axolibrary/app/ix/Entry.cs | 2 + src/timers/app/ix/Entry.cs | 2 + src/utils/app/ix/Entry.cs | 2 + 35 files changed, 470 insertions(+), 149 deletions(-) delete mode 100644 src/data/app/app.sln diff --git a/cake/ApaxCmd.cs b/cake/ApaxCmd.cs index cae1ff9b7..656571452 100644 --- a/cake/ApaxCmd.cs +++ b/cake/ApaxCmd.cs @@ -60,7 +60,58 @@ public static void ApaxInstall(this BuildContext context, string folder) }).WaitForExit(); context.Log.Information($"apax {apaxArguments} completed successfully in '{folder}'"); } + public static string ApaxCommand(this BuildContext context, string folder, string apaxCommand, ref bool summaryResult) + { + string retVal = ",NOK"; + + context.Log.Information($"apax {apaxCommand} started in '{folder}'"); + + var processSettings = new ProcessSettings() + { + Arguments = apaxCommand, + WorkingDirectory = folder, + RedirectStandardOutput = true, + RedirectStandardError = true, + Silent = false + }; + + using (var process = context.ProcessRunner.Start(Helpers.GetApaxCommand(), processSettings)) + { + if (process == null) + { + summaryResult = false; + throw new Exception("Failed to start the process."); + } + + process.WaitForExit(); + + var standardOutput = process.GetStandardOutput(); + var standardError = process.GetStandardError(); + + // Check the exit code and handle result + if (process.GetExitCode() == 0) + { + foreach (string line in standardOutput) + { + context.Log.Information(line); + } + context.Log.Information($"apax {apaxCommand} completed successfully in '{folder}'"); + retVal = ",OK"; + } + else + { + summaryResult = false; + foreach (string line in standardError) + { + context.Log.Error(line); + } + context.Log.Error($"apax {apaxCommand} failed with exit code: {process.GetExitCode()} in '{folder}'"); + context.Log.Error($"Error Output: {standardError}"); + } + return retVal; + } + } public static string ApaxPlcSim(this BuildContext context, string folder, ref bool summaryResult) { string retVal = ",NOK"; @@ -109,7 +160,6 @@ public static string ApaxPlcSim(this BuildContext context, string folder, ref bo return retVal; } } - public static string ApaxHwu(this BuildContext context, string folder, ref bool summaryResult) { string retVal = ",NOK"; diff --git a/cake/AppsRunTaskHelpers.cs b/cake/AppsRunTaskHelpers.cs index d3e7053ea..6c089d125 100644 --- a/cake/AppsRunTaskHelpers.cs +++ b/cake/AppsRunTaskHelpers.cs @@ -64,6 +64,119 @@ public static void BuildAndLoadPlc(BuildContext context, string appYamlFile, str string swfdResult = ApaxCmd.ApaxSwfd(context, appFolder, ref summaryResult); WriteResult(context, swfdResult, logFilePath, appendToSameLine: true); } + public static void AppRunDetailed(BuildContext context, string appYamlFile, string appName, string logFilePath, ref bool summaryResult) + { + string plcName = context.PlcName; + string plcIpAddress = context.PlcIpAddress; + + // Validate application YAML file + if (string.IsNullOrWhiteSpace(appYamlFile)) + { + context.Log.Error("The provided YAML of the application is empty."); + return; + } + + if (!File.Exists(appYamlFile)) + { + context.Log.Error($"The provided application file does not exist: {appYamlFile}"); + return; + } + + if (string.IsNullOrWhiteSpace(appName)) + { + context.Log.Error("The provided application name is empty."); + return; + } + + string appFolder = Path.GetDirectoryName(appYamlFile); + if (string.IsNullOrWhiteSpace(appFolder) || !Directory.Exists(appFolder)) + { + context.Log.Error($"The provided path for the application does not exist: {appFolder}"); + return; + } + + // Run "apax install" + string result = ApaxCmd.ApaxCommand(context, appFolder, "install", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Run "apax plcsim" + result = ApaxCmd.ApaxPlcSim(context, appFolder, ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Run "apax gsd" # copy and install all gsdml files from libraries + result = ApaxCmd.ApaxCommand(context, appFolder, "gsd", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Run "apax hwl" # copy all templates from libraries + result = ApaxCmd.ApaxCommand(context, appFolder, "hwl", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Run "apax hwcc" # compile hardware configuration + result = ApaxCmd.ApaxCommand(context, appFolder, "hwcc", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Run "apax hwid" # copy the generated HwIds from global constants into the type definition, matching the format as the TIA2AX tool creates + result = ApaxCmd.ApaxCommand(context, appFolder, "hwid", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Run "apax hwadr" # copy the generated IoAddresses + result = ApaxCmd.ApaxCommand(context, appFolder, "hwadr", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Run "apax hwdo" # download HW only using certificate + result = ApaxCmd.ApaxCommand(context, appFolder, "hwdo", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Run "apax build --ignore-scripts" + result = ApaxCmd.ApaxCommand(context, appFolder, "build --ignore-scripts", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Run "dotnet ixc" + result = DotNetCmd.DotNetIxc(context, appFolder, ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Run "apax swfdo" # software full download only + result = ApaxCmd.ApaxCommand(context, appFolder, "swfdo", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + + // Recreate solution file by running the slngen script + string slnGenPath = Path.GetFullPath(Path.GetFullPath(Path.Combine(appFolder, "..", "./slngen.ps1"))); + result = DotNetCmd.RunPowershellScript(context, slnGenPath, "", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Clean solution + string solutionFile = Path.GetFullPath(Path.Combine(appFolder, "../this.sln")); + result = DotNetCmd.DotNetClean(context, solutionFile, "-c Debug", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Build solution + result = DotNetCmd.DotNetBuildWithResult(context, solutionFile, "-c Debug", ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + + // Get blazor projects + var blazorFiles = Directory.GetFiles(appFolder, "*.csproj", SearchOption.AllDirectories).Where(file => file.Contains("blazor")).ToList(); + + if (blazorFiles.Any()) + { + foreach (var blazorFile in blazorFiles) + { + context.Log.Information($"Application 'blazor' file: {blazorFile}"); + + // Filter out libraries by checking for in the project file + string csprojContent = File.ReadAllText(blazorFile); + if (!csprojContent.Contains("")) + { + result = DotNetCmd.DotNetRunWithResult(context, blazorFile, "-c Debug --framework net9.0", 60, ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + } + } + } + else + { + context.Log.Information("No files containing 'blazor' in the filename and ending with '.csproj' were found."); + } + } public static void BuildAndStartHmi(BuildContext context, string appYamlFile, string appName, string logFilePath, ref bool summaryResult) { diff --git a/cake/DotNetCmd.cs b/cake/DotNetCmd.cs index a058e7878..ef5bea4b3 100644 --- a/cake/DotNetCmd.cs +++ b/cake/DotNetCmd.cs @@ -22,6 +22,7 @@ using Microsoft.Extensions.Configuration; using Microsoft.Win32; using Octokit; +using Polly; using YamlDotNet.RepresentationModel; using static NuGet.Packaging.PackagingConstants; using Path = System.IO.Path; @@ -44,6 +45,83 @@ public static void DotnetIxc(this BuildContext context, IEnumerable fold } } + + //this BuildContext context, string folder, string apaxCommand, ref bool summaryResult + public static string DotNetIxc(this BuildContext context, string folder, ref bool summaryResult) + { + string retVal = ",NOK"; + + var processSettings = new ProcessSettings + { + Arguments = "ixc", + WorkingDirectory = folder, + RedirectStandardOutput = true, + RedirectStandardError = true, + Silent = false + }; + + try + { + using (var process = context.ProcessRunner.Start(Helpers.GetDotNetCommand(), processSettings)) + { + if (process == null) + { + summaryResult = false; + throw new Exception($"Failed to start the 'dotnet ixc' command in folder: '{folder}'"); + } + context.Log.Information($"Dotnet ixc command started in folder: '{folder}'"); + + // Initialize output storage + var standardOutput = new List(); + var standardError = new List(); + + // Read output and error streams asynchronously + Task outputTask = Task.Run(() => + { + foreach (var line in process.GetStandardOutput()) + { + standardOutput.Add(line); + context.Log.Information(line); // Log output immediately + } + }); + + Task errorTask = Task.Run(() => + { + foreach (var line in process.GetStandardError()) + { + standardError.Add(line); + context.Log.Error(line); // Log errors immediately + } + }); + + // Wait for the process to exit + process.WaitForExit(); + + // Ensure all output and error streams are read + Task.WaitAll(outputTask, errorTask); + + // Check the exit code and handle result + if (process.GetExitCode() == 0) + { + context.Log.Information($"Dotnet ixc command finished successfully in '{folder}'"); + retVal = ",OK"; + } + else + { + summaryResult = false; + context.Log.Error($"Dotnet ixc command in folder: '{folder}' failed with exit code: {process.GetExitCode()}"); + context.Log.Error($"Standard Error Output: {string.Join(Environment.NewLine, standardError)}"); + context.Log.Error($"Standard Output: {string.Join(Environment.NewLine, standardOutput)}"); + } + } + } + catch (Exception ex) + { + context.Log.Error($"An exception occurred while running the dotnet build command: {ex.Message}"); + summaryResult = false; + } + return retVal; + } public static void RunPowershellScript(this BuildContext context, string scriptPath, string arguments) { string workDir = Path.GetFullPath(Path.Combine(scriptPath, "..")); @@ -59,6 +137,84 @@ public static void RunPowershellScript(this BuildContext context, string scriptP context.Log.Information($"Powershell script {scriptPath} with arguments '{arguments}' finished"); } + public static string RunPowershellScript(this BuildContext context, string scriptPath, string arguments, ref bool summaryResult) + { + string retVal = ",NOK"; + + string workDir = Path.GetFullPath(Path.Combine(scriptPath, "..")); + + var processSettings = new ProcessSettings + { + Arguments = $"-NoProfile -ExecutionPolicy Bypass -File \"{scriptPath}\" {arguments}", + WorkingDirectory = workDir, + RedirectStandardOutput = true, + RedirectStandardError = true, + Silent = false + }; + + try + { + using (var process = context.ProcessRunner.Start("powershell.exe", processSettings)) + { + if (process == null) + { + summaryResult = false; + throw new Exception($"Failed to start Powershell script {scriptPath} with arguments '{arguments}'"); + } + context.Log.Information($"Powershell script {scriptPath} with arguments '{arguments}' started"); + + // Initialize output storage + var standardOutput = new List(); + var standardError = new List(); + + // Read output and error streams asynchronously + Task outputTask = Task.Run(() => + { + foreach (var line in process.GetStandardOutput()) + { + standardOutput.Add(line); + context.Log.Information(line); // Log output immediately + } + }); + + Task errorTask = Task.Run(() => + { + foreach (var line in process.GetStandardError()) + { + standardError.Add(line); + context.Log.Error(line); // Log errors immediately + } + }); + + // Wait for the process to exit + process.WaitForExit(); + + // Ensure all output and error streams are read + Task.WaitAll(outputTask, errorTask); + + // Check the exit code and handle result + if (process.GetExitCode() == 0) + { + context.Log.Information($"Powershell script {scriptPath} with arguments '{arguments}' finished successfully."); + retVal = ",OK"; + } + else + { + summaryResult = false; + context.Log.Error($"Powershell script {scriptPath} with arguments '{arguments}' failed with exit code: {process.GetExitCode()}"); + context.Log.Error($"Standard Error Output: {string.Join(Environment.NewLine, standardError)}"); + context.Log.Error($"Standard Output: {string.Join(Environment.NewLine, standardOutput)}"); + } + } + } + catch (Exception ex) + { + context.Log.Error($"An exception occurred while running the Powershell script {scriptPath} with arguments '{arguments}' : {ex.Message}"); + summaryResult = false; + } + return retVal; + } + public static void DotNetClean(this BuildContext context, string slnFilePath, string arguments) { string workDir = Path.GetFullPath(Path.Combine(slnFilePath, "..")); @@ -75,6 +231,85 @@ public static void DotNetClean(this BuildContext context, string slnFilePath, st context.Log.Information($"Dotnet clean command finished with solution: {slnFilePath}"); } + public static string DotNetClean(this BuildContext context, string slnFilePath, string arguments, ref bool summaryResult) + { + string workDir = Path.GetFullPath(Path.Combine(slnFilePath, "..")); + string args = string.Concat($"clean \"{slnFilePath}\" ", arguments); + context.Log.Information($"Dotnet clean command started with solution: {slnFilePath}"); + + string retVal = ",NOK"; + + var processSettings = new ProcessSettings + { + Arguments = args, + WorkingDirectory = workDir, + RedirectStandardOutput = true, + RedirectStandardError = true, + Silent = false + }; + + try + { + using (var process = context.ProcessRunner.Start(Helpers.GetDotNetCommand(), processSettings)) + { + if (process == null) + { + summaryResult = false; + throw new Exception("Failed to start the process."); + } + + // Initialize output storage + var standardOutput = new List(); + var standardError = new List(); + + // Read output and error streams asynchronously + Task outputTask = Task.Run(() => + { + foreach (var line in process.GetStandardOutput()) + { + standardOutput.Add(line); + context.Log.Information(line); // Log output immediately + } + }); + + Task errorTask = Task.Run(() => + { + foreach (var line in process.GetStandardError()) + { + standardError.Add(line); + context.Log.Error(line); // Log errors immediately + } + }); + + // Wait for the process to exit + process.WaitForExit(); + + // Ensure all output and error streams are read + Task.WaitAll(outputTask, errorTask); + + // Check the exit code and handle result + if (process.GetExitCode() == 0) + { + context.Log.Information($"Dotnet clean command finished successfully with solution: {slnFilePath}"); + retVal = ",OK"; + } + else + { + summaryResult = false; + context.Log.Error($"Dotnet clean command with solution: {slnFilePath} failed with exit code: {process.GetExitCode()}"); + context.Log.Error($"Standard Error Output: {string.Join(Environment.NewLine, standardError)}"); + context.Log.Error($"Standard Output: {string.Join(Environment.NewLine, standardOutput)}"); + } + } + } + catch (Exception ex) + { + context.Log.Error($"An exception occurred while running the dotnet clean command: {ex.Message}"); + summaryResult = false; + } + return retVal; + } + public static string DotNetBuildWithResult(this BuildContext context, string slnFilePath, string arguments, ref bool summaryResult) { string workDir = Path.GetFullPath(Path.Combine(slnFilePath, "..")); diff --git a/cake/Program.cs b/cake/Program.cs index fd307de7f..ca3184ebf 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -386,7 +386,7 @@ public override void Run(BuildContext context) if (createResult.Success) { string logFilePath = createResult.FilePath; - AppsRunTaskHelpers.WriteResult(context, "AppName,PlcSim,PlcHw,PlcSw,DotnetBuild,DotnetRun", logFilePath); + AppsRunTaskHelpers.WriteResult(context, "AppName,ApaxInstall,ApaxPlcSim,ApaxGsd,ApaxHwl,ApaxHwcc,ApaxHwid,ApaxHwadr,ApaxHwdo,ApaxBuild,DotnetIxc,ApaxSlfdo,Slngen,DotnetClean,DotnetBuild,DotnetRun", logFilePath); string appFolder = Path.Combine(Path.Combine(context.RootDir, context.BuildParameters.AppRunOnlyFolderName), "app"); string appFile = context.GetApaxFile(appFolder); @@ -411,11 +411,8 @@ public override void Run(BuildContext context) // Overwrite security files AppsRunTaskHelpers.OverwriteSecurityFiles(context, appFile, context.PlcName); - // Build and load PLC - AppsRunTaskHelpers.BuildAndLoadPlc(context, appFile, appName, logFilePath, ref summaryResult); - - // Build and start HMI - AppsRunTaskHelpers.BuildAndStartHmi(context, appFile, appName, logFilePath, ref summaryResult); + // Build and load PLC, build and start HMI with more grannular evaluation + AppsRunTaskHelpers.AppRunDetailed(context, appFile, appName, logFilePath, ref summaryResult); } } else diff --git a/src/abstractions/app/ix/Entry.cs b/src/abstractions/app/ix/Entry.cs index 6baf216eb..25fc7717a 100644 --- a/src/abstractions/app/ix/Entry.cs +++ b/src/abstractions/app/ix/Entry.cs @@ -22,11 +22,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.abb.robotics/app/ix/Entry.cs b/src/components.abb.robotics/app/ix/Entry.cs index 69db85b3f..d5565a7c1 100644 --- a/src/components.abb.robotics/app/ix/Entry.cs +++ b/src/components.abb.robotics/app/ix/Entry.cs @@ -23,11 +23,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.abstractions/app/ix/Entry.cs b/src/components.abstractions/app/ix/Entry.cs index bfdb82cb4..58400d5ed 100644 --- a/src/components.abstractions/app/ix/Entry.cs +++ b/src/components.abstractions/app/ix/Entry.cs @@ -22,11 +22,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.balluff.identification/app/ix/Entry.cs b/src/components.balluff.identification/app/ix/Entry.cs index e4cee67c8..5a1d2bc59 100644 --- a/src/components.balluff.identification/app/ix/Entry.cs +++ b/src/components.balluff.identification/app/ix/Entry.cs @@ -25,11 +25,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.cognex.vision/app/ix/Entry.cs b/src/components.cognex.vision/app/ix/Entry.cs index 0642253b2..765e60406 100644 --- a/src/components.cognex.vision/app/ix/Entry.cs +++ b/src/components.cognex.vision/app/ix/Entry.cs @@ -23,11 +23,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.desoutter.tightening/app/ix/Entry.cs b/src/components.desoutter.tightening/app/ix/Entry.cs index 4824c4027..73af356aa 100644 --- a/src/components.desoutter.tightening/app/ix/Entry.cs +++ b/src/components.desoutter.tightening/app/ix/Entry.cs @@ -23,11 +23,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.drives/app/ix/Entry.cs b/src/components.drives/app/ix/Entry.cs index 4d3a94491..d69cc94ad 100644 --- a/src/components.drives/app/ix/Entry.cs +++ b/src/components.drives/app/ix/Entry.cs @@ -24,11 +24,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.elements/app/ix/Entry.cs b/src/components.elements/app/ix/Entry.cs index 0245943cf..1c4bae6cc 100644 --- a/src/components.elements/app/ix/Entry.cs +++ b/src/components.elements/app/ix/Entry.cs @@ -23,11 +23,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.festo.drives/app/ix/Entry.cs b/src/components.festo.drives/app/ix/Entry.cs index 6aeade5d9..72214f767 100644 --- a/src/components.festo.drives/app/ix/Entry.cs +++ b/src/components.festo.drives/app/ix/Entry.cs @@ -24,11 +24,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.kuka.robotics/app/ix/Entry.cs b/src/components.kuka.robotics/app/ix/Entry.cs index f8538869b..a32031350 100644 --- a/src/components.kuka.robotics/app/ix/Entry.cs +++ b/src/components.kuka.robotics/app/ix/Entry.cs @@ -25,11 +25,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.mitsubishi.robotics/app/ix/Entry.cs b/src/components.mitsubishi.robotics/app/ix/Entry.cs index c916cd4d9..7011adfcc 100644 --- a/src/components.mitsubishi.robotics/app/ix/Entry.cs +++ b/src/components.mitsubishi.robotics/app/ix/Entry.cs @@ -25,11 +25,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.pneumatics/app/ix/Entry.cs b/src/components.pneumatics/app/ix/Entry.cs index 2cfa706a0..27ba531b0 100644 --- a/src/components.pneumatics/app/ix/Entry.cs +++ b/src/components.pneumatics/app/ix/Entry.cs @@ -24,11 +24,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.rexroth.drives/app/ix/Entry.cs b/src/components.rexroth.drives/app/ix/Entry.cs index 9e40274a0..786ac5813 100644 --- a/src/components.rexroth.drives/app/ix/Entry.cs +++ b/src/components.rexroth.drives/app/ix/Entry.cs @@ -23,11 +23,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.rexroth.press/app/ix/Entry.cs b/src/components.rexroth.press/app/ix/Entry.cs index 7c7f85b54..e3fc71e4e 100644 --- a/src/components.rexroth.press/app/ix/Entry.cs +++ b/src/components.rexroth.press/app/ix/Entry.cs @@ -23,11 +23,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.robotics/app/ix/Entry.cs b/src/components.robotics/app/ix/Entry.cs index ed9d25b47..f6ef94c73 100644 --- a/src/components.robotics/app/ix/Entry.cs +++ b/src/components.robotics/app/ix/Entry.cs @@ -23,11 +23,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.siem.identification/app/ix/Entry.cs b/src/components.siem.identification/app/ix/Entry.cs index ea280872b..d4e7a74b7 100644 --- a/src/components.siem.identification/app/ix/Entry.cs +++ b/src/components.siem.identification/app/ix/Entry.cs @@ -24,11 +24,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.ur.robotics/app/ix/Entry.cs b/src/components.ur.robotics/app/ix/Entry.cs index 9e4d357a5..556c06428 100644 --- a/src/components.ur.robotics/app/ix/Entry.cs +++ b/src/components.ur.robotics/app/ix/Entry.cs @@ -23,11 +23,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/core/app/ix/Entry.cs b/src/core/app/ix/Entry.cs index 705854e74..afe7cdb09 100644 --- a/src/core/app/ix/Entry.cs +++ b/src/core/app/ix/Entry.cs @@ -23,11 +23,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/data/app/AXSharp.config.json b/src/data/app/AXSharp.config.json index 33756cd1f..7962d0519 100644 --- a/src/data/app/AXSharp.config.json +++ b/src/data/app/AXSharp.config.json @@ -1 +1 @@ -{"OutputProjectFolder":"ix","UseBase":false,"NoDependencyUpdate":false,"IgnoreS7Pragmas":false,"SkipDependencyCompilation":true,"TargetPlatfromMoniker":"ax","ProjectFile":"axopen_data_app.csproj"} \ No newline at end of file +{"OutputProjectFolder":"ix","UseBase":false,"NoDependencyUpdate":false,"IgnoreS7Pragmas":false,"SkipDependencyCompilation":false,"TargetPlatfromMoniker":"ax","ProjectFile":"axopen_data_app.csproj"} \ No newline at end of file diff --git a/src/data/app/apax.yml b/src/data/app/apax.yml index a8b762775..950799bed 100644 --- a/src/data/app/apax.yml +++ b/src/data/app/apax.yml @@ -100,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb \ No newline at end of file + apax icb diff --git a/src/data/app/app.sln b/src/data/app/app.sln deleted file mode 100644 index 8b5f5eaf0..000000000 --- a/src/data/app/app.sln +++ /dev/null @@ -1,126 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.5.002.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen.data-app", "ix\axopen.data-app.csproj", "{08AC8391-05C5-440D-87CE-AF042A976F15}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_data_app", "ix\axopen_data_app.csproj", "{BC53689E-AEAF-4ADE-BAC2-00BBE71E31AD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "ix-blazor", "{196DCCF0-D8CA-4387-8D69-CC249630C90A}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "librarytemplate.blazor", "ix-blazor\librarytemplate.blazor\librarytemplate.blazor.csproj", "{E7F2A499-D62A-4C15-A90D-F39FA605B2D8}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".apax", ".apax", "{C1519D32-ACB9-4876-B345-079F76DAA973}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "packages", "packages", "{2959B50D-7F37-473F-A6BF-573E321C43F9}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "@inxton", "@inxton", "{A817FCC7-1B30-4C66-99C0-C163C5539267}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen.timers", "axopen.timers", "{7A9FB96D-C666-45EF-B154-7E0A2E32FCBC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", ".apax\packages\@inxton\axopen.timers\ix\inxton_axopen_timers.csproj", "{7751D8D0-AABB-4BE5-AA71-7210D4245425}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen.core", "axopen.core", "{6F096236-1723-4969-9F18-F14DA18338DC}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".apax", ".apax", "{5CCFDB0F-2B0B-439E-83EB-1B7231B003A1}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "packages", "packages", "{81810ACF-9895-4DDB-B795-7D8ED693E5F8}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "@inxton", "@inxton", "{941DB3AD-637D-43A0-8B48-B7B4AD3D4C03}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen.timers", "axopen.timers", "{F10B6222-3102-462A-AA1C-A64BCD7C61B7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", ".apax\packages\@inxton\axopen.core\.apax\packages\@inxton\axopen.timers\ix\inxton_axopen_timers.csproj", "{DBA3A35F-9E9D-401D-9857-13A57731F8F2}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen.data", "axopen.data", "{589284AD-F34F-4005-8989-F5FB226472FA}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".apax", ".apax", "{4A5B8BD7-BC69-4C63-A1ED-1842AF11F617}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "packages", "packages", "{1C78F7B9-5174-499C-9EB3-C54F4FF92D05}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "@inxton", "@inxton", "{777D86F6-ADEA-4848-81BF-BFF8ADD9E6A6}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen.timers", "axopen.timers", "{9D9AE7DB-3D9A-4A98-8693-C24A702A2CB5}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", ".apax\packages\@inxton\axopen.data\.apax\packages\@inxton\axopen.timers\ix\inxton_axopen_timers.csproj", "{E2601924-C115-4757-9A7B-2B13DDA6B849}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen.core", "axopen.core", "{86FE9B8E-99AE-4C89-B0CA-96F82B477DA9}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".apax", ".apax", "{59035635-EA07-484A-AA42-87EE23D1F679}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "packages", "packages", "{D106F9B7-FF36-49C9-8FB2-AC887A4D42BA}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "@inxton", "@inxton", "{A4E39D9A-D824-477C-A6C0-D74E669FE5FD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "axopen.timers", "axopen.timers", "{DDFE8212-C562-4256-A969-C8D70AA481E9}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", ".apax\packages\@inxton\axopen.data\.apax\packages\@inxton\axopen.core\.apax\packages\@inxton\axopen.timers\ix\inxton_axopen_timers.csproj", "{01AC4531-10AD-4FFB-A281-B1A9A5DDC7A2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {08AC8391-05C5-440D-87CE-AF042A976F15}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {08AC8391-05C5-440D-87CE-AF042A976F15}.Debug|Any CPU.Build.0 = Debug|Any CPU - {08AC8391-05C5-440D-87CE-AF042A976F15}.Release|Any CPU.ActiveCfg = Release|Any CPU - {08AC8391-05C5-440D-87CE-AF042A976F15}.Release|Any CPU.Build.0 = Release|Any CPU - {BC53689E-AEAF-4ADE-BAC2-00BBE71E31AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BC53689E-AEAF-4ADE-BAC2-00BBE71E31AD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BC53689E-AEAF-4ADE-BAC2-00BBE71E31AD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BC53689E-AEAF-4ADE-BAC2-00BBE71E31AD}.Release|Any CPU.Build.0 = Release|Any CPU - {E7F2A499-D62A-4C15-A90D-F39FA605B2D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7F2A499-D62A-4C15-A90D-F39FA605B2D8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7F2A499-D62A-4C15-A90D-F39FA605B2D8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7F2A499-D62A-4C15-A90D-F39FA605B2D8}.Release|Any CPU.Build.0 = Release|Any CPU - {7751D8D0-AABB-4BE5-AA71-7210D4245425}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7751D8D0-AABB-4BE5-AA71-7210D4245425}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7751D8D0-AABB-4BE5-AA71-7210D4245425}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7751D8D0-AABB-4BE5-AA71-7210D4245425}.Release|Any CPU.Build.0 = Release|Any CPU - {DBA3A35F-9E9D-401D-9857-13A57731F8F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DBA3A35F-9E9D-401D-9857-13A57731F8F2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DBA3A35F-9E9D-401D-9857-13A57731F8F2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DBA3A35F-9E9D-401D-9857-13A57731F8F2}.Release|Any CPU.Build.0 = Release|Any CPU - {E2601924-C115-4757-9A7B-2B13DDA6B849}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E2601924-C115-4757-9A7B-2B13DDA6B849}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E2601924-C115-4757-9A7B-2B13DDA6B849}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E2601924-C115-4757-9A7B-2B13DDA6B849}.Release|Any CPU.Build.0 = Release|Any CPU - {01AC4531-10AD-4FFB-A281-B1A9A5DDC7A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {01AC4531-10AD-4FFB-A281-B1A9A5DDC7A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {01AC4531-10AD-4FFB-A281-B1A9A5DDC7A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {01AC4531-10AD-4FFB-A281-B1A9A5DDC7A2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {E7F2A499-D62A-4C15-A90D-F39FA605B2D8} = {196DCCF0-D8CA-4387-8D69-CC249630C90A} - {2959B50D-7F37-473F-A6BF-573E321C43F9} = {C1519D32-ACB9-4876-B345-079F76DAA973} - {A817FCC7-1B30-4C66-99C0-C163C5539267} = {2959B50D-7F37-473F-A6BF-573E321C43F9} - {7A9FB96D-C666-45EF-B154-7E0A2E32FCBC} = {A817FCC7-1B30-4C66-99C0-C163C5539267} - {7751D8D0-AABB-4BE5-AA71-7210D4245425} = {7A9FB96D-C666-45EF-B154-7E0A2E32FCBC} - {6F096236-1723-4969-9F18-F14DA18338DC} = {A817FCC7-1B30-4C66-99C0-C163C5539267} - {5CCFDB0F-2B0B-439E-83EB-1B7231B003A1} = {6F096236-1723-4969-9F18-F14DA18338DC} - {81810ACF-9895-4DDB-B795-7D8ED693E5F8} = {5CCFDB0F-2B0B-439E-83EB-1B7231B003A1} - {941DB3AD-637D-43A0-8B48-B7B4AD3D4C03} = {81810ACF-9895-4DDB-B795-7D8ED693E5F8} - {F10B6222-3102-462A-AA1C-A64BCD7C61B7} = {941DB3AD-637D-43A0-8B48-B7B4AD3D4C03} - {DBA3A35F-9E9D-401D-9857-13A57731F8F2} = {F10B6222-3102-462A-AA1C-A64BCD7C61B7} - {589284AD-F34F-4005-8989-F5FB226472FA} = {A817FCC7-1B30-4C66-99C0-C163C5539267} - {4A5B8BD7-BC69-4C63-A1ED-1842AF11F617} = {589284AD-F34F-4005-8989-F5FB226472FA} - {1C78F7B9-5174-499C-9EB3-C54F4FF92D05} = {4A5B8BD7-BC69-4C63-A1ED-1842AF11F617} - {777D86F6-ADEA-4848-81BF-BFF8ADD9E6A6} = {1C78F7B9-5174-499C-9EB3-C54F4FF92D05} - {9D9AE7DB-3D9A-4A98-8693-C24A702A2CB5} = {777D86F6-ADEA-4848-81BF-BFF8ADD9E6A6} - {E2601924-C115-4757-9A7B-2B13DDA6B849} = {9D9AE7DB-3D9A-4A98-8693-C24A702A2CB5} - {86FE9B8E-99AE-4C89-B0CA-96F82B477DA9} = {777D86F6-ADEA-4848-81BF-BFF8ADD9E6A6} - {59035635-EA07-484A-AA42-87EE23D1F679} = {86FE9B8E-99AE-4C89-B0CA-96F82B477DA9} - {D106F9B7-FF36-49C9-8FB2-AC887A4D42BA} = {59035635-EA07-484A-AA42-87EE23D1F679} - {A4E39D9A-D824-477C-A6C0-D74E669FE5FD} = {D106F9B7-FF36-49C9-8FB2-AC887A4D42BA} - {DDFE8212-C562-4256-A969-C8D70AA481E9} = {A4E39D9A-D824-477C-A6C0-D74E669FE5FD} - {01AC4531-10AD-4FFB-A281-B1A9A5DDC7A2} = {DDFE8212-C562-4256-A969-C8D70AA481E9} - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2837A4E6-1FDF-4016-9A0B-5732059C141E} - EndGlobalSection -EndGlobal diff --git a/src/data/app/ix-blazor/JSONREPOS/Groups/AdminGroup b/src/data/app/ix-blazor/JSONREPOS/Groups/AdminGroup index bde002069..70b6c4946 100644 --- a/src/data/app/ix-blazor/JSONREPOS/Groups/AdminGroup +++ b/src/data/app/ix-blazor/JSONREPOS/Groups/AdminGroup @@ -20,7 +20,7 @@ "can_data_export", "can_data_import" ], - "RolesHash": "AQAAAAIAAYagAAAAEH46VaHanDxoFVjjUWHPBE07jE9N7AJA2se4ivPeRv4J0XSKkfAoPis3F4r9pRfcVw==", + "RolesHash": "AQAAAAIAAYagAAAAEIjL00rO/VCj/CMBNuTZywFT2QB/8iPElKuoBN/sFdph7yhOCWir+FeKe30wuXRSgg==", "Created": "2023-08-09T12:33:03.2736142+02:00", - "Modified": "2025-02-05T16:34:06.8872271+01:00" + "Modified": "2025-02-10T14:42:18.7469142+01:00" } \ No newline at end of file diff --git a/src/data/app/ix/Entry.cs b/src/data/app/ix/Entry.cs index 356593b48..9565ecb32 100644 --- a/src/data/app/ix/Entry.cs +++ b/src/data/app/ix/Entry.cs @@ -22,15 +22,15 @@ public class ConnectionConfig public class TwinConnectorSelector { - public static string TargetIp { get; } = "10.222.6.2";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => + public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); - - private static bool CertificateValidation(HttpRequestMessage requestMessage, X509Certificate2 certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return certificate.Thumbprint == Certificate.Thumbprint; diff --git a/src/inspectors/app/ix/Entry.cs b/src/inspectors/app/ix/Entry.cs index affa8e7f3..4d168305f 100644 --- a/src/inspectors/app/ix/Entry.cs +++ b/src/inspectors/app/ix/Entry.cs @@ -22,11 +22,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/integrations/src/AXOpen.Integrations/Entry.cs b/src/integrations/src/AXOpen.Integrations/Entry.cs index eb106ba93..f70ccd27c 100644 --- a/src/integrations/src/AXOpen.Integrations/Entry.cs +++ b/src/integrations/src/AXOpen.Integrations/Entry.cs @@ -22,11 +22,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\..\\app\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/io/app/ix/Entry.cs b/src/io/app/ix/Entry.cs index 7bf042b4a..07e175d38 100644 --- a/src/io/app/ix/Entry.cs +++ b/src/io/app/ix/Entry.cs @@ -22,11 +22,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/probers/app/ix/Entry.cs b/src/probers/app/ix/Entry.cs index 8f9756b6f..53e0e3243 100644 --- a/src/probers/app/ix/Entry.cs +++ b/src/probers/app/ix/Entry.cs @@ -22,11 +22,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/simatic1500/app/ix/Entry.cs b/src/simatic1500/app/ix/Entry.cs index 8f2ed6ffc..02e8b587b 100644 --- a/src/simatic1500/app/ix/Entry.cs +++ b/src/simatic1500/app/ix/Entry.cs @@ -22,11 +22,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/template.axolibrary/app/ix/Entry.cs b/src/template.axolibrary/app/ix/Entry.cs index 3fe638067..4b0eb9714 100644 --- a/src/template.axolibrary/app/ix/Entry.cs +++ b/src/template.axolibrary/app/ix/Entry.cs @@ -24,11 +24,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/timers/app/ix/Entry.cs b/src/timers/app/ix/Entry.cs index 234d54dd7..b7aa7c6d3 100644 --- a/src/timers/app/ix/Entry.cs +++ b/src/timers/app/ix/Entry.cs @@ -22,11 +22,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/utils/app/ix/Entry.cs b/src/utils/app/ix/Entry.cs index f9b690090..8bf878145 100644 --- a/src/utils/app/ix/Entry.cs +++ b/src/utils/app/ix/Entry.cs @@ -22,11 +22,13 @@ public class ConnectionConfig public class TwinConnectorSelector { + // Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. => public static string TargetIp { get; } = "10.10.10.120";//Environment.GetEnvironmentVariable("AXTARGET"); // <- replace by your IP private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); From 388bb5209f4cd5758fe11424c5517d41dec59636 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 15:32:27 +0100 Subject: [PATCH 10/21] wip --- .gitignore | 2 +- .../app/ix-blazor/JSONREPOS/Groups/AdminGroup | 26 ------------------- src/data/app/ix-blazor/JSONREPOS/Users/ADMIN | 26 ------------------- 3 files changed, 1 insertion(+), 53 deletions(-) delete mode 100644 src/data/app/ix-blazor/JSONREPOS/Groups/AdminGroup delete mode 100644 src/data/app/ix-blazor/JSONREPOS/Users/ADMIN diff --git a/.gitignore b/.gitignore index aa3a80966..411f6eb37 100644 --- a/.gitignore +++ b/.gitignore @@ -432,4 +432,4 @@ dcp_export/ *.apax.tgz #JSONREPOS -JSONREPOS/ +**/JSONREPOS/ diff --git a/src/data/app/ix-blazor/JSONREPOS/Groups/AdminGroup b/src/data/app/ix-blazor/JSONREPOS/Groups/AdminGroup deleted file mode 100644 index 70b6c4946..000000000 --- a/src/data/app/ix-blazor/JSONREPOS/Groups/AdminGroup +++ /dev/null @@ -1,26 +0,0 @@ -{ - "Changes": [], - "RecordId": null, - "DataEntityId": "AdminGroup", - "Name": "AdminGroup", - "Roles": [ - "Administrator", - "process_settings_access", - "process_traceability_access", - "can_run_ground_mode", - "can_run_automat_mode", - "can_run_service_mode", - "can_skip_steps_in_sequence", - "can_data_item_create", - "can_data_item_edit", - "can_data_item_copy", - "can_data_item_delete", - "can_data_send_to_plc", - "can_data_load_from_plc", - "can_data_export", - "can_data_import" - ], - "RolesHash": "AQAAAAIAAYagAAAAEIjL00rO/VCj/CMBNuTZywFT2QB/8iPElKuoBN/sFdph7yhOCWir+FeKe30wuXRSgg==", - "Created": "2023-08-09T12:33:03.2736142+02:00", - "Modified": "2025-02-10T14:42:18.7469142+01:00" -} \ No newline at end of file diff --git a/src/data/app/ix-blazor/JSONREPOS/Users/ADMIN b/src/data/app/ix-blazor/JSONREPOS/Users/ADMIN deleted file mode 100644 index 7daa93651..000000000 --- a/src/data/app/ix-blazor/JSONREPOS/Users/ADMIN +++ /dev/null @@ -1,26 +0,0 @@ -{ - "Group": "AdminGroup", - "GroupHash": "AQAAAAIAAYagAAAAEAyPwUo6UA4vt6R2n4DVx5eY7LI+/5QZ60dRG2NpUtOEq1MmE9a/sCQ5IHoY00K8vw==", - "CanUserChangePassword": false, - "RecordId": null, - "DataEntityId": "ADMIN", - "Created": "2025-02-03T14:30:04.5322977+01:00", - "Modified": "2025-02-03T14:30:04.5323256+01:00", - "EnableAutoLogOut": false, - "AutoLogOutTimeOutMinutes": 0, - "Id": "a9367905-5851-4f6d-8dc2-e7ea43f05962", - "UserName": "admin", - "NormalizedUserName": "ADMIN", - "Email": null, - "NormalizedEmail": null, - "EmailConfirmed": false, - "PasswordHash": "AQAAAAIAAYagAAAAECmDmGWbRLUP9rfGZRFNOqpknD9bwCp3IDYgVRJkRF0Iu/JYCQrS5CpLj4EBuQJZUg==", - "SecurityStamp": "ae50117a-1365-4a83-87cc-7e0c35273f40", - "ConcurrencyStamp": "82735940-c4a4-4808-a646-bb2dc0e5acb5", - "PhoneNumber": null, - "PhoneNumberConfirmed": false, - "TwoFactorEnabled": false, - "LockoutEnd": null, - "LockoutEnabled": false, - "AccessFailedCount": 0 -} \ No newline at end of file From cb62090ae85ba66bdc79709a472af89db1ca84e0 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 15:34:28 +0100 Subject: [PATCH 11/21] cake-more detailed single app run test added --- cake/Program.cs | 484 ++++++++++++++++++++++++------------------------ 1 file changed, 242 insertions(+), 242 deletions(-) diff --git a/cake/Program.cs b/cake/Program.cs index ca3184ebf..0e42e6ac9 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -69,251 +69,251 @@ public static int Main(string[] args) } } -//[TaskName("CleanUp")] -//public sealed class CleanUpTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// context.Log.Information("Build running with following parameters:"); -// context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); - -// if (context.IsGitHubActions) -// { -// context.BuildParameters.CleanUp = true; -// } - -// if (!context.BuildParameters.CleanUp) -// { -// context.Log.Information($"Skipping clean-up"); -// return; -// } - -// Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); - -// context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity}); -// context.CleanDirectory(context.BuildsOutput); -// context.CleanDirectory(context.Artifacts); -// context.CleanDirectory(context.TestResults); -// context.CleanDirectory(context.TestResultsCtrl); -// } -//} - -//[TaskName("Provision")] -//[IsDependentOn(typeof(CleanUpTask))] -//public sealed class ProvisionTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// ProvisionTools(context); - -// foreach (var library in context.Libraries) -// { -// context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); -// } -// } - -// private static void ProvisionTools(BuildContext context) -// { -// context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() -// { -// Arguments = $"tool restore", -// WorkingDirectory = context.RootDir -// }).WaitForExit(); -// } -//} - -//[TaskName("CatalogInstall")] -//[IsDependentOn(typeof(ProvisionTask))] -//public sealed class CatalogInstallTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// context.Libraries.ToList().ForEach(lib => -// { -// foreach (var apaxfile in context.GetApaxFiles(lib)) -// { -// context.ApaxCatalogInstall(apaxfile); -// } -// }); - - -// } -//} - -//[TaskName("Build")] -//[IsDependentOn(typeof(CatalogInstallTask))] -//public sealed class BuildTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// if (context.BuildParameters.DoPack) -// { -// context.Libraries.ToList().ForEach(lib => -// { -// foreach (var apaxfile in context.GetApaxFiles(lib)) -// { -// context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); -// context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); -// } -// }); - -// context.Libraries.ToList().ForEach(lib => -// { -// foreach (var apaxfile in context.GetApaxFiles(lib)) -// { -// context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); -// } -// }); -// } - -// var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); -// if (!context.BuildParameters.NoBuild) -// { -// var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); -// context.CreateApaxTraversal(context.RootDir, traversalProject); -// context.ApaxInstall(new[] { traversalProjectFolder }); -// context.DotnetIxc(new[] { traversalProjectFolder }); -// context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; -// context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() -// { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + -// "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + -// "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" -// }); -// context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); -// } - -// if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) -// { -// context.ApaxBuild(new []{traversalProjectFolder}); -// } -// } -//} - -//[TaskName("Tests")] -//[IsDependentOn(typeof(BuildTask))] -//public sealed class TestsTask : FrostingTask -//{ -// // Tasks can be asynchronous -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// if (!context.BuildParameters.DoTest) -// { -// context.Log.Warning($"Skipping tests"); -// return; -// } - - -// if (context.BuildParameters.Paralellize) -// { -// context.Libraries.ToList().ForEach(lib => -// { -// context.ApaxClean(lib); -// context.ApaxInstall(context.GetLibraryAxFolders(lib)); -// context.ApaxBuild(context.GetLibraryAxFolders(lib)); -// context.ApaxTestLibrary(lib); -// if (context.BuildParameters.DoPack) -// { -// context.ApaxPack(lib); -// context.ApaxCopyArtifacts(lib); -// } -// context.ApaxClean(lib); -// }); - -// } -// else -// { -// context.Libraries.ToList().ForEach(lib => -// { -// context.Log.Information($"---------------------------------"); -// context.Log.Information($"Testing {lib.folder}"); -// context.Log.Information($"---------------------------------"); -// context.ApaxClean(lib); -// context.ApaxInstall(context.GetLibraryAxFolders(lib)); -// context.ApaxBuild(context.GetLibraryAxFolders(lib)); -// context.ApaxTestLibrary(lib); -// if (context.BuildParameters.DoPack) -// { -// context.ApaxPack(lib); -// context.ApaxCopyArtifacts(lib); -// } -// context.ApaxClean(lib); -// }); -// } +[TaskName("CleanUp")] +public sealed class CleanUpTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } - - - -// if (context.BuildParameters.TestLevel == 1) -// { -// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); -// } -// if (context.BuildParameters.TestLevel == 2) -// { - -// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); -// } -// if(context.BuildParameters.TestLevel >= 3) -// { -// foreach (var package in context.Libraries) -// { -// var app = Path.Combine(context.RootDir, package.folder, "app"); -// var ax = Path.Combine(context.RootDir, package.folder, "ax"); - -// if (Directory.Exists(app)) -// { -// context.ApaxDownload(app); -// } -// else if (Directory.Exists(ax)) -// { -// context.ApaxDownload(ax); -// } -// else -// { -// //throw new Exception($"No app or ax folder found for {package.folder}"); -// context.Log.Information($"No app or ax folder found for {package.folder}"); -// break; -// } - -// context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); -// } -// } - -// context.Log.Information("Tests done."); -// } -//} + context.Log.Information("Build running with following parameters:"); + context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); + + if (context.IsGitHubActions) + { + context.BuildParameters.CleanUp = true; + } + + if (!context.BuildParameters.CleanUp) + { + context.Log.Information($"Skipping clean-up"); + return; + } + + Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); + + context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity }); + context.CleanDirectory(context.BuildsOutput); + context.CleanDirectory(context.Artifacts); + context.CleanDirectory(context.TestResults); + context.CleanDirectory(context.TestResultsCtrl); + } +} + +[TaskName("Provision")] +[IsDependentOn(typeof(CleanUpTask))] +public sealed class ProvisionTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + ProvisionTools(context); + + foreach (var library in context.Libraries) + { + context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); + } + } + + private static void ProvisionTools(BuildContext context) + { + context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() + { + Arguments = $"tool restore", + WorkingDirectory = context.RootDir + }).WaitForExit(); + } +} + +[TaskName("CatalogInstall")] +[IsDependentOn(typeof(ProvisionTask))] +public sealed class CatalogInstallTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + context.Libraries.ToList().ForEach(lib => + { + foreach (var apaxfile in context.GetApaxFiles(lib)) + { + context.ApaxCatalogInstall(apaxfile); + } + }); + + + } +} + +[TaskName("Build")] +[IsDependentOn(typeof(CatalogInstallTask))] +public sealed class BuildTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + if (context.BuildParameters.DoPack) + { + context.Libraries.ToList().ForEach(lib => + { + foreach (var apaxfile in context.GetApaxFiles(lib)) + { + context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); + context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); + } + }); + + context.Libraries.ToList().ForEach(lib => + { + foreach (var apaxfile in context.GetApaxFiles(lib)) + { + context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); + } + }); + } + + var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); + if (!context.BuildParameters.NoBuild) + { + var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); + context.CreateApaxTraversal(context.RootDir, traversalProject); + context.ApaxInstall(new[] { traversalProjectFolder }); + context.DotnetIxc(new[] { traversalProjectFolder }); + context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; + context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() + { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + + "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + + "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" + }); + context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); + } + + if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) + { + context.ApaxBuild(new[] { traversalProjectFolder }); + } + } +} + +[TaskName("Tests")] +[IsDependentOn(typeof(BuildTask))] +public sealed class TestsTask : FrostingTask +{ + // Tasks can be asynchronous + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + if (!context.BuildParameters.DoTest) + { + context.Log.Warning($"Skipping tests"); + return; + } + + + if (context.BuildParameters.Paralellize) + { + context.Libraries.ToList().ForEach(lib => + { + context.ApaxClean(lib); + context.ApaxInstall(context.GetLibraryAxFolders(lib)); + context.ApaxBuild(context.GetLibraryAxFolders(lib)); + context.ApaxTestLibrary(lib); + if (context.BuildParameters.DoPack) + { + context.ApaxPack(lib); + context.ApaxCopyArtifacts(lib); + } + context.ApaxClean(lib); + }); + + } + else + { + context.Libraries.ToList().ForEach(lib => + { + context.Log.Information($"---------------------------------"); + context.Log.Information($"Testing {lib.folder}"); + context.Log.Information($"---------------------------------"); + context.ApaxClean(lib); + context.ApaxInstall(context.GetLibraryAxFolders(lib)); + context.ApaxBuild(context.GetLibraryAxFolders(lib)); + context.ApaxTestLibrary(lib); + if (context.BuildParameters.DoPack) + { + context.ApaxPack(lib); + context.ApaxCopyArtifacts(lib); + } + context.ApaxClean(lib); + }); + } + + + + + if (context.BuildParameters.TestLevel == 1) + { + context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); + } + if (context.BuildParameters.TestLevel == 2) + { + + context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); + } + if (context.BuildParameters.TestLevel >= 3) + { + foreach (var package in context.Libraries) + { + var app = Path.Combine(context.RootDir, package.folder, "app"); + var ax = Path.Combine(context.RootDir, package.folder, "ax"); + + if (Directory.Exists(app)) + { + context.ApaxDownload(app); + } + else if (Directory.Exists(ax)) + { + context.ApaxDownload(ax); + } + else + { + //throw new Exception($"No app or ax folder found for {package.folder}"); + context.Log.Information($"No app or ax folder found for {package.folder}"); + break; + } + + context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); + } + } + + context.Log.Information("Tests done."); + } +} [TaskName("AppsRun")] -//[IsDependentOn(typeof(TestsTask))] +[IsDependentOn(typeof(TestsTask))] public sealed class AppsRunTask : FrostingTask { // Tasks can be asynchronous From f0d8e4f832809dcb39fc1cf48aed5747a9b4fd78 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 16:02:08 +0100 Subject: [PATCH 12/21] script typo fixed --- src/abstractions/app/apax.yml | 2 +- src/data/app/ix/Entry.cs | 2 +- src/data/app/ix/axopen_data_app.csproj | 4 +++- src/scripts/sw_build_and_download_full.sh | 1 + 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/abstractions/app/apax.yml b/src/abstractions/app/apax.yml index 91f28e93b..b8925f31a 100644 --- a/src/abstractions/app/apax.yml +++ b/src/abstractions/app/apax.yml @@ -101,4 +101,4 @@ scripts: apax ib cicb: | apax clean - apax icb \ No newline at end of file + apax icb diff --git a/src/data/app/ix/Entry.cs b/src/data/app/ix/Entry.cs index 9565ecb32..aba2b1b8c 100644 --- a/src/data/app/ix/Entry.cs +++ b/src/data/app/ix/Entry.cs @@ -27,7 +27,7 @@ public class TwinConnectorSelector private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/data/app/ix/axopen_data_app.csproj b/src/data/app/ix/axopen_data_app.csproj index 9ff527ae7..7ea525b1f 100644 --- a/src/data/app/ix/axopen_data_app.csproj +++ b/src/data/app/ix/axopen_data_app.csproj @@ -23,7 +23,9 @@ - + + + diff --git a/src/scripts/sw_build_and_download_full.sh b/src/scripts/sw_build_and_download_full.sh index f9470d409..91c089195 100644 --- a/src/scripts/sw_build_and_download_full.sh +++ b/src/scripts/sw_build_and_download_full.sh @@ -39,3 +39,4 @@ else printf "${RED}Downloading of the software using security certificate finished with an error!${NC}\n" printf "${RED}Please check the details above.${NC}\n" exit 1 +fi \ No newline at end of file From 4fd51e428ac9ef8e29a9abca18dbc8a4f81ad9b8 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 17:06:56 +0100 Subject: [PATCH 13/21] relative certification paths modified plus/minus one level up or down to be able to start the app, no hell idea why it differs between the libraries of the same folder structure --- src/abstractions/app/ix/Entry.cs | 2 +- src/components.abstractions/app/ix/Entry.cs | 2 +- src/components.elements/app/ix/Entry.cs | 2 +- src/components.pneumatics/app/ix/Entry.cs | 2 +- src/core/app/ix/Entry.cs | 2 +- src/data/app/ix/Entry.cs | 2 +- src/inspectors/app/ix/Entry.cs | 2 +- src/integrations/src/AXOpen.Integrations/Entry.cs | 2 +- src/probers/app/ix/Entry.cs | 2 +- src/scripts/sw_build_and_download_delta.sh | 1 + 10 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/abstractions/app/ix/Entry.cs b/src/abstractions/app/ix/Entry.cs index 25fc7717a..f87a037bf 100644 --- a/src/abstractions/app/ix/Entry.cs +++ b/src/abstractions/app/ix/Entry.cs @@ -27,7 +27,7 @@ public class TwinConnectorSelector private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; //NFI why, but it works // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.abstractions/app/ix/Entry.cs b/src/components.abstractions/app/ix/Entry.cs index 58400d5ed..418d6a3a0 100644 --- a/src/components.abstractions/app/ix/Entry.cs +++ b/src/components.abstractions/app/ix/Entry.cs @@ -27,7 +27,7 @@ public class TwinConnectorSelector private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; //NFI why, but it works // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.elements/app/ix/Entry.cs b/src/components.elements/app/ix/Entry.cs index 1c4bae6cc..9e6516062 100644 --- a/src/components.elements/app/ix/Entry.cs +++ b/src/components.elements/app/ix/Entry.cs @@ -28,7 +28,7 @@ public class TwinConnectorSelector private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; //NFI why, but it works // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/components.pneumatics/app/ix/Entry.cs b/src/components.pneumatics/app/ix/Entry.cs index 27ba531b0..72df35419 100644 --- a/src/components.pneumatics/app/ix/Entry.cs +++ b/src/components.pneumatics/app/ix/Entry.cs @@ -29,7 +29,7 @@ public class TwinConnectorSelector private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; //NFI why, but it works // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/core/app/ix/Entry.cs b/src/core/app/ix/Entry.cs index afe7cdb09..bace678c4 100644 --- a/src/core/app/ix/Entry.cs +++ b/src/core/app/ix/Entry.cs @@ -28,7 +28,7 @@ public class TwinConnectorSelector private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; //NFI why, but it works // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/data/app/ix/Entry.cs b/src/data/app/ix/Entry.cs index aba2b1b8c..8e6d1599f 100644 --- a/src/data/app/ix/Entry.cs +++ b/src/data/app/ix/Entry.cs @@ -27,7 +27,7 @@ public class TwinConnectorSelector private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; //NFI why, but it works // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/inspectors/app/ix/Entry.cs b/src/inspectors/app/ix/Entry.cs index 4d168305f..5265a6049 100644 --- a/src/inspectors/app/ix/Entry.cs +++ b/src/inspectors/app/ix/Entry.cs @@ -27,7 +27,7 @@ public class TwinConnectorSelector private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; //NFI why, but it works // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/integrations/src/AXOpen.Integrations/Entry.cs b/src/integrations/src/AXOpen.Integrations/Entry.cs index f70ccd27c..e3f4bc2d4 100644 --- a/src/integrations/src/AXOpen.Integrations/Entry.cs +++ b/src/integrations/src/AXOpen.Integrations/Entry.cs @@ -27,7 +27,7 @@ public class TwinConnectorSelector private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; //NFI why, but it works // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/probers/app/ix/Entry.cs b/src/probers/app/ix/Entry.cs index 53e0e3243..262e78cc2 100644 --- a/src/probers/app/ix/Entry.cs +++ b/src/probers/app/ix/Entry.cs @@ -27,7 +27,7 @@ public class TwinConnectorSelector private static string Pass => @"123ABCDabcd$#!"; //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); //Environment.GetEnvironmentVariable("AX_TARGET_PWD"); // <- Pass in the password that you have set up for the user. NOT AS PLAIN TEXT! Use user secrets instead. private static string UserName = "adm"; //Environment.GetEnvironmentVariable("AX_USERNAME"); //<- replace by user name you have set up in your WebAPI settings private const bool IgnoreSslErrors = true; // <- When you have your certificates in order set this to false. - private static string CertificatePath = "..\\certs\\plc_line\\plc_line.cer"; + private static string CertificatePath = "..\\..\\certs\\plc_line\\plc_line.cer"; //NFI why, but it works // <= Do not commit any changes to the following variables. You may modify them locally, but committing the changes will mess up the nightly build. static readonly X509Certificate2 Certificate = new X509Certificate2(CertificatePath); diff --git a/src/scripts/sw_build_and_download_delta.sh b/src/scripts/sw_build_and_download_delta.sh index 2a18331de..611d67f42 100644 --- a/src/scripts/sw_build_and_download_delta.sh +++ b/src/scripts/sw_build_and_download_delta.sh @@ -39,3 +39,4 @@ else printf "${RED}Downloading of the software changes using security certificate finished with an error!${NC}\n" printf "${RED}Please check the details above.${NC}\n" exit 1 +fi \ No newline at end of file From 7a6ed4eb5a9a236dfc34d4af71c08dc5acb98410 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 20:50:02 +0100 Subject: [PATCH 14/21] single app run wokflow, manually triggered for selected folder added --- .github/workflows/single_app_run.yml | 72 ++++++++++++++++++++++++ cake/Properties/launchSettings.json | 4 ++ src/components.abb.robotics/app/apax.yml | 2 +- 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/single_app_run.yml diff --git a/.github/workflows/single_app_run.yml b/.github/workflows/single_app_run.yml new file mode 100644 index 000000000..ae9856986 --- /dev/null +++ b/.github/workflows/single_app_run.yml @@ -0,0 +1,72 @@ +name: nightly + +on: + workflow_dispatch: + inputs: + folder: + description: "Select library folder (abstractions, components.abb.robotics, components.abstractions)" + required: true + default: "template.axolibrary" + type: choice + options: + - abstractions + - components.abb.robotics + - components.abstractions + - components.balluff.identification + - components.cognex.vision + - components.desoutter.tightening + - components.drives + - components.elements + - components.festo.drives + - components.kuka.robotics + - components.mitsubishi.robotics + - components.pneumatics + - components.rexroth.drives + - components.rexroth.press + - components.robotics + - components.siem.identification + - components.ur.robotics + - core + - data + - inspectors + - integrations + - io + - probers + - simatic1500 + - template.axolibrary + - timers + - utils +jobs: + app-run-manual-with-selected-folder: + runs-on: [self-hosted, Windows, X64, L3, AX, APP] + steps: + - name: Get Branch Name + shell: pwsh + run: | + if ($env:GITHUB_REF -like "refs/pull/*") { + $BRANCH_NAME = "${{ github.event.pull_request.head.ref }}" + } else { + $BRANCH_NAME = $env:GITHUB_REF -replace 'refs/heads/', '' + } + Write-Host "Triggered on branch: $BRANCH_NAME" + "BRANCH_NAME=$BRANCH_NAME" | Out-File -FilePath $env:GITHUB_ENV -Append + + - name: Print Inputs + run: | + $APP_FOLDER=${{ github.event.inputs.folder }} + echo "Selected folder: $APP_FOLDER" + "APP_FOLDER=$APP_FOLDER" | Out-File -FilePath $env:GITHUB_ENV -Append + + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: '0' + + - name: "Build cake" + run: dotnet build cake/Build.csproj + + - name: "Run cake with single app" + env: + GH_TOKEN : ${{ secrets.GH_TOKEN }} + GH_USER : ${{ secrets.GH_USER }} + run: dotnet run --project cake/Build.csproj --skip-build --apps-run --single-app-run-folder-name $env:APP_FOLDER diff --git a/cake/Properties/launchSettings.json b/cake/Properties/launchSettings.json index 0e44f110e..1d9c4f83c 100644 --- a/cake/Properties/launchSettings.json +++ b/cake/Properties/launchSettings.json @@ -40,6 +40,10 @@ "commandName": "Project", "commandLineArgs": "--skip-build --apps-run --single-app-run-folder-name data" }, + "abb_app_run_only": { + "commandName": "Project", + "commandLineArgs": "--skip-build --apps-run --single-app-run-folder-name components.abb.robotics" + }, "test-L3-apps_run": { "commandName": "Project", "commandLineArgs": "--do-test --test-level 10 --apps-run" diff --git a/src/components.abb.robotics/app/apax.yml b/src/components.abb.robotics/app/apax.yml index 8f87f4c72..b9b3aec6a 100644 --- a/src/components.abb.robotics/app/apax.yml +++ b/src/components.abb.robotics/app/apax.yml @@ -100,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb \ No newline at end of file + apax icb From 6658ad833d171648e40de11498a68874931fee66 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 21:36:20 +0100 Subject: [PATCH 15/21] moved all app run test folder one level up --- cake/BuildContext.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cake/BuildContext.cs b/cake/BuildContext.cs index 846bd50fa..b3adf8b41 100644 --- a/cake/BuildContext.cs +++ b/cake/BuildContext.cs @@ -114,13 +114,13 @@ public void UpdateApaxDependencies(string file, string version) public string TestResults => Path.Combine(Environment.WorkingDirectory.FullPath, "..//TestResults//"); public string TestResultsCtrl => Path.Combine(Environment.WorkingDirectory.FullPath, "..//TestResultsCtrl//"); - public string AppTestResultsDir => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//app_test_results//")); - public string SourceDirPlcSim => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//source//plcsim//")); + public string AppTestResultsDir => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//app_test_results//")); + public string SourceDirPlcSim => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//source//plcsim//")); public string PlcSimVirtualMemoryCardLocation => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//plcsim//")); public string PlcName => "plc_line"; public string PlcIpAddress => "10.10.10.120"; - public string SourceDirSecurityFiles => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//source//")); + public string SourceDirSecurityFiles => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//source//")); public BuildContext(ICakeContext context, BuildParameters buildParameters) : base(context) { From bd98c26f744c6459d36c81148394fea6b3109566 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 22:08:00 +0100 Subject: [PATCH 16/21] wip --- cake/BuildContext.cs | 8 +- cake/Program.cs | 486 +++++++++++++++++++++---------------------- 2 files changed, 247 insertions(+), 247 deletions(-) diff --git a/cake/BuildContext.cs b/cake/BuildContext.cs index b3adf8b41..a625453a2 100644 --- a/cake/BuildContext.cs +++ b/cake/BuildContext.cs @@ -114,13 +114,13 @@ public void UpdateApaxDependencies(string file, string version) public string TestResults => Path.Combine(Environment.WorkingDirectory.FullPath, "..//TestResults//"); public string TestResultsCtrl => Path.Combine(Environment.WorkingDirectory.FullPath, "..//TestResultsCtrl//"); - public string AppTestResultsDir => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//app_test_results//")); - public string SourceDirPlcSim => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//source//plcsim//")); - public string PlcSimVirtualMemoryCardLocation => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//plcsim//")); + public string AppTestResultsDir => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//..//..//AppRunTest//app_test_results//")); + public string SourceDirPlcSim => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//..//..//AppRunTest//source//plcsim//")); + public string PlcSimVirtualMemoryCardLocation => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//..//..//AppRunTest//plcsim//")); public string PlcName => "plc_line"; public string PlcIpAddress => "10.10.10.120"; - public string SourceDirSecurityFiles => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//source//")); + public string SourceDirSecurityFiles => Path.GetFullPath(Path.Combine(Environment.WorkingDirectory.FullPath, "..//..//..//..//..//AppRunTest//source//")); public BuildContext(ICakeContext context, BuildParameters buildParameters) : base(context) { diff --git a/cake/Program.cs b/cake/Program.cs index 0e42e6ac9..03dea950b 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -69,251 +69,251 @@ public static int Main(string[] args) } } -[TaskName("CleanUp")] -public sealed class CleanUpTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - context.Log.Information("Build running with following parameters:"); - context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); - - if (context.IsGitHubActions) - { - context.BuildParameters.CleanUp = true; - } - - if (!context.BuildParameters.CleanUp) - { - context.Log.Information($"Skipping clean-up"); - return; - } - - Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); - - context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity }); - context.CleanDirectory(context.BuildsOutput); - context.CleanDirectory(context.Artifacts); - context.CleanDirectory(context.TestResults); - context.CleanDirectory(context.TestResultsCtrl); - } -} - -[TaskName("Provision")] -[IsDependentOn(typeof(CleanUpTask))] -public sealed class ProvisionTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - ProvisionTools(context); - - foreach (var library in context.Libraries) - { - context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); - } - } - - private static void ProvisionTools(BuildContext context) - { - context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() - { - Arguments = $"tool restore", - WorkingDirectory = context.RootDir - }).WaitForExit(); - } -} - -[TaskName("CatalogInstall")] -[IsDependentOn(typeof(ProvisionTask))] -public sealed class CatalogInstallTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - context.Libraries.ToList().ForEach(lib => - { - foreach (var apaxfile in context.GetApaxFiles(lib)) - { - context.ApaxCatalogInstall(apaxfile); - } - }); - - - } -} - -[TaskName("Build")] -[IsDependentOn(typeof(CatalogInstallTask))] -public sealed class BuildTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - if (context.BuildParameters.DoPack) - { - context.Libraries.ToList().ForEach(lib => - { - foreach (var apaxfile in context.GetApaxFiles(lib)) - { - context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); - context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); - } - }); - - context.Libraries.ToList().ForEach(lib => - { - foreach (var apaxfile in context.GetApaxFiles(lib)) - { - context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); - } - }); - } - - var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); - if (!context.BuildParameters.NoBuild) - { - var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); - context.CreateApaxTraversal(context.RootDir, traversalProject); - context.ApaxInstall(new[] { traversalProjectFolder }); - context.DotnetIxc(new[] { traversalProjectFolder }); - context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; - context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() - { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + - "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + - "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" - }); - context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); - } - - if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) - { - context.ApaxBuild(new[] { traversalProjectFolder }); - } - } -} - -[TaskName("Tests")] -[IsDependentOn(typeof(BuildTask))] -public sealed class TestsTask : FrostingTask -{ - // Tasks can be asynchronous - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - if (!context.BuildParameters.DoTest) - { - context.Log.Warning($"Skipping tests"); - return; - } - - - if (context.BuildParameters.Paralellize) - { - context.Libraries.ToList().ForEach(lib => - { - context.ApaxClean(lib); - context.ApaxInstall(context.GetLibraryAxFolders(lib)); - context.ApaxBuild(context.GetLibraryAxFolders(lib)); - context.ApaxTestLibrary(lib); - if (context.BuildParameters.DoPack) - { - context.ApaxPack(lib); - context.ApaxCopyArtifacts(lib); - } - context.ApaxClean(lib); - }); - - } - else - { - context.Libraries.ToList().ForEach(lib => - { - context.Log.Information($"---------------------------------"); - context.Log.Information($"Testing {lib.folder}"); - context.Log.Information($"---------------------------------"); - context.ApaxClean(lib); - context.ApaxInstall(context.GetLibraryAxFolders(lib)); - context.ApaxBuild(context.GetLibraryAxFolders(lib)); - context.ApaxTestLibrary(lib); - if (context.BuildParameters.DoPack) - { - context.ApaxPack(lib); - context.ApaxCopyArtifacts(lib); - } - context.ApaxClean(lib); - }); - } - - - - - if (context.BuildParameters.TestLevel == 1) - { - context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); - } - if (context.BuildParameters.TestLevel == 2) - { - - context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); - } - if (context.BuildParameters.TestLevel >= 3) - { - foreach (var package in context.Libraries) - { - var app = Path.Combine(context.RootDir, package.folder, "app"); - var ax = Path.Combine(context.RootDir, package.folder, "ax"); - - if (Directory.Exists(app)) - { - context.ApaxDownload(app); - } - else if (Directory.Exists(ax)) - { - context.ApaxDownload(ax); - } - else - { - //throw new Exception($"No app or ax folder found for {package.folder}"); - context.Log.Information($"No app or ax folder found for {package.folder}"); - break; - } - - context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); - } - } - - context.Log.Information("Tests done."); - } -} +//[TaskName("CleanUp")] +//public sealed class CleanUpTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// context.Log.Information("Build running with following parameters:"); +// context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); + +// if (context.IsGitHubActions) +// { +// context.BuildParameters.CleanUp = true; +// } + +// if (!context.BuildParameters.CleanUp) +// { +// context.Log.Information($"Skipping clean-up"); +// return; +// } + +// Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); + +// context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity }); +// context.CleanDirectory(context.BuildsOutput); +// context.CleanDirectory(context.Artifacts); +// context.CleanDirectory(context.TestResults); +// context.CleanDirectory(context.TestResultsCtrl); +// } +//} + +//[TaskName("Provision")] +//[IsDependentOn(typeof(CleanUpTask))] +//public sealed class ProvisionTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// ProvisionTools(context); + +// foreach (var library in context.Libraries) +// { +// context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); +// } +// } + +// private static void ProvisionTools(BuildContext context) +// { +// context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() +// { +// Arguments = $"tool restore", +// WorkingDirectory = context.RootDir +// }).WaitForExit(); +// } +//} + +//[TaskName("CatalogInstall")] +//[IsDependentOn(typeof(ProvisionTask))] +//public sealed class CatalogInstallTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// context.Libraries.ToList().ForEach(lib => +// { +// foreach (var apaxfile in context.GetApaxFiles(lib)) +// { +// context.ApaxCatalogInstall(apaxfile); +// } +// }); + + +// } +//} + +//[TaskName("Build")] +//[IsDependentOn(typeof(CatalogInstallTask))] +//public sealed class BuildTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// if (context.BuildParameters.DoPack) +// { +// context.Libraries.ToList().ForEach(lib => +// { +// foreach (var apaxfile in context.GetApaxFiles(lib)) +// { +// context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); +// context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); +// } +// }); + +// context.Libraries.ToList().ForEach(lib => +// { +// foreach (var apaxfile in context.GetApaxFiles(lib)) +// { +// context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); +// } +// }); +// } + +// var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); +// if (!context.BuildParameters.NoBuild) +// { +// var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); +// context.CreateApaxTraversal(context.RootDir, traversalProject); +// context.ApaxInstall(new[] { traversalProjectFolder }); +// context.DotnetIxc(new[] { traversalProjectFolder }); +// context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; +// context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() +// { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + +// "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + +// "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" +// }); +// context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); +// } + +// if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) +// { +// context.ApaxBuild(new[] { traversalProjectFolder }); +// } +// } +//} + +//[TaskName("Tests")] +//[IsDependentOn(typeof(BuildTask))] +//public sealed class TestsTask : FrostingTask +//{ +// // Tasks can be asynchronous +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// if (!context.BuildParameters.DoTest) +// { +// context.Log.Warning($"Skipping tests"); +// return; +// } + + +// if (context.BuildParameters.Paralellize) +// { +// context.Libraries.ToList().ForEach(lib => +// { +// context.ApaxClean(lib); +// context.ApaxInstall(context.GetLibraryAxFolders(lib)); +// context.ApaxBuild(context.GetLibraryAxFolders(lib)); +// context.ApaxTestLibrary(lib); +// if (context.BuildParameters.DoPack) +// { +// context.ApaxPack(lib); +// context.ApaxCopyArtifacts(lib); +// } +// context.ApaxClean(lib); +// }); + +// } +// else +// { +// context.Libraries.ToList().ForEach(lib => +// { +// context.Log.Information($"---------------------------------"); +// context.Log.Information($"Testing {lib.folder}"); +// context.Log.Information($"---------------------------------"); +// context.ApaxClean(lib); +// context.ApaxInstall(context.GetLibraryAxFolders(lib)); +// context.ApaxBuild(context.GetLibraryAxFolders(lib)); +// context.ApaxTestLibrary(lib); +// if (context.BuildParameters.DoPack) +// { +// context.ApaxPack(lib); +// context.ApaxCopyArtifacts(lib); +// } +// context.ApaxClean(lib); +// }); +// } + + + + +// if (context.BuildParameters.TestLevel == 1) +// { +// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); +// } +// if (context.BuildParameters.TestLevel == 2) +// { + +// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); +// } +// if (context.BuildParameters.TestLevel >= 3) +// { +// foreach (var package in context.Libraries) +// { +// var app = Path.Combine(context.RootDir, package.folder, "app"); +// var ax = Path.Combine(context.RootDir, package.folder, "ax"); + +// if (Directory.Exists(app)) +// { +// context.ApaxDownload(app); +// } +// else if (Directory.Exists(ax)) +// { +// context.ApaxDownload(ax); +// } +// else +// { +// //throw new Exception($"No app or ax folder found for {package.folder}"); +// context.Log.Information($"No app or ax folder found for {package.folder}"); +// break; +// } + +// context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); +// } +// } + +// context.Log.Information("Tests done."); +// } +//} [TaskName("AppsRun")] -[IsDependentOn(typeof(TestsTask))] +//[IsDependentOn(typeof(TestsTask))] public sealed class AppsRunTask : FrostingTask { // Tasks can be asynchronous From b048d58ef25f1077db6ee2d67a09a6c3171cdc4f Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 22:23:24 +0100 Subject: [PATCH 17/21] forgoten commit --- cake/Program.cs | 486 +++++++++++++-------------- src/template.axolibrary/app/apax.yml | 2 +- 2 files changed, 244 insertions(+), 244 deletions(-) diff --git a/cake/Program.cs b/cake/Program.cs index 03dea950b..0e42e6ac9 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -69,251 +69,251 @@ public static int Main(string[] args) } } -//[TaskName("CleanUp")] -//public sealed class CleanUpTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// context.Log.Information("Build running with following parameters:"); -// context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); - -// if (context.IsGitHubActions) -// { -// context.BuildParameters.CleanUp = true; -// } - -// if (!context.BuildParameters.CleanUp) -// { -// context.Log.Information($"Skipping clean-up"); -// return; -// } - -// Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); - -// context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity }); -// context.CleanDirectory(context.BuildsOutput); -// context.CleanDirectory(context.Artifacts); -// context.CleanDirectory(context.TestResults); -// context.CleanDirectory(context.TestResultsCtrl); -// } -//} - -//[TaskName("Provision")] -//[IsDependentOn(typeof(CleanUpTask))] -//public sealed class ProvisionTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// ProvisionTools(context); - -// foreach (var library in context.Libraries) -// { -// context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); -// } -// } - -// private static void ProvisionTools(BuildContext context) -// { -// context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() -// { -// Arguments = $"tool restore", -// WorkingDirectory = context.RootDir -// }).WaitForExit(); -// } -//} - -//[TaskName("CatalogInstall")] -//[IsDependentOn(typeof(ProvisionTask))] -//public sealed class CatalogInstallTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// context.Libraries.ToList().ForEach(lib => -// { -// foreach (var apaxfile in context.GetApaxFiles(lib)) -// { -// context.ApaxCatalogInstall(apaxfile); -// } -// }); - - -// } -//} - -//[TaskName("Build")] -//[IsDependentOn(typeof(CatalogInstallTask))] -//public sealed class BuildTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// if (context.BuildParameters.DoPack) -// { -// context.Libraries.ToList().ForEach(lib => -// { -// foreach (var apaxfile in context.GetApaxFiles(lib)) -// { -// context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); -// context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); -// } -// }); - -// context.Libraries.ToList().ForEach(lib => -// { -// foreach (var apaxfile in context.GetApaxFiles(lib)) -// { -// context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); -// } -// }); -// } - -// var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); -// if (!context.BuildParameters.NoBuild) -// { -// var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); -// context.CreateApaxTraversal(context.RootDir, traversalProject); -// context.ApaxInstall(new[] { traversalProjectFolder }); -// context.DotnetIxc(new[] { traversalProjectFolder }); -// context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; -// context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() -// { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + -// "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + -// "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" -// }); -// context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); -// } - -// if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) -// { -// context.ApaxBuild(new[] { traversalProjectFolder }); -// } -// } -//} - -//[TaskName("Tests")] -//[IsDependentOn(typeof(BuildTask))] -//public sealed class TestsTask : FrostingTask -//{ -// // Tasks can be asynchronous -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// if (!context.BuildParameters.DoTest) -// { -// context.Log.Warning($"Skipping tests"); -// return; -// } - - -// if (context.BuildParameters.Paralellize) -// { -// context.Libraries.ToList().ForEach(lib => -// { -// context.ApaxClean(lib); -// context.ApaxInstall(context.GetLibraryAxFolders(lib)); -// context.ApaxBuild(context.GetLibraryAxFolders(lib)); -// context.ApaxTestLibrary(lib); -// if (context.BuildParameters.DoPack) -// { -// context.ApaxPack(lib); -// context.ApaxCopyArtifacts(lib); -// } -// context.ApaxClean(lib); -// }); - -// } -// else -// { -// context.Libraries.ToList().ForEach(lib => -// { -// context.Log.Information($"---------------------------------"); -// context.Log.Information($"Testing {lib.folder}"); -// context.Log.Information($"---------------------------------"); -// context.ApaxClean(lib); -// context.ApaxInstall(context.GetLibraryAxFolders(lib)); -// context.ApaxBuild(context.GetLibraryAxFolders(lib)); -// context.ApaxTestLibrary(lib); -// if (context.BuildParameters.DoPack) -// { -// context.ApaxPack(lib); -// context.ApaxCopyArtifacts(lib); -// } -// context.ApaxClean(lib); -// }); -// } - - - - -// if (context.BuildParameters.TestLevel == 1) -// { -// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); -// } -// if (context.BuildParameters.TestLevel == 2) -// { - -// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); -// } -// if (context.BuildParameters.TestLevel >= 3) -// { -// foreach (var package in context.Libraries) -// { -// var app = Path.Combine(context.RootDir, package.folder, "app"); -// var ax = Path.Combine(context.RootDir, package.folder, "ax"); - -// if (Directory.Exists(app)) -// { -// context.ApaxDownload(app); -// } -// else if (Directory.Exists(ax)) -// { -// context.ApaxDownload(ax); -// } -// else -// { -// //throw new Exception($"No app or ax folder found for {package.folder}"); -// context.Log.Information($"No app or ax folder found for {package.folder}"); -// break; -// } - -// context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); -// } -// } - -// context.Log.Information("Tests done."); -// } -//} +[TaskName("CleanUp")] +public sealed class CleanUpTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + context.Log.Information("Build running with following parameters:"); + context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); + + if (context.IsGitHubActions) + { + context.BuildParameters.CleanUp = true; + } + + if (!context.BuildParameters.CleanUp) + { + context.Log.Information($"Skipping clean-up"); + return; + } + + Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); + + context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity }); + context.CleanDirectory(context.BuildsOutput); + context.CleanDirectory(context.Artifacts); + context.CleanDirectory(context.TestResults); + context.CleanDirectory(context.TestResultsCtrl); + } +} + +[TaskName("Provision")] +[IsDependentOn(typeof(CleanUpTask))] +public sealed class ProvisionTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + ProvisionTools(context); + + foreach (var library in context.Libraries) + { + context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); + } + } + + private static void ProvisionTools(BuildContext context) + { + context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() + { + Arguments = $"tool restore", + WorkingDirectory = context.RootDir + }).WaitForExit(); + } +} + +[TaskName("CatalogInstall")] +[IsDependentOn(typeof(ProvisionTask))] +public sealed class CatalogInstallTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + context.Libraries.ToList().ForEach(lib => + { + foreach (var apaxfile in context.GetApaxFiles(lib)) + { + context.ApaxCatalogInstall(apaxfile); + } + }); + + + } +} + +[TaskName("Build")] +[IsDependentOn(typeof(CatalogInstallTask))] +public sealed class BuildTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + if (context.BuildParameters.DoPack) + { + context.Libraries.ToList().ForEach(lib => + { + foreach (var apaxfile in context.GetApaxFiles(lib)) + { + context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); + context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); + } + }); + + context.Libraries.ToList().ForEach(lib => + { + foreach (var apaxfile in context.GetApaxFiles(lib)) + { + context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); + } + }); + } + + var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); + if (!context.BuildParameters.NoBuild) + { + var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); + context.CreateApaxTraversal(context.RootDir, traversalProject); + context.ApaxInstall(new[] { traversalProjectFolder }); + context.DotnetIxc(new[] { traversalProjectFolder }); + context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; + context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() + { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + + "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + + "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" + }); + context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); + } + + if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) + { + context.ApaxBuild(new[] { traversalProjectFolder }); + } + } +} + +[TaskName("Tests")] +[IsDependentOn(typeof(BuildTask))] +public sealed class TestsTask : FrostingTask +{ + // Tasks can be asynchronous + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + if (!context.BuildParameters.DoTest) + { + context.Log.Warning($"Skipping tests"); + return; + } + + + if (context.BuildParameters.Paralellize) + { + context.Libraries.ToList().ForEach(lib => + { + context.ApaxClean(lib); + context.ApaxInstall(context.GetLibraryAxFolders(lib)); + context.ApaxBuild(context.GetLibraryAxFolders(lib)); + context.ApaxTestLibrary(lib); + if (context.BuildParameters.DoPack) + { + context.ApaxPack(lib); + context.ApaxCopyArtifacts(lib); + } + context.ApaxClean(lib); + }); + + } + else + { + context.Libraries.ToList().ForEach(lib => + { + context.Log.Information($"---------------------------------"); + context.Log.Information($"Testing {lib.folder}"); + context.Log.Information($"---------------------------------"); + context.ApaxClean(lib); + context.ApaxInstall(context.GetLibraryAxFolders(lib)); + context.ApaxBuild(context.GetLibraryAxFolders(lib)); + context.ApaxTestLibrary(lib); + if (context.BuildParameters.DoPack) + { + context.ApaxPack(lib); + context.ApaxCopyArtifacts(lib); + } + context.ApaxClean(lib); + }); + } + + + + + if (context.BuildParameters.TestLevel == 1) + { + context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); + } + if (context.BuildParameters.TestLevel == 2) + { + + context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); + } + if (context.BuildParameters.TestLevel >= 3) + { + foreach (var package in context.Libraries) + { + var app = Path.Combine(context.RootDir, package.folder, "app"); + var ax = Path.Combine(context.RootDir, package.folder, "ax"); + + if (Directory.Exists(app)) + { + context.ApaxDownload(app); + } + else if (Directory.Exists(ax)) + { + context.ApaxDownload(ax); + } + else + { + //throw new Exception($"No app or ax folder found for {package.folder}"); + context.Log.Information($"No app or ax folder found for {package.folder}"); + break; + } + + context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); + } + } + + context.Log.Information("Tests done."); + } +} [TaskName("AppsRun")] -//[IsDependentOn(typeof(TestsTask))] +[IsDependentOn(typeof(TestsTask))] public sealed class AppsRunTask : FrostingTask { // Tasks can be asynchronous diff --git a/src/template.axolibrary/app/apax.yml b/src/template.axolibrary/app/apax.yml index 5b0d40020..9a3326943 100644 --- a/src/template.axolibrary/app/apax.yml +++ b/src/template.axolibrary/app/apax.yml @@ -100,4 +100,4 @@ scripts: apax ib cicb: | apax clean - apax icb \ No newline at end of file + apax icb From ac08fc06700e18440df5141830c1e02dfbab014b Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 22:40:58 +0100 Subject: [PATCH 18/21] wip --- .../app/ix/app_appconnectorname.csproj | 1 + .../template.axolibrary.sln | 444 +++++++++--------- src/template.axolibrary/this.sln | 444 +++++++++--------- 3 files changed, 445 insertions(+), 444 deletions(-) diff --git a/src/template.axolibrary/app/ix/app_appconnectorname.csproj b/src/template.axolibrary/app/ix/app_appconnectorname.csproj index a47fb77e8..4386ab8c0 100644 --- a/src/template.axolibrary/app/ix/app_appconnectorname.csproj +++ b/src/template.axolibrary/app/ix/app_appconnectorname.csproj @@ -23,6 +23,7 @@ + diff --git a/src/template.axolibrary/template.axolibrary.sln b/src/template.axolibrary/template.axolibrary.sln index 4bfe6c4f3..81366f871 100644 --- a/src/template.axolibrary/template.axolibrary.sln +++ b/src/template.axolibrary/template.axolibrary.sln @@ -1,145 +1,145 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "this", "this.proj", "{902E7017-5FD7-4465-B6D9-79A6E672F311}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "this", "this.proj", "{67CD4038-2DA0-46CD-A8C1-502357F5F752}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{7E46AADE-6A69-4826-BF11-3D49C1C2CCB2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{C6856CD1-4C41-49A9-85EC-F1E0A7B104A8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{D38F7F87-F76E-440E-9538-EEAF0A10E467}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{0F839D6A-5E0E-42A2-90C6-E0A292248330}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{D293D41E-3222-4B4D-A28C-22A829F96EB7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{C2AA5414-2506-44E4-BB62-52CC1A17C249}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{12F3D3F4-6D77-43D7-A53F-DD696202B8F4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{2C7A664D-DF00-4034-8F31-02797D8266BB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{B6C481DE-422F-48AB-B913-B03CBA58AFC9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\core\src\AXOpen.Core.Blazor\axopen_core_blazor.csproj", "{2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\core\src\AXOpen.Core.Blazor\axopen_core_blazor.csproj", "{41261E01-E9EB-4861-94B8-B1397C36D4C1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{69E40960-DEDC-4F1D-ACB7-36D73AEF3E42}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{EC61E583-37A6-40FD-BEA4-630965D8A0F7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{D0C025F8-9C82-43D6-88BA-E34DD3EF3A50}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{8D677D97-D672-4A74-9113-35D63F1AC836}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{84529EA3-ACB5-42CB-A341-EC0F1B2AAD18}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{F858691C-2EA0-42E1-AA6C-C2B581B28C31}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{3F324A20-466E-42C4-98E1-676BBE49BDF5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{2E16D5AE-1D16-4C1F-AE03-CACBF424F01E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{749FAF9E-E8D2-43D6-962E-DE29DD229952}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{2AD7F8D6-0DDF-4D53-B5BF-EB084D483940}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{8C6B9021-83E8-4E25-A4AC-1529F3D0FD51}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{BFF1094C-D6B9-4630-B1CE-EE731F8AA40D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname.blazorapp", "app\ix-blazor\projname.blazorapp.csproj", "{BF593BBC-6257-4CE3-934A-B04A10C8785D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname.blazorapp", "app\ix-blazor\projname.blazorapp.csproj", "{4E37D22B-48DC-40EE-BD59-91D209C33B17}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_appconnectorname", "app\ix\app_appconnectorname.csproj", "{67839D77-E5A0-408D-8E9C-783E016A9AF2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_appconnectorname", "app\ix\app_appconnectorname.csproj", "{DDAB6F44-79E0-46EA-AC71-A184487BA3A6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname.blazor", "src\projname.blazor\projname.blazor.csproj", "{05837168-77F7-4181-88FE-1C00D9AC04DB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname.blazor", "src\projname.blazor\projname.blazor.csproj", "{2F6DD73B-E93C-4508-868C-5EDA63F7EF9B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_apaxlibname", "src\projname\inxton_apaxlibname.csproj", "{C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_apaxlibname", "src\projname\inxton_apaxlibname.csproj", "{F2191F02-CF27-4C7E-B935-67E80CECD82D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axolib", "src\projname\inxton_axolib.csproj", "{9BCC2EA2-9596-450D-874A-F89A4FDE19D9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axolib", "src\projname\inxton_axolib.csproj", "{D39A1160-FA35-41E8-BF16-059E40AC585D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname_tests", "tests\projname.Tests\projname_tests.csproj", "{91C3A799-619E-4CD6-B8D6-4662A4E46764}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname_tests", "tests\projname.Tests\projname_tests.csproj", "{6E0AA6DA-327E-41C3-A15A-56BCF0A74717}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{25DB2B9E-936A-4CDF-AF86-49D295655E55}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{BC9625E4-1657-4451-9E06-01051DF8A114}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox\AXOpen.ToolBox.csproj", "{80F6983B-9996-429A-A5D1-7A80E70FAAC6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox\AXOpen.ToolBox.csproj", "{5DDD6ADE-F298-447C-835F-28069EE0EC58}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "..\abstractions\src\AXOpen.Abstractions", "{592D668C-BE54-4809-94E1-B9EC47079748}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "..\abstractions\src\AXOpen.Abstractions", "{DDFFD700-706D-4A95-B823-2174F01E4D4F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\abstractions\src", "{8747A0CF-13AE-4AB8-897A-31485EC344BB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\abstractions\src", "{8A20153A-B655-4960-8C58-BC182D10188E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstractions", "{37254B3E-14EC-4772-A4D8-D3491483C6CD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstractions", "{90049871-98EA-4650-8EE1-13BF2D56FBA6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{4152A2B1-E864-4967-9A73-8F6DC35A0D22}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{E1DEC794-7BC8-4A29-AF55-99D1C5426329}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{4B355348-C300-40AD-8A94-3AD08E568A18}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{99AFF3B5-4BD7-40E1-91A3-3C9FDF35B8FC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{D7BF74A6-4D99-42BE-A873-DAA7D69483F5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{35B97612-8E86-4640-9F1B-EAF82B845167}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{6200D173-599C-4BB7-8FA8-D116FD28EAC8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{0B67534D-C3C8-4B57-B380-BFEDB8AB8130}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "..\base", "{8D880A21-6B15-4C31-A15C-6A1ED0705F5D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "..\base", "{AF58FD16-A074-4B12-891F-FAEB3B9A9A60}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions", "{BF0849BF-A5CD-4D6E-AB96-3268CDDD3983}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions", "{0E6AC2AA-1F7B-4CCA-AEF2-C09652C0692A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstractions\src", "{4D6EE05D-3858-4AFC-BF31-696B62B7CB2D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstractions\src", "{53C1B9CC-F3F7-4CB5-80FD-6B4564B5CB50}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{EFE85F6C-A38D-43AD-826B-5B1972448C01}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{8A273C6A-61D3-4430-9B74-3D483179CFEF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "..\core\src\AXOpen.Core.Blazor", "{966D30DC-22FF-4B68-9B6C-A75880491E9A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "..\core\src\AXOpen.Core.Blazor", "{D57D73B0-36D1-4AB4-80DA-90C61FFA66BA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "..\core\src\AXOpen.Core", "{2CB8D4A8-F2AC-4864-B192-9CDEE9104C2B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "..\core\src\AXOpen.Core", "{B6FCE309-610F-41ED-A8BE-5403AA0EC84A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{B1D0CA39-E22A-4151-852B-B5B3D1F72D84}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{8293B20A-048E-4A19-BEDC-BC0179F1E768}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{FCFF2077-608A-4A91-B8C6-C8F96A03DA03}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{1A125802-0609-41F7-94CB-CF930CA99A15}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{242736CA-B2D1-4BC9-8F8D-2BA219B69041}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{5BBF3E7B-2C26-4B3D-A927-EF975139FB98}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{72610BEC-C13E-486F-A8F4-4B5353D02F5C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{16C6E0CF-C8FD-480D-BD02-2EBD82A90CA8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{E0BC61EE-C644-435A-B0EB-A2E82F311EBA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{BFF70E7E-614B-4AA8-A59E-8DADED37C81B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{6DF5C549-3338-4E81-8CEA-D2309675C071}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{9A9F0C73-67BC-4926-877A-953C42A0351D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{6CB60315-E8FC-4148-8941-66BB0F6FD055}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{1283E98C-BFF3-4BEE-AB9D-4FE2FDC59948}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{6BB59B3F-5A68-4D48-B467-9C17ADAB0BA7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{6BFCE625-857C-4B40-9B99-8084969B5935}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\io\src", "{010104A6-93C7-45DD-BBEC-32DCB2EFFEFD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\io\src", "{20A5409B-D58C-4887-935B-AFA4E80C708F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "..\io", "{29D84282-1D41-451C-891D-D556A77B4E3D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "..\io", "{BE480528-89F8-41D2-B9B8-8E3220BDC43B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\sdk-ax\ctrl\ix", "{4A7656B3-1522-453F-BC2C-3CB06B4F1EA6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\sdk-ax\ctrl\ix", "{93471548-566E-46C7-A2E7-BB78081C84CD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{CAE109E0-AF84-4576-90A2-0774921246E1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{F1906525-5660-4376-BD90-D56660B62BB8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{4D845138-707B-493F-A6B9-A681B85782E4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{55B8D83A-ECF0-4DC7-891F-57D6E14A21DE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{F54011DA-B863-4B96-B816-2E1888B76C2B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{CBBD91F5-7356-49B1-B03E-A1D0418B0C44}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{2BF8F800-E3A3-424F-8619-024368455CCB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{23B74FAE-10ED-4216-B3D6-4848E0763BCB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{63C57262-998F-474C-86B0-AAF85D11D51A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{C8E8B774-7B9A-4BE4-80F6-41CF8FECA782}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{D15772C8-76E4-4B68-AB86-6862E89BCD07}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{257216F8-CC32-4B3F-98A6-0277007D571E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{45F6DD62-FB3D-4150-B5FB-75DD81068F7C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{E835591A-E7BF-4ADA-8D13-6401FC4269A0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{78AB0E55-AFBD-48A4-9C4F-0E49DDCF3961}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{37385231-9EAD-44AE-A6D0-4AA434E229CA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{D5C1D2BA-CBEF-4B3A-985E-F0D23C264CCF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{E36B4971-09E7-466D-A44C-D6D775CD8610}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{D2BE15A6-6F8A-414F-BA5F-B0CD8C799FD2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{56CE7355-4A26-40CE-B2E2-DE3298B47123}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{08D41266-4DA4-42C4-8692-089758C33552}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{BA2F4F26-9506-46CC-88DA-B1E793226707}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{D85515EB-500B-452F-8EFA-3E16EFB41474}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{4ED9173F-407A-4562-AD3C-8DCFDC67D703}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname.blazor", "src\projname.blazor", "{D2206B82-DB44-4368-91E2-C0D95896EC70}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname.blazor", "src\projname.blazor", "{AECD4719-5BE2-4983-94D4-EFFD20423D3A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname", "src\projname", "{DBEBA54B-F95B-4468-8791-A92923349297}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname", "src\projname", "{4E682B28-6817-4FF7-A418-2DBB8BB7350C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{72C4E0C8-0599-4F58-A4CC-6A28FBE2232B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F2CF0608-628F-44E3-88D2-4588C7B5EB34}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname.Tests", "tests\projname.Tests", "{9F127B25-CCE7-4AFB-AF58-71AF0FCF0768}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname.Tests", "tests\projname.Tests", "{0CE0DC27-9D52-44D8-BB32-381F4E9DDA63}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{6999F143-4285-4AE0-AF56-98EE97F6C405}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{22FCD536-8351-4ED5-8E5F-73AF84E53A61}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "template.axolibrary", "..\template.axolibrary", "{7BE24A49-F9C8-4F2A-B6DD-E6A6A1980ED4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "template.axolibrary", "..\template.axolibrary", "{7AFDDD49-EC8E-46C5-A383-94E901143F99}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{21807121-6585-490F-980F-F0109FFA4CFE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{10AAFF21-11A3-4292-9687-3C67B867849C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\timers\src", "{D18A2482-15A5-4283-B148-AE95BD681B7D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\timers\src", "{E2C9BDAB-0FF7-4D04-8ECC-7FB11D7F9BB4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "timers", "..\timers", "{E31682F4-5EE9-42A9-A12D-A7FD3EB63ABB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "timers", "..\timers", "{D5C99653-7D7E-49F7-9EC1-48591B81DCAF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox", "{0257DA21-62A1-42FF-8CE0-DC95B1E6323F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox", "{9F437A59-D5EB-4AA8-ADEA-F32DC11E31C5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\toolbox\src", "{D25FB2A5-F2A8-499D-A2E9-5C92535BD789}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\toolbox\src", "{854C0A2C-3C8E-4362-BFCD-764DEC6EF59D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolbox", "..\toolbox", "{C012BAF8-5049-469D-9D8A-9769357B7EB0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolbox", "..\toolbox", "{89F2F9EF-5874-4071-BBCB-48189F804183}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -147,163 +147,163 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {902E7017-5FD7-4465-B6D9-79A6E672F311}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {902E7017-5FD7-4465-B6D9-79A6E672F311}.Debug|Any CPU.Build.0 = Debug|Any CPU - {902E7017-5FD7-4465-B6D9-79A6E672F311}.Release|Any CPU.ActiveCfg = Release|Any CPU - {902E7017-5FD7-4465-B6D9-79A6E672F311}.Release|Any CPU.Build.0 = Release|Any CPU - {7E46AADE-6A69-4826-BF11-3D49C1C2CCB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7E46AADE-6A69-4826-BF11-3D49C1C2CCB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7E46AADE-6A69-4826-BF11-3D49C1C2CCB2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7E46AADE-6A69-4826-BF11-3D49C1C2CCB2}.Release|Any CPU.Build.0 = Release|Any CPU - {E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11}.Release|Any CPU.Build.0 = Release|Any CPU - {0F839D6A-5E0E-42A2-90C6-E0A292248330}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0F839D6A-5E0E-42A2-90C6-E0A292248330}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0F839D6A-5E0E-42A2-90C6-E0A292248330}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0F839D6A-5E0E-42A2-90C6-E0A292248330}.Release|Any CPU.Build.0 = Release|Any CPU - {C2AA5414-2506-44E4-BB62-52CC1A17C249}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C2AA5414-2506-44E4-BB62-52CC1A17C249}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C2AA5414-2506-44E4-BB62-52CC1A17C249}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C2AA5414-2506-44E4-BB62-52CC1A17C249}.Release|Any CPU.Build.0 = Release|Any CPU - {2C7A664D-DF00-4034-8F31-02797D8266BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C7A664D-DF00-4034-8F31-02797D8266BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C7A664D-DF00-4034-8F31-02797D8266BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C7A664D-DF00-4034-8F31-02797D8266BB}.Release|Any CPU.Build.0 = Release|Any CPU - {2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3}.Release|Any CPU.Build.0 = Release|Any CPU - {69E40960-DEDC-4F1D-ACB7-36D73AEF3E42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69E40960-DEDC-4F1D-ACB7-36D73AEF3E42}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69E40960-DEDC-4F1D-ACB7-36D73AEF3E42}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69E40960-DEDC-4F1D-ACB7-36D73AEF3E42}.Release|Any CPU.Build.0 = Release|Any CPU - {D0C025F8-9C82-43D6-88BA-E34DD3EF3A50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D0C025F8-9C82-43D6-88BA-E34DD3EF3A50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D0C025F8-9C82-43D6-88BA-E34DD3EF3A50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D0C025F8-9C82-43D6-88BA-E34DD3EF3A50}.Release|Any CPU.Build.0 = Release|Any CPU - {8D677D97-D672-4A74-9113-35D63F1AC836}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8D677D97-D672-4A74-9113-35D63F1AC836}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8D677D97-D672-4A74-9113-35D63F1AC836}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8D677D97-D672-4A74-9113-35D63F1AC836}.Release|Any CPU.Build.0 = Release|Any CPU - {F858691C-2EA0-42E1-AA6C-C2B581B28C31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F858691C-2EA0-42E1-AA6C-C2B581B28C31}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F858691C-2EA0-42E1-AA6C-C2B581B28C31}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F858691C-2EA0-42E1-AA6C-C2B581B28C31}.Release|Any CPU.Build.0 = Release|Any CPU - {2E16D5AE-1D16-4C1F-AE03-CACBF424F01E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2E16D5AE-1D16-4C1F-AE03-CACBF424F01E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2E16D5AE-1D16-4C1F-AE03-CACBF424F01E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2E16D5AE-1D16-4C1F-AE03-CACBF424F01E}.Release|Any CPU.Build.0 = Release|Any CPU - {749FAF9E-E8D2-43D6-962E-DE29DD229952}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {749FAF9E-E8D2-43D6-962E-DE29DD229952}.Debug|Any CPU.Build.0 = Debug|Any CPU - {749FAF9E-E8D2-43D6-962E-DE29DD229952}.Release|Any CPU.ActiveCfg = Release|Any CPU - {749FAF9E-E8D2-43D6-962E-DE29DD229952}.Release|Any CPU.Build.0 = Release|Any CPU - {2AD7F8D6-0DDF-4D53-B5BF-EB084D483940}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2AD7F8D6-0DDF-4D53-B5BF-EB084D483940}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2AD7F8D6-0DDF-4D53-B5BF-EB084D483940}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2AD7F8D6-0DDF-4D53-B5BF-EB084D483940}.Release|Any CPU.Build.0 = Release|Any CPU - {BFF1094C-D6B9-4630-B1CE-EE731F8AA40D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BFF1094C-D6B9-4630-B1CE-EE731F8AA40D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BFF1094C-D6B9-4630-B1CE-EE731F8AA40D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BFF1094C-D6B9-4630-B1CE-EE731F8AA40D}.Release|Any CPU.Build.0 = Release|Any CPU - {BF593BBC-6257-4CE3-934A-B04A10C8785D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF593BBC-6257-4CE3-934A-B04A10C8785D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF593BBC-6257-4CE3-934A-B04A10C8785D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF593BBC-6257-4CE3-934A-B04A10C8785D}.Release|Any CPU.Build.0 = Release|Any CPU - {67839D77-E5A0-408D-8E9C-783E016A9AF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67839D77-E5A0-408D-8E9C-783E016A9AF2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {67839D77-E5A0-408D-8E9C-783E016A9AF2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {67839D77-E5A0-408D-8E9C-783E016A9AF2}.Release|Any CPU.Build.0 = Release|Any CPU - {05837168-77F7-4181-88FE-1C00D9AC04DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {05837168-77F7-4181-88FE-1C00D9AC04DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {05837168-77F7-4181-88FE-1C00D9AC04DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {05837168-77F7-4181-88FE-1C00D9AC04DB}.Release|Any CPU.Build.0 = Release|Any CPU - {C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF}.Release|Any CPU.Build.0 = Release|Any CPU - {9BCC2EA2-9596-450D-874A-F89A4FDE19D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9BCC2EA2-9596-450D-874A-F89A4FDE19D9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9BCC2EA2-9596-450D-874A-F89A4FDE19D9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9BCC2EA2-9596-450D-874A-F89A4FDE19D9}.Release|Any CPU.Build.0 = Release|Any CPU - {91C3A799-619E-4CD6-B8D6-4662A4E46764}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {91C3A799-619E-4CD6-B8D6-4662A4E46764}.Debug|Any CPU.Build.0 = Debug|Any CPU - {91C3A799-619E-4CD6-B8D6-4662A4E46764}.Release|Any CPU.ActiveCfg = Release|Any CPU - {91C3A799-619E-4CD6-B8D6-4662A4E46764}.Release|Any CPU.Build.0 = Release|Any CPU - {25DB2B9E-936A-4CDF-AF86-49D295655E55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25DB2B9E-936A-4CDF-AF86-49D295655E55}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25DB2B9E-936A-4CDF-AF86-49D295655E55}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25DB2B9E-936A-4CDF-AF86-49D295655E55}.Release|Any CPU.Build.0 = Release|Any CPU - {80F6983B-9996-429A-A5D1-7A80E70FAAC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80F6983B-9996-429A-A5D1-7A80E70FAAC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80F6983B-9996-429A-A5D1-7A80E70FAAC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80F6983B-9996-429A-A5D1-7A80E70FAAC6}.Release|Any CPU.Build.0 = Release|Any CPU + {67CD4038-2DA0-46CD-A8C1-502357F5F752}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67CD4038-2DA0-46CD-A8C1-502357F5F752}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67CD4038-2DA0-46CD-A8C1-502357F5F752}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67CD4038-2DA0-46CD-A8C1-502357F5F752}.Release|Any CPU.Build.0 = Release|Any CPU + {C6856CD1-4C41-49A9-85EC-F1E0A7B104A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6856CD1-4C41-49A9-85EC-F1E0A7B104A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6856CD1-4C41-49A9-85EC-F1E0A7B104A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6856CD1-4C41-49A9-85EC-F1E0A7B104A8}.Release|Any CPU.Build.0 = Release|Any CPU + {D38F7F87-F76E-440E-9538-EEAF0A10E467}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D38F7F87-F76E-440E-9538-EEAF0A10E467}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D38F7F87-F76E-440E-9538-EEAF0A10E467}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D38F7F87-F76E-440E-9538-EEAF0A10E467}.Release|Any CPU.Build.0 = Release|Any CPU + {D293D41E-3222-4B4D-A28C-22A829F96EB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D293D41E-3222-4B4D-A28C-22A829F96EB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D293D41E-3222-4B4D-A28C-22A829F96EB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D293D41E-3222-4B4D-A28C-22A829F96EB7}.Release|Any CPU.Build.0 = Release|Any CPU + {12F3D3F4-6D77-43D7-A53F-DD696202B8F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12F3D3F4-6D77-43D7-A53F-DD696202B8F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12F3D3F4-6D77-43D7-A53F-DD696202B8F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12F3D3F4-6D77-43D7-A53F-DD696202B8F4}.Release|Any CPU.Build.0 = Release|Any CPU + {B6C481DE-422F-48AB-B913-B03CBA58AFC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6C481DE-422F-48AB-B913-B03CBA58AFC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6C481DE-422F-48AB-B913-B03CBA58AFC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6C481DE-422F-48AB-B913-B03CBA58AFC9}.Release|Any CPU.Build.0 = Release|Any CPU + {41261E01-E9EB-4861-94B8-B1397C36D4C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41261E01-E9EB-4861-94B8-B1397C36D4C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41261E01-E9EB-4861-94B8-B1397C36D4C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41261E01-E9EB-4861-94B8-B1397C36D4C1}.Release|Any CPU.Build.0 = Release|Any CPU + {EC61E583-37A6-40FD-BEA4-630965D8A0F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC61E583-37A6-40FD-BEA4-630965D8A0F7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC61E583-37A6-40FD-BEA4-630965D8A0F7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC61E583-37A6-40FD-BEA4-630965D8A0F7}.Release|Any CPU.Build.0 = Release|Any CPU + {D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058}.Release|Any CPU.Build.0 = Release|Any CPU + {84529EA3-ACB5-42CB-A341-EC0F1B2AAD18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84529EA3-ACB5-42CB-A341-EC0F1B2AAD18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84529EA3-ACB5-42CB-A341-EC0F1B2AAD18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84529EA3-ACB5-42CB-A341-EC0F1B2AAD18}.Release|Any CPU.Build.0 = Release|Any CPU + {3F324A20-466E-42C4-98E1-676BBE49BDF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F324A20-466E-42C4-98E1-676BBE49BDF5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F324A20-466E-42C4-98E1-676BBE49BDF5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F324A20-466E-42C4-98E1-676BBE49BDF5}.Release|Any CPU.Build.0 = Release|Any CPU + {83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D}.Release|Any CPU.Build.0 = Release|Any CPU + {1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2}.Release|Any CPU.Build.0 = Release|Any CPU + {8C6B9021-83E8-4E25-A4AC-1529F3D0FD51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C6B9021-83E8-4E25-A4AC-1529F3D0FD51}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C6B9021-83E8-4E25-A4AC-1529F3D0FD51}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C6B9021-83E8-4E25-A4AC-1529F3D0FD51}.Release|Any CPU.Build.0 = Release|Any CPU + {8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8}.Release|Any CPU.Build.0 = Release|Any CPU + {4E37D22B-48DC-40EE-BD59-91D209C33B17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E37D22B-48DC-40EE-BD59-91D209C33B17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E37D22B-48DC-40EE-BD59-91D209C33B17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E37D22B-48DC-40EE-BD59-91D209C33B17}.Release|Any CPU.Build.0 = Release|Any CPU + {DDAB6F44-79E0-46EA-AC71-A184487BA3A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDAB6F44-79E0-46EA-AC71-A184487BA3A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDAB6F44-79E0-46EA-AC71-A184487BA3A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDAB6F44-79E0-46EA-AC71-A184487BA3A6}.Release|Any CPU.Build.0 = Release|Any CPU + {2F6DD73B-E93C-4508-868C-5EDA63F7EF9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F6DD73B-E93C-4508-868C-5EDA63F7EF9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F6DD73B-E93C-4508-868C-5EDA63F7EF9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F6DD73B-E93C-4508-868C-5EDA63F7EF9B}.Release|Any CPU.Build.0 = Release|Any CPU + {F2191F02-CF27-4C7E-B935-67E80CECD82D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2191F02-CF27-4C7E-B935-67E80CECD82D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2191F02-CF27-4C7E-B935-67E80CECD82D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2191F02-CF27-4C7E-B935-67E80CECD82D}.Release|Any CPU.Build.0 = Release|Any CPU + {D39A1160-FA35-41E8-BF16-059E40AC585D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D39A1160-FA35-41E8-BF16-059E40AC585D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D39A1160-FA35-41E8-BF16-059E40AC585D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D39A1160-FA35-41E8-BF16-059E40AC585D}.Release|Any CPU.Build.0 = Release|Any CPU + {6E0AA6DA-327E-41C3-A15A-56BCF0A74717}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E0AA6DA-327E-41C3-A15A-56BCF0A74717}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E0AA6DA-327E-41C3-A15A-56BCF0A74717}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E0AA6DA-327E-41C3-A15A-56BCF0A74717}.Release|Any CPU.Build.0 = Release|Any CPU + {BC9625E4-1657-4451-9E06-01051DF8A114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC9625E4-1657-4451-9E06-01051DF8A114}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC9625E4-1657-4451-9E06-01051DF8A114}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC9625E4-1657-4451-9E06-01051DF8A114}.Release|Any CPU.Build.0 = Release|Any CPU + {5DDD6ADE-F298-447C-835F-28069EE0EC58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5DDD6ADE-F298-447C-835F-28069EE0EC58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5DDD6ADE-F298-447C-835F-28069EE0EC58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5DDD6ADE-F298-447C-835F-28069EE0EC58}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {7E46AADE-6A69-4826-BF11-3D49C1C2CCB2} = {592D668C-BE54-4809-94E1-B9EC47079748} - {592D668C-BE54-4809-94E1-B9EC47079748} = {8747A0CF-13AE-4AB8-897A-31485EC344BB} - {8747A0CF-13AE-4AB8-897A-31485EC344BB} = {37254B3E-14EC-4772-A4D8-D3491483C6CD} - {E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11} = {4152A2B1-E864-4967-9A73-8F6DC35A0D22} - {4152A2B1-E864-4967-9A73-8F6DC35A0D22} = {6200D173-599C-4BB7-8FA8-D116FD28EAC8} - {0F839D6A-5E0E-42A2-90C6-E0A292248330} = {4B355348-C300-40AD-8A94-3AD08E568A18} - {4B355348-C300-40AD-8A94-3AD08E568A18} = {6200D173-599C-4BB7-8FA8-D116FD28EAC8} - {C2AA5414-2506-44E4-BB62-52CC1A17C249} = {D7BF74A6-4D99-42BE-A873-DAA7D69483F5} - {D7BF74A6-4D99-42BE-A873-DAA7D69483F5} = {6200D173-599C-4BB7-8FA8-D116FD28EAC8} - {6200D173-599C-4BB7-8FA8-D116FD28EAC8} = {8D880A21-6B15-4C31-A15C-6A1ED0705F5D} - {2C7A664D-DF00-4034-8F31-02797D8266BB} = {BF0849BF-A5CD-4D6E-AB96-3268CDDD3983} - {BF0849BF-A5CD-4D6E-AB96-3268CDDD3983} = {4D6EE05D-3858-4AFC-BF31-696B62B7CB2D} - {4D6EE05D-3858-4AFC-BF31-696B62B7CB2D} = {EFE85F6C-A38D-43AD-826B-5B1972448C01} - {2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3} = {966D30DC-22FF-4B68-9B6C-A75880491E9A} - {966D30DC-22FF-4B68-9B6C-A75880491E9A} = {B1D0CA39-E22A-4151-852B-B5B3D1F72D84} - {69E40960-DEDC-4F1D-ACB7-36D73AEF3E42} = {2CB8D4A8-F2AC-4864-B192-9CDEE9104C2B} - {2CB8D4A8-F2AC-4864-B192-9CDEE9104C2B} = {B1D0CA39-E22A-4151-852B-B5B3D1F72D84} - {B1D0CA39-E22A-4151-852B-B5B3D1F72D84} = {FCFF2077-608A-4A91-B8C6-C8F96A03DA03} - {D0C025F8-9C82-43D6-88BA-E34DD3EF3A50} = {242736CA-B2D1-4BC9-8F8D-2BA219B69041} - {242736CA-B2D1-4BC9-8F8D-2BA219B69041} = {72610BEC-C13E-486F-A8F4-4B5353D02F5C} - {72610BEC-C13E-486F-A8F4-4B5353D02F5C} = {E0BC61EE-C644-435A-B0EB-A2E82F311EBA} - {E0BC61EE-C644-435A-B0EB-A2E82F311EBA} = {6DF5C549-3338-4E81-8CEA-D2309675C071} - {8D677D97-D672-4A74-9113-35D63F1AC836} = {6CB60315-E8FC-4148-8941-66BB0F6FD055} - {6CB60315-E8FC-4148-8941-66BB0F6FD055} = {010104A6-93C7-45DD-BBEC-32DCB2EFFEFD} - {F858691C-2EA0-42E1-AA6C-C2B581B28C31} = {6BB59B3F-5A68-4D48-B467-9C17ADAB0BA7} - {6BB59B3F-5A68-4D48-B467-9C17ADAB0BA7} = {010104A6-93C7-45DD-BBEC-32DCB2EFFEFD} - {010104A6-93C7-45DD-BBEC-32DCB2EFFEFD} = {29D84282-1D41-451C-891D-D556A77B4E3D} - {2E16D5AE-1D16-4C1F-AE03-CACBF424F01E} = {4A7656B3-1522-453F-BC2C-3CB06B4F1EA6} - {4A7656B3-1522-453F-BC2C-3CB06B4F1EA6} = {CAE109E0-AF84-4576-90A2-0774921246E1} - {CAE109E0-AF84-4576-90A2-0774921246E1} = {4D845138-707B-493F-A6B9-A681B85782E4} - {749FAF9E-E8D2-43D6-962E-DE29DD229952} = {F54011DA-B863-4B96-B816-2E1888B76C2B} - {F54011DA-B863-4B96-B816-2E1888B76C2B} = {63C57262-998F-474C-86B0-AAF85D11D51A} - {2AD7F8D6-0DDF-4D53-B5BF-EB084D483940} = {2BF8F800-E3A3-424F-8619-024368455CCB} - {2BF8F800-E3A3-424F-8619-024368455CCB} = {63C57262-998F-474C-86B0-AAF85D11D51A} - {63C57262-998F-474C-86B0-AAF85D11D51A} = {D15772C8-76E4-4B68-AB86-6862E89BCD07} - {BFF1094C-D6B9-4630-B1CE-EE731F8AA40D} = {45F6DD62-FB3D-4150-B5FB-75DD81068F7C} - {45F6DD62-FB3D-4150-B5FB-75DD81068F7C} = {78AB0E55-AFBD-48A4-9C4F-0E49DDCF3961} - {78AB0E55-AFBD-48A4-9C4F-0E49DDCF3961} = {D5C1D2BA-CBEF-4B3A-985E-F0D23C264CCF} - {BF593BBC-6257-4CE3-934A-B04A10C8785D} = {D2BE15A6-6F8A-414F-BA5F-B0CD8C799FD2} - {D2BE15A6-6F8A-414F-BA5F-B0CD8C799FD2} = {D85515EB-500B-452F-8EFA-3E16EFB41474} - {67839D77-E5A0-408D-8E9C-783E016A9AF2} = {08D41266-4DA4-42C4-8692-089758C33552} - {08D41266-4DA4-42C4-8692-089758C33552} = {D85515EB-500B-452F-8EFA-3E16EFB41474} - {D85515EB-500B-452F-8EFA-3E16EFB41474} = {7BE24A49-F9C8-4F2A-B6DD-E6A6A1980ED4} - {05837168-77F7-4181-88FE-1C00D9AC04DB} = {D2206B82-DB44-4368-91E2-C0D95896EC70} - {D2206B82-DB44-4368-91E2-C0D95896EC70} = {72C4E0C8-0599-4F58-A4CC-6A28FBE2232B} - {C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF} = {DBEBA54B-F95B-4468-8791-A92923349297} - {9BCC2EA2-9596-450D-874A-F89A4FDE19D9} = {DBEBA54B-F95B-4468-8791-A92923349297} - {DBEBA54B-F95B-4468-8791-A92923349297} = {72C4E0C8-0599-4F58-A4CC-6A28FBE2232B} - {72C4E0C8-0599-4F58-A4CC-6A28FBE2232B} = {7BE24A49-F9C8-4F2A-B6DD-E6A6A1980ED4} - {91C3A799-619E-4CD6-B8D6-4662A4E46764} = {9F127B25-CCE7-4AFB-AF58-71AF0FCF0768} - {9F127B25-CCE7-4AFB-AF58-71AF0FCF0768} = {6999F143-4285-4AE0-AF56-98EE97F6C405} - {6999F143-4285-4AE0-AF56-98EE97F6C405} = {7BE24A49-F9C8-4F2A-B6DD-E6A6A1980ED4} - {25DB2B9E-936A-4CDF-AF86-49D295655E55} = {21807121-6585-490F-980F-F0109FFA4CFE} - {21807121-6585-490F-980F-F0109FFA4CFE} = {D18A2482-15A5-4283-B148-AE95BD681B7D} - {D18A2482-15A5-4283-B148-AE95BD681B7D} = {E31682F4-5EE9-42A9-A12D-A7FD3EB63ABB} - {80F6983B-9996-429A-A5D1-7A80E70FAAC6} = {0257DA21-62A1-42FF-8CE0-DC95B1E6323F} - {0257DA21-62A1-42FF-8CE0-DC95B1E6323F} = {D25FB2A5-F2A8-499D-A2E9-5C92535BD789} - {D25FB2A5-F2A8-499D-A2E9-5C92535BD789} = {C012BAF8-5049-469D-9D8A-9769357B7EB0} + {C6856CD1-4C41-49A9-85EC-F1E0A7B104A8} = {DDFFD700-706D-4A95-B823-2174F01E4D4F} + {DDFFD700-706D-4A95-B823-2174F01E4D4F} = {8A20153A-B655-4960-8C58-BC182D10188E} + {8A20153A-B655-4960-8C58-BC182D10188E} = {90049871-98EA-4650-8EE1-13BF2D56FBA6} + {D38F7F87-F76E-440E-9538-EEAF0A10E467} = {E1DEC794-7BC8-4A29-AF55-99D1C5426329} + {E1DEC794-7BC8-4A29-AF55-99D1C5426329} = {0B67534D-C3C8-4B57-B380-BFEDB8AB8130} + {D293D41E-3222-4B4D-A28C-22A829F96EB7} = {99AFF3B5-4BD7-40E1-91A3-3C9FDF35B8FC} + {99AFF3B5-4BD7-40E1-91A3-3C9FDF35B8FC} = {0B67534D-C3C8-4B57-B380-BFEDB8AB8130} + {12F3D3F4-6D77-43D7-A53F-DD696202B8F4} = {35B97612-8E86-4640-9F1B-EAF82B845167} + {35B97612-8E86-4640-9F1B-EAF82B845167} = {0B67534D-C3C8-4B57-B380-BFEDB8AB8130} + {0B67534D-C3C8-4B57-B380-BFEDB8AB8130} = {AF58FD16-A074-4B12-891F-FAEB3B9A9A60} + {B6C481DE-422F-48AB-B913-B03CBA58AFC9} = {0E6AC2AA-1F7B-4CCA-AEF2-C09652C0692A} + {0E6AC2AA-1F7B-4CCA-AEF2-C09652C0692A} = {53C1B9CC-F3F7-4CB5-80FD-6B4564B5CB50} + {53C1B9CC-F3F7-4CB5-80FD-6B4564B5CB50} = {8A273C6A-61D3-4430-9B74-3D483179CFEF} + {41261E01-E9EB-4861-94B8-B1397C36D4C1} = {D57D73B0-36D1-4AB4-80DA-90C61FFA66BA} + {D57D73B0-36D1-4AB4-80DA-90C61FFA66BA} = {8293B20A-048E-4A19-BEDC-BC0179F1E768} + {EC61E583-37A6-40FD-BEA4-630965D8A0F7} = {B6FCE309-610F-41ED-A8BE-5403AA0EC84A} + {B6FCE309-610F-41ED-A8BE-5403AA0EC84A} = {8293B20A-048E-4A19-BEDC-BC0179F1E768} + {8293B20A-048E-4A19-BEDC-BC0179F1E768} = {1A125802-0609-41F7-94CB-CF930CA99A15} + {D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058} = {5BBF3E7B-2C26-4B3D-A927-EF975139FB98} + {5BBF3E7B-2C26-4B3D-A927-EF975139FB98} = {16C6E0CF-C8FD-480D-BD02-2EBD82A90CA8} + {16C6E0CF-C8FD-480D-BD02-2EBD82A90CA8} = {BFF70E7E-614B-4AA8-A59E-8DADED37C81B} + {BFF70E7E-614B-4AA8-A59E-8DADED37C81B} = {9A9F0C73-67BC-4926-877A-953C42A0351D} + {84529EA3-ACB5-42CB-A341-EC0F1B2AAD18} = {1283E98C-BFF3-4BEE-AB9D-4FE2FDC59948} + {1283E98C-BFF3-4BEE-AB9D-4FE2FDC59948} = {20A5409B-D58C-4887-935B-AFA4E80C708F} + {3F324A20-466E-42C4-98E1-676BBE49BDF5} = {6BFCE625-857C-4B40-9B99-8084969B5935} + {6BFCE625-857C-4B40-9B99-8084969B5935} = {20A5409B-D58C-4887-935B-AFA4E80C708F} + {20A5409B-D58C-4887-935B-AFA4E80C708F} = {BE480528-89F8-41D2-B9B8-8E3220BDC43B} + {83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D} = {93471548-566E-46C7-A2E7-BB78081C84CD} + {93471548-566E-46C7-A2E7-BB78081C84CD} = {F1906525-5660-4376-BD90-D56660B62BB8} + {F1906525-5660-4376-BD90-D56660B62BB8} = {55B8D83A-ECF0-4DC7-891F-57D6E14A21DE} + {1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2} = {CBBD91F5-7356-49B1-B03E-A1D0418B0C44} + {CBBD91F5-7356-49B1-B03E-A1D0418B0C44} = {C8E8B774-7B9A-4BE4-80F6-41CF8FECA782} + {8C6B9021-83E8-4E25-A4AC-1529F3D0FD51} = {23B74FAE-10ED-4216-B3D6-4848E0763BCB} + {23B74FAE-10ED-4216-B3D6-4848E0763BCB} = {C8E8B774-7B9A-4BE4-80F6-41CF8FECA782} + {C8E8B774-7B9A-4BE4-80F6-41CF8FECA782} = {257216F8-CC32-4B3F-98A6-0277007D571E} + {8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8} = {E835591A-E7BF-4ADA-8D13-6401FC4269A0} + {E835591A-E7BF-4ADA-8D13-6401FC4269A0} = {37385231-9EAD-44AE-A6D0-4AA434E229CA} + {37385231-9EAD-44AE-A6D0-4AA434E229CA} = {E36B4971-09E7-466D-A44C-D6D775CD8610} + {4E37D22B-48DC-40EE-BD59-91D209C33B17} = {56CE7355-4A26-40CE-B2E2-DE3298B47123} + {56CE7355-4A26-40CE-B2E2-DE3298B47123} = {4ED9173F-407A-4562-AD3C-8DCFDC67D703} + {DDAB6F44-79E0-46EA-AC71-A184487BA3A6} = {BA2F4F26-9506-46CC-88DA-B1E793226707} + {BA2F4F26-9506-46CC-88DA-B1E793226707} = {4ED9173F-407A-4562-AD3C-8DCFDC67D703} + {4ED9173F-407A-4562-AD3C-8DCFDC67D703} = {7AFDDD49-EC8E-46C5-A383-94E901143F99} + {2F6DD73B-E93C-4508-868C-5EDA63F7EF9B} = {AECD4719-5BE2-4983-94D4-EFFD20423D3A} + {AECD4719-5BE2-4983-94D4-EFFD20423D3A} = {F2CF0608-628F-44E3-88D2-4588C7B5EB34} + {F2191F02-CF27-4C7E-B935-67E80CECD82D} = {4E682B28-6817-4FF7-A418-2DBB8BB7350C} + {D39A1160-FA35-41E8-BF16-059E40AC585D} = {4E682B28-6817-4FF7-A418-2DBB8BB7350C} + {4E682B28-6817-4FF7-A418-2DBB8BB7350C} = {F2CF0608-628F-44E3-88D2-4588C7B5EB34} + {F2CF0608-628F-44E3-88D2-4588C7B5EB34} = {7AFDDD49-EC8E-46C5-A383-94E901143F99} + {6E0AA6DA-327E-41C3-A15A-56BCF0A74717} = {0CE0DC27-9D52-44D8-BB32-381F4E9DDA63} + {0CE0DC27-9D52-44D8-BB32-381F4E9DDA63} = {22FCD536-8351-4ED5-8E5F-73AF84E53A61} + {22FCD536-8351-4ED5-8E5F-73AF84E53A61} = {7AFDDD49-EC8E-46C5-A383-94E901143F99} + {BC9625E4-1657-4451-9E06-01051DF8A114} = {10AAFF21-11A3-4292-9687-3C67B867849C} + {10AAFF21-11A3-4292-9687-3C67B867849C} = {E2C9BDAB-0FF7-4D04-8ECC-7FB11D7F9BB4} + {E2C9BDAB-0FF7-4D04-8ECC-7FB11D7F9BB4} = {D5C99653-7D7E-49F7-9EC1-48591B81DCAF} + {5DDD6ADE-F298-447C-835F-28069EE0EC58} = {9F437A59-D5EB-4AA8-ADEA-F32DC11E31C5} + {9F437A59-D5EB-4AA8-ADEA-F32DC11E31C5} = {854C0A2C-3C8E-4362-BFCD-764DEC6EF59D} + {854C0A2C-3C8E-4362-BFCD-764DEC6EF59D} = {89F2F9EF-5874-4071-BBCB-48189F804183} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A2594D51-882F-4252-9659-AB1CB825AA39} + SolutionGuid = {C0CE2BD1-6F33-4899-BD2C-82F6435327B0} EndGlobalSection EndGlobal diff --git a/src/template.axolibrary/this.sln b/src/template.axolibrary/this.sln index 4bfe6c4f3..81366f871 100644 --- a/src/template.axolibrary/this.sln +++ b/src/template.axolibrary/this.sln @@ -1,145 +1,145 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "this", "this.proj", "{902E7017-5FD7-4465-B6D9-79A6E672F311}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "this", "this.proj", "{67CD4038-2DA0-46CD-A8C1-502357F5F752}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{7E46AADE-6A69-4826-BF11-3D49C1C2CCB2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_abstractions", "..\abstractions\src\AXOpen.Abstractions\inxton_axopen_abstractions.csproj", "{C6856CD1-4C41-49A9-85EC-F1E0A7B104A8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions\AXOpen.Base.Abstractions.csproj", "{D38F7F87-F76E-440E-9538-EEAF0A10E467}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{0F839D6A-5E0E-42A2-90C6-E0A292248330}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Logging.Serilog", "..\base\src\AXOpen.Logging\AXOpen.Logging.Serilog.csproj", "{D293D41E-3222-4B4D-A28C-22A829F96EB7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{C2AA5414-2506-44E4-BB62-52CC1A17C249}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer\AXOpen.VisualComposer.csproj", "{12F3D3F4-6D77-43D7-A53F-DD696202B8F4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{2C7A664D-DF00-4034-8F31-02797D8266BB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_components_abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions\inxton_axopen_components_abstractions.csproj", "{B6C481DE-422F-48AB-B913-B03CBA58AFC9}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\core\src\AXOpen.Core.Blazor\axopen_core_blazor.csproj", "{2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "axopen_core_blazor", "..\core\src\AXOpen.Core.Blazor\axopen_core_blazor.csproj", "{41261E01-E9EB-4861-94B8-B1397C36D4C1}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{69E40960-DEDC-4F1D-ACB7-36D73AEF3E42}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_core", "..\core\src\AXOpen.Core\inxton_axopen_core.csproj", "{EC61E583-37A6-40FD-BEA4-630965D8A0F7}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{D0C025F8-9C82-43D6-88BA-E34DD3EF3A50}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Data.Json", "..\data\src\repositories\Json\AXOpen.Data.Json.csproj", "{D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{8D677D97-D672-4A74-9113-35D63F1AC836}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor\AXOpen.Io.blazor.csproj", "{84529EA3-ACB5-42CB-A341-EC0F1B2AAD18}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{F858691C-2EA0-42E1-AA6C-C2B581B28C31}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_io", "..\io\src\AXOpen.Io\inxton_axopen_io.csproj", "{3F324A20-466E-42C4-98E1-676BBE49BDF5}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{2E16D5AE-1D16-4C1F-AE03-CACBF424F01E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_ax_sdk", "..\sdk-ax\ctrl\ix\inxton_ax_sdk.csproj", "{83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{749FAF9E-E8D2-43D6-962E-DE29DD229952}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor\AXOpen.Security.Blazor.csproj", "{1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{2AD7F8D6-0DDF-4D53-B5BF-EB084D483940}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.Security", "..\Security\src\AXOpen.Security\AXOpen.Security.csproj", "{8C6B9021-83E8-4E25-A4AC-1529F3D0FD51}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{BFF1094C-D6B9-4630-B1CE-EE731F8AA40D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_simatic1500", "..\simatic1500\ctrl\ix\inxton_axopen_simatic1500.csproj", "{8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname.blazorapp", "app\ix-blazor\projname.blazorapp.csproj", "{BF593BBC-6257-4CE3-934A-B04A10C8785D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname.blazorapp", "app\ix-blazor\projname.blazorapp.csproj", "{4E37D22B-48DC-40EE-BD59-91D209C33B17}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_appconnectorname", "app\ix\app_appconnectorname.csproj", "{67839D77-E5A0-408D-8E9C-783E016A9AF2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "app_appconnectorname", "app\ix\app_appconnectorname.csproj", "{DDAB6F44-79E0-46EA-AC71-A184487BA3A6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname.blazor", "src\projname.blazor\projname.blazor.csproj", "{05837168-77F7-4181-88FE-1C00D9AC04DB}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname.blazor", "src\projname.blazor\projname.blazor.csproj", "{2F6DD73B-E93C-4508-868C-5EDA63F7EF9B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_apaxlibname", "src\projname\inxton_apaxlibname.csproj", "{C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_apaxlibname", "src\projname\inxton_apaxlibname.csproj", "{F2191F02-CF27-4C7E-B935-67E80CECD82D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axolib", "src\projname\inxton_axolib.csproj", "{9BCC2EA2-9596-450D-874A-F89A4FDE19D9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axolib", "src\projname\inxton_axolib.csproj", "{D39A1160-FA35-41E8-BF16-059E40AC585D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname_tests", "tests\projname.Tests\projname_tests.csproj", "{91C3A799-619E-4CD6-B8D6-4662A4E46764}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projname_tests", "tests\projname.Tests\projname_tests.csproj", "{6E0AA6DA-327E-41C3-A15A-56BCF0A74717}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{25DB2B9E-936A-4CDF-AF86-49D295655E55}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "inxton_axopen_timers", "..\timers\src\AXOpen.Timers\inxton_axopen_timers.csproj", "{BC9625E4-1657-4451-9E06-01051DF8A114}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox\AXOpen.ToolBox.csproj", "{80F6983B-9996-429A-A5D1-7A80E70FAAC6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox\AXOpen.ToolBox.csproj", "{5DDD6ADE-F298-447C-835F-28069EE0EC58}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "..\abstractions\src\AXOpen.Abstractions", "{592D668C-BE54-4809-94E1-B9EC47079748}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Abstractions", "..\abstractions\src\AXOpen.Abstractions", "{DDFFD700-706D-4A95-B823-2174F01E4D4F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\abstractions\src", "{8747A0CF-13AE-4AB8-897A-31485EC344BB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\abstractions\src", "{8A20153A-B655-4960-8C58-BC182D10188E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstractions", "{37254B3E-14EC-4772-A4D8-D3491483C6CD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "abstractions", "..\abstractions", "{90049871-98EA-4650-8EE1-13BF2D56FBA6}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{4152A2B1-E864-4967-9A73-8F6DC35A0D22}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Base.Abstractions", "..\base\src\AXOpen.Base.Abstractions", "{E1DEC794-7BC8-4A29-AF55-99D1C5426329}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{4B355348-C300-40AD-8A94-3AD08E568A18}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Logging", "..\base\src\AXOpen.Logging", "{99AFF3B5-4BD7-40E1-91A3-3C9FDF35B8FC}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{D7BF74A6-4D99-42BE-A873-DAA7D69483F5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.VisualComposer", "..\base\src\AXOpen.VisualComposer", "{35B97612-8E86-4640-9F1B-EAF82B845167}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{6200D173-599C-4BB7-8FA8-D116FD28EAC8}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\base\src", "{0B67534D-C3C8-4B57-B380-BFEDB8AB8130}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "..\base", "{8D880A21-6B15-4C31-A15C-6A1ED0705F5D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "base", "..\base", "{AF58FD16-A074-4B12-891F-FAEB3B9A9A60}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions", "{BF0849BF-A5CD-4D6E-AB96-3268CDDD3983}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Components.Abstractions", "..\components.abstractions\src\AXOpen.Components.Abstractions", "{0E6AC2AA-1F7B-4CCA-AEF2-C09652C0692A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstractions\src", "{4D6EE05D-3858-4AFC-BF31-696B62B7CB2D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\components.abstractions\src", "{53C1B9CC-F3F7-4CB5-80FD-6B4564B5CB50}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{EFE85F6C-A38D-43AD-826B-5B1972448C01}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "components.abstractions", "..\components.abstractions", "{8A273C6A-61D3-4430-9B74-3D483179CFEF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "..\core\src\AXOpen.Core.Blazor", "{966D30DC-22FF-4B68-9B6C-A75880491E9A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core.Blazor", "..\core\src\AXOpen.Core.Blazor", "{D57D73B0-36D1-4AB4-80DA-90C61FFA66BA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "..\core\src\AXOpen.Core", "{2CB8D4A8-F2AC-4864-B192-9CDEE9104C2B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Core", "..\core\src\AXOpen.Core", "{B6FCE309-610F-41ED-A8BE-5403AA0EC84A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{B1D0CA39-E22A-4151-852B-B5B3D1F72D84}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\core\src", "{8293B20A-048E-4A19-BEDC-BC0179F1E768}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{FCFF2077-608A-4A91-B8C6-C8F96A03DA03}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "..\core", "{1A125802-0609-41F7-94CB-CF930CA99A15}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{242736CA-B2D1-4BC9-8F8D-2BA219B69041}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Json", "..\data\src\repositories\Json", "{5BBF3E7B-2C26-4B3D-A927-EF975139FB98}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{72610BEC-C13E-486F-A8F4-4B5353D02F5C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "repositories", "..\data\src\repositories", "{16C6E0CF-C8FD-480D-BD02-2EBD82A90CA8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{E0BC61EE-C644-435A-B0EB-A2E82F311EBA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\data\src", "{BFF70E7E-614B-4AA8-A59E-8DADED37C81B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{6DF5C549-3338-4E81-8CEA-D2309675C071}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "..\data", "{9A9F0C73-67BC-4926-877A-953C42A0351D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{6CB60315-E8FC-4148-8941-66BB0F6FD055}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io.blazor", "..\io\src\AXOpen.Io.blazor", "{1283E98C-BFF3-4BEE-AB9D-4FE2FDC59948}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{6BB59B3F-5A68-4D48-B467-9C17ADAB0BA7}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Io", "..\io\src\AXOpen.Io", "{6BFCE625-857C-4B40-9B99-8084969B5935}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\io\src", "{010104A6-93C7-45DD-BBEC-32DCB2EFFEFD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\io\src", "{20A5409B-D58C-4887-935B-AFA4E80C708F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "..\io", "{29D84282-1D41-451C-891D-D556A77B4E3D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "io", "..\io", "{BE480528-89F8-41D2-B9B8-8E3220BDC43B}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\sdk-ax\ctrl\ix", "{4A7656B3-1522-453F-BC2C-3CB06B4F1EA6}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\sdk-ax\ctrl\ix", "{93471548-566E-46C7-A2E7-BB78081C84CD}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{CAE109E0-AF84-4576-90A2-0774921246E1}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\sdk-ax\ctrl", "{F1906525-5660-4376-BD90-D56660B62BB8}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{4D845138-707B-493F-A6B9-A681B85782E4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "sdk-ax", "..\sdk-ax", "{55B8D83A-ECF0-4DC7-891F-57D6E14A21DE}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{F54011DA-B863-4B96-B816-2E1888B76C2B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security.Blazor", "..\Security\src\AXOpen.Security.Blazor", "{CBBD91F5-7356-49B1-B03E-A1D0418B0C44}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{2BF8F800-E3A3-424F-8619-024368455CCB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Security", "..\Security\src\AXOpen.Security", "{23B74FAE-10ED-4216-B3D6-4848E0763BCB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{63C57262-998F-474C-86B0-AAF85D11D51A}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\Security\src", "{C8E8B774-7B9A-4BE4-80F6-41CF8FECA782}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{D15772C8-76E4-4B68-AB86-6862E89BCD07}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Security", "..\Security", "{257216F8-CC32-4B3F-98A6-0277007D571E}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{45F6DD62-FB3D-4150-B5FB-75DD81068F7C}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "..\simatic1500\ctrl\ix", "{E835591A-E7BF-4ADA-8D13-6401FC4269A0}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{78AB0E55-AFBD-48A4-9C4F-0E49DDCF3961}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ctrl", "..\simatic1500\ctrl", "{37385231-9EAD-44AE-A6D0-4AA434E229CA}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{D5C1D2BA-CBEF-4B3A-985E-F0D23C264CCF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "simatic1500", "..\simatic1500", "{E36B4971-09E7-466D-A44C-D6D775CD8610}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{D2BE15A6-6F8A-414F-BA5F-B0CD8C799FD2}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix-blazor", "app\ix-blazor", "{56CE7355-4A26-40CE-B2E2-DE3298B47123}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{08D41266-4DA4-42C4-8692-089758C33552}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ix", "app\ix", "{BA2F4F26-9506-46CC-88DA-B1E793226707}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{D85515EB-500B-452F-8EFA-3E16EFB41474}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{4ED9173F-407A-4562-AD3C-8DCFDC67D703}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname.blazor", "src\projname.blazor", "{D2206B82-DB44-4368-91E2-C0D95896EC70}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname.blazor", "src\projname.blazor", "{AECD4719-5BE2-4983-94D4-EFFD20423D3A}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname", "src\projname", "{DBEBA54B-F95B-4468-8791-A92923349297}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname", "src\projname", "{4E682B28-6817-4FF7-A418-2DBB8BB7350C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{72C4E0C8-0599-4F58-A4CC-6A28FBE2232B}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{F2CF0608-628F-44E3-88D2-4588C7B5EB34}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname.Tests", "tests\projname.Tests", "{9F127B25-CCE7-4AFB-AF58-71AF0FCF0768}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "projname.Tests", "tests\projname.Tests", "{0CE0DC27-9D52-44D8-BB32-381F4E9DDA63}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{6999F143-4285-4AE0-AF56-98EE97F6C405}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{22FCD536-8351-4ED5-8E5F-73AF84E53A61}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "template.axolibrary", "..\template.axolibrary", "{7BE24A49-F9C8-4F2A-B6DD-E6A6A1980ED4}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "template.axolibrary", "..\template.axolibrary", "{7AFDDD49-EC8E-46C5-A383-94E901143F99}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{21807121-6585-490F-980F-F0109FFA4CFE}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.Timers", "..\timers\src\AXOpen.Timers", "{10AAFF21-11A3-4292-9687-3C67B867849C}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\timers\src", "{D18A2482-15A5-4283-B148-AE95BD681B7D}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\timers\src", "{E2C9BDAB-0FF7-4D04-8ECC-7FB11D7F9BB4}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "timers", "..\timers", "{E31682F4-5EE9-42A9-A12D-A7FD3EB63ABB}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "timers", "..\timers", "{D5C99653-7D7E-49F7-9EC1-48591B81DCAF}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox", "{0257DA21-62A1-42FF-8CE0-DC95B1E6323F}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AXOpen.ToolBox", "..\toolbox\src\AXOpen.ToolBox", "{9F437A59-D5EB-4AA8-ADEA-F32DC11E31C5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\toolbox\src", "{D25FB2A5-F2A8-499D-A2E9-5C92535BD789}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "..\toolbox\src", "{854C0A2C-3C8E-4362-BFCD-764DEC6EF59D}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolbox", "..\toolbox", "{C012BAF8-5049-469D-9D8A-9769357B7EB0}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "toolbox", "..\toolbox", "{89F2F9EF-5874-4071-BBCB-48189F804183}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -147,163 +147,163 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {902E7017-5FD7-4465-B6D9-79A6E672F311}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {902E7017-5FD7-4465-B6D9-79A6E672F311}.Debug|Any CPU.Build.0 = Debug|Any CPU - {902E7017-5FD7-4465-B6D9-79A6E672F311}.Release|Any CPU.ActiveCfg = Release|Any CPU - {902E7017-5FD7-4465-B6D9-79A6E672F311}.Release|Any CPU.Build.0 = Release|Any CPU - {7E46AADE-6A69-4826-BF11-3D49C1C2CCB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7E46AADE-6A69-4826-BF11-3D49C1C2CCB2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7E46AADE-6A69-4826-BF11-3D49C1C2CCB2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7E46AADE-6A69-4826-BF11-3D49C1C2CCB2}.Release|Any CPU.Build.0 = Release|Any CPU - {E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11}.Release|Any CPU.Build.0 = Release|Any CPU - {0F839D6A-5E0E-42A2-90C6-E0A292248330}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0F839D6A-5E0E-42A2-90C6-E0A292248330}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0F839D6A-5E0E-42A2-90C6-E0A292248330}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0F839D6A-5E0E-42A2-90C6-E0A292248330}.Release|Any CPU.Build.0 = Release|Any CPU - {C2AA5414-2506-44E4-BB62-52CC1A17C249}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C2AA5414-2506-44E4-BB62-52CC1A17C249}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C2AA5414-2506-44E4-BB62-52CC1A17C249}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C2AA5414-2506-44E4-BB62-52CC1A17C249}.Release|Any CPU.Build.0 = Release|Any CPU - {2C7A664D-DF00-4034-8F31-02797D8266BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2C7A664D-DF00-4034-8F31-02797D8266BB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2C7A664D-DF00-4034-8F31-02797D8266BB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2C7A664D-DF00-4034-8F31-02797D8266BB}.Release|Any CPU.Build.0 = Release|Any CPU - {2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3}.Release|Any CPU.Build.0 = Release|Any CPU - {69E40960-DEDC-4F1D-ACB7-36D73AEF3E42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {69E40960-DEDC-4F1D-ACB7-36D73AEF3E42}.Debug|Any CPU.Build.0 = Debug|Any CPU - {69E40960-DEDC-4F1D-ACB7-36D73AEF3E42}.Release|Any CPU.ActiveCfg = Release|Any CPU - {69E40960-DEDC-4F1D-ACB7-36D73AEF3E42}.Release|Any CPU.Build.0 = Release|Any CPU - {D0C025F8-9C82-43D6-88BA-E34DD3EF3A50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D0C025F8-9C82-43D6-88BA-E34DD3EF3A50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D0C025F8-9C82-43D6-88BA-E34DD3EF3A50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D0C025F8-9C82-43D6-88BA-E34DD3EF3A50}.Release|Any CPU.Build.0 = Release|Any CPU - {8D677D97-D672-4A74-9113-35D63F1AC836}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8D677D97-D672-4A74-9113-35D63F1AC836}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8D677D97-D672-4A74-9113-35D63F1AC836}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8D677D97-D672-4A74-9113-35D63F1AC836}.Release|Any CPU.Build.0 = Release|Any CPU - {F858691C-2EA0-42E1-AA6C-C2B581B28C31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F858691C-2EA0-42E1-AA6C-C2B581B28C31}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F858691C-2EA0-42E1-AA6C-C2B581B28C31}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F858691C-2EA0-42E1-AA6C-C2B581B28C31}.Release|Any CPU.Build.0 = Release|Any CPU - {2E16D5AE-1D16-4C1F-AE03-CACBF424F01E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2E16D5AE-1D16-4C1F-AE03-CACBF424F01E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2E16D5AE-1D16-4C1F-AE03-CACBF424F01E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2E16D5AE-1D16-4C1F-AE03-CACBF424F01E}.Release|Any CPU.Build.0 = Release|Any CPU - {749FAF9E-E8D2-43D6-962E-DE29DD229952}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {749FAF9E-E8D2-43D6-962E-DE29DD229952}.Debug|Any CPU.Build.0 = Debug|Any CPU - {749FAF9E-E8D2-43D6-962E-DE29DD229952}.Release|Any CPU.ActiveCfg = Release|Any CPU - {749FAF9E-E8D2-43D6-962E-DE29DD229952}.Release|Any CPU.Build.0 = Release|Any CPU - {2AD7F8D6-0DDF-4D53-B5BF-EB084D483940}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2AD7F8D6-0DDF-4D53-B5BF-EB084D483940}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2AD7F8D6-0DDF-4D53-B5BF-EB084D483940}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2AD7F8D6-0DDF-4D53-B5BF-EB084D483940}.Release|Any CPU.Build.0 = Release|Any CPU - {BFF1094C-D6B9-4630-B1CE-EE731F8AA40D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BFF1094C-D6B9-4630-B1CE-EE731F8AA40D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BFF1094C-D6B9-4630-B1CE-EE731F8AA40D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BFF1094C-D6B9-4630-B1CE-EE731F8AA40D}.Release|Any CPU.Build.0 = Release|Any CPU - {BF593BBC-6257-4CE3-934A-B04A10C8785D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF593BBC-6257-4CE3-934A-B04A10C8785D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF593BBC-6257-4CE3-934A-B04A10C8785D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF593BBC-6257-4CE3-934A-B04A10C8785D}.Release|Any CPU.Build.0 = Release|Any CPU - {67839D77-E5A0-408D-8E9C-783E016A9AF2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {67839D77-E5A0-408D-8E9C-783E016A9AF2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {67839D77-E5A0-408D-8E9C-783E016A9AF2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {67839D77-E5A0-408D-8E9C-783E016A9AF2}.Release|Any CPU.Build.0 = Release|Any CPU - {05837168-77F7-4181-88FE-1C00D9AC04DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {05837168-77F7-4181-88FE-1C00D9AC04DB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {05837168-77F7-4181-88FE-1C00D9AC04DB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {05837168-77F7-4181-88FE-1C00D9AC04DB}.Release|Any CPU.Build.0 = Release|Any CPU - {C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF}.Release|Any CPU.Build.0 = Release|Any CPU - {9BCC2EA2-9596-450D-874A-F89A4FDE19D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9BCC2EA2-9596-450D-874A-F89A4FDE19D9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9BCC2EA2-9596-450D-874A-F89A4FDE19D9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9BCC2EA2-9596-450D-874A-F89A4FDE19D9}.Release|Any CPU.Build.0 = Release|Any CPU - {91C3A799-619E-4CD6-B8D6-4662A4E46764}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {91C3A799-619E-4CD6-B8D6-4662A4E46764}.Debug|Any CPU.Build.0 = Debug|Any CPU - {91C3A799-619E-4CD6-B8D6-4662A4E46764}.Release|Any CPU.ActiveCfg = Release|Any CPU - {91C3A799-619E-4CD6-B8D6-4662A4E46764}.Release|Any CPU.Build.0 = Release|Any CPU - {25DB2B9E-936A-4CDF-AF86-49D295655E55}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {25DB2B9E-936A-4CDF-AF86-49D295655E55}.Debug|Any CPU.Build.0 = Debug|Any CPU - {25DB2B9E-936A-4CDF-AF86-49D295655E55}.Release|Any CPU.ActiveCfg = Release|Any CPU - {25DB2B9E-936A-4CDF-AF86-49D295655E55}.Release|Any CPU.Build.0 = Release|Any CPU - {80F6983B-9996-429A-A5D1-7A80E70FAAC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80F6983B-9996-429A-A5D1-7A80E70FAAC6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {80F6983B-9996-429A-A5D1-7A80E70FAAC6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {80F6983B-9996-429A-A5D1-7A80E70FAAC6}.Release|Any CPU.Build.0 = Release|Any CPU + {67CD4038-2DA0-46CD-A8C1-502357F5F752}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {67CD4038-2DA0-46CD-A8C1-502357F5F752}.Debug|Any CPU.Build.0 = Debug|Any CPU + {67CD4038-2DA0-46CD-A8C1-502357F5F752}.Release|Any CPU.ActiveCfg = Release|Any CPU + {67CD4038-2DA0-46CD-A8C1-502357F5F752}.Release|Any CPU.Build.0 = Release|Any CPU + {C6856CD1-4C41-49A9-85EC-F1E0A7B104A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C6856CD1-4C41-49A9-85EC-F1E0A7B104A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C6856CD1-4C41-49A9-85EC-F1E0A7B104A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C6856CD1-4C41-49A9-85EC-F1E0A7B104A8}.Release|Any CPU.Build.0 = Release|Any CPU + {D38F7F87-F76E-440E-9538-EEAF0A10E467}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D38F7F87-F76E-440E-9538-EEAF0A10E467}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D38F7F87-F76E-440E-9538-EEAF0A10E467}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D38F7F87-F76E-440E-9538-EEAF0A10E467}.Release|Any CPU.Build.0 = Release|Any CPU + {D293D41E-3222-4B4D-A28C-22A829F96EB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D293D41E-3222-4B4D-A28C-22A829F96EB7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D293D41E-3222-4B4D-A28C-22A829F96EB7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D293D41E-3222-4B4D-A28C-22A829F96EB7}.Release|Any CPU.Build.0 = Release|Any CPU + {12F3D3F4-6D77-43D7-A53F-DD696202B8F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12F3D3F4-6D77-43D7-A53F-DD696202B8F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12F3D3F4-6D77-43D7-A53F-DD696202B8F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12F3D3F4-6D77-43D7-A53F-DD696202B8F4}.Release|Any CPU.Build.0 = Release|Any CPU + {B6C481DE-422F-48AB-B913-B03CBA58AFC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B6C481DE-422F-48AB-B913-B03CBA58AFC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B6C481DE-422F-48AB-B913-B03CBA58AFC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B6C481DE-422F-48AB-B913-B03CBA58AFC9}.Release|Any CPU.Build.0 = Release|Any CPU + {41261E01-E9EB-4861-94B8-B1397C36D4C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {41261E01-E9EB-4861-94B8-B1397C36D4C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {41261E01-E9EB-4861-94B8-B1397C36D4C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {41261E01-E9EB-4861-94B8-B1397C36D4C1}.Release|Any CPU.Build.0 = Release|Any CPU + {EC61E583-37A6-40FD-BEA4-630965D8A0F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC61E583-37A6-40FD-BEA4-630965D8A0F7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC61E583-37A6-40FD-BEA4-630965D8A0F7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC61E583-37A6-40FD-BEA4-630965D8A0F7}.Release|Any CPU.Build.0 = Release|Any CPU + {D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058}.Release|Any CPU.Build.0 = Release|Any CPU + {84529EA3-ACB5-42CB-A341-EC0F1B2AAD18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84529EA3-ACB5-42CB-A341-EC0F1B2AAD18}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84529EA3-ACB5-42CB-A341-EC0F1B2AAD18}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84529EA3-ACB5-42CB-A341-EC0F1B2AAD18}.Release|Any CPU.Build.0 = Release|Any CPU + {3F324A20-466E-42C4-98E1-676BBE49BDF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3F324A20-466E-42C4-98E1-676BBE49BDF5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3F324A20-466E-42C4-98E1-676BBE49BDF5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3F324A20-466E-42C4-98E1-676BBE49BDF5}.Release|Any CPU.Build.0 = Release|Any CPU + {83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D}.Release|Any CPU.Build.0 = Release|Any CPU + {1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2}.Release|Any CPU.Build.0 = Release|Any CPU + {8C6B9021-83E8-4E25-A4AC-1529F3D0FD51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C6B9021-83E8-4E25-A4AC-1529F3D0FD51}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C6B9021-83E8-4E25-A4AC-1529F3D0FD51}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C6B9021-83E8-4E25-A4AC-1529F3D0FD51}.Release|Any CPU.Build.0 = Release|Any CPU + {8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8}.Release|Any CPU.Build.0 = Release|Any CPU + {4E37D22B-48DC-40EE-BD59-91D209C33B17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4E37D22B-48DC-40EE-BD59-91D209C33B17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4E37D22B-48DC-40EE-BD59-91D209C33B17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4E37D22B-48DC-40EE-BD59-91D209C33B17}.Release|Any CPU.Build.0 = Release|Any CPU + {DDAB6F44-79E0-46EA-AC71-A184487BA3A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDAB6F44-79E0-46EA-AC71-A184487BA3A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDAB6F44-79E0-46EA-AC71-A184487BA3A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDAB6F44-79E0-46EA-AC71-A184487BA3A6}.Release|Any CPU.Build.0 = Release|Any CPU + {2F6DD73B-E93C-4508-868C-5EDA63F7EF9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2F6DD73B-E93C-4508-868C-5EDA63F7EF9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2F6DD73B-E93C-4508-868C-5EDA63F7EF9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2F6DD73B-E93C-4508-868C-5EDA63F7EF9B}.Release|Any CPU.Build.0 = Release|Any CPU + {F2191F02-CF27-4C7E-B935-67E80CECD82D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F2191F02-CF27-4C7E-B935-67E80CECD82D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F2191F02-CF27-4C7E-B935-67E80CECD82D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F2191F02-CF27-4C7E-B935-67E80CECD82D}.Release|Any CPU.Build.0 = Release|Any CPU + {D39A1160-FA35-41E8-BF16-059E40AC585D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D39A1160-FA35-41E8-BF16-059E40AC585D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D39A1160-FA35-41E8-BF16-059E40AC585D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D39A1160-FA35-41E8-BF16-059E40AC585D}.Release|Any CPU.Build.0 = Release|Any CPU + {6E0AA6DA-327E-41C3-A15A-56BCF0A74717}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6E0AA6DA-327E-41C3-A15A-56BCF0A74717}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6E0AA6DA-327E-41C3-A15A-56BCF0A74717}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6E0AA6DA-327E-41C3-A15A-56BCF0A74717}.Release|Any CPU.Build.0 = Release|Any CPU + {BC9625E4-1657-4451-9E06-01051DF8A114}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {BC9625E4-1657-4451-9E06-01051DF8A114}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BC9625E4-1657-4451-9E06-01051DF8A114}.Release|Any CPU.ActiveCfg = Release|Any CPU + {BC9625E4-1657-4451-9E06-01051DF8A114}.Release|Any CPU.Build.0 = Release|Any CPU + {5DDD6ADE-F298-447C-835F-28069EE0EC58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5DDD6ADE-F298-447C-835F-28069EE0EC58}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5DDD6ADE-F298-447C-835F-28069EE0EC58}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5DDD6ADE-F298-447C-835F-28069EE0EC58}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {7E46AADE-6A69-4826-BF11-3D49C1C2CCB2} = {592D668C-BE54-4809-94E1-B9EC47079748} - {592D668C-BE54-4809-94E1-B9EC47079748} = {8747A0CF-13AE-4AB8-897A-31485EC344BB} - {8747A0CF-13AE-4AB8-897A-31485EC344BB} = {37254B3E-14EC-4772-A4D8-D3491483C6CD} - {E93FBEB2-F8E2-4A0F-BFF0-A8B7A3639F11} = {4152A2B1-E864-4967-9A73-8F6DC35A0D22} - {4152A2B1-E864-4967-9A73-8F6DC35A0D22} = {6200D173-599C-4BB7-8FA8-D116FD28EAC8} - {0F839D6A-5E0E-42A2-90C6-E0A292248330} = {4B355348-C300-40AD-8A94-3AD08E568A18} - {4B355348-C300-40AD-8A94-3AD08E568A18} = {6200D173-599C-4BB7-8FA8-D116FD28EAC8} - {C2AA5414-2506-44E4-BB62-52CC1A17C249} = {D7BF74A6-4D99-42BE-A873-DAA7D69483F5} - {D7BF74A6-4D99-42BE-A873-DAA7D69483F5} = {6200D173-599C-4BB7-8FA8-D116FD28EAC8} - {6200D173-599C-4BB7-8FA8-D116FD28EAC8} = {8D880A21-6B15-4C31-A15C-6A1ED0705F5D} - {2C7A664D-DF00-4034-8F31-02797D8266BB} = {BF0849BF-A5CD-4D6E-AB96-3268CDDD3983} - {BF0849BF-A5CD-4D6E-AB96-3268CDDD3983} = {4D6EE05D-3858-4AFC-BF31-696B62B7CB2D} - {4D6EE05D-3858-4AFC-BF31-696B62B7CB2D} = {EFE85F6C-A38D-43AD-826B-5B1972448C01} - {2300CD72-A3CD-46C5-B9A2-96E6BA4A07A3} = {966D30DC-22FF-4B68-9B6C-A75880491E9A} - {966D30DC-22FF-4B68-9B6C-A75880491E9A} = {B1D0CA39-E22A-4151-852B-B5B3D1F72D84} - {69E40960-DEDC-4F1D-ACB7-36D73AEF3E42} = {2CB8D4A8-F2AC-4864-B192-9CDEE9104C2B} - {2CB8D4A8-F2AC-4864-B192-9CDEE9104C2B} = {B1D0CA39-E22A-4151-852B-B5B3D1F72D84} - {B1D0CA39-E22A-4151-852B-B5B3D1F72D84} = {FCFF2077-608A-4A91-B8C6-C8F96A03DA03} - {D0C025F8-9C82-43D6-88BA-E34DD3EF3A50} = {242736CA-B2D1-4BC9-8F8D-2BA219B69041} - {242736CA-B2D1-4BC9-8F8D-2BA219B69041} = {72610BEC-C13E-486F-A8F4-4B5353D02F5C} - {72610BEC-C13E-486F-A8F4-4B5353D02F5C} = {E0BC61EE-C644-435A-B0EB-A2E82F311EBA} - {E0BC61EE-C644-435A-B0EB-A2E82F311EBA} = {6DF5C549-3338-4E81-8CEA-D2309675C071} - {8D677D97-D672-4A74-9113-35D63F1AC836} = {6CB60315-E8FC-4148-8941-66BB0F6FD055} - {6CB60315-E8FC-4148-8941-66BB0F6FD055} = {010104A6-93C7-45DD-BBEC-32DCB2EFFEFD} - {F858691C-2EA0-42E1-AA6C-C2B581B28C31} = {6BB59B3F-5A68-4D48-B467-9C17ADAB0BA7} - {6BB59B3F-5A68-4D48-B467-9C17ADAB0BA7} = {010104A6-93C7-45DD-BBEC-32DCB2EFFEFD} - {010104A6-93C7-45DD-BBEC-32DCB2EFFEFD} = {29D84282-1D41-451C-891D-D556A77B4E3D} - {2E16D5AE-1D16-4C1F-AE03-CACBF424F01E} = {4A7656B3-1522-453F-BC2C-3CB06B4F1EA6} - {4A7656B3-1522-453F-BC2C-3CB06B4F1EA6} = {CAE109E0-AF84-4576-90A2-0774921246E1} - {CAE109E0-AF84-4576-90A2-0774921246E1} = {4D845138-707B-493F-A6B9-A681B85782E4} - {749FAF9E-E8D2-43D6-962E-DE29DD229952} = {F54011DA-B863-4B96-B816-2E1888B76C2B} - {F54011DA-B863-4B96-B816-2E1888B76C2B} = {63C57262-998F-474C-86B0-AAF85D11D51A} - {2AD7F8D6-0DDF-4D53-B5BF-EB084D483940} = {2BF8F800-E3A3-424F-8619-024368455CCB} - {2BF8F800-E3A3-424F-8619-024368455CCB} = {63C57262-998F-474C-86B0-AAF85D11D51A} - {63C57262-998F-474C-86B0-AAF85D11D51A} = {D15772C8-76E4-4B68-AB86-6862E89BCD07} - {BFF1094C-D6B9-4630-B1CE-EE731F8AA40D} = {45F6DD62-FB3D-4150-B5FB-75DD81068F7C} - {45F6DD62-FB3D-4150-B5FB-75DD81068F7C} = {78AB0E55-AFBD-48A4-9C4F-0E49DDCF3961} - {78AB0E55-AFBD-48A4-9C4F-0E49DDCF3961} = {D5C1D2BA-CBEF-4B3A-985E-F0D23C264CCF} - {BF593BBC-6257-4CE3-934A-B04A10C8785D} = {D2BE15A6-6F8A-414F-BA5F-B0CD8C799FD2} - {D2BE15A6-6F8A-414F-BA5F-B0CD8C799FD2} = {D85515EB-500B-452F-8EFA-3E16EFB41474} - {67839D77-E5A0-408D-8E9C-783E016A9AF2} = {08D41266-4DA4-42C4-8692-089758C33552} - {08D41266-4DA4-42C4-8692-089758C33552} = {D85515EB-500B-452F-8EFA-3E16EFB41474} - {D85515EB-500B-452F-8EFA-3E16EFB41474} = {7BE24A49-F9C8-4F2A-B6DD-E6A6A1980ED4} - {05837168-77F7-4181-88FE-1C00D9AC04DB} = {D2206B82-DB44-4368-91E2-C0D95896EC70} - {D2206B82-DB44-4368-91E2-C0D95896EC70} = {72C4E0C8-0599-4F58-A4CC-6A28FBE2232B} - {C01B3B9C-0FA4-4A42-878F-AC0FC61AF8BF} = {DBEBA54B-F95B-4468-8791-A92923349297} - {9BCC2EA2-9596-450D-874A-F89A4FDE19D9} = {DBEBA54B-F95B-4468-8791-A92923349297} - {DBEBA54B-F95B-4468-8791-A92923349297} = {72C4E0C8-0599-4F58-A4CC-6A28FBE2232B} - {72C4E0C8-0599-4F58-A4CC-6A28FBE2232B} = {7BE24A49-F9C8-4F2A-B6DD-E6A6A1980ED4} - {91C3A799-619E-4CD6-B8D6-4662A4E46764} = {9F127B25-CCE7-4AFB-AF58-71AF0FCF0768} - {9F127B25-CCE7-4AFB-AF58-71AF0FCF0768} = {6999F143-4285-4AE0-AF56-98EE97F6C405} - {6999F143-4285-4AE0-AF56-98EE97F6C405} = {7BE24A49-F9C8-4F2A-B6DD-E6A6A1980ED4} - {25DB2B9E-936A-4CDF-AF86-49D295655E55} = {21807121-6585-490F-980F-F0109FFA4CFE} - {21807121-6585-490F-980F-F0109FFA4CFE} = {D18A2482-15A5-4283-B148-AE95BD681B7D} - {D18A2482-15A5-4283-B148-AE95BD681B7D} = {E31682F4-5EE9-42A9-A12D-A7FD3EB63ABB} - {80F6983B-9996-429A-A5D1-7A80E70FAAC6} = {0257DA21-62A1-42FF-8CE0-DC95B1E6323F} - {0257DA21-62A1-42FF-8CE0-DC95B1E6323F} = {D25FB2A5-F2A8-499D-A2E9-5C92535BD789} - {D25FB2A5-F2A8-499D-A2E9-5C92535BD789} = {C012BAF8-5049-469D-9D8A-9769357B7EB0} + {C6856CD1-4C41-49A9-85EC-F1E0A7B104A8} = {DDFFD700-706D-4A95-B823-2174F01E4D4F} + {DDFFD700-706D-4A95-B823-2174F01E4D4F} = {8A20153A-B655-4960-8C58-BC182D10188E} + {8A20153A-B655-4960-8C58-BC182D10188E} = {90049871-98EA-4650-8EE1-13BF2D56FBA6} + {D38F7F87-F76E-440E-9538-EEAF0A10E467} = {E1DEC794-7BC8-4A29-AF55-99D1C5426329} + {E1DEC794-7BC8-4A29-AF55-99D1C5426329} = {0B67534D-C3C8-4B57-B380-BFEDB8AB8130} + {D293D41E-3222-4B4D-A28C-22A829F96EB7} = {99AFF3B5-4BD7-40E1-91A3-3C9FDF35B8FC} + {99AFF3B5-4BD7-40E1-91A3-3C9FDF35B8FC} = {0B67534D-C3C8-4B57-B380-BFEDB8AB8130} + {12F3D3F4-6D77-43D7-A53F-DD696202B8F4} = {35B97612-8E86-4640-9F1B-EAF82B845167} + {35B97612-8E86-4640-9F1B-EAF82B845167} = {0B67534D-C3C8-4B57-B380-BFEDB8AB8130} + {0B67534D-C3C8-4B57-B380-BFEDB8AB8130} = {AF58FD16-A074-4B12-891F-FAEB3B9A9A60} + {B6C481DE-422F-48AB-B913-B03CBA58AFC9} = {0E6AC2AA-1F7B-4CCA-AEF2-C09652C0692A} + {0E6AC2AA-1F7B-4CCA-AEF2-C09652C0692A} = {53C1B9CC-F3F7-4CB5-80FD-6B4564B5CB50} + {53C1B9CC-F3F7-4CB5-80FD-6B4564B5CB50} = {8A273C6A-61D3-4430-9B74-3D483179CFEF} + {41261E01-E9EB-4861-94B8-B1397C36D4C1} = {D57D73B0-36D1-4AB4-80DA-90C61FFA66BA} + {D57D73B0-36D1-4AB4-80DA-90C61FFA66BA} = {8293B20A-048E-4A19-BEDC-BC0179F1E768} + {EC61E583-37A6-40FD-BEA4-630965D8A0F7} = {B6FCE309-610F-41ED-A8BE-5403AA0EC84A} + {B6FCE309-610F-41ED-A8BE-5403AA0EC84A} = {8293B20A-048E-4A19-BEDC-BC0179F1E768} + {8293B20A-048E-4A19-BEDC-BC0179F1E768} = {1A125802-0609-41F7-94CB-CF930CA99A15} + {D3AEB3FC-4C3D-4EE7-BADD-1EB57B273058} = {5BBF3E7B-2C26-4B3D-A927-EF975139FB98} + {5BBF3E7B-2C26-4B3D-A927-EF975139FB98} = {16C6E0CF-C8FD-480D-BD02-2EBD82A90CA8} + {16C6E0CF-C8FD-480D-BD02-2EBD82A90CA8} = {BFF70E7E-614B-4AA8-A59E-8DADED37C81B} + {BFF70E7E-614B-4AA8-A59E-8DADED37C81B} = {9A9F0C73-67BC-4926-877A-953C42A0351D} + {84529EA3-ACB5-42CB-A341-EC0F1B2AAD18} = {1283E98C-BFF3-4BEE-AB9D-4FE2FDC59948} + {1283E98C-BFF3-4BEE-AB9D-4FE2FDC59948} = {20A5409B-D58C-4887-935B-AFA4E80C708F} + {3F324A20-466E-42C4-98E1-676BBE49BDF5} = {6BFCE625-857C-4B40-9B99-8084969B5935} + {6BFCE625-857C-4B40-9B99-8084969B5935} = {20A5409B-D58C-4887-935B-AFA4E80C708F} + {20A5409B-D58C-4887-935B-AFA4E80C708F} = {BE480528-89F8-41D2-B9B8-8E3220BDC43B} + {83BE07EC-C4F2-42C2-8CE5-2B576EF4E60D} = {93471548-566E-46C7-A2E7-BB78081C84CD} + {93471548-566E-46C7-A2E7-BB78081C84CD} = {F1906525-5660-4376-BD90-D56660B62BB8} + {F1906525-5660-4376-BD90-D56660B62BB8} = {55B8D83A-ECF0-4DC7-891F-57D6E14A21DE} + {1B0D0E3B-7C28-43C4-9564-1FF370AAE9B2} = {CBBD91F5-7356-49B1-B03E-A1D0418B0C44} + {CBBD91F5-7356-49B1-B03E-A1D0418B0C44} = {C8E8B774-7B9A-4BE4-80F6-41CF8FECA782} + {8C6B9021-83E8-4E25-A4AC-1529F3D0FD51} = {23B74FAE-10ED-4216-B3D6-4848E0763BCB} + {23B74FAE-10ED-4216-B3D6-4848E0763BCB} = {C8E8B774-7B9A-4BE4-80F6-41CF8FECA782} + {C8E8B774-7B9A-4BE4-80F6-41CF8FECA782} = {257216F8-CC32-4B3F-98A6-0277007D571E} + {8F3FCF54-3F81-4B60-BCF8-BADA37FB20F8} = {E835591A-E7BF-4ADA-8D13-6401FC4269A0} + {E835591A-E7BF-4ADA-8D13-6401FC4269A0} = {37385231-9EAD-44AE-A6D0-4AA434E229CA} + {37385231-9EAD-44AE-A6D0-4AA434E229CA} = {E36B4971-09E7-466D-A44C-D6D775CD8610} + {4E37D22B-48DC-40EE-BD59-91D209C33B17} = {56CE7355-4A26-40CE-B2E2-DE3298B47123} + {56CE7355-4A26-40CE-B2E2-DE3298B47123} = {4ED9173F-407A-4562-AD3C-8DCFDC67D703} + {DDAB6F44-79E0-46EA-AC71-A184487BA3A6} = {BA2F4F26-9506-46CC-88DA-B1E793226707} + {BA2F4F26-9506-46CC-88DA-B1E793226707} = {4ED9173F-407A-4562-AD3C-8DCFDC67D703} + {4ED9173F-407A-4562-AD3C-8DCFDC67D703} = {7AFDDD49-EC8E-46C5-A383-94E901143F99} + {2F6DD73B-E93C-4508-868C-5EDA63F7EF9B} = {AECD4719-5BE2-4983-94D4-EFFD20423D3A} + {AECD4719-5BE2-4983-94D4-EFFD20423D3A} = {F2CF0608-628F-44E3-88D2-4588C7B5EB34} + {F2191F02-CF27-4C7E-B935-67E80CECD82D} = {4E682B28-6817-4FF7-A418-2DBB8BB7350C} + {D39A1160-FA35-41E8-BF16-059E40AC585D} = {4E682B28-6817-4FF7-A418-2DBB8BB7350C} + {4E682B28-6817-4FF7-A418-2DBB8BB7350C} = {F2CF0608-628F-44E3-88D2-4588C7B5EB34} + {F2CF0608-628F-44E3-88D2-4588C7B5EB34} = {7AFDDD49-EC8E-46C5-A383-94E901143F99} + {6E0AA6DA-327E-41C3-A15A-56BCF0A74717} = {0CE0DC27-9D52-44D8-BB32-381F4E9DDA63} + {0CE0DC27-9D52-44D8-BB32-381F4E9DDA63} = {22FCD536-8351-4ED5-8E5F-73AF84E53A61} + {22FCD536-8351-4ED5-8E5F-73AF84E53A61} = {7AFDDD49-EC8E-46C5-A383-94E901143F99} + {BC9625E4-1657-4451-9E06-01051DF8A114} = {10AAFF21-11A3-4292-9687-3C67B867849C} + {10AAFF21-11A3-4292-9687-3C67B867849C} = {E2C9BDAB-0FF7-4D04-8ECC-7FB11D7F9BB4} + {E2C9BDAB-0FF7-4D04-8ECC-7FB11D7F9BB4} = {D5C99653-7D7E-49F7-9EC1-48591B81DCAF} + {5DDD6ADE-F298-447C-835F-28069EE0EC58} = {9F437A59-D5EB-4AA8-ADEA-F32DC11E31C5} + {9F437A59-D5EB-4AA8-ADEA-F32DC11E31C5} = {854C0A2C-3C8E-4362-BFCD-764DEC6EF59D} + {854C0A2C-3C8E-4362-BFCD-764DEC6EF59D} = {89F2F9EF-5874-4071-BBCB-48189F804183} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {A2594D51-882F-4252-9659-AB1CB825AA39} + SolutionGuid = {C0CE2BD1-6F33-4899-BD2C-82F6435327B0} EndGlobalSection EndGlobal From ed99b20dfdb61b80c0ef45236294af83a12c0e0a Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 23:18:56 +0100 Subject: [PATCH 19/21] cleaning of the generated files for template.axopenlibrary added, so as addition dotne ixc run for simple app test run --- cake/AppsRunTaskHelpers.cs | 16 + cake/Program.cs | 486 ++++++++++++++-------------- cake/Properties/launchSettings.json | 4 + 3 files changed, 263 insertions(+), 243 deletions(-) diff --git a/cake/AppsRunTaskHelpers.cs b/cake/AppsRunTaskHelpers.cs index 6c089d125..e521c6214 100644 --- a/cake/AppsRunTaskHelpers.cs +++ b/cake/AppsRunTaskHelpers.cs @@ -150,6 +150,22 @@ public static void AppRunDetailed(BuildContext context, string appYamlFile, stri result = DotNetCmd.DotNetClean(context, solutionFile, "-c Debug", ref summaryResult); WriteResult(context, result, logFilePath, appendToSameLine: true); + //########################## template.axolibrary => ######################// + if (appFolder.Contains("template.axolibrary")) + { + string dot_g_folder = Path.GetFullPath(Path.Combine(appFolder, "ix//.g")); + context.CleanDirectory(dot_g_folder, new CleanDirectorySettings() { Force = true }); + + string dot_meta_folder = Path.GetFullPath(Path.Combine(appFolder, "ix//.meta")); + context.CleanDirectory(dot_meta_folder, new CleanDirectorySettings() { Force = true }); + + // Run "dotnet ixc" + result = DotNetCmd.DotNetIxc(context, appFolder, ref summaryResult); + WriteResult(context, result, logFilePath, appendToSameLine: true); + } + + //########################## <= template.axolibrary ######################// + // Build solution result = DotNetCmd.DotNetBuildWithResult(context, solutionFile, "-c Debug", ref summaryResult); WriteResult(context, result, logFilePath, appendToSameLine: true); diff --git a/cake/Program.cs b/cake/Program.cs index 0e42e6ac9..03dea950b 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -69,251 +69,251 @@ public static int Main(string[] args) } } -[TaskName("CleanUp")] -public sealed class CleanUpTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - context.Log.Information("Build running with following parameters:"); - context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); - - if (context.IsGitHubActions) - { - context.BuildParameters.CleanUp = true; - } - - if (!context.BuildParameters.CleanUp) - { - context.Log.Information($"Skipping clean-up"); - return; - } - - Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); - - context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity }); - context.CleanDirectory(context.BuildsOutput); - context.CleanDirectory(context.Artifacts); - context.CleanDirectory(context.TestResults); - context.CleanDirectory(context.TestResultsCtrl); - } -} - -[TaskName("Provision")] -[IsDependentOn(typeof(CleanUpTask))] -public sealed class ProvisionTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - ProvisionTools(context); - - foreach (var library in context.Libraries) - { - context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); - } - } - - private static void ProvisionTools(BuildContext context) - { - context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() - { - Arguments = $"tool restore", - WorkingDirectory = context.RootDir - }).WaitForExit(); - } -} - -[TaskName("CatalogInstall")] -[IsDependentOn(typeof(ProvisionTask))] -public sealed class CatalogInstallTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - context.Libraries.ToList().ForEach(lib => - { - foreach (var apaxfile in context.GetApaxFiles(lib)) - { - context.ApaxCatalogInstall(apaxfile); - } - }); - - - } -} - -[TaskName("Build")] -[IsDependentOn(typeof(CatalogInstallTask))] -public sealed class BuildTask : FrostingTask -{ - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - if (context.BuildParameters.DoPack) - { - context.Libraries.ToList().ForEach(lib => - { - foreach (var apaxfile in context.GetApaxFiles(lib)) - { - context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); - context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); - } - }); - - context.Libraries.ToList().ForEach(lib => - { - foreach (var apaxfile in context.GetApaxFiles(lib)) - { - context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); - } - }); - } - - var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); - if (!context.BuildParameters.NoBuild) - { - var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); - context.CreateApaxTraversal(context.RootDir, traversalProject); - context.ApaxInstall(new[] { traversalProjectFolder }); - context.DotnetIxc(new[] { traversalProjectFolder }); - context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; - context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() - { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + - "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + - "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" - }); - context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); - } - - if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) - { - context.ApaxBuild(new[] { traversalProjectFolder }); - } - } -} - -[TaskName("Tests")] -[IsDependentOn(typeof(BuildTask))] -public sealed class TestsTask : FrostingTask -{ - // Tasks can be asynchronous - public override void Run(BuildContext context) - { - if (context.BuildParameters.PublishOnly) - { - context.Log.Information("Skipping. Publish only."); - return; - } - - if (!context.BuildParameters.DoTest) - { - context.Log.Warning($"Skipping tests"); - return; - } - - - if (context.BuildParameters.Paralellize) - { - context.Libraries.ToList().ForEach(lib => - { - context.ApaxClean(lib); - context.ApaxInstall(context.GetLibraryAxFolders(lib)); - context.ApaxBuild(context.GetLibraryAxFolders(lib)); - context.ApaxTestLibrary(lib); - if (context.BuildParameters.DoPack) - { - context.ApaxPack(lib); - context.ApaxCopyArtifacts(lib); - } - context.ApaxClean(lib); - }); - - } - else - { - context.Libraries.ToList().ForEach(lib => - { - context.Log.Information($"---------------------------------"); - context.Log.Information($"Testing {lib.folder}"); - context.Log.Information($"---------------------------------"); - context.ApaxClean(lib); - context.ApaxInstall(context.GetLibraryAxFolders(lib)); - context.ApaxBuild(context.GetLibraryAxFolders(lib)); - context.ApaxTestLibrary(lib); - if (context.BuildParameters.DoPack) - { - context.ApaxPack(lib); - context.ApaxCopyArtifacts(lib); - } - context.ApaxClean(lib); - }); - } - - - - - if (context.BuildParameters.TestLevel == 1) - { - context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); - } - if (context.BuildParameters.TestLevel == 2) - { - - context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); - } - if (context.BuildParameters.TestLevel >= 3) - { - foreach (var package in context.Libraries) - { - var app = Path.Combine(context.RootDir, package.folder, "app"); - var ax = Path.Combine(context.RootDir, package.folder, "ax"); - - if (Directory.Exists(app)) - { - context.ApaxDownload(app); - } - else if (Directory.Exists(ax)) - { - context.ApaxDownload(ax); - } - else - { - //throw new Exception($"No app or ax folder found for {package.folder}"); - context.Log.Information($"No app or ax folder found for {package.folder}"); - break; - } - - context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); - } - } - - context.Log.Information("Tests done."); - } -} +//[TaskName("CleanUp")] +//public sealed class CleanUpTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// context.Log.Information("Build running with following parameters:"); +// context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); + +// if (context.IsGitHubActions) +// { +// context.BuildParameters.CleanUp = true; +// } + +// if (!context.BuildParameters.CleanUp) +// { +// context.Log.Information($"Skipping clean-up"); +// return; +// } + +// Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); + +// context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity }); +// context.CleanDirectory(context.BuildsOutput); +// context.CleanDirectory(context.Artifacts); +// context.CleanDirectory(context.TestResults); +// context.CleanDirectory(context.TestResultsCtrl); +// } +//} + +//[TaskName("Provision")] +//[IsDependentOn(typeof(CleanUpTask))] +//public sealed class ProvisionTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// ProvisionTools(context); + +// foreach (var library in context.Libraries) +// { +// context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); +// } +// } + +// private static void ProvisionTools(BuildContext context) +// { +// context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() +// { +// Arguments = $"tool restore", +// WorkingDirectory = context.RootDir +// }).WaitForExit(); +// } +//} + +//[TaskName("CatalogInstall")] +//[IsDependentOn(typeof(ProvisionTask))] +//public sealed class CatalogInstallTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// context.Libraries.ToList().ForEach(lib => +// { +// foreach (var apaxfile in context.GetApaxFiles(lib)) +// { +// context.ApaxCatalogInstall(apaxfile); +// } +// }); + + +// } +//} + +//[TaskName("Build")] +//[IsDependentOn(typeof(CatalogInstallTask))] +//public sealed class BuildTask : FrostingTask +//{ +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// if (context.BuildParameters.DoPack) +// { +// context.Libraries.ToList().ForEach(lib => +// { +// foreach (var apaxfile in context.GetApaxFiles(lib)) +// { +// context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); +// context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); +// } +// }); + +// context.Libraries.ToList().ForEach(lib => +// { +// foreach (var apaxfile in context.GetApaxFiles(lib)) +// { +// context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); +// } +// }); +// } + +// var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); +// if (!context.BuildParameters.NoBuild) +// { +// var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); +// context.CreateApaxTraversal(context.RootDir, traversalProject); +// context.ApaxInstall(new[] { traversalProjectFolder }); +// context.DotnetIxc(new[] { traversalProjectFolder }); +// context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; +// context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() +// { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + +// "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + +// "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" +// }); +// context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); +// } + +// if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) +// { +// context.ApaxBuild(new[] { traversalProjectFolder }); +// } +// } +//} + +//[TaskName("Tests")] +//[IsDependentOn(typeof(BuildTask))] +//public sealed class TestsTask : FrostingTask +//{ +// // Tasks can be asynchronous +// public override void Run(BuildContext context) +// { +// if (context.BuildParameters.PublishOnly) +// { +// context.Log.Information("Skipping. Publish only."); +// return; +// } + +// if (!context.BuildParameters.DoTest) +// { +// context.Log.Warning($"Skipping tests"); +// return; +// } + + +// if (context.BuildParameters.Paralellize) +// { +// context.Libraries.ToList().ForEach(lib => +// { +// context.ApaxClean(lib); +// context.ApaxInstall(context.GetLibraryAxFolders(lib)); +// context.ApaxBuild(context.GetLibraryAxFolders(lib)); +// context.ApaxTestLibrary(lib); +// if (context.BuildParameters.DoPack) +// { +// context.ApaxPack(lib); +// context.ApaxCopyArtifacts(lib); +// } +// context.ApaxClean(lib); +// }); + +// } +// else +// { +// context.Libraries.ToList().ForEach(lib => +// { +// context.Log.Information($"---------------------------------"); +// context.Log.Information($"Testing {lib.folder}"); +// context.Log.Information($"---------------------------------"); +// context.ApaxClean(lib); +// context.ApaxInstall(context.GetLibraryAxFolders(lib)); +// context.ApaxBuild(context.GetLibraryAxFolders(lib)); +// context.ApaxTestLibrary(lib); +// if (context.BuildParameters.DoPack) +// { +// context.ApaxPack(lib); +// context.ApaxCopyArtifacts(lib); +// } +// context.ApaxClean(lib); +// }); +// } + + + + +// if (context.BuildParameters.TestLevel == 1) +// { +// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); +// } +// if (context.BuildParameters.TestLevel == 2) +// { + +// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); +// } +// if (context.BuildParameters.TestLevel >= 3) +// { +// foreach (var package in context.Libraries) +// { +// var app = Path.Combine(context.RootDir, package.folder, "app"); +// var ax = Path.Combine(context.RootDir, package.folder, "ax"); + +// if (Directory.Exists(app)) +// { +// context.ApaxDownload(app); +// } +// else if (Directory.Exists(ax)) +// { +// context.ApaxDownload(ax); +// } +// else +// { +// //throw new Exception($"No app or ax folder found for {package.folder}"); +// context.Log.Information($"No app or ax folder found for {package.folder}"); +// break; +// } + +// context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); +// } +// } + +// context.Log.Information("Tests done."); +// } +//} [TaskName("AppsRun")] -[IsDependentOn(typeof(TestsTask))] +//[IsDependentOn(typeof(TestsTask))] public sealed class AppsRunTask : FrostingTask { // Tasks can be asynchronous diff --git a/cake/Properties/launchSettings.json b/cake/Properties/launchSettings.json index 1d9c4f83c..90fb5aed6 100644 --- a/cake/Properties/launchSettings.json +++ b/cake/Properties/launchSettings.json @@ -44,6 +44,10 @@ "commandName": "Project", "commandLineArgs": "--skip-build --apps-run --single-app-run-folder-name components.abb.robotics" }, + "templib_app_run_only": { + "commandName": "Project", + "commandLineArgs": "--skip-build --apps-run --single-app-run-folder-name template.axolibrary" + }, "test-L3-apps_run": { "commandName": "Project", "commandLineArgs": "--do-test --test-level 10 --apps-run" From 41c7d70a72f3cd4d2c12487e9a01d7a4b4295c80 Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 23:35:58 +0100 Subject: [PATCH 20/21] single app run test summary evaluation added --- cake/AppsRunTaskHelpers.cs | 1 - cake/Program.cs | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/cake/AppsRunTaskHelpers.cs b/cake/AppsRunTaskHelpers.cs index e521c6214..5ca009acc 100644 --- a/cake/AppsRunTaskHelpers.cs +++ b/cake/AppsRunTaskHelpers.cs @@ -161,7 +161,6 @@ public static void AppRunDetailed(BuildContext context, string appYamlFile, stri // Run "dotnet ixc" result = DotNetCmd.DotNetIxc(context, appFolder, ref summaryResult); - WriteResult(context, result, logFilePath, appendToSameLine: true); } //########################## <= template.axolibrary ######################// diff --git a/cake/Program.cs b/cake/Program.cs index 03dea950b..66a0ffe25 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -413,6 +413,12 @@ public override void Run(BuildContext context) // Build and load PLC, build and start HMI with more grannular evaluation AppsRunTaskHelpers.AppRunDetailed(context, appFile, appName, logFilePath, ref summaryResult); + + if (!summaryResult) + { + context.Log.Error($"App run failed for the application name: '{appName}', application file: '{appFile}' in folder: '{appFolder}'"); + Environment.Exit(1); + } } } else From 966dcd6f5380f84d5974c31b9f47027fa189c95f Mon Sep 17 00:00:00 2001 From: TK <61820360+TomKovac@users.noreply.github.com> Date: Mon, 10 Feb 2025 23:42:13 +0100 Subject: [PATCH 21/21] additional clean and dotnet ixc run for template.axolibrary added, plus sumarry evaluation --- cake/AppsRunTaskHelpers.cs | 16 ++ cake/Program.cs | 493 +++++++++++++++++++------------------ 2 files changed, 266 insertions(+), 243 deletions(-) diff --git a/cake/AppsRunTaskHelpers.cs b/cake/AppsRunTaskHelpers.cs index 5ca009acc..7002cd83e 100644 --- a/cake/AppsRunTaskHelpers.cs +++ b/cake/AppsRunTaskHelpers.cs @@ -229,6 +229,22 @@ public static void BuildAndStartHmi(BuildContext context, string appYamlFile, st string solutionFile = Path.GetFullPath(Path.Combine(appFolder, "../this.sln")); DotNetCmd.DotNetClean(context, solutionFile, "-c Debug"); + + //########################## template.axolibrary => ######################// + if (appFolder.Contains("template.axolibrary")) + { + string dot_g_folder = Path.GetFullPath(Path.Combine(appFolder, "ix//.g")); + context.CleanDirectory(dot_g_folder, new CleanDirectorySettings() { Force = true }); + + string dot_meta_folder = Path.GetFullPath(Path.Combine(appFolder, "ix//.meta")); + context.CleanDirectory(dot_meta_folder, new CleanDirectorySettings() { Force = true }); + + // Run "dotnet ixc" + DotNetCmd.DotNetIxc(context, appFolder, ref summaryResult); + } + + //########################## <= template.axolibrary ######################// + // Build solution string buildResult = DotNetCmd.DotNetBuildWithResult(context, solutionFile, "-c Debug", ref summaryResult); WriteResult(context, buildResult, logFilePath, appendToSameLine: true); diff --git a/cake/Program.cs b/cake/Program.cs index 66a0ffe25..571356459 100644 --- a/cake/Program.cs +++ b/cake/Program.cs @@ -69,251 +69,251 @@ public static int Main(string[] args) } } -//[TaskName("CleanUp")] -//public sealed class CleanUpTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// context.Log.Information("Build running with following parameters:"); -// context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); - -// if (context.IsGitHubActions) -// { -// context.BuildParameters.CleanUp = true; -// } - -// if (!context.BuildParameters.CleanUp) -// { -// context.Log.Information($"Skipping clean-up"); -// return; -// } - -// Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); - -// context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity }); -// context.CleanDirectory(context.BuildsOutput); -// context.CleanDirectory(context.Artifacts); -// context.CleanDirectory(context.TestResults); -// context.CleanDirectory(context.TestResultsCtrl); -// } -//} - -//[TaskName("Provision")] -//[IsDependentOn(typeof(CleanUpTask))] -//public sealed class ProvisionTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// ProvisionTools(context); - -// foreach (var library in context.Libraries) -// { -// context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); -// } -// } - -// private static void ProvisionTools(BuildContext context) -// { -// context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() -// { -// Arguments = $"tool restore", -// WorkingDirectory = context.RootDir -// }).WaitForExit(); -// } -//} - -//[TaskName("CatalogInstall")] -//[IsDependentOn(typeof(ProvisionTask))] -//public sealed class CatalogInstallTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// context.Libraries.ToList().ForEach(lib => -// { -// foreach (var apaxfile in context.GetApaxFiles(lib)) -// { -// context.ApaxCatalogInstall(apaxfile); -// } -// }); - - -// } -//} - -//[TaskName("Build")] -//[IsDependentOn(typeof(CatalogInstallTask))] -//public sealed class BuildTask : FrostingTask -//{ -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// if (context.BuildParameters.DoPack) -// { -// context.Libraries.ToList().ForEach(lib => -// { -// foreach (var apaxfile in context.GetApaxFiles(lib)) -// { -// context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); -// context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); -// } -// }); - -// context.Libraries.ToList().ForEach(lib => -// { -// foreach (var apaxfile in context.GetApaxFiles(lib)) -// { -// context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); -// } -// }); -// } - -// var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); -// if (!context.BuildParameters.NoBuild) -// { -// var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); -// context.CreateApaxTraversal(context.RootDir, traversalProject); -// context.ApaxInstall(new[] { traversalProjectFolder }); -// context.DotnetIxc(new[] { traversalProjectFolder }); -// context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; -// context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() -// { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + -// "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + -// "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" -// }); -// context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); -// } - -// if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) -// { -// context.ApaxBuild(new[] { traversalProjectFolder }); -// } -// } -//} - -//[TaskName("Tests")] -//[IsDependentOn(typeof(BuildTask))] -//public sealed class TestsTask : FrostingTask -//{ -// // Tasks can be asynchronous -// public override void Run(BuildContext context) -// { -// if (context.BuildParameters.PublishOnly) -// { -// context.Log.Information("Skipping. Publish only."); -// return; -// } - -// if (!context.BuildParameters.DoTest) -// { -// context.Log.Warning($"Skipping tests"); -// return; -// } - - -// if (context.BuildParameters.Paralellize) -// { -// context.Libraries.ToList().ForEach(lib => -// { -// context.ApaxClean(lib); -// context.ApaxInstall(context.GetLibraryAxFolders(lib)); -// context.ApaxBuild(context.GetLibraryAxFolders(lib)); -// context.ApaxTestLibrary(lib); -// if (context.BuildParameters.DoPack) -// { -// context.ApaxPack(lib); -// context.ApaxCopyArtifacts(lib); -// } -// context.ApaxClean(lib); -// }); - -// } -// else -// { -// context.Libraries.ToList().ForEach(lib => -// { -// context.Log.Information($"---------------------------------"); -// context.Log.Information($"Testing {lib.folder}"); -// context.Log.Information($"---------------------------------"); -// context.ApaxClean(lib); -// context.ApaxInstall(context.GetLibraryAxFolders(lib)); -// context.ApaxBuild(context.GetLibraryAxFolders(lib)); -// context.ApaxTestLibrary(lib); -// if (context.BuildParameters.DoPack) -// { -// context.ApaxPack(lib); -// context.ApaxCopyArtifacts(lib); -// } -// context.ApaxClean(lib); -// }); -// } - - - - -// if (context.BuildParameters.TestLevel == 1) -// { -// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); -// } -// if (context.BuildParameters.TestLevel == 2) -// { - -// context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); -// } -// if (context.BuildParameters.TestLevel >= 3) -// { -// foreach (var package in context.Libraries) -// { -// var app = Path.Combine(context.RootDir, package.folder, "app"); -// var ax = Path.Combine(context.RootDir, package.folder, "ax"); - -// if (Directory.Exists(app)) -// { -// context.ApaxDownload(app); -// } -// else if (Directory.Exists(ax)) -// { -// context.ApaxDownload(ax); -// } -// else -// { -// //throw new Exception($"No app or ax folder found for {package.folder}"); -// context.Log.Information($"No app or ax folder found for {package.folder}"); -// break; -// } - -// context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); -// } -// } - -// context.Log.Information("Tests done."); -// } -//} +[TaskName("CleanUp")] +public sealed class CleanUpTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + context.Log.Information("Build running with following parameters:"); + context.Log.Information(context.BuildParameters.ToJson(Formatting.Indented)); + + if (context.IsGitHubActions) + { + context.BuildParameters.CleanUp = true; + } + + if (!context.BuildParameters.CleanUp) + { + context.Log.Information($"Skipping clean-up"); + return; + } + + Parallel.ForEach(context.Libraries, lib => context.ApaxClean(lib)); + + context.DotNetClean(Path.Combine(context.RootDir, "AXOpen.proj"), new DotNetCleanSettings() { Verbosity = context.BuildParameters.Verbosity }); + context.CleanDirectory(context.BuildsOutput); + context.CleanDirectory(context.Artifacts); + context.CleanDirectory(context.TestResults); + context.CleanDirectory(context.TestResultsCtrl); + } +} + +[TaskName("Provision")] +[IsDependentOn(typeof(CleanUpTask))] +public sealed class ProvisionTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + ProvisionTools(context); + + foreach (var library in context.Libraries) + { + context.CopyFiles(Path.Combine(context.RootDir, "traversals", "traversalBuilds", "**/*.*"), Path.Combine(context.RootDir, library.folder)); + } + } + + private static void ProvisionTools(BuildContext context) + { + context.ProcessRunner.Start(@"dotnet", new Cake.Core.IO.ProcessSettings() + { + Arguments = $"tool restore", + WorkingDirectory = context.RootDir + }).WaitForExit(); + } +} + +[TaskName("CatalogInstall")] +[IsDependentOn(typeof(ProvisionTask))] +public sealed class CatalogInstallTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + context.Libraries.ToList().ForEach(lib => + { + foreach (var apaxfile in context.GetApaxFiles(lib)) + { + context.ApaxCatalogInstall(apaxfile); + } + }); + + + } +} + +[TaskName("Build")] +[IsDependentOn(typeof(CatalogInstallTask))] +public sealed class BuildTask : FrostingTask +{ + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + if (context.BuildParameters.DoPack) + { + context.Libraries.ToList().ForEach(lib => + { + foreach (var apaxfile in context.GetApaxFiles(lib)) + { + context.UpdateApaxVersion(apaxfile, GitVersionInformation.SemVer); + context.UpdateApaxDependencies(apaxfile, GitVersionInformation.SemVer); + } + }); + + context.Libraries.ToList().ForEach(lib => + { + foreach (var apaxfile in context.GetApaxFiles(lib)) + { + context.ApaxChangeBuildProperties(apaxfile, new string[] { "\"1500\"", "llvm" }, new[] { "src", "axsharp.companion.json" }); + } + }); + } + + var traversalProjectFolder = Path.Combine(context.RootDir, "traversals", "apax"); + if (!context.BuildParameters.NoBuild) + { + var traversalProject = Path.Combine(traversalProjectFolder, "apax.yml"); + context.CreateApaxTraversal(context.RootDir, traversalProject); + context.ApaxInstall(new[] { traversalProjectFolder }); + context.DotnetIxc(new[] { traversalProjectFolder }); + context.DotNetBuildSettings.Verbosity = DotNetVerbosity.Quiet; + context.DotNetBuildSettings.MSBuildSettings.Properties.Add("NoWarn", new List() + { "1234;2345;8602;10012;8618;0162;8605;1416;3270;1504;8600;8618;" + + "CS0618;CS1591;BL0007;BL0005;CA1416;CA2200;CS0105;CS0108;CS0109;CS0162;CS0168;CS0169;CS219;CS0414;CS0436;CS0472;CS0618;CS1591;CS1998;CS8604;" + + "CS8601;SYSLIB0051;SYSLIB0014;CS8625;CS0219;CS8625;CS8625;CS8620;RZ2012;RZ10012;CS4014;CS8981;CS8603;CS8766;CS8619;CS0649;CS8321" + }); + context.DotNetBuild(Path.Combine(context.RootDir, "AXOpen.proj"), context.DotNetBuildSettings); + } + + if (!context.BuildParameters.NoBuild && !context.BuildParameters.DoTest && !context.BuildParameters.DoPack) + { + context.ApaxBuild(new[] { traversalProjectFolder }); + } + } +} + +[TaskName("Tests")] +[IsDependentOn(typeof(BuildTask))] +public sealed class TestsTask : FrostingTask +{ + // Tasks can be asynchronous + public override void Run(BuildContext context) + { + if (context.BuildParameters.PublishOnly) + { + context.Log.Information("Skipping. Publish only."); + return; + } + + if (!context.BuildParameters.DoTest) + { + context.Log.Warning($"Skipping tests"); + return; + } + + + if (context.BuildParameters.Paralellize) + { + context.Libraries.ToList().ForEach(lib => + { + context.ApaxClean(lib); + context.ApaxInstall(context.GetLibraryAxFolders(lib)); + context.ApaxBuild(context.GetLibraryAxFolders(lib)); + context.ApaxTestLibrary(lib); + if (context.BuildParameters.DoPack) + { + context.ApaxPack(lib); + context.ApaxCopyArtifacts(lib); + } + context.ApaxClean(lib); + }); + + } + else + { + context.Libraries.ToList().ForEach(lib => + { + context.Log.Information($"---------------------------------"); + context.Log.Information($"Testing {lib.folder}"); + context.Log.Information($"---------------------------------"); + context.ApaxClean(lib); + context.ApaxInstall(context.GetLibraryAxFolders(lib)); + context.ApaxBuild(context.GetLibraryAxFolders(lib)); + context.ApaxTestLibrary(lib); + if (context.BuildParameters.DoPack) + { + context.ApaxPack(lib); + context.ApaxCopyArtifacts(lib); + } + context.ApaxClean(lib); + }); + } + + + + + if (context.BuildParameters.TestLevel == 1) + { + context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L1-tests.proj"), context.DotNetTestSettings); + } + if (context.BuildParameters.TestLevel == 2) + { + + context.DotNetTest(Path.Combine(context.RootDir, "AXOpen-L2-tests.proj"), context.DotNetTestSettings); + } + if (context.BuildParameters.TestLevel >= 3) + { + foreach (var package in context.Libraries) + { + var app = Path.Combine(context.RootDir, package.folder, "app"); + var ax = Path.Combine(context.RootDir, package.folder, "ax"); + + if (Directory.Exists(app)) + { + context.ApaxDownload(app); + } + else if (Directory.Exists(ax)) + { + context.ApaxDownload(ax); + } + else + { + //throw new Exception($"No app or ax folder found for {package.folder}"); + context.Log.Information($"No app or ax folder found for {package.folder}"); + break; + } + + context.DotNetTest(Path.Combine(context.RootDir, package.folder, "tmp_L3_.proj"), context.DotNetTestSettings); + } + } + + context.Log.Information("Tests done."); + } +} [TaskName("AppsRun")] -//[IsDependentOn(typeof(TestsTask))] +[IsDependentOn(typeof(TestsTask))] public sealed class AppsRunTask : FrostingTask { // Tasks can be asynchronous @@ -370,6 +370,13 @@ public override void Run(BuildContext context) // Build and start HMI AppsRunTaskHelpers.BuildAndStartHmi(context, appFile, appName, logFilePath, ref summaryResult); + + if (!summaryResult) + { + context.Log.Error($"App run failed for some of the applications."); + context.Log.Error($"Good luck with finding out the reason :-)."); + Environment.Exit(1); + } } } }