예제 #1
0
파일: Memory.cs 프로젝트: sh932111/StuBrain
        //private ChartDraw chartDraw = null;

        public Memory(ConfigManager manager, ArrayList root_f)
        {
            InitializeComponent();
            this.configManager = manager;
            // this.TopMost = true;
            this.rootFrom = root_f;
            if (!manager.getIsTest())
            {
                string memory = ChromeUtils.memoryURL + configManager.getOrderID();
                ChromeUtils.openChrome(memory);
            }
            BluetoothDeviceManager deviceManager = manager.getDeviceManager();
            FloderUtils            folder        = new FloderUtils(manager.getPath());

            folder.createRoot();
            this.runPath       = folder.createDeviceFolder(deviceManager.getDeviceAddress(), manager.getOrderID());
            ageText.Text       = "年紀:" + manager.getYear();
            nameText.Text      = "受試者:" + manager.getName();
            orderIDText.Text   = "資料夾ID:" + manager.getOrderID();
            this.brainReceiver = new BrainReceiver(deviceManager.getCOM(), brainReiverCallback, sectionReciver, abrainCallback);
            //this.chartDraw = new ChartDraw(runPath);
            //chartDraw.Show();
            //chartDraw.Location = new Point(0,120);
            labelDeviceName.Text = deviceManager.getDeviceName() + "(" + deviceManager.getCOM() + ")";
            labelMac.Text        = deviceManager.getDeviceAddress();
            serviceTime          = -1;
            brainReciverRun();
        }
예제 #2
0
        private void btnCheck_Click(object sender, EventArgs e)
        {
            if (outputText.Text.Length == 0)
            {
                FolderBrowserDialog path = new FolderBrowserDialog();
                path.ShowDialog();
                outputText.Text = path.SelectedPath;
            }
            if (outputText.Text.Length == 0)
            {
                MessageBox.Show("尚未選擇輸出路徑!");
                return;
            }
            if (textTestTime.Text.Length == 0 || textUserName.Text.Length == 0 || textUserYearOld.Text.Length == 0 || textWordNum.Text.Length == 0)
            {
                MessageBox.Show("欄位都為必填!");
                return;
            }
            ArrayList list = bluetooth_list.getResult();

            if (list.Count == 0)
            {
                MessageBox.Show("尚未選擇Device!");
                return;
            }
            ChromeUtils.closeChrome();
            Boolean isclient = checkBoxClient.Checked;

            if (isclient)
            {
                BluetoothDeviceManager manager = (BluetoothDeviceManager)list[0];
                string        order_id         = DateTime.Now.ToString("yyyyMMddHHmmss");
                ConfigManager config_manager   = new ConfigManager(order_id, outputText.Text, int.Parse(textTestTime.Text), manager, true, isclient, textUserName.Text, textUserYearOld.Text);
                MessageBox.Show("準備好了?確定後開始測試");
                ArrayList formList = new ArrayList();
                formList.Add(this);
                formList.Add(bluetooth_list);
                new Memory(config_manager, formList);
            }
            else
            {
                BluetoothDeviceManager manager    = (BluetoothDeviceManager)list[0];
                HttpWorker             httpWorker = new HttpWorker(HttpWorker.orderCreate, httpResponse);
                JSONObject             form       = new JSONObject();
                form.setString("deviceAddress", manager.getDeviceAddress());
                form.setString("userName", textUserName.Text);
                form.setString("userYearOld", textUserYearOld.Text);
                form.setString("wordNum", textWordNum.Text);
                form.setString("testTime", textTestTime.Text);
                httpWorker.setData(form);
                httpWorker.httpWorker();
                WaitDialog.show();
            }
        }
예제 #3
0
파일: DoTest.cs 프로젝트: sh932111/StuBrain
        private void httpResponse(JSONObject response)
        {
            WaitDialog.close();
            int error_code = response.getInt("error_code");

            if (error_code == 0)
            {
                ChromeUtils.closeChrome();
                this.Close();
                OrderView view = new OrderView(configManager.getOrderID(), configManager.getPath());
                view.Show();
            }
            else
            {
                string message = response.getString("message");
                MessageBox.Show(message);
            }
        }
예제 #4
0
        /// <summary>
        /// Initializes an instance of Chrome
        /// </summary>
        /// <param name="remoteDebuggingPort">The port provided for the remote debugger</param>
        /// <param name="headless">indicates if the window should be hidden</param>
        public Chrome(int remoteDebuggingPort = 9222, bool headless = true)
        {
            var directoryInfo = ChromeUtils.CreateTempFolder();

            _remoteDebuggingPort = remoteDebuggingPort;
            var remoteDebuggingArg = $"--remote-debugging-port={remoteDebuggingPort}";
            var userDirectoryArg   = $"--user-data-dir=\"{directoryInfo}\"";
            var chromeProcessArgs  = $"{remoteDebuggingArg} {userDirectoryArg} --bwsi --no-first-run";

            if (headless)
            {
                chromeProcessArgs += " --headless";
            }

            _chromeProcess = Process.Start(ChromeUtils.GetChromePath(), chromeProcessArgs);
            System.Threading.Thread.Sleep(100);
            _aliveSessions = new Dictionary <string, ChromeSession>();
        }
