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 SensorReading GetRecord() { // Get the record and put it into a C# object for storage. IntPtr r = GetSyncRecord(); Record record = (Record)Marshal.PtrToStructure(r, typeof(Record)); SensorReading sr = new SensorReading(recordnum, record); recordnum++; Boolean sync; if (sr.sensors[0].button == 0) { sync = false; } else { sync = true; } if (recordnum % 20 == 0 && sr != null) { m.sensorInfo.Invoke(new MainInterface.UpdateSensorInfoCallBack(m.UpdateSensorInfo), new object[] { sr.ToString() }); m.qualityChart.Invoke(new MainInterface.UpdateQualityChartInfoCallBack(m.UpdateQualityChart), new object[] { sr.GetActiveSensors(), sr.GetQualityScores() }); m.syncstatus.Invoke(new MainInterface.UpdateSyncInfoCallBack(m.UpdateSyncInfo), new object[] { sync }); } return(sr); }
public void RemoveSensorReading(SensorReading s) { var query = Query.And( Query.EQ("study._id", s.study._Id), Query.EQ("subject._id", s.subject._Id), Query.EQ("session._id", s.session._Id), Query.EQ("trial._id", s.trial._Id) ); sensor_readings_collection.Remove(query); }
public SensorReading GetRecord() { // Get the record and put it into a C# object for storage. IntPtr r = GetSyncRecord(); Record record = (Record)Marshal.PtrToStructure(r, typeof(Record)); SensorReading sr = new SensorReading(recordnum, record); recordnum++; Boolean sync; if (sr.sensors[0].button == 0) { sync = false; } else { sync = true; } if (recordnum % 20 == 0 && sr != null) { m.sensorInfo.Invoke(new MainInterface.UpdateSensorInfoCallBack(m.UpdateSensorInfo), new object[]{sr.ToString()}); m.qualityChart.Invoke(new MainInterface.UpdateQualityChartInfoCallBack(m.UpdateQualityChart), new object[] {sr.GetActiveSensors(), sr.GetQualityScores()}); m.syncstatus.Invoke(new MainInterface.UpdateSyncInfoCallBack(m.UpdateSyncInfo), new object[] { sync }); } return sr; }