mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-25 06:58:39 +00:00
Merge branch 'master' into bug4210
This commit is contained in:
@@ -28,6 +28,15 @@
|
||||
<url-pattern>/service/sailing</url-pattern>
|
||||
</servlet-mapping>
|
||||
|
||||
<filter>
|
||||
<filter-name>LocaleInjectionFilter</filter-name>
|
||||
<filter-class>com.sap.sse.security.ui.server.LocaleInjectionFilter</filter-class>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>LocaleInjectionFilter</filter-name>
|
||||
<url-pattern>*.html</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<servlet>
|
||||
<display-name>Dashboard Dispatch Service</display-name>
|
||||
<servlet-name>dashboardDispatch</servlet-name>
|
||||
|
||||
+4
-1
@@ -8,6 +8,8 @@ import java.text.ParseException;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import javax.xml.parsers.DocumentBuilder;
|
||||
@@ -30,6 +32,7 @@ import com.sap.sse.common.TimePoint;
|
||||
*
|
||||
*/
|
||||
public class NOAAImporter {
|
||||
private static final Logger logger = Logger.getLogger(NOAAImporter.class.getName());
|
||||
private static final String QUERY_URL = "https://www.ngdc.noaa.gov/geomag-web/calculators/calculateDeclination";
|
||||
private static final String REGEXP_DECLINATION = "<p class=\"indent\"><b>Declination</b> = ([0-9]*)° ([0-9]*)' *([EW])";
|
||||
private static final String REGEXP_ANNUAL_CHANGE = "changing by *([0-9]*)° *([0-9]*)' ([EW])/year *</p>";
|
||||
@@ -102,7 +105,7 @@ public class NOAAImporter {
|
||||
result.notifyAll();
|
||||
}
|
||||
} catch (IOException | ParserConfigurationException | SAXException e) {
|
||||
throw new RuntimeException(e);
|
||||
logger.log(Level.FINE, "Exception while trying to load magnetic declination online", e);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
+1
@@ -112,6 +112,7 @@ public enum BoatClassMasterdata {
|
||||
TORNADO ("Tornado Catamaran", true, 6.10, 3.02, BoatHullType.CATAMARAN, true, "Tornado", "Tornado Cat"),
|
||||
TOM_28_MAX ("Tom 28 MAX", true, 8.48, 2.48, BoatHullType.MONOHULL, true, "Tom 28"),
|
||||
TRIAS ("Trias", true, 9.20, 2.12, BoatHullType.MONOHULL, true),
|
||||
TP52 ("TP52", true, 15.85, 4.35, BoatHullType.MONOHULL, true, "TP 52", "Transpac 52", "Transpac52"),
|
||||
VIPER_640 ("Viper 640", true, 6.43, 2.49, BoatHullType.MONOHULL, true),
|
||||
VO60 ("VO60", true, 19.5, 5.25, BoatHullType.MONOHULL, true, "Volvo Ocean 60", "VolvoOcean60", "W60", "Whitbread60", "Whitbread 60"),
|
||||
VX_ONE ("VX ONE", true, 5.79, 2.19, BoatHullType.MONOHULL, true, "VX-ONE"),
|
||||
|
||||
@@ -30,6 +30,19 @@ public enum DetailType implements Serializable {
|
||||
CURRENT_PORT_RUDDER_RAKE(2,DESCENDING),
|
||||
CURRENT_STBD_RUDDER_RAKE(2,DESCENDING),
|
||||
CURRENT_MAST_ROTATION_IN_DEGREES(2,DESCENDING),
|
||||
CURRENT_LEEWAY_IN_DEGREES(1, ASCENDING),
|
||||
CURRENT_SET(1, ASCENDING),
|
||||
CURRENT_DRIFT_IN_DEGREES(1, ASCENDING),
|
||||
CURRENT_DEPTH_IN_METERS(1, ASCENDING),
|
||||
CURRENT_RUDDER_IN_DEGREES(2, ASCENDING),
|
||||
CURRENT_TACK_ANGLE_IN_DEGREES(2, ASCENDING),
|
||||
CURRENT_DEFLECTOR_PERCENTAGE(2, ASCENDING),
|
||||
CURRENT_DEFLECTOR_IN_MILLIMETERS(2, ASCENDING),
|
||||
CURRENT_RAKE_IN_DEGREES(2, ASCENDING),
|
||||
CURRENT_TARGET_HEEL_ANGLE_IN_DEGREES(2, ASCENDING),
|
||||
CURRENT_FORESTAY_LOAD(2, ASCENDING),
|
||||
CURRENT_FORESTAY_PRESSURE(2, ASCENDING),
|
||||
CURRENT_TARGET_BOATSPEED_PERCENTAGE(2, ASCENDING),
|
||||
ESTIMATED_TIME_TO_NEXT_WAYPOINT_IN_SECONDS(1, ASCENDING), VELOCITY_MADE_GOOD_IN_KNOTS(2, DESCENDING),
|
||||
GAP_TO_LEADER_IN_SECONDS(0, ASCENDING), GAP_CHANGE_SINCE_LEG_START_IN_SECONDS(0, ASCENDING),
|
||||
SIDE_TO_WHICH_MARK_AT_LEG_START_WAS_ROUNDED(0, ASCENDING), WINDWARD_DISTANCE_TO_GO_IN_METERS(0, ASCENDING),
|
||||
|
||||
+2
-3
@@ -1,9 +1,7 @@
|
||||
package com.sap.sailing.domain.racelogtracking;
|
||||
package com.sap.sailing.domain.common;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
||||
|
||||
/**
|
||||
* Identifies any kind of tracking device. Should be implemented accordingly for different tracking
|
||||
* adapters, e.g. for smartphones, Igtimi trackers etc.<p>
|
||||
@@ -37,6 +35,7 @@ import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
||||
* {@link Object#equals(Object)} and {@link Object#hashCode()} should be implemented so that multiple
|
||||
* deserializations of same device identifier (conceptually) result in objects that are be identified
|
||||
* as being equal through these two methods.
|
||||
*
|
||||
* @author Fredrik Teschke
|
||||
*
|
||||
*/
|
||||
+1
@@ -35,6 +35,7 @@ public enum BravoExtendedSensorDataMetadata implements ColumnMetadata {
|
||||
DEPTH(null, /* expectedInLogfile */ false), //
|
||||
RUDDER(null, /* expectedInLogfile */ false), //
|
||||
FORESTAY_LOAD(null, /* expectedInLogfile */ false), //
|
||||
FORESTAY_PRESSURE(null, /* expectedInLogfile */ false), //
|
||||
TACK_ANGLE(null, /* expectedInLogfile */ false), //
|
||||
RAKE_DEG(null, /* expectedInLogfile */ false), //
|
||||
DEFLECTOR_PERCENTAGE(null, /* expectedInLogfile */ false), //
|
||||
|
||||
+25
-15
@@ -9,28 +9,31 @@ import java.util.Objects;
|
||||
import com.sap.sailing.domain.common.tracking.DoubleVectorFix;
|
||||
|
||||
/**
|
||||
* Metadata that defines the column structure of BravoExtended fixes when imported as {@link com.sap.sailing.domain.common.tracking.DoubleVectorFix}.
|
||||
* Metadata that defines the column structure of BravoExtended fixes when imported as
|
||||
* {@link com.sap.sailing.domain.common.tracking.DoubleVectorFix}.
|
||||
* <p>
|
||||
*
|
||||
* The current implementation only stores a subset of the information available during the import.
|
||||
* <p>
|
||||
*
|
||||
* The first columns need to be consistent with {@link BravoSensorDataMetadata}.
|
||||
*/
|
||||
public enum ExpeditionExtendedSensorDataMetadata {
|
||||
HEEL("Heel", BravoExtendedSensorDataMetadata.HEEL), //
|
||||
TRIM("TRIM", BravoExtendedSensorDataMetadata.PITCH), //
|
||||
LEEWAY(null, BravoExtendedSensorDataMetadata.LEEWAY), //
|
||||
SET(null, BravoExtendedSensorDataMetadata.SET), //
|
||||
DRIFT(null, BravoExtendedSensorDataMetadata.DRIFT), //
|
||||
DEPTH(null, BravoExtendedSensorDataMetadata.DEPTH), //
|
||||
RUDDER(null, BravoExtendedSensorDataMetadata.RUDDER), //
|
||||
FORESTAY_LOAD(null, BravoExtendedSensorDataMetadata.FORESTAY_LOAD), //
|
||||
TRIM("Trim", BravoExtendedSensorDataMetadata.PITCH), //
|
||||
LEEWAY("Leeway", BravoExtendedSensorDataMetadata.LEEWAY, /* expected in logfile */ true), //
|
||||
SET("Set", BravoExtendedSensorDataMetadata.SET, /* expected in logfile */ true), //
|
||||
DRIFT("Drift", BravoExtendedSensorDataMetadata.DRIFT, /* expected in logfile */ true), //
|
||||
DEPTH("Depth", BravoExtendedSensorDataMetadata.DEPTH, /* expected in logfile */ true), //
|
||||
RUDDER("Rudder", BravoExtendedSensorDataMetadata.RUDDER, /* expected in logfile */ true), //
|
||||
FORESTAY_LOAD("Forestay", BravoExtendedSensorDataMetadata.FORESTAY_LOAD, /* expected in logfile */ true), //
|
||||
FORESTAY_PRESSURE("ForestayPres", BravoExtendedSensorDataMetadata.FORESTAY_PRESSURE, /* expected in logfile */ true), //
|
||||
TACK_ANGLE(null, BravoExtendedSensorDataMetadata.TACK_ANGLE), //
|
||||
RAKE_DEG(null, BravoExtendedSensorDataMetadata.RAKE_DEG), //
|
||||
DEFLECTOR_PERCENTAGE(null, BravoExtendedSensorDataMetadata.DEFLECTOR_PERCENTAGE), //
|
||||
TARGET_HEEL(null, BravoExtendedSensorDataMetadata.TARGET_HEEL), //
|
||||
DEFLECTOR_MILLIMETERS(null, BravoExtendedSensorDataMetadata.DEFLECTOR_MILLIMETERS), //
|
||||
TARGET_BOATSPEED_P(null, BravoExtendedSensorDataMetadata.TARGET_BOATSPEED_P), //
|
||||
|
||||
RAKE_DEG("RakeDeg", BravoExtendedSensorDataMetadata.RAKE_DEG, /* expected in logfile */ true), //
|
||||
DEFLECTOR_PERCENTAGE("DflectrPP", BravoExtendedSensorDataMetadata.DEFLECTOR_PERCENTAGE, /* expected in logfile */ true), //
|
||||
TARGET_HEEL("TG Heell", BravoExtendedSensorDataMetadata.TARGET_HEEL, /* expected in logfile */ true), //
|
||||
DEFLECTOR_MILLIMETERS("DflectrMM", BravoExtendedSensorDataMetadata.DEFLECTOR_MILLIMETERS, /* expected in logfile */ true), //
|
||||
TARGET_BOATSPEED_P("BspTr", BravoExtendedSensorDataMetadata.TARGET_BOATSPEED_P, /* expected in logfile */ true), //
|
||||
;
|
||||
|
||||
private String columnName;
|
||||
@@ -44,10 +47,17 @@ public enum ExpeditionExtendedSensorDataMetadata {
|
||||
* the Bravo metadata.
|
||||
*/
|
||||
private final BravoExtendedSensorDataMetadata mappedToBravoField;
|
||||
|
||||
private final boolean expectedInLogfile;
|
||||
|
||||
private ExpeditionExtendedSensorDataMetadata(String columnName, BravoExtendedSensorDataMetadata mappedToBravoField) {
|
||||
this(columnName, mappedToBravoField, mappedToBravoField.isExpectedInLogFile());
|
||||
}
|
||||
|
||||
private ExpeditionExtendedSensorDataMetadata(String columnName, BravoExtendedSensorDataMetadata mappedToBravoField, boolean expectedInLogfile) {
|
||||
this.columnName = columnName;
|
||||
this.mappedToBravoField = mappedToBravoField;
|
||||
this.expectedInLogfile = expectedInLogfile;
|
||||
}
|
||||
|
||||
public String getColumnName() {
|
||||
@@ -62,7 +72,7 @@ public enum ExpeditionExtendedSensorDataMetadata {
|
||||
}
|
||||
|
||||
public boolean isExpectedInLogFile() {
|
||||
return mappedToBravoField.isExpectedInLogFile();
|
||||
return expectedInLogfile;
|
||||
}
|
||||
|
||||
public static ExpeditionExtendedSensorDataMetadata byColumnName(String valueName) {
|
||||
|
||||
+3
-2
@@ -12,12 +12,13 @@ public interface BravoExtendedFix extends BravoFix {
|
||||
Double getPortRudderRake();
|
||||
Double getStbdRudderRake();
|
||||
Bearing getMastRotation();
|
||||
Double getLeeway();
|
||||
Bearing getLeeway();
|
||||
Double getSet();
|
||||
Double getDrift();
|
||||
Bearing getDrift();
|
||||
Distance getDepth();
|
||||
Bearing getRudder();
|
||||
Double getForestayLoad();
|
||||
Double getForestayPressure();
|
||||
Bearing getTackAngle();
|
||||
Bearing getRake();
|
||||
Double getDeflectorPercentage();
|
||||
|
||||
+11
-4
@@ -52,8 +52,9 @@ public class BravoExtendedFixImpl extends BravoFixImpl implements BravoExtendedF
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getLeeway() {
|
||||
return fix.get(BravoExtendedSensorDataMetadata.LEEWAY.getColumnIndex());
|
||||
public Bearing getLeeway() {
|
||||
final Double leeway = fix.get(BravoExtendedSensorDataMetadata.LEEWAY.getColumnIndex());
|
||||
return leeway == null ? null : new DegreeBearingImpl(leeway);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -62,8 +63,9 @@ public class BravoExtendedFixImpl extends BravoFixImpl implements BravoExtendedF
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getDrift() {
|
||||
return fix.get(BravoExtendedSensorDataMetadata.DRIFT.getColumnIndex());
|
||||
public Bearing getDrift() {
|
||||
final Double drift = fix.get(BravoExtendedSensorDataMetadata.DRIFT.getColumnIndex());
|
||||
return drift == null ? null : new DegreeBearingImpl(drift);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,6 +85,11 @@ public class BravoExtendedFixImpl extends BravoFixImpl implements BravoExtendedF
|
||||
return fix.get(BravoExtendedSensorDataMetadata.FORESTAY_LOAD.getColumnIndex());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getForestayPressure() {
|
||||
return fix.get(BravoExtendedSensorDataMetadata.FORESTAY_PRESSURE.getColumnIndex());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bearing getTackAngle() {
|
||||
final Double tackAngleDeg = fix.get(BravoExtendedSensorDataMetadata.TACK_ANGLE.getColumnIndex());
|
||||
|
||||
+8
-3
@@ -27,10 +27,15 @@ public class BravoFixImpl extends SensorFixImpl implements BravoFix {
|
||||
|
||||
@Override
|
||||
public Distance getRideHeight() {
|
||||
double rideHeightPortHullasDouble = fix.get(BravoSensorDataMetadata.RIDE_HEIGHT_PORT_HULL.getColumnIndex());
|
||||
double rideHeightStarboardHullasDouble = fix
|
||||
Double rideHeightPortHullasDouble = fix.get(BravoSensorDataMetadata.RIDE_HEIGHT_PORT_HULL.getColumnIndex());
|
||||
Double rideHeightStarboardHullAsDouble = fix
|
||||
.get(BravoSensorDataMetadata.RIDE_HEIGHT_STBD_HULL.getColumnIndex());
|
||||
return new MeterDistance(Math.min(rideHeightPortHullasDouble, rideHeightStarboardHullasDouble));
|
||||
return rideHeightPortHullasDouble == null ?
|
||||
rideHeightStarboardHullAsDouble == null ? null :
|
||||
new MeterDistance(rideHeightStarboardHullAsDouble) :
|
||||
rideHeightStarboardHullAsDouble == null ?
|
||||
new MeterDistance(rideHeightPortHullasDouble) :
|
||||
new MeterDistance(Math.min(rideHeightPortHullasDouble, rideHeightStarboardHullAsDouble));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -23,8 +23,8 @@ import com.sap.sailing.server.trackfiles.impl.ExpeditionExtendedDataImporterImpl
|
||||
public class ExpeditionGPSFixImporter implements GPSFixImporter {
|
||||
private static final String LAT_COLUMN_HEADING = ExpeditionExtendedDataImporterImpl.COL_NAME_LAT;
|
||||
private static final String LON_COLUMN_HEADING = ExpeditionExtendedDataImporterImpl.COL_NAME_LON;
|
||||
private static final String COG_COLUMN_HEADING = "Ext_COG";
|
||||
private static final String SOG_COLUMN_HEADING = "Ext_SOG";
|
||||
private static final String COG_COLUMN_HEADING = "Cog";
|
||||
private static final String SOG_COLUMN_HEADING = "Sog";
|
||||
@Override
|
||||
public void importFixes(InputStream inputStream, Callback callback, boolean inferSpeedAndBearing, final String sourceName)
|
||||
throws FormatNotSupportedException, IOException {
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
package com.sap.sailing.domain.igtimiadapter.test;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.json.simple.parser.ParseException;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.igtimiadapter.datatypes.Fix;
|
||||
import com.sap.sailing.domain.igtimiadapter.impl.FixFactory;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
public class FixFactoryTest {
|
||||
private FixFactory fixFactory;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
fixFactory = new FixFactory();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUnknownFixTypes() throws ParseException {
|
||||
final String[] messages = new String[] {
|
||||
"{\"DC-FE-AAKG\":{\"1\":{\"t\":[1510174025500],\"1\":[170.5044476],\"2\":[-45.87697]}}}",
|
||||
"{\"DC-FE-AAKG\":{\"2\":{\"t\":[1510174025500],\"1\":[1]}}}",
|
||||
"{\"DC-FE-AAKG\":{\"3\":{\"t\":[1510174025500],\"1\":[10]}}}",
|
||||
"{\"DC-FE-AAKG\":{\"7\":{\"t\":[1510174025500],\"1\":[187.7]}}}",
|
||||
"{\"DC-FE-AAKG\":{\"11\":{\"t\":[1510174025500],\"1\":[54]}}}",
|
||||
"{\"DC-FE-AAKG\":{\"12\":{\"t\":[1510174025500],\"1\":[1.852]}}}",
|
||||
"{\"DC-FE-AAKG\":{\"22\":{\"t\":[1510174025500],\"1\":[263.4]}}}",
|
||||
"{\"DC-FE-AAKG\":{\"23\":{\"t\":[1510174025500],\"1\":[1.852]}}}",
|
||||
"{\"DC-FE-AAKG\":{\"6\":{\"t\":[1510174025500],\"1\":[0]}}}",
|
||||
"{\"DC-FE-AAKG\":{\"9\":{\"t\":[1510174025500],\"1\":[0]}}}" };
|
||||
List<Fix> fixes = new ArrayList<>();
|
||||
for (final String message : messages) {
|
||||
JSONObject jsonObject = (JSONObject) new JSONParser().parse(message);
|
||||
Util.addAll(fixFactory.createFixes(jsonObject), fixes);
|
||||
}
|
||||
assertTrue(!Util.isEmpty(fixes)); // this largely asserts that no exception was thrown although there were unknown fix types (22/23)
|
||||
}
|
||||
}
|
||||
+6
-3
@@ -54,9 +54,12 @@ public class FixFactory {
|
||||
Sensor sensor = new SensorImpl(deviceSerialNumber,
|
||||
fixTypeAndOptionalColonSeparatedSensorsSubId.length < 2 ? 0
|
||||
: Long.valueOf(fixTypeAndOptionalColonSeparatedSensorsSubId[1]));
|
||||
Fix fix = createFix(sensor, Type.valueOf(fixType), timePoint, valuesPerSubindex);
|
||||
result.add(fix);
|
||||
fixIndex++;
|
||||
final Type ft = Type.valueOf(fixType);
|
||||
if (ft != null) {
|
||||
Fix fix = createFix(sensor, ft, timePoint, valuesPerSubindex);
|
||||
result.add(fix);
|
||||
fixIndex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
+1
-1
@@ -155,6 +155,7 @@ import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.VenueImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CourseDesignerMode;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.MarkType;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.PassingInstruction;
|
||||
@@ -206,7 +207,6 @@ import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongo
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.impl.PlaceHolderDeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.domain.racelog.RaceLogIdentifier;
|
||||
import com.sap.sailing.domain.racelog.RaceLogStore;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.impl.PlaceHolderDeviceIdentifierSerializationHandler;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
import com.sap.sailing.domain.ranking.RankingMetricConstructor;
|
||||
|
||||
+1
-1
@@ -86,6 +86,7 @@ import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.impl.DeviceConfigurationMatcherSingle;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.PassingInstruction;
|
||||
import com.sap.sailing.domain.common.Positioned;
|
||||
@@ -108,7 +109,6 @@ import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.impl.PlaceHolderDeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.domain.racelog.RaceLogIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier;
|
||||
import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters;
|
||||
import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParametersHandler;
|
||||
|
||||
+1
-1
@@ -20,6 +20,7 @@ import com.mongodb.DBCollection;
|
||||
import com.mongodb.DBCursor;
|
||||
import com.mongodb.DBObject;
|
||||
import com.mongodb.QueryBuilder;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.persistence.DomainObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
@@ -30,7 +31,6 @@ import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongo
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.FixMongoHandler;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.MongoSensorFixStore;
|
||||
import com.sap.sailing.domain.racelog.tracking.FixReceivedListener;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.sap.sailing.domain.persistence.racelog.tracking.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.impl.PlaceHolderDeviceIdentifierSerializationHandler;
|
||||
|
||||
public class PlaceHolderDeviceIdentifierMongoHandler extends PlaceHolderDeviceIdentifierSerializationHandler
|
||||
|
||||
+1
-1
@@ -24,6 +24,7 @@ import com.sap.sailing.domain.base.Mark;
|
||||
import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.base.Sideline;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
|
||||
@@ -38,7 +39,6 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.MockDeviceAndSessionIdentifierWithGPSFixesDeserializer;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRegatta;
|
||||
|
||||
+1
-1
@@ -36,6 +36,7 @@ import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
|
||||
@@ -47,7 +48,6 @@ import com.sap.sailing.domain.leaderboard.impl.HighPoint;
|
||||
import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter;
|
||||
import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory;
|
||||
import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RaceLogFixTrackerManager;
|
||||
|
||||
+1
-1
@@ -16,9 +16,9 @@ import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCo
|
||||
import com.sap.sailing.domain.abstractlog.regatta.impl.RegattaLogImpl;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.tracking.impl.DoubleVectorFixImpl;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogDeviceMappings;
|
||||
import com.sap.sailing.domain.racelogtracking.test.AbstractGPSFixStoreTest;
|
||||
import com.sap.sse.common.MultiTimeRange;
|
||||
|
||||
+1
-1
@@ -9,10 +9,10 @@ import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.Timeout;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.impl.MongoSensorFixStoreImpl;
|
||||
import com.sap.sailing.domain.racelog.tracking.FixReceivedListener;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.test.AbstractGPSFixStoreTest;
|
||||
|
||||
public class GPSFixStoreListenerTest extends AbstractGPSFixStoreTest {
|
||||
|
||||
+1
-1
@@ -31,6 +31,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
|
||||
@@ -45,7 +46,6 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
|
||||
import com.sap.sailing.domain.racelogsensortracking.SensorFixMapperFactory;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RaceLogFixTrackerManager;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore;
|
||||
|
||||
+1
-1
@@ -54,6 +54,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.Distance;
|
||||
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
@@ -75,7 +76,6 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
|
||||
import com.sap.sailing.domain.racelogsensortracking.SensorFixMapperFactory;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.impl.BravoDataFixMapper;
|
||||
import com.sap.sailing.domain.racelogtracking.impl.fixtracker.FixLoaderAndTracker;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
|
||||
+1
-1
@@ -14,6 +14,7 @@ import org.mockito.Mockito;
|
||||
|
||||
import com.mongodb.DB;
|
||||
import com.mongodb.MongoException;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
|
||||
@@ -30,7 +31,6 @@ import com.sap.sailing.domain.racelog.tracking.FixReceivedListener;
|
||||
import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
|
||||
import com.sap.sse.common.Timed;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
+1
-1
@@ -24,11 +24,11 @@ import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFix;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.impl.fixtracker.FixLoaderAndTracker;
|
||||
import com.sap.sailing.domain.racelogtracking.test.AbstractGPSFixStoreTest;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
package com.sap.sailing.domain.racelog.tracking.test.mock;
|
||||
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
|
||||
|
||||
public class SmartphoneImeiIdentifier implements DeviceIdentifier {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.sap.sailing.domain.racelog.tracking.test.mock;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler;
|
||||
|
||||
public class SmartphoneImeiJsonHandler extends SmartphoneImeiSerializationHandler
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.sap.sailing.domain.racelog.tracking.test.mock;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
|
||||
public class SmartphoneImeiMongoHandler extends SmartphoneImeiSerializationHandler
|
||||
implements DeviceIdentifierMongoHandler {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.sap.sailing.domain.racelog.tracking.test.mock;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
public class SmartphoneImeiSerializationHandler {
|
||||
|
||||
+2
@@ -2,6 +2,8 @@ package com.sap.sailing.domain.racelogtracking;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
|
||||
/**
|
||||
* A device identifier used to identify a non-existent, virtual device, which is used only once as an
|
||||
* identifier to add a single fix to a track (i.e. pinging the location of that track's item).
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.sap.sailing.domain.racelogtracking.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler;
|
||||
|
||||
public class PingDeviceIdentifierJsonHandler extends PingDeviceIdentifierSerializationHandler
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.sap.sailing.domain.racelogtracking.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
|
||||
public class PingDeviceIdentifierMongoHandler extends PingDeviceIdentifierSerializationHandler
|
||||
implements DeviceIdentifierMongoHandler {
|
||||
|
||||
+1
-1
@@ -2,8 +2,8 @@ package com.sap.sailing.domain.racelogtracking.impl;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifierImpl;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.sap.sailing.domain.racelogtracking.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.SmartphoneUUIDSerializationHandler;
|
||||
|
||||
public class SmartphoneUUIDMongoHandler extends SmartphoneUUIDSerializationHandler
|
||||
|
||||
+1
-1
@@ -4,8 +4,8 @@ import java.util.UUID;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier;
|
||||
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler;
|
||||
|
||||
+1
-1
@@ -4,9 +4,9 @@ import java.util.UUID;
|
||||
|
||||
import com.mongodb.BasicDBObject;
|
||||
import com.mongodb.DBObject;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier;
|
||||
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
+1
-1
@@ -2,8 +2,8 @@ package com.sap.sailing.domain.racelogtracking.impl;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifierStringSerializationHandler;
|
||||
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier;
|
||||
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl;
|
||||
|
||||
+1
-1
@@ -23,6 +23,7 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMap
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Mark;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.common.tracking.DoubleVectorFix;
|
||||
@@ -33,7 +34,6 @@ import com.sap.sailing.domain.racelog.tracking.FixReceivedListener;
|
||||
import com.sap.sailing.domain.racelog.tracking.SensorFixMapper;
|
||||
import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.domain.racelogsensortracking.SensorFixMapperFactory;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent;
|
||||
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
|
||||
import com.sap.sailing.domain.tracking.DynamicSensorFixTrack;
|
||||
|
||||
+1
-1
@@ -22,8 +22,8 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMap
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRevokeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.impl.BaseRegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDeviceMappingFinder;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.DoesNotHaveRegattaLogException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMapping;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrack;
|
||||
|
||||
+1
-1
@@ -17,9 +17,9 @@ import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCo
|
||||
import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDeviceCompetitorMappingFinder;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.impl.CompetitorImpl;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.abstractlog.NotRevokableException;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDefinedMarkAnalyzer;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Mark;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMapping;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.TimeRange;
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.io.Serializable;
|
||||
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.abstractlog.impl.AbstractLogEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.WithID;
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEventImpl;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEventImpl;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
public class RegattaLogDeviceCompetitorMappingEventImpl extends RegattaLogDeviceMappingEventImpl<Competitor> implements
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
import com.sap.sailing.domain.base.Mark;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
public class RegattaLogDeviceMarkMappingEventImpl extends RegattaLogDeviceMappingEventImpl<Mark> implements
|
||||
|
||||
+1
-1
@@ -10,8 +10,8 @@ import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogCloseOpenEndedDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.abstractlog.NotRevokableException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMapping;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.TimeRange;
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogCloseOpenEndedDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMapping;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent;
|
||||
import com.sap.sailing.domain.racelogtracking.impl.DeviceMappingWithRegattaLogEventImpl;
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMapping
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceMarkMappingEventImpl;
|
||||
import com.sap.sailing.domain.base.Mark;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
|
||||
+1
@@ -1,5 +1,6 @@
|
||||
package com.sap.sailing.domain.racelogtracking;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
|
||||
+1
@@ -4,6 +4,7 @@ import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDeviceMappingFinder;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimeRange;
|
||||
import com.sap.sse.common.Timed;
|
||||
import com.sap.sse.common.WithID;
|
||||
|
||||
+1
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.domain.racelogtracking;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
|
||||
|
||||
|
||||
|
||||
+2
@@ -2,6 +2,8 @@ package com.sap.sailing.domain.racelogtracking;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
|
||||
|
||||
public interface SmartphoneUUIDIdentifier extends DeviceIdentifier {
|
||||
String TYPE = "smartphoneUUID";
|
||||
|
||||
+1
@@ -2,6 +2,7 @@ package com.sap.sailing.domain.racelogtracking;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.impl.SmartphoneUUIDIdentifierImpl;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMapping;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.TimeRange;
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent;
|
||||
import com.sap.sse.common.TimeRange;
|
||||
import com.sap.sse.common.WithID;
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.sap.sailing.domain.racelogtracking.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.PlaceHolderDeviceIdentifier;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
|
||||
+1
-1
@@ -23,6 +23,7 @@ import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.configuration.DeviceConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
@@ -33,7 +34,6 @@ import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
|
||||
import com.sap.sse.common.Timed;
|
||||
|
||||
+1
-1
@@ -9,12 +9,12 @@ import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.Regatt
|
||||
import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogDeviceMarkMappingFinder;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Mark;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFix;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.racelog.tracking.GPSFixStore;
|
||||
import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMapping;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent;
|
||||
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
|
||||
|
||||
+1
-1
@@ -6,10 +6,10 @@ import java.util.function.Consumer;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Mark;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFix;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMapping;
|
||||
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
|
||||
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
|
||||
|
||||
+1
-1
@@ -4,8 +4,8 @@ import java.util.Map;
|
||||
import java.util.function.BooleanSupplier;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.TimeRange;
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
package com.sap.sailing.domain.racelog.tracking;
|
||||
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.Timed;
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -8,10 +8,10 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Mark;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFix;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceMapping;
|
||||
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
|
||||
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
|
||||
|
||||
+1
-1
@@ -4,9 +4,9 @@ import java.util.Map;
|
||||
import java.util.function.BooleanSupplier;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFix;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.TimeRange;
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ package com.sap.sailing.domain.trackfiles;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -5,8 +5,8 @@ import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
/**
|
||||
|
||||
+1
-1
@@ -4,8 +4,8 @@ import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.tracking.GPSFix;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier;
|
||||
|
||||
/**
|
||||
|
||||
@@ -88,4 +88,17 @@ public interface BravoFixTrack<ItemType extends WithID & Serializable> extends S
|
||||
Double getPortRudderRakeIfAvailable(TimePoint timePoint);
|
||||
Double getStbdRudderRakeIfAvailable(TimePoint timePoint);
|
||||
Bearing getMastRotationIfAvailable(TimePoint timePoint);
|
||||
Bearing getLeewayIfAvailable(TimePoint timePoint);
|
||||
Double getSetIfAvailable(TimePoint timePoint);
|
||||
Bearing getDriftIfAvailable(TimePoint timePoint);
|
||||
Distance getDepthIfAvailable(TimePoint timePoint);
|
||||
Bearing getRudderIfAvailable(TimePoint timePoint);
|
||||
Double getForestayLoadIfAvailable(TimePoint timePoint);
|
||||
Double getForestayPressureIfAvailable(TimePoint timePoint);
|
||||
Bearing getTackAngleIfAvailable(TimePoint timePoint);
|
||||
Bearing getRakeIfAvailable(TimePoint timePoint);
|
||||
Double getDeflectorPercentageIfAvailable(TimePoint timePoint);
|
||||
Bearing getTargetHeelIfAvailable(TimePoint timePoint);
|
||||
Distance getDeflectorIfAvailable(TimePoint timePoint);
|
||||
Double getTargetBoatspeedPIfAvailable(TimePoint timePoint);
|
||||
}
|
||||
|
||||
+83
-2
@@ -76,8 +76,11 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
|
||||
Distance sum = Distance.NULL;
|
||||
int count = 0;
|
||||
for (final BravoFix fix : getFixes(from, true, to, true)) {
|
||||
sum = sum.add(fix.getRideHeight());
|
||||
count++;
|
||||
final Distance rideHeight = fix.getRideHeight();
|
||||
if (rideHeight != null) {
|
||||
sum = sum.add(rideHeight);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if (count > 0) {
|
||||
result = sum.scale(1./count);
|
||||
@@ -212,6 +215,84 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
|
||||
NaivelyScalableBearing::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bearing getLeewayIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getLeeway,
|
||||
NaivelyScalableBearing::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getSetIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getSet,
|
||||
ScalableDouble::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bearing getDriftIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getDrift,
|
||||
NaivelyScalableBearing::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Distance getDepthIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getDepth,
|
||||
ScalableDistance::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bearing getRudderIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getRudder,
|
||||
NaivelyScalableBearing::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getForestayLoadIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getForestayLoad,
|
||||
ScalableDouble::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getForestayPressureIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getForestayPressure,
|
||||
ScalableDouble::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bearing getTackAngleIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getTackAngle,
|
||||
NaivelyScalableBearing::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bearing getRakeIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getRake,
|
||||
NaivelyScalableBearing::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getDeflectorPercentageIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getDeflectorPercentage,
|
||||
ScalableDouble::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Bearing getTargetHeelIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getTargetHeel,
|
||||
NaivelyScalableBearing::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Distance getDeflectorIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getDeflector,
|
||||
ScalableDistance::new);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getTargetBoatspeedPIfAvailable(TimePoint timePoint) {
|
||||
return getValueFromExtendedFixSkippingNullValues(timePoint, BravoExtendedFix::getTargetBoatspeedP,
|
||||
ScalableDouble::new);
|
||||
}
|
||||
|
||||
private static class NaivelyScalableBearing implements ScalableValue<Double, Bearing> {
|
||||
private final double deg;
|
||||
|
||||
|
||||
@@ -7,4 +7,5 @@ Bundle-Vendor: SAP
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Export-Package: com.sap.sailing.expeditionconnector
|
||||
Require-Bundle: com.sap.sse.gwt
|
||||
Require-Bundle: com.sap.sse.gwt,
|
||||
com.sap.sailing.domain.common
|
||||
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
package com.sap.sailing.expeditionconnector.persistence;
|
||||
package com.sap.sailing.expeditionconnector;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
|
||||
public interface ExpeditionDeviceIdentifier extends DeviceIdentifier {
|
||||
/**
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.expeditionconnector.persistence;
|
||||
package com.sap.sailing.expeditionconnector;
|
||||
|
||||
/**
|
||||
* A device identifier used to identify an installation of the regatta tool "Expedition"
|
||||
+2
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.expeditionconnector.persistence;
|
||||
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionDeviceIdentifier;
|
||||
|
||||
/**
|
||||
* A device identifier used to identify an installation of the regatta tool "Expedition"
|
||||
* regarding its basic GPS information.
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.sap.sailing.expeditionconnector.persistence;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler;
|
||||
|
||||
public class ExpeditionGpsDeviceIdentifierJsonHandler extends ExpeditionGpsDeviceIdentifierSerializationHandler
|
||||
|
||||
+1
-1
@@ -2,8 +2,8 @@ package com.sap.sailing.expeditionconnector.persistence;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
public class ExpeditionGpsDeviceIdentifierSerializationHandler {
|
||||
|
||||
+1
@@ -2,6 +2,7 @@ package com.sap.sailing.expeditionconnector.persistence;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.impl.AbstractExpeditionDeviceIdentifierImpl;
|
||||
|
||||
public class ExpeditionSensorDeviceIdentifierImpl extends AbstractExpeditionDeviceIdentifierImpl implements ExpeditionSensorDeviceIdentifier {
|
||||
|
||||
+2
-1
@@ -2,8 +2,9 @@ package com.sap.sailing.expeditionconnector.persistence;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
public class ExpeditionSensorDeviceIdentifierSerializationHandler {
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ package com.sap.sailing.expeditionconnector.persistence.impl;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionDeviceIdentifier;
|
||||
|
||||
public abstract class AbstractExpeditionDeviceIdentifierImpl implements ExpeditionDeviceIdentifier {
|
||||
private static final long serialVersionUID = -6605059302775505785L;
|
||||
|
||||
+1
-1
@@ -10,8 +10,8 @@ import org.osgi.framework.BundleContext;
|
||||
import org.osgi.framework.ServiceRegistration;
|
||||
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier;
|
||||
import com.sap.sse.common.TypeBasedServiceFinder;
|
||||
import com.sap.sse.mongodb.MongoDBService;
|
||||
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.sap.sailing.expeditionconnector.persistence.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifierSerializationHandler;
|
||||
|
||||
public class ExpeditionGpsDeviceIdentifierMongoHandler extends ExpeditionGpsDeviceIdentifierSerializationHandler
|
||||
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
package com.sap.sailing.expeditionconnector.persistence.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifierSerializationHandler;
|
||||
|
||||
public class ExpeditionSensorDeviceIdentifierMongoHandler extends ExpeditionSensorDeviceIdentifierSerializationHandler
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
Boat,Utc,Bsp,Awa,Aws,Twa,Tws,Twd,RudderFwd,Leeway,Set,Drift,Hdg,AirTemp,SeaTemp,Baro,Depth,Heel,Trim,Rudder,Tab,Forestay,Downhaul,MastAng,FStayLen,MastButt,Load S,Load P,Rake,Volts,ROT,GpQual,PDOP,GpsNum,GpsAge,Altitude,GeoSep,GpsMode,Lat,Lon,Cog,Sog,DiffStn,Error,RunnerS,RunnerP,Vang,Trav,Main,KeelAng,KeelHt,Board,Oil P,RPM 1,RPM 2,Board P,Board S,DistToLn,RchTmToLn,RchDtToLn,GPS time,Twd+90,Twd-90,Downhaul2,Mk Lat,Mk Lon,Port lat,Port lon,Stbd lat,Stbd lon,HPE,RH,Lead P,Lead S,BackStay,RakeDeg,DflectrPP,TG Heell,ForestayPres,DflectrMM,User 5,User 6,User 7,User 8,User 9,User 10,User 11,User 12,User 13,User 14,User 15,User 16,User 17,User 18,User 19,User 20,User 21,User 22,User 23,User 24,User 25,User 26,User 27,User 28,User 29,User 30,User 31,TmToGun,TmToLn,TmToBurn,BelowLn,GunBlwLn,WvSigHt,WvSigPd,WvMaxHt,WvMaxPd,Slam,Motion,Mwa,Mws,Boom,Twist,TackLossT,TackLossD,TrimRate,HeelRate,DeflectorP,RudderP,RudderS,RudderToe,BspTr,FStayInner,DeflectorS,Bobstay,Outhaul,D0 P,D0 S,D1 P,D1 S,V0 P,V0 S,V1 P,V1 S
|
||||
0,43043.622986,0,105.2,9.21,106.1,8.95,259.9,,-0,152.9,0.06,151.6,,,,2.8,0.92,0.01,-7.19,,1.036,,,,,,,67,,,0,,0,0,30.92,0,,-33.9085207,18.4197313,152.9,0.063,,,,,,,,,,,,,,,,,,,0.622989,180,0,,-33.8723241,18.4068248,-33.8998667,18.44635,-33.9048333,18.4433333,,,,,,1.255319,78.54628,17.899,0.964532,484.2771,-0.000027,,,,,,,,,,,,,,,,,,,,,,,,,,,0.005822,,,0.941392,,,,,,,,,,,0
|
||||
1,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
|
||||
2,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
|
||||
3,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
|
||||
4,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
|
||||
5,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
|
||||
6,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
|
||||
7,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
|
||||
.52,155.6,5.4,333.2,,0,58.4,0.06,179,,,,1.4,0.7,-0.05,7.17,,0.543,,,,,,,104,,,0,,0,0,35.33,0,,-33.908531,18.4197168,58.4,0.064,,,,,,,,,,,,,,,,4494.746494,,,0.305674,63.2,243.2,,,,,,,,,,,,,2.367484,98.865089,9.160931,0.494149,579.191406,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.141281,,4369.841626
|
||||
0,43043.305710,0,153.2,5.33,154.2,5.36,332.9,,0,58.4,0.1,179.1,,,,1.4,0.68,0.01,7.16,,0.545,,,,,,,104,,,0,,0,0,35.3,0,,-33.9085312,18.4197166,58.4,0.103,,,,,,,,,,,,,,,,4494.745257,,,0.305686,62.9,242.9,,39.5759514,2.5748167,,,,,,,,,,2.367534,98.865723,9.031358,0.493427,579.195068,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.384381,,4369.841628
|
||||
0,43043.305723,0,151.7,5.12,152.9,5.31,332.6,,0,58.4,0.11,178.9,,,,1.2,0.65,-0.07,7.18,,0.538,,,,,,,104,,,0,,0,0,35.32,0,,-33.9085314,18.4197169,58.4,0.11,,,,,,,,,,,,,,,,4494.744879,,,0.3057,62.6,242.6,,,,,,,,,,,,,2.367484,98.866142,8.846865,0.493583,579.195679,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.692521,,4369.841645
|
||||
0,43043.305734,0,150.5,4.97,151.9,5.24,332.3,,0,58.4,0.09,178.8,,,,1.2,0.63,-0.04,7.17,,0.545,,,,,,,104,,,0,,0,0,35.29,0,,-33.9085313,18.419717,58.4,0.089,,,,,,,,,,,,,,,,4494.745473,,,0.305712,62.3,242.3,,,,,,,,,,,,,2.367501,98.86599,8.596081,0.494632,579.193542,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.160375,,4369.841654
|
||||
0,43043.305745,0,150.1,4.89,151.4,5.18,332,,0,58.4,0.05,178.8,,,,1.2,0.68,-0.05,7.17,,0.542,,,,,,,104,,,0,,0,0,35.24,0,,-33.9085312,18.4197168,58.4,0.047,,,,,,,,,,,,,,,,4494.746847,,,0.305723,62.1,242.1,,,,,,,,,,,,,2.367514,98.865654,8.345397,0.494219,579.191162,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.48573,,4369.841648
|
||||
0,43043.305758,0,149.1,4.85,150.4,5.14,331.7,,0,58.4,0.05,178.9,,,,1.4,0.79,-0,7.16,,0.546,,,,,,,104,,,0,,0,0,35.17,0,,-33.9085311,18.4197165,58.4,0.046,,,,,,,,,,,,,,,,4494.747044,,,0.305735,61.7,241.7,,,,,,,,,,,,,2.367511,98.865479,8.207174,0.494884,579.190796,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.398528,,4369.841627
|
||||
0,43043.305769,0,148.1,4.77,149.6,5.12,331.3,,0,58.4,0.05,179.2,,,,1.4,0.85,-0.03,7.17,,0.545,,,,,,,104,,,0,,0,0,35.09,0,,-33.9085309,18.4197168,58.4,0.051,,,,,,,,,,,,,,,,4494.746833,,,0.305747,61.4,241.4,,,,,,,,,,,,,2.367501,98.865295,8.123696,0.493687,579.192505,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.170342,,4369.841614
|
||||
0,43043.305781,0,148.1,4.72,149.1,5.1,331.1,,0,58.4,0.06,179.6,,,,1.4,0.83,-0,7.16,,0.544,,,,,,,104,,,0,,0,0,35.02,0,,-33.9085306,18.4197173,58.4,0.062,,,,,,,,,,,,,,,,4494.746565,,,0.305758,61.1,241.1,,,,,,,,,,,,,2.367521,98.865692,8.040314,0.494814,579.191406,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.82654,,4369.841601
|
||||
0,43043.305793,0,148.4,4.71,149.3,5.07,331,,0,58.4,0.07,179.6,,,,1.4,0.84,-0.04,7.16,,0.547,,,,,,,104,,,0,,0,0,34.92,0,,-33.9085303,18.4197174,58.4,0.066,,,,,,,,,,,,,,,,4494.746314,,,0.30577,61.1,241.1,,,,,,,,,,,,,2.367481,98.865128,7.936176,0.494846,579.18927,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.81312,,4369.841594
|
||||
0,43043.305804,0,147.6,4.65,148.5,5.02,330.7,,0,58.4,0.07,179.5,,,,1.4,0.89,0.01,7.17,,0.545,,,,,,,104,,,0,,0,0,34.89,0,,-33.9085302,18.419717,58.4,0.067,,,,,,,,,,,,,,,,4494.746283,,,0.305781,60.7,240.7,,,,,,,,,,,,,2.367517,98.865089,7.759246,0.494822,579.192688,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.646684,,4369.84158
|
||||
0,43043.305816,0,147.2,4.62,148.1,4.98,330.5,,0,58.4,0.07,179.5,,,,1.4,0.93,0,7.16,,0.547,,,,,,,104,,,0,,0,0,34.95,0,,-33.9085303,18.4197172,58.4,0.065,,,,,,,,,,,,,,,,4494.746274,,,0.305793,60.5,240.5,,,,,,,,,,,,,2.367514,98.865921,7.594308,0.493407,579.193115,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.572412,,4369.841589
|
||||
0,43043.305827,0,148.9,4.69,148.9,4.98,330.6,,0,58.4,0.05,179.3,,,,1.4,0.91,0.05,7.18,,0.548,,,,,,,104,,,0,,0,0,34.99,0,,-33.9085306,18.4197173,58.4,0.051,,,,,,,,,,,,,,,,4494.746742,,,0.305804,60.5,240.5,,,,,,,,,,,,,2.367514,98.865173,7.596838,0.49495,579.186035,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.766499,,4369.841615
|
||||
0,43043.305839,0,152.8,4.78,151.5,4.99,331.2,,0,58.4,0.05,179.1,,,,1.4,0.85,0.04,7.2,,0.551,,,,,,,104,,,0,,0,0,34.92,0,,-33.9085307,18.4197173,58.4,0.051,,,,,,,,,,,,,,,,4494.746863,,,0.305816,61.1,241.1,,,,,,,,,,,,,2.367504,98.864769,7.629427,0.494454,579.188171,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.057669,,4369.841627
|
||||
0,43043.305851,0,153.5,4.8,152.5,4.98,331.4,,0,58.4,0.05,179.2,,,,1.4,0.84,0.07,7.16,,0.557,,,,,,,104,,,0,,0,0,34.87,0,,-33.9085305,18.4197175,58.4,0.053,,,,,,,,,,,,,,,,4494.746728,,,0.305828,61.4,241.4,,,,,,,,,,,,,2.367504,98.864746,7.608146,0.494083,579.190308,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.21491,,4369.84162
|
||||
0,43043.305862,0,154.6,4.75,153.2,4.95,331.6,,0,58.4,0.05,179.3,,,,1.4,0.86,-0.05,7.17,,0.542,,,,,,,104,,,0,,0,0,34.79,0,,-33.9085304,18.4197177,58.4,0.054,,,,,,,,,,,,,,,,4494.746707,,,0.305839,61.6,241.6,,,,,,,,,,,,,2.367477,98.864372,7.457287,0.495428,579.183655,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.620092,,4369.841617
|
||||
0,43043.305874,0,152.5,4.68,152.4,4.9,331.4,,0,58.4,0.05,179.2,,,,1.4,0.82,-0.06,7.17,,0.542,,,,,,,104,,,0,,0,0,34.74,0,,-33.9085302,18.4197176,58.4,0.049,,,,,,,,,,,,,,,,4494.746823,,,0.305851,61.4,241.4,,,,,,,,,,,,,2.367517,98.864601,7.258937,0.49545,579.187744,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.152083,,4369.841609
|
||||
0,43043.305886,0,151.2,4.7,151.4,4.89,331.1,,0,58.4,0.04,179.3,,,,1.4,0.71,-0.05,7.17,,0.543,,,,,,,104,,,0,,0,0,34.72,0,,-33.90853,18.4197174,58.4,0.041,,,,,,,,,,,,,,,,4494.747111,,,0.305862,61.2,241.2,,,,,,,,,,,,,2.367527,98.864799,7.251778,0.493887,579.18689,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.082603,,4369.841593
|
||||
0,43043.305897,0,149.2,4.78,150,4.91,330.7,,0,58.4,0.04,179.3,,,,1.4,0.58,-0.05,7.17,,0.543,,,,,,,104,,,0,,0,0,34.75,0,,-33.90853,18.4197174,58.4,0.044,,,,,,,,,,,,,,,,4494.747004,,,0.305874,60.8,240.8,,,,,,,,,,,,,2.367501,98.864571,7.301067,0.494079,579.18927,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.699507,,4369.841591
|
||||
0,43043.305909,0,148.2,4.8,149.2,4.89,330.4,,0,58.4,0.04,179.4,,,,1.4,0.51,-0.05,7.17,,0.542,,,,,,,104,,,0,,0,0,34.87,0,,-33.9085299,18.4197176,58.4,0.043,,,,,,,,,,,,,,,,4494.747033,,,0.305885,60.5,240.5,,,,,,,,,,,,,2.367507,98.864716,7.254144,0.493431,579.189026,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.528905,,4369.841588
|
||||
0,43043.305921,0,145.2,4.74,147.1,4.86,329.7,,0,58.4,0.05,179.6,,,,1.4,0.51,-0.04,7.17,,0.543,,,,,,,104,,,0,,0,0,34.93,0,,-33.9085297,18.4197177,58.4,0.049,,,,,,,,,,,,,,,,4494.74687,,,0.305897,59.9,239.9,,,,,,,,,,,,,2.367527,98.864639,7.141332,0.494522,579.183044,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.369035,,4369.841577
|
||||
0,43043.305933,0,142.7,4.65,144.8,4.82,329,,0,58.4,0.05,179.6,,,,1.4,0.53,-0.04,7.17,,0.544,,,,,,,104,,,0,,0,0,34.96,0,,-33.9085296,18.4197175,58.4,0.05,,,,,,,,,,,,,,,,4494.746803,,,0.305909,59.1,239.1,,,,,,,,,,,,,2.367504,98.864037,6.976142,0.494604,579.186462,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.286149,,4369.841565
|
||||
0,43043.305944,0,142.3,4.56,144.3,4.77,328.7,,0,58.4,0.05,179.6,,,,1.4,0.53,-0.04,7.17,,0.545,,,,,,,104,,,0,,0,0,34.89,0,,-33.9085292,18.4197173,58.4,0.048,,,,,,,,,,,,,,,,4494.746825,,,0.30592,58.7,238.7,,,,,,,,,,,,,2.367541,98.864273,6.768263,0.495198,579.184937,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.566006,,4369.84154
|
||||
0,43043.305957,0,141.1,4.46,143,4.68,328.1,,0,58.4,0.04,179.6,,,,1.4,0.49,-0.06,7.18,,0.547,,,,,,,104,,,0,,0,0,34.87,0,,-33.9085289,18.419717,58.4,0.039,,,,,,,,,,,,,,,,4494.747067,,,0.305932,58.2,238.2,,,,,,,,,,,,,2.367497,98.864983,6.428645,0.495544,579.194458,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.945739,,4369.841514
|
||||
0,43043.305968,0,141.2,4.39,142.7,4.61,327.7,,0,58.4,0.06,179.6,,,,1.4,0.44,-0.05,7.17,,0.544,,,,,,,104,,,0,,0,0,34.86,0,,-33.9085286,18.4197169,58.4,0.061,,,,,,,,,,,,,,,,4494.746729,,,0.305943,57.8,237.8,,,,,,,,,,,,,2.367521,98.865654,6.165024,0.494762,579.188416,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.349829,,4369.841498
|
||||
0,43043.305979,0,141.1,4.29,142.4,4.57,327.4,,0,58.4,0.08,179.4,,,,1.4,0.41,-0.03,7.16,,0.544,,,,,,,104,,,0,,0,0,34.91,0,,-33.9085285,18.4197166,58.4,0.082,,,,,,,,,,,,,,,,4494.745714,,,0.305955,57.5,237.5,,,,,,,,,,,,,2.367497,98.8647,6.012874,0.495066,579.189026,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.652994,,4369.84149
|
||||
0,43043.305991,0,139.7,4.16,141.2,4.53,326.8,,0,58.4,0.09,179.4,,,,1.4,0.43,-0.04,7.17,,0.544,,,,,,,104,,,0,,0,0,34.94,0,,-33.9085286,18.4197167,58.4,0.095,,,,,,,,,,,,,,,,4494.74531,,,0.305966,56.8,236.8,,,,,,,,,,,,,2.367514,98.864342,5.854272,0.494269,579.185791,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.640193,,4369.8415
|
||||
0,43043.306002,0,139.5,4.07,140.9,4.49,326.4,,0,58.4,0.07,179.4,,,,1.4,0.47,-0,7.17,,0.546,,,,,,,104,,,0,,0,0,34.94,0,,-33.9085288,18.4197167,58.4,0.073,,,,,,,,,,,,,,,,4494.745619,,,0.305978,56.5,236.5,,,,,,,,,,,,,2.367487,98.864784,5.71282,0.495704,579.18927,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.73358,,4369.841509
|
||||
0,43043.306015,0,139.6,4.04,140.5,4.48,326,,0,58.4,0.05,179.4,,,,1.4,0.5,-0.01,7.17,,0.548,,,,,,,104,,,0,,0,0,34.9,0,,-33.908529,18.4197167,58.4,0.051,,,,,,,,,,,,,,,,4494.746677,,,0.305992,56,236,,,,,,,,,,,,,2.367487,98.865372,5.657006,0.494508,579.193787,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.586456,,4369.841519
|
||||
0,43043.306026,0,139.8,4.08,140.6,4.49,325.7,,0,58.4,0.04,179.4,,,,1.4,0.51,0.13,7.17,,0.553,,,,,,,104,,,0,,0,0,34.83,0,,-33.9085289,18.4197168,58.4,0.04,,,,,,,,,,,,,,,,4494.747024,,,0.306001,55.7,235.7,,,,,,,,,,,,,2.367544,98.865784,5.693069,0.494978,579.190979,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.369375,,4369.841518
|
||||
0,43043.306038,0,140.1,4.18,140.4,4.51,325.4,,0,58.4,0.04,179.5,,,,1.4,0.58,0.04,7.17,,0.549,,,,,,,104,,,0,,0,0,34.85,0,,-33.9085289,18.4197173,58.4,0.043,,,,,,,,,,,,,,,,4494.747023,,,0.306013,55.4,235.4,,,,,,,,,,,,,2.367471,98.864349,5.787839,0.495452,579.183228,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.834913,,4369.84153
|
||||
0,43043.306049,0,143,4.26,142.4,4.5,325.7,,0,58.4,0.06,179.5,,,,1.4,0.72,0.06,7.17,,0.55,,,,,,,104,,,0,,0,0,34.93,0,,-33.9085285,18.4197174,58.4,0.06,,,,,,,,,,,,,,,,4494.746438,,,0.306024,55.7,235.7,,,,,,,,,,,,,2.367527,98.864777,5.744619,0.495404,579.191406,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.092266,,4369.841516
|
||||
0,43043.306061,0,144.1,4.31,143.2,4.48,325.7,,0,58.4,0.06,179.3,,,,1.4,0.85,0.06,7.17,,0.551,,,,,,,104,,,0,,0,0,34.99,0,,-33.9085286,18.4197174,58.4,0.061,,,,,,,,,,,,,,,,4494.746376,,,0.306039,55.7,235.7,,39.5759514,2.5748167,,,,,,,,,,2.367501,98.863998,5.652483,0.494522,579.182373,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.450637,,4369.841528
|
||||
0,43043.306073,0,146.5,4.37,145,4.49,326.1,,0,58.4,0.06,179.3,,,,1.4,0.89,0.05,7.17,,0.542,,,,,,,104,,,0,,0,0,35.04,0,,-33.9085288,18.4197175,58.4,0.063,,,,,,,,,,,,,,,,4494.746299,,,0.30605,56,236,,,,,,,,,,,,,2.367501,98.863808,5.684719,0.494808,579.183899,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.620995,,4369.84154
|
||||
0,43043.306085,0,151.8,4.45,148.6,4.5,327,,0,58.4,0.06,179.3,,,,1.3,0.84,0.07,7.17,,0.553,,,,,,,104,,,0,,0,0,34.99,0,,-33.908529,18.4197178,58.4,0.059,,,,,,,,,,,,,,,,4494.746646,,,0.306062,56.9,236.9,,,,,,,,,,,,,2.367507,98.863884,5.737547,0.496847,579.185791,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,39.067871,,4369.841558
|
||||
0,43043.306096,0,154.6,4.56,151.3,4.54,327.7,,0,58.4,0.1,179,,,,1.4,0.8,0.07,7.18,,0.549,,,,,,,104,,,0,,0,0,34.97,0,,-33.9085291,18.419718,58.4,0.1,,,,,,,,,,,,,,,,4494.74513,,,0.306071,57.6,237.6,,,,,,,,,,,,,2.367514,98.864517,5.866133,0.495148,579.187744,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,39.49511,,4369.841581
|
||||
0,43043.306108,0,154.9,4.75,152.4,4.63,328.1,,0,58.4,0.1,179.4,,,,1.4,0.79,0.07,7.19,,0.553,,,,,,,104,,,0,,0,0,34.98,0,,-33.9085292,18.4197179,58.4,0.099,,,,,,,,,,,,,,,,4494.745193,,,0.306085,58.1,238.1,,,,,,,,,,,,,2.367507,98.864769,6.238055,0.495054,579.182373,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,38.827474,,4369.841569
|
||||
0,43043.306120,0,151.6,4.95,150.9,4.76,327.8,,0,58.4,0.11,179.3,,,,1.4,0.81,0.02,7.18,,0.542,,,,,,,104,,,0,,0,0,34.92,0,,-33.9085294,18.4197178,58.4,0.115,,,,,,,,,,,,,,,,4494.74457,,,0.306097,57.9,237.9,,,,,,,,,,,,,2.367464,98.863533,6.728293,0.495422,579.184082,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,37.529799,,4369.841579
|
||||
0,43043.306131,0,145.5,5.09,146.9,4.85,326.8,,0,58.4,0.1,179.3,,,,1.4,0.8,-0.03,7.18,,0.568,,,,,,,104,,,0,,0,0,34.87,0,,-33.9085293,18.4197182,58.4,0.104,,,,,,,,,,,,,,,,4494.74531,,,0.306108,56.9,236.9,,,,,,,,,,,,,2.367484,98.863914,7.083571,0.495694,579.183655,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,36.000165,,4369.841585
|
||||
0,43043.306143,0,138.5,5.2,141.9,4.88,325.5,,0,58.4,0.14,179.6,,,,1.4,0.69,0.03,7.18,,0.54,,,,,,,104,,,0,,0,0,34.78,0,,-33.9085293,18.4197192,58.4,0.14,,,,,,,,,,,,,,,,4494.743829,,,0.30612,55.6,235.6,,,,,,,,,,,,,2.367554,98.863335,7.188333,0.49929,579.176147,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,34.716986,,4369.841608
|
||||
0,43043.306155,0,135.4,5.26,139.1,4.85,324.5,,0,58.4,0.13,180.1,,,,1.4,0.56,0.01,7.18,,0.538,,,,,,,104,,,0,,0,0,34.7,0,,-33.9085294,18.4197202,58.4,0.128,,,,,,,,,,,,,,,,4494.744186,,,0.306131,54.8,234.8,,,,,,,,,,,,,2.367584,98.860855,7.099799,0.496363,579.170105,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,34.056772,,4369.84163
|
||||
0,43043.306166,0,130.5,5.22,134.8,4.82,323.2,,0,57.5,0.13,180.1,,,,1.4,0.55,0.01,7.18,,0.545,,,,,,,104,,,0,,0,0,34.63,0,,-33.908529,18.4197211,57.3,0.121,,,,,,,,,,,,,,,,4494.744047,,,0.306143,53.5,233.5,,,,,,,,,,,,,2.367578,98.860954,6.947227,0.497447,579.166443,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,33.579793,,4369.841636
|
||||
0,43043.306178,0,130.6,5.17,134.2,4.77,322.6,,0,56.2,0.11,179.7,,,,1.3,0.58,0.01,7.18,,0.538,,,,,,,104,,,0,,0,0,34.67,0,,-33.9085293,18.4197207,56.2,0.109,,,,,,,,,,,,,,,,4494.744776,,,0.306155,52.7,232.7,,,,,,,,,,,,,2.367564,98.860756,6.770802,0.496485,579.175049,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,33.788713,,4369.841651
|
||||
0,43043.306190,0,129.7,5.08,132.6,4.74,321.8,,0,55.8,0.12,179.8,,,,1.4,0.5,0,7.17,,0.535,,,,,,,104,,,0,,0,0,34.74,0,,-33.9085298,18.41972,55.8,0.117,,,,,,,,,,,,,,,,4494.744618,,,0.306166,51.9,231.9,,,,,,,,,,,,,2.367571,99.007469,6.664012,0.497367,581.100708,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,33.518448,,4369.841646
|
||||
0,43043.306202,0,130.1,4.96,132.6,4.75,321.3,,0,55.8,0.1,179.9,,,,1.4,0.34,-0.03,7.17,,0.481,,,,,,,104,,,0,,0,0,34.66,0,,-33.9085299,18.4197202,55.8,0.1,,,,,,,,,,,,,,,,4494.744771,,,0.306178,51.4,231.4,,,,,,,,,,,,,2.365773,99.772903,6.686917,0.471604,585.662476,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,33.219946,,4369.841653
|
||||
0,43043.306213,0,132.3,4.74,133.2,4.73,321.1,,0,55.8,0.08,179.8,,,,1.6,0.21,-0.01,7.18,,0.465,,,,,,,104,,,0,,0,0,34.57,0,,-33.9085301,18.4197204,55.8,0.077,,,,,,,,,,,,,,,,4494.745837,,,0.306189,51,231,,,,,,,,,,,,,2.364245,100.821457,6.619851,0.424921,591.220581,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,33.117383,,4369.841672
|
||||
0,43043.306225,0,138.2,4.57,137.1,4.71,321.8,,0,55.8,0.06,179.5,,,,1.4,0.19,-0.04,7.17,,0.446,,,,,,,104,,,0,,0,0,34.52,0,,-33.9085308,18.4197203,55.8,0.061,,,,,,,,,,,,,,,,4494.7464,,,0.306201,51.7,231.7,,,,,,,,,,,,,2.363921,101.887444,6.54773,0.417969,595.222595,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,33.840911,,4369.841714
|
||||
0,43043.306237,0,141,4.6,139.4,4.77,322.1,,0,55.8,0.07,179.2,,,,1.4,0.29,-0,7.19,,0.439,,,,,,,104,,,0,,0,0,34.5,0,,-33.9085314,18.4197198,55.8,0.068,,,,,,,,,,,,,,,,4494.74639,,,0.306215,52,232,,,,,,,,,,,,,2.362825,102.492744,6.754865,0.394745,597.877625,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,33.863526,,4369.841735
|
||||
0,43043.306249,0,143.7,4.78,141.4,4.86,322.5,,0,55.8,0.09,179.3,,,,1.4,0.35,-0,7.18,,0.441,,,,,,,104,,,0,,0,0,34.5,0,,-33.9085316,18.41972,55.8,0.092,,,,,,,,,,,,,,,,4494.745476,,,0.306227,52.4,232.4,,,,,,,,,,,,,2.362845,102.847641,7.134893,0.394569,598.614563,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,33.25136,,4369.84175
|
||||
0,43043.306260,0,146.5,5.02,143.8,4.97,323,,0,55.8,0.09,179.3,,,,1.4,0.3,-0.02,7.17,,0.441,,,,,,,104,,,0,,0,0,34.51,0,,-33.9085316,18.4197203,55.8,0.087,,,,,,,,,,,,,,,,4494.745482,,,0.306238,52.9,232.9,,,,,,,,,,,,,2.362792,102.896881,7.545109,0.398081,598.711548,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,32.74152,,4369.841757
|
||||
0,43043.306272,0,147.8,5.33,145.2,5.1,323.4,,0,55.8,0.07,179.2,,,,1.4,0.22,-0.01,7.18,,0.445,,,,,,,104,,,0,,0,0,34.51,0,,-33.9085316,18.4197205,55.8,0.069,,,,,,,,,,,,,,,,4494.746137,,,0.306247,53.4,233.4,,,,,,,,,,,,,2.362818,102.911133,8.060515,0.397374,598.774536,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,32.456471,,4369.841769
|
||||
0,43043.306284,0,148,5.79,146,5.33,323.6,,0,55.8,0.05,179.2,,,,1.4,0.22,-0.02,7.18,,0.458,,,,,,,104,,,0,,0,0,34.48,0,,-33.9085317,18.4197209,55.8,0.056,,,,,,,,,,,,,,,,4494.746909,,,0.306262,53.6,233.6,,,,,,,,,,,,,2.362845,102.932083,8.930959,0.396582,598.878845,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,31.621008,,4369.841779
|
||||
0,43043.306295,0,146.6,6.18,145.5,5.54,323.5,,0,55.8,0.08,179.3,,,,1.4,0.31,-0.01,7.16,,0.599,,,,,,,104,,,0,,0,0,34.43,0,,-33.9085315,18.4197211,55.8,0.084,,,,,,,,,,,,,,,,4494.745723,,,0.306273,53.6,233.6,,,,,,,,,,,,,2.366752,102.944511,9.646354,0.446602,598.913452,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,29.906062,,4369.841785
|
||||
0,43043.306307,0,145.3,6.61,144.7,5.72,323.4,,0,55.8,0.08,179.5,,,,1.4,0.38,-0.02,7.19,,0.657,,,,,,,104,,,0,,0,0,34.44,0,,-33.9085314,18.4197215,55.8,0.082,,,,,,,,,,,,,,,,4494.745765,,,0.306285,53.4,233.4,,,,,,,,,,,,,2.370409,102.947891,10.227253,0.558491,598.919434,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,28.078976,,4369.841781
|
||||
0,43043.306319,0,144.3,7.06,144.2,5.91,323.3,,0,55.8,0.07,179.5,,,,1.4,0.37,-0.02,7.19,,0.672,,,,,,,104,,,0,,0,0,34.41,0,,-33.9085312,18.4197216,55.8,0.062,,,,,,,,,,,,,,,,4494.745845,,,0.306293,53.3,233.3,,,,,,,,,,,,,2.371047,102.947685,10.765502,0.580573,598.915161,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,26.559608,,4369.841778
|
||||
0,43043.306331,0,142.9,7.36,143.2,6.06,323.1,,0,55.8,0.04,179.5,,,,1.3,0.34,-0.02,7.17,,0.84,,,,,,,105,,,0,,0,0,34.44,0,,-33.9085311,18.419722,55.8,0.042,,,,,,,,,,,,,,,,4494.747071,,,0.306308,53.1,233.1,,,,,,,,,,,,,2.377057,102.942726,11.129307,0.648761,598.823792,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,25.354303,,4369.841785
|
||||
|
+2
-2
@@ -39,6 +39,7 @@ import org.junit.rules.Timeout;
|
||||
|
||||
import com.sap.sailing.declination.Declination;
|
||||
import com.sap.sailing.declination.DeclinationService;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.Wind;
|
||||
import com.sap.sailing.domain.common.WindSource;
|
||||
@@ -51,17 +52,16 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.common.tracking.impl.BravoExtendedFixImpl;
|
||||
import com.sap.sailing.domain.racelog.tracking.FixReceivedListener;
|
||||
import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.test.mock.MockedTrackedRace;
|
||||
import com.sap.sailing.expeditionconnector.DeviceRegistry;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionListener;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionMessage;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionTrackerFactory;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionWindTracker;
|
||||
import com.sap.sailing.expeditionconnector.UDPExpeditionReceiver;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifierImpl;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifierImpl;
|
||||
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
-1
@@ -2,7 +2,6 @@ package com.sap.sailing.expeditionconnector;
|
||||
|
||||
import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier;
|
||||
|
||||
/**
|
||||
* Makes accessible a mapping from "Expedition" boat IDs to device UUIDs.
|
||||
|
||||
-1
@@ -27,7 +27,6 @@ import com.sap.sailing.expeditionconnector.impl.Activator;
|
||||
import com.sap.sailing.expeditionconnector.persistence.DomainObjectFactory;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifierImpl;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifierImpl;
|
||||
import com.sap.sailing.expeditionconnector.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.expeditionconnector.persistence.PersistenceFactory;
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ public class ExpeditionWindTracker extends AbstractWindTracker implements Expedi
|
||||
try {
|
||||
Declination declination = declinationService.getDeclination(message.getTimePoint(),
|
||||
lastKnownPositionPerBoatID.get(message.getBoatID()),
|
||||
/* timeoutForOnlineFetchInMilliseconds */5000);
|
||||
/* timeoutForOnlineFetchInMilliseconds */500);
|
||||
if (declination != null) {
|
||||
windSpeed = new KnotSpeedWithBearingImpl(windSpeed.getKnots(), new DegreeBearingImpl(
|
||||
windSpeed.getBearing().getDegrees()).add(declination.getBearingCorrectedTo(message.getTimePoint())));
|
||||
|
||||
+1
-1
@@ -13,7 +13,6 @@ import com.sap.sailing.domain.common.tracking.impl.DoubleVectorFixImpl;
|
||||
import com.sap.sailing.domain.racelog.tracking.SensorFixStore;
|
||||
import com.sap.sailing.expeditionconnector.impl.ExpeditionMessageParser;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier;
|
||||
import com.sap.sailing.udpconnector.UDPReceiver;
|
||||
|
||||
/**
|
||||
@@ -110,6 +109,7 @@ public class UDPExpeditionReceiver extends UDPReceiver<ExpeditionMessage, Expedi
|
||||
mapExpeditionMessageFieldIdToMetadata.put(ExpeditionMessage.ID_DFLCTR_PP, ExpeditionExtendedSensorDataMetadata.DEFLECTOR_PERCENTAGE);
|
||||
mapExpeditionMessageFieldIdToMetadata.put(ExpeditionMessage.ID_TG_HEEL, ExpeditionExtendedSensorDataMetadata.TARGET_HEEL);
|
||||
mapExpeditionMessageFieldIdToMetadata.put(ExpeditionMessage.ID_FORESTAY_LOAD, ExpeditionExtendedSensorDataMetadata.FORESTAY_LOAD);
|
||||
mapExpeditionMessageFieldIdToMetadata.put(ExpeditionMessage.ID_FORESTAY_PRES, ExpeditionExtendedSensorDataMetadata.FORESTAY_PRESSURE);
|
||||
mapExpeditionMessageFieldIdToMetadata.put(ExpeditionMessage.ID_DFLECTR_MM, ExpeditionExtendedSensorDataMetadata.DEFLECTOR_MILLIMETERS);
|
||||
mapExpeditionMessageFieldIdToMetadata.put(ExpeditionMessage.ID_TARG_BSP_P, ExpeditionExtendedSensorDataMetadata.TARGET_BOATSPEED_P);
|
||||
|
||||
|
||||
+1
-1
@@ -15,11 +15,11 @@ import org.osgi.framework.ServiceRegistration;
|
||||
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifierStringSerializationHandler;
|
||||
import com.sap.sailing.domain.tracking.WindTrackerFactory;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionSensorDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.ExpeditionTrackerFactory;
|
||||
import com.sap.sailing.expeditionconnector.persistence.DomainObjectFactory;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdentifierJsonHandler;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.expeditionconnector.persistence.PersistenceFactory;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler;
|
||||
|
||||
+17
-2
@@ -1,5 +1,6 @@
|
||||
package com.sap.sailing.expeditionconnector.impl;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Collections;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.HashMap;
|
||||
@@ -65,9 +66,23 @@ public class ExpeditionMessageImpl implements ExpeditionMessage {
|
||||
this.originalMessage = originalMessage;
|
||||
this.createdAtMillis = System.currentTimeMillis();
|
||||
if (hasValue(ID_GPS_TIME)) {
|
||||
final double gpsTimeValue = getValue(ID_GPS_TIME);
|
||||
final long referenceTime;
|
||||
if (gpsTimeValue <= 1.0) { // "Phoenix" law: if between 0 and 1 then it's likely a day-relative time point
|
||||
// so add the millis of today midnight UTC
|
||||
Calendar todayMidnightUTC = new GregorianCalendar();
|
||||
todayMidnightUTC.setTimeZone(TimeZone.getTimeZone("UTC"));
|
||||
todayMidnightUTC.set(Calendar.HOUR_OF_DAY, 0);
|
||||
todayMidnightUTC.set(Calendar.MINUTE, 0);
|
||||
todayMidnightUTC.set(Calendar.SECOND, 0);
|
||||
todayMidnightUTC.set(Calendar.MILLISECOND, 0);
|
||||
referenceTime = todayMidnightUTC.getTimeInMillis();
|
||||
} else {
|
||||
referenceTime = cal.getTimeInMillis();
|
||||
}
|
||||
timePoint = new MillisecondsTimePoint((long)
|
||||
(getValue(ID_GPS_TIME)*24*3600*1000) + // this is the milliseconds since 31.12.1899 0:00:00 UTC
|
||||
cal.getTimeInMillis());
|
||||
(gpsTimeValue*24*3600*1000) + // this is the milliseconds since 31.12.1899 0:00:00 UTC
|
||||
referenceTime);
|
||||
} else if (defaultTimePoint == null) {
|
||||
timePoint = new MillisecondsTimePoint(createdAtMillis);
|
||||
} else {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.sap.sailing.expeditionconnector.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelogtracking.DeviceIdentifier;
|
||||
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifierSerializationHandler;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler;
|
||||
|
||||
|
||||
@@ -80,10 +80,6 @@ fieldset legend {
|
||||
color: #FF0000;
|
||||
}
|
||||
|
||||
.linkNoBorder {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.refreshLink {
|
||||
border: none;
|
||||
position: relative;
|
||||
@@ -95,11 +91,6 @@ fieldset legend {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.boldLabel {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.boldAnchor {
|
||||
font-weight: bold;
|
||||
vertical-align: middle;
|
||||
|
||||
@@ -109,23 +109,6 @@ table {
|
||||
margin: 0 12px 18px 12px;
|
||||
}
|
||||
|
||||
.sapLogo {
|
||||
float: left;
|
||||
margin: 13px 0 0 12px;
|
||||
}
|
||||
|
||||
.sailingAnalyticsLabelPanel {
|
||||
margin: 10px 0 0 0;
|
||||
}
|
||||
|
||||
.sailingAnalyticsLabel {
|
||||
float: left;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
margin: 15px 0 0 0;
|
||||
}
|
||||
|
||||
.leaderboardLabel {
|
||||
border-bottom: 2px solid #007dc0;
|
||||
font-weight: bold;
|
||||
|
||||
@@ -27,22 +27,6 @@ html {
|
||||
font-size: 15px;
|
||||
}
|
||||
|
||||
.titleLabelWrapper {
|
||||
position: relative;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.titleLabel {
|
||||
text-align: center;
|
||||
font-family: 'Open Sans', Arial, Verdana, sans-serif;
|
||||
font-weight: 600
|
||||
font-size: 18px;
|
||||
color: #fff;
|
||||
margin: 23px 0 0 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #ebebeb;
|
||||
font-family: 'Open Sans', Arial, Verdana, sans-serif;
|
||||
@@ -81,31 +65,11 @@ table {
|
||||
border-collapse: separate;
|
||||
}
|
||||
|
||||
/*.RaceBoardHeaderPanel {
|
||||
margin: 0 12px 14px 12px;
|
||||
}*/
|
||||
.sapLogo {
|
||||
float: left;
|
||||
margin: 13px 0 0 12px;
|
||||
}
|
||||
|
||||
.pioLogo {
|
||||
float: right;
|
||||
margin: 11px 20px 0 12px;
|
||||
}
|
||||
|
||||
.sailingAnalyticsLabelPanel {
|
||||
margin: 10px 0 0 0;
|
||||
}
|
||||
|
||||
.sailingAnalyticsLabel {
|
||||
float: left;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
margin: 15px 0 0 0;
|
||||
}
|
||||
|
||||
.timePanelSettings {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@@ -96,23 +96,6 @@ table {
|
||||
margin: 0 12px 18px 12px;
|
||||
}
|
||||
|
||||
.sapLogo {
|
||||
float: left;
|
||||
margin: 13px 0 0 12px;
|
||||
}
|
||||
|
||||
.sailingAnalyticsLabelPanel {
|
||||
margin: 10px 0 0 0;
|
||||
}
|
||||
|
||||
.sailingAnalyticsLabel {
|
||||
float: left;
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
margin: 15px 0 0 0;
|
||||
}
|
||||
|
||||
.leaderboardLabel {
|
||||
border-bottom: 2px solid #007dc0;
|
||||
font-weight: bold;
|
||||
|
||||
@@ -53,6 +53,15 @@
|
||||
<url-pattern>/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<filter>
|
||||
<filter-name>LocaleInjectionFilter</filter-name>
|
||||
<filter-class>com.sap.sse.security.ui.server.LocaleInjectionFilter</filter-class>
|
||||
</filter>
|
||||
<filter-mapping>
|
||||
<filter-name>LocaleInjectionFilter</filter-name>
|
||||
<url-pattern>*.html</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<servlet>
|
||||
<display-name>Sailing Service</display-name>
|
||||
<servlet-name>SailingService</servlet-name>
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.4 KiB |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user