Skip to content

Commit 96790bc

Browse files
Merge branch 'MTConnect-v2.5'
2 parents cb51397 + e181e45 commit 96790bc

213 files changed

Lines changed: 3560 additions & 908 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

agent/Processors/MTConnect.NET-AgentProcessor-Python/MTConnect.NET-AgentProcessor-Python.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
</PropertyGroup>
5151

5252
<ItemGroup>
53-
<PackageReference Include="IronPython" Version="3.4.1" />
53+
<PackageReference Include="IronPython" Version="3.4.2" />
5454
<PackageReference Include="NLog" Version="5.2.7" />
5555
</ItemGroup>
5656

build/AssemblyInfo.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
using System.Reflection;
22

3-
[assembly: AssemblyVersion("6.6.0")]
4-
[assembly: AssemblyFileVersion("6.6.0")]
3+
[assembly: AssemblyVersion("6.7.0")]
4+
[assembly: AssemblyFileVersion("6.7.0")]
55
[assembly: AssemblyCompany("TrakHound Inc.")]
6-
[assembly: AssemblyCopyright("Copyright (c) 2024 TrakHound Inc., All Rights Reserved.")]
6+
[assembly: AssemblyCopyright("Copyright (c) 2025 TrakHound Inc., All Rights Reserved.")]

build/MTConnect.NET-SysML-Import/CSharp/ClassModel.cs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -134,22 +134,25 @@ public string RenderInterface()
134134

135135
public string RenderDescriptions()
136136
{
137-
var templateFilename = $"ModelDescriptions.scriban";
138-
var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "csharp", "templates", templateFilename);
139-
if (HasDescriptions && File.Exists(templatePath))
137+
if (Properties != null && Properties.Count > 0)
140138
{
141-
try
139+
var templateFilename = $"ModelDescriptions.scriban";
140+
var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "csharp", "templates", templateFilename);
141+
if (HasDescriptions && File.Exists(templatePath))
142142
{
143-
var templateContents = File.ReadAllText(templatePath);
144-
if (templateContents != null)
143+
try
145144
{
146-
var template = Template.Parse(templateContents);
147-
return template.Render(this);
145+
var templateContents = File.ReadAllText(templatePath);
146+
if (templateContents != null)
147+
{
148+
var template = Template.Parse(templateContents);
149+
return template.Render(this);
150+
}
151+
}
152+
catch (Exception ex)
153+
{
154+
Console.WriteLine(ex.Message);
148155
}
149-
}
150-
catch (Exception ex)
151-
{
152-
Console.WriteLine(ex.Message);
153156
}
154157
}
155158

build/MTConnect.NET-SysML-Import/CSharp/ComponentType.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
using MTConnect.SysML.Xmi;
44
using MTConnect.SysML.Xmi.UML;
55
using Scriban;
6-
using System;
7-
using System.IO;
8-
using System.Linq;
96

