[chronojump] On inertialCalibrated save since 0 is crossed
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] On inertialCalibrated save since 0 is crossed
- Date: Wed, 15 Feb 2017 12:27:29 +0000 (UTC)
commit 7920c748637819fec4280348385bb364c763f7ef
Author: Xavier de Blas <xaviblas gmail com>
Date: Wed Feb 15 13:24:14 2017 +0100
On inertialCalibrated save since 0 is crossed
src/encoderCapture.cs | 24 +++++++++++++++++++++++-
1 files changed, 23 insertions(+), 1 deletions(-)
---
diff --git a/src/encoderCapture.cs b/src/encoderCapture.cs
index 83567c9..9e5f933 100644
--- a/src/encoderCapture.cs
+++ b/src/encoderCapture.cs
@@ -86,6 +86,11 @@ public abstract class EncoderCapture
protected bool finish;
protected bool capturingInertialBG;
+ //get the moment where we cross 0 first time on inertial calibrated
+ //signal will be saved from here
+ protected int inertialCalibratedFirstCross0Pos;
+ protected bool inertialCalibrated;
+
//capture is simulated (a signal file is readed)
private static bool simulated = false;
private int [] simulatedInts;
@@ -182,6 +187,7 @@ public abstract class EncoderCapture
public virtual void InitCalibrated(int angleNow)
{
+ inertialCalibrated = false;
}
public bool Capture(string outputData1, EncoderRProcCapture encoderRProcCapture, bool compujump)
@@ -192,6 +198,8 @@ public abstract class EncoderCapture
return false;
}
+ inertialCalibratedFirstCross0Pos = 0;
+
LogB.Information("sum = " + sum.ToString());
LogB.Information("sumInertialDisc = " + sumInertialDisc.ToString());
do {
@@ -240,6 +248,15 @@ public abstract class EncoderCapture
}
+ //on inertialCalibrated set mark where 0 is crossed for the first time
+ if(inertialCalibrated && inertialCalibratedFirstCross0Pos == 0)
+ {
+ if(byteReaded > 0 && sumInertialDisc < 0 && sumInertialDisc +
byteReaded >= 0)
+ inertialCalibratedFirstCross0Pos = i;
+ else if(byteReaded < 0 && sumInertialDisc > 0 && sumInertialDisc +
byteReaded <= 0)
+ inertialCalibratedFirstCross0Pos = i;
+ }
+
sumInertialDisc += byteReaded;
encoderReadedInertialDisc.Add(byteReaded);
@@ -649,6 +666,7 @@ public class EncoderCaptureInertial : EncoderCapture
public override void InitCalibrated(int angleNow)
{
+ inertialCalibrated = true;
sum = angleNow;
sumInertialDisc = angleNow;
@@ -786,7 +804,11 @@ public class EncoderCaptureInertial : EncoderCapture
{
TextWriter writer = File.CreateText(file);
- encoderReadedInertialDisc = trimInitialZeros(encoderReadedInertialDisc);
+ //on inertialCalibrated remove from the beginnig to the moment where 0 is crossed
+ if(inertialCalibrated && inertialCalibratedFirstCross0Pos != 0)
+ encoderReadedInertialDisc.RemoveRange(0, inertialCalibratedFirstCross0Pos);
+ else
+ encoderReadedInertialDisc = trimInitialZeros(encoderReadedInertialDisc);
string sep = "";
foreach(int k in encoderReadedInertialDisc) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]