Exemple #1
0
        private void ReceivedEngineStatusUpdate(QsysRequest request)
        {
            /*CloudLog.Debug("{0} received EngineStatus\r\n{1}", GetType().Name,
             *          request.Args.ToString(Formatting.Indented));*/
#if true
            Debug.WriteInfo("Q-Sys socket status received");
            Debug.WriteNormal(Debug.AnsiBlue + request.Args.ToString(Formatting.Indented) + Debug.AnsiReset);
#endif
            _platform   = request.Args["Platform"].Value <string>();
            State       = request.Args["State"].Value <string>();
            DesignName  = request.Args["DesignName"].Value <string>();
            DesignCode  = request.Args["DesignCode"].Value <string>();
            IsRedundant = request.Args["IsRedundant"].Value <bool>();
            IsEmulator  = request.Args["IsEmulator"].Value <bool>();
            Status      = new CoreStatus(request.Args["Status"]);

            if (State == "Standby")
            {
                _socket.TryAnotherAddress();
                _socket.Disconnect(true);
            }

            if (!_initialized &&
                (_initializeThread == null || _initializeThread.ThreadState != Thread.eThreadStates.ThreadRunning))
            {
                _initializeThread = new Thread(specific => InitalizeProcess(), null)
                {
                    Name     = "QsysCore Initializing Process Thread",
                    Priority = Thread.eThreadPriority.HighPriority
                };
            }
        }