public void GetPacketClosestTo_returns_packet_closest_to_supplied_packet() { var tLap = new TelemetryLap(Circuit.NullCircuit, "LapType"); tLap.AddPacket(new TelemetryPacket{ LapDistance = 0.529f}); tLap.AddPacket(new TelemetryPacket { LapDistance = 1.875f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 3.221f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 4.567f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 5.931f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 7.262f }); // should be closest to this tLap.AddPacket(new TelemetryPacket { LapDistance = 8.611f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 9.961f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 11.311f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 12.661f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 14.013f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 15.365f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 16.715f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 18.067f }); tLap.AddPacket(new TelemetryPacket { LapDistance = 19.419f }); var tPacketCompare = new TelemetryPacket { LapDistance = 7.811f }; var foundPacket = tLap.GetPacketClosestTo(tPacketCompare); Assert.AreEqual(7.262f,foundPacket.LapDistance); }
private void LoadLap(TelemetryLap lap,String lapTypeName, Color color) { GraphPane myPane = zedGraphControl1.GraphPane; var fastestLap = lap; var packets = fastestLap.Packets; double[] x = new double[packets.Count]; double[] y = new double[packets.Count]; for (int i = 0; i < packets.Count; i++) { x[i] = packets[i].GetFieldValue(Xlabel); y[i] = packets[i].GetFieldValue(Ylabel); } // PointPairList holds the data for plotting, X and Y arrays PointPairList spl1 = new PointPairList(x, y); // Add curves to myPane object LineItem myCurve1 = null; myCurve1 = myPane.AddCurve(lapTypeName, spl1, color, SymbolType.None); myCurve1.Line.Width = 3.0F; // Set the Titles myPane.Title.Text = Xlabel + " " + Ylabel; myPane.XAxis.Title.Text = Xlabel; myPane.YAxis.Title.Text = Ylabel; // I add all three functions just to be sure it refeshes the plot. zedGraphControl1.AxisChange(); zedGraphControl1.Invalidate(); }
protected void OnRemovedLap(TelemetryLap lap) { if (RemovedLap != null) { RemovedLap(this, new LapEventArgs { Lap = lap }); } }
protected void OnStartedLap(TelemetryLap lap) { if (StartedLap != null) { StartedLap(this, new LapEventArgs { Lap = lap }); } }
protected void OnReturnedToGarage(TelemetryLap lap) { if (ReturnedToGarage != null) { ReturnedToGarage(this, new LapEventArgs { Lap = lap }); } }
protected void OnFinishedOutLap(TelemetryLap lap) { if (FinishedOutLap != null) { FinishedOutLap(this, new LapEventArgs { Lap = lap }); } }
public void AddPacket_adds_packets() { var tLap = new TelemetryLap(Circuit.NullCircuit, "LapType"); var origCount = tLap.Packets.Count(); tLap.AddPacket(new TelemetryPacket()); var newCount = tLap.Packets.Count(); Assert.AreEqual(origCount + 1, newCount); }
protected void OnSetFastestLap(LapEventArgs e, TelemetryLap oldFastestLap) { logger.Info(string.Format("Set new Fastest Lap. (old={0}. new={1})", oldFastestLap != null ? oldFastestLap.LapTime.AsTimeString() : "Nothing", e.Lap.LapTime.AsTimeString())); if (SetFastestLap != null) { SetFastestLap(this, e); } }
public void HasStartLinePacket_is_true_when_first_packet_time_is_less_than_one_sixtieth_of_second() { const float cutoff = (1000 / 60000f) + 0.001f; // Samples are taken 60 times per second, so first sample must be < 0.018 into the lap. // time differs slightly because last sample of last lap might have been nearly 0.017 before end of that lap. var tPacket = new TelemetryPacket() {LapTime = cutoff * 0.95f }; var tLap = new TelemetryLap(Circuit.NullCircuit, "LapType"); tLap.AddPacket(tPacket); Assert.IsTrue(tLap.IsFirstPacketStartLine); }
public static TelemetryLap CreatePopulatedLap(float lapNumber, bool completeLap) { var tLap = new TelemetryLap(Circuit.NullCircuit, "Test"); const float SampleRate = (1000/60000f); for (var index = 0; index < lapDistances.Length; index++) { if (completeLap || index > 0) tLap.AddPacket(new TelemetryPacket { Lap = lapNumber, LapDistance = lapDistances[index], Speed = speeds[index], LapTime=(SampleRate*(index+1) - 0.0001f) }); } return tLap; }
public static TelemetryLap CreateOutLap() { var tLap = new TelemetryLap(Circuit.NullCircuit, "Test"); const float SampleRate = (1000 / 60000f); for (var index = 0; index < lapDistances.Length; index++) { if (index > 0) tLap.AddPacket(new TelemetryPacket { Lap = 0f, LapDistance = -((20 - lapDistances[index])/20), Speed = speeds[lapDistances.Length - 1 - index], LapTime = (SampleRate * (index + 1) - 0.0001f) }); } return tLap; }
public void SetReferenceLap(TelemetryLap referenceLap) { ReferenceLap = referenceLap; if (referenceLap != null) { logger.Info("Reference lap loaded for " + referenceLap.CircuitName + " '" + referenceLap.LapType + "'"); ComparisonMode = ComparisonModeEnum.Reference; } else { logger.Info("Reference lap cleared"); ComparisonMode = ComparisonModeEnum.FastestLap; } }
protected void OnStartedOutLap(TelemetryLap lap) { if (StartedOutLap != null) StartedOutLap(this, new LapEventArgs { Lap = lap }); }
protected void OnSetFastestLap(LapEventArgs e, TelemetryLap oldFastestLap) { logger.Info(string.Format("Set new Fastest Lap. (old={0}. new={1})", oldFastestLap != null ? oldFastestLap.LapTime.AsTimeString() : "Nothing", e.Lap.LapTime.AsTimeString())); if (SetFastestLap != null) SetFastestLap(this, e); }
protected void OnReturnedToGarage(TelemetryLap lap) { if (ReturnedToGarage != null) ReturnedToGarage(this, new LapEventArgs { Lap = lap }); }
protected void OnRemovedLap(TelemetryLap lap) { if (RemovedLap != null) RemovedLap(this, new LapEventArgs { Lap = lap }); }
protected void OnFinishedOutLap(TelemetryLap lap) { if (FinishedOutLap != null) FinishedOutLap(this, new LapEventArgs { Lap = lap }); }
public void SetFastest(TelemetryLap FastestLap) { this.FastestLap = FastestLap; if (FastestLap != null) { #if DEBUG logger.Info("FastestLap loaded for " + FastestLap.CircuitName + " '" + FastestLap.LapType + "'"); #endif ComparisonMode = ComparisonModeEnum.FastestLap; } else { #if DEBUG logger.Info("FastestLap cleared"); #endif } }