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.");
            }
        }
 private void btnConnect_Click(object sender, EventArgs e)
 {
     if (txtGatewayIP.Text == "" || txtGatewayPort.Text == "")
     {
         MessageBox.Show("请填写IP地址和端口号!");
         return;
     }
     GateWay = new WSN_New_DLL.Gateway(txtGatewayIP.Text, Convert.ToInt32(txtGatewayPort.Text));
     GateWay.EventDataArrival += GateWay_EventDataArrival;
     if (GateWay.Connect())
     {
         lblT2.Visible      = true;
         lblT2.Text         = "通道建立成功!";
         btnConnect.Enabled = false;
     }
     else
     {
         lblT2.Visible = true;
         lblT2.Text    = "通道建立失败!";
     }
 }