@aryacode/dsh-engineering 0.4.6 → 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.
Files changed (161) hide show
  1. package/CHANGELOG.md +199 -0
  2. package/README.md +37 -26
  3. package/cordis.patch.yml +7 -6
  4. package/entries/config.js +62 -0
  5. package/entries/ftview.js +5 -4
  6. package/entries/l5x.js +61 -13
  7. package/entries/mwi.js +26 -6
  8. package/entries/optix.js +105 -0
  9. package/lib/client.js +335 -6
  10. package/package.json +11 -10
  11. package/vendor/l5x/README.md +27 -5
  12. package/vendor/l5x/studio-bridge/NuGet.Config +1 -1
  13. package/vendor/mwi/README.md +39 -18
  14. package/vendor/mwi/SKILL.md +26 -20
  15. package/vendor/mwi/bridge/mw_bridge.ps1 +2763 -2763
  16. package/vendor/mwi/bridge/sdk-interop-importer.cs +30 -30
  17. package/vendor/mwi/bridge/sdk-variable-reader.cs +22 -22
  18. package/vendor/mwi/code/engine/motionworks_iec_mcp/build.py +339 -339
  19. package/vendor/mwi/code/engine/motionworks_iec_mcp/cfb.py +765 -765
  20. package/vendor/mwi/code/engine/motionworks_iec_mcp/declarations.py +399 -399
  21. package/vendor/mwi/code/engine/motionworks_iec_mcp/ide.py +313 -313
  22. package/vendor/mwi/code/engine/motionworks_iec_mcp/manuals.py +520 -520
  23. package/vendor/mwi/code/engine/motionworks_iec_mcp/mwt_bind.py +133 -133
  24. package/vendor/mwi/code/engine/motionworks_iec_mcp/reference_data/catalog.json +672 -672
  25. package/vendor/mwi/code/engine/motionworks_iec_mcp/reference_data/patterns.json +86 -86
  26. package/vendor/mwi/code/engine/motionworks_iec_mcp/restore.py +208 -208
  27. package/vendor/mwi/code/engine/motionworks_iec_mcp/staging.py +128 -128
  28. package/vendor/mwi/code/engine/motionworks_iec_mcp/stlint.py +673 -673
  29. package/vendor/mwi/code/engine/motionworks_iec_mcp/tree_writer.py +790 -790
  30. package/vendor/mwi/code/engine/motionworks_iec_mcp/writer.py +642 -642
  31. package/vendor/mwi/lib/core/code-engine.d.ts +13 -0
  32. package/vendor/mwi/lib/core/code-engine.js +18 -1
  33. package/vendor/mwi/lib/edit.d.ts +1 -1
  34. package/vendor/mwi/lib/edit.js +1 -1
  35. package/vendor/mwi/lib/read/service.js +8 -1
  36. package/vendor/mwi/lib/session/backup.d.ts +55 -0
  37. package/vendor/mwi/lib/session/backup.js +232 -0
  38. package/vendor/mwi/lib/session/project.d.ts +4 -1
  39. package/vendor/mwi/lib/session/project.js +13 -2
  40. package/vendor/mwi/lib/session/service.d.ts +13 -6
  41. package/vendor/mwi/lib/session/service.js +127 -36
  42. package/vendor/mwi/lib/session/workspace.d.ts +10 -0
  43. package/vendor/mwi/lib/session/workspace.js +53 -3
  44. package/vendor/mwi/lib/skill.d.ts +2 -2
  45. package/vendor/mwi/lib/skill.js +2 -2
  46. package/vendor/mwi/lib/tools/edit.d.ts +3 -3
  47. package/vendor/mwi/lib/tools/edit.js +14 -15
  48. package/vendor/mwi/lib/tools/read.js +1 -1
  49. package/vendor/mwi/lib/tools/session.js +13 -9
  50. package/vendor/optix/templates/arya-optix-ipc/project/AryaNewHMIProject_IPC.optix +81 -81
  51. package/vendor/optix/templates/arya-optix-ipc/project/AryaNewHMIProject_IPC.optix.design +38 -38
  52. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Alarms/Alarms.yaml +3 -3
  53. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/AryaNewHMIProject_IPC.yaml +67 -67
  54. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/CommDrivers/CommDrivers.yaml +2 -2
  55. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Converters/Converters.yaml +2 -2
  56. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/DataStores/DataStores.yaml +2 -2
  57. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Loggers/Loggers.yaml +2 -2
  58. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/MQTT/MQTT.yaml +2 -2
  59. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Model/Model.yaml +2 -2
  60. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/NetLogic/NetLogic.yaml +26 -26
  61. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/OPC-UA/OPC-UA.yaml +2 -2
  62. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Recipes/Recipes.yaml +2 -2
  63. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Reports/Reports.yaml +2 -2
  64. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Retentivity/Retentivity.yaml +57 -57
  65. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Security/Groups/Groups.yaml +3 -3
  66. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Security/Roles/Roles.yaml +3 -3
  67. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Security/Security.yaml +7 -7
  68. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Security/Users/Users.yaml +3 -3
  69. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/System/System.yaml +2 -2
  70. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/Translations/Translations.yaml +16 -16
  71. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/UI/Keyboards/Keyboards.yaml +2 -2
  72. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/UI/Screens/Screens.yaml +2 -2
  73. package/vendor/optix/templates/arya-optix-ipc/project/Nodes/UI/UI.yaml +250 -250
  74. package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/.vscode/launch.json +18 -18
  75. package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/AryaNewHMIProject_IPC.code-workspace +9 -9
  76. package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/AryaNewHMIProject_IPC.csproj +19 -19
  77. package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/AryaNewHMIProject_IPC.references +172 -172
  78. package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/AryaNewHMIProject_IPC.sln +21 -21
  79. package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/Private/TypeConstants.cs +20 -20
  80. package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/Private/UITypeDefinitions.cs +11 -11
  81. package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/NetSolution/StudioMCPBridge.cs +4340 -4340
  82. package/vendor/optix/templates/arya-optix-ipc/project/ProjectFiles/UserDefinedModule.xml +26 -26
  83. package/vendor/optix/templates/arya-optix-panel/project/AryaNewHMIProject_OptixPanel.optix +97 -97
  84. package/vendor/optix/templates/arya-optix-panel/project/AryaNewHMIProject_OptixPanel.optix.design +38 -38
  85. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Alarms/Alarms.yaml +3 -3
  86. package/vendor/optix/templates/arya-optix-panel/project/Nodes/AryaNewHMIProject_OptixPanel.yaml +67 -67
  87. package/vendor/optix/templates/arya-optix-panel/project/Nodes/CommDrivers/CommDrivers.yaml +2 -2
  88. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Converters/Converters.yaml +2 -2
  89. package/vendor/optix/templates/arya-optix-panel/project/Nodes/DataStores/DataStores.yaml +2 -2
  90. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Loggers/Loggers.yaml +2 -2
  91. package/vendor/optix/templates/arya-optix-panel/project/Nodes/MQTT/MQTT.yaml +2 -2
  92. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Model/Model.yaml +2 -2
  93. package/vendor/optix/templates/arya-optix-panel/project/Nodes/NetLogic/NetLogic.yaml +26 -26
  94. package/vendor/optix/templates/arya-optix-panel/project/Nodes/OPC-UA/OPC-UA.yaml +2 -2
  95. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Recipes/Recipes.yaml +2 -2
  96. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Reports/Reports.yaml +2 -2
  97. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Retentivity/Retentivity.yaml +57 -57
  98. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Security/Groups/Groups.yaml +3 -3
  99. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Security/Roles/Roles.yaml +3 -3
  100. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Security/Security.yaml +7 -7
  101. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Security/Users/Users.yaml +3 -3
  102. package/vendor/optix/templates/arya-optix-panel/project/Nodes/System/System.yaml +444 -444
  103. package/vendor/optix/templates/arya-optix-panel/project/Nodes/Translations/Translations.yaml +81 -81
  104. package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/Keyboards/Keyboards.yaml +2 -2
  105. package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/Screens/Screens.yaml +2 -2
  106. package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/DeviceSettingsWidget/DeviceSettingsWidget.yaml +163 -163
  107. package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/DeviceSettingsWidget/DeviceSettingsWidgetComponents/DeviceSettingsWidgetComponents.yaml +1663 -1663
  108. package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/FactoryTalkRemoteAccessWidget/FTRemoteAccessWidgetComponents/FTRemoteAccessWidgetComponents.yaml +2471 -2471
  109. package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/FactoryTalkRemoteAccessWidget/FactoryTalkRemoteAccessWidget.yaml +218 -218
  110. package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/NetworkSettingsWidget/NetworkSettingsWidget.yaml +524 -524
  111. package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/NetworkSettingsWidget/NetworkSettingsWidgetComponents/NetworkSettingsWidgetComponents.yaml +690 -690
  112. package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/SettingsWidgets/SettingsWidgets.yaml +1265 -1265
  113. package/vendor/optix/templates/arya-optix-panel/project/Nodes/UI/UI.yaml +252 -252
  114. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/.vscode/launch.json +18 -18
  115. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/ApplicationNameLogic.cs +19 -19
  116. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/AryaNewHMIProject_OptixPanel.code-workspace +9 -9
  117. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/AryaNewHMIProject_OptixPanel.csproj +19 -19
  118. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/AryaNewHMIProject_OptixPanel.references +172 -172
  119. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/AryaNewHMIProject_OptixPanel.sln +21 -21
  120. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/ConnectionSwitchLogic.cs +74 -74
  121. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/DateAndTimeWidgetLogic.cs +420 -420
  122. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/DeviceSettingsWidgetLogic.cs +34 -34
  123. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/FTOptixStudioVersionLogic.cs +47 -47
  124. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/FTRemoteAccessWidgetSetupLogic.cs +153 -153
  125. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/IncomingConnectionApprovalLogic.cs +118 -118
  126. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/IncomingConnectionReceiverLogic.cs +166 -166
  127. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/NetworkConfiguratorEditModelsLogic.cs +56 -56
  128. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/NetworkInterfaceLogic.cs +138 -138
  129. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/NetworkInterfacesEditModelReaderLogic.cs +87 -87
  130. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/NetworkInterfacesEditModelToSystemWriterLogic.cs +139 -139
  131. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/NetworkSettingsLogic.cs +168 -168
  132. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/Private/FTRemoteAccessWidgetDataObject.cs +106 -106
  133. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/Private/TypeConstants.cs +37 -37
  134. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/Private/UITypeDefinitions.cs +91 -91
  135. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/RequestAssistanceSwitchLogic.cs +93 -93
  136. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/StudioMCPBridge.cs +4340 -4340
  137. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/NetSolution/SystemToNetworkInterfacesEditModelWriterLogic.cs +77 -77
  138. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/UserDefinedModule.xml +111 -111
  139. package/vendor/optix/templates/arya-optix-panel/project/ProjectFiles/WarningIcon.svg +4 -4
  140. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/__init__.cpython-312.pyc +0 -0
  141. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/block_interfaces.cpython-312.pyc +0 -0
  142. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/cfb.cpython-312.pyc +0 -0
  143. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/datatypes.cpython-312.pyc +0 -0
  144. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/declarations.cpython-312.pyc +0 -0
  145. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/errors.cpython-312.pyc +0 -0
  146. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/graphical_listing.cpython-312.pyc +0 -0
  147. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/grid.cpython-312.pyc +0 -0
  148. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/knowledge.cpython-312.pyc +0 -0
  149. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/mwt_bind.cpython-312.pyc +0 -0
  150. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/navigation.cpython-312.pyc +0 -0
  151. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/program_checks.cpython-312.pyc +0 -0
  152. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/project.cpython-312.pyc +0 -0
  153. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/staging.cpython-312.pyc +0 -0
  154. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/structure.cpython-312.pyc +0 -0
  155. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/task_bindings.cpython-312.pyc +0 -0
  156. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/tasks.cpython-312.pyc +0 -0
  157. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/tree.cpython-312.pyc +0 -0
  158. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/validation.cpython-312.pyc +0 -0
  159. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/variable_edit.cpython-312.pyc +0 -0
  160. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/variables.cpython-312.pyc +0 -0
  161. package/vendor/mwi/code/engine/motionworks_iec_mcp/__pycache__/workflow.cpython-312.pyc +0 -0
