Skip to content

Commit

Permalink
fix: when creating a config from a sln file, projects are ignored
Browse files Browse the repository at this point in the history
  • Loading branch information
Donkey committed Jan 24, 2024
1 parent 56b22b2 commit 41187d7
Show file tree
Hide file tree
Showing 13 changed files with 291 additions and 18 deletions.
5 changes: 0 additions & 5 deletions TwinpackShared/Models/Config.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Text.RegularExpressions;
using System.Xml.Linq;

namespace Twinpack.Models
{
Expand Down
33 changes: 24 additions & 9 deletions TwinpackShared/Models/ConfigFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,10 @@ public class ConfigFactory
private static readonly Logger _logger = LogManager.GetCurrentClassLogger();

public const string DefaultRepository = "https://framework.zeugwerk.dev/Distribution";

public static readonly string ZeugwerkVendorName = "Zeugwerk GmbH";
public static readonly List<String> DefaultLocations = new List<String> { $@"", $@".Zeugwerk\" };
public static readonly XNamespace TsProjectNs = "http://www.w3.org/2001/XMLSchema-instance";

public static Config Load(string path = ".")
{
Expand Down Expand Up @@ -60,7 +62,7 @@ public static Config Load(string path = ".")
}
}

return null;
return config;
}

public static Config Create(string solutionName, List<ConfigProject> projects = null, string filepath = null)
Expand Down Expand Up @@ -116,8 +118,9 @@ public static async Task<Config> CreateFromSolutionAsync(EnvDTE.Solution solutio
return config;
}

public static async Task<Config> CreateAsync(string path = ".", bool continueWithoutSolution = false, TwinpackServer twinpackServer = null, CancellationToken cancellationToken = default)
public static async Task<Config> CreateFromSolutionFileAsync(string path = ".", bool continueWithoutSolution = false, TwinpackServer twinpackServer = null, CancellationToken cancellationToken = default)
{

Config config = new Config();
var solutions = Directory.GetFiles(path, "*.sln", SearchOption.AllDirectories);

Expand All @@ -139,17 +142,29 @@ public static async Task<Config> CreateAsync(string path = ".", bool continueWit
config.FilePath = $@"{Environment.CurrentDirectory}\.Zeugwerk\config.json";
}

var project = new ConfigProject();
project.Name = config.Solution?.Split('.').First();
project.Plcs = new List<ConfigPlcProject>();
var slnContent = File.ReadAllText(solutions.First());

foreach (var plcpath in Directory.GetFiles(path, "*.plcproj", SearchOption.AllDirectories))
//Project("{DFBE7525-6864-4E62-8B2E-D530D69D9D96}") = "ZApplication", "ZApplication.tspproj", "{55567FAF-D581-431A-8E43-734906367EA7}"
var projectMatches = Regex.Matches(slnContent, "Project\\(.*?\\)\\s*=\\s*\"(.*?)\"\\s*,\\s*\"(.*?ts[p]?proj)\"\\s*,.*");
foreach(Match projectMatch in projectMatches)
{
project.Plcs.Add(await ConfigPlcProjectFactory.CreateAsync(plcpath, twinpackServer, cancellationToken));
var project = new ConfigProject();
project.Name = projectMatch.Groups[1].Value;
project.Plcs = new List<ConfigPlcProject>();

string tsprojFilepath = $@"{path}\{projectMatch.Groups[2].Value}";
XDocument tsprojXml = XDocument.Load(tsprojFilepath);
var plcs = tsprojXml.Root.Elements("Project").Elements("Plc").Elements("Project");
foreach (var plc in plcs)
{
var plcpath = $@"{new FileInfo(tsprojFilepath).Directory.FullName}\{plc.Attribute("PrjFilePath").Value}";
project.Plcs.Add(await ConfigPlcProjectFactory.CreateAsync(plcpath, twinpackServer, cancellationToken));
}

config.Projects = new List<ConfigProject>();
config.Projects.Add(project);
}

config.Projects = new List<ConfigProject>();
config.Projects.Add(project);
return config;
}

