Example #1
0
        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);
        }
Example #3
0
 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 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];
            }
        }
Example #6
0
        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);
        }
Example #8
0
        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();
        }
 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);
 }
Example #15
0
        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);

                }
            }
        }
Example #16
0
 public void SetTrial(Trial trial)
 {
     this.trial = trial;
     this.session = trial.session;
     this.subject = session.subject;
     this.study = session.study;
 }
 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);
 }
 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;
        }
 public void AddTrial(Trial t)
 {
     trial_collection.Insert(t);
 }
Example #21
0
        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.");
            }
        }
Example #22
0
        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);
                }
            }
        }
Example #23
0
 public void NextTrial(Trial trial)
 {
     this.trial = trial;
 }
Example #24
0
        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);

            }
        }
Example #25
0
 public void NextTrial(Trial trial)
 {
     this.trial = trial;
 }