public SensorReading(Study study, Subject subject, Session session, Trial trial, long recordnum, TrackerInterface.Record rec) { this.study = study; this.subject = subject; this.session = session; this.trial = trial; this.time = rec.time[0]; sensors = new Sensor[32]; for (int i = 0; i < sensors.Length; i++) { sensors[i] = new Sensor(); sensors[i].active = rec.active[i]; sensors[i].x = rec.x[i]; sensors[i].y = rec.y[i]; sensors[i].z = rec.z[i]; sensors[i].pitch = rec.pitch[i]; sensors[i].yaw = rec.yaw[i]; sensors[i].roll = rec.roll[i]; sensors[i].time = rec.time[i]; if (this.time == 0) { time = rec.time[i]; } sensors[i].quality = rec.quality[i]; sensors[i].button = rec.button[i]; } }
public void AddSensorReading(SensorReading s) { Sensor[] sensors = s.sensors; Study study = s.study; Subject sub = s.subject; Session sess = s.session; Trial trial = s.trial; // Append study/sub/sess/trial data logfile.Write(string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}", study.name, sub.id, sess.name, sess.tdate, trial.name, sess.sync1_on, sess.sync1_off, sess.sync2_on, sess.sync2_off)); for (int i = 0; i < sensors.Length; i++) { if (sensors[i].active == 1) { // Append sensor data whether sensor is active or not logfile.Write(string.Format(",{0},{9},{1},{2:0.00},{3:0.00},{4:0.00},{5:0.00},{6:0.00},{7:0.00},{8}", i, sensors[i].button, sensors[i].x, sensors[i].y, sensors[i].z, sensors[i].pitch, sensors[i].roll, sensors[i].yaw, sensors[i].quality, sensors[i].time)); } else { // If the sensor wasn't active then append a blank filler logfile.Write(",,,,,,,,,,"); } } logfile.Write("\n"); sensor_readings_collection.Insert(s); }
public void SetTrial(Trial trial) { this.trial = trial; this.session = trial.session; this.subject = session.subject; this.study = session.study; }
public MainInterface() { InitializeComponent(); database = new DatabaseControl(); bw.WorkerSupportsCancellation = true; bw.WorkerReportsProgress = true; blankList = new List<bool>(); //studies = database.Load(); currentStudy = new Study(); studyDisplay.DataSource = database.GetStudies(); currentSubject = new Subject(); //subjectDisplay.DataSource = currentStudy.subjects; currentSession = new Session(); //sessionDisplay.DataSource = currentSubject.sessions; currentTrial = new Trial(); //trialDisplay.DataSource = currentSession.trials; radiusSettings.SelectedIndex = 1; this.Refresh(); }
public void Start(TrackerInterface tracker, Trial trial) { this.tracker = tracker; this.trial = trial; this.running = true; Thread getThread = new Thread(new ThreadStart(CollectRecord)); getThread.Start(); }
public void RemoveTrial(Trial trial) { var query = Query.And( Query.EQ("study._id", trial.study._Id), Query.EQ("subject._id", trial.subject._Id), Query.EQ("session._id", trial.session._Id), Query.EQ("trial._id", trial._Id) ); trial_collection.Remove(query); sensor_readings_collection.Remove(query); }
private void trialDisplay_SelectedIndexChanged(object sender, EventArgs e) { if (trialDisplay.SelectedIndex == -1) { trialDisplay.ClearSelected(); } else { currentTrial = database.GetTrials(currentSession)[trialDisplay.SelectedIndex]; Console.WriteLine(currentTrial.ToString()); //Console.WriteLine("This trial contains {0} frames of data!", database.GetSensorReadings(currentTrial).Count); } }
public int GetTrialIndex(Trial trial) { ObservableCollection <Trial> trials = GetTrials(trial.session); for (int i = 0; i < trials.Count; i++) { Trial s = trials[i]; if (trial._Id == s._Id) { return(i); } } return(-1); }
private void removeTrial_Click(object sender, EventArgs e) { if (sessionDisplay.SelectedIndex > -1) { DialogResult result = MessageBox.Show("Are you sure you want to delete this trial?", "Remove Session", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { database.RemoveTrial(currentTrial); currentTrial = null; trialDisplay.DataSource = null; trialDisplay.DataSource = database.GetTrials(currentSession); } } }
private void addTrial_Click(object sender, EventArgs e) { string value = ""; if (sessionDisplay.SelectedIndex > -1) { DialogResult result = MainInterface.InputBox("Create New Trial", "Trial Name:", ref value); if (result == DialogResult.OK) { Trial t = new Trial(value, DateTime.Now.ToString("H:mm:ss"), currentStudy, currentSubject, currentSession); database.AddTrial(t); trialDisplay.DataSource = null; trialDisplay.DataSource = database.GetTrials(currentSession); trialDisplay.ClearSelected(); trialDisplay.SetSelected(database.GetTrialIndex(t), true); } } }
public MongoCursor <SensorReading> GetSensorReadings(Trial trial) { ObservableCollection <SensorReading> sensor_readings = new ObservableCollection <SensorReading>(); var query = Query.And( Query.EQ("study._id", trial.study._Id), Query.EQ("subject._id", trial.subject._Id), Query.EQ("session._id", trial.session._Id), Query.EQ("trial._id", trial._Id) ); Console.WriteLine("Getting sensor readings"); return(sensor_readings_collection.Find(query).SetSortOrder(SortBy.Ascending("time"))); //foreach (SensorReading sr in sensor_readings_collection.Find(query)) //{ // sensor_readings.Add(sr); //} //ObservableCollection<SensorReading> sensor_readingsSort = new ObservableCollection<SensorReading>( // sensor_readings.OrderBy(s => s.recordnum) // ); //return sensor_readings; }
public void AddTrial(Trial t) { trial_collection.Insert(t); }
public int GetTrialIndex(Trial trial) { ObservableCollection<Trial> trials = GetTrials(trial.session); for (int i = 0; i < trials.Count; i++) { Trial s = trials[i]; if (trial._Id == s._Id) { return i; } } return -1; }
public MongoCursor<SensorReading> GetSensorReadings(Trial trial) { ObservableCollection<SensorReading> sensor_readings = new ObservableCollection<SensorReading>(); var query = Query.And( Query.EQ("study._id", trial.study._Id), Query.EQ("subject._id", trial.subject._Id), Query.EQ("session._id", trial.session._Id), Query.EQ("trial._id", trial._Id) ); Console.WriteLine("Getting sensor readings"); return sensor_readings_collection.Find(query).SetSortOrder(SortBy.Ascending("time")); //foreach (SensorReading sr in sensor_readings_collection.Find(query)) //{ // sensor_readings.Add(sr); //} //ObservableCollection<SensorReading> sensor_readingsSort = new ObservableCollection<SensorReading>( // sensor_readings.OrderBy(s => s.recordnum) // ); //return sensor_readings; }
private void nextTrial_Click(object sender, EventArgs e) { // Make a new trial and start adding to that. No interruption can be allowed here. string curr_name = currentTrial.name; int numVal; try { numVal = Convert.ToInt32(curr_name); Trial t = new Trial(Convert.ToString(numVal + 1), DateTime.Now.ToString("H:mm:ss"), currentStudy, currentSubject, currentSession); database.AddTrial(t); trialDisplay.DataSource = null; trialDisplay.DataSource = database.GetTrials(currentSession); trialDisplay.ClearSelected(); trialDisplay.SetSelected(database.GetTrialIndex(t), true); recorder.NextTrial(t); } catch (FormatException exp) { MessageBox.Show("Trial name is not numeric."); Console.WriteLine("Input string is not a sequence of digits."); } }
public void NextTrial(Trial trial) { this.trial = trial; }