From a520501258ab69f3d46edb5cdbbe05fcf7dfb68a Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 20 Sep 2021 11:43:19 +0200 Subject: [PATCH 1/7] Create network-project.json --- .../Schemas/App-Schema/network-project.json | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Projects/Network/Schemas/App-Schema/network-project.json diff --git a/Projects/Network/Schemas/App-Schema/network-project.json b/Projects/Network/Schemas/App-Schema/network-project.json new file mode 100644 index 000000000..b4b0d1e1e --- /dev/null +++ b/Projects/Network/Schemas/App-Schema/network-project.json @@ -0,0 +1,36 @@ +{ + "type": "Network Project", + "menuItems": [ + { + "action": "Add UI Object", + "actionProject": "Foundations", + "label": "Add P2P Network", + "relatedUiObject": "P2P Network", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "actionProject": "Foundations", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "actionFunction": "payload.executeAction", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity" + } + ], + "isProjectHead": true, + "isTitleAllwaysVisible": false, + "addLeftIcons": true, + "isPinned": true, + "positionLocked": true, + "childrenNodesProperties": [ + { + "name": "projectDefinition", + "type": "node", + "childType": "Project Definition", + "project": "Foundations", + "autoAdd": true + } + ] +} \ No newline at end of file From 751cd0acfb524d8cc89620a340a97a4255759937 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 20 Sep 2021 12:30:11 +0200 Subject: [PATCH 2/7] Refactoring Network into LAN Network, Network Node into LAN Network Node --- Platform/UI/EventsServerClient.js | 26 +- .../Schemas/App-Schema/network-client.json | 2 +- .../Ethereum/UI/Utilities/RouteToClient.js | 4 +- ...{network-node.png => lan-network-node.png} | Bin .../Icons/{network.png => lan-network.png} | Bin .../Workspaces/API-Data-Fetcher-Bot-Demo.json | 8 +- .../Workspaces/BB-Top-Bounce-Demo.json | 8 +- .../Plugins/Workspaces/Blank-Template.json | 8 +- .../Workspaces/Custom-Charts-Tutorials.json | 8 +- .../Plugins/Workspaces/DCA Bot Demo.json | 722 ++++----- .../Workspaces/Exchange-Keys-Tests.json | 8 +- .../Workspaces/Getting-Started-Tutorials.json | 954 ++++++------ .../Workspaces/Hello-World-Tutorial.json | 16 +- .../Install-a-New-Market-Tutorial.json | 10 +- .../Plugins/Workspaces/Tested-Exchanges.json | 8 +- .../Trading-Bot-Layers-Tutorial.json | 8 +- .../Trading-System-Design-Tutorials.json | 8 +- .../Workspaces/Weak-hands-Buster-v2-Demo.json | 8 +- .../Schemas/App-Schema/data-storage.json | 2 +- .../Schemas/App-Schema/data-tasks.json | 2 +- .../Schemas/App-Schema/learning-tasks.json | 2 +- .../Schemas/App-Schema/network-node.json | 6 +- .../Schemas/App-Schema/network.json | 8 +- .../Schemas/App-Schema/other-hierarchies.json | 2 +- .../App-Schema/production-trading-tasks.json | 2 +- .../App-Schema/testing-trading-tasks.json | 2 +- .../Schemas/Docs-Books/user-manual.json | 2 +- .../N/Network/Network-Node/network-node.json | 2 +- .../Docs-Nodes/N/Network/Network/network.json | 2 +- ...ting-actions-using-function-libraries.json | 2 +- .../introduction-003-hierarchies.json | 6 +- .../network-001-network-hierarchy.json | 14 +- .../network-002-organization-of-tasks.json | 2 +- .../network-003-data-tasks-section.json | 2 +- ...04-indicator-and-sensor-bot-instances.json | 2 +- ...ork-005-testing-trading-tasks-section.json | 2 +- ...-006-production-trading-tasks-section.json | 2 +- ...ing-bot-instance-and-trading-sessions.json | 2 +- ...etwork-008-trading-session-references.json | 2 +- ...etwork-009-trading-session-parameters.json | 2 +- .../network-010-data-storage-section.json | 2 +- .../network-011-data-mines-data-section.json | 2 +- ...etwork-012-trading-mines-data-section.json | 2 +- ...rk-013-data-and-trading-mine-products.json | 2 +- ...rk-014-how-to-safely-close-superalgos.json | 2 +- ...01-trading-farms-fundamental-concepts.json | 2 +- .../Foundations/TS/Process-Modules/Dataset.js | 22 +- .../Process-Modules/ProcessExecutionEvents.js | 32 +- .../TS/Process-Modules/StatusReport.js | 34 +- .../ChartingSpaceFunctions.js | 52 +- .../CryptoEcosystemFunctions.js | 44 +- .../DataStorageFunctions.js | 20 +- .../LearningSessionFunctions.js | 20 +- .../UI/Function-Libraries/TaskFunctions.js | 32 +- .../TradingSessionFunctions.js | 20 +- .../Function-Libraries/UiObjectsFromNodes.js | 15 + .../Spaces/Charting-Space/PlottersManager.js | 6 +- .../UI/Spaces/Design-Space/Workspace.js | 44 +- .../UI/Spaces/Floating-Space/FloatingSpace.js | 2 +- .../UI/Spaces/Panel-Space/Layer.js | 12 +- .../Assets/Foundations-Project-Docs.json | 8 +- .../User-Profiles/Luis-Fernando-Molina.json | 8 +- .../Test-Network-Client-Profile.json | 8 +- .../Test-Network-Node-Profile.json | 8 +- Projects/Network/Icons/lan-network-node.png | Bin 0 -> 10930 bytes Projects/Network/Icons/lan-network.png | Bin 0 -> 20790 bytes Projects/Network/Icons/network-project.png | Bin 0 -> 20790 bytes .../ML CategoricalCrossEntropy Demo.json | 1370 ++++++++--------- .../Machine-Learning-Under-Development.json | 8 +- 69 files changed, 1834 insertions(+), 1819 deletions(-) rename Projects/Foundations/Icons/{network-node.png => lan-network-node.png} (100%) rename Projects/Foundations/Icons/{network.png => lan-network.png} (100%) create mode 100644 Projects/Network/Icons/lan-network-node.png create mode 100644 Projects/Network/Icons/lan-network.png create mode 100644 Projects/Network/Icons/network-project.png diff --git a/Platform/UI/EventsServerClient.js b/Platform/UI/EventsServerClient.js index 5ece5bead..1ae387ad4 100644 --- a/Platform/UI/EventsServerClient.js +++ b/Platform/UI/EventsServerClient.js @@ -1,5 +1,5 @@ -function newEventsServerClient(networkNode) { +function newEventsServerClient(lanNetworkNode) { /* Web Sockets Connection */ const MODULE_NAME = 'System Event Handler' @@ -192,19 +192,19 @@ function newEventsServerClient(networkNode) { if (thisObject.isConnected() !== true) { if (lastTryToReconnectDatetime !== undefined) { - if (networkNode !== undefined) { - if (networkNode.payload !== undefined) { - if (networkNode.payload.uiObject !== undefined) { - networkNode.payload.uiObject.setErrorMessage('Failed to Connect to Superalgos Platform Client via WebSockets. Retrying in 1 minute. Check at this node config if the host property has the IP address of the computer running Superalgos Platform Client.') + if (lanNetworkNode !== undefined) { + if (lanNetworkNode.payload !== undefined) { + if (lanNetworkNode.payload.uiObject !== undefined) { + lanNetworkNode.payload.uiObject.setErrorMessage('Failed to Connect to Superalgos Platform Client via WebSockets. Retrying in 1 minute. Check at this node config if the host property has the IP address of the computer running Superalgos Platform Client.') } } } } } else { - if (networkNode !== undefined) { - if (networkNode.payload !== undefined) { - if (networkNode.payload.uiObject !== undefined) { - networkNode.payload.uiObject.setStatus('Connected to Superalgos Platform Client via WebSockets.') + if (lanNetworkNode !== undefined) { + if (lanNetworkNode.payload !== undefined) { + if (lanNetworkNode.payload.uiObject !== undefined) { + lanNetworkNode.payload.uiObject.setStatus('Connected to Superalgos Platform Client via WebSockets.') retryCommandsPhysics() } } @@ -220,14 +220,14 @@ function newEventsServerClient(networkNode) { let port /* At this point the node does not have the payload property yet, that is why we have to do this manually */ try { - let config = JSON.parse(networkNode.config) + let config = JSON.parse(lanNetworkNode.config) host = config.host port = config.webSocketsPort /* Check if we really have to stablish the connection. */ if (config.autoConnect === false) { return } } catch (err) { - networkNode.payload.uiObject.setErrorMessage( + lanNetworkNode.payload.uiObject.setErrorMessage( 'Bad configuration. Invalid JSON Format.', undefined, { @@ -241,7 +241,7 @@ function newEventsServerClient(networkNode) { } if (host === undefined) { - networkNode.payload.uiObject.setErrorMessage( + lanNetworkNode.payload.uiObject.setErrorMessage( 'Bad configuration. Host Property Not Found.', undefined, { @@ -255,7 +255,7 @@ function newEventsServerClient(networkNode) { } if (port === undefined) { - networkNode.payload.uiObject.setErrorMessage( + lanNetworkNode.payload.uiObject.setErrorMessage( 'Bad configuration. WebSocketsPort Property Not Found.', undefined, { diff --git a/Projects/Ethereum/Schemas/App-Schema/network-client.json b/Projects/Ethereum/Schemas/App-Schema/network-client.json index a868594ff..ad15a5993 100644 --- a/Projects/Ethereum/Schemas/App-Schema/network-client.json +++ b/Projects/Ethereum/Schemas/App-Schema/network-client.json @@ -21,7 +21,7 @@ } ], "referencingRules": { - "compatibleTypes": "->Network Node->" + "compatibleTypes": "->LAN Network Node->" }, "editors": { "config": true diff --git a/Projects/Ethereum/UI/Utilities/RouteToClient.js b/Projects/Ethereum/UI/Utilities/RouteToClient.js index a371b08b9..14080d1bc 100644 --- a/Projects/Ethereum/UI/Utilities/RouteToClient.js +++ b/Projects/Ethereum/UI/Utilities/RouteToClient.js @@ -42,8 +42,8 @@ function newEthereumUtilitiesRouteToClient() { return } - let networkNodeConfig = JSON.parse(networkClient.payload.referenceParent.config) - let url = 'http://' + networkNodeConfig.host + ':' + networkNodeConfig.webPort + '/' + 'WEB3' + let lanNetworkNodeConfig = JSON.parse(networkClient.payload.referenceParent.config) + let url = 'http://' + lanNetworkNodeConfig.host + ':' + lanNetworkNodeConfig.webPort + '/' + 'WEB3' return { params: params, diff --git a/Projects/Foundations/Icons/network-node.png b/Projects/Foundations/Icons/lan-network-node.png similarity index 100% rename from Projects/Foundations/Icons/network-node.png rename to Projects/Foundations/Icons/lan-network-node.png diff --git a/Projects/Foundations/Icons/network.png b/Projects/Foundations/Icons/lan-network.png similarity index 100% rename from Projects/Foundations/Icons/network.png rename to Projects/Foundations/Icons/lan-network.png diff --git a/Projects/Foundations/Plugins/Workspaces/API-Data-Fetcher-Bot-Demo.json b/Projects/Foundations/Plugins/Workspaces/API-Data-Fetcher-Bot-Demo.json index 529d541af..df68358e1 100644 --- a/Projects/Foundations/Plugins/Workspaces/API-Data-Fetcher-Bot-Demo.json +++ b/Projects/Foundations/Plugins/Workspaces/API-Data-Fetcher-Bot-Demo.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{\n \"host\": \"localhost\",\n \"webPort\": \"34248\",\n \"webSocketsPort\": \"18041\"\n}", "project": "Foundations", diff --git a/Projects/Foundations/Plugins/Workspaces/BB-Top-Bounce-Demo.json b/Projects/Foundations/Plugins/Workspaces/BB-Top-Bounce-Demo.json index 444a563c0..aa0d44d8c 100644 --- a/Projects/Foundations/Plugins/Workspaces/BB-Top-Bounce-Demo.json +++ b/Projects/Foundations/Plugins/Workspaces/BB-Top-Bounce-Demo.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", diff --git a/Projects/Foundations/Plugins/Workspaces/Blank-Template.json b/Projects/Foundations/Plugins/Workspaces/Blank-Template.json index df806eb94..fd41a8e58 100644 --- a/Projects/Foundations/Plugins/Workspaces/Blank-Template.json +++ b/Projects/Foundations/Plugins/Workspaces/Blank-Template.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", diff --git a/Projects/Foundations/Plugins/Workspaces/Custom-Charts-Tutorials.json b/Projects/Foundations/Plugins/Workspaces/Custom-Charts-Tutorials.json index 0147bfaed..1f924c0c1 100644 --- a/Projects/Foundations/Plugins/Workspaces/Custom-Charts-Tutorials.json +++ b/Projects/Foundations/Plugins/Workspaces/Custom-Charts-Tutorials.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", diff --git a/Projects/Foundations/Plugins/Workspaces/DCA Bot Demo.json b/Projects/Foundations/Plugins/Workspaces/DCA Bot Demo.json index a29c7a55f..9778ebf41 100644 --- a/Projects/Foundations/Plugins/Workspaces/DCA Bot Demo.json +++ b/Projects/Foundations/Plugins/Workspaces/DCA Bot Demo.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", @@ -7753,14 +7753,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -11271,14 +11271,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -12503,14 +12503,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -12794,14 +12794,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -13023,14 +13023,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -13192,14 +13192,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -13421,14 +13421,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -13590,14 +13590,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -13759,14 +13759,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -13928,14 +13928,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -14097,14 +14097,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -14296,14 +14296,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -14465,14 +14465,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -14664,14 +14664,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -14833,14 +14833,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -15002,14 +15002,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -15171,14 +15171,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -15370,14 +15370,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -15539,14 +15539,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -15708,14 +15708,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -15877,14 +15877,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -16076,14 +16076,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -16245,14 +16245,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -16414,14 +16414,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -16583,14 +16583,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -16752,14 +16752,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -16921,14 +16921,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -17112,14 +17112,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -17302,14 +17302,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -17465,14 +17465,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -17628,14 +17628,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -17791,14 +17791,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -17954,14 +17954,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -18117,14 +18117,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -18280,14 +18280,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -18443,14 +18443,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -18606,14 +18606,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -18767,14 +18767,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -19396,14 +19396,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -19880,14 +19880,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -20353,14 +20353,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -20825,14 +20825,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -21427,14 +21427,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -22029,14 +22029,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -22549,14 +22549,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -23039,14 +23039,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -23529,14 +23529,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -24019,14 +24019,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -24468,14 +24468,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -24893,14 +24893,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -25318,14 +25318,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -25613,14 +25613,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -25908,14 +25908,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -26099,14 +26099,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -26864,14 +26864,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -26989,14 +26989,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27256,14 +27256,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27467,14 +27467,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27592,14 +27592,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27703,14 +27703,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27806,14 +27806,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -28097,14 +28097,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -28326,14 +28326,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -28495,14 +28495,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -28724,14 +28724,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -28893,14 +28893,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29062,14 +29062,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29231,14 +29231,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29400,14 +29400,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29599,14 +29599,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29768,14 +29768,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29967,14 +29967,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -30136,14 +30136,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -30305,14 +30305,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -30474,14 +30474,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -30673,14 +30673,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -30842,14 +30842,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -31011,14 +31011,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -31180,14 +31180,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -31379,14 +31379,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -31548,14 +31548,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -31717,14 +31717,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -31886,14 +31886,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -32055,14 +32055,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -32224,14 +32224,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -32415,14 +32415,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -32605,14 +32605,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -32768,14 +32768,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -32931,14 +32931,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -33094,14 +33094,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -33257,14 +33257,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -33420,14 +33420,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -33583,14 +33583,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -33746,14 +33746,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -33909,14 +33909,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -34070,14 +34070,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -34699,14 +34699,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -35183,14 +35183,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -35656,14 +35656,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -36128,14 +36128,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -36730,14 +36730,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -37332,14 +37332,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -37852,14 +37852,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -38342,14 +38342,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -38832,14 +38832,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -39322,14 +39322,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -39771,14 +39771,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -40196,14 +40196,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -40621,14 +40621,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -40916,14 +40916,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -41211,14 +41211,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -41402,14 +41402,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -42167,14 +42167,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -42292,14 +42292,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -42559,14 +42559,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -42770,14 +42770,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -42895,14 +42895,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -43006,14 +43006,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -43109,14 +43109,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], diff --git a/Projects/Foundations/Plugins/Workspaces/Exchange-Keys-Tests.json b/Projects/Foundations/Plugins/Workspaces/Exchange-Keys-Tests.json index 5277f9f2b..7bef144d6 100644 --- a/Projects/Foundations/Plugins/Workspaces/Exchange-Keys-Tests.json +++ b/Projects/Foundations/Plugins/Workspaces/Exchange-Keys-Tests.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", diff --git a/Projects/Foundations/Plugins/Workspaces/Getting-Started-Tutorials.json b/Projects/Foundations/Plugins/Workspaces/Getting-Started-Tutorials.json index abf84263d..2d0c7b7e4 100644 --- a/Projects/Foundations/Plugins/Workspaces/Getting-Started-Tutorials.json +++ b/Projects/Foundations/Plugins/Workspaces/Getting-Started-Tutorials.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", @@ -6705,14 +6705,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -10223,14 +10223,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -24394,14 +24394,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -24685,14 +24685,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -24914,14 +24914,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -25083,14 +25083,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -25312,14 +25312,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -25481,14 +25481,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -25650,14 +25650,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -25819,14 +25819,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -25988,14 +25988,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -26187,14 +26187,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -26356,14 +26356,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -26555,14 +26555,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -26724,14 +26724,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -26893,14 +26893,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27062,14 +27062,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27261,14 +27261,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27430,14 +27430,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27599,14 +27599,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27768,14 +27768,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -27967,14 +27967,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -28136,14 +28136,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -28305,14 +28305,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -28474,14 +28474,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -28643,14 +28643,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -28812,14 +28812,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29003,14 +29003,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29193,14 +29193,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29356,14 +29356,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29519,14 +29519,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29682,14 +29682,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -29845,14 +29845,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -30008,14 +30008,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -30171,14 +30171,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -30334,14 +30334,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -30497,14 +30497,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -30658,14 +30658,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -31287,14 +31287,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -31771,14 +31771,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -32244,14 +32244,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -32716,14 +32716,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -33318,14 +33318,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -33920,14 +33920,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -34440,14 +34440,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -34930,14 +34930,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -35420,14 +35420,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -35910,14 +35910,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -36359,14 +36359,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -36784,14 +36784,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -37209,14 +37209,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -37504,14 +37504,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -37799,14 +37799,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -37990,14 +37990,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -39068,14 +39068,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -40113,14 +40113,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -40238,14 +40238,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -40505,14 +40505,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -40716,14 +40716,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -40841,14 +40841,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -40952,14 +40952,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -41055,14 +41055,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -41346,14 +41346,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -41575,14 +41575,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -41744,14 +41744,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -41973,14 +41973,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -42142,14 +42142,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -42311,14 +42311,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -42480,14 +42480,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -42649,14 +42649,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -42848,14 +42848,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -43017,14 +43017,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -43216,14 +43216,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -43385,14 +43385,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -43554,14 +43554,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -43723,14 +43723,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -43922,14 +43922,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -44091,14 +44091,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -44260,14 +44260,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -44429,14 +44429,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -44628,14 +44628,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -44797,14 +44797,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -44966,14 +44966,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -45135,14 +45135,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -45304,14 +45304,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -45473,14 +45473,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -45664,14 +45664,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -45854,14 +45854,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -46017,14 +46017,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -46180,14 +46180,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -46343,14 +46343,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -46506,14 +46506,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -46669,14 +46669,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -46832,14 +46832,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -46995,14 +46995,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -47158,14 +47158,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -47319,14 +47319,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -47948,14 +47948,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -48432,14 +48432,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -48905,14 +48905,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -49377,14 +49377,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -49979,14 +49979,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -50581,14 +50581,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -51101,14 +51101,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -51591,14 +51591,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -52081,14 +52081,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -52571,14 +52571,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -53020,14 +53020,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -53445,14 +53445,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -53870,14 +53870,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -54165,14 +54165,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -54460,14 +54460,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -54651,14 +54651,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -55729,14 +55729,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -56774,14 +56774,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -56899,14 +56899,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -57166,14 +57166,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -57377,14 +57377,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -57502,14 +57502,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -57613,14 +57613,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -57716,14 +57716,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -60233,14 +60233,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -60420,14 +60420,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -60657,14 +60657,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -60792,14 +60792,14 @@ "status": "Reset" }, "referenceParent": { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "id": "3c165071-7558-4708-9999-8ffe71d346b1" }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ] @@ -61094,14 +61094,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -61303,14 +61303,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -61484,14 +61484,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -61625,14 +61625,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -61803,14 +61803,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -61984,14 +61984,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -63601,14 +63601,14 @@ "status": "Reset" }, "referenceParent": { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "id": "3c165071-7558-4708-9999-8ffe71d346b1" }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ] @@ -63645,20 +63645,20 @@ "status": "Reset" }, "referenceParent": { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "id": "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ] @@ -63726,20 +63726,20 @@ "status": "Reset" }, "referenceParent": { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "id": "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ] @@ -63816,14 +63816,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -63972,14 +63972,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -64059,14 +64059,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -64157,14 +64157,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -64542,14 +64542,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -64721,14 +64721,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -64777,14 +64777,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -64857,14 +64857,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -64949,14 +64949,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -65053,14 +65053,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -66470,14 +66470,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -66520,20 +66520,20 @@ "status": "Reset" }, "referenceParent": { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "id": "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ] @@ -66576,14 +66576,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -66663,14 +66663,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -66773,14 +66773,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -66889,14 +66889,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -68322,14 +68322,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -68409,14 +68409,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -68686,14 +68686,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -68742,14 +68742,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -68846,14 +68846,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], @@ -68938,14 +68938,14 @@ }, "referenceParentCombinedNodePath": [ [ - "My Network", - "Network", + "My LAN Network", + "LAN Network", "Foundations", "3c165071-7558-4708-9999-8ffe71d346b1" ], [ "My Computer", - "Network Node", + "LAN Network Node", "Foundations", "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" ], diff --git a/Projects/Foundations/Plugins/Workspaces/Hello-World-Tutorial.json b/Projects/Foundations/Plugins/Workspaces/Hello-World-Tutorial.json index 7c6e9f026..e846b44d9 100644 --- a/Projects/Foundations/Plugins/Workspaces/Hello-World-Tutorial.json +++ b/Projects/Foundations/Plugins/Workspaces/Hello-World-Tutorial.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", @@ -140433,8 +140433,8 @@ "status": "Done" }, "referenceParent": { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "id": "3c165071-7558-4708-9999-8ffe71d346b1" } } @@ -141009,8 +141009,8 @@ "status": "Done" }, "referenceParent": { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "id": "3c165071-7558-4708-9999-8ffe71d346b1" } } diff --git a/Projects/Foundations/Plugins/Workspaces/Install-a-New-Market-Tutorial.json b/Projects/Foundations/Plugins/Workspaces/Install-a-New-Market-Tutorial.json index 15bd28e9a..bf7d57f56 100644 --- a/Projects/Foundations/Plugins/Workspaces/Install-a-New-Market-Tutorial.json +++ b/Projects/Foundations/Plugins/Workspaces/Install-a-New-Market-Tutorial.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", @@ -7994,7 +7994,7 @@ "status": "Done" }, "referenceParent": { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "id": "e452cf65-2b2b-44f2-9e67-bdd9d3c008e4" } diff --git a/Projects/Foundations/Plugins/Workspaces/Tested-Exchanges.json b/Projects/Foundations/Plugins/Workspaces/Tested-Exchanges.json index a6331a79f..a30687d04 100644 --- a/Projects/Foundations/Plugins/Workspaces/Tested-Exchanges.json +++ b/Projects/Foundations/Plugins/Workspaces/Tested-Exchanges.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", diff --git a/Projects/Foundations/Plugins/Workspaces/Trading-Bot-Layers-Tutorial.json b/Projects/Foundations/Plugins/Workspaces/Trading-Bot-Layers-Tutorial.json index b9824b611..2b0d18815 100644 --- a/Projects/Foundations/Plugins/Workspaces/Trading-Bot-Layers-Tutorial.json +++ b/Projects/Foundations/Plugins/Workspaces/Trading-Bot-Layers-Tutorial.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", diff --git a/Projects/Foundations/Plugins/Workspaces/Trading-System-Design-Tutorials.json b/Projects/Foundations/Plugins/Workspaces/Trading-System-Design-Tutorials.json index f7db350f0..1a0ac65b6 100644 --- a/Projects/Foundations/Plugins/Workspaces/Trading-System-Design-Tutorials.json +++ b/Projects/Foundations/Plugins/Workspaces/Trading-System-Design-Tutorials.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", diff --git a/Projects/Foundations/Plugins/Workspaces/Weak-hands-Buster-v2-Demo.json b/Projects/Foundations/Plugins/Workspaces/Weak-hands-Buster-v2-Demo.json index 7c84c8340..481d464c3 100644 --- a/Projects/Foundations/Plugins/Workspaces/Weak-hands-Buster-v2-Demo.json +++ b/Projects/Foundations/Plugins/Workspaces/Weak-hands-Buster-v2-Demo.json @@ -4,12 +4,12 @@ "config": "{\n \"docsLanguage\": \"EN\",\n \"contributionsBranch\": \"develop\"\n}", "rootNodes": [ { - "type": "Network", - "name": "My Network", + "type": "LAN Network", + "name": "My LAN Network", "project": "Foundations", - "networkNodes": [ + "lanNetworkNodes": [ { - "type": "Network Node", + "type": "LAN Network Node", "name": "My Computer", "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}", "project": "Foundations", diff --git a/Projects/Foundations/Schemas/App-Schema/data-storage.json b/Projects/Foundations/Schemas/App-Schema/data-storage.json index f45459f19..0cdc136d5 100644 --- a/Projects/Foundations/Schemas/App-Schema/data-storage.json +++ b/Projects/Foundations/Schemas/App-Schema/data-storage.json @@ -38,7 +38,7 @@ "addLeftIcons": true, "level": 2, "attachingRules": { - "compatibleTypes": "->Network Node->" + "compatibleTypes": "->LAN Network Node->" }, "propertyNameAtParent": "dataStorage", "childrenNodesProperties": [ diff --git a/Projects/Foundations/Schemas/App-Schema/data-tasks.json b/Projects/Foundations/Schemas/App-Schema/data-tasks.json index 733ee5f3f..1e4007905 100644 --- a/Projects/Foundations/Schemas/App-Schema/data-tasks.json +++ b/Projects/Foundations/Schemas/App-Schema/data-tasks.json @@ -49,7 +49,7 @@ "addLeftIcons": true, "level": 2, "attachingRules": { - "compatibleTypes": "->Network Node->" + "compatibleTypes": "->LAN Network Node->" }, "propertyNameAtParent": "dataTasks", "childrenNodesProperties": [ diff --git a/Projects/Foundations/Schemas/App-Schema/learning-tasks.json b/Projects/Foundations/Schemas/App-Schema/learning-tasks.json index 42ebfe440..e70f27f81 100644 --- a/Projects/Foundations/Schemas/App-Schema/learning-tasks.json +++ b/Projects/Foundations/Schemas/App-Schema/learning-tasks.json @@ -49,7 +49,7 @@ "addLeftIcons": true, "level": 2, "attachingRules": { - "compatibleTypes": "->Network Node->" + "compatibleTypes": "->LAN Network Node->" }, "propertyNameAtParent": "learningTasks", "childrenNodesProperties": [ diff --git a/Projects/Foundations/Schemas/App-Schema/network-node.json b/Projects/Foundations/Schemas/App-Schema/network-node.json index 7cea39d81..72a40fa6c 100644 --- a/Projects/Foundations/Schemas/App-Schema/network-node.json +++ b/Projects/Foundations/Schemas/App-Schema/network-node.json @@ -1,5 +1,5 @@ { - "type": "Network Node", + "type": "LAN Network Node", "menuItems": [ { "action": "Configure", @@ -69,7 +69,7 @@ "addLeftIcons": true, "level": 1, "attachingRules": { - "compatibleTypes": "->Network->" + "compatibleTypes": "->LAN Network->" }, "childrenNodesProperties": [ { @@ -103,5 +103,5 @@ "autoAdd": true } ], - "propertyNameAtParent": "networkNodes" + "propertyNameAtParent": "lanNetworkNodes" } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/App-Schema/network.json b/Projects/Foundations/Schemas/App-Schema/network.json index 188d7ab65..ed5c7f7d0 100644 --- a/Projects/Foundations/Schemas/App-Schema/network.json +++ b/Projects/Foundations/Schemas/App-Schema/network.json @@ -1,10 +1,10 @@ { - "type": "Network", + "type": "LAN Network", "menuItems": [ { "action": "Add UI Object", "label": "Add Network Node", - "relatedUiObject": "Network Node", + "relatedUiObject": "LAN Network Node", "actionFunction": "payload.executeAction" }, { @@ -22,9 +22,9 @@ "level": 0, "childrenNodesProperties": [ { - "name": "networkNodes", + "name": "lanNetworkNodes", "type": "array", - "childType": "Network Node" + "childType": "LAN Network Node" } ] } \ No newline at end of file diff --git a/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json b/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json index f08aa1ce2..6504accd4 100644 --- a/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json +++ b/Projects/Foundations/Schemas/App-Schema/other-hierarchies.json @@ -4,7 +4,7 @@ { "action": "Add UI Object", "label": "Add Network", - "relatedUiObject": "Network", + "relatedUiObject": "LAN Network", "actionFunction": "payload.executeAction" }, { diff --git a/Projects/Foundations/Schemas/App-Schema/production-trading-tasks.json b/Projects/Foundations/Schemas/App-Schema/production-trading-tasks.json index c7d5778a4..c18171d8f 100644 --- a/Projects/Foundations/Schemas/App-Schema/production-trading-tasks.json +++ b/Projects/Foundations/Schemas/App-Schema/production-trading-tasks.json @@ -49,7 +49,7 @@ "addLeftIcons": true, "level": 0, "attachingRules": { - "compatibleTypes": "->Network Node->" + "compatibleTypes": "->LAN Network Node->" }, "propertyNameAtParent": "productionTradingTasks", "childrenNodesProperties": [ diff --git a/Projects/Foundations/Schemas/App-Schema/testing-trading-tasks.json b/Projects/Foundations/Schemas/App-Schema/testing-trading-tasks.json index ebcf5b3c4..dda605f4a 100644 --- a/Projects/Foundations/Schemas/App-Schema/testing-trading-tasks.json +++ b/Projects/Foundations/Schemas/App-Schema/testing-trading-tasks.json @@ -49,7 +49,7 @@ "addLeftIcons": true, "level": 0, "attachingRules": { - "compatibleTypes": "->Network Node->" + "compatibleTypes": "->LAN Network Node->" }, "propertyNameAtParent": "testingTradingTasks", "childrenNodesProperties": [ diff --git a/Projects/Foundations/Schemas/Docs-Books/user-manual.json b/Projects/Foundations/Schemas/Docs-Books/user-manual.json index 33a6cc02e..cd8e450d3 100644 --- a/Projects/Foundations/Schemas/Docs-Books/user-manual.json +++ b/Projects/Foundations/Schemas/Docs-Books/user-manual.json @@ -17,7 +17,7 @@ }, { "style": "Chapter", - "text": "III->Foundations->Topic->Network->The Network hierarchy organizes the infrastructure to run bots and store data. It is the hierarchy you will use the most to operate the system.", + "text": "III->Foundations->Topic->LAN Network->The Network hierarchy organizes the infrastructure to run bots and store data. It is the hierarchy you will use the most to operate the system.", "updated": 1610309740906 }, { diff --git a/Projects/Foundations/Schemas/Docs-Nodes/N/Network/Network-Node/network-node.json b/Projects/Foundations/Schemas/Docs-Nodes/N/Network/Network-Node/network-node.json index 9e2ac0880..5b05971f4 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/N/Network/Network-Node/network-node.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/N/Network/Network-Node/network-node.json @@ -1,5 +1,5 @@ { - "type": "Network Node", + "type": "LAN Network Node", "definition": { "text": "A network node represents a machine running Superalgos, on which processes run and data is stored.", "translations": [ diff --git a/Projects/Foundations/Schemas/Docs-Nodes/N/Network/Network/network.json b/Projects/Foundations/Schemas/Docs-Nodes/N/Network/Network/network.json index c99b03a1a..6e5edafe8 100644 --- a/Projects/Foundations/Schemas/Docs-Nodes/N/Network/Network/network.json +++ b/Projects/Foundations/Schemas/Docs-Nodes/N/Network/Network/network.json @@ -1,5 +1,5 @@ { - "type": "Network", + "type": "LAN Network", "definition": { "text": "The network hierarchy provides the control functions for running data-mining and trading operations. Because operations may be run either on a single machine or distributed over a network of machines, it also contains definitions regarding the physical location in which nodes live or function.", "translations": [ diff --git a/Projects/Foundations/Schemas/Docs-Topics/H/How/How-to-Automate-Actions-at-The-Design-Space/how-to-automate-actions-at-the-design-space-006-automating-actions-using-function-libraries.json b/Projects/Foundations/Schemas/Docs-Topics/H/How/How-to-Automate-Actions-at-The-Design-Space/how-to-automate-actions-at-the-design-space-006-automating-actions-using-function-libraries.json index 11f902b85..37cc8e3f5 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/H/How/How-to-Automate-Actions-at-The-Design-Space/how-to-automate-actions-at-the-design-space-006-automating-actions-using-function-libraries.json +++ b/Projects/Foundations/Schemas/Docs-Topics/H/How/How-to-Automate-Actions-at-The-Design-Space/how-to-automate-actions-at-the-design-space-006-automating-actions-using-function-libraries.json @@ -62,7 +62,7 @@ }, { "style": "Javascript", - "text": "dataStorage = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(networkNode, 'Data Storage')", + "text": "dataStorage = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(lanNetworkNode, 'Data Storage')", "updated": 1614943544233 }, { diff --git a/Projects/Foundations/Schemas/Docs-Topics/I/Introduction/Introduction/introduction-003-hierarchies.json b/Projects/Foundations/Schemas/Docs-Topics/I/Introduction/Introduction/introduction-003-hierarchies.json index d2fbca03f..d448373d2 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/I/Introduction/Introduction/introduction-003-hierarchies.json +++ b/Projects/Foundations/Schemas/Docs-Topics/I/Introduction/Introduction/introduction-003-hierarchies.json @@ -70,17 +70,17 @@ }, { "style": "Title", - "text": "Network", + "text": "LAN Network", "updated": 1609945037649 }, { "style": "Include", - "text": "Foundations->Node->Network->Definition", + "text": "Foundations->Node->LAN Network->Definition", "updated": 1609945860234 }, { "style": "Include", - "text": "Foundations->Node->Network->Content", + "text": "Foundations->Node->LAN Network->Content", "updated": 1609945864347 }, { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-001-network-hierarchy.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-001-network-hierarchy.json index 7e07bb3b0..d03324451 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-001-network-hierarchy.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-001-network-hierarchy.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "1", "type": "Network Hierarchy", "definition": { @@ -9,12 +9,12 @@ "paragraphs": [ { "style": "Include", - "text": "Foundations->Node->Network->Definition", + "text": "Foundations->Node->LAN Network->Definition", "updated": 1610043677920 }, { "style": "Include", - "text": "Foundations->Node->Network->Content", + "text": "Foundations->Node->LAN Network->Content", "updated": 1610043683253 }, { @@ -24,21 +24,21 @@ }, { "style": "Hierarchy", - "text": "Foundations->Network->3", + "text": "Foundations->LAN Network->3", "updated": 1610049486480 }, { "style": "Title", - "text": "Network Node" + "text": "LAN Network Node" }, { "style": "Include", - "text": "Foundations->Node->Network Node->Definition", + "text": "Foundations->Node->LAN Network Node->Definition", "updated": 1610043762523 }, { "style": "Include", - "text": "Foundations->Node->Network Node->Content", + "text": "Foundations->Node->LAN Network Node->Content", "updated": 1610043768852 }, { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-002-organization-of-tasks.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-002-organization-of-tasks.json index 2cd7c6f06..30bcf4747 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-002-organization-of-tasks.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-002-organization-of-tasks.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "2", "type": "Organization of Tasks", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-003-data-tasks-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-003-data-tasks-section.json index 20fbb9310..2e4ac9f75 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-003-data-tasks-section.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-003-data-tasks-section.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "3", "type": "Data Tasks Section", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-004-indicator-and-sensor-bot-instances.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-004-indicator-and-sensor-bot-instances.json index d162f3c4d..6b350c6ee 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-004-indicator-and-sensor-bot-instances.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-004-indicator-and-sensor-bot-instances.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "4", "type": "Indicator and Sensor Bot Instances", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-005-testing-trading-tasks-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-005-testing-trading-tasks-section.json index 7d154be06..0a895fd90 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-005-testing-trading-tasks-section.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-005-testing-trading-tasks-section.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "5", "type": "Testing Trading Tasks Section", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-006-production-trading-tasks-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-006-production-trading-tasks-section.json index b8726fd4b..047c9f9bb 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-006-production-trading-tasks-section.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-006-production-trading-tasks-section.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "6", "type": "Production Trading Tasks Section", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-007-trading-bot-instance-and-trading-sessions.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-007-trading-bot-instance-and-trading-sessions.json index 6815f3c43..bc9068406 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-007-trading-bot-instance-and-trading-sessions.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-007-trading-bot-instance-and-trading-sessions.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "7", "type": "Trading Bot Instance and Trading Sessions", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-008-trading-session-references.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-008-trading-session-references.json index 6c12dd790..634dd6551 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-008-trading-session-references.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-008-trading-session-references.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "8", "type": "Trading Session References", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-009-trading-session-parameters.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-009-trading-session-parameters.json index d4ad5e43b..edfbeec7f 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-009-trading-session-parameters.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-009-trading-session-parameters.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "9", "type": "Trading Session Parameters", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-010-data-storage-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-010-data-storage-section.json index 937e00e07..4dbb9b3a3 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-010-data-storage-section.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-010-data-storage-section.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "10", "type": "Data Storage Section", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-011-data-mines-data-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-011-data-mines-data-section.json index effce6f38..797fc557b 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-011-data-mines-data-section.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-011-data-mines-data-section.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "11", "type": "Data Mines Data Section", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-012-trading-mines-data-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-012-trading-mines-data-section.json index 4b1bd1143..e2b064bf4 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-012-trading-mines-data-section.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-012-trading-mines-data-section.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "12", "type": "Trading Mines Data Section", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-013-data-and-trading-mine-products.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-013-data-and-trading-mine-products.json index bd1576a53..ef072e9d3 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-013-data-and-trading-mine-products.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-013-data-and-trading-mine-products.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "13", "type": "Data and Trading Mine Products", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-014-how-to-safely-close-superalgos.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-014-how-to-safely-close-superalgos.json index fee53ddd5..4d4421b29 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-014-how-to-safely-close-superalgos.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-014-how-to-safely-close-superalgos.json @@ -1,5 +1,5 @@ { - "topic": "Network", + "topic": "LAN Network", "pageNumber": "14", "type": "How to Safely Close Superalgos", "definition": { diff --git a/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-001-trading-farms-fundamental-concepts.json b/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-001-trading-farms-fundamental-concepts.json index df2707569..a6f8c07f1 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-001-trading-farms-fundamental-concepts.json +++ b/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-001-trading-farms-fundamental-concepts.json @@ -18,7 +18,7 @@ }, { "style": "Title", - "text": "Network", + "text": "LAN Network", "updated": 1614353250354 }, { diff --git a/Projects/Foundations/TS/Process-Modules/Dataset.js b/Projects/Foundations/TS/Process-Modules/Dataset.js index 893311333..e56a6c7b6 100644 --- a/Projects/Foundations/TS/Process-Modules/Dataset.js +++ b/Projects/Foundations/TS/Process-Modules/Dataset.js @@ -8,7 +8,7 @@ exports.newFoundationsProcessModulesDataset = function (processIndex) { let thisObject = { node: undefined, - networkNode: undefined, + lanNetworkNode: undefined, exchange: undefined, market: undefined, product: undefined, @@ -85,12 +85,12 @@ exports.newFoundationsProcessModulesDataset = function (processIndex) { thisObject.product = productDefinition.config.singularVariableName /* - We will find the networkNode that leads to this Product Definition + We will find the lanNetworkNode that leads to this Product Definition and is related to this exchange and market. */ - let networkNode = fincNetworkNode(network, productDefinition, thisObject.exchange, thisObject.market) + let lanNetworkNode = fincNetworkNode(network, productDefinition, thisObject.exchange, thisObject.market) - if (networkNode === undefined) { + if (lanNetworkNode === undefined) { TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[WARN] initialize -> Network Node not found.") TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[WARN] initialize -> Initialization Failed because we could not find where the data of this dataset is located within the network. Check the logs for more info."); TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[WARN] initialize -> Could not find where " + productDefinition.name + " for " + thisObject.exchange + " " + thisObject.market + " is stored within the network."); @@ -99,9 +99,9 @@ exports.newFoundationsProcessModulesDataset = function (processIndex) { } /* We found where the data is located on the network. */ - TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] initialize -> Retrieving data from " + networkNode.name + " -> host = " + networkNode.config.host + ' -> port = ' + networkNode.config.webPort + '.') + TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] initialize -> Retrieving data from " + lanNetworkNode.name + " -> host = " + lanNetworkNode.config.host + ' -> port = ' + lanNetworkNode.config.webPort + '.') - fileStorage = TS.projects.foundations.taskModules.fileStorage.newFileStorage(processIndex, networkNode.config.host, networkNode.config.webPort); + fileStorage = TS.projects.foundations.taskModules.fileStorage.newFileStorage(processIndex, lanNetworkNode.config.host, lanNetworkNode.config.webPort); callBackFunction(TS.projects.foundations.globals.standardResponses.DEFAULT_OK_RESPONSE, true); } catch (err) { @@ -113,7 +113,7 @@ exports.newFoundationsProcessModulesDataset = function (processIndex) { function finalize() { fileStorage = undefined - thisObject.networkNode = undefined + thisObject.lanNetworkNode = undefined thisObject.exchange = undefined thisObject.market = undefined bot = undefined @@ -206,7 +206,7 @@ exports.newFoundationsProcessModulesDataset = function (processIndex) { */ let found = false - let networkNode + let lanNetworkNode let splittedMarket = market.split('-') let baseAsset = splittedMarket[0] let quotedAsset = splittedMarket[1] @@ -214,7 +214,7 @@ exports.newFoundationsProcessModulesDataset = function (processIndex) { scanNodeMesh(network) if (found === true) { - return networkNode + return lanNetworkNode } else { return } @@ -235,12 +235,12 @@ exports.newFoundationsProcessModulesDataset = function (processIndex) { return } - if (startingNode.type === 'Network Node') { + if (startingNode.type === 'LAN Network Node') { /* We will store the Network Node here so that if we find the rignt path we can know from which Netwrok Node it going through. */ - networkNode = startingNode + lanNetworkNode = startingNode } if ( diff --git a/Projects/Foundations/TS/Process-Modules/ProcessExecutionEvents.js b/Projects/Foundations/TS/Process-Modules/ProcessExecutionEvents.js index eb9f5c04c..98d7d78ad 100644 --- a/Projects/Foundations/TS/Process-Modules/ProcessExecutionEvents.js +++ b/Projects/Foundations/TS/Process-Modules/ProcessExecutionEvents.js @@ -8,7 +8,7 @@ let thisObject = { - networkNode: undefined, + lanNetworkNode: undefined, initialize: initialize, finalize: finalize, start: start, @@ -90,11 +90,11 @@ and need to exactly the same task to exist, you should split the network in two different networks, each one with unique tasks so as to avoid confussion. */ - for (let i = 0; i < network.networkNodes.length; i++) { - let networkNode = network.networkNodes[i] - if (networkNode.dataTasks !== undefined) { - for (let z = 0; z < networkNode.dataTasks.projectDataTasks.length; z++) { - let projectDataTasks = networkNode.dataTasks.projectDataTasks[z] + for (let i = 0; i < network.lanNetworkNodes.length; i++) { + let lanNetworkNode = network.lanNetworkNodes[i] + if (lanNetworkNode.dataTasks !== undefined) { + for (let z = 0; z < lanNetworkNode.dataTasks.projectDataTasks.length; z++) { + let projectDataTasks = lanNetworkNode.dataTasks.projectDataTasks[z] if (projectDataTasks.exchangeDataTasks === undefined) {continue} for (let j = 0; j < projectDataTasks.exchangeDataTasks.length; j++) { let exchangeTasks = projectDataTasks.exchangeDataTasks[j] @@ -118,22 +118,22 @@ We found where the task that runs the process definition we are waiting for is located on the network. */ - thisObject.networkNode = networkNode + thisObject.lanNetworkNode = lanNetworkNode TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, - "[INFO] initialize -> Connecting to Websockets Server " + networkNode.name + - " -> host = " + networkNode.config.host + - ' -> port = ' + networkNode.config.webSocketsPort + '.'); + "[INFO] initialize -> Connecting to Websockets Server " + lanNetworkNode.name + + " -> host = " + lanNetworkNode.config.host + + ' -> port = ' + lanNetworkNode.config.webSocketsPort + '.'); - eventServerClient = TS.projects.foundations.taskModules.eventServerClient.newFoundationsTaskModulesEventServerClient(networkNode.config.host, networkNode.config.webSocketsPort) + eventServerClient = TS.projects.foundations.taskModules.eventServerClient.newFoundationsTaskModulesEventServerClient(lanNetworkNode.config.host, lanNetworkNode.config.webSocketsPort) eventServerClient.initialize(onConnected) function onConnected() { - TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] initialize -> Connected to Websockets Server " + networkNode.name + - " -> host = " + networkNode.config.host + - ' -> port = ' + networkNode.config.webSocketsPort + '.'); + TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] initialize -> Connected to Websockets Server " + lanNetworkNode.name + + " -> host = " + lanNetworkNode.config.host + + ' -> port = ' + lanNetworkNode.config.webSocketsPort + '.'); callBackFunction(TS.projects.foundations.globals.standardResponses.DEFAULT_OK_RESPONSE); @@ -173,7 +173,7 @@ processThisDependsOn = undefined currentProcessKey = undefined - thisObject.networkNode = undefined + thisObject.lanNetworkNode = undefined bot = undefined thisObject = undefined } @@ -202,7 +202,7 @@ eventServerClient.listenToEvent(key, 'Process Execution Finished', undefined, callerId, responseCallBack, eventsCallBack) - TS.projects.foundations.functionLibraries.processFunctions.processHeartBeat(processIndex, undefined, undefined, "Waiting for " + thisObject.networkNode.name + "->" + processThisDependsOn.parentNode.parentNode.name + "->" + processThisDependsOn.parentNode.config.codeName + "->" + processThisDependsOn.config.codeName) + TS.projects.foundations.functionLibraries.processFunctions.processHeartBeat(processIndex, undefined, undefined, "Waiting for " + thisObject.lanNetworkNode.name + "->" + processThisDependsOn.parentNode.parentNode.name + "->" + processThisDependsOn.parentNode.config.codeName + "->" + processThisDependsOn.config.codeName) function responseCallBack(message) { if (message.result !== TS.projects.foundations.globals.standardResponses.DEFAULT_OK_RESPONSE.result) { diff --git a/Projects/Foundations/TS/Process-Modules/StatusReport.js b/Projects/Foundations/TS/Process-Modules/StatusReport.js index c331f1406..94303354f 100644 --- a/Projects/Foundations/TS/Process-Modules/StatusReport.js +++ b/Projects/Foundations/TS/Process-Modules/StatusReport.js @@ -12,7 +12,7 @@ const MODULE_NAME = "Status Report" let thisObject = { - networkNode: undefined, + lanNetworkNode: undefined, mainUtility: undefined, file: undefined, // Here we have the JSON object representing the file content. initialize: initialize, @@ -106,13 +106,13 @@ let network = TS.projects.foundations.globals.taskConstants.NETWORK_NODE let processThisDependsOn = statusDependencyNode.referenceParent.parentNode - for (let i = 0; i < network.networkNodes.length; i++) { - let networkNode = network.networkNodes[i] + for (let i = 0; i < network.lanNetworkNodes.length; i++) { + let lanNetworkNode = network.lanNetworkNodes[i] - if (checkThisDataBranch(networkNode.dataTasks) === true) { return } - if (checkThisTradingBranch(networkNode.testingTradingTasks) === true) { return } - if (checkThisTradingBranch(networkNode.productionTradingTasks) === true) { return } - if (checkThisLearningBranch(networkNode.learningTasks) === true) { return } + if (checkThisDataBranch(lanNetworkNode.dataTasks) === true) { return } + if (checkThisTradingBranch(lanNetworkNode.testingTradingTasks) === true) { return } + if (checkThisTradingBranch(lanNetworkNode.productionTradingTasks) === true) { return } + if (checkThisLearningBranch(lanNetworkNode.learningTasks) === true) { return } function checkThisDataBranch(branch) { if (branch === undefined) { return } @@ -151,10 +151,10 @@ We found where the task that runs the process definition this status report depends on and where it is located on the network. */ - thisObject.networkNode = networkNode - TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] initialize -> Retrieving status report from " + networkNode.name + " -> host = " + networkNode.config.host + ' -> port = ' + networkNode.config.webPort + '.') + thisObject.lanNetworkNode = lanNetworkNode + TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] initialize -> Retrieving status report from " + lanNetworkNode.name + " -> host = " + lanNetworkNode.config.host + ' -> port = ' + lanNetworkNode.config.webPort + '.') - fileStorage = TS.projects.foundations.taskModules.fileStorage.newFileStorage(processIndex, networkNode.config.host, networkNode.config.webPort) + fileStorage = TS.projects.foundations.taskModules.fileStorage.newFileStorage(processIndex, lanNetworkNode.config.host, lanNetworkNode.config.webPort) callBackFunction(TS.projects.foundations.globals.standardResponses.DEFAULT_OK_RESPONSE) return true } @@ -203,10 +203,10 @@ We found where the task that runs the process definition this status report depends on and where it is located on the network. */ - thisObject.networkNode = networkNode - TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] initialize -> Retrieving status report from " + networkNode.name + " -> host = " + networkNode.config.host + ' -> port = ' + networkNode.config.webPort + '.') + thisObject.lanNetworkNode = lanNetworkNode + TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] initialize -> Retrieving status report from " + lanNetworkNode.name + " -> host = " + lanNetworkNode.config.host + ' -> port = ' + lanNetworkNode.config.webPort + '.') - fileStorage = TS.projects.foundations.taskModules.fileStorage.newFileStorage(processIndex, networkNode.config.host, networkNode.config.webPort) + fileStorage = TS.projects.foundations.taskModules.fileStorage.newFileStorage(processIndex, lanNetworkNode.config.host, lanNetworkNode.config.webPort) callBackFunction(TS.projects.foundations.globals.standardResponses.DEFAULT_OK_RESPONSE) return true } @@ -255,10 +255,10 @@ We found where the task that runs the process definition this status report depends on and where it is located on the network. */ - thisObject.networkNode = networkNode - TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] initialize -> Retrieving status report from " + networkNode.name + " -> host = " + networkNode.config.host + ' -> port = ' + networkNode.config.webPort + '.') + thisObject.lanNetworkNode = lanNetworkNode + TS.projects.foundations.globals.loggerVariables.VARIABLES_BY_PROCESS_INDEX_MAP.get(processIndex).BOT_MAIN_LOOP_LOGGER_MODULE_OBJECT.write(MODULE_NAME, "[INFO] initialize -> Retrieving status report from " + lanNetworkNode.name + " -> host = " + lanNetworkNode.config.host + ' -> port = ' + lanNetworkNode.config.webPort + '.') - fileStorage = TS.projects.foundations.taskModules.fileStorage.newFileStorage(processIndex, networkNode.config.host, networkNode.config.webPort) + fileStorage = TS.projects.foundations.taskModules.fileStorage.newFileStorage(processIndex, lanNetworkNode.config.host, lanNetworkNode.config.webPort) callBackFunction(TS.projects.foundations.globals.standardResponses.DEFAULT_OK_RESPONSE) return true } @@ -294,7 +294,7 @@ function finalize() { fileStorage = undefined - thisObject.networkNode = undefined + thisObject.lanNetworkNode = undefined bot = undefined thisObject = undefined } diff --git a/Projects/Foundations/UI/Function-Libraries/ChartingSpaceFunctions.js b/Projects/Foundations/UI/Function-Libraries/ChartingSpaceFunctions.js index 719ca6569..bbd74b0a3 100644 --- a/Projects/Foundations/UI/Function-Libraries/ChartingSpaceFunctions.js +++ b/Projects/Foundations/UI/Function-Libraries/ChartingSpaceFunctions.js @@ -98,21 +98,21 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() { for (let i = 0; i < rootNodes.length; i++) { let rootNode = rootNodes[i] - if (rootNode.type === 'Network') { - let networkNode = rootNode - scanNetworkNode(networkNode) + if (rootNode.type === 'LAN Network') { + let lanNetworkNode = rootNode + scanNetworkNode(lanNetworkNode) } } - function scanNetworkNode(networkNode) { - if (networkNode === undefined) { return } + function scanNetworkNode(lanNetworkNode) { + if (lanNetworkNode === undefined) { return } - let backtestingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Backtesting Session') - let fordwardTestingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Forward Testing Session') - let paperTradingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Paper Trading Session') - let liveTradingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Live Trading Session') - let backLearningSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Back Learning Session') - let liveLearningSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Live Learning Session') + let backtestingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Backtesting Session') + let fordwardTestingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Forward Testing Session') + let paperTradingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Paper Trading Session') + let liveTradingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Live Trading Session') + let backLearningSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Back Learning Session') + let liveLearningSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Live Learning Session') scanSessionArray(backtestingSessionsArray) scanSessionArray(fordwardTestingSessionsArray) @@ -130,19 +130,19 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() { let market = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(session, 'Market Trading Tasks', undefined, true, false, true, false) if (market.payload.referenceParent === undefined) { continue } if (UI.projects.foundations.utilities.nodeChildren.isMissingChildrenById(node, session, true) === true) { - createTimeMachine(node, session, market.payload.referenceParent, networkNode, rootNodes) + createTimeMachine(node, session, market.payload.referenceParent, lanNetworkNode, rootNodes) } } } } } - function createTimeMachine(dashboard, session, market, networkNode, rootNodes) { + function createTimeMachine(dashboard, session, market, lanNetworkNode, rootNodes) { let mineProducts let timeMachine = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(dashboard, 'Time Machine') let exchange = market.payload.parentNode.payload.parentNode UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(timeMachine, session) - timeMachine.name = session.name + ' ' + session.type + ' ' + networkNode.name + ' ' + exchange.name + ' ' + market.name + timeMachine.name = session.name + ' ' + session.type + ' ' + lanNetworkNode.name + ' ' + exchange.name + ' ' + market.name timeMachine.payload.floatingObject.collapseToggle() timeMachine.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180 timeMachine.timeFrameScale.payload.floatingObject.angleToParent = ANGLE_TO_PARENT.RANGE_180 @@ -151,7 +151,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() { /* We will create 3 Time Line Charts for the Trading Mine Products */ - mineProducts = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Trading Mine Products') + mineProducts = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Trading Mine Products') for (let j = 0; j < mineProducts.length; j++) { let mineProduct = mineProducts[j] /* @@ -210,7 +210,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() { /* We will create 3 Time Line Charts for the Learning Mine Products */ - mineProducts = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Learning Mine Products') + mineProducts = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Learning Mine Products') for (let j = 0; j < mineProducts.length; j++) { let mineProduct = mineProducts[j] /* @@ -269,7 +269,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() { /* We need to create a Timeline Chart for each Data Mine Products. */ - mineProducts = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Data Mine Products') + mineProducts = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Data Mine Products') for (let j = 0; j < mineProducts.length; j++) { let mineProduct = mineProducts[j] /* @@ -302,7 +302,7 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() { function addMissingDashboards(node, rootNodes) { for (let i = 0; i < rootNodes.length; i++) { let rootNode = rootNodes[i] - if (rootNode.type === 'Network') { + if (rootNode.type === 'LAN Network') { let network = rootNode scanNetwork(network) } @@ -311,25 +311,25 @@ function newFoundationsFunctionLibraryChartingSpaceFunctions() { function scanNetwork(network) { if (network === undefined) { return } - for (let j = 0; j < network.networkNodes.length; j++) { - let networkNode = network.networkNodes[j] - scanNetworkNode(networkNode) + for (let j = 0; j < network.lanNetworkNodes.length; j++) { + let lanNetworkNode = network.lanNetworkNodes[j] + scanNetworkNode(lanNetworkNode) } - function scanNetworkNode(networkNode) { - let testingTradingTasks = UI.projects.foundations.utilities.branches.findInBranch(networkNode, 'Testing Trading Tasks', node, true) - let productionTradingTasks = UI.projects.foundations.utilities.branches.findInBranch(networkNode, 'Production Trading Tasks', node, true) + function scanNetworkNode(lanNetworkNode) { + let testingTradingTasks = UI.projects.foundations.utilities.branches.findInBranch(lanNetworkNode, 'Testing Trading Tasks', node, true) + let productionTradingTasks = UI.projects.foundations.utilities.branches.findInBranch(lanNetworkNode, 'Production Trading Tasks', node, true) if (UI.projects.foundations.utilities.nodeChildren.isMissingChildrenById(node, testingTradingTasks, true) === true) { let dashboard = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Dashboard') UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(dashboard, testingTradingTasks) - dashboard.name = testingTradingTasks.type + ' ' + networkNode.name + dashboard.name = testingTradingTasks.type + ' ' + lanNetworkNode.name } if (UI.projects.foundations.utilities.nodeChildren.isMissingChildrenById(node, productionTradingTasks, true) === true) { let dashboard = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(node, 'Dashboard') UI.projects.foundations.functionLibraries.attachDetach.referenceAttachNode(dashboard, productionTradingTasks) - dashboard.name = productionTradingTasks.type + ' ' + networkNode.name + dashboard.name = productionTradingTasks.type + ' ' + lanNetworkNode.name } } } diff --git a/Projects/Foundations/UI/Function-Libraries/CryptoEcosystemFunctions.js b/Projects/Foundations/UI/Function-Libraries/CryptoEcosystemFunctions.js index a1d60b35d..fd3aa7600 100644 --- a/Projects/Foundations/UI/Function-Libraries/CryptoEcosystemFunctions.js +++ b/Projects/Foundations/UI/Function-Libraries/CryptoEcosystemFunctions.js @@ -232,7 +232,7 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { for (let i = 0; i < rootNodes.length; i++) { let rootNode = rootNodes[i] - if (rootNode.type === 'Network') { + if (rootNode.type === 'LAN Network') { installInNetwork(rootNode) } } @@ -248,12 +248,12 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { function installInNetwork(network) { - for (let j = 0; j < network.networkNodes.length; j++) { - let networkNode = network.networkNodes[j] - installInNetworkNode(networkNode) + for (let j = 0; j < network.lanNetworkNodes.length; j++) { + let lanNetworkNode = network.lanNetworkNodes[j] + installInNetworkNode(lanNetworkNode) } - function installInNetworkNode(networkNode) { + function installInNetworkNode(lanNetworkNode) { let tradingSessionsCreatedArray = [] let learningSessionsCreatedArray = [] @@ -270,9 +270,9 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { /* Here we complete the missing stuff at Data Tasks */ - let dataTasks = UI.projects.foundations.utilities.branches.findInBranch(networkNode, 'Data Tasks', node, true) + let dataTasks = UI.projects.foundations.utilities.branches.findInBranch(lanNetworkNode, 'Data Tasks', node, true) if (dataTasks === undefined) { - dataTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(networkNode, 'Data Tasks') + dataTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(lanNetworkNode, 'Data Tasks') } /* We will make ourserves sure that the Project Data Tasks nodes are there. @@ -303,9 +303,9 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { /* Here we complete the missing stuff at Learning Tasks */ - let learningTasks = UI.projects.foundations.utilities.branches.findInBranch(networkNode, 'Learning Tasks', node, true) + let learningTasks = UI.projects.foundations.utilities.branches.findInBranch(lanNetworkNode, 'Learning Tasks', node, true) if (learningTasks === undefined) { - learningTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(networkNode, 'Learning Tasks') + learningTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(lanNetworkNode, 'Learning Tasks') } /* We will make ourserves sure that the Project Learning Tasks nodes are there. @@ -339,7 +339,7 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { learningSessionsCreatedArray = learningSessionsCreatedArray.concat(allSessionsArray) - dashboardsArray.push({ environmentNode: learningTasks, networkNode: networkNode, sessionsArray: allSessionsArray }) + dashboardsArray.push({ environmentNode: learningTasks, lanNetworkNode: lanNetworkNode, sessionsArray: allSessionsArray }) } } @@ -357,9 +357,9 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { /* Now we install the environmnet at the current Network Node */ - let tradingTasks = UI.projects.foundations.utilities.branches.findInBranch(networkNode, environmentType, node, true) + let tradingTasks = UI.projects.foundations.utilities.branches.findInBranch(lanNetworkNode, environmentType, node, true) if (tradingTasks === undefined) { - tradingTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(networkNode, environmentType) + tradingTasks = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(lanNetworkNode, environmentType) } /* We will make ourserves sure that the Project Trading Tasks nodes are there. @@ -395,7 +395,7 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { .concat(forwardSessionsArray) tradingSessionsCreatedArray = tradingSessionsCreatedArray.concat(allSessionsArray) - dashboardsArray.push({ environmentNode: tradingTasks, networkNode: networkNode, sessionsArray: allSessionsArray }) + dashboardsArray.push({ environmentNode: tradingTasks, lanNetworkNode: lanNetworkNode, sessionsArray: allSessionsArray }) } } } @@ -404,9 +404,9 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { /* Here we complete the missing stuff at Data Mines Data */ - let dataStorage = UI.projects.foundations.utilities.branches.findInBranch(networkNode, 'Data Storage', node, true) + let dataStorage = UI.projects.foundations.utilities.branches.findInBranch(lanNetworkNode, 'Data Storage', node, true) if (dataStorage === undefined) { - dataStorage = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(networkNode, 'Data Storage') + dataStorage = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(lanNetworkNode, 'Data Storage') } let dataMinesData = UI.projects.foundations.utilities.branches.findInBranch(dataStorage, 'Data Mines Data', node, true) if (dataMinesData === undefined) { @@ -443,9 +443,9 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { /* Here we complete the missing stuff at Data Mines Data */ - let dataStorage = UI.projects.foundations.utilities.branches.findInBranch(networkNode, 'Data Storage', node, true) + let dataStorage = UI.projects.foundations.utilities.branches.findInBranch(lanNetworkNode, 'Data Storage', node, true) if (dataStorage === undefined) { - dataStorage = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(networkNode, 'Data Storage') + dataStorage = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(lanNetworkNode, 'Data Storage') } let learningMinesData = UI.projects.foundations.utilities.branches.findInBranch(dataStorage, 'Learning Mines Data', node, true) if (learningMinesData === undefined) { @@ -498,9 +498,9 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { /* Here we complete the missing stuff at Data Mines Data */ - let dataStorage = UI.projects.foundations.utilities.branches.findInBranch(networkNode, 'Data Storage', node, true) + let dataStorage = UI.projects.foundations.utilities.branches.findInBranch(lanNetworkNode, 'Data Storage', node, true) if (dataStorage === undefined) { - dataStorage = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(networkNode, 'Data Storage') + dataStorage = UI.projects.foundations.functionLibraries.uiObjectsFromNodes.addUIObject(lanNetworkNode, 'Data Storage') } let tradingMinesData = UI.projects.foundations.utilities.branches.findInBranch(dataStorage, 'Trading Mines Data', node, true) if (tradingMinesData === undefined) { @@ -575,7 +575,7 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { */ let arrayItem = dashboardsArray[i] let dashboard = UI.projects.foundations.utilities.nodeChildren.findOrCreateChildWithReference(projectDashboards, 'Dashboard', arrayItem.environmentNode) - dashboard.name = arrayItem.environmentNode.type + ' ' + arrayItem.networkNode.name + dashboard.name = arrayItem.environmentNode.type + ' ' + arrayItem.lanNetworkNode.name /* We delete all the existing Time Machines related to the market we are currently installing. For that, we make a new array with the existing Time Machines so that the deleting @@ -611,7 +611,7 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { */ for (let j = 0; j < arrayItem.sessionsArray.length; j++) { let session = arrayItem.sessionsArray[j] - UI.projects.foundations.functionLibraries.chartingSpaceFunctions.createTimeMachine(dashboard, session, node, arrayItem.networkNode, rootNodes) + UI.projects.foundations.functionLibraries.chartingSpaceFunctions.createTimeMachine(dashboard, session, node, arrayItem.lanNetworkNode, rootNodes) } } } @@ -678,7 +678,7 @@ function newFoundationsFunctionLibraryCryptoEcosystemFunctions() { /* Scan Networks for the market being unistalled to delete it. */ for (let i = 0; i < rootNodes.length; i++) { let rootNode = rootNodes[i] - if (rootNode.type === 'Network') { + if (rootNode.type === 'LAN Network') { uninstallInNetwork(rootNode) } } diff --git a/Projects/Foundations/UI/Function-Libraries/DataStorageFunctions.js b/Projects/Foundations/UI/Function-Libraries/DataStorageFunctions.js index 394789321..b2e6a086f 100644 --- a/Projects/Foundations/UI/Function-Libraries/DataStorageFunctions.js +++ b/Projects/Foundations/UI/Function-Libraries/DataStorageFunctions.js @@ -104,13 +104,13 @@ function newFoundationsFunctionLibraryDataStorageFunctions() { } function addMissingTradingSessionReferences(node, rootNodes) { - let networkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(node, 'Network Node', undefined, true, false, true, false) - if (networkNode === undefined) { return } + let lanNetworkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(node, 'LAN Network Node', undefined, true, false, true, false) + if (lanNetworkNode === undefined) { return } - let backtestingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Backtesting Session') - let fordwardTestingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Forward Testing Session') - let paperTradingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Paper Trading Session') - let liveTradingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Live Trading Session') + let backtestingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Backtesting Session') + let fordwardTestingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Forward Testing Session') + let paperTradingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Paper Trading Session') + let liveTradingSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Live Trading Session') addMissingSession(backtestingSessionsArray) addMissingSession(fordwardTestingSessionsArray) @@ -131,11 +131,11 @@ function newFoundationsFunctionLibraryDataStorageFunctions() { } function addMissingLearningSessionReferences(node, rootNodes) { - let networkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(node, 'Network Node', undefined, true, false, true, false) - if (networkNode === undefined) { return } + let lanNetworkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(node, 'LAN Network Node', undefined, true, false, true, false) + if (lanNetworkNode === undefined) { return } - let backLearningSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Back Learning Session') - let liveLearningSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(networkNode, 'Live Learning Session') + let backLearningSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Back Learning Session') + let liveLearningSessionsArray = UI.projects.foundations.utilities.branches.nodeBranchToArray(lanNetworkNode, 'Live Learning Session') addMissingSession(backLearningSessionsArray) addMissingSession(liveLearningSessionsArray) diff --git a/Projects/Foundations/UI/Function-Libraries/LearningSessionFunctions.js b/Projects/Foundations/UI/Function-Libraries/LearningSessionFunctions.js index eee29a5c6..e542b9ae2 100644 --- a/Projects/Foundations/UI/Function-Libraries/LearningSessionFunctions.js +++ b/Projects/Foundations/UI/Function-Libraries/LearningSessionFunctions.js @@ -13,13 +13,13 @@ function newFoundationsFunctionLibraryLearningSessionFunctions() { /* If something fails at validations we just quit. */ return } - let networkNode = validationsResult.networkNode - if (networkNode === undefined) { + let lanNetworkNode = validationsResult.lanNetworkNode + if (lanNetworkNode === undefined) { /* Nodes that do not belong to a network can not get ready. */ return } - let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(networkNode.id) + let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(lanNetworkNode.id) /* First we setup everything so as to listen to the response from the Task Server */ let eventSubscriptionIdOnStatus @@ -47,14 +47,14 @@ function newFoundationsFunctionLibraryLearningSessionFunctions() { /* If something fails at validations we just quit. */ return } - let networkNode = validationsResult.networkNode - if (networkNode === undefined) { + let lanNetworkNode = validationsResult.lanNetworkNode + if (lanNetworkNode === undefined) { /* This means that the validations failed. */ callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) return } - let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(networkNode.id) + let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(lanNetworkNode.id) node.payload.uiObject.run(eventsServerClient, callBackFunction) @@ -174,14 +174,14 @@ function newFoundationsFunctionLibraryLearningSessionFunctions() { /* If something fails at validations we just quit. */ return } - let networkNode = validationsResult.networkNode - if (networkNode === undefined) { + let lanNetworkNode = validationsResult.lanNetworkNode + if (lanNetworkNode === undefined) { /* This means that the validations failed. */ callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) return } - let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(networkNode.id) + let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(lanNetworkNode.id) let key = node.name + '-' + node.type + '-' + node.id eventsServerClient.raiseEvent(key, 'Stop Learning Session') @@ -240,7 +240,7 @@ function newFoundationsFunctionLibraryLearningSessionFunctions() { return } - result.networkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(result.taskManager, 'Network Node', undefined, true, false, true, false) + result.lanNetworkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(result.taskManager, 'LAN Network Node', undefined, true, false, true, false) if (node.learningSystemReference === undefined) { node.payload.uiObject.setErrorMessage('Session needs a child Learning System Reference.') diff --git a/Projects/Foundations/UI/Function-Libraries/TaskFunctions.js b/Projects/Foundations/UI/Function-Libraries/TaskFunctions.js index e1198c7da..0b6e6b84a 100644 --- a/Projects/Foundations/UI/Function-Libraries/TaskFunctions.js +++ b/Projects/Foundations/UI/Function-Libraries/TaskFunctions.js @@ -56,13 +56,13 @@ function newFoundationsFunctionLibraryTaskFunctions() { return thisObject function syncronizeTaskWithBackEnd(node) { - let networkNode = validations(node) - if (networkNode === undefined) { + let lanNetworkNode = validations(node) + if (lanNetworkNode === undefined) { /* Nodes that do not belong to a network can not get ready. */ return } - let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(networkNode.id) + let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(lanNetworkNode.id) /* First we setup everything so as to listen to the response from the Task Manger */ let eventSubscriptionIdOnStatus @@ -90,14 +90,14 @@ function newFoundationsFunctionLibraryTaskFunctions() { function runTask(node, isDebugging, callBackFunction) { - let networkNode = validations(node) - if (networkNode === undefined) { + let lanNetworkNode = validations(node) + if (lanNetworkNode === undefined) { /* This means that the validations failed. */ callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) return } - let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(networkNode.id) + let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(lanNetworkNode.id) for (let i = 0; i < node.bot.processes.length; i++) { let process = node.bot.processes[i] @@ -161,7 +161,7 @@ function newFoundationsFunctionLibraryTaskFunctions() { let taskDefinition = UI.projects.foundations.functionLibraries.protocolNode.getProtocolNode(node, false, true, true, false, false, taskLightingPath) - let networkLightingPath = '->Network->Network Node->' + + let networkLightingPath = '->LAN Network->LAN Network Node->' + 'Data Storage->' + 'Data Mines Data->Trading Mines Data->Learning Mines Data->' + 'Project Data Products->Project Trading Products->Project Learning Products->' + @@ -185,7 +185,7 @@ function newFoundationsFunctionLibraryTaskFunctions() { 'Market->' + 'Process Definition->' - let networkDefinition = UI.projects.foundations.functionLibraries.protocolNode.getProtocolNode(networkNode.payload.parentNode, false, true, true, false, false, networkLightingPath) + let networkDefinition = UI.projects.foundations.functionLibraries.protocolNode.getProtocolNode(lanNetworkNode.payload.parentNode, false, true, true, false, false, networkLightingPath) /* We will also send all the project schemas we have to the Task Server. @@ -218,13 +218,13 @@ function newFoundationsFunctionLibraryTaskFunctions() { } function stopTask(node, callBackFunction) { - let networkNode = validations(node) - if (networkNode === undefined) { + let lanNetworkNode = validations(node) + if (lanNetworkNode === undefined) { /* This means that the validations failed. */ callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) return } - let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(networkNode.id) + let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(lanNetworkNode.id) let event = { taskId: node.id, @@ -288,24 +288,24 @@ function newFoundationsFunctionLibraryTaskFunctions() { return } - let networkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(taskManager, 'Network Node', undefined, true, false, true, false) + let lanNetworkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(taskManager, 'LAN Network Node', undefined, true, false, true, false) - if (UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(networkNode.payload, 'host') === undefined) { + if (UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(lanNetworkNode.payload, 'host') === undefined) { node.payload.uiObject.setErrorMessage('Network Node needs to have a valid Host property at its config.') return } - if (UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(networkNode.payload, 'webPort') === undefined) { + if (UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(lanNetworkNode.payload, 'webPort') === undefined) { node.payload.uiObject.setErrorMessage('Network Node needs to have a valid webPort property at its config.') return } - if (UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(networkNode.payload, 'webSocketsPort') === undefined) { + if (UI.projects.foundations.utilities.nodeConfig.loadConfigProperty(lanNetworkNode.payload, 'webSocketsPort') === undefined) { node.payload.uiObject.setErrorMessage('Network Node needs to have a valid webSocketsPort property at its config.') return } - return networkNode + return lanNetworkNode } function runAllTasks(taskManager) { diff --git a/Projects/Foundations/UI/Function-Libraries/TradingSessionFunctions.js b/Projects/Foundations/UI/Function-Libraries/TradingSessionFunctions.js index edb1c3a21..65ab97da8 100644 --- a/Projects/Foundations/UI/Function-Libraries/TradingSessionFunctions.js +++ b/Projects/Foundations/UI/Function-Libraries/TradingSessionFunctions.js @@ -13,13 +13,13 @@ function newFoundationsFunctionLibraryTradingSessionFunctions() { /* If something fails at validations we just quit. */ return } - let networkNode = validationsResult.networkNode - if (networkNode === undefined) { + let lanNetworkNode = validationsResult.lanNetworkNode + if (lanNetworkNode === undefined) { /* Nodes that do not belong to a network can not get ready. */ return } - let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(networkNode.id) + let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(lanNetworkNode.id) /* First we setup everything so as to listen to the response from the Task Server */ let eventSubscriptionIdOnStatus @@ -47,14 +47,14 @@ function newFoundationsFunctionLibraryTradingSessionFunctions() { /* If something fails at validations we just quit. */ return } - let networkNode = validationsResult.networkNode - if (networkNode === undefined) { + let lanNetworkNode = validationsResult.lanNetworkNode + if (lanNetworkNode === undefined) { /* This means that the validations failed. */ callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) return } - let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(networkNode.id) + let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(lanNetworkNode.id) let key = node.name + '-' + node.type + '-' + node.id @@ -200,14 +200,14 @@ function newFoundationsFunctionLibraryTradingSessionFunctions() { /* If something fails at validations we just quit. */ return } - let networkNode = validationsResult.networkNode - if (networkNode === undefined) { + let lanNetworkNode = validationsResult.lanNetworkNode + if (lanNetworkNode === undefined) { /* This means that the validations failed. */ callBackFunction(GLOBAL.DEFAULT_FAIL_RESPONSE) return } - let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(networkNode.id) + let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(lanNetworkNode.id) let key = node.name + '-' + node.type + '-' + node.id eventsServerClient.raiseEvent(key, 'Stop Trading Session') @@ -266,7 +266,7 @@ function newFoundationsFunctionLibraryTradingSessionFunctions() { return } - result.networkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(result.taskManager, 'Network Node', undefined, true, false, true, false) + result.lanNetworkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(result.taskManager, 'LAN Network Node', undefined, true, false, true, false) if (node.tradingSystemReference === undefined) { node.payload.uiObject.setErrorMessage('Session needs a child Trading System Reference.') diff --git a/Projects/Foundations/UI/Function-Libraries/UiObjectsFromNodes.js b/Projects/Foundations/UI/Function-Libraries/UiObjectsFromNodes.js index 37e444ea9..ccac9e95c 100644 --- a/Projects/Foundations/UI/Function-Libraries/UiObjectsFromNodes.js +++ b/Projects/Foundations/UI/Function-Libraries/UiObjectsFromNodes.js @@ -426,6 +426,21 @@ function newFoundationsFunctionLibraryUiObjectsFromNodes() { ) { node.project = 'Foundations' } + /* Migration code from beta 11 to beta 12 */ + if ( + node.type === 'Network' + ) { + node.type = "LAN Network" + if (node.lanNetworkNodes === undefined && node.networkNodes !== undefined) { + node.lanNetworkNodes = node.networkNodes + } + } + + if ( + node.type === 'Network Node' + ) { + node.type = "LAN Network Node" + } /* This function can be called with a positionOffset to change the node saved position and all of its descendants positions as well with an diff --git a/Projects/Foundations/UI/Spaces/Charting-Space/PlottersManager.js b/Projects/Foundations/UI/Spaces/Charting-Space/PlottersManager.js index ee7dea042..94517c5d1 100644 --- a/Projects/Foundations/UI/Spaces/Charting-Space/PlottersManager.js +++ b/Projects/Foundations/UI/Spaces/Charting-Space/PlottersManager.js @@ -171,12 +171,12 @@ function newPlottersManager() { } } - let host = layer.networkNode.config.host - let webPort = layer.networkNode.config.webPort + let host = layer.lanNetworkNode.config.host + let webPort = layer.lanNetworkNode.config.webPort if (host === undefined) { host = window.location.hostname } if (webPort === undefined) { webPort = window.location.port } - let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(layer.networkNode.id) + let eventsServerClient = UI.projects.foundations.spaces.designSpace.workspace.eventsServerClients.get(layer.lanNetworkNode.id) storage.initialize( mine, diff --git a/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js b/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js index 88b4f1ce9..5f1fcc8bc 100644 --- a/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js +++ b/Projects/Foundations/UI/Spaces/Design-Space/Workspace.js @@ -143,15 +143,15 @@ function newWorkspace() { for (let i = 0; i < thisObject.workspaceNode.rootNodes.length; i++) { let rootNode = thisObject.workspaceNode.rootNodes[i] - if (rootNode.type === 'Network') { - if (rootNode.networkNodes === undefined) { continue } - for (let j = 0; j < rootNode.networkNodes.length; j++) { - let networkNode = rootNode.networkNodes[j] + if (rootNode.type === 'LAN Network') { + if (rootNode.lanNetworkNodes === undefined) { continue } + for (let j = 0; j < rootNode.lanNetworkNodes.length; j++) { + let lanNetworkNode = rootNode.lanNetworkNodes[j] - let eventsServerClient = newEventsServerClient(networkNode) + let eventsServerClient = newEventsServerClient(lanNetworkNode) eventsServerClient.initialize() - thisObject.eventsServerClients.set(networkNode.id, eventsServerClient) + thisObject.eventsServerClients.set(lanNetworkNode.id, eventsServerClient) } } } @@ -473,25 +473,25 @@ function newWorkspace() { function stopAllRunningTasks() { for (let i = 0; i < thisObject.workspaceNode.rootNodes.length; i++) { let rootNode = thisObject.workspaceNode.rootNodes[i] - if (rootNode.type === 'Network') { - if (rootNode.networkNodes !== undefined) { - for (let j = 0; j < rootNode.networkNodes.length; j++) { - let networkNode = rootNode.networkNodes[j] - if (networkNode.dataTasks !== undefined && networkNode.dataTasks.payload !== undefined) { - networkNode.dataTasks.payload.uiObject.menu.internalClick('Stop All Exchange Data Tasks') - networkNode.dataTasks.payload.uiObject.menu.internalClick('Stop All Exchange Data Tasks') + if (rootNode.type === 'LAN Network') { + if (rootNode.lanNetworkNodes !== undefined) { + for (let j = 0; j < rootNode.lanNetworkNodes.length; j++) { + let lanNetworkNode = rootNode.lanNetworkNodes[j] + if (lanNetworkNode.dataTasks !== undefined && lanNetworkNode.dataTasks.payload !== undefined) { + lanNetworkNode.dataTasks.payload.uiObject.menu.internalClick('Stop All Exchange Data Tasks') + lanNetworkNode.dataTasks.payload.uiObject.menu.internalClick('Stop All Exchange Data Tasks') } - if (networkNode.learningTasks !== undefined && networkNode.learningTasks.payload !== undefined) { - networkNode.learningTasks.payload.uiObject.menu.internalClick('Stop All Exchange Learning Tasks') - networkNode.learningTasks.payload.uiObject.menu.internalClick('Stop All Exchange Learning Tasks') + if (lanNetworkNode.learningTasks !== undefined && lanNetworkNode.learningTasks.payload !== undefined) { + lanNetworkNode.learningTasks.payload.uiObject.menu.internalClick('Stop All Exchange Learning Tasks') + lanNetworkNode.learningTasks.payload.uiObject.menu.internalClick('Stop All Exchange Learning Tasks') } - if (networkNode.testingTradingTasks !== undefined && networkNode.testingTradingTasks.payload !== undefined) { - networkNode.testingTradingTasks.payload.uiObject.menu.internalClick('Stop All Exchange Trading Tasks') - networkNode.testingTradingTasks.payload.uiObject.menu.internalClick('Stop All Exchange Trading Tasks') + if (lanNetworkNode.testingTradingTasks !== undefined && lanNetworkNode.testingTradingTasks.payload !== undefined) { + lanNetworkNode.testingTradingTasks.payload.uiObject.menu.internalClick('Stop All Exchange Trading Tasks') + lanNetworkNode.testingTradingTasks.payload.uiObject.menu.internalClick('Stop All Exchange Trading Tasks') } - if (networkNode.productionTradingTasks !== undefined && networkNode.productionTradingTasks.payload !== undefined) { - networkNode.productionTradingTasks.payload.uiObject.menu.internalClick('Stop All Exchange Trading Tasks') - networkNode.productionTradingTasks.payload.uiObject.menu.internalClick('Stop All Exchange Trading Tasks') + if (lanNetworkNode.productionTradingTasks !== undefined && lanNetworkNode.productionTradingTasks.payload !== undefined) { + lanNetworkNode.productionTradingTasks.payload.uiObject.menu.internalClick('Stop All Exchange Trading Tasks') + lanNetworkNode.productionTradingTasks.payload.uiObject.menu.internalClick('Stop All Exchange Trading Tasks') } } } diff --git a/Projects/Foundations/UI/Spaces/Floating-Space/FloatingSpace.js b/Projects/Foundations/UI/Spaces/Floating-Space/FloatingSpace.js index dbc3ec496..3f932d114 100644 --- a/Projects/Foundations/UI/Spaces/Floating-Space/FloatingSpace.js +++ b/Projects/Foundations/UI/Spaces/Floating-Space/FloatingSpace.js @@ -272,7 +272,7 @@ function newFoundationsFloatingSpace() { payload.node.type === 'Learning System' || payload.node.type === 'Trading Engine' || payload.node.type === 'Learning Engine' || - payload.node.type === 'Network' || + payload.node.type === 'LAN Network' || payload.node.type === 'Crypto Ecosystem' || payload.node.type === 'Charting Space' || payload.node.type === 'Data Mine' || diff --git a/Projects/Foundations/UI/Spaces/Panel-Space/Layer.js b/Projects/Foundations/UI/Spaces/Panel-Space/Layer.js index d25a92cdf..945940f21 100644 --- a/Projects/Foundations/UI/Spaces/Panel-Space/Layer.js +++ b/Projects/Foundations/UI/Spaces/Panel-Space/Layer.js @@ -23,7 +23,7 @@ function newLayer() { plotterTypeIcon: undefined, baseAssetIcon: undefined, quotedAssetIcon: undefined, - networkNode: undefined, + lanNetworkNode: undefined, checkStatusAtShutDown: checkStatusAtShutDown, physics: physics, draw: draw, @@ -132,7 +132,7 @@ function newLayer() { thisObject.plotterTypeIcon = undefined thisObject.baseAssetIcon = undefined thisObject.quotedAssetIcon = undefined - thisObject.networkNode = undefined + thisObject.lanNetworkNode = undefined thisObject.bot = undefined thisObject.productDefinition = undefined thisObject.mine = undefined @@ -166,8 +166,8 @@ function newLayer() { 'Market Trading Products->Exchange Trading Products->' + 'Market Learning Products->Exchange Learning Products->' + 'Project Data Products->Project Learning Products->Project Trading Products->' + - 'Data Mines Data->Trading Mines Data->Learning Mines Data->Data Storage->Network Node->' + - 'Data Storage->Network Node->' + + 'Data Mines Data->Trading Mines Data->Learning Mines Data->Data Storage->LAN Network Node->' + + 'Data Storage->LAN Network Node->' + 'Backtesting Session->Paper Trading Session->Forward Testing Session->Live Trading Session->' + 'Back Learning Session->Live Learning Session->' + 'Trading System Reference->Trading Engine Reference->Trading System->Trading Engine->' + @@ -285,8 +285,8 @@ function newLayer() { return } - thisObject.networkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(thisObject.definition, 'Network Node', undefined, false, true, true, true) - if (thisObject.networkNode === undefined) { + thisObject.lanNetworkNode = UI.projects.foundations.utilities.meshes.findNodeInNodeMesh(thisObject.definition, 'LAN Network Node', undefined, false, true, true, true) + if (thisObject.lanNetworkNode === undefined) { thisObject.payload.uiObject.setErrorMessage('Network Node not Found') return } diff --git a/Projects/Governance/Plugins/Assets/Foundations-Project-Docs.json b/Projects/Governance/Plugins/Assets/Foundations-Project-Docs.json index 7927ba0ea..72d146f93 100644 --- a/Projects/Governance/Plugins/Assets/Foundations-Project-Docs.json +++ b/Projects/Governance/Plugins/Assets/Foundations-Project-Docs.json @@ -26325,13 +26325,13 @@ "assetClasses": [ { "type": "Asset Class", - "name": "Network", + "name": "LAN Network", "config": "{\"codeName\":\"Network\"}", "project": "Governance", "assetClasses": [ { "type": "Asset Class", - "name": "Network", + "name": "LAN Network", "config": "{\"codeName\":\"Network\"}", "project": "Governance", "assetClasses": [], @@ -50044,13 +50044,13 @@ "assetClasses": [ { "type": "Asset Class", - "name": "Network", + "name": "LAN Network", "config": "{\"codeName\":\"Network\"}", "project": "Governance", "assetClasses": [ { "type": "Asset Class", - "name": "Network", + "name": "LAN Network", "config": "{\"codeName\":\"Network\"}", "project": "Governance", "assetClasses": [], diff --git a/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json b/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json index 04bbd1a5f..d20244250 100644 --- a/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json +++ b/Projects/Governance/Plugins/User-Profiles/Luis-Fernando-Molina.json @@ -13213,12 +13213,12 @@ "id": "a8de78f0-c3e4-4a2a-b7e8-f659073969db", "savedPayload": { "position": { - "x": 7692.307692307692, - "y": 21250 + "x": 39655.1724137931, + "y": 18250 }, "targetPosition": { - "x": 7692.307692307692, - "y": 21250 + "x": 39655.1724137931, + "y": 18250 }, "floatingObject": { "isPinned": false, diff --git a/Projects/Governance/Plugins/User-Profiles/Test-Network-Client-Profile.json b/Projects/Governance/Plugins/User-Profiles/Test-Network-Client-Profile.json index ca0070a33..c690c8490 100644 --- a/Projects/Governance/Plugins/User-Profiles/Test-Network-Client-Profile.json +++ b/Projects/Governance/Plugins/User-Profiles/Test-Network-Client-Profile.json @@ -62,12 +62,12 @@ "id": "baa2f02c-2920-4edb-a103-d452fc61d82f", "savedPayload": { "position": { - "x": 30769.230769230762, - "y": 21250 + "x": 29310.344827586196, + "y": 24250 }, "targetPosition": { - "x": 30769.230769230762, - "y": 21250 + "x": 29310.344827586196, + "y": 24250 }, "floatingObject": { "isPinned": false, diff --git a/Projects/Governance/Plugins/User-Profiles/Test-Network-Node-Profile.json b/Projects/Governance/Plugins/User-Profiles/Test-Network-Node-Profile.json index 2ef8dfc42..8a2bcd5c7 100644 --- a/Projects/Governance/Plugins/User-Profiles/Test-Network-Node-Profile.json +++ b/Projects/Governance/Plugins/User-Profiles/Test-Network-Node-Profile.json @@ -62,12 +62,12 @@ "id": "36c2b050-631f-4291-987c-418adc94317d", "savedPayload": { "position": { - "x": 28846.15384615384, - "y": 18250 + "x": 27586.206896551714, + "y": 21250 }, "targetPosition": { - "x": 28846.15384615384, - "y": 18250 + "x": 27586.206896551714, + "y": 21250 }, "floatingObject": { "isPinned": false, diff --git a/Projects/Network/Icons/lan-network-node.png b/Projects/Network/Icons/lan-network-node.png new file mode 100644 index 0000000000000000000000000000000000000000..30782f8e34801aeb456efb18002412e530e40b82 GIT binary patch literal 10930 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 literal 0 HcmV?d00001 diff --git a/Projects/Network/Icons/lan-network.png b/Projects/Network/Icons/lan-network.png new file mode 100644 index 0000000000000000000000000000000000000000..0880e7e8d86f766cbe0e1d323bb27e5d989181cd GIT binary patch literal 20790 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 Date: Mon, 20 Sep 2021 12:38:49 +0200 Subject: [PATCH 3/7] Fixing some Icons --- .../{network-project.png => network.png} | Bin .../Schemas/App-Schema/network-project.json | 1 + Projects/TensorFlow/Icons/not-used-yet.png | Bin 0 -> 8071 bytes .../TensorFlow/Icons/tensorflow-project.png | Bin 26257 -> 0 bytes Projects/TensorFlow/Icons/tensorflow.png | Bin 8071 -> 26257 bytes .../App-Schema/tensorflow-project.json | 1 + 6 files changed, 2 insertions(+) rename Projects/Network/Icons/{network-project.png => network.png} (100%) create mode 100644 Projects/TensorFlow/Icons/not-used-yet.png delete mode 100644 Projects/TensorFlow/Icons/tensorflow-project.png diff --git a/Projects/Network/Icons/network-project.png b/Projects/Network/Icons/network.png similarity index 100% rename from Projects/Network/Icons/network-project.png rename to Projects/Network/Icons/network.png diff --git a/Projects/Network/Schemas/App-Schema/network-project.json b/Projects/Network/Schemas/App-Schema/network-project.json index b4b0d1e1e..d1265b6af 100644 --- a/Projects/Network/Schemas/App-Schema/network-project.json +++ b/Projects/Network/Schemas/App-Schema/network-project.json @@ -24,6 +24,7 @@ "addLeftIcons": true, "isPinned": true, "positionLocked": true, + "icon": "network", "childrenNodesProperties": [ { "name": "projectDefinition", diff --git a/Projects/TensorFlow/Icons/not-used-yet.png b/Projects/TensorFlow/Icons/not-used-yet.png new file mode 100644 index 0000000000000000000000000000000000000000..9b3b41696452be84f1f39c1a00a502acdec773d9 GIT binary patch literal 8071 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 I$Se?9tAZT&3kIjMjq)>p`PUTAFI=D17 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 I$Se?9tAZT&3kIjMjq)>p`PUTAFI=D17 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 Date: Mon, 20 Sep 2021 12:47:30 +0200 Subject: [PATCH 4/7] Update CircularMenu.js --- Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js index f49dcd25b..c9fa366ba 100644 --- a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js +++ b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js @@ -107,7 +107,7 @@ function newCircularMenu() { } /* There are 4 possible rings of icons, we will go through each of them here. */ - let amplitudeArray = [80, 50, 40, 80] + let amplitudeArray = [80, 70, 40, 80] let initialAngleArray = [220, 205, 200, 180] for (let j = 1; j < ringsArray.length + 1; j++) { let iconOnlyArray = ringsArray[j - 1] From 7dfe5c2397268af47208355d81cbb4a999ff3afa Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 20 Sep 2021 12:51:40 +0200 Subject: [PATCH 5/7] refactoring Network Hierarchy into LAN Network Hierarchy --- ...-hierarchy.json => lan-network-001-network-hierarchy.json} | 4 ++-- ...-tasks.json => lan-network-002-organization-of-tasks.json} | 0 ...s-section.json => lan-network-003-data-tasks-section.json} | 0 ...> lan-network-004-indicator-and-sensor-bot-instances.json} | 0 ...son => lan-network-005-testing-trading-tasks-section.json} | 0 ... => lan-network-006-production-trading-tasks-section.json} | 0 ...etwork-007-trading-bot-instance-and-trading-sessions.json} | 0 ...s.json => lan-network-008-trading-session-references.json} | 0 ...s.json => lan-network-009-trading-session-parameters.json} | 0 ...section.json => lan-network-010-data-storage-section.json} | 0 ...tion.json => lan-network-011-data-mines-data-section.json} | 0 ...n.json => lan-network-012-trading-mines-data-section.json} | 0 ...on => lan-network-013-data-and-trading-mine-products.json} | 0 ...on => lan-network-014-how-to-safely-close-superalgos.json} | 0 .../trading-farms-001-trading-farms-fundamental-concepts.json | 2 +- ...ing-farms-002-trading-farms-set-up-a-network-of-nodes.json | 4 ++-- Projects/Foundations/TS/Process-Modules/Dataset.js | 2 +- 17 files changed, 6 insertions(+), 6 deletions(-) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-001-network-hierarchy.json => lan-network-001-network-hierarchy.json} (93%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-002-organization-of-tasks.json => lan-network-002-organization-of-tasks.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-003-data-tasks-section.json => lan-network-003-data-tasks-section.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-004-indicator-and-sensor-bot-instances.json => lan-network-004-indicator-and-sensor-bot-instances.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-005-testing-trading-tasks-section.json => lan-network-005-testing-trading-tasks-section.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-006-production-trading-tasks-section.json => lan-network-006-production-trading-tasks-section.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-007-trading-bot-instance-and-trading-sessions.json => lan-network-007-trading-bot-instance-and-trading-sessions.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-008-trading-session-references.json => lan-network-008-trading-session-references.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-009-trading-session-parameters.json => lan-network-009-trading-session-parameters.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-010-data-storage-section.json => lan-network-010-data-storage-section.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-011-data-mines-data-section.json => lan-network-011-data-mines-data-section.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-012-trading-mines-data-section.json => lan-network-012-trading-mines-data-section.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-013-data-and-trading-mine-products.json => lan-network-013-data-and-trading-mine-products.json} (100%) rename Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/{network-014-how-to-safely-close-superalgos.json => lan-network-014-how-to-safely-close-superalgos.json} (100%) diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-001-network-hierarchy.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-001-network-hierarchy.json similarity index 93% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-001-network-hierarchy.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-001-network-hierarchy.json index d03324451..3f1b98315 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-001-network-hierarchy.json +++ b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-001-network-hierarchy.json @@ -1,9 +1,9 @@ { "topic": "LAN Network", "pageNumber": "1", - "type": "Network Hierarchy", + "type": "LAN Network Hierarchy", "definition": { - "text": "The Network Hierarchy organizes the infrastructure to run bots and store data. It is the hierarchy you will use the most to operate the system.", + "text": "The LAN Network Hierarchy organizes the infrastructure to run bots and store data. It is the hierarchy you will use the most to operate the system.", "updated": 1610043827538 }, "paragraphs": [ diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-002-organization-of-tasks.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-002-organization-of-tasks.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-002-organization-of-tasks.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-002-organization-of-tasks.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-003-data-tasks-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-003-data-tasks-section.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-003-data-tasks-section.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-003-data-tasks-section.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-004-indicator-and-sensor-bot-instances.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-004-indicator-and-sensor-bot-instances.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-004-indicator-and-sensor-bot-instances.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-004-indicator-and-sensor-bot-instances.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-005-testing-trading-tasks-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-005-testing-trading-tasks-section.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-005-testing-trading-tasks-section.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-005-testing-trading-tasks-section.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-006-production-trading-tasks-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-006-production-trading-tasks-section.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-006-production-trading-tasks-section.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-006-production-trading-tasks-section.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-007-trading-bot-instance-and-trading-sessions.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-007-trading-bot-instance-and-trading-sessions.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-007-trading-bot-instance-and-trading-sessions.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-007-trading-bot-instance-and-trading-sessions.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-008-trading-session-references.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-008-trading-session-references.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-008-trading-session-references.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-008-trading-session-references.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-009-trading-session-parameters.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-009-trading-session-parameters.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-009-trading-session-parameters.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-009-trading-session-parameters.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-010-data-storage-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-010-data-storage-section.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-010-data-storage-section.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-010-data-storage-section.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-011-data-mines-data-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-011-data-mines-data-section.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-011-data-mines-data-section.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-011-data-mines-data-section.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-012-trading-mines-data-section.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-012-trading-mines-data-section.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-012-trading-mines-data-section.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-012-trading-mines-data-section.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-013-data-and-trading-mine-products.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-013-data-and-trading-mine-products.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-013-data-and-trading-mine-products.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-013-data-and-trading-mine-products.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-014-how-to-safely-close-superalgos.json b/Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-014-how-to-safely-close-superalgos.json similarity index 100% rename from Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/network-014-how-to-safely-close-superalgos.json rename to Projects/Foundations/Schemas/Docs-Topics/N/Network/Network/lan-network-014-how-to-safely-close-superalgos.json diff --git a/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-001-trading-farms-fundamental-concepts.json b/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-001-trading-farms-fundamental-concepts.json index a6f8c07f1..52f7d1dba 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-001-trading-farms-fundamental-concepts.json +++ b/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-001-trading-farms-fundamental-concepts.json @@ -23,7 +23,7 @@ }, { "style": "Text", - "text": "A Network, represented by the Network Hierarchy, is just a definition that allows the system to know where Tasks need to be run, and where data is hosted. At any workspace you might define one, or even more than one, Network Hierarchy. For simplicity, we will continue the explanation assuming only one Network is defined.", + "text": "A Network, represented by the LAN Network Hierarchy, is just a definition that allows the system to know where Tasks need to be run, and where data is hosted. At any workspace you might define one, or even more than one, LAN Network Hierarchy. For simplicity, we will continue the explanation assuming only one Network is defined.", "updated": 1617263502648 }, { diff --git a/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-002-trading-farms-set-up-a-network-of-nodes.json b/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-002-trading-farms-set-up-a-network-of-nodes.json index b31d1ac6b..67c558f90 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-002-trading-farms-set-up-a-network-of-nodes.json +++ b/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-002-trading-farms-set-up-a-network-of-nodes.json @@ -46,7 +46,7 @@ }, { "style": "Subtitle", - "text": "At the Network Hierarchy" + "text": "At the LAN Network Hierarchy" }, { "style": "Text", @@ -68,7 +68,7 @@ }, { "style": "Text", - "text": "Here this procedure will add Time Machine s with Timeline Chart s inside of them. Deeper inside this branch, you will find Layer s node, which references the Data Products at the Network Hierarchy. That reference is crucial for the system to know when you turn on a Layer at the charts, where the data needs to be fetched from (which Client).", + "text": "Here this procedure will add Time Machine s with Timeline Chart s inside of them. Deeper inside this branch, you will find Layer s node, which references the Data Products at the LAN Network Hierarchy. That reference is crucial for the system to know when you turn on a Layer at the charts, where the data needs to be fetched from (which Client).", "updated": 1617263990004 }, { diff --git a/Projects/Foundations/TS/Process-Modules/Dataset.js b/Projects/Foundations/TS/Process-Modules/Dataset.js index e56a6c7b6..f99d615ff 100644 --- a/Projects/Foundations/TS/Process-Modules/Dataset.js +++ b/Projects/Foundations/TS/Process-Modules/Dataset.js @@ -190,7 +190,7 @@ exports.newFoundationsProcessModulesDataset = function (processIndex) { A. We are interested in a particular Exchange and Market. B. We have the Network we received from the UI whe the user ran the Task. C. We have the Product Definition that is the parent node of the Data Set represented by this object. - D. This Product Definition is referenced by one or more Data Products nodes at some branch of the Network Hierarchy. + D. This Product Definition is referenced by one or more Data Products nodes at some branch of the LAN Network Hierarchy. E. We need to find the right Data Product node, the one who is itself a descendent of the Market Data Products node that is referencing the market and exchange that we have as a parameter of this function. From 1090e64fa3f11d8d2f8b1b6807fd97002b30b1ae Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 20 Sep 2021 13:41:54 +0200 Subject: [PATCH 6/7] p2p Network Hiererchy basic implementation --- ...etwork-node.json => lan-network-node.json} | 0 .../{network.json => lan-network.json} | 2 +- ...ading-farms-set-up-a-network-of-nodes.json | 2 +- .../UI/Spaces/Floating-Space/CircularMenu.js | 4 ++ ...-network-node.png => p2p-network-node.png} | Bin .../{lan-network.png => p2p-network.png} | Bin .../Schemas/App-Schema/p2p-network-node.json | 39 ++++++++++++++++++ .../Schemas/App-Schema/p2p-network.json | 32 ++++++++++++++ 8 files changed, 77 insertions(+), 2 deletions(-) rename Projects/Foundations/Schemas/App-Schema/{network-node.json => lan-network-node.json} (100%) rename Projects/Foundations/Schemas/App-Schema/{network.json => lan-network.json} (94%) rename Projects/Network/Icons/{lan-network-node.png => p2p-network-node.png} (100%) rename Projects/Network/Icons/{lan-network.png => p2p-network.png} (100%) create mode 100644 Projects/Network/Schemas/App-Schema/p2p-network-node.json create mode 100644 Projects/Network/Schemas/App-Schema/p2p-network.json diff --git a/Projects/Foundations/Schemas/App-Schema/network-node.json b/Projects/Foundations/Schemas/App-Schema/lan-network-node.json similarity index 100% rename from Projects/Foundations/Schemas/App-Schema/network-node.json rename to Projects/Foundations/Schemas/App-Schema/lan-network-node.json diff --git a/Projects/Foundations/Schemas/App-Schema/network.json b/Projects/Foundations/Schemas/App-Schema/lan-network.json similarity index 94% rename from Projects/Foundations/Schemas/App-Schema/network.json rename to Projects/Foundations/Schemas/App-Schema/lan-network.json index ed5c7f7d0..52483e846 100644 --- a/Projects/Foundations/Schemas/App-Schema/network.json +++ b/Projects/Foundations/Schemas/App-Schema/lan-network.json @@ -3,7 +3,7 @@ "menuItems": [ { "action": "Add UI Object", - "label": "Add Network Node", + "label": "Add LAN Network Node", "relatedUiObject": "LAN Network Node", "actionFunction": "payload.executeAction" }, diff --git a/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-002-trading-farms-set-up-a-network-of-nodes.json b/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-002-trading-farms-set-up-a-network-of-nodes.json index 67c558f90..f5d2ac3ab 100644 --- a/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-002-trading-farms-set-up-a-network-of-nodes.json +++ b/Projects/Foundations/Schemas/Docs-Topics/T/Trading/Trading-Farms/trading-farms-002-trading-farms-set-up-a-network-of-nodes.json @@ -176,7 +176,7 @@ }, { "style": "Text", - "text": "To add a network node, select Add Network Node on the Superalgos Network node menu. A network node is added along with the basic structure of nodes to set up a node." + "text": "To add a network node, select Add LAN Network Node on the Superalgos Network node menu. A network node is added along with the basic structure of nodes to set up a node." }, { "style": "Subtitle", diff --git a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js index c9fa366ba..98ef468dc 100644 --- a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js +++ b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js @@ -56,6 +56,10 @@ function newCircularMenu() { let menuItem = newCircularMenuItem() let menuItemInitialValue = menuItemsInitialValues[i] + if (payload.node.id === "df162757-f7ac-4850-8112-57399b8b640f") { + let a = 1 + } + menuItem.action = menuItemInitialValue.action menuItem.actionProject = menuItemInitialValue.actionProject menuItem.actionFunction = menuItemInitialValue.actionFunction diff --git a/Projects/Network/Icons/lan-network-node.png b/Projects/Network/Icons/p2p-network-node.png similarity index 100% rename from Projects/Network/Icons/lan-network-node.png rename to Projects/Network/Icons/p2p-network-node.png diff --git a/Projects/Network/Icons/lan-network.png b/Projects/Network/Icons/p2p-network.png similarity index 100% rename from Projects/Network/Icons/lan-network.png rename to Projects/Network/Icons/p2p-network.png diff --git a/Projects/Network/Schemas/App-Schema/p2p-network-node.json b/Projects/Network/Schemas/App-Schema/p2p-network-node.json new file mode 100644 index 000000000..949360ea8 --- /dev/null +++ b/Projects/Network/Schemas/App-Schema/p2p-network-node.json @@ -0,0 +1,39 @@ +{ + "type": "P2P Network Node", + "menuItems": [ + { + "action": "Configure", + "actionProject": "Foundations", + "label": "Configure", + "iconPathOn": "configuration", + "iconPathOff": "configuration", + "dontShowAtFullscreen": true, + "actionFunction": "uiObject.configEditor.activate" + }, + { + "action": "Delete UI Object", + "actionProject": "Foundations", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "editors": { + "config": true + }, + "initialValues": { + "config": "{ \n\"host\": \"localhost\", \n\"webPort\": \"34248\", \n\"webSocketsPort\": \"18041\"\n}" + }, + "isTitleAllwaysVisible": true, + "addLeftIcons": true, + "level": 1, + "attachingRules": { + "compatibleTypes": "->P2P Network->" + }, + "childrenNodesProperties": [ + ], + "propertyNameAtParent": "p2pNetworkNodes" +} \ No newline at end of file diff --git a/Projects/Network/Schemas/App-Schema/p2p-network.json b/Projects/Network/Schemas/App-Schema/p2p-network.json new file mode 100644 index 000000000..7de51293f --- /dev/null +++ b/Projects/Network/Schemas/App-Schema/p2p-network.json @@ -0,0 +1,32 @@ +{ + "type": "P2P Network", + "menuItems": [ + { + "action": "Add UI Object", + "actionProject": "Foundations", + "label": "Add P2P Network Node", + "relatedUiObject": "P2P Network Node", + "actionFunction": "payload.executeAction" + }, + { + "action": "Delete UI Object", + "actionProject": "Foundations", + "askConfirmation": true, + "confirmationLabel": "Confirm to Delete", + "label": "Delete", + "iconPathOn": "delete-entity", + "iconPathOff": "delete-entity", + "actionFunction": "payload.executeAction" + } + ], + "isHierarchyHead": true, + "addLeftIcons": true, + "level": 0, + "childrenNodesProperties": [ + { + "name": "p2pNetworkNodes", + "type": "array", + "childType": "P2P Network Node" + } + ] +} \ No newline at end of file From ac0b03fd5f26e02482048aca90414c975d9100b0 Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Mon, 20 Sep 2021 13:52:51 +0200 Subject: [PATCH 7/7] Deepscan fixes --- Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js index 98ef468dc..c9fa366ba 100644 --- a/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js +++ b/Projects/Foundations/UI/Spaces/Floating-Space/CircularMenu.js @@ -56,10 +56,6 @@ function newCircularMenu() { let menuItem = newCircularMenuItem() let menuItemInitialValue = menuItemsInitialValues[i] - if (payload.node.id === "df162757-f7ac-4850-8112-57399b8b640f") { - let a = 1 - } - menuItem.action = menuItemInitialValue.action menuItem.actionProject = menuItemInitialValue.actionProject menuItem.actionFunction = menuItemInitialValue.actionFunction