This commit is contained in:
2025-06-27 11:45:17 +03:00
parent c763581ebb
commit 39c81a227b
4 changed files with 81 additions and 120 deletions

View File

@ -33,12 +33,14 @@ namespace DroneSimulator
public static List<Drone> AllDrones = new List<Drone>();
private static Thread? DroneThread = null;
public static long Timing = 0;
public static long Lag = 0;
public static long Freq = 1000;
public static bool Boost = false;
private uint Timer;
private Vector2 MoveOF = Vector2.Zero;
private uint CountOF = 0;
public struct Physics
{
@ -151,7 +153,11 @@ namespace DroneSimulator
Timing = Stopwatch.Frequency / (tick - prev);
prev = tick;
if (tick < last + Stopwatch.Frequency / Freq) continue;
long quant = Stopwatch.Frequency / Freq;
if (tick < last + quant) continue;
if (tick > (last + quant) + quant * 0.1) Lag++;
last = tick;
@ -334,15 +340,22 @@ namespace DroneSimulator
else LaserRange = float.MaxValue;
}
MoveOF.X += SpdXYZ.X - Gyr.Y;
MoveOF.Y += SpdXYZ.Y + Gyr.X;
RealAcc.Update(Acc, tick);
RealGyr.Update(Gyr, tick);
RealRange.Update(LaserRange, tick);
RealBar.Update(PosXYZ.Z, tick);
RealPos.Update(PosXYZ, tick);
RealOF.Update(MoveOF, LaserRange, tick);
bool of = RealOF.Update(new Vector2(SpdXYZ.X - Gyr.Y, SpdXYZ.Y + Gyr.X), LaserRange, tick);
if(of) lock (this)
{
MoveOF += RealOF.result;
CountOF += 1;
}
DataTimer = tick;
}
@ -472,11 +485,15 @@ namespace DroneSimulator
of.Head.Type = DroneData.DataType.DataOF;
of.Head.Time = (uint)(Stopwatch.GetTimestamp() / (Stopwatch.Frequency / 1000));
of.X = RealOF.result.X;
of.Y = RealOF.result.Y;
of.Time = RealOF.timer;
lock (this)
{
of.X = MoveOF.X / CountOF;
of.Y = MoveOF.Y / CountOF;
of.Time = RealOF.timer;
MoveOF = Vector2.Zero;
MoveOF = Vector2.Zero;
CountOF = 0;
}
return getBytes(of);
}