mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-21 21:25:38 +00:00
added start delay to Data Mining
This commit is contained in:
+1
@@ -87,6 +87,7 @@ AbsoluteRankPredictionErrorRhumbLineBasedAcrossFirstThreeQuarters=Error of avera
|
||||
WindSpeedInBeaufort=Wind Speed in Bft
|
||||
DistanceAtStart=Distance to Start at Start
|
||||
SpeedWhenStarting=Speed at Start
|
||||
StartDelay=Start Delay
|
||||
SpeedTenSecondsBeforeStart=Speed 10s Before Start
|
||||
RankAtFirstMark=Rank at First Mark
|
||||
NumberOfManeuvers=Number of Maneuvers
|
||||
|
||||
+1
@@ -86,6 +86,7 @@ AbsoluteRankPredictionErrorRhumbLineBasedAcrossFirstThreeQuarters=Relative Abwei
|
||||
WindSpeedInBeaufort=Windgeschwindigkeit in Bft.
|
||||
DistanceAtStart=Distanz zur Startlinie zum Startzeitpunkt
|
||||
SpeedWhenStarting=Geschwindigkeit beim Überqueren der Startlinie
|
||||
StartDelay=Startverzug
|
||||
SpeedTenSecondsBeforeStart=Geschwindigkeit 10s vor dem Startzeitpunkt
|
||||
RankAtFirstMark=Position beim ersten Wegpunkt
|
||||
NumberOfManeuvers=Anzahl der Manöver
|
||||
|
||||
+3
@@ -87,6 +87,9 @@ public interface HasRaceOfCompetitorContext extends HasSomethingOfCompetitorCont
|
||||
@Connector(messageKey="SpeedWhenStarting", ordinal=3)
|
||||
Speed getSpeedWhenStarting();
|
||||
|
||||
@Statistic(messageKey="StartDelay", resultDecimals=1)
|
||||
Duration getStartDelay();
|
||||
|
||||
@Connector(messageKey="SpeedTenSecondsBeforeStart", ordinal=4)
|
||||
Speed getSpeedTenSecondsBeforeStart();
|
||||
|
||||
|
||||
+21
@@ -3,6 +3,7 @@ package com.sap.sailing.datamining.impl.data;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.NavigableSet;
|
||||
import java.util.Set;
|
||||
import java.util.SortedMap;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -232,6 +233,26 @@ public class RaceOfCompetitorWithContext implements HasRaceOfCompetitorContext {
|
||||
return getTrackedRace().getSpeedWhenCrossingStartLine(getCompetitor());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getStartDelay() {
|
||||
final NavigableSet<MarkPassing> competitorMarkPassings = getTrackedRace().getMarkPassings(competitor);
|
||||
getTrackedRace().lockForRead(competitorMarkPassings);
|
||||
try {
|
||||
final Duration result;
|
||||
final TimePoint startOfRace;
|
||||
if (!competitorMarkPassings.isEmpty() && (startOfRace = getTrackedRace().getStartOfRace()) != null) {
|
||||
final MarkPassing firstMarkPassing = competitorMarkPassings.iterator().next();
|
||||
TimePoint competitorStartTime = firstMarkPassing.getTimePoint();
|
||||
result = startOfRace.until(competitorStartTime);
|
||||
} else {
|
||||
result = null;
|
||||
}
|
||||
return result;
|
||||
} finally {
|
||||
getTrackedRace().unlockAfterRead(competitorMarkPassings);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Speed getSpeedTenSecondsBeforeStart() {
|
||||
return getTrackedRace().getSpeed(getCompetitor(), TimeUnit.SECONDS.toMillis(10));
|
||||
|
||||
Reference in New Issue
Block a user