@@ -1,118 +1,118 @@
1
- #region Using directives
2
- using UAManagedCore;
3
- using FTOptix.NetLogic;
4
- using FTOptix.System;
5
- #endregion
6
-
7
- public class IncomingConnectionApprovalLogic : BaseNetLogic
8
- {
9
- private const string LOG_CATEGORY = nameof(IncomingConnectionApprovalLogic);
10
-
11
- public override void Start()
12
- {
13
- ftRemoteAccessWidgetDataObject = LogicObject.GetAlias("FTRemoteAccessWidgetDataObject") as FTRemoteAccessWidgetDataObject;
14
- if (ftRemoteAccessWidgetDataObject == null)
15
- {
16
- Log.Error(LOG_CATEGORY, "FTRemoteAccessWidgetDataObject" + notDefinedMessage);
17
- return;
18
- }
19
-
20
- ftRemoteAccessNode = ftRemoteAccessWidgetDataObject.Context.GetNode(ftRemoteAccessWidgetDataObject.FTRemoteAccessNode) as FTRemoteAccess;
21
- if (ftRemoteAccessNode == null)
22
- {
23
- Log.Error(LOG_CATEGORY, "FTRemoteAccessNode" + notDefinedMessage);
24
- return;
25
- }
26
-
27
- connectionPendingVariable = ftRemoteAccessNode.GetVariable(connectionPendingVariableName);
28
- if (connectionPendingVariable == null)
29
- {
30
- Log.Error(LOG_CATEGORY, connectionPendingVariableName + notDefinedMessage);
31
- return;
32
- }
33
- }
34
-
35
- public override void Stop()
36
- {
37
- // destruct class objects
38
- ftRemoteAccessNode = null;
39
- ftRemoteAccessWidgetDataObject = null;
40
- connectionPendingVariable = null;
41
- }
42
-
43
- [ExportMethod]
44
- public void AcceptIncomingConnection()
45
- {
46
- if (ftRemoteAccessWidgetDataObject == null)
47
- {
48
- Log.Error(LOG_CATEGORY, "FTRemoteAccessWidgetDataObject" + notDefinedMessage);
49
- return;
50
- }
51
-
52
- if (ftRemoteAccessNode == null)
53
- {
54
- Log.Error(LOG_CATEGORY, "FTRemoteAccessNode" + notDefinedMessage);
55
- return;
56
- }
57
-
58
- if (connectionPendingVariable == null)
59
- {
60
- Log.Error(LOG_CATEGORY, connectionPendingVariableName + notDefinedMessage);
61
- return;
62
- }
63
-
64
- var result = ftRemoteAccessNode.ApproveIncomingRemoteConnection(ftRemoteAccessWidgetDataObject.SupervisorId);
65
- if (result == IncomingRemoteConnectionApprovalResult.Success)
66
- {
67
- connectionPendingVariable.Value = false;
68
- }
69
- else if (result == IncomingRemoteConnectionApprovalResult.NoConnectionToApprove)
70
- {
71
- Log.Info(LOG_CATEGORY, "Connection request has already been handled.");
72
- connectionPendingVariable.Value = false;
73
- }
74
- else
75
- Log.Error(LOG_CATEGORY, "Failed to accept connection request. FTRemoteAccess runtime is not connected.");
76
- }
77
-
78
- [ExportMethod]
79
- public void DenyIncomingConnection()
80
- {
81
- if (ftRemoteAccessWidgetDataObject == null)
82
- {
83
- Log.Error(LOG_CATEGORY, "FTRemoteAccessWidgetDataObject" + notDefinedMessage);
84
- return;
85
- }
86
-
87
- if (ftRemoteAccessNode == null)
88
- {
89
- Log.Error(LOG_CATEGORY, "FTRemoteAccessNode" + notDefinedMessage);
90
- return;
91
- }
92
-
93
- if (connectionPendingVariable == null)
94
- {
95
- Log.Error(LOG_CATEGORY, connectionPendingVariableName + notDefinedMessage);
96
- return;
97
- }
98
-
99
- var result = ftRemoteAccessNode.DenyIncomingRemoteConnection(ftRemoteAccessWidgetDataObject.SupervisorId);
100
- if (result == IncomingRemoteConnectionApprovalResult.Success)
101
- {
102
- connectionPendingVariable.Value = false;
103
- }
104
- else if (result == IncomingRemoteConnectionApprovalResult.NoConnectionToApprove)
105
- {
106
- Log.Info(LOG_CATEGORY, "Connection request has already been handled.");
107
- connectionPendingVariable.Value = false;
108
- }
109
- else
110
- Log.Error(LOG_CATEGORY, "Failed to deny connection request. FTRemoteAccess runtime is not connected.");
111
- }
112
-
113
- private FTRemoteAccessWidgetDataObject ftRemoteAccessWidgetDataObject;
114
- private FTRemoteAccess ftRemoteAccessNode;
115
- private IUAVariable connectionPendingVariable;
116
- private const string connectionPendingVariableName = "FTRemoteAccessWidgetConnectionPending";
117
- private const string notDefinedMessage = " is not defined.";
118
- }
1
+ #region Using directives
2
+ using UAManagedCore;
3
+ using FTOptix.NetLogic;
4
+ using FTOptix.System;
5
+ #endregion
6
+
7
+ public class IncomingConnectionApprovalLogic : BaseNetLogic
8
+ {
9
+ private const string LOG_CATEGORY = nameof(IncomingConnectionApprovalLogic);
10
+
11
+ public override void Start()
12
+ {
13
+ ftRemoteAccessWidgetDataObject = LogicObject.GetAlias("FTRemoteAccessWidgetDataObject") as FTRemoteAccessWidgetDataObject;
14
+ if (ftRemoteAccessWidgetDataObject == null)
15
+ {
16
+ Log.Error(LOG_CATEGORY, "FTRemoteAccessWidgetDataObject" + notDefinedMessage);
17
+ return;
18
+ }
19
+
20
+ ftRemoteAccessNode = ftRemoteAccessWidgetDataObject.Context.GetNode(ftRemoteAccessWidgetDataObject.FTRemoteAccessNode) as FTRemoteAccess;
21
+ if (ftRemoteAccessNode == null)
22
+ {
23
+ Log.Error(LOG_CATEGORY, "FTRemoteAccessNode" + notDefinedMessage);
24
+ return;
25
+ }
26
+
27
+ connectionPendingVariable = ftRemoteAccessNode.GetVariable(connectionPendingVariableName);
28
+ if (connectionPendingVariable == null)
29
+ {
30
+ Log.Error(LOG_CATEGORY, connectionPendingVariableName + notDefinedMessage);
31
+ return;
32
+ }
33
+ }
34
+
35
+ public override void Stop()
36
+ {
37
+ // destruct class objects
38
+ ftRemoteAccessNode = null;
39
+ ftRemoteAccessWidgetDataObject = null;
40
+ connectionPendingVariable = null;
41
+ }
42
+
43
+ [ExportMethod]
44
+ public void AcceptIncomingConnection()
45
+ {
46
+ if (ftRemoteAccessWidgetDataObject == null)
47
+ {
48
+ Log.Error(LOG_CATEGORY, "FTRemoteAccessWidgetDataObject" + notDefinedMessage);
49
+ return;
50
+ }
51
+
52
+ if (ftRemoteAccessNode == null)
53
+ {
54
+ Log.Error(LOG_CATEGORY, "FTRemoteAccessNode" + notDefinedMessage);
55
+ return;
56
+ }
57
+
58
+ if (connectionPendingVariable == null)
59
+ {
60
+ Log.Error(LOG_CATEGORY, connectionPendingVariableName + notDefinedMessage);
61
+ return;
62
+ }
63
+
64
+ var result = ftRemoteAccessNode.ApproveIncomingRemoteConnection(ftRemoteAccessWidgetDataObject.SupervisorId);
65
+ if (result == IncomingRemoteConnectionApprovalResult.Success)
66
+ {
67
+ connectionPendingVariable.Value = false;
68
+ }
69
+ else if (result == IncomingRemoteConnectionApprovalResult.NoConnectionToApprove)
70
+ {
71
+ Log.Info(LOG_CATEGORY, "Connection request has already been handled.");
72
+ connectionPendingVariable.Value = false;
73
+ }
74
+ else
75
+ Log.Error(LOG_CATEGORY, "Failed to accept connection request. FTRemoteAccess runtime is not connected.");
76
+ }
77
+
78
+ [ExportMethod]
79
+ public void DenyIncomingConnection()
80
+ {
81
+ if (ftRemoteAccessWidgetDataObject == null)
82
+ {
83
+ Log.Error(LOG_CATEGORY, "FTRemoteAccessWidgetDataObject" + notDefinedMessage);
84
+ return;
85
+ }
86
+
87
+ if (ftRemoteAccessNode == null)
88
+ {
89
+ Log.Error(LOG_CATEGORY, "FTRemoteAccessNode" + notDefinedMessage);
90
+ return;
91
+ }
92
+
93
+ if (connectionPendingVariable == null)
94
+ {
95
+ Log.Error(LOG_CATEGORY, connectionPendingVariableName + notDefinedMessage);
96
+ return;
97
+ }
98
+
99
+ var result = ftRemoteAccessNode.DenyIncomingRemoteConnection(ftRemoteAccessWidgetDataObject.SupervisorId);
100
+ if (result == IncomingRemoteConnectionApprovalResult.Success)
101
+ {
102
+ connectionPendingVariable.Value = false;
103
+ }
104
+ else if (result == IncomingRemoteConnectionApprovalResult.NoConnectionToApprove)
105
+ {
106
+ Log.Info(LOG_CATEGORY, "Connection request has already been handled.");
107
+ connectionPendingVariable.Value = false;
108
+ }
109
+ else
110
+ Log.Error(LOG_CATEGORY, "Failed to deny connection request. FTRemoteAccess runtime is not connected.");
111
+ }
112
+
113
+ private FTRemoteAccessWidgetDataObject ftRemoteAccessWidgetDataObject;
114
+ private FTRemoteAccess ftRemoteAccessNode;
115
+ private IUAVariable connectionPendingVariable;
116
+ private const string connectionPendingVariableName = "FTRemoteAccessWidgetConnectionPending";
117
+ private const string notDefinedMessage = " is not defined.";
118
+ }
@@ -1,166 +1,166 @@
1
- #region Using directives
2
- using UAManagedCore;
3
- using FTOptix.System;
4
- using FTOptix.NetLogic;
5
- #endregion
6
-
7
- public class IncomingConnectionReceiverLogic : BaseNetLogic
8
- {
9
- private const string LOG_CATEGORY = nameof(IncomingConnectionReceiverLogic);
10
-
11
- public override void Start()
12
- {
13
- bool cancelStart = false;
14
-
15
- ftRemoteAccessWidgetDataObject = Owner.Get<FTRemoteAccessWidgetDataObject>("FTRemoteAccessWidgetDataObject");
16
- if (ftRemoteAccessWidgetDataObject == null)
17
- {
18
- Log.Error(LOG_CATEGORY, "FTRemoteAccessWidgetDataObject" + notDefinedMessage);
19
- return;
20
- }
21
-
22
- ftRemoteAccessNode = ftRemoteAccessWidgetDataObject.Context.GetNode(ftRemoteAccessWidgetDataObject.FTRemoteAccessNode) as FTRemoteAccess;
23
- if (ftRemoteAccessNode == null)
24
- {
25
- Log.Error(LOG_CATEGORY, "FTRemoteAccessNode" + notDefinedMessage);
26
- return;
27
- }
28
-
29
- connectionPendingVariable = ftRemoteAccessNode.GetVariable(connectionPendingVariableName);
30
- if (connectionPendingVariable == null)
31
- {
32
- Log.Error(LOG_CATEGORY, connectionPendingVariableName + notDefinedMessage);
33
- cancelStart = true;
34
- }
35
-
36
- usernameVariable = ftRemoteAccessNode.GetVariable(usernameVariableName);
37
- if (usernameVariable == null)
38
- {
39
- Log.Error(LOG_CATEGORY, usernameVariableName + notDefinedMessage);
40
- cancelStart = true;
41
- }
42
-
43
- ipAddressVariable = ftRemoteAccessNode.GetVariable(ipAddressVariableName);
44
- if (ipAddressVariable == null)
45
- {
46
- Log.Error(LOG_CATEGORY, ipAddressVariableName + notDefinedMessage);
47
- cancelStart = true;
48
- }
49
-
50
- supervisorIdVariable = ftRemoteAccessNode.GetVariable(supervisorIdVariableName);
51
- if (supervisorIdVariable == null)
52
- {
53
- Log.Error(LOG_CATEGORY, supervisorIdVariableName + notDefinedMessage);
54
- cancelStart = true;
55
- }
56
-
57
- if (cancelStart)
58
- {
59
- DestroyClassFields();
60
- return;
61
- }
62
-
63
- //handle the case where an incoming connection request may already be pending at startup of the widget
64
- SetFTRemoteAccessWidgetDataObjectValues(connectionPendingVariable.Value);
65
-
66
- connectionPendingVariable.VariableChange += HandleConnectionPendingVariableChangedEvent;
67
- }
68
-
69
- public override void Stop()
70
- {
71
- if (connectionPendingVariable != null)
72
- connectionPendingVariable.VariableChange -= HandleConnectionPendingVariableChangedEvent;
73
-
74
- DestroyClassFields();
75
- }
76
-
77
- private void DestroyClassFields()
78
- {
79
- ftRemoteAccessNode = null;
80
- ftRemoteAccessWidgetDataObject = null;
81
- connectionPendingVariable = null;
82
- usernameVariable = null;
83
- ipAddressVariable = null;
84
- supervisorIdVariable = null;
85
- }
86
-
87
- private void HandleConnectionPendingVariableChangedEvent(object sender, VariableChangeEventArgs args)
88
- {
89
- if (ftRemoteAccessWidgetDataObject == null)
90
- {
91
- Log.Error(LOG_CATEGORY, "FTRemoteAccessWidgetDataObject" + notDefinedMessage);
92
- return;
93
- }
94
-
95
- if (ftRemoteAccessNode == null)
96
- {
97
- Log.Error(LOG_CATEGORY, "FTRemoteAccessNode" + notDefinedMessage);
98
- }
99
-
100
- SetFTRemoteAccessWidgetDataObjectValues(args.NewValue);
101
- }
102
-
103
- private void SetFTRemoteAccessWidgetDataObjectValues(bool requestPending)
104
- {
105
- bool undefinedVars = false;
106
-
107
- if (requestPending)
108
- {
109
- string userNameValue = usernameVariable.Value;
110
- if (!string.IsNullOrEmpty(userNameValue))
111
- ftRemoteAccessWidgetDataObject.Username = userNameValue;
112
- else
113
- {
114
- Log.Error(LOG_CATEGORY, usernameVariableName + noValueMessage);
115
- undefinedVars = true;
116
- }
117
-
118
- string ipAddressValue = ipAddressVariable.Value;
119
- if (!string.IsNullOrEmpty(ipAddressValue))
120
- ftRemoteAccessWidgetDataObject.IpAddress = ipAddressVariable.Value;
121
- else
122
- {
123
- Log.Error(LOG_CATEGORY, ipAddressVariableName + noValueMessage);
124
- undefinedVars = true;
125
- }
126
-
127
- ByteString supervisorIdValue = supervisorIdVariable.Value;
128
- if (!supervisorIdValue.IsEmpty)
129
- ftRemoteAccessWidgetDataObject.SupervisorId = supervisorIdValue;
130
- else
131
- {
132
- Log.Error(LOG_CATEGORY, supervisorIdVariableName + noValueMessage);
133
- undefinedVars = true;
134
- }
135
- }
136
- else
137
- {
138
- usernameVariable.Value = ftRemoteAccessWidgetDataObject.Username = string.Empty;
139
- ipAddressVariable.Value = ftRemoteAccessWidgetDataObject.IpAddress = string.Empty;
140
- supervisorIdVariable.Value = ftRemoteAccessWidgetDataObject.SupervisorId = ByteString.Empty;
141
- }
142
-
143
- if (requestPending && !undefinedVars)
144
- {
145
- ftRemoteAccessWidgetDataObject.IncomingConnectionRequest = true;
146
- }
147
- else
148
- {
149
- connectionPendingVariable.Value = false;
150
- ftRemoteAccessWidgetDataObject.IncomingConnectionRequest = false;
151
- }
152
- }
153
-
154
- private FTRemoteAccessWidgetDataObject ftRemoteAccessWidgetDataObject;
155
- private FTRemoteAccess ftRemoteAccessNode;
156
- private IUAVariable connectionPendingVariable;
157
- private IUAVariable usernameVariable;
158
- private IUAVariable ipAddressVariable;
159
- private IUAVariable supervisorIdVariable;
160
- private const string usernameVariableName = "FTRemoteAccessWidgetUsername";
161
- private const string ipAddressVariableName = "FTRemoteAccessWidgetIPAddress";
162
- private const string supervisorIdVariableName = "FTRemoteAccessWidgetSupervisorId";
163
- private const string connectionPendingVariableName = "FTRemoteAccessWidgetConnectionPending";
164
- private const string noValueMessage = " has no value.";
165
- private const string notDefinedMessage = " is not defined.";
166
- }
1
+ #region Using directives
2
+ using UAManagedCore;
3
+ using FTOptix.System;
4
+ using FTOptix.NetLogic;
5
+ #endregion
6
+
7
+ public class IncomingConnectionReceiverLogic : BaseNetLogic
8
+ {
9
+ private const string LOG_CATEGORY = nameof(IncomingConnectionReceiverLogic);
10
+
11
+ public override void Start()
12
+ {
13
+ bool cancelStart = false;
14
+
15
+ ftRemoteAccessWidgetDataObject = Owner.Get<FTRemoteAccessWidgetDataObject>("FTRemoteAccessWidgetDataObject");
16
+ if (ftRemoteAccessWidgetDataObject == null)
17
+ {
18
+ Log.Error(LOG_CATEGORY, "FTRemoteAccessWidgetDataObject" + notDefinedMessage);
19
+ return;
20
+ }
21
+
22
+ ftRemoteAccessNode = ftRemoteAccessWidgetDataObject.Context.GetNode(ftRemoteAccessWidgetDataObject.FTRemoteAccessNode) as FTRemoteAccess;
23
+ if (ftRemoteAccessNode == null)
24
+ {
25
+ Log.Error(LOG_CATEGORY, "FTRemoteAccessNode" + notDefinedMessage);
26
+ return;
27
+ }
28
+
29
+ connectionPendingVariable = ftRemoteAccessNode.GetVariable(connectionPendingVariableName);
30
+ if (connectionPendingVariable == null)
31
+ {
32
+ Log.Error(LOG_CATEGORY, connectionPendingVariableName + notDefinedMessage);
33
+ cancelStart = true;
34
+ }
35
+
36
+ usernameVariable = ftRemoteAccessNode.GetVariable(usernameVariableName);
37
+ if (usernameVariable == null)
38
+ {
39
+ Log.Error(LOG_CATEGORY, usernameVariableName + notDefinedMessage);
40
+ cancelStart = true;
41
+ }
42
+
43
+ ipAddressVariable = ftRemoteAccessNode.GetVariable(ipAddressVariableName);
44
+ if (ipAddressVariable == null)
45
+ {
46
+ Log.Error(LOG_CATEGORY, ipAddressVariableName + notDefinedMessage);
47
+ cancelStart = true;
48
+ }
49
+
50
+ supervisorIdVariable = ftRemoteAccessNode.GetVariable(supervisorIdVariableName);
51
+ if (supervisorIdVariable == null)
52
+ {
53
+ Log.Error(LOG_CATEGORY, supervisorIdVariableName + notDefinedMessage);
54
+ cancelStart = true;
55
+ }
56
+
57
+ if (cancelStart)
58
+ {
59
+ DestroyClassFields();
60
+ return;
61
+ }
62
+
63
+ //handle the case where an incoming connection request may already be pending at startup of the widget
64
+ SetFTRemoteAccessWidgetDataObjectValues(connectionPendingVariable.Value);
65
+
66
+ connectionPendingVariable.VariableChange += HandleConnectionPendingVariableChangedEvent;
67
+ }
68
+
69
+ public override void Stop()
70
+ {
71
+ if (connectionPendingVariable != null)
72
+ connectionPendingVariable.VariableChange -= HandleConnectionPendingVariableChangedEvent;
73
+
74
+ DestroyClassFields();
75
+ }
76
+
77
+ private void DestroyClassFields()
78
+ {
79
+ ftRemoteAccessNode = null;
80
+ ftRemoteAccessWidgetDataObject = null;
81
+ connectionPendingVariable = null;
82
+ usernameVariable = null;
83
+ ipAddressVariable = null;
84
+ supervisorIdVariable = null;
85
+ }
86
+
87
+ private void HandleConnectionPendingVariableChangedEvent(object sender, VariableChangeEventArgs args)
88
+ {
89
+ if (ftRemoteAccessWidgetDataObject == null)
90
+ {
91
+ Log.Error(LOG_CATEGORY, "FTRemoteAccessWidgetDataObject" + notDefinedMessage);
92
+ return;
93
+ }
94
+
95
+ if (ftRemoteAccessNode == null)
96
+ {
97
+ Log.Error(LOG_CATEGORY, "FTRemoteAccessNode" + notDefinedMessage);
98
+ }
99
+
100
+ SetFTRemoteAccessWidgetDataObjectValues(args.NewValue);
101
+ }
102
+
103
+ private void SetFTRemoteAccessWidgetDataObjectValues(bool requestPending)
104
+ {
105
+ bool undefinedVars = false;
106
+
107
+ if (requestPending)
108
+ {
109
+ string userNameValue = usernameVariable.Value;
110
+ if (!string.IsNullOrEmpty(userNameValue))
111
+ ftRemoteAccessWidgetDataObject.Username = userNameValue;
112
+ else
113
+ {
114
+ Log.Error(LOG_CATEGORY, usernameVariableName + noValueMessage);
115
+ undefinedVars = true;
116
+ }
117
+
118
+ string ipAddressValue = ipAddressVariable.Value;
119
+ if (!string.IsNullOrEmpty(ipAddressValue))
120
+ ftRemoteAccessWidgetDataObject.IpAddress = ipAddressVariable.Value;
121
+ else
122
+ {
123
+ Log.Error(LOG_CATEGORY, ipAddressVariableName + noValueMessage);
124
+ undefinedVars = true;
125
+ }
126
+
127
+ ByteString supervisorIdValue = supervisorIdVariable.Value;
128
+ if (!supervisorIdValue.IsEmpty)
129
+ ftRemoteAccessWidgetDataObject.SupervisorId = supervisorIdValue;
130
+ else
131
+ {
132
+ Log.Error(LOG_CATEGORY, supervisorIdVariableName + noValueMessage);
133
+ undefinedVars = true;
134
+ }
135
+ }
136
+ else
137
+ {
138
+ usernameVariable.Value = ftRemoteAccessWidgetDataObject.Username = string.Empty;
139
+ ipAddressVariable.Value = ftRemoteAccessWidgetDataObject.IpAddress = string.Empty;
140
+ supervisorIdVariable.Value = ftRemoteAccessWidgetDataObject.SupervisorId = ByteString.Empty;
141
+ }
142
+
143
+ if (requestPending && !undefinedVars)
144
+ {
145
+ ftRemoteAccessWidgetDataObject.IncomingConnectionRequest = true;
146
+ }
147
+ else
148
+ {
149
+ connectionPendingVariable.Value = false;
150
+ ftRemoteAccessWidgetDataObject.IncomingConnectionRequest = false;
151
+ }
152
+ }
153
+
154
+ private FTRemoteAccessWidgetDataObject ftRemoteAccessWidgetDataObject;
155
+ private FTRemoteAccess ftRemoteAccessNode;
156
+ private IUAVariable connectionPendingVariable;
157
+ private IUAVariable usernameVariable;
158
+ private IUAVariable ipAddressVariable;
159
+ private IUAVariable supervisorIdVariable;
160
+ private const string usernameVariableName = "FTRemoteAccessWidgetUsername";
161
+ private const string ipAddressVariableName = "FTRemoteAccessWidgetIPAddress";
162
+ private const string supervisorIdVariableName = "FTRemoteAccessWidgetSupervisorId";
163
+ private const string connectionPendingVariableName = "FTRemoteAccessWidgetConnectionPending";
164
+ private const string noValueMessage = " has no value.";
165
+ private const string notDefinedMessage = " is not defined.";
166
+ }