From 6842408d5d8b5491cc4a78e31d44e63437c1bf7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bir=C3=B3=2C=20Csaba=20Attila?= Date: Sat, 14 Feb 2026 13:54:12 +0100 Subject: [PATCH 1/4] feat(config): add shared DTO library with models, enums, and MQTT topics Create FlowForge.Shared class library containing DTOs for Flow, Build, Deploy, Project, Target, Auth, and Monitor domains. Add enums for Permission and ProjectRole. Add type-safe MQTT topic builders. Co-Authored-By: Claude Opus 4.6 --- .../FlowForge.Shared/Enums/Permission.cs | 18 +++++++++++++ .../FlowForge.Shared/Enums/ProjectRole.cs | 13 +++++++++ .../FlowForge.Shared/FlowForge.Shared.csproj | 10 +++++++ .../Models/Auth/UserInfoDto.cs | 13 +++++++++ .../Models/Build/BuildJobDto.cs | 19 +++++++++++++ .../Models/Build/BuildProgressDto.cs | 12 +++++++++ .../Models/Build/BuildResultDto.cs | 13 +++++++++ .../Models/Build/BuildStatus.cs | 13 +++++++++ .../Models/Deploy/DeployRequestDto.cs | 11 ++++++++ .../Models/Deploy/DeployResultDto.cs | 12 +++++++++ .../Models/Deploy/DeployStatus.cs | 15 +++++++++++ .../Models/Flow/FlowConnection.cs | 10 +++++++ .../Models/Flow/FlowDocument.cs | 13 +++++++++ .../FlowForge.Shared/Models/Flow/FlowNode.cs | 12 +++++++++ .../FlowForge.Shared/Models/Flow/FlowPort.cs | 10 +++++++ .../Models/Flow/NodePosition.cs | 10 +++++++ .../Models/Monitor/MonitorSessionDto.cs | 12 +++++++++ .../Models/Monitor/PlcVariableValueDto.cs | 12 +++++++++ .../Models/Project/ProjectDetailDto.cs | 19 +++++++++++++ .../Models/Project/ProjectSummaryDto.cs | 15 +++++++++++ .../Models/Target/PlcTargetDto.cs | 16 +++++++++++ .../Models/Target/TargetGroupDto.cs | 12 +++++++++ .../FlowForge.Shared/Mqtt/MqttTopics.cs | 27 +++++++++++++++++++ 23 files changed, 317 insertions(+) create mode 100644 src/shared/FlowForge.Shared/Enums/Permission.cs create mode 100644 src/shared/FlowForge.Shared/Enums/ProjectRole.cs create mode 100644 src/shared/FlowForge.Shared/FlowForge.Shared.csproj create mode 100644 src/shared/FlowForge.Shared/Models/Auth/UserInfoDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Build/BuildJobDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Build/BuildProgressDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Build/BuildResultDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Build/BuildStatus.cs create mode 100644 src/shared/FlowForge.Shared/Models/Deploy/DeployRequestDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Deploy/DeployResultDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Deploy/DeployStatus.cs create mode 100644 src/shared/FlowForge.Shared/Models/Flow/FlowConnection.cs create mode 100644 src/shared/FlowForge.Shared/Models/Flow/FlowDocument.cs create mode 100644 src/shared/FlowForge.Shared/Models/Flow/FlowNode.cs create mode 100644 src/shared/FlowForge.Shared/Models/Flow/FlowPort.cs create mode 100644 src/shared/FlowForge.Shared/Models/Flow/NodePosition.cs create mode 100644 src/shared/FlowForge.Shared/Models/Monitor/MonitorSessionDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Monitor/PlcVariableValueDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Project/ProjectDetailDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Project/ProjectSummaryDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Target/PlcTargetDto.cs create mode 100644 src/shared/FlowForge.Shared/Models/Target/TargetGroupDto.cs create mode 100644 src/shared/FlowForge.Shared/Mqtt/MqttTopics.cs diff --git a/src/shared/FlowForge.Shared/Enums/Permission.cs b/src/shared/FlowForge.Shared/Enums/Permission.cs new file mode 100644 index 0000000..97b8519 --- /dev/null +++ b/src/shared/FlowForge.Shared/Enums/Permission.cs @@ -0,0 +1,18 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Enums; + +public enum Permission +{ + ProjectView, + ProjectCreate, + ProjectEdit, + ProjectDelete, + Build, + Deploy, + TargetManage, + Monitor, + AdminUsers, + AdminSystem +} diff --git a/src/shared/FlowForge.Shared/Enums/ProjectRole.cs b/src/shared/FlowForge.Shared/Enums/ProjectRole.cs new file mode 100644 index 0000000..d22c91e --- /dev/null +++ b/src/shared/FlowForge.Shared/Enums/ProjectRole.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Enums; + +public enum ProjectRole +{ + Viewer, + Editor, + Builder, + Deployer, + Owner +} diff --git a/src/shared/FlowForge.Shared/FlowForge.Shared.csproj b/src/shared/FlowForge.Shared/FlowForge.Shared.csproj new file mode 100644 index 0000000..4900ca5 --- /dev/null +++ b/src/shared/FlowForge.Shared/FlowForge.Shared.csproj @@ -0,0 +1,10 @@ + + + + net9.0 + enable + enable + FlowForge.Shared + + + diff --git a/src/shared/FlowForge.Shared/Models/Auth/UserInfoDto.cs b/src/shared/FlowForge.Shared/Models/Auth/UserInfoDto.cs new file mode 100644 index 0000000..436ad4a --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Auth/UserInfoDto.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Auth; + +public record UserInfoDto +{ + public string Id { get; init; } = string.Empty; + public string UserName { get; init; } = string.Empty; + public string Email { get; init; } = string.Empty; + public string DisplayName { get; init; } = string.Empty; + public IReadOnlyList Roles { get; init; } = []; +} diff --git a/src/shared/FlowForge.Shared/Models/Build/BuildJobDto.cs b/src/shared/FlowForge.Shared/Models/Build/BuildJobDto.cs new file mode 100644 index 0000000..18ad350 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Build/BuildJobDto.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Build; + +public record BuildJobDto +{ + public Guid Id { get; init; } + public Guid ProjectId { get; init; } + public string ProjectName { get; init; } = string.Empty; + public string RepoUrl { get; init; } = string.Empty; + public string Branch { get; init; } = "main"; + public string TwinCatVersion { get; init; } = string.Empty; + public string RequestedBy { get; init; } = string.Empty; + public BuildStatus Status { get; init; } + public bool IncludeDeploy { get; init; } + public string? TargetAmsNetId { get; init; } + public DateTimeOffset CreatedAt { get; init; } +} diff --git a/src/shared/FlowForge.Shared/Models/Build/BuildProgressDto.cs b/src/shared/FlowForge.Shared/Models/Build/BuildProgressDto.cs new file mode 100644 index 0000000..dd1c237 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Build/BuildProgressDto.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Build; + +public record BuildProgressDto +{ + public Guid BuildId { get; init; } + public string Stage { get; init; } = string.Empty; + public int Percentage { get; init; } + public string Message { get; init; } = string.Empty; +} diff --git a/src/shared/FlowForge.Shared/Models/Build/BuildResultDto.cs b/src/shared/FlowForge.Shared/Models/Build/BuildResultDto.cs new file mode 100644 index 0000000..ba6d3d5 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Build/BuildResultDto.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Build; + +public record BuildResultDto +{ + public Guid BuildId { get; init; } + public bool Success { get; init; } + public IReadOnlyList Errors { get; init; } = []; + public string? CommitSha { get; init; } + public DateTimeOffset CompletedAt { get; init; } +} diff --git a/src/shared/FlowForge.Shared/Models/Build/BuildStatus.cs b/src/shared/FlowForge.Shared/Models/Build/BuildStatus.cs new file mode 100644 index 0000000..1e6b0d5 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Build/BuildStatus.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Build; + +public enum BuildStatus +{ + Pending, + Claimed, + InProgress, + Completed, + Failed +} diff --git a/src/shared/FlowForge.Shared/Models/Deploy/DeployRequestDto.cs b/src/shared/FlowForge.Shared/Models/Deploy/DeployRequestDto.cs new file mode 100644 index 0000000..af1ca3d --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Deploy/DeployRequestDto.cs @@ -0,0 +1,11 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Deploy; + +public record DeployRequestDto +{ + public Guid ProjectId { get; init; } + public string TargetAmsNetId { get; init; } = string.Empty; + public string? ApproverId { get; init; } +} diff --git a/src/shared/FlowForge.Shared/Models/Deploy/DeployResultDto.cs b/src/shared/FlowForge.Shared/Models/Deploy/DeployResultDto.cs new file mode 100644 index 0000000..ca0ba20 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Deploy/DeployResultDto.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Deploy; + +public record DeployResultDto +{ + public Guid DeployId { get; init; } + public bool Success { get; init; } + public string? Error { get; init; } + public DateTimeOffset CompletedAt { get; init; } +} diff --git a/src/shared/FlowForge.Shared/Models/Deploy/DeployStatus.cs b/src/shared/FlowForge.Shared/Models/Deploy/DeployStatus.cs new file mode 100644 index 0000000..8a7fc26 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Deploy/DeployStatus.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Deploy; + +public enum DeployStatus +{ + Pending, + AwaitingApproval, + Approved, + InProgress, + Completed, + Failed, + Rejected +} diff --git a/src/shared/FlowForge.Shared/Models/Flow/FlowConnection.cs b/src/shared/FlowForge.Shared/Models/Flow/FlowConnection.cs new file mode 100644 index 0000000..7ae7094 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Flow/FlowConnection.cs @@ -0,0 +1,10 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Flow; + +public record FlowConnection +{ + public FlowPort From { get; init; } = new(); + public FlowPort To { get; init; } = new(); +} diff --git a/src/shared/FlowForge.Shared/Models/Flow/FlowDocument.cs b/src/shared/FlowForge.Shared/Models/Flow/FlowDocument.cs new file mode 100644 index 0000000..264b30c --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Flow/FlowDocument.cs @@ -0,0 +1,13 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Flow; + +public record FlowDocument +{ + public string Name { get; init; } = string.Empty; + public string Version { get; init; } = string.Empty; + public IReadOnlyList Nodes { get; init; } = []; + public IReadOnlyList Connections { get; init; } = []; + public Dictionary Metadata { get; init; } = []; +} diff --git a/src/shared/FlowForge.Shared/Models/Flow/FlowNode.cs b/src/shared/FlowForge.Shared/Models/Flow/FlowNode.cs new file mode 100644 index 0000000..fb98898 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Flow/FlowNode.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Flow; + +public record FlowNode +{ + public string Id { get; init; } = string.Empty; + public string Type { get; init; } = string.Empty; + public NodePosition Position { get; init; } = new(); + public Dictionary Parameters { get; init; } = []; +} diff --git a/src/shared/FlowForge.Shared/Models/Flow/FlowPort.cs b/src/shared/FlowForge.Shared/Models/Flow/FlowPort.cs new file mode 100644 index 0000000..1a62aec --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Flow/FlowPort.cs @@ -0,0 +1,10 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Flow; + +public record FlowPort +{ + public string NodeId { get; init; } = string.Empty; + public string PortName { get; init; } = string.Empty; +} diff --git a/src/shared/FlowForge.Shared/Models/Flow/NodePosition.cs b/src/shared/FlowForge.Shared/Models/Flow/NodePosition.cs new file mode 100644 index 0000000..cd867cd --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Flow/NodePosition.cs @@ -0,0 +1,10 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Flow; + +public record NodePosition +{ + public double X { get; init; } + public double Y { get; init; } +} diff --git a/src/shared/FlowForge.Shared/Models/Monitor/MonitorSessionDto.cs b/src/shared/FlowForge.Shared/Models/Monitor/MonitorSessionDto.cs new file mode 100644 index 0000000..e0e48d5 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Monitor/MonitorSessionDto.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Monitor; + +public record MonitorSessionDto +{ + public string SessionId { get; init; } = string.Empty; + public string SignalREndpoint { get; init; } = string.Empty; + public string AuthToken { get; init; } = string.Empty; + public string TargetAmsNetId { get; init; } = string.Empty; +} diff --git a/src/shared/FlowForge.Shared/Models/Monitor/PlcVariableValueDto.cs b/src/shared/FlowForge.Shared/Models/Monitor/PlcVariableValueDto.cs new file mode 100644 index 0000000..0bafc5e --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Monitor/PlcVariableValueDto.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Monitor; + +public record PlcVariableValueDto +{ + public string Path { get; init; } = string.Empty; + public object? Value { get; init; } + public string DataType { get; init; } = string.Empty; + public DateTimeOffset Timestamp { get; init; } +} diff --git a/src/shared/FlowForge.Shared/Models/Project/ProjectDetailDto.cs b/src/shared/FlowForge.Shared/Models/Project/ProjectDetailDto.cs new file mode 100644 index 0000000..fdd5a0e --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Project/ProjectDetailDto.cs @@ -0,0 +1,19 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +using FlowForge.Shared.Models.Flow; + +namespace FlowForge.Shared.Models.Project; + +public record ProjectDetailDto +{ + public Guid Id { get; init; } + public string Name { get; init; } = string.Empty; + public string Description { get; init; } = string.Empty; + public string RepoUrl { get; init; } = string.Empty; + public string Branch { get; init; } = "main"; + public string? LastCommitSha { get; init; } + public FlowDocument? Flow { get; init; } + public DateTimeOffset CreatedAt { get; init; } + public DateTimeOffset UpdatedAt { get; init; } +} diff --git a/src/shared/FlowForge.Shared/Models/Project/ProjectSummaryDto.cs b/src/shared/FlowForge.Shared/Models/Project/ProjectSummaryDto.cs new file mode 100644 index 0000000..0f8e399 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Project/ProjectSummaryDto.cs @@ -0,0 +1,15 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Project; + +public record ProjectSummaryDto +{ + public Guid Id { get; init; } + public string Name { get; init; } = string.Empty; + public string Description { get; init; } = string.Empty; + public string RepoUrl { get; init; } = string.Empty; + public string? LastCommitSha { get; init; } + public DateTimeOffset CreatedAt { get; init; } + public DateTimeOffset UpdatedAt { get; init; } +} diff --git a/src/shared/FlowForge.Shared/Models/Target/PlcTargetDto.cs b/src/shared/FlowForge.Shared/Models/Target/PlcTargetDto.cs new file mode 100644 index 0000000..8bb3d03 --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Target/PlcTargetDto.cs @@ -0,0 +1,16 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Target; + +public record PlcTargetDto +{ + public Guid Id { get; init; } + public string Name { get; init; } = string.Empty; + public string AmsNetId { get; init; } = string.Empty; + public string TwinCatVersion { get; init; } = string.Empty; + public IReadOnlyList Labels { get; init; } = []; + public Guid? GroupId { get; init; } + public bool IsProductionTarget { get; init; } + public bool DeployLocked { get; init; } +} diff --git a/src/shared/FlowForge.Shared/Models/Target/TargetGroupDto.cs b/src/shared/FlowForge.Shared/Models/Target/TargetGroupDto.cs new file mode 100644 index 0000000..7850dfc --- /dev/null +++ b/src/shared/FlowForge.Shared/Models/Target/TargetGroupDto.cs @@ -0,0 +1,12 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Models.Target; + +public record TargetGroupDto +{ + public Guid Id { get; init; } + public string Name { get; init; } = string.Empty; + public string Description { get; init; } = string.Empty; + public IReadOnlyList Targets { get; init; } = []; +} diff --git a/src/shared/FlowForge.Shared/Mqtt/MqttTopics.cs b/src/shared/FlowForge.Shared/Mqtt/MqttTopics.cs new file mode 100644 index 0000000..a89f4bc --- /dev/null +++ b/src/shared/FlowForge.Shared/Mqtt/MqttTopics.cs @@ -0,0 +1,27 @@ +// Copyright (c) 2026 Qubernetic (Biró, Csaba Attila) +// SPDX-License-Identifier: AGPL-3.0-or-later + +namespace FlowForge.Shared.Mqtt; + +public static class MqttTopics +{ + private const string Prefix = "flowforge"; + + public static string BuildNotify(string twinCatVersion) => + $"{Prefix}/build/notify/{twinCatVersion}"; + + public static string BuildProgress(Guid buildId) => + $"{Prefix}/build/progress/{buildId}"; + + public static string DeployRequest(string targetId) => + $"{Prefix}/deploy/request/{targetId}"; + + public static string AdsRead(string amsNetId) => + $"{Prefix}/ads/read/{amsNetId}"; + + public static string AdsWrite(string amsNetId) => + $"{Prefix}/ads/write/{amsNetId}"; + + public static string AdsNotification(string amsNetId) => + $"{Prefix}/ads/notification/{amsNetId}"; +} From 35f7d5039c60337157792f53ce978efd07a1a7ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bir=C3=B3=2C=20Csaba=20Attila?= Date: Sat, 14 Feb 2026 14:03:03 +0100 Subject: [PATCH 2/4] feat(build-server): add pipeline and TwinCAT facades Add build pipeline with sequential step architecture, INodeTranslator strategy for code generation, and IVisualStudioInstance / IAutomationInterface COM facades. Co-Authored-By: Claude Opus 4.6 --- src/build-server/FlowForge.BuildServer.sln | 6 + .../CodeGenerationDemo.exe.config | 3 + .../CodeGenerationBins/Orders.xml | 167 + .../ScriptingTestContainerBase.xml | 3893 ++++ .../Templates/MachineTypeA.tszip | Bin 0 -> 305879 bytes .../Templates/MachineTypeA/Axis1.xml | Bin 0 -> 15546 bytes .../Templates/MachineTypeA/Axis2.xml | Bin 0 -> 15546 bytes .../Templates/MachineTypeA/Links.xml | 64 + .../Templates/MachineTypeA/POUs/FB_Axis.xml | 137 + .../Templates/MachineTypeA/POUs/MAIN.xml | 33 + .../Templates/MachineTypeB.tszip | Bin 0 -> 317547 bytes .../Templates/MachineTypeB/Axis1.xml | Bin 0 -> 15354 bytes .../Templates/MachineTypeB/Axis2.xml | Bin 0 -> 15354 bytes .../Templates/MachineTypeB/Axis3.xml | Bin 0 -> 14686 bytes .../Templates/MachineTypeB/Axis4.xml | Bin 0 -> 14686 bytes .../Templates/MachineTypeB/Channel2.xml | Bin 0 -> 778 bytes .../MachineTypeB/Datatypes/E_Commands.xml | 8 + .../Datatypes/E_NCI_CTRL_STATE.xml | 18 + .../MachineTypeB/Datatypes/E_States.xml | 9 + .../MachineTypeB/GVLs/GlobalVariables.xml | 36 + .../Templates/MachineTypeB/Links.xml | 82 + .../MachineTypeB/POUs/FB_NciChannel.xml | 181 + .../MachineTypeB/POUs/FB_NciSequence.xml | 86 + .../Templates/MachineTypeB/POUs/MAIN.xml | 152 + .../Templates/MachineTypeC.tszip | Bin 0 -> 332438 bytes .../Templates/MachineTypeC/AxisX.xml | Bin 0 -> 15352 bytes .../Templates/MachineTypeC/AxisY.xml | Bin 0 -> 15352 bytes .../Templates/MachineTypeC/AxisZ.xml | Bin 0 -> 14686 bytes .../MachineTypeC/Datatypes/E_AxisState.xml | 9 + .../MachineTypeC/Datatypes/E_MoveCmd.xml | 10 + .../Templates/MachineTypeC/Links.xml | 68 + .../MachineTypeC/POUs/Axis/FB_AX5000Axis.xml | 79 + .../MachineTypeC/POUs/Axis/FB_NcAxis.xml | 213 + .../MachineTypeC/POUs/Axis/IAxis.xml | 35 + .../Templates/MachineTypeC/POUs/FB_Table.xml | 127 + .../Templates/MachineTypeC/POUs/MAIN.xml | 49 + .../MachineTypeD/Datatypes/E_FunctionType.xml | 16 + .../MachineTypeD/GVLs/GVL_Constants.xml | 8 + .../POUs/FB_FunctionGenerator.xml | 331 + .../Templates/MachineTypeD/POUs/MAIN.xml | 86 + .../TC3-AU08-IEC-IC/MachineTypeA/Axis1.xml | Bin 0 -> 15546 bytes .../TC3-AU08-IEC-IC/MachineTypeA/Axis2.xml | Bin 0 -> 15546 bytes .../TC3-AU08-IEC-IC/MachineTypeA/Drive.xti | 145 + .../TC3-AU08-IEC-IC/MachineTypeA/Links.xml | 98 + .../TC3-AU08-IEC-IC/MachineTypeA/LinksOld.xml | 64 + .../MachineTypeA/POUs/FB_Axis.xml | 137 + .../MachineTypeA/POUs/MAIN.xml | 33 + .../TC3-AU08-IEC-IC/MachineTypeB/Axis1.xml | Bin 0 -> 15354 bytes .../TC3-AU08-IEC-IC/MachineTypeB/Axis2.xml | Bin 0 -> 15354 bytes .../TC3-AU08-IEC-IC/MachineTypeB/Axis3.xml | Bin 0 -> 14686 bytes .../TC3-AU08-IEC-IC/MachineTypeB/Axis4.xml | Bin 0 -> 14686 bytes .../TC3-AU08-IEC-IC/MachineTypeB/Channel2.xml | Bin 0 -> 778 bytes .../MachineTypeB/Datatypes/E_Commands.xml | 8 + .../Datatypes/E_NCI_CTRL_STATE.xml | 18 + .../MachineTypeB/Datatypes/E_States.xml | 9 + .../TC3-AU08-IEC-IC/MachineTypeB/Drive.xti | 145 + .../MachineTypeB/GVLs/GlobalVariables.xml | 36 + .../TC3-AU08-IEC-IC/MachineTypeB/Links.xml | 98 + .../TC3-AU08-IEC-IC/MachineTypeB/LinksOld.xml | 82 + .../MachineTypeB/POUs/FB_NciChannel.xml | 181 + .../MachineTypeB/POUs/FB_NciSequence.xml | 86 + .../MachineTypeB/POUs/MAIN.xml | 152 + .../TC3-AU08-IEC-IC/MachineTypeC/AxisX.xml | Bin 0 -> 15352 bytes .../TC3-AU08-IEC-IC/MachineTypeC/AxisY.xml | Bin 0 -> 15352 bytes .../TC3-AU08-IEC-IC/MachineTypeC/AxisZ.xml | Bin 0 -> 14686 bytes .../MachineTypeC/Datatypes/E_AxisState.xml | 9 + .../MachineTypeC/Datatypes/E_MoveCmd.xml | 10 + .../TC3-AU08-IEC-IC/MachineTypeC/Drive.xti | 145 + .../TC3-AU08-IEC-IC/MachineTypeC/Links.xml | 72 + .../TC3-AU08-IEC-IC/MachineTypeC/LinksOld.xml | 68 + .../MachineTypeC/POUs/Axis/FB_AX5000Axis.xml | 79 + .../MachineTypeC/POUs/Axis/FB_NcAxis.xml | 213 + .../MachineTypeC/POUs/Axis/IAxis.xml | 35 + .../MachineTypeC/POUs/FB_Table.xml | 127 + .../MachineTypeC/POUs/MAIN.xml | 49 + .../TC3-AU08-IEC-IC/PouProgramCFC.xml | 1930 ++ .../TC3-AU08-IEC-IC/PouProgramFbd.xml | 1280 ++ .../TC3-AU08-IEC-IC/PouProgramLd.xml | 1324 ++ .../TC3-AU08-IEC-IC/PouProgramSfc.xml | 648 + .../TC3-AU08-IEC-IC/PouProgramSt.xml | 65 + .../TC3-AV09-IEC_TG/MachineTypeA/Axis1.xml | Bin 0 -> 15546 bytes .../TC3-AV09-IEC_TG/MachineTypeA/Axis2.xml | Bin 0 -> 15546 bytes .../TC3-AV09-IEC_TG/MachineTypeA/Drive.xti | 145 + .../TC3-AV09-IEC_TG/MachineTypeA/Links.xml | 101 + .../TC3-AV09-IEC_TG/MachineTypeA/LinksOld.xml | 64 + .../MachineTypeA/POUs/FB_Axis.xml | 137 + .../MachineTypeA/POUs/MAIN.xml | 33 + .../TC3-AV09-IEC_TG/MachineTypeB/Axis1.xml | Bin 0 -> 15354 bytes .../TC3-AV09-IEC_TG/MachineTypeB/Axis2.xml | Bin 0 -> 15354 bytes .../TC3-AV09-IEC_TG/MachineTypeB/Axis3.xml | Bin 0 -> 14686 bytes .../TC3-AV09-IEC_TG/MachineTypeB/Axis4.xml | Bin 0 -> 14686 bytes .../TC3-AV09-IEC_TG/MachineTypeB/Channel2.xml | Bin 0 -> 778 bytes .../MachineTypeB/Datatypes/E_Commands.xml | 8 + .../Datatypes/E_NCI_CTRL_STATE.xml | 18 + .../MachineTypeB/Datatypes/E_States.xml | 9 + .../TC3-AV09-IEC_TG/MachineTypeB/Drive.xti | 145 + .../MachineTypeB/GVLs/GlobalVariables.xml | 36 + .../TC3-AV09-IEC_TG/MachineTypeB/Links.xml | 96 + .../TC3-AV09-IEC_TG/MachineTypeB/LinksOld.xml | 82 + .../MachineTypeB/POUs/FB_NciChannel.xml | 181 + .../MachineTypeB/POUs/FB_NciSequence.xml | 86 + .../MachineTypeB/POUs/MAIN.xml | 152 + .../TC3-AV09-IEC_TG/MachineTypeC/AxisX.xml | Bin 0 -> 15352 bytes .../TC3-AV09-IEC_TG/MachineTypeC/AxisY.xml | Bin 0 -> 15352 bytes .../TC3-AV09-IEC_TG/MachineTypeC/AxisZ.xml | Bin 0 -> 14686 bytes .../MachineTypeC/Datatypes/E_AxisState.xml | 9 + .../MachineTypeC/Datatypes/E_MoveCmd.xml | 10 + .../TC3-AV09-IEC_TG/MachineTypeC/Drive.xti | 145 + .../TC3-AV09-IEC_TG/MachineTypeC/Links.xml | 72 + .../TC3-AV09-IEC_TG/MachineTypeC/LinksOld.xml | 68 + .../MachineTypeC/POUs/Axis/FB_AX5000Axis.xml | 79 + .../MachineTypeC/POUs/Axis/FB_NcAxis.xml | 213 + .../MachineTypeC/POUs/Axis/IAxis.xml | 35 + .../MachineTypeC/POUs/FB_Table.xml | 127 + .../MachineTypeC/POUs/MAIN.xml | 49 + .../TC3-AV09-IEC_TG/PouProgramCFC.xml | 1930 ++ .../TC3-AV09-IEC_TG/PouProgramFbd.xml | 1280 ++ .../TC3-AV09-IEC_TG/PouProgramLd.xml | 1324 ++ .../TC3-AV09-IEC_TG/PouProgramSfc.xml | 648 + .../TC3-AV09-IEC_TG/PouProgramSt.xml | 65 + .../CodeGenerationDemo.sln | 48 + .../CodeGenerationDemo/App.xaml | 8 + .../CodeGenerationDemo/App.xaml.cs | 16 + .../CodeGenerationDemo.csproj | 564 + .../CodeGenerationScript.cs | 599 + .../ConfigurationScriptA.cs | 45 + .../ConfigurationScriptB.cs | 45 + .../ConfigurationScriptC.cs | 45 + .../ConfigurationScriptD.cs | 152 + .../CodeGenerationDemo/Data/Orders.xml | 167 + .../Data/OrdersStandard.xml | 213 + .../CodeGenerationDemo/Data/ReadMe.txt | 1 + .../Data/TC3_AU08-IEC-IC_Orders.xml | 213 + .../Data/TC3_AV09-IEC-TG_Orders.xml | 216 + .../CodeGenerationDemo/DataModel.cs | 76 + .../CodeGenerationDemo/MainWindow.xaml | 167 + .../CodeGenerationDemo/MainWindow.xaml.cs | 407 + .../CodeGenerationDemo/Orders.xml | 167 + .../Properties/AssemblyInfo.cs | 55 + .../Properties/Resources.Designer.cs | 63 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + .../CodeGenerationDemo/ScriptInfo.cs | 690 + .../Templates/MachineTypeA.tszip | Bin 0 -> 305879 bytes .../Templates/MachineTypeA/Axis1.xml | Bin 0 -> 15546 bytes .../Templates/MachineTypeA/Axis2.xml | Bin 0 -> 15546 bytes .../Templates/MachineTypeA/Links.xml | 64 + .../Templates/MachineTypeA/POUs/FB_Axis.xml | 137 + .../Templates/MachineTypeA/POUs/MAIN.xml | 33 + .../Templates/MachineTypeAOrig.tszip | Bin 0 -> 305879 bytes .../Templates/MachineTypeB.tszip | Bin 0 -> 317547 bytes .../Templates/MachineTypeB/Axis1.xml | Bin 0 -> 15354 bytes .../Templates/MachineTypeB/Axis2.xml | Bin 0 -> 15354 bytes .../Templates/MachineTypeB/Axis3.xml | Bin 0 -> 14686 bytes .../Templates/MachineTypeB/Axis4.xml | Bin 0 -> 14686 bytes .../Templates/MachineTypeB/Channel2.xml | Bin 0 -> 778 bytes .../MachineTypeB/Datatypes/E_Commands.xml | 8 + .../Datatypes/E_NCI_CTRL_STATE.xml | 18 + .../MachineTypeB/Datatypes/E_States.xml | 9 + .../MachineTypeB/GVLs/GlobalVariables.xml | 36 + .../Templates/MachineTypeB/Links.xml | 82 + .../MachineTypeB/POUs/FB_NciChannel.xml | 181 + .../MachineTypeB/POUs/FB_NciSequence.xml | 86 + .../Templates/MachineTypeB/POUs/MAIN.xml | 152 + .../Templates/MachineTypeBOrig.tszip | Bin 0 -> 317547 bytes .../Templates/MachineTypeC.tszip | Bin 0 -> 332438 bytes .../Templates/MachineTypeC/AxisX.xml | Bin 0 -> 15352 bytes .../Templates/MachineTypeC/AxisY.xml | Bin 0 -> 15352 bytes .../Templates/MachineTypeC/AxisZ.xml | Bin 0 -> 14686 bytes .../MachineTypeC/Datatypes/E_AxisState.xml | 9 + .../MachineTypeC/Datatypes/E_MoveCmd.xml | 10 + .../Templates/MachineTypeC/Links.xml | 68 + .../MachineTypeC/POUs/Axis/FB_AX5000Axis.xml | 79 + .../MachineTypeC/POUs/Axis/FB_NcAxis.xml | 213 + .../MachineTypeC/POUs/Axis/IAxis.xml | 35 + .../Templates/MachineTypeC/POUs/FB_Table.xml | 127 + .../Templates/MachineTypeC/POUs/MAIN.xml | 49 + .../Templates/MachineTypeCOrig.tszip | Bin 0 -> 332438 bytes .../MachineTypeD/Datatypes/E_FunctionType.xml | 16 + .../MachineTypeD/GVLs/GVL_Constants.xml | 8 + .../POUs/FB_FunctionGenerator.xml | 331 + .../Templates/MachineTypeD/POUs/MAIN.xml | 86 + .../TC3-AU08-IEC-IC/MachineTypeA/Axis1.xml | Bin 0 -> 15546 bytes .../TC3-AU08-IEC-IC/MachineTypeA/Axis2.xml | Bin 0 -> 15546 bytes .../TC3-AU08-IEC-IC/MachineTypeA/Drive.xti | 145 + .../TC3-AU08-IEC-IC/MachineTypeA/Links.xml | 98 + .../TC3-AU08-IEC-IC/MachineTypeA/LinksOld.xml | 64 + .../MachineTypeA/POUs/FB_Axis.xml | 137 + .../MachineTypeA/POUs/MAIN.xml | 33 + .../TC3-AU08-IEC-IC/MachineTypeB/Axis1.xml | Bin 0 -> 15354 bytes .../TC3-AU08-IEC-IC/MachineTypeB/Axis2.xml | Bin 0 -> 15354 bytes .../TC3-AU08-IEC-IC/MachineTypeB/Axis3.xml | Bin 0 -> 14686 bytes .../TC3-AU08-IEC-IC/MachineTypeB/Axis4.xml | Bin 0 -> 14686 bytes .../TC3-AU08-IEC-IC/MachineTypeB/Channel2.xml | Bin 0 -> 778 bytes .../MachineTypeB/Datatypes/E_Commands.xml | 8 + .../Datatypes/E_NCI_CTRL_STATE.xml | 18 + .../MachineTypeB/Datatypes/E_States.xml | 9 + .../TC3-AU08-IEC-IC/MachineTypeB/Drive.xti | 145 + .../MachineTypeB/GVLs/GlobalVariables.xml | 36 + .../TC3-AU08-IEC-IC/MachineTypeB/Links.xml | 98 + .../TC3-AU08-IEC-IC/MachineTypeB/LinksOld.xml | 82 + .../MachineTypeB/POUs/FB_NciChannel.xml | 181 + .../MachineTypeB/POUs/FB_NciSequence.xml | 86 + .../MachineTypeB/POUs/MAIN.xml | 152 + .../TC3-AU08-IEC-IC/MachineTypeC/AxisX.xml | Bin 0 -> 15352 bytes .../TC3-AU08-IEC-IC/MachineTypeC/AxisY.xml | Bin 0 -> 15352 bytes .../TC3-AU08-IEC-IC/MachineTypeC/AxisZ.xml | Bin 0 -> 14686 bytes .../MachineTypeC/Datatypes/E_AxisState.xml | 9 + .../MachineTypeC/Datatypes/E_MoveCmd.xml | 10 + .../TC3-AU08-IEC-IC/MachineTypeC/Drive.xti | 145 + .../TC3-AU08-IEC-IC/MachineTypeC/Links.xml | 72 + .../TC3-AU08-IEC-IC/MachineTypeC/LinksOld.xml | 68 + .../MachineTypeC/POUs/Axis/FB_AX5000Axis.xml | 79 + .../MachineTypeC/POUs/Axis/FB_NcAxis.xml | 213 + .../MachineTypeC/POUs/Axis/IAxis.xml | 35 + .../MachineTypeC/POUs/FB_Table.xml | 127 + .../MachineTypeC/POUs/MAIN.xml | 49 + .../TC3-AU08-IEC-IC/PouProgramCFC.xml | 1930 ++ .../TC3-AU08-IEC-IC/PouProgramFbd.xml | 1280 ++ .../TC3-AU08-IEC-IC/PouProgramLd.xml | 1324 ++ .../TC3-AU08-IEC-IC/PouProgramSfc.xml | 648 + .../TC3-AU08-IEC-IC/PouProgramSt.xml | 65 + .../TC3-AV09-IEC_TG/MachineTypeA/Axis1.xml | Bin 0 -> 15546 bytes .../TC3-AV09-IEC_TG/MachineTypeA/Axis2.xml | Bin 0 -> 15546 bytes .../TC3-AV09-IEC_TG/MachineTypeA/Drive.xti | 145 + .../TC3-AV09-IEC_TG/MachineTypeA/Links.xml | 101 + .../TC3-AV09-IEC_TG/MachineTypeA/LinksOld.xml | 64 + .../MachineTypeA/POUs/FB_Axis.xml | 137 + .../MachineTypeA/POUs/MAIN.xml | 33 + .../TC3-AV09-IEC_TG/MachineTypeB/Axis1.xml | Bin 0 -> 15354 bytes .../TC3-AV09-IEC_TG/MachineTypeB/Axis2.xml | Bin 0 -> 15354 bytes .../TC3-AV09-IEC_TG/MachineTypeB/Axis3.xml | Bin 0 -> 14686 bytes .../TC3-AV09-IEC_TG/MachineTypeB/Axis4.xml | Bin 0 -> 14686 bytes .../TC3-AV09-IEC_TG/MachineTypeB/Channel2.xml | Bin 0 -> 778 bytes .../MachineTypeB/Datatypes/E_Commands.xml | 8 + .../Datatypes/E_NCI_CTRL_STATE.xml | 18 + .../MachineTypeB/Datatypes/E_States.xml | 9 + .../TC3-AV09-IEC_TG/MachineTypeB/Drive.xti | 145 + .../MachineTypeB/GVLs/GlobalVariables.xml | 36 + .../TC3-AV09-IEC_TG/MachineTypeB/Links.xml | 96 + .../TC3-AV09-IEC_TG/MachineTypeB/LinksOld.xml | 82 + .../MachineTypeB/POUs/FB_NciChannel.xml | 181 + .../MachineTypeB/POUs/FB_NciSequence.xml | 86 + .../MachineTypeB/POUs/MAIN.xml | 152 + .../TC3-AV09-IEC_TG/MachineTypeC/AxisX.xml | Bin 0 -> 15352 bytes .../TC3-AV09-IEC_TG/MachineTypeC/AxisY.xml | Bin 0 -> 15352 bytes .../TC3-AV09-IEC_TG/MachineTypeC/AxisZ.xml | Bin 0 -> 14686 bytes .../MachineTypeC/Datatypes/E_AxisState.xml | 9 + .../MachineTypeC/Datatypes/E_MoveCmd.xml | 10 + .../TC3-AV09-IEC_TG/MachineTypeC/Drive.xti | 145 + .../TC3-AV09-IEC_TG/MachineTypeC/Links.xml | 72 + .../TC3-AV09-IEC_TG/MachineTypeC/LinksOld.xml | 68 + .../MachineTypeC/POUs/Axis/FB_AX5000Axis.xml | 79 + .../MachineTypeC/POUs/Axis/FB_NcAxis.xml | 213 + .../MachineTypeC/POUs/Axis/IAxis.xml | 35 + .../MachineTypeC/POUs/FB_Table.xml | 127 + .../MachineTypeC/POUs/MAIN.xml | 49 + .../TC3-AV09-IEC_TG/PouProgramCFC.xml | 1930 ++ .../TC3-AV09-IEC_TG/PouProgramFbd.xml | 1280 ++ .../TC3-AV09-IEC_TG/PouProgramLd.xml | 1324 ++ .../TC3-AV09-IEC_TG/PouProgramSfc.xml | 648 + .../TC3-AV09-IEC_TG/PouProgramSt.xml | 65 + .../CodeGenerationDemo/app.config | 3 + .../ScriptingTestContainerBase/Common.cs | 193 + .../ConfigurationFactory.cs | 94 + .../ConfigurationGenerator.cs | 535 + .../EarlyBinding.cs | 65 + .../ScriptingTestContainerBase/ItemTypes.cs | 2456 +++ .../ScriptingTestContainerBase/LateBinding.cs | 26 + .../MessageFilter.cs | 163 + .../Properties/AssemblyInfo.cs | 36 + .../RunningObjectsTable.cs | 221 + .../ScriptingTestContainerBase/Script.cs | 1071 + .../ScriptLoader.cs | 170 + .../ScriptingHelper.cs | 234 + .../ScriptingTestContainerBase.csproj | 154 + .../TcXmlConverter.cs | 162 + .../WorkerThread.cs | 507 + .../PluginSample_PlcVersionInfo.sln | 20 + .../AssemblyInfo.cs | 51 + .../PluginSample_PlcVersionInfo/Connect.cs | 177 + .../MessageFilter.cs | 160 + .../PluginSample_PlcVersionInfo.AddIn | Bin 0 -> 1372 bytes .../PluginSample_PlcVersionInfo.csproj | 173 + .../PluginSample_PlcVersionInfo.xml | 199 + .../Properties/Resources.Designer.cs | 73 + .../Properties/Resources.resx | 124 + .../TextControl.cs | 167 + .../VersionInfo.Designer.cs | 141 + .../VersionInfo.cs | 81 + .../VersionInfo.resx | 16261 ++++++++++++++++ .../pictureBox1.Image.png | Bin 0 -> 968129 bytes .../Properties/AssemblyInfo.cs | 36 + .../Scripting.CSharp.Scripts.csproj | 160 + .../Scripts/AccessRunningVS.cs | 148 + .../Scripts/Ax5000Drive.cs | 211 + .../Scripts/EtherCATAutomationProtocol.cs | 822 + .../Scripts/EtherCATLinking.cs | 349 + .../Scripts/EtherCATLinking2.cs | 462 + .../Scripts/GenerateCppProject.cs | 180 + .../Scripts/GeneratePlcProject.cs | 1285 ++ .../Scripts/GenerateSafetyProject.cs | 233 + .../Scripts/ManagePlcLibraries.cs | 398 + .../Scripts/PlcArchives.cs | 233 + .../Scripts/PlcStressTest.cs | 1141 ++ .../Scripts/PouTemplates/StringTemplates.cs | 245 + .../Scripts/RouteManagement.cs | 252 + .../Scripts/TComObjects.cs | 1063 + .../Scripts/TaskCPUSettings.cs | 403 + .../ScriptingContainer.sln | 67 + .../ScriptingContainerBins/CSharp.Scripts.XML | 1573 ++ .../GeneratePlcProject.sln.~u | 4 + .../ScriptingTestContainer.XML | 206 + .../ScriptingTestContainerBase.XML | 3893 ++++ .../TwinCAT RT (x64)/ContrSysPT2.sys | Bin 0 -> 421184 bytes .../TwinCAT RT (x86)/ContrSysPT2.sys | Bin 0 -> 331776 bytes .../TempContr/TwinCAT RT (x64)/TempContr.sys | Bin 0 -> 444736 bytes .../TempContr/TwinCAT RT (x86)/TempContr.sys | Bin 0 -> 354304 bytes .../Templates/PlcArchive1.tpzip | Bin 0 -> 479516 bytes .../Templates/PlcAxisTemplate.tpzip | Bin 0 -> 159364 bytes .../Templates/PouProgramCFC.xml | 3831 ++++ .../Templates/PouProgramFbd.xml | 2664 +++ .../Templates/PouProgramLd.xml | 2664 +++ .../Templates/PouProgramSfc.xml | 1770 ++ .../Templates/PouProgramSt.xml | 60 + .../Templates/Tc2_AiSampleLib.library | Bin 0 -> 156680 bytes .../ScriptingTestContainer/App.xaml | 8 + .../ScriptingTestContainer/App.xaml.cs | 16 + .../ScriptingTestContainer/MainWindow.xaml | 63 + .../ScriptingTestContainer/MainWindow.xaml.cs | 424 + .../Properties/AssemblyInfo.cs | 55 + .../Properties/Resources.Designer.cs | 63 + .../Properties/Resources.resx | 117 + .../Properties/Settings.Designer.cs | 26 + .../Properties/Settings.settings | 7 + .../ScriptingTestContainer.csproj | 294 + .../ContrSysPT2/ContrSysPT2_ModuleInfo.xml | 5 + .../ContrSysPT2/ContrSysPT2_PlcOpenPOUs.xml | 347 + .../TwinCAT RT (x64)/ContrSysPT2.sys | Bin 0 -> 421184 bytes .../TwinCAT RT (x86)/ContrSysPT2.sys | Bin 0 -> 331776 bytes .../TComModules/ReadMe.txt | 3 + .../TempContr/TempContr_ModuleInfo.xml | 6 + .../TempContr/TempContr_PlcOpenPOUs.xml | 347 + .../TempContr/TwinCAT RT (x64)/TempContr.sys | Bin 0 -> 444736 bytes .../TempContr/TwinCAT RT (x86)/TempContr.sys | Bin 0 -> 354304 bytes .../Templates/PlcArchive1.tpzip | Bin 0 -> 479516 bytes .../Templates/PlcAxisTemplate.tpzip | Bin 0 -> 159364 bytes .../Templates/PouProgramCFC.xml | 3831 ++++ .../Templates/PouProgramFbd.xml | 2664 +++ .../Templates/PouProgramIL.xml | 2664 +++ .../Templates/PouProgramLd.xml | 2664 +++ .../Templates/PouProgramSfc.xml | 1770 ++ .../Templates/PouProgramSt.xml | 60 + .../Templates/Tc2_AiSampleLib.library | Bin 0 -> 156680 bytes .../ScriptingTestContainerBase/Common.cs | 193 + .../ConfigurationFactory.cs | 94 + .../ConfigurationGenerator.cs | 535 + .../EarlyBinding.cs | 65 + .../ScriptingTestContainerBase/ItemTypes.cs | 2456 +++ .../ScriptingTestContainerBase/LateBinding.cs | 26 + .../MessageFilter.cs | 163 + .../Properties/AssemblyInfo.cs | 36 + .../RunningObjectsTable.cs | 221 + .../ScriptingTestContainerBase/Script.cs | 1071 + .../ScriptLoader.cs | 170 + .../ScriptingHelper.cs | 234 + .../ScriptingTestContainerBase.csproj | 154 + .../TcXmlConverter.cs | 162 + .../WorkerThread.cs | 507 + .../.github/ISSUE_TEMPLATE/bug_report.md | 29 + .../samples/TcUnit-master/.gitignore | 379 + .../samples/TcUnit-master/CONTRIBUTING.md | 58 + .../samples/TcUnit-master/LICENSE | 22 + .../samples/TcUnit-master/README.md | 38 + .../TcUnit-master/TcUnit-Verifier/README.md | 103 + .../TcUnit-Verifier.sln | 22 + .../TcUnit-Verifier/App.config | 6 + .../TcUnit-Verifier/AutomationInterface.cs | 76 + .../TcUnit-Verifier/Constants.cs | 11 + .../TcUnit-Verifier/ErrorList.cs | 57 + ...ertFailureMessageToMax253CharLengthTest.cs | 30 + .../TcUnit-Verifier/FB_AnyPrimitiveTypes.cs | 345 + .../TcUnit-Verifier/FB_AnyToUnionValue.cs | 155 + .../TcUnit-Verifier/FB_ArrayPrimitiveTypes.cs | 481 + .../FB_AssertCountExceedsMaxNumber.cs | 23 + .../FB_AssertEveryFailedTestTwice.cs | 88 + ..._AssertEveryFailedTestTwiceArrayVersion.cs | 74 + .../TcUnit-Verifier/FB_AssertTrueFalse.cs | 39 + .../FB_CheckIfSpecificTestIsFinished.cs | 22 + .../TcUnit-Verifier/FB_CreateDisabledTest.cs | 26 + .../FB_CreateFourTestsWithSameName.cs | 17 + .../FB_EmptyAssertionMessage.cs | 19 + .../FB_ExtendedTestInformation.cs | 96 + ...arametersInDifferentCyclesAndInSameTest.cs | 19 + ...sInDifferentCyclesButWithDifferentTests.cs | 33 + ...thSameParametersInSameCycleWithSameTest.cs | 19 + .../TcUnit-Verifier/FB_PrimitiveTypes.cs | 355 + .../FB_SkipAssertionsWhenFinished.cs | 30 + .../FB_TestDurationMeasurement.cs | 29 + .../TcUnit-Verifier/FB_TestFileControl.cs | 47 + .../TcUnit-Verifier/FB_TestFinishedNamed.cs | 18 + .../FB_TestNumberOfAssertionsCalculation.cs | 43 + .../TcUnit-Verifier/FB_TestStreamBuffer.cs | 68 + .../TcUnit-Verifier/FB_TestXmlControl.cs | 61 + .../FB_WriteProtectedFunctions.cs | 158 + .../TcUnit-Verifier/LICENSE_NDesk_Options.txt | 124 + .../TcUnit-Verifier/LICENSE_log4net.txt | 202 + .../TcUnit-Verifier/MessageFilter.cs | 81 + .../TcUnit-Verifier/Options.cs | 1103 ++ .../TcUnit-Verifier/Program.cs | 259 + .../Properties/AssemblyInfo.cs | 36 + .../TcUnit-Verifier/TcUnit-Verifier.csproj | 125 + .../TestFunctionBlockAssert.cs | 226 + .../TcUnit-Verifier/VisualStudioInstance.cs | 180 + .../TcUnit-Verifier/log4net.config | 21 + .../TcUnit-Verifier/packages.config | 4 + .../TcUnit-Verifier_TwinCAT.sln | 56 + .../TcUnit-Verifier_TwinCAT.tsproj | 15 + .../POUs/FB_ProtectedVariables.TcPOU | 60 + .../TcUnitVerifier/PlcTask.TcTTO | 16 + .../TcUnitVerifier/TcUnitVerifier.plcproj | 214 + ...FailureMessageToMax253CharLengthTest.TcPOU | 124 + .../Test/FB_AnyPrimitiveTypes.TcPOU | 799 + .../Test/FB_AnyToUnionValue.TcPOU | 469 + .../Test/FB_ArrayPrimitiveTypes.TcPOU | 1546 ++ .../Test/FB_AssertCountExceedsMaxNumber.TcPOU | 77 + .../Test/FB_AssertEveryFailedTestTwice.TcPOU | 191 + ...sertEveryFailedTestTwiceArrayVersion.TcPOU | 169 + .../Test/FB_AssertTrueFalse.TcPOU | 81 + .../FB_CheckIfSpecificTestIsFinished.TcPOU | 26 + .../Test/FB_CreateDisabledTest.TcPOU | 48 + .../Test/FB_CreateFourTestsWithSameName.TcPOU | 84 + .../Test/FB_EmptyAssertionMessage.TcPOU | 26 + .../Test/FB_EmptyTestSuite.TcPOU | 13 + .../Test/FB_ExtendedTestInformation.TcPOU | 102 + ...metersInDifferentCyclesAndInSameTest.TcPOU | 94 + ...DifferentCyclesButWithDifferentTests.TcPOU | 130 + ...ameParametersInSameCycleWithSameTest.TcPOU | 47 + .../Test/FB_PrimitiveTypes.TcPOU | 857 + .../Test/FB_SkipAssertionsWhenFinished.TcPOU | 67 + .../Test/FB_TestDurationMeasurement.TcPOU | 78 + .../Test/FB_TestFileControl.TcPOU | 140 + .../Test/FB_TestFinishedNamed.TcPOU | 13 + .../FB_TestFinishedNamedDoesNotExist.TcPOU | 31 + ...FB_TestNumberOfAssertionsCalculation.TcPOU | 1662 ++ .../Test/FB_TestStreamBuffer.TcPOU | 238 + .../Test/FB_TestXmlControl.TcPOU | 223 + .../Test/FB_WriteProtectedFunctions.TcPOU | 387 + .../TcUnitVerifier/Test/PRG_TEST.TcPOU | 49 + .../Version/Global_Version.TcGVL | 14 + .../_Config/PLC/TcUnitVerifier.xti | 9 + .../img/TcUnit-Verifier_Concept_1280.png | Bin 0 -> 115549 bytes .../samples/TcUnit-master/TcUnit.libcat.xml | 8 + .../samples/TcUnit-master/TcUnit.sln | 59 + .../TcUnit-master/TcUnit/TcUnit.tsproj | 8 + .../TcUnit/TcUnit/DUTs/E_AssertionType.TcDUT | 58 + .../TcUnit/TcUnit/DUTs/E_XmlError.TcDUT | 15 + .../TcUnit/DUTs/ST_AdsLogStringMessage.TcDUT | 13 + .../TcUnit/DUTs/ST_AssertArrayResult.TcDUT | 15 + .../DUTs/ST_AssertArrayResultInstances.TcDUT | 12 + .../TcUnit/TcUnit/DUTs/ST_AssertResult.TcDUT | 13 + .../DUTs/ST_AssertResultInstances.TcDUT | 12 + .../TcUnit/DUTs/ST_TestCaseResult.TcDUT | 17 + .../TcUnit/DUTs/ST_TestSuiteResult.TcDUT | 15 + .../TcUnit/DUTs/ST_TestSuiteResults.TcDUT | 18 + .../TcUnit/DUTs/U_ExpectedOrActual.TcDUT | 32 + .../TcUnit/TcUnit/GVLs/GVL_Param_TcUnit.TcGVL | 49 + .../TcUnit/TcUnit/GVLs/GVL_TcUnit.TcGVL | 54 + .../TcUnit/ITFs/I_AssertMessageFormatter.TcIO | 16 + .../TcUnit/ITFs/I_TestResultLogger.TcIO | 9 + .../TcUnit/TcUnit/ITFs/I_TestResults.TcIO | 15 + ...sertFailureMessageToMax253CharLength.TcPOU | 56 + .../POUs/FB_AdsAssertMessageFormatter.TcPOU | 60 + .../FB_AdsLogStringMessageFifoQueue.TcPOU | 92 + .../TcUnit/POUs/FB_AdsTestResultLogger.TcPOU | 189 + .../POUs/FB_AssertArrayResultStatic.TcPOU | 309 + .../TcUnit/POUs/FB_AssertResultStatic.TcPOU | 325 + .../TcUnit/TcUnit/POUs/FB_FileControl.TcPOU | 88 + .../TcUnit/TcUnit/POUs/FB_StreamBuffer.TcPOU | 256 + .../TcUnit/TcUnit/POUs/FB_TcUnitRunner.TcPOU | 173 + .../TcUnit/TcUnit/POUs/FB_Test.TcPOU | 170 + .../TcUnit/TcUnit/POUs/FB_TestResults.TcPOU | 132 + .../TcUnit/TcUnit/POUs/FB_TestSuite.TcPOU | 3804 ++++ .../TcUnit/TcUnit/POUs/FB_XmlControl.TcPOU | 212 + .../TcUnit/POUs/FB_xUnitXmlPublisher.TcPOU | 178 + .../POUs/Functions/F_AnyToUnionValue.TcPOU | 185 + .../Functions/F_AnyTypeClassToString.TcPOU | 137 + .../Functions/F_AssertionTypeToString.TcPOU | 150 + .../Functions/F_GetCpuCounterAs64bit.TcPOU | 17 + ...GetTestSuiteNameFromTestInstancePath.TcPOU | 20 + .../Functions/F_IsAnyEqualToUnionValue.TcPOU | 150 + ...thAndProjectNameFromTestInstancePath.TcPOU | 38 + .../POUs/Functions/IS_TEST_FINISHED.TcPOU | 27 + .../TcUnit/TcUnit/POUs/Functions/RUN.TcPOU | 13 + .../POUs/Functions/RUN_IN_SEQUENCE.TcPOU | 13 + .../POUs/Functions/TCUNIT_ADSLOGSTR.TcPOU | 20 + .../TcUnit/TcUnit/POUs/Functions/TEST.TcPOU | 37 + .../TcUnit/POUs/Functions/TEST_FINISHED.TcPOU | 34 + .../POUs/Functions/TEST_FINISHED_NAMED.TcPOU | 56 + .../TcUnit/POUs/Functions/TEST_ORDERED.TcPOU | 85 + .../WRITE_PROTECTED_BOOL.TcPOU | 13 + .../WRITE_PROTECTED_BYTE.TcPOU | 13 + .../WRITE_PROTECTED_DATE.TcPOU | 13 + .../WRITE_PROTECTED_DATE_AND_TIME.TcPOU | 13 + .../WRITE_PROTECTED_DINT.TcPOU | 13 + .../WRITE_PROTECTED_DWORD.TcPOU | 13 + .../WRITE_PROTECTED_INT.TcPOU | 13 + .../WRITE_PROTECTED_LINT.TcPOU | 13 + .../WRITE_PROTECTED_LREAL.TcPOU | 13 + .../WRITE_PROTECTED_LWORD.TcPOU | 13 + .../WRITE_PROTECTED_REAL.TcPOU | 13 + .../WRITE_PROTECTED_SINT.TcPOU | 13 + .../WRITE_PROTECTED_STRING.TcPOU | 13 + .../WRITE_PROTECTED_TIME.TcPOU | 13 + .../WRITE_PROTECTED_TIME_OF_DAY.TcPOU | 13 + .../WRITE_PROTECTED_UDINT.TcPOU | 13 + .../WRITE_PROTECTED_UINT.TcPOU | 13 + .../WRITE_PROTECTED_ULINT.TcPOU | 13 + .../WRITE_PROTECTED_USINT.TcPOU | 13 + .../WRITE_PROTECTED_WORD.TcPOU | 13 + .../WRITE_PROTECTED_WSTRING.TcPOU | 13 + .../TcUnit/TcUnit/TcUnit.plcproj | 438 + .../TcUnit/Version/Global_Version.TcGVL | 14 + .../TcUnit/_Config/PLC/TcUnit.xti | 9 + .../samples/TcUnit-master/docs/.nojekyll | 0 .../samples/TcUnit-master/docs/CNAME | 1 + .../samples/TcUnit-master/docs/LICENSE_USAGE | 26 + .../samples/TcUnit-master/docs/README.md | 28 + .../samples/TcUnit-master/docs/_sidebar.md | 18 + .../samples/TcUnit-master/docs/api.md | 2215 +++ .../TcUnit-master/docs/docsify/custom.css | 44 + .../docs/docsify/language-st.css | 31 + .../TcUnit-master/docs/docsify/language-st.js | 92 + .../plugins/docsify-plugin-flexible-alerts.js | 9 + .../samples/TcUnit-master/docs/download.md | 12 + .../samples/TcUnit-master/docs/faq.md | 415 + .../docs/img/AssertAnyWithParameter.png | Bin 0 -> 19564 bytes ...iagnosticMessageDiagnosticCodeParser-1.png | Bin 0 -> 41829 bytes .../docs/img/TcUnit-Logo-Header-v2_2.jpg | Bin 0 -> 73865 bytes .../docs/img/TcUnit13Successful_2.png | Bin 0 -> 5047 bytes .../docs/img/TcUnit16Of17Failed_2.png | Bin 0 -> 5151 bytes .../docs/img/TcUnitAllSuccessful2.png | Bin 0 -> 5042 bytes .../docs/img/TcUnitElevenSuccessful_2.png | Bin 0 -> 4998 bytes .../docs/img/TcUnitFiveSuccessful_2.png | Bin 0 -> 5090 bytes .../docs/img/TcUnitManyFails.png | Bin 0 -> 56663 bytes .../docs/img/TcUnitNineSuccessful_2.png | Bin 0 -> 5086 bytes .../docs/img/add-library-reference.png | Bin 0 -> 34223 bytes .../docs/img/diagnosis-code-bytes.png | Bin 0 -> 34671 bytes .../docs/img/diagnosticmessageflagsparser.png | Bin 0 -> 40847 bytes .../docs/img/diagnosticmessageparser.png | Bin 0 -> 28909 bytes .../diagnosticmessagetextidentityparser.png | Bin 0 -> 26913 bytes .../img/diagnosticmessagetimestampparser.png | Bin 0 -> 32796 bytes .../TcUnit-master/docs/img/flagslayout.png | Bin 0 -> 30421 bytes .../docs/img/function-block-layout.png | Bin 0 -> 286796 bytes .../docs/img/functionblocklayout.png | Bin 0 -> 286796 bytes .../TcUnit-master/docs/img/hide-reference.png | Bin 0 -> 10759 bytes .../docs/img/iolink-tests-tcunit.png | Bin 0 -> 562272 bytes .../docs/img/library-repository-window.png | Bin 0 -> 20173 bytes .../TcUnit-master/docs/img/tc3_banner.jpg | Bin 0 -> 157389 bytes .../TcUnit-master/docs/img/tc3_banner2.jpg | Bin 0 -> 218409 bytes .../TcUnit-master/docs/img/tc3_banner4.jpg | Bin 0 -> 167649 bytes .../TcUnit-master/docs/img/tc3_banner5.jpg | Bin 0 -> 200887 bytes .../TcUnit-master/docs/img/tc3_banner6.jpg | Bin 0 -> 267817 bytes .../TcUnit-master/docs/img/tc3_banner7.jpg | Bin 0 -> 290322 bytes .../TcUnit-master/docs/img/tc3_banner97.jpg | Bin 0 -> 103436 bytes .../TcUnit-master/docs/img/tc3_banner98.jpg | Bin 0 -> 222074 bytes .../TcUnit-master/docs/img/tc3_banner99.jpg | Bin 0 -> 104528 bytes .../img/tcunit-adslogstr-correct-order.png | Bin 0 -> 24246 bytes .../tcunit-adslogstr-not-correct-order.png | Bin 0 -> 23276 bytes .../docs/img/tcunit-arch-example.png | Bin 0 -> 96922 bytes .../TcUnit-master/docs/img/tcunit-arch.png | Bin 0 -> 192994 bytes .../docs/img/tcunit-block-explanations.png | Bin 0 -> 112285 bytes .../img/tcunit-example-click-description.png | Bin 0 -> 40928 bytes .../docs/img/tcunit-example-successful.png | Bin 0 -> 5182 bytes .../TcUnit-master/docs/img/tcunit-general.png | Bin 0 -> 254798 bytes ...creaseMaxNumberOfTestsForEachTestSuite.png | Bin 0 -> 30191 bytes .../TcUnit-master/docs/img/tcunit-logo.png | Bin 0 -> 74758 bytes .../TcUnit-master/docs/img/tcunit-results.png | Bin 0 -> 435435 bytes .../tcunit-saveaslibraryandinstall-window.png | Bin 0 -> 26115 bytes .../tcunit-timebetweentestsuitesexecution.png | Bin 0 -> 30361 bytes .../img/tcunit_logextendedtestresults.png | Bin 0 -> 27614 bytes .../docs/img/tcunit_run_option1.png | Bin 0 -> 54370 bytes .../docs/img/tcunit_run_option2.png | Bin 0 -> 66314 bytes .../docs/img/tcunit_run_option3.png | Bin 0 -> 54184 bytes .../docs/img/tcunit_run_option4.png | Bin 0 -> 85312 bytes .../TcUnit-master/docs/img/test-fbs.png | Bin 0 -> 34780 bytes .../TcUnit-master/docs/img/test-results.png | Bin 0 -> 5783 bytes .../docs/img/unit-test-structure-1.png | Bin 0 -> 39534 bytes .../samples/TcUnit-master/docs/index.html | 47 + .../docs/introduction-user-guide.md | 232 + .../docs/programming-example-final-words.md | 47 + ...ramming-example-implementation-part-one.md | 211 + ...ramming-example-implementation-part-two.md | 189 + .../docs/programming-example-introduction.md | 171 + .../docs/programming-example-part-two.md | 0 ...programming-example-test-cases-part-one.md | 279 + ...programming-example-test-cases-part-two.md | 923 + ...programming-example-the-function-blocks.md | 100 + .../TcUnit-master/docs/programming-example.md | 16 + .../docs/unit-testing-concepts.md | 97 + .../samples/TcUnit-master/img/tcunit-logo.png | Bin 0 -> 74758 bytes .../CodeGen/ICodeGenerator.cs | 18 + .../NodeTranslators/ComparisonTranslator.cs | 17 + .../NodeTranslators/CounterTranslator.cs | 17 + .../NodeTranslators/INodeTranslator.cs | 17 + .../NodeTranslators/TimerTranslator.cs | 17 + .../CodeGen/PlcProjectBuilder.cs | 9 + .../CodeGen/StructuredTextGenerator.cs | 24 + .../FlowForge.BuildServer.csproj | 5 + .../Pipeline/BuildContext.cs | 17 + .../Pipeline/BuildPipeline.cs | 45 + .../Pipeline/IBuildStep.cs | 10 + .../Pipeline/Steps/CloneRepoStep.cs | 15 + .../Pipeline/Steps/CommitResultStep.cs | 15 + .../Pipeline/Steps/CompileStep.cs | 15 + .../Pipeline/Steps/ConfigureTasksStep.cs | 15 + .../Pipeline/Steps/CreateProjectStep.cs | 15 + .../Pipeline/Steps/DeployStep.cs | 15 + .../Pipeline/Steps/GenerateBootProjectStep.cs | 15 + .../Pipeline/Steps/GenerateCodeStep.cs | 15 + .../Pipeline/Steps/ParseFlowStep.cs | 15 + .../Pipeline/Steps/ValidateFlowStep.cs | 15 + .../Services/GitWorkspace.cs | 9 + .../Services/MqttHandler.cs | 10 + .../Services/WorkspaceManager.cs | 29 + .../TwinCat/AutomationInterface.cs | 21 + .../TwinCat/IAutomationInterface.cs | 15 + .../TwinCat/IVisualStudioInstance.cs | 13 + .../TwinCat/MessageFilter.cs | 29 + .../TwinCat/TemplateManager.cs | 22 + .../TwinCat/TreeItemTypes.cs | 34 + .../TwinCat/VisualStudioInstance.cs | 20 + 633 files changed, 138388 insertions(+) create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/CodeGenerationDemo.exe.config create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Orders.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/ScriptingTestContainerBase.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeA.tszip create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeA/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeA/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeA/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeA/POUs/FB_Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeA/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB.tszip create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/Axis3.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/Axis4.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/Channel2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/Datatypes/E_Commands.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/Datatypes/E_NCI_CTRL_STATE.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/Datatypes/E_States.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/GVLs/GlobalVariables.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/POUs/FB_NciChannel.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/POUs/FB_NciSequence.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeB/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC.tszip create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/AxisX.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/AxisY.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/AxisZ.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/Datatypes/E_AxisState.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/Datatypes/E_MoveCmd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/POUs/Axis/FB_AX5000Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/POUs/Axis/FB_NcAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/POUs/Axis/IAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/POUs/FB_Table.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeC/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeD/Datatypes/E_FunctionType.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeD/GVLs/GVL_Constants.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeD/POUs/FB_FunctionGenerator.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeD/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeA/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeA/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeA/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeA/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeA/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeA/POUs/FB_Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeA/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/Axis3.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/Axis4.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/Channel2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/Datatypes/E_Commands.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/Datatypes/E_NCI_CTRL_STATE.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/Datatypes/E_States.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/GVLs/GlobalVariables.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/POUs/FB_NciChannel.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/POUs/FB_NciSequence.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeB/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/AxisX.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/AxisY.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/AxisZ.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/Datatypes/E_AxisState.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/Datatypes/E_MoveCmd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/POUs/Axis/FB_AX5000Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/POUs/Axis/FB_NcAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/POUs/Axis/IAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/POUs/FB_Table.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/MachineTypeC/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/PouProgramCFC.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/PouProgramFbd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/PouProgramLd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/PouProgramSfc.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AU08-IEC-IC/PouProgramSt.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeA/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeA/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeA/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeA/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeA/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeA/POUs/FB_Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeA/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/Axis3.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/Axis4.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/Channel2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/Datatypes/E_Commands.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/Datatypes/E_NCI_CTRL_STATE.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/Datatypes/E_States.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/GVLs/GlobalVariables.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/POUs/FB_NciChannel.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/POUs/FB_NciSequence.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeB/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/AxisX.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/AxisY.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/AxisZ.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/Datatypes/E_AxisState.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/Datatypes/E_MoveCmd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/POUs/Axis/FB_AX5000Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/POUs/Axis/FB_NcAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/POUs/Axis/IAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/POUs/FB_Table.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/MachineTypeC/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/PouProgramCFC.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/PouProgramFbd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/PouProgramLd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/PouProgramSfc.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/TC3-AV09-IEC_TG/PouProgramSt.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo.sln create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/App.xaml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/App.xaml.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/CodeGenerationDemo.csproj create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/CodeGenerationScript.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/ConfigurationScriptA.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/ConfigurationScriptB.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/ConfigurationScriptC.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/ConfigurationScriptD.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Data/Orders.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Data/OrdersStandard.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Data/ReadMe.txt create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Data/TC3_AU08-IEC-IC_Orders.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Data/TC3_AV09-IEC-TG_Orders.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/DataModel.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/MainWindow.xaml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/MainWindow.xaml.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Orders.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Properties/AssemblyInfo.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Properties/Resources.Designer.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Properties/Resources.resx create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Properties/Settings.Designer.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Properties/Settings.settings create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/ScriptInfo.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeA.tszip create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeA/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeA/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeA/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeA/POUs/FB_Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeA/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeAOrig.tszip create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB.tszip create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/Axis3.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/Axis4.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/Channel2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/Datatypes/E_Commands.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/Datatypes/E_NCI_CTRL_STATE.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/Datatypes/E_States.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/GVLs/GlobalVariables.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/POUs/FB_NciChannel.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/POUs/FB_NciSequence.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeB/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeBOrig.tszip create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC.tszip create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/AxisX.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/AxisY.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/AxisZ.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/Datatypes/E_AxisState.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/Datatypes/E_MoveCmd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/POUs/Axis/FB_AX5000Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/POUs/Axis/FB_NcAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/POUs/Axis/IAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/POUs/FB_Table.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeC/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeCOrig.tszip create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeD/Datatypes/E_FunctionType.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeD/GVLs/GVL_Constants.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeD/POUs/FB_FunctionGenerator.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/MachineTypeD/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeA/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeA/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeA/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeA/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeA/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeA/POUs/FB_Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeA/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/Axis3.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/Axis4.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/Channel2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/Datatypes/E_Commands.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/Datatypes/E_NCI_CTRL_STATE.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/Datatypes/E_States.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/GVLs/GlobalVariables.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/POUs/FB_NciChannel.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/POUs/FB_NciSequence.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeB/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/AxisX.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/AxisY.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/AxisZ.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/Datatypes/E_AxisState.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/Datatypes/E_MoveCmd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/POUs/Axis/FB_AX5000Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/POUs/Axis/FB_NcAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/POUs/Axis/IAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/POUs/FB_Table.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/MachineTypeC/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/PouProgramCFC.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/PouProgramFbd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/PouProgramLd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/PouProgramSfc.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AU08-IEC-IC/PouProgramSt.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeA/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeA/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeA/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeA/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeA/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeA/POUs/FB_Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeA/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/Axis1.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/Axis2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/Axis3.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/Axis4.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/Channel2.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/Datatypes/E_Commands.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/Datatypes/E_NCI_CTRL_STATE.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/Datatypes/E_States.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/GVLs/GlobalVariables.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/POUs/FB_NciChannel.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/POUs/FB_NciSequence.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeB/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/AxisX.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/AxisY.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/AxisZ.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/Datatypes/E_AxisState.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/Datatypes/E_MoveCmd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/Drive.xti create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/Links.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/LinksOld.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/POUs/Axis/FB_AX5000Axis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/POUs/Axis/FB_NcAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/POUs/Axis/IAxis.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/POUs/FB_Table.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/MachineTypeC/POUs/MAIN.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/PouProgramCFC.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/PouProgramFbd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/PouProgramLd.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/PouProgramSfc.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/Templates/TC3-AV09-IEC_TG/PouProgramSt.xml create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationDemo/app.config create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/Common.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/ConfigurationFactory.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/ConfigurationGenerator.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/EarlyBinding.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/ItemTypes.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/LateBinding.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/MessageFilter.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/Properties/AssemblyInfo.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/RunningObjectsTable.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/Script.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/ScriptLoader.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/ScriptingHelper.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/ScriptingTestContainerBase.csproj create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/TcXmlConverter.cs create mode 100644 src/build-server/samples/CodeGenerationDemoSrc/ScriptingTestContainerBase/WorkerThread.cs create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo.sln create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/AssemblyInfo.cs create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/Connect.cs create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/MessageFilter.cs create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo.AddIn create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo.csproj create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo.xml create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/Properties/Resources.Designer.cs create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/Properties/Resources.resx create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/TextControl.cs create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/VersionInfo.Designer.cs create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/VersionInfo.cs create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/VersionInfo.resx create mode 100644 src/build-server/samples/PluginSample_PlcVersionInfo/PluginSample_PlcVersionInfo/pictureBox1.Image.png create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Properties/AssemblyInfo.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripting.CSharp.Scripts.csproj create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/AccessRunningVS.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/Ax5000Drive.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/EtherCATAutomationProtocol.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/EtherCATLinking.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/EtherCATLinking2.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/GenerateCppProject.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/GeneratePlcProject.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/GenerateSafetyProject.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/ManagePlcLibraries.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/PlcArchives.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/PlcStressTest.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/PouTemplates/StringTemplates.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/RouteManagement.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/TComObjects.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/Scripting.CSharp.Scripts/Scripts/TaskCPUSettings.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainer.sln create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/CSharp.Scripts.XML create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/GeneratePlcProject/GeneratePlcProject.sln.~u create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/ScriptingTestContainer.XML create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/ScriptingTestContainerBase.XML create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/TComModules/ContrSysPT2/TwinCAT RT (x64)/ContrSysPT2.sys create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/TComModules/ContrSysPT2/TwinCAT RT (x86)/ContrSysPT2.sys create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/TComModules/TempContr/TwinCAT RT (x64)/TempContr.sys create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/TComModules/TempContr/TwinCAT RT (x86)/TempContr.sys create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/Templates/PlcArchive1.tpzip create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/Templates/PlcAxisTemplate.tpzip create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/Templates/PouProgramCFC.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/Templates/PouProgramFbd.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/Templates/PouProgramLd.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/Templates/PouProgramSfc.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/Templates/PouProgramSt.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingContainerBins/Templates/Tc2_AiSampleLib.library create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/App.xaml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/App.xaml.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/MainWindow.xaml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/MainWindow.xaml.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Properties/AssemblyInfo.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Properties/Resources.Designer.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Properties/Resources.resx create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Properties/Settings.Designer.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Properties/Settings.settings create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/ScriptingTestContainer.csproj create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/TComModules/ContrSysPT2/ContrSysPT2_ModuleInfo.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/TComModules/ContrSysPT2/ContrSysPT2_PlcOpenPOUs.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/TComModules/ContrSysPT2/TwinCAT RT (x64)/ContrSysPT2.sys create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/TComModules/ContrSysPT2/TwinCAT RT (x86)/ContrSysPT2.sys create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/TComModules/ReadMe.txt create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/TComModules/TempContr/TempContr_ModuleInfo.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/TComModules/TempContr/TempContr_PlcOpenPOUs.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/TComModules/TempContr/TwinCAT RT (x64)/TempContr.sys create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/TComModules/TempContr/TwinCAT RT (x86)/TempContr.sys create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Templates/PlcArchive1.tpzip create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Templates/PlcAxisTemplate.tpzip create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Templates/PouProgramCFC.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Templates/PouProgramFbd.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Templates/PouProgramIL.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Templates/PouProgramLd.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Templates/PouProgramSfc.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Templates/PouProgramSt.xml create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainer/Templates/Tc2_AiSampleLib.library create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/Common.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/ConfigurationFactory.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/ConfigurationGenerator.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/EarlyBinding.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/ItemTypes.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/LateBinding.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/MessageFilter.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/Properties/AssemblyInfo.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/RunningObjectsTable.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/Script.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/ScriptLoader.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/ScriptingHelper.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/ScriptingTestContainerBase.csproj create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/TcXmlConverter.cs create mode 100644 src/build-server/samples/ScriptingContainerSrc/ScriptingTestContainerBase/WorkerThread.cs create mode 100644 src/build-server/samples/TcUnit-master/.github/ISSUE_TEMPLATE/bug_report.md create mode 100644 src/build-server/samples/TcUnit-master/.gitignore create mode 100644 src/build-server/samples/TcUnit-master/CONTRIBUTING.md create mode 100644 src/build-server/samples/TcUnit-master/LICENSE create mode 100644 src/build-server/samples/TcUnit-master/README.md create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/README.md create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier.sln create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/App.config create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/AutomationInterface.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/Constants.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/ErrorList.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_AdjustAssertFailureMessageToMax253CharLengthTest.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_AnyPrimitiveTypes.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_AnyToUnionValue.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_ArrayPrimitiveTypes.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_AssertCountExceedsMaxNumber.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_AssertEveryFailedTestTwice.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_AssertEveryFailedTestTwiceArrayVersion.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_AssertTrueFalse.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_CheckIfSpecificTestIsFinished.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_CreateDisabledTest.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_CreateFourTestsWithSameName.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_EmptyAssertionMessage.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_ExtendedTestInformation.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_MultipleAssertWithSameParametersInDifferentCyclesAndInSameTest.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_MultipleAssertWithSameParametersInDifferentCyclesButWithDifferentTests.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_MultipleAssertWithSameParametersInSameCycleWithSameTest.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_PrimitiveTypes.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_SkipAssertionsWhenFinished.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_TestDurationMeasurement.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_TestFileControl.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_TestFinishedNamed.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_TestNumberOfAssertionsCalculation.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_TestStreamBuffer.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_TestXmlControl.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/FB_WriteProtectedFunctions.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/LICENSE_NDesk_Options.txt create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/LICENSE_log4net.txt create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/MessageFilter.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/Options.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/Program.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/Properties/AssemblyInfo.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/TcUnit-Verifier.csproj create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/TestFunctionBlockAssert.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/VisualStudioInstance.cs create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/log4net.config create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_DotNet/TcUnit-Verifier/packages.config create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT.sln create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT.tsproj create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/POUs/FB_ProtectedVariables.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/PlcTask.TcTTO create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/TcUnitVerifier.plcproj create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_AdjustAssertFailureMessageToMax253CharLengthTest.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_AnyPrimitiveTypes.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_AnyToUnionValue.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_ArrayPrimitiveTypes.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_AssertCountExceedsMaxNumber.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_AssertEveryFailedTestTwice.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_AssertEveryFailedTestTwiceArrayVersion.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_AssertTrueFalse.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_CheckIfSpecificTestIsFinished.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_CreateDisabledTest.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_CreateFourTestsWithSameName.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_EmptyAssertionMessage.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_EmptyTestSuite.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_ExtendedTestInformation.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_MultipleAssertWithSameParametersInDifferentCyclesAndInSameTest.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_MultipleAssertWithSameParametersInDifferentCyclesButWithDifferentTests.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_MultipleAssertWithSameParametersInSameCycleWithSameTest.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_PrimitiveTypes.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_SkipAssertionsWhenFinished.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_TestDurationMeasurement.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_TestFileControl.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_TestFinishedNamed.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_TestFinishedNamedDoesNotExist.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_TestNumberOfAssertionsCalculation.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_TestStreamBuffer.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_TestXmlControl.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/FB_WriteProtectedFunctions.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Test/PRG_TEST.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/TcUnitVerifier/Version/Global_Version.TcGVL create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/TcUnit-Verifier_TwinCAT/TcUnit-Verifier_TwinCAT/_Config/PLC/TcUnitVerifier.xti create mode 100644 src/build-server/samples/TcUnit-master/TcUnit-Verifier/img/TcUnit-Verifier_Concept_1280.png create mode 100644 src/build-server/samples/TcUnit-master/TcUnit.libcat.xml create mode 100644 src/build-server/samples/TcUnit-master/TcUnit.sln create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit.tsproj create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/E_AssertionType.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/E_XmlError.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/ST_AdsLogStringMessage.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/ST_AssertArrayResult.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/ST_AssertArrayResultInstances.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/ST_AssertResult.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/ST_AssertResultInstances.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/ST_TestCaseResult.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/ST_TestSuiteResult.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/ST_TestSuiteResults.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/DUTs/U_ExpectedOrActual.TcDUT create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/GVLs/GVL_Param_TcUnit.TcGVL create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/GVLs/GVL_TcUnit.TcGVL create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/ITFs/I_AssertMessageFormatter.TcIO create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/ITFs/I_TestResultLogger.TcIO create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/ITFs/I_TestResults.TcIO create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_AdjustAssertFailureMessageToMax253CharLength.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_AdsAssertMessageFormatter.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_AdsLogStringMessageFifoQueue.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_AdsTestResultLogger.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_AssertArrayResultStatic.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_AssertResultStatic.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_FileControl.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_StreamBuffer.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_TcUnitRunner.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_Test.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_TestResults.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_TestSuite.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_XmlControl.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/FB_xUnitXmlPublisher.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/F_AnyToUnionValue.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/F_AnyTypeClassToString.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/F_AssertionTypeToString.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/F_GetCpuCounterAs64bit.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/F_GetTestSuiteNameFromTestInstancePath.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/F_IsAnyEqualToUnionValue.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/F_RemoveInstancePathAndProjectNameFromTestInstancePath.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/IS_TEST_FINISHED.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/RUN.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/RUN_IN_SEQUENCE.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/TCUNIT_ADSLOGSTR.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/TEST.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/TEST_FINISHED.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/TEST_FINISHED_NAMED.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/TEST_ORDERED.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_BOOL.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_BYTE.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_DATE.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_DATE_AND_TIME.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_DINT.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_DWORD.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_INT.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_LINT.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_LREAL.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_LWORD.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_REAL.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_SINT.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_STRING.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_TIME.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_TIME_OF_DAY.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_UDINT.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_UINT.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_ULINT.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_USINT.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_WORD.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/POUs/Functions/WRITE_PROTECTED_/WRITE_PROTECTED_WSTRING.TcPOU create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/TcUnit.plcproj create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/TcUnit/Version/Global_Version.TcGVL create mode 100644 src/build-server/samples/TcUnit-master/TcUnit/_Config/PLC/TcUnit.xti create mode 100644 src/build-server/samples/TcUnit-master/docs/.nojekyll create mode 100644 src/build-server/samples/TcUnit-master/docs/CNAME create mode 100644 src/build-server/samples/TcUnit-master/docs/LICENSE_USAGE create mode 100644 src/build-server/samples/TcUnit-master/docs/README.md create mode 100644 src/build-server/samples/TcUnit-master/docs/_sidebar.md create mode 100644 src/build-server/samples/TcUnit-master/docs/api.md create mode 100644 src/build-server/samples/TcUnit-master/docs/docsify/custom.css create mode 100644 src/build-server/samples/TcUnit-master/docs/docsify/language-st.css create mode 100644 src/build-server/samples/TcUnit-master/docs/docsify/language-st.js create mode 100644 src/build-server/samples/TcUnit-master/docs/docsify/plugins/docsify-plugin-flexible-alerts.js create mode 100644 src/build-server/samples/TcUnit-master/docs/download.md create mode 100644 src/build-server/samples/TcUnit-master/docs/faq.md create mode 100644 src/build-server/samples/TcUnit-master/docs/img/AssertAnyWithParameter.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/DiagnosticMessageDiagnosticCodeParser-1.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/TcUnit-Logo-Header-v2_2.jpg create mode 100644 src/build-server/samples/TcUnit-master/docs/img/TcUnit13Successful_2.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/TcUnit16Of17Failed_2.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/TcUnitAllSuccessful2.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/TcUnitElevenSuccessful_2.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/TcUnitFiveSuccessful_2.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/TcUnitManyFails.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/TcUnitNineSuccessful_2.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/add-library-reference.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/diagnosis-code-bytes.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/diagnosticmessageflagsparser.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/diagnosticmessageparser.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/diagnosticmessagetextidentityparser.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/diagnosticmessagetimestampparser.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/flagslayout.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/function-block-layout.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/functionblocklayout.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/hide-reference.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/iolink-tests-tcunit.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/library-repository-window.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tc3_banner.jpg create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tc3_banner2.jpg create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tc3_banner4.jpg create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tc3_banner5.jpg create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tc3_banner6.jpg create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tc3_banner7.jpg create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tc3_banner97.jpg create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tc3_banner98.jpg create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tc3_banner99.jpg create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-adslogstr-correct-order.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-adslogstr-not-correct-order.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-arch-example.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-arch.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-block-explanations.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-example-click-description.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-example-successful.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-general.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-increaseMaxNumberOfTestsForEachTestSuite.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-logo.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-results.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-saveaslibraryandinstall-window.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit-timebetweentestsuitesexecution.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit_logextendedtestresults.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit_run_option1.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit_run_option2.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit_run_option3.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/tcunit_run_option4.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/test-fbs.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/test-results.png create mode 100644 src/build-server/samples/TcUnit-master/docs/img/unit-test-structure-1.png create mode 100644 src/build-server/samples/TcUnit-master/docs/index.html create mode 100644 src/build-server/samples/TcUnit-master/docs/introduction-user-guide.md create mode 100644 src/build-server/samples/TcUnit-master/docs/programming-example-final-words.md create mode 100644 src/build-server/samples/TcUnit-master/docs/programming-example-implementation-part-one.md create mode 100644 src/build-server/samples/TcUnit-master/docs/programming-example-implementation-part-two.md create mode 100644 src/build-server/samples/TcUnit-master/docs/programming-example-introduction.md create mode 100644 src/build-server/samples/TcUnit-master/docs/programming-example-part-two.md create mode 100644 src/build-server/samples/TcUnit-master/docs/programming-example-test-cases-part-one.md create mode 100644 src/build-server/samples/TcUnit-master/docs/programming-example-test-cases-part-two.md create mode 100644 src/build-server/samples/TcUnit-master/docs/programming-example-the-function-blocks.md create mode 100644 src/build-server/samples/TcUnit-master/docs/programming-example.md create mode 100644 src/build-server/samples/TcUnit-master/docs/unit-testing-concepts.md create mode 100644 src/build-server/samples/TcUnit-master/img/tcunit-logo.png create mode 100644 src/build-server/src/FlowForge.BuildServer/CodeGen/ICodeGenerator.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/CodeGen/NodeTranslators/ComparisonTranslator.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/CodeGen/NodeTranslators/CounterTranslator.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/CodeGen/NodeTranslators/INodeTranslator.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/CodeGen/NodeTranslators/TimerTranslator.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/CodeGen/PlcProjectBuilder.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/CodeGen/StructuredTextGenerator.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/BuildContext.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/BuildPipeline.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/IBuildStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/Steps/CloneRepoStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/Steps/CommitResultStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/Steps/CompileStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/Steps/ConfigureTasksStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/Steps/CreateProjectStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/Steps/DeployStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/Steps/GenerateBootProjectStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/Steps/GenerateCodeStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/Steps/ParseFlowStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Pipeline/Steps/ValidateFlowStep.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Services/GitWorkspace.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Services/MqttHandler.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/Services/WorkspaceManager.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/TwinCat/AutomationInterface.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/TwinCat/IAutomationInterface.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/TwinCat/IVisualStudioInstance.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/TwinCat/MessageFilter.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/TwinCat/TemplateManager.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/TwinCat/TreeItemTypes.cs create mode 100644 src/build-server/src/FlowForge.BuildServer/TwinCat/VisualStudioInstance.cs diff --git a/src/build-server/FlowForge.BuildServer.sln b/src/build-server/FlowForge.BuildServer.sln index 50108a8..8ccb795 100644 --- a/src/build-server/FlowForge.BuildServer.sln +++ b/src/build-server/FlowForge.BuildServer.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 17.0.31903.59 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlowForge.BuildServer", "src\FlowForge.BuildServer\FlowForge.BuildServer.csproj", "{B2C3D4E5-F6A7-8901-BCDE-F12345678901}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlowForge.Shared", "..\shared\FlowForge.Shared\FlowForge.Shared.csproj", "{F3A4B5C6-D7E8-9012-CDEF-123456789013}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,5 +17,9 @@ Global {B2C3D4E5-F6A7-8901-BCDE-F12345678901}.Debug|Any CPU.Build.0 = Debug|Any CPU {B2C3D4E5-F6A7-8901-BCDE-F12345678901}.Release|Any CPU.ActiveCfg = Release|Any CPU {B2C3D4E5-F6A7-8901-BCDE-F12345678901}.Release|Any CPU.Build.0 = Release|Any CPU + {F3A4B5C6-D7E8-9012-CDEF-123456789013}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F3A4B5C6-D7E8-9012-CDEF-123456789013}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F3A4B5C6-D7E8-9012-CDEF-123456789013}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F3A4B5C6-D7E8-9012-CDEF-123456789013}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/CodeGenerationDemo.exe.config b/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/CodeGenerationDemo.exe.config new file mode 100644 index 0000000..cb2586b --- /dev/null +++ b/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/CodeGenerationDemo.exe.config @@ -0,0 +1,3 @@ + + + diff --git a/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Orders.xml b/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Orders.xml new file mode 100644 index 0000000..28e5dee --- /dev/null +++ b/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Orders.xml @@ -0,0 +1,167 @@ + + + + ConfigA + Beckhoff Automation GmbH + 2012-11-30 + 10001 + Test01 + Please run extended Hardware Test! + + + ConfigB + Beckhoff Automation GmbH + 2013-02-28 + 10051 + Test02 + Deliver together with Serial number 10039 + + + ConfigD + Beckhoff Automation GmbH + 2013-11-12 + 10042 + Test03 + Include Hardware Simulation + + + + + + + + + + + 2-Axes, PTP Motion, Servo Terminal not included + + MachineTypeA + + + Tc2_Standard + Tc2_System + Tc3_Interfaces + Tc3_Module + Tc2_MC2 + Tc2_MC2_Drive + Templates/MachineTypeA/POUs/FB_Axis.xml + Templates/MachineTypeA/POUs/MAIN.xml + > + + + + + Templates/MachineTypeA/Axis1.xml + Templates/MachineTypeA/Axis2.xml + + + + + + + + + + + + + + + + + + + + + Templates/MachineTypeA/Links.xml + + + + + + + + + 4-Axes, NCI + + MachineTypeB + + + Tc2_Standard + Tc2_System + Tc3_Interfaces + Tc3_Module + Tc2_MC2 + Tc2_NCI + Templates/MachineTypeB/Datatypes/E_Commands.xml + Templates/MachineTypeB/Datatypes/E_NCI_CTRL_STATE.xml + Templates/MachineTypeB/Datatypes/E_States.xml + Templates/MachineTypeB/GVLs/GlobalVariables.xml + Templates/MachineTypeB/POUs/FB_NciChannel.xml + Templates/MachineTypeB/POUs/FB_NciSequence.xml + Templates/MachineTypeB/POUs/MAIN.xml + + + + + + Templates/MachineTypeB/Axis1.xml + Templates/MachineTypeB/Axis2.xml + Templates/MachineTypeB/Axis3.xml + Templates/MachineTypeB/Axis4.xml + + + + + + + + + + + + + + + + + + + + + Templates/MachineTypeB/Links.xml + + + + + + PLC project, Measurement project + + MachineTypeD + + Tc2_Standard + Tc2_System + Tc3_Interfaces + Tc3_Module + Templates/MachineTypeD/Datatypes/E_FunctionType.xml + Templates/MachineTypeD/POUs/FB_FunctionGenerator.xml + Templates/MachineTypeD/POUs/MAIN.xml + Templates/MachineTypeD/GVLs/GVL_Constants.xml + + + + + + + + + + + + + + diff --git a/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/ScriptingTestContainerBase.xml b/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/ScriptingTestContainerBase.xml new file mode 100644 index 0000000..9cc0bf6 --- /dev/null +++ b/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/ScriptingTestContainerBase.xml @@ -0,0 +1,3893 @@ + + + + ScriptingTestContainerBase + + + + + Progress provider interface + + + + + Sets the progress. + + The progress. + + + + Gets or sets the status string. + + The status. + + + + Occurs when the progress has been changed. + + + + + Occurs when the status has been changed. + + + + + Event arguments indicating, that the Progress status has been changed. + + + + + Contains the current Status as string + + + + + Initializes a new instance of the class. + + The status. + + + + Default MacIds + + + + + Broadcast Address + + + + + First Multicast Address + + + + + Empty Address + + + + + EtherCAT Multicast Address + + + + + Network variables Multicast Address + + + + + Profinet DCP Multicast Address + + + + + AMS/ADS Net ID + + + + + Constructor + + + + + + Converts the netId to string + + + + + Converts the NetId object to byte array + + + + + + Converts the string representation of the address to . + + + + + + + + Converts the string representation of the address to . + + + + + + + Creates an empty NetId ("0.0.0.0.0.0") + + + + + Creates the local NetId ("127.0.0.1.1.1") + + + + + TwinCAT Configuration Factory interface + + + + + Initializes the factory (Creates the configuration) + + + + + Executes the script. + + The script to execute + + + + Closes the configuration. + + + + + Gets or sets the Application ID for the TwinCAT XAE Shell + + The app ID. + + + + Gets or sets a value indicating whether the IDE will be shown during Script processing + + true if [show application]; otherwise, false. + + + + Gets or sets a value indicating whether the IDE instance will left to UserControl after script execution. + + + true if this instance is IDE user control; otherwise, false. + + + + + Gets a value indicating whether an TwinCAT XAE Configuration is opened by this factory class. + + + true if this instance is configuration open; otherwise, false. + + + + + Gets a value indicating whether this instance is generating. + + + true if this instance is generating; otherwise, false. + + + + + Gets the created DTE object. + + The DTE. + + + + Gets created solution object. + + The solution. + + + + Gets the Visual Studio Factory + + + The Visual Studio Factory + + + + + Gets the Visual Studio Process ID. + + The Visual Studio process identifier. + + + + DTE Info Object + + + + + DTE Name + + + + + DTE Prog ID + + + + + DTE Guid + + + + + Initializes a new instance of the class. + + The name. + The prog id. + The GUID. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Visual Studio Factory interface + + + + + Creates the DTE. + + Application ID to use. + if set to true the ide will be visible. + if set to true UI will be suppressed. + if set to true Visual Studio will be started with user control. + + + + + Creates a new Visual Studio project. + + DTE object. + Name of the project. + The template path. + The project root folder. + + + + + Visual Studio Factory implementation + + + + + Creates the DTE. + + Application ID to use. + if set to true the ide will be visible. + if set to true UI will be suppressed. + if set to true Visual Studio will be started with user control. + + + + + Creates the new project. + + The DTE Object. + Name of the project. + The template path. + The script root folder. + + + + + Abstract implementation of the interface. + + + + + ProgID of the VisualStudio.DTE object + + + + + Initializes a new instance of the class. + + + + + Handler function creating the Visual Studio instance. + + + + + + Creates the solution and project configuration for the script. + + + + + Handler function to create the script configuration. + + + + + Executes the specified script with the specified worker context. + + The script to execute. + + + + Closes the configuration / Configuration Cleanup + + + + + Handler function for Configuration cleanup. + + + + + Gets a dictionary of the currently installed Visual Studio ProgIds. + + Current index. + Default index. + + + + + Application ID of the Program to be created + + + + + Indicates that the configuration is open. + + + + + Indicates that a script is executing + + + + + Gets the currently used application path. + + The application path. + + + + Occurs when the Visual Studio instance is initialized and the configuration(s) are open. + + + + + Gets or sets the Application ID + + The app ID. + + + + Gets a value indicating whether a configuration is opened. + + + true if this instance is configuration open; otherwise, false. + + + + + Gets a value indicating whether a script created by this Factory is Executing. + + + true if this instance is generating; otherwise, false. + + + + + VisualStudio.DTE object created by this factory. + + The DTE. + + + + VisualStudio Solution created by this factory. + + The solution. + + + + Gets or sets a value indicating whether the IDE will be shown during Script processing + + true if [show application]; otherwise, false. + + + + Gets or sets a value indicating whether this instance is IDE user control. + + + true if this instance is IDE user control; otherwise, false. + + + + + Gets or sets a value indicating whether UI in Visual Studio is supressed. + + true if UI is suppressed; otherwise, false. + + + + Gets the Visual Studio Factory + + + The Visual Studio Factory + + + + + Gets the Visual Studio Process ID. + + The Visual Studio process identifier. + + + + Configuration Factory for Early Binding + + DTE and Solution objects are stored in static types. + + + + Initializes a new instance of the class. + + + + + Tree Item Type for the Tree Item + + This is the CLS-compliant, corresponding type to TCatSysManagerLibs TREEITEMTYPE + + + + NotProcessed Tree Item object (Uninitialized, 0) + + + + + System configuration Tree Item ("SYSTEM-Konfiguration") TIRC (Has no valid Type at the moment == 0) + + + + + Task item (Task, 1) + + + + + Device item (Device, 2) + + + + + Process-Image (Image, 3) + + + + + Mapping (Mapping, 4) + + + + + Box item (Box, 5) + + + + + Terminal item (Term, 6) + + + + + Variable / Symbol item (Var, 7) + + + + + Variable group item (VarGrp, 8) or Channels in Terminals + + + + + PlcControl project item (IecPrj, 9) + + + + + Cnc Project Item. (CncPrj, 10) + + + + + GSD Described Module + + + + + CDL Item. + + + + + PLC Runtime item (IecLzs, 13) + + + + + + + + + + Plc configuration (LzsGrp) + + + + + IO configuration + + + + + Additional Tasks (AddTasks, 16) + + + + + Device Group Item + + + + + Map Group + + + + + NC Configuration (NCDEF, 19) + + + + + NC Axes + + + + + NC Channel (e.g. the Node 'Axes') (NCChannel, 21) + + + + + NC Axis + + + + + Axis Encoder (ID: 23) + + + + + Axis drive (ID: 24) + + + + + Axis controller + + + + + NC Group + + + + + NC Interpreter + + + + + CanPDO + + + + + Real time Settings ATTENTION THE TYPE IS IDENTICAL TO RouteSettings(RTimeSet, 31) + + + + + Route Settings (RTimeSet, 31) + + + + + PLC Variables of the BC + + + + + File Name item. + + + + + DnetConnect. + + + + + Network variable publisher + + + + + Network variable subscriber + + + + + FlbCmd + + + + + NC Table Group Item + + + + + NC Table + + + + + NC Table Slave Item. + + + + + EipConnection item. + + + + + PnIoApi Item. + + + + + PnIoMod Item. + + + + + PnIoSubMod item. + + + + + Ethernet Protocol Item. + + + + + TCOM object (48) + x0d\x0a + + + + TCOM Object group (49) + + + + + UdpIpSendData Item. + + + + + UdpIpReceiveData Item. + + + + + + + + + + + + + + + + + + + + + + + + + Nested Plc Project (56) + + + + + + + + + + + + + + + + + + + + "TIAC" CAM Configuration + + Path: "TIAC" + + + + CamGroup item. + + + + + Cam Item. + + + + + CamEncoder Item. + + + + + CamToolGroup Item. + + + + + CamTool Item. + + + + + LineDef Item. + + + + + CNC Configuration (400) + + + + + ISG Channel item + + + + + CNC Axis Group Item + + + + + CNC Axis (ISG, 403) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Plc Application (Root Plc Object, 600) + + + + + Plc Folder object (601) + + + + + Plc POU Program (602) + + + + + Plc POU Function (603) + + + + + Plc POU Function Block (604) + + + + + Plc Enum Datatype (605) + + + + + Plc Struct DataType (606) + + + + + Plc Union DataType (607) + + + + + Plc Action (608) + + + + + Plc Method (609) + + + + + Plc Interface Method (610) + + + + + Plc Property (611) + + + + + Plc InterfaceProperty (612) + + + + + Plc Property Getter (613) + + + + + Plc Property Setter (614) + + + + + Plc Global Variables List (615) + + + + + Plc Transient Object (616) + + + + + Plc Library Manager (617) + + + + + Plc Interface (618) + + + + + Plc Visual Object (619) + + + + + Plc Visual Manager (620) + + + + + Plc Task object (621) + + + + + Plc DataType Alias (623) + + + + + Target Visu (624) + + + + + Global Text List (625) + + + + + Text List (626) + + + + + Global Image Pool (627) + + + + + Image Pool (628) + + + + + Parameter List (629) + + + + + Plc Program Reference (650) + + + + + Plc External Data Type (Defined in System Manager) (651) + + + + + Plc External Data Type Container (652) + + + + + Plc Tmc Description File (653) + + + + + Plc interface property getter (654) + + + + + Plc Interface property setter (655) + + + + + Nested SAFETY Project Root (800) + + + + + "Safety Application (801) + + + + + "Safety Alias Device Folder (802) + + + + + "Safety Group Folder (803) + + + + + "Safety Generated Code Folder (804) + + + + + "Safety Application Language File (805) + + + + + "Safety C Header File File (806) + + + + + "Safety C Implementation File File (807) + + + + + "Nested SAFETY Project Root (808) + + + + + Safety target System config file (*.xml) (809)) + + + + + Safety dependent file node (809)) + + + + + "Nested CPP Project Root (900) + + + + + Box Type + + + + + NotProcessed Box Type (BOXTYPE_UNKNOWN) + + + + + Lightbus-Buskoppler für bis zu 64 Busklemmen (BK2000) (BOXTYPE_BK2000) + + + + + Lightbus-Modul, 32 Bit Digital-Ein-/Ausgabemodul, 24 V DC (32Bit Box)(BOXTYPE_M1400) + + + + + Lightbus Modul, 4 Analog-Eingabe und 16 digitale E/A-Kanäle (M2400) (BOXTYPE_M2400) + + + + + Lightbus Modul, Mehrkanal-Inkremental-Encoder (M3xx0)(BOXTYPE_M3120_1) + + + + + Lightbus Modul, Mehrkanal-Inkremental-Encoder (M3120-2)(BOXTYPE_M3120_2) + + + + + Lightbus Modul, Mehrkanal-Inkremental-Encoder (M3120_3)(BOXTYPE_M3120_3) + + + + + Lightbus Modul, Mehrkanal-Inkremental-Encoder (M3120_4)(BOXTYPE_M3120_4) + + + + + Lightbus Modul, Absolut-Encoder (M3000) (BOXTYPE_M3000) + + + + + C1120 Slave Module (in S5-Rack) (C1120-Slave) (BOXTYPE_C1120) + + + + + Lightbus-Buskoppler für bis zu 64 digitale Busklemmen (BK2010)(BOXTYPE_BK2010) + + + + + Antriebstechnik: Digital Kompakt Servoverstärker(BOXTYPE_AX2000_B200) + + + + + Lightbus Modul, 4 Analog-Eingabemodul (M2510)(BOXTYPE_M2510) + + + + + Programable CDL (Lightbus) (Prog-CDL)(BOXTYPE_PROG_CDL) + + + + + Lightbus-"Economy plus"-Buskoppler für bis zu 64 Busklemmen (255 mit K-Bus-Verlängerung) (BK2020)(BOXTYPE_BK2020) + + + + + Lightbus-Busklemmen Controller (BC2000) (BOXTYPE_BC2000) + + + + + Fox-Module FOX-20 (FOX20) (BOXTYPE_FOX20) + + + + + TR Fox 50 Modul (24 Bit Absolut (SSI)) (FOX50) (BOXTYPE_FOX50) + + + + + Fox-Module FOX-RK001 (FOXRK001)(BOXTYPE_FOXRK001) + + + + + Fox-Module FOX-RK002 (FOXRK002)(BOXTYPE_FOXRK002) + + + + + CP10x1 (Folientasten 8 Kanal, LightBus) (CP10x1) (BOXTYPE_CP1001) + + + + + IPxxxx-B200 (compact box, LightBus)(IPx-B200)(BOXTYPE_IPXB2) + + + + + ILxxxx-B200 (coupler box, LightBus)(ILx-B200)(BOXTYPE_ILXB2) + + + + + ILxxxx-C200 (plc box, LightBus) (ILx-C200) (BOXTYPE_ILXC2) + + + + + CX1500-B200 (CX1500-B200)(BOXTYPE_CX1500_B200) + + + + + Profibus DP/FMS-Buskoppler für bis zu 64 Busklemmen, 1,5 MBaud (BK3000) (BOXTYPE_BK3000) + + + + + Profibus DP/FMS-Buskoppler für bis zu 64 Busklemmen, 12 MBaud (BK3100) (BOXTYPE_BK3100) + + + + + GSD Box (GSD Box)(BOXTYPE_PBDP_GSD) + + + + + Profibus DP-Buskoppler für bis zu 64 digitale Busklemmen, 1,5 MBaud (BK3010)(BOXTYPE_BK3010) + + + + + Profibus DP-Buskoppler für bis zu 64 digitale Busklemmen, 12 MBaud (BK3110)(BOXTYPE_BK3110) + + + + + Profibus DP-Buskoppler mit LWL-Anschluss, 1,5 MBaud (BK3500)(BOXTYPE_BK3500) + + + + + Profibus DP-"Low Cost"-Buskoppler für bis zu 64 digitale Busklemmen, 12 MBaud (LC3100) (BOXTYPE_LC3100) + + + + + ProfiDrive MC (ProfiDrive MC) (BOXTYPE_PBDP_DRIVE) + + + + + Profibus DP-"Economy Plus"-Buskoppler für bis zu 64 Busklemmen (255 mit K-Bus-Verlängerung), 12 MBaud (BK3120)(BOXTYPE_BK3120) + + + + + Profibus DP-Busklemmen Controller (BC3100) (BOXTYPE_BC3100) + + + + + Profidrive MC (double) (ProfiDrive2 MC) (BOXTYPE_PBDP_DRIVE2) + + + + + Profidrive MC (triple)(ProfiDrive3 MC)(BOXTYPE_PBDP_DRIVE3) + + + + + Profidrive MC (fourfold)(ProfiDrive4 MC)(BOXTYPE_PBDP_DRIVE4) + + + + + Profidrive MC (fivefold)(ProfiDrive5 MC)(BOXTYPE_PBDP_DRIVE5) + + + + + Profidrive MC (sixfold)(ProfiDrive6 MC)(BOXTYPE_PBDP_DRIVE6) + + + + + Profidrive MC (sevenfold)(ProfiDrive7 MC)(BOXTYPE_PBDP_DRIVE7) + + + + + Profidrive MC (eightfold)(ProfiDrive8 MC)(BOXTYPE_PBDP_DRIVE8) + + + + + Profibus DP-"Compact"-Buskoppler für bis zu 64 Busklemmen (255 mit K-Bus-Verlängerung), 12 MBaud (BK3150)(BOXTYPE_BK3150) + + + + + Profibus Slave BC3150 (BC3150) (BOXTYPE_BC3150) + + + + + IPxxxx-B3xx (compact box, Profibus)(IPx-B3xx)(BOXTYPE_IPXB3) + + + + + ILxxxx-B3xx (coupler box, Profibus)(ILB3xx)(BOXTYPE_ILXB3) + + + + + ILxxxx-C3xx (plc box, Profibus)(ILC3xx)(BOXTYPE_ILXC3) + + + + + TwinCAT Slave (Profibus)(TSMBOX_310)(BOXTYPE_TSMBOX_310) + + + + + Profibus DP-Busklemmen Controller(BX3100)(BOXTYPE_BX3100) + + + + + Profibus Slave CX1500-B310, PC104 (CX1500-B310)(BOXTYPE_CX1500_B310) + + + + + FC310x-Slave (FC310x-Slave)(BOXTYPE_FC310X_SLAVE) + + + + + Antriebstechnik: Digital Kompakt Servoverstärker (Profibus) (AX2xxx-B310)(BOXTYPE_AX2000_B310) + + + + + Interbus-Buskoppler für bis zu 64 Busklemmen (BK4000)(BOXTYPE_BK4000) + + + + + IBS Box (IBS Box)(BOXTYPE_IBS_GENERIC) + + + + + Interbus-Buskoppler für bis zu 64 digitale Busklemmen (BK4010)(BOXTYPE_BK4010) + + + + + Interbus-Buskoppler mit LWL-Anschluss für bis zu 64 Busklemmen (BK4500)(BOXTYPE_BK4500) + + + + + BK4510 (economy fieldbus coupler, InterBus-S Fiber)("BK4510)(BOXTYPE_BK4510) + + + + + Interbus-Busklemmen Controller (BC4000)(BOXTYPE_BC4000) + + + + + Interbus-"Economy plus"-Buskoppler für bis zu 64 Busklemmen (255 mit K-Bus-Verlängerung)(BK4020)(BOXTYPE_BK4020) + + + + + IPxxxx-B400 (compact box, InterBus-S)(IPx-B400)(BOXTYPE_IPXB4) + + + + + ILxxxx-B400 (coupler box, InterBus-S)(ILx-B400)(BOXTYPE_ILXB4) + + + + + ILxxxx-C400 (plc box, InterBus-S)(ILx-C400)(BOXTYPE_ILXC4) + + + + + CP9020 ('fieldbus coupler', Control Panel)(CP9020)(BOXTYPE_CP2020) + + + + + Sercos Drive (Sercos Drive)(BOXTYPE_SERCOSAXIS) + + + + + Antriebstechnik: Digital Kompakt Servoverstärker (SERCOS)(AX2xxx-B750)(BOXTYPE_AX2000_B750) + + + + + BK7500 (fieldbus coupler, SERCOS 2/4 MBaud)" (BK7500)(BOXTYPE_BK7500) + + + + + BK7510 (economy fieldbus coupler, SERCOS 2/4/8/16 MBaud)(BK7510)(BOXTYPE_BK7510) + + + + + BK7520 (economy plus fieldbus coupler, SERCOS 2/4/8/16 MBaud)(BK7520)(BOXTYPE_BK7520) + + + + + BK8100 (fieldbus coupler, COM Port, RS232)(BK8100)(BOXTYPE_BK8100) + + + + + RS485-Buskoppler für bis zu 64 Busklemmen(BK8000)(BOXTYPE_BK8000) + + + + + CP9040 ('fieldbus coupler', Control Panel)(CP9040)(BOXTYPE_CP9040) + + + + + RS485-Busklemmen Controller (BC8000)(BOXTYPE_BC8000) + + + + + RS232-Busklemmen Controller (BC8100)(BOXTYPE_BC8100) + + + + + IPxxxx-B800 (compact box, COM Port, RS485)(IPx-B800)(BOXTYPE_IPXB80) + + + + + ILxxxx-B800 (coupler box, COM Port, RS485)(ILx-B800)(BOXTYPE_ILXB80) + + + + + ILxxxx-C800 (plc box, COM Port, RS485)(ILx-C800)(BOXTYPE_ILXC80) + + + + + IPxxxx-B810 (compact box, COM Port, RS232)(IPx-B810)(BOXTYPE_IPXB81) + + + + + ILxxxx-B810 (coupler box, COM Port, RS232)(ILx-B810)(BOXTYPE_ILXB81) + + + + + ILxxxx-C810 (plc box, COM Port, RS232)(ILx-C810)(BOXTYPE_ILXC81) + + + + + CANopen Buskoppler Lowcost (BK5100)(BOXTYPE_BK5100) + + + + + CAN CAL-Buskoppler für bis zu 64 Busklemmen (BK5110)(BOXTYPE_BK5110) + + + + + CANopen Node (CANopen Node)(BOXTYPE_CANNODE) (ItemType 5003) + + + + + CANopen-Buskoppler „Economy plus“ für bis zu 64 Busklemmen (255 mit K-Bus-Verlängerung (BK5120)(BOXTYPE_BK5120) + + + + + CANopen-„Low Cost“-Buskoppler für bis zu 64 Busklemmen (255 mit K-Bus-Verlängerung)(LC5100)(BOXTYPE_LC5100) + + + + + CANopen Drive (CANopen Drive)(BOXTYPE_CANDRIVE) + + + + + Antriebstechnik: Digital Kompakt Servoverstärker (CANOpen) (AX2xxx-B510)(BOXTYPE_AX2000_B510) + + + + + CANopen-„Compact“-Buskoppler für bis zu 64 Busklemmen (255 mit K-Bus-Verlängerung)(BK5150)(BOXTYPE_BK5150) + + + + + CANopen-Busklemmen Controller(BC5150)(BOXTYPE_BC5150) + + + + + IPxxxx-B51x (compact box, CANopen)(IPx-B51x)(BOXTYPE_IPXB51) + + + + + ILxxxx-B51x (coupler box, CANopen)(ILx-B51x)(BOXTYPE_ILXB51) + + + + + ILxxxx-C51x (plc box, CANopen)(ILx-C51x)(BOXTYPE_ILXC51) + + + + + TwinCAT Slave (CANopen)(TSMBOX_510)(BOXTYPE_TSMBOX_510) + + + + + BX5100 (CANopen Slave)(BX5100)(BOXTYPE_BX5100) + + + + + CX1500-B510 (CX1500-B510)(BOXTYPE_CX1500_B510) + + + + + FC510x Slave (FC510x Slave)(BOXTYPE_FC510XSLV) + + + + + DeviceNet-Buskoppler für bis zu 64 Busklemmen (BK5200)(BOXTYPE_BK5200) + + + + + DeviceNet-Buskoppler für bis zu 64 digitale Busklemmen (BK5210)(BOXTYPE_BK5210) + + + + + DeviceNet Node (DN Node) (BOXTYPE_DEVICENET) + + + + + DeviceNet-„Compact“-Buskoppler für bis zu 64 Busklemmen (255 mit K-Bus-Verlängerung) (BK5220)(BOXTYPE_BK5220) + + + + + DeviceNet-„Low Cost“-Buskoppler für bis zu 64 digitale Busklemmen (255 mit K-Bus-Verlängerung) (LC5200)(BOXTYPE_LC5200) + + + + + IPxxxx-B52x (compact box, DeviceNet)(IPx-B52x)(BOXTYPE_IPXB52) + + + + + ILxxxx-B52x (coupler box, DeviceNet)(ILx-B52x)(BOXTYPE_ILXB52) + + + + + ILxxxx-C52x (plc box, DeviceNet)(ILx-C52x)(BOXTYPE_ILXC52) + + + + + DeviceNet-Busklemmen Controller(BX5200)(BOXTYPE_BX5200) + + + + + CX1500-B520(CX1500-B520)(BOXTYPE_CX1500_B520) + + + + + FC5201 Slave (FC5201 Slave) (BOXTYPE_FC520XSLV) + + + + + Safety PLC EL6900 + + + + + Safety Digital Inputs + + + + + Safety Digital Outputs + + + + + Ethernet TCP/IP Bus Coupler up to 64 Terminals (BOXTYPE_BK9000) + + + + + Ethernet-TCP/IP Bus Coupler up to 64 Terminals and integrated 2-Channel Switch (BK9100) + + + + + Ethernet TCP/IP "Compact" Bus Coupler BK9050 + + + + + Ethernet TCP/IP-Busklemmen Controller(BOXTYPE_BC9000) + + + + + Ethernet TCP/IP-Busklemmen Controller(BOXTYPE_BC9000) + + + + + Ethernet TCP/IP-Busklemmen Controller(BOXTYPE_BC9000) + + + + + Ethernet TCP/IP-Busklemmen Controller(BOXTYPE_BC9000) + + + + + IPxxxx-B900 (compact box, Ethernet)(IPx-B900)(BOXTYPE_IPXB9) + + + + + ILxxxx-B900 (coupler box, Ethernet)(ILx-B900)(BOXTYPE_ILXB9) + + + + + ILxxxx-C900 (plc box, Ethernet)(ILx-C900)(BOXTYPE_ILXC9) + + + + + Remote TwinCAT Task (RemoteTask)(BOXTYPE_REMOTETASK) + + + + + Netzwerkvariable Publisher(Publisher)(BOXTYPE_NV_PUB) + + + + + Netzwerkvariablen Subscriber(Subscriber)(BOXTYPE_NV_SUB) + + + + + Antriebstechnik: Digital Kompakt Servoverstärker (Ethernet)(AX2xxx-B900)(BOXTYPE_AX2000_B900) + + + + + EtherCAT Frame (EtherCAT Frame)(BOXTYPE_FLB_FRAME) + + + + + BK1120 (economy plus fieldbus coupler, EtherCAT)(BOXTYPE_BK1120) + + + + + EK1000 Ethernet Bridge (Ethernet/EtherCAT)(EK1000)(BOXTYPE_EK1000) + + + + + EK1100 Ethernet Coupler (EtherCAT)(BOXTYPE_EK1100) + + Should not be inserted directly + + + + EK1100 Ethernet Coupler (EtherCAT)(BOXTYPE_EL6731) + + + + + EK1100 Ethernet Coupler (EtherCAT)(BOXTYPE_EL6751) + + + + + EK1100 Ethernet Coupler (EtherCAT)(BOXTYPE_EL6752) + + + + + EK1100 Ethernet Coupler (EtherCAT)(BOXTYPE_EL6731SLV) + + + + + EK1100 Ethernet Coupler (EtherCAT)(BOXTYPE_EL6751SLV) + + + + + EK1100 Ethernet Coupler (EtherCAT)(BOXTYPE_EL6752SLV) + + + + + EK1100 Ethernet Coupler (EtherCAT)(BOXTYPE_EXXXXX = 9099) + + + + + BOXTYPE_EL6601 = 9100, + + + + + BOXTYPE_EL6001 = 9101, + + + + + BOXTYPE_EL69XX = 9102, + + + + + BOXTYPE_EL6021 = 9103 + + + + + BOXTYPE_EL6720 = 9104 + + + + + BOXTYPE_FSOESLAVE = 9105 + + + + + BOXTYPE_EL6631 = 9106 + + + + + BOXTYPE_EL6631SLV = 9107 + + + + + USB-Buskoppler für bis zu 64 Busklemmen(BK9500)(BOXTYPE_BK9500) + + + + + Control Panel (USB)(CPX8XX)(BOXTYPE_CPX8XX) + + + + + CX1100 or CX9100 KBus extension('terminal coupler', CX1100-0002)(CX1100-BK)(BOXTYPE_CX1102) (SubType 9700) + + + + + CX9000 KBus extension('terminal coupler') (SubType: 9700) + + + + + CX1100 ('ip-link coupler', CX1100-0003)(CX1100-IP)(BOXTYPE_CX1103) (SubType 9701) + + + + + CX1190 UPS ('uninterruptable power supplier')(CX1190-UPS)(BOXTYPE_CX1190) (Subtype 9702) + + + + + Type of the Device + + + + + + + + + + Lightbus ISA interface card C1220 with communications processor (IODEVICETYPE_C1220, ID: 1) + + + + + Lightbus ISA interface card C1200 (IODEVICETYPE_C1200, ID: 2) + + + + + ProfiBus Slave SPC3/IM182 (Siemens-Karte, IODEVICETYPE_SPC3, ID: 3) + + + + + ISA ProfiBus-Master CIF30 DPM(Hilscher-Karte, IODEVICETYPE_CIF30DPM, ID: 4) + + + + + ISA Interbus-S-Master CIF40 IBSM (Hilscher-Karte, IODEVICETYPE_CIF40IBSM, ID: 5) + + + + + Beckhoff PC C2001 (IODEVICETYPE_BKHFPC, ID: 6) + + + + + ProfiBus-Master CP5412 (Siemens-Karte,IODEVICETYPE_CP5412A2, ID: 7) + + + + + Sercos Master SERCOS ISA (Indramat,IODEVICETYPE_SERCANSISA, ID: 8) + + + + + Lpt Port (IODEVICETYPE_LPTPORT, ID: 9) + + + + + Generic DPRAM NOV/DP-RAM (IODEVICETYPE_DPRAM, ID: 10) + + + + + COM Port (IODEVICETYPE_COMPORT, ID: 11) + + + + + ISA CANopen-Master CIF30 CAN (Hilscher-Karte, IODEVICETYPE_CIF30CAN, ID:12) + + + + + ISA ProfiBus-Master CIF30 PB (Hilscher-Karte, IODEVICETYPE_CIF30PB, ID:13) + + + + + Beckhoff CP2030 (v1.0)(Beckhoff Panel Link (V1.0), IODEVICETYPE_BKHFCP2030, ID:14) + + + + + ISA Interbus-S-Master CIF30 IBM (Hilscher-Karte, IODEVICETYPE_CIF30IBM, ID:16) + + + + + ISA DeviceNet-Master CIF30 DNM(Hilscher-Karte, IODEVICETYPE_CIF30DNM, ID:17) + + + + + PCI ProfiBus-Master CIF50 PB (Hilscher-Karte, IODEVICETYPE_CIF50PB, ID:19) + + + + + PCI Interbus-S-Master CIF50 IBM (Hilscher-Karte, IODEVICETYPE_CIF50IBM) + + + + + PCI DeviceNet-Master CIF50 DNM (Hilscher-Karte, IODEVICETYPE_CIF50DNM) + + + + + PCI CANopen-Master CIF50 CAN (Hilscher-Karte, IODEVICETYPE_CIF50CAN) + + + + + PCMCIA ProfiBus-Master CIF60 PB (Hilscher-Karte, IODEVICETYPE_CIF60PB) + + + + + PCMCIA DeviceNet-Master CIF60 DNM(Hilscher-Karte, IODEVICETYPE_CIF60DNM) + + + + + PCMCIA CANopen-Master CIF60 CAN(Hilscher-Karte, IODEVICETYPE_CIF60CAN) + + + + + PC104 ProfiBus-Master CIF104 DPM (Hilscher-Karte, IODEVICETYPE_CIF104DP) + + + + + PC104 ProfiBus-Master CIF104 PB (Hilscher-Karte, IODEVICETYPE_C104PB) + + + + + PC104 Interbus-S-Master CIF104 IBM (Hilscher-Karte, IODEVICETYPE_C104IBM) + + + + + PC104 CANopen-Master CIF104 CAN (Hilscher-Karte, IODEVICETYPE_C104CAN) + + + + + PC104 DeviceNet-Master CIF104 DNM (Hilscher-Karte, IODEVICETYPE_C104DNM) + + + + + Beckhoff CP9030 Beckhoff Link (ISA, Panel-Link with UPS, IODEVICETYPE_BKHFCP9030) + + + + + Motherboard System Management Bus SMB (IODEVICETYPE_SMB) + + + + + PCI ProfiBus-Master CP5613 (Siemens-Karte, IODEVICETYPE_CP5613) + + + + + PCMCIA Interbus-S-Master CIF60 IBM (Hilscher-Karte, IODEVICETYPE_CIF60IBM) + + + + + Beckhoff-Lightbus-I/II-PCI-Karte FC200x (IODEVICETYPE_FC200X) + + + + + Beckhoff-Profibus-PCI-Karte FC310x (IODEVICETYPE_FC3100) (ItemType 38) + + + + + Beckhoff-CanOpen-PCI-Karte FC510x (IODEVICETYPE_FC5100) (ItemType 39) + + + + + Beckhoff-DeviceNet-PCI-Karte FC520x (IODEVICETYPE_FC5200) (ItemType 41) + + + + + Beckhoff NC Rückwand Beckhoff NcBp (IODEVICETYPE_BKHFNCBP) (ItemType 43) + + + + + Sercos Master PCI SICAN/IAM PCI(, IODEVICETYPE_SERCANSPCI) + + + + + Virtuelles Ethernet Device (IODEVICETYPE_ETHERNET) + + + + + Sercon 410B oder 816 Chip Master oder Slave (PCI) SERCONCHIP (IODEVICETYPE_SERCONPCI) + + + + + Beckhoff-SERCOS-PCI-Karte FC750x (IODEVICETYPE_FC7500) + + + + + ISA Interbus-S-Slave (Hilscher-Karte,IODEVICETYPE_CIF30IBS) + + + + + PCI Interbus-S-Slave CIF50 IBS (Hilscher-Karte, IODEVICETYPE_CIF50IBS) + + + + + PC104 Interbus-S-Slave (Hilscher-Karte, IODEVICETYPE_C104IBS) + + + + + Beckhoff CP9040 Beckhoff CP PC (CP-PC, IODEVICETYPE_BKHFCP9040) + + + + + Beckhoff AH2000 (Hydraulik Backplane, IODEVICETYPE_BKHFAH2000, ID:53) + + + + + Beckhoff CP9035 (PCI, Panel-Link with UPS, IODEVICETYPE_BKHFCP9035, ID:54) + + + + + Beckhoff-AH2000 mit Profibus-MC (IODEVICETYPE_AH2000MC, ID:55) + + + + + Beckhoff-Profibus-Monitor-PCI-Karte FC310x-Monitor (IODEVICETYPE_FC3100MON, ID:56) + + + + + Virtuelles USB Device (IODEVICETYPE_USB, ID:57) + + + + + Beckhoff-CANopen-Monitor-PCI-Karte FC510x-Monitor (IODEVICETYPE_FC5100MON, ID: 58) + + + + + Beckhoff-DeviceNet-Monitor-PCI-Karte FC520x-Monitor (IODEVICETYPE_FC5200MON) + + + + + Beckhoff-Profibus-PCI-Karte als Slave FC310x-Slave (IODEVICETYPE_FC3100SLV) + + + + + Beckhoff-CanOpen-PCI-Karte als Slave FC510x-Slave (IODEVICETYPE_FC5100SLV) + + + + + Beckhoff-DeviceNet-PCI-Karte als Slave FC520x-Slave (IODEVICETYPE_FC5200SLV) + + + + + PCI Interbus-S-Master IBS PCI SC/I-T (Phoenix-Karte, IODEVICETYPE_IBSSCITPCI) + + + + + Beckhoff-CX1100 Klemmenbus Netzteil CX1100 (IODEVICETYPE_CX1100_BK, 65) + + + + + Ethernet Real Time Miniport RT-Ethernet (IODEVICETYPE_ENETRTMP, 66) + + + + + + + + + + PC104 Lightbus-Master CX1500-M200 (IODEVICETYPE_CX1500_M200, 67) + + + + + PC104 Lightbus-Slave CX1500-B200 (IODEVICETYPE_CX1500_B200) + + + + + PC104 ProfiBus-Master CX1500-M310 (IODEVICETYPE_CX1500_M310) + + + + + PC104 ProfiBus-Slave CX1500-B310 (IODEVICETYPE_CX1500_B310) + + + + + PC104 CANopen-Master CX1500-M510 (IODEVICETYPE_CX1500_M510) + + + + + PC104 CANopen-Slave CX1500-B510 (IODEVICETYPE_CX1500_B510) + + + + + PC104 DeviceNet-Master CX1500-M520 (IODEVICETYPE_CX1500_M520) + + + + + PC104 DeviceNet-Slave CX1500-B520 (IODEVICETYPE_CX1500_B520) + + + + + PC104 Sercos-Master CX1500-M750 (IODEVICETYPE_CX1500_M750) + + + + + PC104 Sercos-Slave (IODEVICETYPE_CX1500_B750) + + + + + BX Klemmenbus Interface BX-BK (IODEVICETYPE_BX_BK) + + + + + BX SSB-Master BX-M510(IODEVICETYPE_BX_M510) + + + + + BX ProfiBus-Slave BX-B310 (IODEVICETYPE_BX_B310) + + + + + PCIInterbus-S-Master mit Slave-Teil auf Kupfer Basis IBS PCI SC/RI/I-T (Phoenix-Karte, IODEVICETYPE_IBSSCRIRTPCI) + + + + + BX CANopen-Slave BX-B510 (IODEVICETYPE_BX_B510) + + + + + BX DeviceNet-Slave BX-B520 (IODEVICETYPE_BX_B520) + + + + + BCxx50 ProfiBus-Slave BC3150 (IODEVICETYPE_BC3150) + + + + + BCxx50 CANopen-Slave (IODEVICETYPE_BC5150) + + + + + BCxx50 DeviceNet-Slave BC5250 (IODEVICETYPE_BC5250) + + + + + Beckhoff-Profibus-EtherCAT-Klemme (IODEVICETYPE_EL6731) + + + + + Beckhoff-CanOpen-EtherCAT-Klemme (IODEVICETYPE_EL6751) + + + + + Beckhoff-DeviceNet-EtherCAT-Klemme (IODEVICETYPE_EL6752) + + + + + COM ProfiBus-Master 8 kByte (Hilscher-Karte)(IODEVICETYPE_COMPB) + + + + + COM Interbus-S-Master (Hilscher-Karte)(IODEVICETYPE_COMIBM) + + + + + COM DeviceNet-Master (Hilscher-Karte)(IODEVICETYPE_COMDNM) + + + + + COM CANopen-Master (Hilscher-Karte)(IODEVICETYPE_COMCAN) + + + + + COM CANopen-Slave (Hilscher-Karte)(IODEVICETYPE_COMIBS) + + + + + EtherCAT in direct mode (v2.10 only) (IODEVICETYPE_ETHERCAT) + + + + + PROFINET Master (IODEVICETYPE_PROFINETIOCONTROLLER) + + + + + PROFINET Slave (IODEVICETYPE_PROFINETIODEVICE) + + + + + Beckhoff-Profibus-Slave-EtherCAT-Klemme (IODEVICETYPE_EL6731SLV) + + + + + Beckhoff-CanOpen-Slave-EtherCAT-Klemme (IODEVICETYPE_EL6751SLV) + + + + + Beckhoff-DeviceNet-Slave-EtherCAT-Klemme (IODEVICETYPE_EL6752SLV) + + + + + PC104+ ProfiBus-Master 8 kByte (Hilscher-Karte) (IODEVICETYPE_C104PPB) + + + + + PC104+ CANopen-Master (Hilscher-Karte) (IODEVICETYPE_C104PCAN) + + + + + PC104+ DeviceNet-Master (Hilscher-Karte) (IODEVICETYPE_C104PDNM) + + + + + BCxx50 serieller Slave (IODEVICETYPE_BC8150) + + + + + BX9000 Ethernet Slave (IODEVICETYPE_BX9000) + + + + + CX9000 Terminal Device (K-BUS) + + + + + EtherCAT Automation Protocol, EL6601 (IODEVICETYPE_EL6601 = 106) + + + + + BC9050 Etherent Slave (IODEVICETYPE_BC9050 = 107) + + + + + RT-Ethernet Adapter (BC9120 Ethernet Slave) IODEVICETYPE_BC9120 = 108) + + + + + RT-Ethernet Multiple Protocol Handler, Ethernet Miniport Adapter (IODEVICETYPE_ENETADAPTER = 109) + + + + + + + + + + BC9020 Ethernet Slave (IODEVICETYPE_BC9020 = 110) + + + + + EtherCAT Protocol in Direct mode (IODEVICETYPE_ETHERCATPROT = 111) + + + + + EtherCAT Network Variables (Automation protocol, IODEVICETYPE_ETHERNETNVPROT = 112) + + + + + + + + + + Profinet Controller (IODEVICETYPE_ETHERNETPNMPROT = 113) + + + + + Beckhoff-Lightbus-EtherCAT-Klemme (IODEVICETYPE_EL6720 = 114) + + + + + Profinet Device (IODEVICETYPE_ETHERNETPNSPROT = 115) + + + + + Beckhoff CP PC (Beckhoff CP6608(IXP PC), IODEVICETYPE_BKHFCP6608 = 116) + + + + + IEEE 1588 (PTP) (IODEVICETYPE_PTP_IEEE1588 = 117) + + + + + EL6631-0010 (IODEVICETYPE_EL6631SLV = 118) + + + + + EL6631 (IODEVICETYPE_EL6631 = 119) + + + + + CX5000-BK (Beckhoff-CX5100 Klemmenbus Netzteil, IODEVICETYPE_CX5000_BK = 120) + + + + + PCI DP-RAM (Generic PCI DPRAM (TCOM), IODEVICETYPE_PCIDEVICE = 121) + + + + + IODEVICETYPE_ETHERNETEAPPOLL = 122, // EtherCAT Automation Protocoll polled connection + + + + + IODEVICETYPE_ETHERNETAUTOPROT = 123, // Automation Protocol + + + + + IODEVICETYPE_CCAT = 124, // CCAT + + + + + IODEVICETYPE_CPLINK3 = 125, // Virtuelles USB Device (remote via CPLINK3) + + + + + IODEVICETYPE_EL6632 = 126, // EL6632 + + + + + IODEVICETYPE_CCAT_PBM = 127, // CCAT Profibus Master + + + + + IODEVICETYPE_CCAT_PBS = 128, // CCAT Profibus Slave + + + + + IODEVICETYPE_CCAT_CNM = 129, // CCAT CANopen Master + + + + + IODEVICETYPE_ETHERCATSLAVE = 130, // EtherCAT Slave + + + + + IODEVICETYPE_BACNET = 131, // BACnet device + + + + + IODEVICETYPE_CCAT_CNS = 132, // CCAT CANopen Slave + + + + + IODEVICETYPE_ETHIP_SCANNER = 133, // ETHERNET IP Master + + + + + IODEVICETYPE_ETHIP_ADAPTER = 134, // ETHERNET IP Slave + + + + + IODEVICETYPE_CX8000_BK = 135, // Beckhoff-CX8100 Klemmenbus Netzteil + + + + + IODEVICETYPE_ETHERNETUDPPROT = 136, // Upd Protocol + + + + + IODEVICETYPE_BC9191 = 137, // BC9191 Etherent Slave + + + + + IODEVICETYPE_ENETPROTOCOL = 138, // Real-Time Ethernet Protocol (BK90xx, AX2000-B900) + + + + + Disabled state type for the TreeItem + + + This is the CLS-compliant, corresponding type to TCatSysManagerLibs DISABLED_STATE + + + + + The state is unknown/not initialized + + + + + The item is not disabled + + + + + The item is disabled itself + + + + + A parent of the item is disabled (and implicitely the item itself) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Extension class for the + + + + + Converts the to an Int32 + + The type. + + + + + Converts the to string identifyer + + The type. + + + + + Extension class for the . + + + + + Gets the description of the + + The type. + + + + + Converts the to Int32. + + The type. + + + + + Extension class for the . + + + + + Gets the description of the + + The type. + + + + + Converts the to Int32. + + The type. + + + + + Extension class for + + + + + Gets the description of the . + + The type. + + + + + Gets the as Int32. + + The type. + + + + + Group type of variables + + + + + Variable Group is unknown + + + + + Input variable group + + + + + Output variable group + + + + + Channel variable group + + + + + Late bound configuration factory + + Configuration items (and all script types) will be stored in late bound types (e.g 'dynamic' in C#) + + + + Initializes a new instance of the class. + + + + + Message Handler demo implementiation to preserve the E_REJECTED_XXX Errros (See Msdn documentation for Visual Studio) + + + + + Definition of the IOleMessageFilter interface + + + + + Handles the in coming call. + + Type of the dw call. + The h task caller. + The dw tick count. + The lp interface info. + + + + + Retries the rejected call. + + The h task callee. + The dw tick count. + Type of the dw reject. + + + + + Messages the pending. + + The h task callee. + The dw tick count. + Type of the dw pending. + + + + + Start the filter + + + + + Done with the filter, close it. + + + + + Handles the in coming thread requests. + + Type of the dw call. + The h task caller. + The dw tick count. + The lp interface info. + + + + + Retries the rejected call. + + The h task callee. + The dw tick count. + Type of the dw reject. + + + + + + + The h task callee. + The dw tick count. + Type of the dw pending. + + + + + Gets a value indicating whether the is registered already. + + + true if is registered; otherwise, false. + + + + + Running Object Table Access + + + + + Get a snapshot of the running object table (ROT). + + A dictionary mapping the name of the object in the ROT to the corresponding object (COM Object) + + + + Get a table of the currently running instances of the Visual Studio .NET IDE. + + A dictionary mapping common information about the DTE object to the EnvDte.DTE object itself + + + + Gets the DTE Object which has opened a solution with the specified name. + + Name of the solution (without path, without extension) + The DTE Object + + + + DTE Information Object + + + + + The version of the DTE + + + + + The process identifier of the devenv process + + + + + Initializes a new instance of the class. + + The version. + The solution path. + The process identifier. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Parses the specified string. + + The string. + + + + + + Tries to parse the specified string to an instance. + + The string. + The object. + true if succeeded, false if not. + + + + Gets the solution path of the Info object + + + The solution path. + + + + + Gets the name of the solution. + + + The name of the solution. + + + + + Actual status of the Script + + + + + None / Uninitialized + + + + + Initializing the Script and its initial configuration + + + + + Cleaning up the Script / Configuration + + + + + Script currently executing. + + + + + Abstract base class for scripts + + + + + Initializes a new instance of the class. + + + + + Script context + + + + + Initializes the script with DTE, Solution and Script Worker object + + The Script Context. + + + + Script status + + + + + Executes the script with worker context. + + The worker. + + + + Cleans the Script up after usage. + + The worker. + + + + Script Start time + + + + + Sets the start time. + + + + + Script stop time + + + + + Sets the stop time. + + + + + Handler function Before Initializing the Script (Configuration preparations) + + The Script Context + Usually used to to the open a prepared or new XAE configuration + + + + Handler function Initializing the Script (Configuration preparations) + + The Script Context + Usually used to to the open a prepared or new XAE configuration + + + + Handler function Executing the Script code. + + The worker. + + + + Cleaning up the XAE configuration after script execution. + + The worker. + + + + XAE Base Template (TwinCAT 30 + + + + + XAE Base Template new (>= TwinCAT 3.1) + + + + + Template Name for the XAE PLC Empty template + + + + + Template Name for the XAE PLC Standard template + + + + + Template Name for the XAE Saftey Standard template + + + + + + Deletes the solution folder. + + + + + Creates an empty Visual Studio Solution + + + + + Handler function called after the Solution object has been created. + + + + + Creates the new project. + + Name of the project. + + + + + Creates the new project. + + + + + + Creates the new project. + + Name of the project. + The template path. + + + + + Deletes all files in the subtree + + Target directory. + + + + Copies a directory from Source to Destination + + Source Folder + Destingation Folder + + + + Sets the Script Status + + The script status. + + + + Handler function fireing the event. + + The old status. + The script status. + + + + Script Result + + + + + Sets the result. + + The script result. + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Gets the context. + + The context. + + + + Gets the Script Status + + The status. + + + + Gets the start time of the Script + + + The start time. + + + + + Gets the Script stop time + + + The stop time. + + + + + Gets the Scripts execution duration. + + + The duration. + + + + + Gets the Script description + + The description. + + + + Gets the detailed description of the that is shown in the Method Tips. + + The detailed description. + + + + Gets the keywords, describing the Script features + + The keywords. + + + + Gets the programming language of the Script + + The programming language. + + + + Gets the Version number of TwinCAT that is necessary for script execution. + + The TwinCAT version. + + + + Gets the build number of TwinCAT that is necessary for script execution. + + The TwinCAT build. + + + + Gets the category of this script. + + The script category. + + + + Gets the binding type of the script + + The programming language. + + + + Gets the base Application Directory, where the ScriptingTestContainer base Dlls are residing. + + The application path. + + + + Gets the last execution Exception. + + The exception. + + + + Gets the name of the Script. + + The name. + + + + Gets the script templates folder used for configuration templates. + + The script templates folder. + + + + Gets the Path of the TwinCAT XAE Base Template + + The vs xae template path. + + + + Gets the TwinCAT Installation Directory + + The twin CAT install dir. + + + + Gets the actual activated TwinCAT Version + + The current twin CAT version. + + + + Gets the working folder. + + The working folder. + + + + Gets the Script Root Folder + + The solution folder. + + + + Gets the temp folder (Folder within the Script Root folder (SolutionFolder) + + The temp folder. + + + + Occurs when the has changed. + + + + + Gets the Script Result + + The result. + + + + Script Result enumeration + + + + + None / Initialized / Script not processed + + + + + Script Succeeded + + + + + Script Failed + + + + + Event arguments fired with the event. + + + + + Old State + + + + + New State + + + + + Initializes a new instance of the class. + + The old state. + The new state. + + + + Late Bound Script (uses only late bound variables) + + Take take not to use Referenced Assemblies within derived classes. + + + + + Initializes a new instance of the class. + + + + + DTE Object (Late Bound) + + + + + Solution object (Late Bound) + + + + + Handler function Before Initializing the Script (Configuration preparations) + + The Script Context + Usually used to to the open a prepared or new XAE configuration + + + + Handler function Initializing the Script (Configuration preparations) + + The Script Context + Usually used to to the open a prepared or new XAE configuration + + + + Creates an empty Visual Studio Solution + + + + + Creates the new project. + + Name of the project. + + + + + Creates the new project. + + Name of the project. + The template path. + + + + + Cleaning up the XAE configuration after script execution. + + The worker. + + + + Gets the binding type of the script + + The programming language. + + + + Early Bound Script + + The base class for the Script type uses the typed versions of dte and solution objects directly referencing the VisualStudio TypeLibrary. + References to TwinCAT XAE Connectivity classes like ITcSysManager ITcTreeItem are allowed to use here. + + + + Initializes a new instance of the class. + + + + + Early Bound DTE Object + + + + + Early Bound Solution Object + + + + + Handler function Before Initializing the Script (Configuration preparations) + + The Script Context + Usually used to to the open a prepared or new XAE configuration + + + + Handler function Initializing the Script (Configuration preparations) + + The Script Context + Usually used to to the open a prepared or new XAE configuration + + + + Cleaning up the XAE configuration after script execution. + + The worker. + Saves all open projects and Frees the internal DTE and Solution references + + + + Creates an empty Visual Studio Solution + + + + + Creates the new project. + + Name of the project. + + + + + Creates the new project. + + Name of the project. + The template path. + + + + + Gets the binding type of the script + + The programming language. + + + + Class implements additional OS Environment settings + + + + + Gets a value indicating whether this code is running on a 64 Bit Operating system. + + + true if [is64 bit operating system]; otherwise, false. + + + + + Gets a value indicating whether this code is running within a Wow64 Process (32-Bit Processon 64-Bit Operating system) + + + true if this instance is wow64 process; otherwise, false. + + + + + Gets a value indicating whether this code is running in a native 64 Bit Process. + + true if [is64 bit process]; otherwise, false. + + + + Helper class + + + + + Scans the devices on the target system and returns a list of XML Nodes representing these devices. + + The system manager. + + + + + Scans the devices and Adds an EtherCAT Automation Protocol device if an network adapter is found. + + The system manager. + The type. + Name of the device. + The progress. + + + + + Var Declaration class. + + + + + Initializes a new instance of the class. + + The scope. + The name. + The type. + The address. + The init value. + The comment. + The flags. + + + + Initializes a new instance of the class. + + The scope. + The name. + The type. + The address. + + + + Gets the address. + + The address. + + + + Gets the comment. + + The comment. + + + + Gets the flags. + + The flags. + + + + Gets the init value. + + The init value. + + + + Gets the name. + + The name. + + + + Gets the scope. + + The scope. + + + + Gets the type. + + The type. + + + + Converter class converting instances of the enumeration + + + + + Converts the enumeration to string. + + + + + + + Script Loader class + + + + + Loads the script intances from Assemblies within the Executable folder. + + The script type filter (or null if not filtered). + + + + Gets the script. + + The name. + + + + + Instantiates the scripts from the specified assembly. + + The assembly. + Type filter (or null) + IEnumerable<Script>. + + + + Determines the script types from the specified assembly. + + The assembly. + + + + + Gets or sets the script filter. + + The script filter. + + + + Gets the scripts. + + The scripts. + + + + Xml Converter class for TwinCAT specifics + + + + + Reads the element content as bin hex. + + The reader. + + + + + Reads an hexadecimal integer value from XML string + + The string + The value + + + + Reads an hexadecimal value from XML string + + The string + The value + + + + Converts an hexadecimal value to XML string + + The value + The string representation + + + + Converts an hexadecimal value to XML string + + The value + The string representatino + + + + Reads an hexadecimal integer value from XML string + + The string + The value + + + + Converts an hexadecimal value to XML string + + The value + The string representation + + + + Reads a specified booleaan (from "True", "False", "1" and "0"); + + The STR. + + + + + Script context + + + + + Gets the DTE Object. + + The DTE. + + + + Gets the solution object + + The solution. + + + + Gets the Script Worker. + + The worker. + + + + Gets the Configuration Factory + + The factory. + + + + Gets the Named parameters (Dictionary Name --> ParameterValue) + + The _parameters. + + + + Gets the solution template. + + The solution template. + + + + Script context class + + + + + Initializes a new instance of the class. + + The factory. + The project template. + The parameters. + + + + Initializes a new instance of the class. + + The factory. + + + + Parameters dictionary + + + + + Project template + + + + + Sets the DTE. + + The DTE. + The solution. + + + + Sets the worker. + + The worker. + + + + Gets the Script Worker. + + The worker. + + + + Gets the Configuration Factory + + The factory. + + + + Gets the DTE. + + The DTE. + + + + Gets the solution. + + The solution. + + + + Gets the Named parameters (Dictionary Name --> ParameterValue) + + The _parameters. + + + + Gets the solution template. + + The solution template. + + + + Worker interface wrapping the Worker thread used to execute the script. + + + + + Starts the Script execution asynchronously + + + + + Cancels the script asynchronously. + + + + + Requests the Execution Cancel and wait until the Execution is stopped. + + + + + Gets a value indicating whether a cancellation is pending. + + true if [cancellation pending]; otherwise, false. + + + + Occurs when the worker thread has been completed + + + + + Occurs, when the Visual Studio configuration is fully initialized + + + + + Worker class for asynchronous script execution (within STA) + + + + + Initializes a new instance of the class. + + The script. + The context. + + + + Configuration factory + + + + + Executed Script + + + + + Starts the Script execution asynchronously + + + + + Current status of the script execution + + + + + Current Progress + + + + + Handler function fireing the event. + + + + + Cancels the script asynchronously. + + + + + Requests the Execution Cancel and wait until the Execution is stopped. + + + + + + + Called when [configuration initialized]. + + + + + Occurs when the worker thread has been completed + + + + + Gets or sets the status string. + + The status. + + + + Occurs when the status has been changed. + + + + + Sets the progress value (0-100%) + + The progress. + + + + Occurs when the progress has been changed. + + + + + Gets a value indicating whether a cancellation is pending. + + true if [cancellation pending]; otherwise, false. + + + + Occurs, when the Visual Studio configuration is fully initialized + + + + diff --git a/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeA.tszip b/src/build-server/samples/CodeGenerationDemoSrc/CodeGenerationBins/Templates/MachineTypeA.tszip new file mode 100644 index 0000000000000000000000000000000000000000..dc955a07043f8923135947cb6a0fdc9b99812e8b GIT binary patch literal 305879 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�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