Merge branch 'master' into bug4210

This commit is contained in:
Benjamin Barth
2017-11-13 10:26:28 +01:00
173 changed files with 1044 additions and 525 deletions
@@ -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>
@@ -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]*)&deg; ([0-9]*)' *([EW])";
private static final String REGEXP_ANNUAL_CHANGE = "changing by *([0-9]*)&deg; *([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);
}
}
};
@@ -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),
@@ -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
*
*/
@@ -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), //
@@ -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) {
@@ -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();
@@ -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());
@@ -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
@@ -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 {
@@ -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)
}
}
@@ -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;
@@ -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;
@@ -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;
@@ -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,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
@@ -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;
@@ -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;
@@ -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;
@@ -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 {
@@ -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;
@@ -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;
@@ -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;
@@ -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,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,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,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,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,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,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,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 {
@@ -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,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
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
@@ -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;
/**
@@ -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;
/**
@@ -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;
/**
@@ -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;
/**
@@ -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
@@ -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
@@ -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;
@@ -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;
@@ -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;
@@ -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,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;
@@ -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,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,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";
@@ -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;
@@ -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;
@@ -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,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;
@@ -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;
@@ -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;
@@ -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;
@@ -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,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;
/**
@@ -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;
@@ -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;
@@ -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;
/**
@@ -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;
@@ -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;
/**
@@ -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);
}
@@ -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
@@ -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,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"
@@ -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,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
@@ -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 {
@@ -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,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 {
@@ -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;
@@ -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,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,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
1 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
2 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
3 1,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
4 2,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
5 3,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
6 4,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
7 5,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
8 6,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
9 7,43043.622986,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,0
10 .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
11 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
12 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
13 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
14 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
15 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
16 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
17 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
18 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
19 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
20 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
21 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
22 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
23 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
24 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
25 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
26 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
27 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
28 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
29 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
30 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
31 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
32 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
33 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
34 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
35 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
36 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
37 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
38 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
39 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
40 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
41 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
42 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
43 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
44 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
45 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
46 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
47 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
48 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
49 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
50 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
51 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
52 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
53 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
54 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
55 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
56 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
57 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
58 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
59 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
60 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
61 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
62 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
63 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
64 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
@@ -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;
@@ -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.
@@ -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;
@@ -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())));
@@ -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);
@@ -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;
@@ -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,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;
-36
View File
@@ -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;
}
-17
View File
@@ -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