public GatewayAliveChecker(Gateway gateway) { this.gateway = gateway; gateway.OnUnexpectedlyDisconnected += Stop; gateway.OnDisconnected += Stop; gateway.OnConnected += Start; gateway.OnMessageRecieved += OnMessageRecieved; checkGatewayTimer.Elapsed += CheckGatewayAlive; }
private static void OnGatewayConnected() { gateway = SystemController.gateway; gateway.OnMessageRecieved += OnMessageRecieved; gateway.OnMessageSend += OnMessageSend; gateway.OnConnected += OnConnected; gateway.OnDisconnected += OnDisconnected; gateway.OnNewNode += OnNewNode; gateway.OnNodeUpdated += OnNodeUpdated; gateway.OnNodeLastSeenUpdated += OnNodeLastSeenUpdated; gateway.OnNodeBatteryUpdated += OnNodeBatteryUpdated; gateway.OnNewSensor += OnNewSensor; gateway.OnSensorUpdated += OnSensorUpdated; gateway.OnRemoveAllNodes += OnRemoveAllNodes; gateway.OnRemoveNode += OnRemoveNode; }
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."); }