Expand Down
43 changes: 43 additions & 0 deletions TwinpackTests/ConfigFactoryTest.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Threading.Tasks;
using Twinpack.Models;

namespace TwinpackTests
{
[TestClass]
public class ConfigFactoryTest
{
[TestMethod]
public async Task CreateFromSolutionFile()
{
var config = await ConfigFactory.CreateFromSolutionFileAsync(@"assets\TestSolution");

Assert.AreEqual(@"assets\TestSolution", config.WorkingDirectory);
Assert.AreEqual(@"TestSolution.sln", config.Solution);
Assert.AreEqual(@"assets\TestSolution\.Zeugwerk\config.json", config.FilePath);
Assert.AreEqual(1, config.Projects.Count);

var project = config.Projects.FirstOrDefault();
Assert.AreEqual(@"TestProject", project?.Name);
Assert.AreEqual(1, project?.Plcs.Count);

var plc = project.Plcs.FirstOrDefault();
Assert.AreEqual(@"Plc1", plc?.Name);
Assert.AreEqual(@"Plc1", plc?.Title);
Assert.AreEqual(ConfigPlcProject.PlcProjectType.Application, plc?.PlcType);
Assert.AreEqual(1, plc?.References.Count);
Assert.AreEqual("1.0.0.0", plc?.Version);
Assert.AreEqual(@"*", plc?.References?.FirstOrDefault().Key);
Assert.AreEqual(3, plc?.References?.FirstOrDefault().Value.Count);

var references = plc?.References?.FirstOrDefault().Value;
Assert.AreEqual(@"Tc2_Standard=*", references[0]);
Assert.AreEqual(@"Tc2_System=*", references[1]);
Assert.AreEqual(@"Tc3_Module=*", references[2]);
}
}
}
8 changes: 4 additions & 4 deletions TwinpackTests/LibraryReaderTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ public class LibraryReaderTest
const string _loremIpsum = @"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. END";

