public void StartButtonClick(object sender, EventArgs e) //Clicking "Start" starts the timer and you can only start after you have selected a rat and locked it in { fillButton.Hide(); SessionHasBegun = true; if (ratWasChosen) { if (recordButton.BackColor != Color.AliceBlue) { MessageBox.Show(this, "Check if Cheetah is Recording Session", "Cheetah Recording", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); } string reply = ""; if (!(mNetComClient.SendCommand("-PostEvent \"StartWM\" 0 0", ref reply))) { MessageBox.Show(this, "Send command to server failed", "NetCom Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } else { String[] parsedReplyString = reply.Split(' '); if (0 < parsedReplyString.GetLength(0)) { if (parsedReplyString[0].Equals("-1")) { MessageBox.Show(this, "Cheetah could not process your command.", "NetCom Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } } startButton.ForeColor = Color.AliceBlue; _elapsed_time = 0; Recording_Time.Enabled = true; updateTime(); startPreSleep.Visible = false; stopPreSleep.Visible = false; startButton.Enabled = false; //Felix(The BackroundWorker) felix.DoWork += listen_to_arduino; felix.RunWorkerCompleted += run_worker_completed; felix.RunWorkerAsync(); } else { var ratWindow = new SelectRatWindow(); ratWindow.StartPosition = FormStartPosition.CenterParent; ratWindow.ShowDialog(); } try //sends a message to the UNO to reinitialize variables { var message = new char[1] { 'L' }; serialPort.Write(message, 0, 1); } catch (Exception) { } }
private void SelectButtonClick(object sender, EventArgs e) //When you click "Select" you lock in the rat number and info { cleanButton.Show(); if (RatSelection.SelectedIndex >= 0) { selectButton.Hide(); RatSelection.Hide(); if (recordingStatus == true) { startPreSleep.Show(); stopPreSleep.Show(); } ephys.Show(); startButton.Show(); stopButton.Show(); selectedRat = true; saveButton.Enabled = true; if (RatSelection.Text == "New Rat") { var rat_entry = new NewRat(); rat_entry.ShowDialog(); ratName.Add(newRatNo); //Console.WriteLine($"The NEW RAT NO IS {newRatNo}"); name_to_age.Add(newRatNo, newRatAge); name_to_session.Add(newRatNo, 0); chosenRat = newRatNo; ratSelectionLabel.Text = newRatNo; } else { ratSelectionLabel.Text = $"{ratName[RatSelection.SelectedIndex]}"; chosenRat = ratName[RatSelection.SelectedIndex]; } ageLabel.Text = name_to_age[chosenRat]; sessionLabel.Text = name_to_session[chosenRat].ToString(); CsvFiles.OpenSessionCsv(chosenRat); CsvFiles.OpenWriteToRatData(); foreach (var ratname in name_to_age.Keys) { if (ratname == chosenRat) { name_to_session[ratname]++; } CsvFiles.RatdataWriter.Write( $"{ratname},{name_to_age[ratname]},{name_to_session[ratname]}\n"); } sessionNumber = (name_to_session[chosenRat] - 1).ToString(); CsvFiles.OpenTimestampCsv(chosenRat, sessionNumber); CsvFiles.TimestampCsv.Write("Feeder,Type,Timestamp\n"); CsvFiles.RatdataClose(); ratWasChosen = true; if (recordingStatus == true) { string reply = ""; if (!(mNetComClient.SendCommand($"-ProcessConfigurationFile WMAZE_HALO_Ephys_Setup_{chosenRat}.cfg", ref reply))) { MessageBox.Show(this, "Send command to server failed", "NetCom Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } else { String[] parsedReplyString = reply.Split(' '); if (0 < parsedReplyString.GetLength(0)) { if (parsedReplyString[0].Equals("-1")) { MessageBox.Show(this, "Cheetah could not process your command.", "NetCom Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } } if (!(mNetComClient.SendCommand($"-SetDataDirectory \"F:\\CurrentCheetahData\\{chosenRat}\\WM_{chosenRat}\\{dateLString}_Session{sessionNumber}\" ", ref reply))) { MessageBox.Show(this, "Send command to server failed", "NetCom Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } else { String[] parsedReplyString = reply.Split(' '); if (0 < parsedReplyString.GetLength(0)) { if (parsedReplyString[0].Equals("-1")) { MessageBox.Show(this, "Cheetah could not process your command.", "Cannot set Data Directory", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } } string folderPath = $"F:\\CurrentCheetahData\\{chosenRat}\\WM_{chosenRat}\\RawData\\{dateLString}_Session{sessionNumber}\\"; if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } if (!(mNetComClient.SendCommand($"-SetRawDataFile AcqSystem1 \"F:\\CurrentCheetahData\\{chosenRat}\\WM_{chosenRat}\\RawData\\{dateLString}_Session{sessionNumber}\\RawData.nrd \" ", ref reply))) { MessageBox.Show(this, "Send command to server failed", "NetCom Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } else { String[] parsedReplyString = reply.Split(' '); if (0 < parsedReplyString.GetLength(0)) { if (parsedReplyString[0].Equals("-1")) { MessageBox.Show(this, "Cheetah could not process your command.", "NetCom Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); } } } } ratbeingtested = ratName[RatSelection.SelectedIndex]; } }