示例#1
0
        private static void EnsureConnected()
        {
            if (ServerEndpoint == null || ServiceName == null)
            {
                return;
            }
            if (IsConnected)
            {
                return;
            }
            IDictionary prop = new Hashtable();

            prop["port"]         = ServerEndpoint.Port;
            prop["machineName"]  = ServerEndpoint.Address.ToString();
            prop["priority"]     = 100;
            prop["timeout"]      = (uint)1;
            prop["retryCount"]   = 0;
            prop["useIpAddress"] = 1;
            TcpClientChannel chan = null;

            try
            {
                chan = new TcpClientChannel();
            }
            catch { }
            try
            {
                if (chan != null)
                {
                    ChannelServices.RegisterChannel(chan, false);
                }
            }
            catch { }
            try
            {
                RemotingConfiguration.CustomErrorsMode = CustomErrorsModes.Off;
            }
            catch { }
            try
            {
                // Create an instance of the remote object
                _server = (ExtractorServer)Activator.GetObject(
                    typeof(ExtractorServer),
                    "tcp://"
                    + ServerEndpoint.Address
                    + ":"
                    + ServerEndpoint.Port.ToString(CultureInfo.InvariantCulture)
                    + "/"
                    + ServiceName);
            }
            catch { }
        }
        public void ProcessPendingMessages()
        {
            var pendingMessage = ExtractorServer.GetNextPendingMessageToServerFromClient();

            while (pendingMessage != null)
            {
                var messageType = pendingMessage.MessageType;
                switch (messageType)
                {
                case MessageType.ToggleNightMode:
                    _inputEvents.NightVisionModeToggled.Handle(false);
                    break;

                case MessageType.AirspeedIndexIncrease:
                    _inputEvents.AirspeedIndexIncreasedByOne.Handle(false);
                    break;

                case MessageType.AirspeedIndexDecrease:
                    _inputEvents.AirspeedIndexDecreasedByOne.Handle(false);
                    break;

                case MessageType.EHSILeftKnobIncrease:
                    _inputEvents.EHSILeftKnobIncreasedByOne.Handle(false);
                    break;

                case MessageType.EHSILeftKnobDecrease:
                    _inputEvents.EHSILeftKnobDecreasedByOne.Handle(false);
                    break;

                case MessageType.EHSIRightKnobIncrease:
                    _inputEvents.EHSIRightKnobIncreasedByOne.Handle(false);
                    break;

                case MessageType.EHSIRightKnobDecrease:
                    _inputEvents.EHSIRightKnobDecreasedByOne.Handle(false);
                    break;

                case MessageType.EHSIRightKnobDepressed:
                    _inputEvents.EHSIRightKnobDepressed.Handle(false);
                    break;

                case MessageType.EHSIRightKnobReleased:
                    _inputEvents.EHSIRightKnobReleased.Handle(false);
                    break;

                case MessageType.EHSIMenuButtonDepressed:
                    _inputEvents.EHSIMenuButtonDepressed.Handle(false);
                    break;

                case MessageType.AccelerometerIsReset:
                    _inputEvents.AccelerometerReset.Handle(false);
                    break;

                case MessageType.ISISBrightButtonDepressed:
                    _inputEvents.ISISBrightButtonDepressed.Handle(false);
                    break;

                case MessageType.ISISStandardButtonDepressed:
                    _inputEvents.ISISStandardButtonDepressed.Handle(false);
                    break;

                case MessageType.AzimuthIndicatorBrightnessDecrease:
                    _inputEvents.AzimuthIndicatorBrightnessDecreased.Handle(false);
                    break;

                case MessageType.AzimuthIndicatorBrightnessIncrease:
                    _inputEvents.AzimuthIndicatorBrightnessIncreased.Handle(false);
                    break;
                }
                pendingMessage = ExtractorServer.GetNextPendingMessageToServerFromClient();
            }
        }