[DataTestMethod]
[DataRow(@"assets\LibCat1_All_selected.library", "MyCompany", "MyTitle", "1.2.3", "", "", "")]
[DataRow(@"assets\LibCat4_All_selected.library", "MyCompany", "MyTitle", "1.2.3", "", "", "")]
[DataRow(@"assets\LibCat4_MyParent_selected.library", "MyCompany", "MyTitle", "1.2.3", "", "", "")]
[DataRow(@"assets\LibCat4P_1_selected.library", "MyCompany", "MyTitle", "1.2.3", "", "", "")]
[DataRow(@"assets\LibCat1_All_selected.library", "MyCompany", "MyTitle", "1.0.2.4", "MyDefaultNamespace", "MyAuthor", "MyDescription")]
[DataRow(@"assets\LibCat4_All_selected.library", "MyCompany", "MyTitle", "5.5.5.5", "", "", "")]
[DataRow(@"assets\LibCat4_MyParent_selected.library", "MyCompany", "MyTitle", "5.5.5.5", "", "", "")]
[DataRow(@"assets\LibCat4P_1_selected.library", "MyCompany", "MyTitle", "1.0.2.4", "MyDefaultNamespace", "MyAuthor", "MyDescription")]
[DataRow(@"assets\Untitled2_libcat.library", "MyCompany", "MyTitle", "1.2.3", "MyDefaultNamespace", "MyAuthor", _loremIpsum)]
[DataRow(@"assets\Untitled2_minimal_infos_libcat_mine_theirs_yours_1234.library", "MyCompany", "MyTitle", "1.2.3", "", "", "")]
[DataRow(@"assets\Untitled2_minimal_infos_libcat_1234.library", "MyCompany", "MyTitle", "1.2.3", "", "", "")]
Expand Down
23 changes: 23 additions & 0 deletions TwinpackTests/TwinpackTests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="ConfigFactoryTest.cs" />
<Compile Include="LibraryReaderTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
Expand Down Expand Up @@ -97,6 +98,9 @@
</PackageReference>
</ItemGroup>
<ItemGroup>
<Content Include="assets\TestSolution\TestSolution.sln">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="assets\Untitled1_4024_35_minimal_infos_123.library">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
Expand Down Expand Up @@ -192,6 +196,25 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<None Include="assets\TestSolution\TestProject\Plc1\Plc1.plcproj">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="assets\TestSolution\TestProject\Plc1\PlcTask.TcTTO">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="assets\TestSolution\TestProject\Plc1\POUs\MAIN.TcPOU">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="assets\TestSolution\TestProject\TestProject.tsproj">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Folder Include="assets\TestSolution\TestProject\Plc1\DUTs\" />
<Folder Include="assets\TestSolution\TestProject\Plc1\GVLs\" />
<Folder Include="assets\TestSolution\TestProject\Plc1\VISUs\" />
</ItemGroup>
<Import Project="..\TwinpackShared\TwinpackShared.projitems" Label="Shared" />
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Expand Down
13 changes: 13 additions & 0 deletions TwinpackTests/assets/TestSolution/TestProject/Plc1/POUs/MAIN.TcPOU
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<POU Name="MAIN" Id="{c7f4bd36-5c89-4da6-a391-3884fa24fc35}">
<Declaration><![CDATA[PROGRAM MAIN
VAR
END_VAR
]]>
</Declaration>
<Implementation>
<ST><![CDATA[]]></ST>
</Implementation>
</POU>
</TcPlcObject>
82 changes: 82 additions & 0 deletions TwinpackTests/assets/TestSolution/TestProject/Plc1/Plc1.plcproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<FileVersion>1.0.0.0</FileVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{76722466-87a7-49cc-9a2e-8cddba5bc42c}</ProjectGuid>
<SubObjectsSortedByName>True</SubObjectsSortedByName>
<DownloadApplicationInfo>true</DownloadApplicationInfo>
<WriteProductVersion>true</WriteProductVersion>
<GenerateTpy>false</GenerateTpy>
<Name>Plc1</Name>
<ProgramVersion>3.1.4024.0</ProgramVersion>
<Application>{db275dae-40b0-461c-bc80-2ef3667d7bcf}</Application>
<TypeSystem>{afb06401-f2ff-4a8a-bfd2-3f912b0c4c67}</TypeSystem>
<Implicit_Task_Info>{106329e5-859d-4a09-8fb7-78b83112d1d7}</Implicit_Task_Info>
<Implicit_KindOfTask>{bace41c1-6fbe-4c24-9cd0-348e272f3c2e}</Implicit_KindOfTask>
<Implicit_Jitter_Distribution>{9a94b6d0-ced2-4eed-93b1-c2925cc42927}</Implicit_Jitter_Distribution>
<LibraryReferences>{a912ab6d-5d52-42c5-b5e4-5af5bb524c5b}</LibraryReferences>
</PropertyGroup>
<ItemGroup>
<Compile Include="PlcTask.TcTTO">
<SubType>Code</SubType>
</Compile>
<Compile Include="POUs\MAIN.TcPOU">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<Folder Include="DUTs" />
<Folder Include="GVLs" />
<Folder Include="VISUs" />
<Folder Include="POUs" />
</ItemGroup>
<ItemGroup>
<PlaceholderReference Include="Tc2_Standard">
<DefaultResolution>Tc2_Standard, * (Beckhoff Automation GmbH)</DefaultResolution>
<Namespace>Tc2_Standard</Namespace>
</PlaceholderReference>
<PlaceholderReference Include="Tc2_System">
<DefaultResolution>Tc2_System, * (Beckhoff Automation GmbH)</DefaultResolution>
<Namespace>Tc2_System</Namespace>
</PlaceholderReference>
<PlaceholderReference Include="Tc3_Module">
<DefaultResolution>Tc3_Module, * (Beckhoff Automation GmbH)</DefaultResolution>
<Namespace>Tc3_Module</Namespace>
</PlaceholderReference>
</ItemGroup>
<ProjectExtensions>
<PlcProjectOptions>
<XmlArchive>
<Data>
<o xml:space="preserve" t="OptionKey">
<v n="Name">"&lt;ProjectRoot&gt;"</v>
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
<v>{40450F57-0AA3-4216-96F3-5444ECB29763}</v>
<o>
<v n="Name">"{40450F57-0AA3-4216-96F3-5444ECB29763}"</v>
<d n="SubKeys" t="Hashtable" />
<d n="Values" t="Hashtable" ckt="String" cvt="String">
<v>ActiveVisuProfile</v>
<v>IR0whWr8bwfwBwAAiD2qpQAAAABVAgAA37x72QAAAAABAAAAAAAAAAEaUwB5AHMAdABlAG0ALgBTAHQAcgBpAG4AZwACTHsAZgA5ADUAYgBiADQAMgA2AC0ANQA1ADIANAAtADQAYgA0ADUALQA5ADQAMAAwAC0AZgBiADAAZgAyAGUANwA3AGUANQAxAGIAfQADCE4AYQBtAGUABDBUAHcAaQBuAEMAQQBUACAAMwAuADEAIABCAHUAaQBsAGQAIAA0ADAAMgA0AC4ANwAFFlAAcgBvAGYAaQBsAGUARABhAHQAYQAGTHsAMQA2AGUANQA1AGIANgAwAC0ANwAwADQAMwAtADQAYQA2ADMALQBiADYANQBiAC0ANgAxADQANwAxADMAOAA3ADgAZAA0ADIAfQAHEkwAaQBiAHIAYQByAGkAZQBzAAhMewAzAGIAZgBkADUANAA1ADkALQBiADAANwBmAC0ANABkADYAZQAtAGEAZQAxAGEALQBhADgAMwAzADUANgBhADUANQAxADQAMgB9AAlMewA5AGMAOQA1ADgAOQA2ADgALQAyAGMAOAA1AC0ANAAxAGIAYgAtADgAOAA3ADEALQA4ADkANQBmAGYAMQBmAGUAZABlADEAYQB9AAoOVgBlAHIAcwBpAG8AbgALBmkAbgB0AAwKVQBzAGEAZwBlAA0KVABpAHQAbABlAA4aVgBpAHMAdQBFAGwAZQBtAE0AZQB0AGUAcgAPDkMAbwBtAHAAYQBuAHkAEAxTAHkAcwB0AGUAbQARElYAaQBzAHUARQBsAGUAbQBzABIwVgBpAHMAdQBFAGwAZQBtAHMAUwBwAGUAYwBpAGEAbABDAG8AbgB0AHIAbwBsAHMAEyhWAGkAcwB1AEUAbABlAG0AcwBXAGkAbgBDAG8AbgB0AHIAbwBsAHMAFCRWAGkAcwB1AEUAbABlAG0AVABlAHgAdABFAGQAaQB0AG8AcgAVIlYAaQBzAHUATgBhAHQAaQB2AGUAQwBvAG4AdAByAG8AbAAWFHYAaQBzAHUAaQBuAHAAdQB0AHMAFwxzAHkAcwB0AGUAbQAYGFYAaQBzAHUARQBsAGUAbQBCAGEAcwBlABkmRABlAHYAUABsAGEAYwBlAGgAbwBsAGQAZQByAHMAVQBzAGUAZAAaCGIAbwBvAGwAGyJQAGwAdQBnAGkAbgBDAG8AbgBzAHQAcgBhAGkAbgB0AHMAHEx7ADQAMwBkADUAMgBiAGMAZQAtADkANAAyAGMALQA0ADQAZAA3AC0AOQBlADkANAAtADEAYgBmAGQAZgAzADEAMABlADYAMwBjAH0AHRxBAHQATABlAGEAcwB0AFYAZQByAHMAaQBvAG4AHhRQAGwAdQBnAGkAbgBHAHUAaQBkAB8WUwB5AHMAdABlAG0ALgBHAHUAaQBkACBIYQBmAGMAZAA1ADQANAA2AC0ANAA5ADEANAAtADQAZgBlADcALQBiAGIANwA4AC0AOQBiAGYAZgBlAGIANwAwAGYAZAAxADcAIRRVAHAAZABhAHQAZQBJAG4AZgBvACJMewBiADAAMwAzADYANgBhADgALQBiADUAYwAwAC0ANABiADkAYQAtAGEAMAAwAGUALQBlAGIAOAA2ADAAMQAxADEAMAA0AGMAMwB9ACMOVQBwAGQAYQB0AGUAcwAkTHsAMQA4ADYAOABmAGYAYwA5AC0AZQA0AGYAYwAtADQANQAzADIALQBhAGMAMAA2AC0AMQBlADMAOQBiAGIANQA1ADcAYgA2ADkAfQAlTHsAYQA1AGIAZAA0ADgAYwAzAC0AMABkADEANwAtADQAMQBiADUALQBiADEANgA0AC0ANQBmAGMANgBhAGQAMgBiADkANgBiADcAfQAmFk8AYgBqAGUAYwB0AHMAVAB5AHAAZQAnVFUAcABkAGEAdABlAEwAYQBuAGcAdQBhAGcAZQBNAG8AZABlAGwARgBvAHIAQwBvAG4AdgBlAHIAdABpAGIAbABlAEwAaQBiAHIAYQByAGkAZQBzACgQTABpAGIAVABpAHQAbABlACkUTABpAGIAQwBvAG0AcABhAG4AeQAqHlUAcABkAGEAdABlAFAAcgBvAHYAaQBkAGUAcgBzACs4UwB5AHMAdABlAG0ALgBDAG8AbABsAGUAYwB0AGkAbwBuAHMALgBIAGEAcwBoAHQAYQBiAGwAZQAsEnYAaQBzAHUAZQBsAGUAbQBzAC1INgBjAGIAMQBjAGQAZQAxAC0AZAA1AGQAYwAtADQAYQAzAGIALQA5ADAANQA0AC0AMgAxAGYAYQA3ADUANgBhADMAZgBhADQALihJAG4AdABlAHIAZgBhAGMAZQBWAGUAcgBzAGkAbwBuAEkAbgBmAG8AL0x7AGMANgAxADEAZQA0ADAAMAAtADcAZgBiADkALQA0AGMAMwA1AC0AYgA5AGEAYwAtADQAZQAzADEANABiADUAOQA5ADYANAAzAH0AMBhNAGEAagBvAHIAVgBlAHIAcwBpAG8AbgAxGE0AaQBuAG8AcgBWAGUAcgBzAGkAbwBuADIMTABlAGcAYQBjAHkAMzBMAGEAbgBnAHUAYQBnAGUATQBvAGQAZQBsAFYAZQByAHMAaQBvAG4ASQBuAGYAbwA0MEwAbwBhAGQATABpAGIAcgBhAHIAaQBlAHMASQBuAHQAbwBQAHIAbwBqAGUAYwB0ADUaQwBvAG0AcABhAHQAaQBiAGkAbABpAHQAeQDQAAIaA9ADAS0E0AUGGgfQBwgaAUUHCQjQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtDtAPAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60BAAAA0A0BLRHQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0S0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAUAAAA0AwLrQIAAADQDQEtE9APAS0Q0AAJGgRFCgsEAwAAAAUAAAANAAAAAAAAANAMC60CAAAA0A0BLRTQDwEtENAACRoERQoLBAMAAAAFAAAADQAAAAAAAADQDAutAgAAANANAS0V0A8BLRDQAAkaBEUKCwQDAAAABQAAAA0AAAAAAAAA0AwLrQIAAADQDQEtFtAPAS0X0AAJGgRFCgsEAwAAAAUAAAANAAAAKAAAANAMC60EAAAA0A0BLRjQDwEtENAZGq0BRRscAdAAHBoCRR0LBAMAAAAFAAAADQAAAAAAAADQHh8tINAhIhoCRSMkAtAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAAAAANADAS0n0CgBLRHQKQEtENAAJRoFRQoLBAMAAAADAAAAAAAAAAoAAADQJgutAQAAANADAS0n0CgBLRHQKQEtEJoqKwFFAAEC0AABLSzQAAEtF9AAHy0t0C4vGgPQMAutAQAAANAxC60XAAAA0DIarQDQMy8aA9AwC60CAAAA0DELrQMAAADQMhqtANA0Gq0A0DUarQA=</v>
</d>
</o>
<v>{192FAD59-8248-4824-A8DE-9177C94C195A}</v>
<o>
<v n="Name">"{192FAD59-8248-4824-A8DE-9177C94C195A}"</v>
<d n="SubKeys" t="Hashtable" />
<d n="Values" t="Hashtable" />
</o>
</d>
<d n="Values" t="Hashtable" />
</o>
</Data>
<TypeList>
<Type n="Hashtable">System.Collections.Hashtable</Type>
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
<Type n="String">System.String</Type>
</TypeList>
</XmlArchive>
</PlcProjectOptions>
</ProjectExtensions>
</Project>
17 changes: 17 additions & 0 deletions TwinpackTests/assets/TestSolution/TestProject/Plc1/PlcTask.TcTTO
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<TcPlcObject Version="1.1.0.1">
<Task Name="PlcTask" Id="{f93736a7-e22c-4169-9b75-d335cc900e6d}">
<!--CycleTime in micro seconds.-->
<CycleTime>10000</CycleTime>
<Priority>20</Priority>
<PouCall>
<Name>MAIN</Name>
</PouCall>
<TaskFBGuid>{806330ea-a83c-4cf0-97a9-d1c0f1d3a39e}</TaskFBGuid>
<Fb_init>{8a1a742f-00fb-4d41-9f51-2b21db55ea0a}</Fb_init>
<Fb_exit>{e4defeef-fe49-4eb7-bb9c-41a635e83f49}</Fb_exit>
<CycleUpdate>{bdfbe57b-0039-4be5-bc04-57f608bb9e9b}</CycleUpdate>
<PostCycleUpdate>{48523fa5-f2a3-41da-a6bd-4952901793dc}</PostCycleUpdate>
<ObjectProperties />
</Task>
</TcPlcObject>
Binary file not shown.
Binary file not shown.
Binary file not shown.
26 changes: 26 additions & 0 deletions TwinpackTests/assets/TestSolution/TestProject/TestProject.tsproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0"?>
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4024.55">
<Project ProjectGUID="{FBF99FD5-3861-429A-AA44-FD661631289F}" Target64Bit="true" ShowHideConfigurations="#x6">
<System>
<Tasks>
<Task Id="3" Priority="20" CycleTime="100000" AmsPort="350" AdtTasks="true">
<Name>PlcTask</Name>
</Task>
</Tasks>
</System>
<Plc>
<Project GUID="{76722466-87A7-49CC-9A2E-8CDDBA5BC42C}" Name="Plc1" PrjFilePath="Plc1\Plc1.plcproj" TmcFilePath="Plc1\Plc1.tmc" ReloadTmc="true" AmsPort="851" FileArchiveSettings="#x000e" SymbolicMapping="true">
<Instance Id="#x08502000" TcSmClass="TComPlcObjDef" KeepUnrestoredLinks="2">
<Name>Plc1 Instance</Name>
<CLSID ClassFactory="TcPlc30">{08500001-0000-0000-F000-000000000064}</CLSID>
<Contexts>
<Context>
<Id>1</Id>
<Name>Default</Name>
</Context>
</Contexts>
</Instance>
</Project>
</Plc>
</Project>
</TcSmProject>
Loading

0 comments on commit 41187d7

Please sign in to comment.