private void BuildAxisMap()
    {
        axisMap = new Dictionary <GenericInputs, string> {
        };

        if (type == InputDeviceType.XBOX)
        {
            foreach (var item in GenericToXBoxMap)
            {
                XBoxInputs xboxInput = GenericToXBoxMap[item.Key];
                RawInputs  rawInput  = XBoxToRawMap[xboxInput];
                string     axis      = string.Concat(Id.ToString(), "_", rawInput.ToString());
                if (!axisMap.ContainsKey(item.Key))
                {
                    axisMap.Add(item.Key, axis);
                }
            }
        }
        else if (type == InputDeviceType.KEYBOARD)
        {
            foreach (var item in GenericToKeyboardMap)
            {
                KeyboardInputs keyboardInput = GenericToKeyboardMap[item.Key];
                string         axis          = string.Concat(Id.ToString(), "_", keyboardInput.ToString());
                if (!axisMap.ContainsKey(item.Key))
                {
                    axisMap.Add(item.Key, axis);
                }
            }
        }
    }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            var keyboardInputs = new KeyboardInputs();
            var app            = new Application(119, 27);

            keyAction userInput = keyAction.invalid;

            while (true)
            {
                Console.Clear();
                Console.WriteLine("Key inputs - arrows to move, g for gates, i for inputs, o for outputs, w for wires, spacebar or enter for placing,\ndelete to delete, r to run the circuit");
                if (app.debugMode)
                {
                    ConsolePrint.PrintBoard(app.runBoard);
                }
                else
                {
                    ConsolePrint.PrintBoard(app.board);
                    ConsolePrint.PrintCursor(app);
                }
                Console.SetCursorPosition(app.board.y_Size, app.board.x_Size);
                userInput = keyboardInputs.PressKey();
                app.DoUserInput(userInput);
            }

            //foreach (var item in test.LogicGates)
            //{
            //    ConsolePrint.DrawGate(item);
            //    Console.WriteLine();
            //}
            //ConsolePrint.DrawGate(test.LogicGates[1]);
            //ConsolePrint.DrawGate(test.LogicGates[5], 8, 1);
            //ConsolePrint.DrawGate(test.Input[0], 0, 5);
            //ConsolePrint.DrawGate(test.Output[0], 118, 29);
        }
Ejemplo n.º 3
0
        public void InitializeDefaultClicks()
        {
            RegistrationClicks.Clear();
            TaxiOrderingClicks.Clear();
            DataCleaningClicks.Clear();
            KeyboardInputs.Clear();
            EnterPresses.Clear();

            int number = 0;

            RegistrationClicks.Add(number++, new Click(new PointF(0.5f, 0.5f), "Click phone number field", 1000));
            KeyboardInputs.Add(number++, new KeyboardInput("Enter phone number", 1000));
            RegistrationClicks.Add(number++, new Click(new PointF(0.5f, 0.940269768f), "Click Next", 1500));
            RegistrationClicks.Add(number++, new Click(new PointF(0.317307681f, 0.190104172f), "Click 1st field of code", 0));
            KeyboardInputs.Add(number++, new KeyboardInput("Enter code", 3000));
            RegistrationClicks.Add(number++, new Click(new PointF(0.5f, 0.274566472f), "Click e-mail field", 1000));
            KeyboardInputs.Add(number++, new KeyboardInput("Enter e-mail", 1500));
            EnterPresses.Add(number++, new EnterPress("Press Enter", 700));
            KeyboardInputs.Add(number++, new KeyboardInput("Enter first name", 1500));
            EnterPresses.Add(number++, new EnterPress("Press Enter", 700));
            KeyboardInputs.Add(number++, new KeyboardInput("Enter last name", 1500));
            RegistrationClicks.Add(number++, new Click(new PointF(0.5f, 0.9441233f), "Click Next", 4500));

            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.917148352f), "Click Search destination", 1000));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.153214768f), "Click Pickup location", 1000));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.9137324f, 0.153214768f), "Click x in Pickup location Field", 500));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.201094389f), "Click Where to?", 1000));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.9137324f, 0.201094389f), "Click x in Where to? Field", 500));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.153214768f), "Click Pickup location", 500));
            KeyboardInputs.Add(number++, new KeyboardInput("Enter address from", 1500));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.366088629f), "Click address from", 500));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.201094389f), "Click Where to?", 500));
            KeyboardInputs.Add(number++, new KeyboardInput("Enter address to", 1500));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.254335254f), "Click address to", 7000));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.943159938f), "Click Select Bolt", 3000));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.943159938f), "Click Request Bolt", 1000));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.9f, 0.9375f), "Click OK in messagebox (only once)", 14000));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.92957747f, 0.8795761f), "Click chevron-up button", 1500));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.125f, 0.8265896f), "Click Call", 3000));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.653179169f), "DoubleClick to copy number", 1500));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(1.04797983f, 0.921875f), "Click Home", 1500));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.6919014f, 0.383429676f), "Click Bolt icon", 3000));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.8556338f, 0.8265896f), "Click Cancel", 1500));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 0.9633911f), "Click Cancel ride", 1000));
            TaxiOrderingClicks.Add(number++, new Click(new PointF(0.5f, 1.0f), "Click reason for cancellation", 1000));

            DataCleaningClicks.Add(number++, new Click(new PointF(1.04797983f, 0.921875f), "Click Home", 1000));
            DataCleaningClicks.Add(number++, new Click(new PointF(0.8863636f, 0.3857729f), "Click Settings icon", 3000));
            DataCleaningClicks.Add(number++, new Click(new PointF(0.5f, 0.760601938f), "Click applications in settings", 1500));
            DataCleaningClicks.Add(number++, new Click(new PointF(0.5f, 0.24897401f), "Click Bolt in applications", 3000));
            DataCleaningClicks.Add(number++, new Click(new PointF(0.7323232f, 0.432284534f), "Click Clear Data", 1000));
            DataCleaningClicks.Add(number++, new Click(new PointF(0.7929293f, 0.6019152f), "Click OK", 1500));
            DataCleaningClicks.Add(number, new Click(new PointF(1.04797983f, 0.921875f), "Click Home", 1000));
        }
