예제 #1
0
        private void Messenger_PinSetCommand(ReceivedCommand args)
        {
            int  pin   = args.ReadInt16Arg();
            bool state = args.ReadBoolArg();

            NamedPin p = NamedPin.GetNamedPin(pin);

            OnPinSet(p, state);
        }
        private void ButtonInputReceived(ReceivedCommand receivedcommand)
        {
            short id = receivedcommand.ReadInt16Arg();

            switch (id)
            {
            case 0:
                SendControlToFS(Pmdg737Events.EVT_MCP_N1_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 1:
                SendControlToFS(Pmdg737Events.EVT_MCP_SPEED_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 2:
                SendControlToFS(Pmdg737Events.EVT_MCP_LVL_CHG_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 3:
                SendControlToFS(Pmdg737Events.EVT_MCP_HDG_SEL_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 4:
                SendControlToFS(Pmdg737Events.EVT_MCP_APP_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 5:
                SendControlToFS(Pmdg737Events.EVT_MCP_VOR_LOC_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 6:
                SendControlToFS(Pmdg737Events.EVT_MCP_LNAV_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 7:
                SendControlToFS(Pmdg737Events.EVT_MCP_VNAV_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 8:
                SendControlToFS(Pmdg737Events.EVT_MCP_ALT_HOLD_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 9:
                SendControlToFS(Pmdg737Events.EVT_MCP_VS_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 10:
                SendControlToFS(Pmdg737Events.EVT_MCP_CMD_B_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 11:
                SendControlToFS(Pmdg737Events.EVT_MCP_CMD_A_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;
            }
        }
        private void EncoderInputReceived(ReceivedCommand receivedcommand)
        {
            short id         = receivedcommand.ReadInt16Arg();
            short changeType = receivedcommand.ReadInt16Arg();
            uint  parameter  = 0;

            if (changeType == 1)
            {
                // Decrease
                parameter = PmdgParameters.MOUSE_FLAG_WHEEL_DOWN;
            }
            else if (changeType == 2)
            {
                parameter = PmdgParameters.MOUSE_FLAG_WHEEL_UP;
            }
            switch (id)
            {
            case 0:
                SendControlToFS(Pmdg737Events.EVT_MCP_COURSE_SELECTOR_L, parameter);
                break;

            case 1:
                SendControlToFS(Pmdg737Events.EVT_MCP_SPEED_SELECTOR, parameter);
                break;

            case 2:
                SendControlToFS(Pmdg737Events.EVT_MCP_HEADING_SELECTOR, parameter);
                break;

            case 3:
                SendControlToFS(Pmdg737Events.EVT_MCP_ALTITUDE_SELECTOR, parameter);
                break;

            case 4:
                SendControlToFS(Pmdg737Events.EVT_MCP_VS_SELECTOR, parameter);
                break;
            }
        }
예제 #4
0
        // Callback function To receive the plain text float series from the Arduino
        void OnReceivePlainTextFloatSeries(ReceivedCommand arguments)
        {
            _receivedBytesCount += CountBytesInCommand(arguments, true);

            var count         = arguments.ReadInt16Arg();
            var receivedValue = arguments.ReadFloatArg();


            if (count != _receivedItemsCount)
            {
                Console.WriteLine("Values not matching: received {0} expected {1}", count, _receivedItemsCount);
            }
            if (_receivedItemsCount % (SeriesLength / 10) == 0)
            {
                Console.WriteLine("Received value: {0}", receivedValue);
            }
            if (_receivedItemsCount == 0)
            {
                // Received first value, start stopwatch
                _beginTime = Millis;
            }
            else if (count == SeriesLength - 1)
            {
                // Received all values, stop stopwatch
                _endTime = Millis;
                var deltaTime = (_endTime - _beginTime);
                Console.WriteLine("{0} milliseconds per {1} items = is {2} ms/item, {3} Hz",
                                  deltaTime,
                                  SeriesLength,
                                  (float)deltaTime / (float)SeriesLength,
                                  (float)1000 * SeriesLength / (float)deltaTime
                                  );
                Console.WriteLine("{0} milliseconds per {1} bytes = is {2} ms/byte,  {3} bytes/sec, {4} bps",
                                  deltaTime,
                                  _receivedBytesCount,
                                  (float)deltaTime / (float)_receivedBytesCount,
                                  (float)1000 * _receivedBytesCount / (float)deltaTime,
                                  (float)8 * 1000 * _receivedBytesCount / (float)deltaTime
                                  );
                _receivePlainTextFloatSeriesFinished = true;
            }
            _receivedItemsCount++;
        }
        private void ToggleInputReceived(ReceivedCommand receivedcommand)
        {
            short id = receivedcommand.ReadInt16Arg();

            switch (id)
            {
            case 0:
                SendControlToFS(Pmdg737Events.EVT_MCP_FD_SWITCH_L, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                SendControlToFS(Pmdg737Events.EVT_MCP_FD_SWITCH_R, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 1:
                SendControlToFS(Pmdg737Events.EVT_MCP_AT_ARM_SWITCH, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 2:
                SendControlToFS(Pmdg737Events.EVT_MCP_DISENGAGE_BAR, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;
            }
        }
        private void MuxToggleInputReceived(ReceivedCommand receivedcommand)
        {
            short id    = receivedcommand.ReadInt16Arg();
            short value = receivedcommand.ReadInt16Arg();

            switch (id)
            {
            case 0:
                if (value == 1)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_IGN_SEL, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_IGN_SEL, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 1:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_LOGO, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_LOGO, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 2:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_POS_STROBE, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_POS_STROBE, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_POS_STROBE, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_POS_STROBE, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_POS_STROBE, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 3:
                if (value == 1)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_IGN_SEL, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_IGN_SEL, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                break;

            case 4:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_WHEEL_WELL, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_WHEEL_WELL, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 5:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_POS_STROBE, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_POS_STROBE, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_POS_STROBE, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_POS_STROBE, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_POS_STROBE, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                break;

            case 6:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_WING, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_WING, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 7:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_ANT_COL, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_ANT_COL, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 8:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_L_FIXED, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_L_FIXED, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 9:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_R_FIXED, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_R_FIXED, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 10:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_L_TURNOFF, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_L_TURNOFF, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 11:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_R_RETRACT, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_L_RETRACT, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_R_RETRACT, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_L_RETRACT, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 12:
                if (value == 1)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_APU_START, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_APU_START, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_APU_START, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                break;

            case 13:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_R_TURNOFF, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_R_TURNOFF, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;

            case 14:
                SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_APU_START, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_APU_START, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                break;

            case 15:
                if (value == 0)
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_TAXI, PmdgParameters.MOUSE_FLAG_LEFTSINGLE);
                }
                else
                {
                    SendControlToFS(Pmdg737Events.EVT_OH_LIGHTS_TAXI, PmdgParameters.MOUSE_FLAG_RIGHTSINGLE);
                }
                break;
            }
        }