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