Ejemplo n.º 4
0
        public void LoadClicksFromFile()
        {
            RegistrationClicks.Clear();
            TaxiOrderingClicks.Clear();
            DataCleaningClicks.Clear();
            KeyboardInputs.Clear();
            EnterPresses.Clear();

            using (FileStream fs = new FileStream(ClicksFilePath, FileMode.OpenOrCreate))
            {
                using (StreamReader sr = new StreamReader(fs, Encoding.Default))
                {
                    int actionsCount = 0;
                    while (!sr.EndOfStream && actionsCount < ActionsCount)
                    {
                        if (Enum.TryParse(sr.ReadLine(), out Actions action))
                        {
                            string line;
                            string jobjectString = "";
                            do
                            {
                                line           = sr.ReadLine();
                                jobjectString += line;
                            } while (line != "}");

                            switch (action)
                            {
                            case Actions.Click:
                            {
                                if (actionsCount < RegistrationActionsCount)
                                {
                                    RegistrationClicks.Add(actionsCount,
                                                           JsonConvert
                                                           .DeserializeObject <Click>(
                                                               jobjectString));
                                }
                                else if (actionsCount <
                                         TaxiOrderingActionsCount + RegistrationActionsCount)
                                {
                                    TaxiOrderingClicks.Add(actionsCount,
                                                           JsonConvert
                                                           .DeserializeObject <Click>(
                                                               jobjectString));
                                }
                                else
                                {
                                    DataCleaningClicks.Add(actionsCount,
                                                           JsonConvert
                                                           .DeserializeObject <Click>(
                                                               jobjectString));
                                }

                                break;
                            }

                            case Actions.KeyboardInput:
                            {
                                KeyboardInputs.Add(actionsCount,
                                                   JsonConvert
                                                   .DeserializeObject <KeyboardInput>(
                                                       jobjectString));
                                break;
                            }

                            case Actions.EnterPress:
                            {
                                EnterPresses.Add(actionsCount,
                                                 JsonConvert
                                                 .DeserializeObject <EnterPress>(
                                                     jobjectString));
                                break;
                            }
                            }
                        }
                        else
                        {
                            throw new Exception(
                                      "Действие не было опознано. Файл кликов \"" +
                                      ClicksFilePath + "\" был повреждён.");
                        }

                        actionsCount++;
                    }
                }
            }
        }