public MySensorsNodesEngine(Gateway gateway, NodesEngine engine) { MySensorsNodesEngine.gateway = gateway; MySensorsNodesEngine.mySensorsNodesEngine = this; MySensorsNodesEngine.engine = engine; gateway.OnNewNode += CreateOrUpdateNode; gateway.OnNodeUpdated += CreateOrUpdateNode; gateway.OnNewSensor += CreateOrUpdateSensor; gateway.OnSensorUpdated += CreateOrUpdateSensor; gateway.OnRemoveAllNodes += OnGatewayRemoveAllNodes; gateway.OnRemoveNode += OnGatewayRemoveNode; gateway.OnNodeBatteryUpdated += OnNodeBatteryUpdated; engine.OnRemoveAllNodesAndLinks += OnEngineRemoveAllNodesAndLinks; engine.OnRemoveNode += OnEngineRemoveNode; CreateAndAddMySensorsNodes(); }
public static void DisconnectGateway() { if (gateway == null) return; if (gateway.GetGatewayState() != GatewayState.Disconnected) gateway.Disconnect(); gateway = null; mySensorsNodesEngine = null; }
public static void ConnectToGateway() { mySensorsNodesEngine = null; if (gatewayConfig.SerialGatewayConfig.Enable) { gatewayConnectionPort = new SerialConnectionPort( gatewayConfig.SerialGatewayConfig.SerialPortName, gatewayConfig.SerialGatewayConfig.Boudrate); } else if (gatewayConfig.EthernetGatewayConfig.Enable) { gatewayConnectionPort = new EthernetConnectionPort( gatewayConfig.EthernetGatewayConfig.GatewayIP, gatewayConfig.EthernetGatewayConfig.GatewayPort); } else return; //connecting to gateway logs.AddSystemInfo("Connecting to gateway..."); gateway = new Gateway(gatewayConnectionPort, mySensorsDb, mySensorsMessagesDb); gateway.enableAutoAssignId = gatewayConfig.EnableAutoAssignId; 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 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."); }