[chronojump] Encoder data starts being saved
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Encoder data starts being saved
- Date: Tue, 10 Apr 2012 17:15:06 +0000 (UTC)
commit fc1bf829e7b66690fe874be9d3985284530a6e2d
Author: Xavier de Blas <xaviblas gmail com>
Date: Tue Apr 10 19:14:45 2012 +0200
Encoder data starts being saved
diagrams/sqlite/chronojump_sqlite.dia | Bin 12849 -> 12855 bytes
diagrams/sqlite/chronojump_sqlite.png | Bin 157555 -> 157806 bytes
src/gui/encoder.cs | 50 +++++++++++++++++++++++++++++----
src/gui/genericWindow.cs | 4 ++
src/sqlite/encoder.cs | 9 +++--
src/util.cs | 15 ++++++++++
6 files changed, 68 insertions(+), 10 deletions(-)
---
diff --git a/diagrams/sqlite/chronojump_sqlite.dia b/diagrams/sqlite/chronojump_sqlite.dia
index 7603870..67fbcc9 100644
Binary files a/diagrams/sqlite/chronojump_sqlite.dia and b/diagrams/sqlite/chronojump_sqlite.dia differ
diff --git a/diagrams/sqlite/chronojump_sqlite.png b/diagrams/sqlite/chronojump_sqlite.png
index 051de5e..dc74e49 100644
Binary files a/diagrams/sqlite/chronojump_sqlite.png and b/diagrams/sqlite/chronojump_sqlite.png differ
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 02b6cc9..c12ceb0 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -25,6 +25,7 @@ using Gdk;
using Glade;
using System.Collections;
using System.Threading;
+using Mono.Unix;
public partial class ChronoJumpWindow
@@ -69,6 +70,8 @@ public partial class ChronoJumpWindow
private string encoderAnalysis="powerBars";
enum encoderModes { CAPTURE, ANALYZE }
+ GenericWindow genericWinForEncoder;
+
//TODO: check all repetitive conditions areok on pyserial and on treeview
//TODO: fix spinbutton on repetitive conditions (page...) to ensure decimal can be selected
@@ -134,7 +137,7 @@ public partial class ChronoJumpWindow
(int) spin_encoder_capture_time.Value,
(int) spin_encoder_capture_min_height.Value,
!radiobutton_encoder_capture_bar.Active,
- findMass(),
+ findMass(true),
Util.ConvertToPoint((double) spin_encoder_smooth.Value), //R decimal: '.'
findEccon(),
heightHigherCondition, heightLowerCondition,
@@ -189,7 +192,7 @@ public partial class ChronoJumpWindow
EncoderParams ep = new EncoderParams(
(int) spin_encoder_capture_min_height.Value,
!radiobutton_encoder_capture_bar.Active,
- findMass(),
+ findMass(true),
findEccon(), "curves",
Util.ConvertToPoint((double) spin_encoder_smooth.Value), //R decimal: '.'
0, //curve is not used here
@@ -207,7 +210,39 @@ public partial class ChronoJumpWindow
void on_button_encoder_save_clicked (object o, EventArgs args)
{
+ genericWinForEncoder = GenericWindow.Show(Catalog.GetString("Add an optional description"), Constants.GenericWindowShow.TEXTVIEW);
+ genericWinForEncoder.SetTextview("");
+ genericWinForEncoder.SetButtonAcceptLabel(Catalog.GetString("Save"));
+
+ genericWinForEncoder.Button_accept.Clicked += new EventHandler(on_save_description_add_accepted);
}
+
+ private void on_save_description_add_accepted (object o, EventArgs args) {
+ genericWinForEncoder.Button_accept.Clicked -= new EventHandler(on_save_description_add_accepted);
+ string desc = genericWinForEncoder.TextviewSelected;
+
+ Log.WriteLine(desc);
+
+ //Saving file
+ //Util.MoveTempEncoderData (currentSession.UniqueID, currentPerson.UniqueID);
+ Util.CopyTempEncoderData (currentSession.UniqueID, currentPerson.UniqueID);
+
+ //Adding on SQL
+ SqliteEncoder.Insert(false, "-1",
+ currentPerson.UniqueID, currentSession.UniqueID,
+ "put an automatic name", //TODO: using uniqueID and a counter, or maybe it's sql id autoincrement
+ Util.GetEncoderSessionDataDir(currentSession.UniqueID), //url
+ (! radiobutton_encoder_capture_bar.Active).ToString(),
+ findMass(false), //when save on sql, do not include person weight
+ findEccon(),
+ (int) spin_encoder_capture_time.Value,
+ (int) spin_encoder_capture_min_height.Value,
+ (double) spin_encoder_smooth.Value,
+ desc);
+
+ encoder_pulsebar_capture.Text = "Saved.";
+ }
+
void on_button_encoder_load_clicked (object o, EventArgs args)
{
}
@@ -225,7 +260,7 @@ public partial class ChronoJumpWindow
EncoderParams ep = new EncoderParams(
(int) spin_encoder_capture_min_height.Value,
!radiobutton_encoder_capture_bar.Active,
- findMass(),
+ findMass(true),
findEccon(), encoderAnalysis,
Util.ConvertToPoint((double) spin_encoder_smooth.Value), //R decimal: '.'
(int) spin_encoder_analyze_curve_num.Value,
@@ -264,12 +299,15 @@ public partial class ChronoJumpWindow
encoderAnalysis="powerBars";
}
- private string findMass() {
+ private string findMass(bool includePerson) {
double mass = 0;
if(radiobutton_encoder_capture_bar.Active)
mass = spin_encoder_bar_limit.Value;
- else
- mass = Convert.ToDouble(label_encoder_person_weight.Text) + spin_encoder_jump_limit.Value;
+ else {
+ mass = spin_encoder_jump_limit.Value;
+ if(includePerson)
+ mass += Convert.ToDouble(label_encoder_person_weight.Text);
+ }
return Util.ConvertToPoint(mass); //R decimal: '.'
}
diff --git a/src/gui/genericWindow.cs b/src/gui/genericWindow.cs
index deb025e..4e2404a 100644
--- a/src/gui/genericWindow.cs
+++ b/src/gui/genericWindow.cs
@@ -94,6 +94,10 @@ public class GenericWindow
tb.Text = str;
textview.Buffer = tb;
}
+
+ public void SetButtonAcceptLabel(string str) {
+ button_accept.Label=str;
+ }
protected void on_button_cancel_clicked (object o, EventArgs args)
diff --git a/src/sqlite/encoder.cs b/src/sqlite/encoder.cs
index 91cce3c..18febd6 100644
--- a/src/sqlite/encoder.cs
+++ b/src/sqlite/encoder.cs
@@ -43,6 +43,7 @@ class SqliteEncoder : Sqlite
"uniqueID INTEGER PRIMARY KEY, " +
"personID INT, " +
"sessionID INT, " +
+ "name TEXT, " +
"url TEXT, " +
"type TEXT, " + //"bar" or "jump"
"extraWeight TEXT, " + //string because can contain "33%" or "50Kg"
@@ -59,7 +60,7 @@ class SqliteEncoder : Sqlite
* Encoder class methods
*/
- public static int Insert(bool dbconOpened, string tableName, string uniqueID, int personID, int sessionID, string url, string type, string extraWeight, string eccon, int time, int minHeight, float smooth, string description)
+ public static int Insert(bool dbconOpened, string uniqueID, int personID, int sessionID, string name, string url, string type, string extraWeight, string eccon, int time, int minHeight, double smooth, string description)
{
if(! dbconOpened)
dbcon.Open();
@@ -67,10 +68,10 @@ class SqliteEncoder : Sqlite
if(uniqueID == "-1")
uniqueID = "NULL";
- dbcmd.CommandText = "INSERT INTO " + tableName +
- " (uniqueID, personID, sessionID, url, type, extraWeight, econ, time, minHeight, smooth, description)" +
+ dbcmd.CommandText = "INSERT INTO " + Constants.EncoderTable +
+ " (uniqueID, personID, sessionID, name, url, type, extraWeight, eccon, time, minHeight, smooth, description)" +
" VALUES (" + uniqueID + ", "
- + personID + ", " + sessionID + ", '" + url + "', '" + type + "', '"
+ + personID + ", " + sessionID + ", '" + name + "', '" + url + "', '" + type + "', '"
+ extraWeight + "', '" + eccon + "', " + time + ", " + minHeight + ", "
+ Util.ConvertToPoint(smooth) + ", '" + description + "')" ;
Log.WriteLine(dbcmd.CommandText.ToString());
diff --git a/src/util.cs b/src/util.cs
index e034dcd..ac2949c 100644
--- a/src/util.cs
+++ b/src/util.cs
@@ -844,6 +844,21 @@ public class Util
return Path.Combine(Path.GetTempPath(), Constants.EncoderGraphTemp);
}
+// public static void MoveTempEncoderData(int sessionID, int uniqueID) {
+ public static void CopyTempEncoderData(int sessionID, int uniqueID) {
+ if(File.Exists(GetEncoderDataTempFileName())) {
+ CreateEncoderSessionDirsIfNeeded(sessionID);
+// try {
+// File.Move(GetEncoderDataTempFileName(), GetEncoderSessionDataDir(sessionID));
+// } catch {
+ File.Copy(GetEncoderDataTempFileName(),
+ GetEncoderSessionDataDir(sessionID) +
+ Path.DirectorySeparatorChar +
+ "encoder-copied.txt");
+// }
+ }
+ }
+
/********** end of encoder paths ************/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]