예제 #5
0
        private void httpResponse(JSONObject response)
        {
            WaitDialog.close();
            int error_code = response.getInt("error_code");

            if (error_code == 0)
            {
                ChromeUtils.closeChrome();
                this.Close();
                ShowExDialog.show("第二步、背單字", Properties.Resources.memory);
                new Memory(configManager, null);
            }
            else
            {
                string message = response.getString("message");
                MessageBox.Show(message);
            }
        }
예제 #6
0
        private void exBtn_Click(object sender, EventArgs e)
        {
            int test = 0;

            if (test == 1)
            {
                if (outputText.Text.Length == 0)
                {
                    FolderBrowserDialog path = new FolderBrowserDialog();
                    path.ShowDialog();
                    outputText.Text = path.SelectedPath;
                }
                string p = outputText.Text + "/" + "BrainResult" + "/" + "8CDE52929277";
                foreach (string fname in Directory.GetFileSystemEntries(p))
                {
                    string file = fname + "/" + "FFT.csv";
                }
            }
            ChromeUtils.openChrome(ChromeUtils.exURL);
        }
예제 #7
0
        private void dgSources_Drop(object sender, DragEventArgs e)
        {
            var viewModel = (DataContext as MainViewModel);
            var frmts     = e.Data.GetFormats();

            if (e.Data.GetDataPresent(ChromeUtils.DDChromeBookmarks))
            {
                using (MemoryStream ms = e.Data.GetData(ChromeUtils.DDChromeBookmarks) as MemoryStream)
                {
                    var bookmarks = ChromeUtils.ReadBookmarks(ms.ToArray());
                    foreach (var bookmark in bookmarks)
                    {
                        viewModel.AddModSource(bookmark.URL);
                    }
                }
            }
            else if (e.Data.GetDataPresent(ChromeUtils.DDText))
            {
                viewModel.AddModSource(e.Data.GetData(ChromeUtils.DDText) as string);
            }
        }
예제 #8
0
파일: Memory.cs 프로젝트: sh932111/StuBrain
 private void stopTimer()
 {
     stopWorker();
     time = 0;
     brainReceiver.stop();
     if (!configManager.getIsTest())
     {
         ChromeUtils.closeChrome();
         this.Close();
         ShowExDialog.show("第三步、測試單字", Properties.Resources.test);
         DoTest doTest = new DoTest(configManager);
         doTest.Show();
         doTest.Location = new Point(0, 0);
         ChromeUtils.openChrome(ChromeUtils.testURL + configManager.getOrderID());
     }
     else
     {
         WindowsMediaPlayer newMedia = new WindowsMediaPlayer();
         newMedia.URL = @"sound.mp3";
         newMedia.controls.play();
         if (configManager.getIsClient())
         {
             WriteFile writeFile = new WriteFile(this.runPath);
             writeFile.clientSave(configManager);
             this.Close();
             BrainChart view = new BrainChart(this.runPath, false, true, configManager);
             view.Show();
         }
         else
         {
             HttpWorker httpWorker = new HttpWorker(HttpWorker.orderFinish, httpResponse);
             JSONObject form       = new JSONObject();
             form.setString("orderID", configManager.getOrderID());
             httpWorker.setData(form);
             httpWorker.httpWorker();
             WaitDialog.show();
         }
     }
 }
예제 #9
0
        private void httpResponse(JSONObject response)
        {
            WaitDialog.close();
            int error_code = response.getInt("error_code");

            if (error_code == 0)
            {
                Boolean   isTest               = radioTest.Checked;
                Boolean   isclient             = checkBoxClient.Checked;
                ArrayList list                 = bluetooth_list.getResult();
                BluetoothDeviceManager manager = (BluetoothDeviceManager)list[0];
                string        order_id         = response.getString("orderID");
                ConfigManager config_manager   = new ConfigManager(order_id, outputText.Text, int.Parse(textTestTime.Text), manager, isTest, isclient, textUserName.Text, textUserYearOld.Text);
                if (!config_manager.getIsTest())
                {
                    ShowExDialog.show("第一步、選擇單字", Properties.Resources.choose);
                    string chooseUrl = ChromeUtils.chooseURL + order_id;
                    ChromeUtils.openChrome(chooseUrl);
                    Choose choose = new Choose(config_manager);
                    choose.Show();
                    choose.Location  = new Point(0, 0);
                    this.WindowState = FormWindowState.Minimized;
                }
                else
                {
                    MessageBox.Show("準備好了?確定後開始測試");
                    ArrayList formList = new ArrayList();
                    formList.Add(this);
                    formList.Add(bluetooth_list);
                    new Memory(config_manager, formList);
                }
            }
            else
            {
                string message = response.getString("message");
                MessageBox.Show(message);
            }
        }