107
namespace MTConnect.SysML.CSharp
118
{

build/MTConnect.NET-SysML-Import/CSharp/CompositionType.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
using MTConnect.SysML.Xmi;
44
using MTConnect.SysML.Xmi.UML;
55
using Scriban;
6-
using System;
7-
using System.IO;
8-
using System.Linq;
96

107
namespace MTConnect.SysML.CSharp
118
{

build/MTConnect.NET-SysML-Import/CSharp/CuttingToolMeasurementModel.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
11
using MTConnect.NET_SysML_Import.CSharp;
22
using MTConnect.SysML.Models.Assets;
3-
using MTConnect.SysML.Models.Observations;
43
using Scriban;
5-
using System;
6-
using System.IO;
7-
using System.Linq;
84

95
namespace MTConnect.SysML.CSharp
106
{
11-
public class CuttingToolMeasurementModel : MTConnectCuttingToolMeasurementModel, ITemplateModel
7+
public class CuttingToolMeasurementModel : MTConnectMeasurementModel, ITemplateModel
128
{
139
public string Namespace => NamespaceHelper.GetNamespace(Id);
1410

1511
public string XmlDescription { get; set; }
1612

1713

18-
public static CuttingToolMeasurementModel Create(MTConnectCuttingToolMeasurementModel importModel)
14+
public static CuttingToolMeasurementModel Create(MTConnectMeasurementModel importModel)
1915
{
2016
if (importModel != null)
2117
{

build/MTConnect.NET-SysML-Import/CSharp/EnumModel.cs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -119,22 +119,25 @@ public string RenderModel()
119119

120120
public string RenderDescriptions()
121121
{
122-
var templateFilename = $"EnumDescriptions.scriban";
123-
var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "csharp", "templates", templateFilename);
124-
if (File.Exists(templatePath))
122+
if (Values != null && Values.Count > 0)
125123
{
126-
try
124+
var templateFilename = $"EnumDescriptions.scriban";
125+
var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "csharp", "templates", templateFilename);
126+
if (File.Exists(templatePath))
127127
{
128-
var templateContents = File.ReadAllText(templatePath);
129-
if (templateContents != null)
128+
try
130129
{
131-
var template = Template.Parse(templateContents);
132-
return template.Render(this);
130+
var templateContents = File.ReadAllText(templatePath);
131+
if (templateContents != null)
132+
{
133+
var template = Template.Parse(templateContents);
134+
return template.Render(this);
135+
}
136+
}
137+
catch (Exception ex)
138+
{
139+
Console.WriteLine(ex.Message);
133140
}
134-
}
135-
catch (Exception ex)
136-
{
137-
Console.WriteLine(ex.Message);
138141
}
139142
}
140143

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
using MTConnect.NET_SysML_Import.CSharp;
2+
using MTConnect.SysML.Models.Assets;
3+
using Scriban;
4+
5+
namespace MTConnect.SysML.CSharp
6+
{
7+
public class MeasurementModel : MTConnectMeasurementModel, ITemplateModel
8+
{
9+
public string Namespace => NamespaceHelper.GetNamespace(Id);
10+
11+
public string XmlDescription { get; set; }
12+
13+
14+
public static MeasurementModel Create(MTConnectMeasurementModel importModel)
15+
{
16+
if (importModel != null)
17+
{
18+
var type = typeof(MeasurementModel);
19+
20+
var importProperties = importModel.GetType().GetProperties();
21+
var exportProperties = type.GetProperties();
22+
23+
if (importProperties != null && exportProperties != null)
24+
{
25+
var exportModel = new MeasurementModel();
26+
27+
foreach (var importProperty in importProperties)
28+
{
29+
var propertyValue = importProperty.GetValue(importModel);
30+
31+
var exportProperty = exportProperties.FirstOrDefault(o => o.Name == importProperty.Name);
32+
if (exportProperty != null && exportProperty.PropertyType == importProperty.PropertyType)
33+
{
34+
exportProperty.SetValue(exportModel, propertyValue);
35+
}
36+
}
37+
38+
exportModel.Description = DescriptionHelper.GetTextDescription(importModel.Description);
39+
exportModel.XmlDescription = DescriptionHelper.GetXmlDescription(importModel.Description);
40+
41+
return exportModel;
42+
}
43+
}
44+
45+
return null;
46+
}
47+
48+
public string RenderModel()
49+
{
50+
var templateFilename = $"Assets.Measurement.scriban";
51+
var templatePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "csharp", "templates", templateFilename);
52+
if (File.Exists(templatePath))
53+
{
54+
try
55+
{
56+
var templateContents = File.ReadAllText(templatePath);
57+
if (templateContents != null)
58+
{
59+
var template = Template.Parse(templateContents);
60+
return template.Render(this);
61+
}
62+
}
63+
catch (Exception ex)
64+
{
65+
Console.WriteLine(ex.Message);
66+
}
67+
}
68+
69+
return null;
70+
}
71+
72+
public string RenderInterface() => null;
73+
74+
public string RenderDescriptions() => null;
75+
}
76+
}

build/MTConnect.NET-SysML-Import/CSharp/TemplateRenderer.cs

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@
22
using MTConnect.SysML.Models.Devices;
33
using MTConnect.SysML.Models.Observations;
44
using System.Collections;
5-
using System.Collections.Generic;
6-
using System.IO;
7-
using System.Linq;
85

96
namespace MTConnect.SysML.CSharp
107
{
@@ -18,10 +15,29 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
1815
if (exportModels != null)
1916
{
2017
var classModels = exportModels.Where(o => typeof(MTConnectClassModel).IsAssignableFrom(o.GetType())).Select(o => (MTConnectClassModel)o);
21-
var dClassModels = classModels.Where(o => o.Name != null).ToDictionary(o => o.Name);
18+
19+
var dClassModels = new Dictionary<string, MTConnectClassModel>();
20+
foreach (var classModel in classModels)
21+
{
22+
if (!string.IsNullOrEmpty(classModel.Name))
23+
{
24+
if (!dClassModels.ContainsKey(classModel.Name)) dClassModels.Add(classModel.Name, classModel);
25+
}
26+
}
27+
//var dClassModels = classModels.Where(o => o.Name != null).ToDictionary(o => o.Name);
28+
2229

2330
var enumModels = exportModels.Where(o => typeof(MTConnectEnumModel).IsAssignableFrom(o.GetType())).Select(o => (MTConnectEnumModel)o);
24-
var dEnumModels = enumModels.Where(o => o.Name != null).ToDictionary(o => o.Name);
31+
32+
var dEnumModels = new Dictionary<string, MTConnectEnumModel>();
33+
foreach (var enumModel in enumModels)
34+
{
35+
if (!string.IsNullOrEmpty(enumModel.Name))
36+
{
37+
if (!dEnumModels.ContainsKey(enumModel.Name)) dEnumModels.Add(enumModel.Name, enumModel);
38+
}
39+
}
40+
//var dEnumModels = enumModels.Where(o => o.Name != null).ToDictionary(o => o.Name);
2541

2642

2743
var templates = new List<ITemplateModel>();
@@ -80,7 +96,11 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
8096
if (((MTConnectComponentType)exportModel).Type == "Controllers") ((MTConnectComponentType)exportModel).MinimumVersion = new Version(1, 0);
8197
template = ComponentType.Create((MTConnectComponentType)exportModel);
8298
}
83-
else if (typeof(MTConnectCuttingToolMeasurementModel).IsAssignableFrom(type)) template = CuttingToolMeasurementModel.Create((MTConnectCuttingToolMeasurementModel)exportModel);
99+
else if (typeof(MTConnectMeasurementModel).IsAssignableFrom(type))
100+
{
101+
if (exportModel.Id.StartsWith("Assets.CuttingTools.")) template = CuttingToolMeasurementModel.Create((MTConnectMeasurementModel)exportModel);
102+
//else if (exportModel.Id.StartsWith("Assets.Pallet.")) template = MeasurementModel.Create((MTConnectMeasurementModel)exportModel);
103+
}
84104
else if (exportModel.Id.EndsWith("Result"))
85105
{
86106
template = DataSetResultModel.Create((MTConnectClassModel)exportModel);
@@ -94,6 +114,7 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
94114
case "Devices.UnitsEnum": template = EnumStringModel.Create((MTConnectEnumModel)exportModel, ConvertUnitEnum); break;
95115
case "Devices.NativeUnitsEnum": template = EnumStringModel.Create((MTConnectEnumModel)exportModel, ConvertUnitEnum); break;
96116
case "Assets.CuttingTools.Measurements.MeasurementCodeEnum": template = EnumStringModel.Create((MTConnectEnumModel)exportModel, ConvertMeasurementCodeEnum); break;
117+
//case "Assets.Pallet.Measurements.MeasurementCodeEnum": template = EnumStringModel.Create((MTConnectEnumModel)exportModel, ConvertMeasurementCodeEnum); break;
97118
default: template = EnumModel.Create((MTConnectEnumModel)exportModel); break;
98119
}
99120
}
@@ -125,6 +146,7 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
125146
//case "Devices.Configurations.CriticalityType": ((EnumModel)template).Values.Add(new MTConnectEnumValueModel { Name = "NOT_SPECIFIED" }); break;
126147

127148
case "Assets.Asset": ((ClassModel)template).IsPartial = true; break;
149+
case "Assets.PhysicalAsset": ((ClassModel)template).IsPartial = true; break;
128150
case "Assets.ComponentConfigurationParameters.ComponentConfigurationParameters":
129151
((ClassModel)template).IsPartial = true;
130152
((ClassModel)template).Id += "Asset";
@@ -150,6 +172,10 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
150172
((ClassModel)template).IsPartial = true;
151173
((ClassModel)template).IsAbstract = false;
152174
break;
175+
case "Assets.CuttingTools.ToolingMeasurement":
176+
((ClassModel)template).IsPartial = true;
177+
((ClassModel)template).IsAbstract = false;
178+
break;
153179
case "Assets.Files.File":
154180
((ClassModel)template).IsPartial = true;
155181
((ClassModel)template).Id += "Asset";
@@ -168,6 +194,18 @@ public static void Render(MTConnectModel mtconnectModel, string outputPath)
168194
((ClassModel)template).Name += "Asset";
169195
if (((ClassModel)template).ParentName != null && ((ClassModel)template).ParentName != "Asset") ((ClassModel)template).ParentName += "Asset";
170196
break;
197+
case "Assets.Fixture.Fixture":
198+
((ClassModel)template).IsPartial = true;
199+
((ClassModel)template).Id += "Asset";
200+
((ClassModel)template).Name += "Asset";
201+
//if (((ClassModel)template).ParentName != null && ((ClassModel)template).ParentName != "Asset") ((ClassModel)template).ParentName += "Asset";
202+
break;
203+
case "Assets.Pallet.Pallet":
204+
((ClassModel)template).IsPartial = true;
205+
((ClassModel)template).Id += "Asset";
206+
((ClassModel)template).Name += "Asset";
207+
//if (((ClassModel)template).ParentName != null && ((ClassModel)template).ParentName != "Asset") ((ClassModel)template).ParentName += "Asset";
208+
break;
171209
case "Assets.QIF.QIFDocumentWrapper":
172210
((ClassModel)template).IsPartial = true;
173211
((ClassModel)template).Id += "Asset";

build/MTConnect.NET-SysML-Import/CSharp/Templates/Assets.CuttingToolMeasurement.scriban

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ namespace MTConnect.Assets.CuttingTools.Measurements
66
/// <summary>
77
/// {{description}}
88
/// </summary>
9-
public class {{name}} : Measurement
9+
public class {{name}} : ToolingMeasurement
1010
{
1111
public const string TypeId = "{{type_id}}";
1212
public const string CodeId = "{{code_id}}";
@@ -27,7 +27,7 @@ namespace MTConnect.Assets.CuttingTools.Measurements
2727
{{ if (units_enum) }}Units = {{units_enum}};{{ end }}
2828
}
2929

30-
public {{name}}(IMeasurement measurement) : base(measurement)
30+
public {{name}}(IToolingMeasurement measurement) : base(measurement)
3131
{
3232
Type = TypeId;
3333
Code = CodeId;

0 commit comments

Comments
 (0)