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."); }
public static void ConnectToGateway() { mySensorsNodesEngine = null; if (gatewayConfig.SerialGateway.Enable) { gatewayConnectionPort = new SerialConnectionPort( gatewayConfig.SerialGateway.SerialPortName, gatewayConfig.SerialGateway.Boudrate); } else if (gatewayConfig.EthernetGateway.Enable) { gatewayConnectionPort = new EthernetConnectionPort( gatewayConfig.EthernetGateway.GatewayIP, gatewayConfig.EthernetGateway.GatewayPort); } else { return; } //connecting to gateway logs.AddSystemInfo("Connecting to gateway..."); gateway = new Gateway(gatewayConnectionPort, mySensorsDb, mySensorsMessagesDb); gateway.enableAutoAssignId = gatewayConfig.EnableAutoAssignId; gateway.IsMetricUnit = () => gatewayConfig.IsMetric; gateway.OnLogDecodedMessage += logs.AddGatewayDecodedMessage; gateway.OnLogMessage += logs.AddGatewayMessage; gateway.OnLogInfo += logs.AddGatewayInfo; gateway.OnLogError += logs.AddGatewayError; gateway.endlessConnectionAttempts = true; gateway.OnConnected += GatewayConnected; gateway.OnDisconnected += GatewayDisconnected; gateway.Connect().Wait(); if (gateway != null && nodesEngine != null) { mySensorsNodesEngine = new MySensorsNodesEngine(gateway, nodesEngine); } if (gateway != null && gateway.IsConnected()) { logs.AddSystemInfo("Gateway connected."); } else { logs.AddSystemInfo("Gateway is not connected."); } }
public static void DisconnectGateway() { if (gateway == null) { return; } if (gateway.GetGatewayState() != GatewayState.Disconnected) { gateway.Disconnect(); } gateway = null; mySensorsNodesEngine = null; }