Exemplo n.º 1
0
 internal bool Connect()
 {
     try
     {
         bIsFirst = true;
         logger.Info("Trying to connect....");
         IPAddress addr = IPAddress.Loopback;
         if (!IPAddress.TryParse(Program.Config.ServerHost, out addr))
         {
             IPAddress[] addresses = Dns.GetHostAddresses(Program.Config.ServerHost);
             if (addresses.Length == 0)
             {
                 throw new InvalidOperationException("Host not found");
             }
             addr = addresses[0];
         }
         serverConnection = new EventDrivenTCPClient(addr, Program.Config.ServerTelnetPort, true);
         serverConnection.DataReceived            += serverConnection_DataReceived;
         serverConnection.ConnectionStatusChanged += serverConnection_ConnectionStatusChanged;
         serverConnection.Connect();
         if (_Testing)
         {
             CommandsDisabled = true;
         }
     }
     catch (Exception ex)
     {
         logger.Warn("Connection failed");
         logger.Warn(ex.ToString());
         return(false);
     }
     return(serverConnection.IsConnected);
 }
Exemplo n.º 2
0
 protected void Dispose(bool bAll)
 {
     if (serverConnection != null)
     {
         serverConnection.Dispose();
         serverConnection = null;
     }
 }
Exemplo n.º 3
0
        public OmegaTempCtrl(string _ipAddr, int _port)
        {
            m_ipAddr           = _ipAddr;
            m_port             = _port;
            m_lastErrorMessage = "No Error";
            m_simpleClient     = new EventDrivenTCPClient(IPAddress.Parse(_ipAddr), _port, true);

            m_simpleClient.ConnectionStatusChanged += m_simpleClient_ConnectionStatusChanged;
            m_simpleClient.DataReceived            += m_simpleClient_DataReceived;
        }
Exemplo n.º 4
0
        private void Client_DataReceived(EventDrivenTCPClient sender, object data)
        {
            byte[]          newdata;
            BinaryFormatter bf = new BinaryFormatter();

            using (var ms = new MemoryStream())
            {
                bf.Serialize(ms, data);
                newdata = ms.ToArray();
            }
            buffer.Write(newdata);
            byte[] message;
            byte[] timestamp;
            byte   signalLevel;

            for (int i = 0; i < buffer.Count; i++)
            {
                if (buffer[i] == 0x1a)
                {
                    buffer.Read(i);
                    i = 0;
                    switch (buffer[1])
                    {
                    case 0x31:
                        buffer.Read(1);
                        timestamp   = buffer.Read(6);
                        signalLevel = buffer.Read(1)[0];
                        message     = buffer.Read(2);
                        break;

                    case 0x32:
                        buffer.Read(31);
                        timestamp   = buffer.Read(6);
                        signalLevel = buffer.Read(1)[0];
                        message     = buffer.Read(7);
                        ParseModeS(message);
                        break;

                    case 0x33:
                        buffer.Read(1);
                        timestamp   = buffer.Read(6);
                        signalLevel = buffer.Read(1)[0];
                        message     = buffer.Read(14);
                        ParseModeS(message);
                        break;

                    default:
                        buffer.Read(1);
                        break;
                    }
                }
            }
        }
Exemplo n.º 5
0
 public override void Start()
 {
     if (running)
     {
         return;
     }
     Enabled = true;
     client  = new EventDrivenTCPClient(Host, Port, true);
     client.Connect();
     client.DataReceived += Client_DataReceived;
     running              = true;
 }
Exemplo n.º 6
0
        void m_simpleClient_ConnectionStatusChanged(EventDrivenTCPClient sender, EventDrivenTCPClient.ConnectionStatus status)
        {
            string msg = "Unknown Status";

            switch (status)
            {
            case EventDrivenTCPClient.ConnectionStatus.AutoReconnecting:
                msg = "Reconnecting...";
                break;

            case EventDrivenTCPClient.ConnectionStatus.Connected:
                msg = "Connected";
                break;

            case EventDrivenTCPClient.ConnectionStatus.ConnectFail_Timeout:
                msg = "Connection Fail, Timeout";
                break;

            case EventDrivenTCPClient.ConnectionStatus.Connecting:
                msg = "Connecting...";
                break;

            case EventDrivenTCPClient.ConnectionStatus.DisconnectedByHost:
                msg = "Disconnected by Host";
                break;

            case EventDrivenTCPClient.ConnectionStatus.DisconnectedByUser:
                msg = "Disconnected by User";
                break;

            case EventDrivenTCPClient.ConnectionStatus.Error:
                msg = "Error";
                break;

            case EventDrivenTCPClient.ConnectionStatus.NeverConnected:
                msg = "Never Connected";
                break;

            case EventDrivenTCPClient.ConnectionStatus.ReceiveFail_Timeout:
                msg = "Recieve Failure, Timeout";
                break;

            case EventDrivenTCPClient.ConnectionStatus.SendFail_NotConnected:
                msg = "Send Failure, Not Connected";
                break;

            case EventDrivenTCPClient.ConnectionStatus.SendFail_Timeout:
                msg = "Send Failure, Timeout";
                break;
            }

            OnMessage(new OmegaTempCtrlMessageEventArgs("Temp Ctrl: " + msg));
        }
Exemplo n.º 7
0
 void m_simpleClient_DataReceived(EventDrivenTCPClient sender, object data)
 {
     ParseReceivedMessage((string)data);
 }