Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/com/wattzap/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ public void run() {
logger.error("ANT+ " + e.getMessage());
new DummySpeedCadenceListener();
userPrefs.setAntEnabled(false);
odo = new Odometer();
odo = new AntOdometer();
}

// Performs an isregister check, be careful if we move below AboutPanel
Expand Down
54 changes: 30 additions & 24 deletions src/com/wattzap/model/GPXReader.java
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,10 @@ public void load(String filename) {
last = wp;
}// for

double avgDistByPoint = distance/index;
int nbRollingPoint = (int)(100/avgDistByPoint);
if(nbRollingPoint<1) nbRollingPoint=1;

if (currentTime > 0) {
lastSegTime = last.getTime().getTime();
}
Expand All @@ -198,37 +202,39 @@ public void load(String filename) {
* using a moving average of 10 values.
*/
int i = 0;
int j = 0;
Rolling gradient = new Rolling(10);
for (Point p : segment) {
if (p.getDistanceFromStart() > segment[i]
.getDistanceFromStart() + gradientDistance) {
double slope = 100
* (p.getElevation() - segment[i].getElevation())
/ (p.getDistanceFromStart() - segment[i]
.getDistanceFromStart());
gradient.add(slope);
if (slope > maxSlope) {
maxSlope = slope;
}
if (slope < minSlope) {
minSlope = slope;
Rolling gradient = new Rolling(nbRollingPoint);
//for (Point p : segment) {
int b = 0;
int a = 0;
while(i < segment.length){
b = i-1;
if(b<0) b=0;
a = i+1;
if(a>segment.length-1) a = segment.length-1;
while(segment[a].getDistanceFromStart() - segment[b].getDistanceFromStart() < gradientDistance){ //distance < 100m
if(segment[a].getDistanceFromStart() - segment[i].getDistanceFromStart() > segment[i].getDistanceFromStart() - segment[b].getDistanceFromStart() && b > 0){ //after is bigger
b--;
} else { //before is bigger
if(a < segment.length-1){
a++;
} else {
b--;
}
}
segment[i++].setGradient(gradient.getAverage());
}
j++;
}

while (i < j - 1) {
double slope = 100
* (segment[j - 1].getElevation() - segment[i]
.getElevation())
/ (segment[j - 1].getDistanceFromStart() - segment[i]
* (segment[a].getElevation() - segment[b].getElevation())
/ (segment[a].getDistanceFromStart() - segment[b]
.getDistanceFromStart());
gradient.add(slope);
if (slope > maxSlope) {
maxSlope = slope;
}
if (slope < minSlope) {
minSlope = slope;
}
segment[i++].setGradient(gradient.getAverage());
}
segment[i++].setGradient(gradient.getAverage());
// gradient done

// resistance levels - use blocks of 500 meters
Expand Down
4 changes: 2 additions & 2 deletions src/com/wattzap/view/training/TrainingDisplay.java
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ public void callback(Messages message, Object o) {
}

startTime = 0;
MessageBus.INSTANCE.send(Messages.TRAININGITEM, current);
if(current != null) MessageBus.INSTANCE.send(Messages.TRAININGITEM, current);

break;
case STARTPOS:
Expand Down Expand Up @@ -431,4 +431,4 @@ public void callback(Messages message, Object o) {
break;
}
}
}
}