@aryacode/dsh-engineering 0.4.7 → 0.4.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +178 -0
- package/README.md +34 -26
- package/cordis.patch.yml +7 -6
- package/entries/config.js +62 -0
- package/entries/ftview.js +5 -4
- package/entries/l5x.js +47 -15
- package/entries/mwi.js +26 -6
- package/entries/optix.js +105 -0
- package/lib/client.js +335 -6
- package/package.json +11 -10
- package/vendor/l5x/studio-bridge/NuGet.Config +1 -1
- package/vendor/mwi/README.md +39 -18
- package/vendor/mwi/SKILL.md +26 -20
- package/vendor/mwi/bridge/mw_bridge.ps1 +2763 -2763
- package/vendor/mwi/bridge/sdk-interop-importer.cs +30 -30
- package/vendor/mwi/bridge/sdk-variable-reader.cs +22 -22
- package/vendor/mwi/code/engine/motionworks_iec_mcp/build.py +339 -339
- package/vendor/mwi/code/engine/motionworks_iec_mcp/cfb.py +765 -765
- package/vendor/mwi/code/engine/motionworks_iec_mcp/declarations.py +399 -399
- package/vendor/mwi/code/engine/motionworks_iec_mcp/ide.py +313 -313
- package/vendor/mwi/code/engine/motionworks_iec_mcp/manuals.py +520 -520
- package/vendor/mwi/code/engine/motionworks_iec_mcp/mwt_bind.py +133 -133
- package/vendor/mwi/code/engine/motionworks_iec_mcp/reference_data/catalog.json +672 -672
- package/vendor/mwi/code/engine/motionworks_iec_mcp/reference_data/patterns.json +86 -86
- package/vendor/mwi/code/engine/motionworks_iec_mcp/restore.py +208 -208
- package/vendor/mwi/code/engine/motionworks_iec_mcp/staging.py +128 -128
- package/vendor/mwi/code/engine/motionworks_iec_mcp/stlint.py +673 -673
- package/vendor/mwi/code/engine/motionworks_iec_mcp/tree_writer.py +790 -790
- package/vendor/mwi/code/engine/motionworks_iec_mcp/writer.py +642 -642
- package/vendor/mwi/lib/core/code-engine.d.ts +13 -0
- package/vendor/mwi/lib/core/code-engine.js +18 -1
- package/vendor/mwi/lib/edit.d.ts +1 -1
- package/vendor/mwi/lib/edit.js +1 -1
- package/vendor/mwi/lib/read/service.js +8 -1
- package/vendor/mwi/lib/session/backup.d.ts +55 -0
- package/vendor/mwi/lib/session/backup.js +232 -0
- package/vendor/mwi/lib/session/project.d.ts +4 -1
- package/vendor/mwi/lib/session/project.js +13 -2
- package/vendor/mwi/lib/session/service.d.ts +13 -6
- package/vendor/mwi/lib/session/service.js +127 -36
- package/vendor/mwi/lib/session/workspace.d.ts +10 -0
- package/vendor/mwi/lib/session/workspace.js +53 -3
- package/vendor/mwi/lib/skill.d.ts +2 -2
- package/vendor/mwi/lib/skill.js +2 -2
- package/vendor/mwi/lib/tools/edit.d.ts +3 -3
- package/vendor/mwi/lib/tools/edit.js +14 -15
- package/vendor/mwi/lib/tools/read.js +1 -1
- package/vendor/mwi/lib/tools/session.js +13 -9
- package/vendor/optix/templates/arya-optix-ipc/project/AryaNewHMIProject_IPC.optix +81 -81
- package/vendor/optix/templates/arya-optix-ipc/project/AryaNewHMIProject_IPC.optix.design +38 -38
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Alarms/Alarms.yaml +3 -3
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/AryaNewHMIProject_IPC.yaml +67 -67
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/CommDrivers/CommDrivers.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Converters/Converters.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/DataStores/DataStores.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Loggers/Loggers.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/MQTT/MQTT.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Model/Model.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/NetLogic/NetLogic.yaml +26 -26
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/OPC-UA/OPC-UA.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Recipes/Recipes.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Reports/Reports.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Retentivity/Retentivity.yaml +57 -57
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Security/Groups/Groups.yaml +3 -3
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Security/Roles/Roles.yaml +3 -3
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Security/Security.yaml +7 -7
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Security/Users/Users.yaml +3 -3
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/System/System.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Translations/Translations.yaml +16 -16
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/UI/Keyboards/Keyboards.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/UI/Screens/Screens.yaml +2 -2
- package/vendor/optix/templates/arya-optix-ipc/project/Nodes/UI/UI.yaml +250 -250
- package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/.vscode/launch.json +18 -18
- package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/AryaNewHMIProject_IPC.code-workspace +9 -9
- package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/AryaNewHMIProject_IPC.csproj +19 -19
- package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/AryaNewHMIProject_IPC.references +172 -172
- package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/AryaNewHMIProject_IPC.sln +21 -21
- package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/Private/TypeConstants.cs +20 -20
- package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/Private/UITypeDefinitions.cs +11 -11
- package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/StudioMCPBridge.cs +4340 -4340
- package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/UserDefinedModule.xml +26 -26
- package/vendor/optix/templates/arya-optix-panel/project/AryaNewHMIProject_OptixPanel.optix +97 -97
- package/vendor/optix/templates/arya-optix-panel/project/AryaNewHMIProject_OptixPanel.optix.design +38 -38
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Alarms/Alarms.yaml +3 -3
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/AryaNewHMIProject_OptixPanel.yaml +67 -67
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/CommDrivers/CommDrivers.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Converters/Converters.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/DataStores/DataStores.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Loggers/Loggers.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/MQTT/MQTT.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Model/Model.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/NetLogic/NetLogic.yaml +26 -26
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/OPC-UA/OPC-UA.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Recipes/Recipes.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Reports/Reports.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Retentivity/Retentivity.yaml +57 -57
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Security/Groups/Groups.yaml +3 -3
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Security/Roles/Roles.yaml +3 -3
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Security/Security.yaml +7 -7
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Security/Users/Users.yaml +3 -3
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/System/System.yaml +444 -444
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/Translations/Translations.yaml +81 -81
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/Keyboards/Keyboards.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/Screens/Screens.yaml +2 -2
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/DeviceSettingsWidget/DeviceSettingsWidget.yaml +163 -163
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/DeviceSettingsWidget/DeviceSettingsWidgetComponents/DeviceSettingsWidgetComponents.yaml +1663 -1663
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/FactoryTalkRemoteAccessWidget/FTRemoteAccessWidgetComponents/FTRemoteAccessWidgetComponents.yaml +2471 -2471
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/FactoryTalkRemoteAccessWidget/FactoryTalkRemoteAccessWidget.yaml +218 -218
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/NetworkSettingsWidget/NetworkSettingsWidget.yaml +524 -524
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/NetworkSettingsWidget/NetworkSettingsWidgetComponents/NetworkSettingsWidgetComponents.yaml +690 -690
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/SettingsWidgets.yaml +1265 -1265
- package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/UI.yaml +252 -252
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/.vscode/launch.json +18 -18
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/ApplicationNameLogic.cs +19 -19
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/AryaNewHMIProject_OptixPanel.code-workspace +9 -9
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/AryaNewHMIProject_OptixPanel.csproj +19 -19
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/AryaNewHMIProject_OptixPanel.references +172 -172
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/AryaNewHMIProject_OptixPanel.sln +21 -21
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/ConnectionSwitchLogic.cs +74 -74
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/DateAndTimeWidgetLogic.cs +420 -420
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/DeviceSettingsWidgetLogic.cs +34 -34
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/FTOptixStudioVersionLogic.cs +47 -47
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/FTRemoteAccessWidgetSetupLogic.cs +153 -153
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/IncomingConnectionApprovalLogic.cs +118 -118
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/IncomingConnectionReceiverLogic.cs +166 -166
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/NetworkConfiguratorEditModelsLogic.cs +56 -56
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/NetworkInterfaceLogic.cs +138 -138
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/NetworkInterfacesEditModelReaderLogic.cs +87 -87
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/NetworkInterfacesEditModelToSystemWriterLogic.cs +139 -139
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/NetworkSettingsLogic.cs +168 -168
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/Private/FTRemoteAccessWidgetDataObject.cs +106 -106
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/Private/TypeConstants.cs +37 -37
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/Private/UITypeDefinitions.cs +91 -91
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/RequestAssistanceSwitchLogic.cs +93 -93
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/StudioMCPBridge.cs +4340 -4340
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/SystemToNetworkInterfacesEditModelWriterLogic.cs +77 -77
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/UserDefinedModule.xml +111 -111
- package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/WarningIcon.svg +4 -4
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/__init__.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/block_interfaces.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/cfb.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/datatypes.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/declarations.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/errors.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/graphical_listing.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/grid.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/knowledge.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/mwt_bind.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/navigation.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/program_checks.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/project.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/staging.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/structure.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/task_bindings.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/tasks.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/tree.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/validation.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/variable_edit.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/variables.cpython-312.pyc +0 -0
- package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/workflow.cpython-312.pyc +0 -0
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
using System; using System.IO; using System.Reflection; using System.Reflection.Emit;
|
|
2
|
-
using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes;
|
|
3
|
-
using System.Collections.Generic;
|
|
4
|
-
public class MwSdkInteropImporter : ITypeLibImporterNotifySink {
|
|
5
|
-
[DllImport("oleaut32.dll",CharSet=CharSet.Unicode)] static extern int LoadTypeLibEx(string file,int kind,out ITypeLib lib);
|
|
6
|
-
readonly string directory; readonly Dictionary<string,Assembly> imports=new Dictionary<string,Assembly>();
|
|
7
|
-
public readonly List<string> Notices=new List<string>();
|
|
8
|
-
public MwSdkInteropImporter(string dir){directory=dir;}
|
|
9
|
-
public void ReportEvent(ImporterEventKind kind,int code,string text){if(kind!=ImporterEventKind.NOTIF_TYPECONVERTED)Notices.Add(kind+":"+code+":"+text);}
|
|
10
|
-
public Assembly ResolveRef(object lib){throw new InvalidOperationException("Untested SDK assembly reference");}
|
|
11
|
-
public Assembly Import(ITypeLib lib,string ns){
|
|
12
|
-
string name,doc,helpFile;int help;lib.GetDocumentation(-1,out name,out doc,out help,out helpFile);
|
|
13
|
-
name=System.Text.RegularExpressions.Regex.Replace(name,"[^A-Za-z0-9_]","_");
|
|
14
|
-
Assembly found;if(imports.TryGetValue(name,out found))return found;
|
|
15
|
-
var file=Path.Combine(directory,name+".dll");
|
|
16
|
-
if(File.Exists(file))throw new InvalidOperationException("Refusing existing generated assembly "+file);
|
|
17
|
-
var assembly=new TypeLibConverter().ConvertTypeLibToAssembly(lib,file,TypeLibImporterFlags.ImportAsX86,this,null,null,ns,null);
|
|
18
|
-
assembly.Save(Path.GetFileName(file));imports.Add(name,assembly);return assembly;
|
|
19
|
-
}
|
|
20
|
-
public static string[] Generate(string tlb,string directory){
|
|
21
|
-
ITypeLib lib;Marshal.ThrowExceptionForHR(LoadTypeLibEx(tlb,2,out lib));
|
|
22
|
-
var importer=new MwSdkInteropImporter(directory);var assembly=importer.Import(lib,"MwAdeGenerated");
|
|
23
|
-
var results=new List<string>();
|
|
24
|
-
foreach(var type in assembly.GetTypes())if(type.Name=="_Variables"||type.Name=="_Variable"){
|
|
25
|
-
results.Add(type.FullName+" GUID="+type.GUID);
|
|
26
|
-
foreach(var method in type.GetMethods())results.Add(method.ToString());
|
|
27
|
-
}
|
|
28
|
-
results.AddRange(importer.Notices);return results.ToArray();
|
|
29
|
-
}
|
|
30
|
-
}
|
|
1
|
+
using System; using System.IO; using System.Reflection; using System.Reflection.Emit;
|
|
2
|
+
using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes;
|
|
3
|
+
using System.Collections.Generic;
|
|
4
|
+
public class MwSdkInteropImporter : ITypeLibImporterNotifySink {
|
|
5
|
+
[DllImport("oleaut32.dll",CharSet=CharSet.Unicode)] static extern int LoadTypeLibEx(string file,int kind,out ITypeLib lib);
|
|
6
|
+
readonly string directory; readonly Dictionary<string,Assembly> imports=new Dictionary<string,Assembly>();
|
|
7
|
+
public readonly List<string> Notices=new List<string>();
|
|
8
|
+
public MwSdkInteropImporter(string dir){directory=dir;}
|
|
9
|
+
public void ReportEvent(ImporterEventKind kind,int code,string text){if(kind!=ImporterEventKind.NOTIF_TYPECONVERTED)Notices.Add(kind+":"+code+":"+text);}
|
|
10
|
+
public Assembly ResolveRef(object lib){throw new InvalidOperationException("Untested SDK assembly reference");}
|
|
11
|
+
public Assembly Import(ITypeLib lib,string ns){
|
|
12
|
+
string name,doc,helpFile;int help;lib.GetDocumentation(-1,out name,out doc,out help,out helpFile);
|
|
13
|
+
name=System.Text.RegularExpressions.Regex.Replace(name,"[^A-Za-z0-9_]","_");
|
|
14
|
+
Assembly found;if(imports.TryGetValue(name,out found))return found;
|
|
15
|
+
var file=Path.Combine(directory,name+".dll");
|
|
16
|
+
if(File.Exists(file))throw new InvalidOperationException("Refusing existing generated assembly "+file);
|
|
17
|
+
var assembly=new TypeLibConverter().ConvertTypeLibToAssembly(lib,file,TypeLibImporterFlags.ImportAsX86,this,null,null,ns,null);
|
|
18
|
+
assembly.Save(Path.GetFileName(file));imports.Add(name,assembly);return assembly;
|
|
19
|
+
}
|
|
20
|
+
public static string[] Generate(string tlb,string directory){
|
|
21
|
+
ITypeLib lib;Marshal.ThrowExceptionForHR(LoadTypeLibEx(tlb,2,out lib));
|
|
22
|
+
var importer=new MwSdkInteropImporter(directory);var assembly=importer.Import(lib,"MwAdeGenerated");
|
|
23
|
+
var results=new List<string>();
|
|
24
|
+
foreach(var type in assembly.GetTypes())if(type.Name=="_Variables"||type.Name=="_Variable"){
|
|
25
|
+
results.Add(type.FullName+" GUID="+type.GUID);
|
|
26
|
+
foreach(var method in type.GetMethods())results.Add(method.ToString());
|
|
27
|
+
}
|
|
28
|
+
results.AddRange(importer.Notices);return results.ToArray();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
using System;
|
|
2
|
-
using System.Collections.Generic;
|
|
3
|
-
using MwAdeGenerated;
|
|
4
|
-
public static class MwSdkVariableReader {
|
|
5
|
-
static object Optional(string value){return String.IsNullOrEmpty(value)?null:value;}
|
|
6
|
-
public static Dictionary<string,object>[] Read(object source){
|
|
7
|
-
var vars=(_Variables)source;int count=vars.Count;
|
|
8
|
-
var result=new List<Dictionary<string,object>>();
|
|
9
|
-
var sections=new Dictionary<int,string>{{1,"VAR"},{2,"VAR_INPUT"},{3,"VAR_OUTPUT"},{4,"VAR_IN_OUT"},{5,"VAR_EXTERNAL"},{6,"VAR_GLOBAL"}};
|
|
10
|
-
for(int n=1;n<=count;n++){
|
|
11
|
-
var v=(_Variable)vars.Item(n);string section;
|
|
12
|
-
if(!sections.TryGetValue((int)v.BlockType,out section))throw new InvalidOperationException("Unsupported native declaration usage");
|
|
13
|
-
result.Add(new Dictionary<string,object>{
|
|
14
|
-
{"name",v.Name},{"type",v.DataType},{"section",section},{"group",v.Group.Name},
|
|
15
|
-
{"address",Optional(v.IecAddress)},{"initial_value",Optional(v.InitialValue)},{"description",Optional(v.Comment)},
|
|
16
|
-
{"retain",v.Retain},{"pdd",v.PDD},{"opc",v.OPC},{"disabled",v.Disabled},{"not_on_plc",v.NotOnPlc},{"redundant",v.Redundant}
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
if(vars.Count!=count)throw new InvalidOperationException("Native declaration count changed during inspection");
|
|
20
|
-
return result.ToArray();
|
|
21
|
-
}
|
|
22
|
-
}
|
|
1
|
+
using System;
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using MwAdeGenerated;
|
|
4
|
+
public static class MwSdkVariableReader {
|
|
5
|
+
static object Optional(string value){return String.IsNullOrEmpty(value)?null:value;}
|
|
6
|
+
public static Dictionary<string,object>[] Read(object source){
|
|
7
|
+
var vars=(_Variables)source;int count=vars.Count;
|
|
8
|
+
var result=new List<Dictionary<string,object>>();
|
|
9
|
+
var sections=new Dictionary<int,string>{{1,"VAR"},{2,"VAR_INPUT"},{3,"VAR_OUTPUT"},{4,"VAR_IN_OUT"},{5,"VAR_EXTERNAL"},{6,"VAR_GLOBAL"}};
|
|
10
|
+
for(int n=1;n<=count;n++){
|
|
11
|
+
var v=(_Variable)vars.Item(n);string section;
|
|
12
|
+
if(!sections.TryGetValue((int)v.BlockType,out section))throw new InvalidOperationException("Unsupported native declaration usage");
|
|
13
|
+
result.Add(new Dictionary<string,object>{
|
|
14
|
+
{"name",v.Name},{"type",v.DataType},{"section",section},{"group",v.Group.Name},
|
|
15
|
+
{"address",Optional(v.IecAddress)},{"initial_value",Optional(v.InitialValue)},{"description",Optional(v.Comment)},
|
|
16
|
+
{"retain",v.Retain},{"pdd",v.PDD},{"opc",v.OPC},{"disabled",v.Disabled},{"not_on_plc",v.NotOnPlc},{"redundant",v.Redundant}
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
if(vars.Count!=count)throw new InvalidOperationException("Native declaration count changed during inspection");
|
|
20
|
+
return result.ToArray();
|
|
21
|
+
}
|
|
22
|
+
}
|