Exemplo n.º 1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            IntPtr MenuHandle = GetSystemMenu(this.Handle, false);

            InsertMenu(MenuHandle, 0, MF_BYPOSITION | MF_SEPARATOR, 0, string.Empty); // <-- Add a menu seperator
            InsertMenu(MenuHandle, 0, MF_BYPOSITION, ABOUT, "About");


            backgroundWorker1.RunWorkerAsync();

            foreach (var mcu in flasher.getMCUList())
            {
                mcuBox.Items.Add(mcu);
            }
            if (mcuBox.SelectedIndex == -1)
            {
                mcuBox.SelectedIndex = 0;
            }

            if (Settings.Default.hexFileCollection != null)
            {
                this.filepathBox.Items.AddRange(Settings.Default.hexFileCollection.ToArray());
            }

            richTextBox1.Font = new Font(FontFamily.GenericMonospace, 8);

            printer.print("QMK Toolbox (http://qmk.fm/toolbox)", MessageType.Info);
            printer.printResponse("Supporting following bootloaders:\n", MessageType.Info);
            printer.printResponse(" - DFU (Atmel, LUFA) via dfu-programmer (http://dfu-programmer.github.io/)\n", MessageType.Info);
            printer.printResponse(" - Caterina (Arduino, Pro Micro) via avrdude (http://nongnu.org/avrdude/)\n", MessageType.Info);
            printer.printResponse(" - Halfkay (Teensy, Ergodox EZ) via teensy_loader_cli (https://pjrc.com/teensy/loader_cli.html)\n", MessageType.Info);
            printer.printResponse(" - STM32 (ARM) via dfu-util (http://dfu-util.sourceforge.net/)\n", MessageType.Info);
            printer.printResponse(" - Kiibohd (ARM) via dfu-util (http://dfu-util.sourceforge.net/)\n", MessageType.Info);
            printer.printResponse("And the following ISP flasher protocols:\n", MessageType.Info);
            printer.printResponse(" - USBTiny (AVR Pocket)\n", MessageType.Info);
            printer.printResponse(" - AVRISP (Arduino ISP)\n", MessageType.Info);

            List <USBDeviceInfo> devices = new List <USBDeviceInfo>();

            ManagementObjectCollection collection;

            using (var searcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_PnPEntity where DeviceID Like ""USB%"""))
                collection = searcher.Get();

            usb.DetectBootloaderFromCollection(collection);

            UpdateHIDDevices();
            updateHIDList();

            if (filePassedIn != string.Empty)
            {
                setFilePath(filePassedIn);
            }

            LoadKeyboardList();
            LoadKeymapList();
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                AttachConsole(ATTACH_PARENT_PROCESS);

                Printing printer = new Printing();
                if (args.Length < 3)
                {
                    printer.print("QMK Toolbox (http://qmk.fm/toolbox)", MessageType.Info);
                    printer.printResponse("Supporting following bootloaders:\n", MessageType.Info);
                    printer.printResponse(" - DFU (Atmel, LUFA) via dfu-programmer (http://dfu-programmer.github.io/)\n", MessageType.Info);
                    printer.printResponse(" - Caterina (Arduino, Pro Micro) via avrdude (http://nongnu.org/avrdude/)\n", MessageType.Info);
                    printer.printResponse(" - Halfkay (Teensy, Ergodox EZ) via teensy_loader_cli (https://pjrc.com/teensy/loader_cli.html)\n", MessageType.Info);
                    printer.printResponse(" - STM32 (ARM) via dfu-util (http://dfu-util.sourceforge.net/)\n", MessageType.Info);
                    printer.printResponse(" - Kiibohd (ARM) via dfu-util (http://dfu-util.sourceforge.net/)\n", MessageType.Info);
                    printer.printResponse("And the following ISP flasher protocols:\n", MessageType.Info);
                    printer.printResponse(" - USBTiny (AVR Pocket)\n", MessageType.Info);
                    printer.printResponse(" - AVRISP (Arduino ISP)\n", MessageType.Info);
                    printer.printResponse("usage: qmk_toolbox.exe <mcu> <filepath>", MessageType.Info);
                }
                else
                {
                    printer.print("QMK Toolbox (http://qmk.fm/toolbox)", MessageType.Info);
                    Flashing flasher = new Flashing(printer);
                    USB      usb     = new USB(flasher, printer);
                    flasher.usb = usb;

                    ManagementObjectCollection collection;
                    using (var searcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_PnPEntity where DeviceID Like ""USB%"""))
                        collection = searcher.Get();

                    usb.DetectBootloaderFromCollection(collection);

                    if (args[0].Equals("flash"))
                    {
                        var mcu      = args[1];
                        var filepath = args[2];
                        flasher.flash(mcu, filepath);
                    }
                    else if (args[0].Equals("list"))
                    {
                    }
                    else if (args[0].Equals("eepromReset"))
                    {
                    }
                }

                FreeConsole();
            }
            else
            {
                if (mutex.WaitOne(TimeSpan.Zero, true))
                {
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run(args.Length == 0 ? new Form1(string.Empty) : new Form1(args[0]));
                    mutex.ReleaseMutex();
                }
                else
                {
                    // send our Win32 message to make the currently running instance
                    // jump on top of all the other windows
                    if (args.Length > 0)
                    {
                        using (StreamWriter sw = new StreamWriter(Path.Combine(Path.GetTempPath(), "qmk_toolbox/file_passed_in.txt"))) {
                            sw.WriteLine(args[0]);
                        }
                    }
                    NativeMethods.PostMessage(
                        (IntPtr)NativeMethods.HWND_BROADCAST,
                        NativeMethods.WM_SHOWME,
                        IntPtr.Zero,
                        IntPtr.Zero);
                }
            }
        }