Commit Graph
254 Commits
Author SHA1 Message Date
Axel Uhl 83c05842ce support multiple boat classes in same race; use dominant one
Compute start time dynamically with threshold of 30s from first mark passing on first mark
2011-06-19 12:22:47 +02:00
Axel Uhl f4639fa382 fix possible deadlock problem: when asking for the tracked race outside the synchronized block,
it may still be null; however, it may get filled before the synchronized block gets entered.
Therefore, the get needs to be inside the synchronized block.
2011-06-18 23:51:47 +02:00
Axel Uhl b9c5d5d73f ranking comparators again may rank competitors equal if they have equal distances / times and such.
But this time we're using Collections.sort with these comparators on a List that doesn't collapse
multiple entries into one.
2011-06-18 22:13:41 +02:00
Axel Uhl 1cf3bb13f3 compare otherwise equal but distinct competitors by their name for the race rank
This avoids collapsing the two into one, not having the one appear in the ranked
sorted set
2011-06-18 19:27:48 +02:00
Axel Uhl f63c67be1e compare otherwise equal but distinct competitors by their name 2011-06-18 19:27:32 +02:00
Axel Uhl fbab7d5e53 distinguish by competitor names if otherwise two competitor tracks rank exactly equal 2011-06-18 19:21:28 +02:00
Axel Uhl 6221ecd9b0 added logging in case a tracked leg doesn't have ranks for all competitors 2011-06-18 19:00:26 +02:00
Axel Uhl 948a06e054 infer race start time if non-sense and we have better evidence from GPS fixes 2011-06-18 18:23:03 +02:00
Axel Uhl 910a128d95 removed synchronization from CourseImpl 2011-06-18 16:27:41 +02:00
Axel Uhl b7e86c9594 added synchronization on CourseImpl to avoid asking waypoints when there is a course update underway 2011-06-18 13:39:31 +02:00
Axel Uhl ca128d74ce fixed issue with multiple boat classes per event; added test case for that 2011-06-17 23:47:05 +02:00
Axel Uhl 7b0af7d8e8 compilable version with finished-time for race removed from REST APIs and from TrackedRace interface;
adjusted documentation in README accordingly; prepared getWindwardDistanceToOverallLeader
2011-06-17 17:27:00 +02:00
Axel Uhl c5e8c6e56b show wind/speed averaging interval in showrace output; offer setaveraging action in AdminApp 2011-06-17 10:16:40 +02:00
Axel Uhl d49429a5e9 added wind averaging change API 2011-06-17 10:01:14 +02:00
Axel Uhl fb653ab47d added capability to dynamically adjust the speed averaging interval 2011-06-17 08:28:06 +02:00
Axel Uhl f91011b480 emit nationalityISO2 and nationalityISO3 from listevents 2011-06-16 23:46:50 +02:00
Axel Uhl bb6605ba66 added tests for country code conversion and lookup 2011-06-16 23:22:14 +02:00
Axel Uhl 5e3adf70ba generated CountroCodeFactoryImpl using CountryCodeTest 2011-06-16 23:22:08 +02:00
Axel Uhl aa047f53a3 fixed HTML characters and converted them to Unicode 2011-06-16 23:22:02 +02:00
Axel Uhl 9ea71dfea7 proceeded with conversion routine for country codes 2011-06-16 23:21:56 +02:00
Axel Uhl 732cdf54cc country codes with IOC three-letter codes, as HTML source 2011-06-16 23:21:49 +02:00
Axel Uhl 6bfcca6ded interfaces for CountryCode conversion 2011-06-16 23:21:40 +02:00
Axel Uhl 6d12befe96 use new TrackedLeg.getRanks(TimePoint) in ModeratorApp for consistent rank read-out 2011-06-15 08:11:08 +02:00
Axel Uhl d0380cd0f3 added getRanks(TimePoint) on TrackedLeg 2011-06-15 08:00:43 +02:00
Axel Uhl 2100945078 interpolate timestamps for expedition messages by keeping track of latencies 2011-06-14 19:21:10 +02:00
Axel Uhl 3009148864 removed unnecessary synchronization on WindTrackImpl.add
It's using a concurrent collection meanwhile anyway.
This avoids a deadlock when a wind track listener is notified
about the change and tries to clear the rank cache. The rank
cache re-calculation, however, draws the wind track's monitor
when calling getEstimatedWind(...).
2011-06-14 18:59:05 +02:00
Axel Uhl 55d94a7fc5 return null in getLastFix() and getFirstFix() if track is empty 2011-06-14 18:38:04 +02:00
Axel Uhl d43c365fdf turned updateCount into long; added ExpeditionMessageImpl constructor to allow better time stamp defaulting 2011-06-14 18:05:12 +02:00
Axel Uhl b745acb11f changed time point used for average speed over ground; use time of competitor's last fix if leg not completed;
return null if no fix found at all for competitor
2011-06-14 13:17:07 +02:00
Axel Uhl 98efb3f4f7 increased timeout for declination read-out; notify about mark passings changes only after
all of a competitor's known mark passings have been re-established
2011-06-13 22:27:49 +02:00
Axel Uhl 0f7daa3ffd added currentSpeedOverGroundInKnots to showrace output 2011-06-13 21:41:21 +02:00
Axel Uhl e7d6006bfb fixed time point check for average velocity made good; fixed localhost default for MongoDB wind store 2011-06-13 21:30:10 +02:00
Axel Uhl b44c05c5c6 added first simple distance traveled test; made Expedition time conversion test more lenient 2011-06-13 20:56:36 +02:00
Axel Uhl 464a1c6e64 first successful test that starts/stops/starts tracking for same race and gets different TrackedRaces 2011-06-13 19:48:25 +02:00
Axel Uhl 5354ba7e3f added getTimePointOfLastEvent 2011-06-13 15:28:30 +02:00
Axel Uhl b9df8dbe32 removing equals/hashCode from WaypointImpl again
Instead, DomainFactoryImpl.updateCourseWaypoints re-uses existing Waypoint objects by
explicit comparison of their ControlPoint objects, in order.
2011-06-13 13:06:42 +02:00
Axel Uhl b2a3a4426b fixed leg update after course change 2011-06-13 11:11:17 +02:00
Axel Uhl aa1aed9a81 fixed tracked leg update after addWaypoint 2011-06-12 23:28:22 +02:00
Axel Uhl 332965617d fixed creation of TrackedLeg[OfCompetitor] after addWaypoint 2011-06-12 23:18:18 +02:00
Simon Pamies f45ffa4d00 After having understood what really happens in CourseImpl now fixed the
problem with IndexOutOfBounds for legs for good
2011-06-12 19:48:56 +02:00
Simon Pamies 322d6b02eb Fixed problem with CourseImpl where legs were initalized with wrong leg
start position
2011-06-12 19:14:35 +02:00
Axel Uhl 072726df77 provide an ID for waypoints 2011-06-12 14:19:16 +02:00
trac 751ea0b34a switched to mongo.port=10200 for dev branch 2011-06-12 13:59:38 +02:00
Axel Uhl 6a88a001a3 fixed leg adding/removal 2011-06-12 13:56:02 +02:00
Axel Uhl 49073eb0ea same Mongo connection pattern also for WindTracks tests 2011-06-12 13:41:57 +02:00
Axel Uhl d77d6ced2c initialize Mongo properties from system properties in default constructor, helps if no OSGi is launched
added first logic in TrackedRaceImpl for course updates
2011-06-12 13:36:22 +02:00
Axel Uhl fb276dd261 added TODOs to TrackedRaceImpl regarding course updates; expose mongo.port property 2011-06-12 13:25:51 +02:00
Axel Uhl d50756c8c7 pass DomainFactory to receivers to allow better testing; fixed removing waypoint from course 2011-06-11 17:08:56 +02:00
Axel Uhl f8c36b2297 made a Course observable for changes 2011-06-11 13:57:14 +02:00
Axel Uhl 8c34005aa6 A leg now only refers to the course it belongs to and no longer immediately refers to the waypoints.
As such, the leg now just encodes something like "I'm the i-th leg in course x" which is more stable
against changes in waypoints. On the other hand this means that over time, as the course may change,
the leg's waypoints may change as well.
2011-06-11 13:36:14 +02:00