public static void StartNodesEngine() { if (Boolean.Parse(configuration["Develop:GenerateNodesJsListFileOnStart"])) { GenerateNodesJsListFile(); } nodesEngine = new NodesEngine(nodesDb, nodesDataDb); nodesEngine.SetUpdateInterval(nodesEngineConfig.UpdateInterval); nodesEngine.OnLogEngineInfo += logs.AddNodesEngineInfo; nodesEngine.OnLogEngineError += logs.AddNodesEngineError; nodesEngine.OnLogNodeInfo += logs.AddNodeInfo; nodesEngine.OnLogNodeError += logs.AddNodeError; if (gateway != null && nodesEngine != null) { mySensorsNodesEngine = new MySensorsNodesEngine(gateway, nodesEngine); } else { mySensorsNodesEngine = null; } uiNodesEngine = new UiNodesEngine(nodesEngine); if (!nodesEngineConfig.Enable) { return; } logs.AddSystemInfo("Starting nodes engine... "); nodesEngine.Start(); logs.AddSystemInfo("Nodes engine started."); }
private static void OnSystemControllerStarted() { nodesEngine = SystemController.nodesEngine; if (nodesEngine != null) { nodesEngine.OnNewNode += OnNewNode; nodesEngine.OnNodeUpdatedInEditor += OnNodeUpdated; nodesEngine.OnRemoveNode += OnRemoveNode; nodesEngine.OnRemoveLink += OnRemoveLink; nodesEngine.OnNewLink += OnNewLink; nodesEngine.OnNodeActivity += OnNodeActivity; nodesEngine.OnRemoveAllNodesAndLinks += OnRemoveAllNodesAndLinks; } }
public async Task <int> SetValue(string value, string channel, string password) { NodesEngine engine = SystemController.nodesEngine; if (password == "") { password = null; } return(await Task.Run(() => { if (engine == null) { return 2; } List <ConnectionRemoteReceiverNode> receivers; lock (engine.nodesLock) receivers = engine.GetNodes() .OfType <ConnectionRemoteReceiverNode>() .Where(x => x.GetChannel().ToString() == channel) .ToList(); if (!receivers.Any()) { engine.LogNodesError( $"Received a value for Remote Receiver, but no receivers with channel [{channel}]"); return 2; } var ip = Context.Request.HttpContext.Connection.RemoteIpAddress; string address = ip?.ToString(); bool received = false; foreach (var receiver in receivers) { if (receiver.ReceiveValue(value, channel, password, address)) { received = true; } } return received ? 0 : 1; })); }
private static void OnSystemControllerStarted() { nodesEngine = SystemController.nodesEngine; uiNodesEngine = SystemController.uiNodesEngine; if (nodesEngine != null) { nodesEngine.OnRemoveAllNodesAndLinks += OnRemoveAllNodesAndLinks; } if (uiNodesEngine != null) { uiNodesEngine.OnUiNodeUpdated += OnUiNodeUpdated; uiNodesEngine.OnNewUiNode += OnNewUiNode; uiNodesEngine.OnRemoveUiNode += OnRemoveUiNode; uiNodesEngine.OnPanelNodeUpdated += OnPanelNodeUpdated; uiNodesEngine.OnHideFromHomePage += OnHideFromHomePage; } }
public UITimerController() { engine = SystemController.nodesEngine; }