From ee79997e3e75efe424c16f37845e871cc7fb971d Mon Sep 17 00:00:00 2001 From: "Waetschker Daniel (uib17511)" Date: Mon, 2 Nov 2020 17:19:07 +0100 Subject: [PATCH] implement average method remove time step rename vtrList --- .../java/de/hems/trafficsim/MainActivity.java | 5 ++- .../main/java/de/hems/trafficsim/Track.java | 45 ++++++++++++++++--- .../main/java/de/hems/trafficsim/Vehicle.java | 2 +- .../de/hems/trafficsim/VehicleTimeRecord.java | 8 +--- .../main/java/de/hems/trafficsim/Worker.java | 2 +- 5 files changed, 44 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/de/hems/trafficsim/MainActivity.java b/app/src/main/java/de/hems/trafficsim/MainActivity.java index e2581c5..5635b95 100644 --- a/app/src/main/java/de/hems/trafficsim/MainActivity.java +++ b/app/src/main/java/de/hems/trafficsim/MainActivity.java @@ -21,7 +21,7 @@ public class MainActivity extends AppCompatActivity implements Observer { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - this.track = new Track(25, 100); + this.track = new Track(20, 100); this.trackView = new TrackView(this, this.track); this.track.addObserver(this); ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.constr_layout); @@ -43,6 +43,7 @@ public class MainActivity extends AppCompatActivity implements Observer { + "\n"; ; } + s += "Average: " + trackRef.getLastAvg(); TextView view = (TextView) findViewById(R.id.debugTextView); view.setText(s); view.invalidate(); @@ -54,7 +55,7 @@ public class MainActivity extends AppCompatActivity implements Observer { public void onStepButtonClick(View view) { //for (int j = 0; j < 3000; j++) { - this.track.timeElapse(50); + this.track.timeElapse(); //} } diff --git a/app/src/main/java/de/hems/trafficsim/Track.java b/app/src/main/java/de/hems/trafficsim/Track.java index 06f9ed6..b4f85eb 100644 --- a/app/src/main/java/de/hems/trafficsim/Track.java +++ b/app/src/main/java/de/hems/trafficsim/Track.java @@ -7,8 +7,15 @@ import java.util.Observable; public class Track extends Observable { protected List vehicles; - protected List> vtr_list; + protected List> vtrList; protected float trackLength; + protected float sumAvgMemory; + + public float getLastAvg() { + return lastAvg; + } + + protected float lastAvg; public List getVehicles() { return vehicles; @@ -21,7 +28,9 @@ public class Track extends Observable { public Track(int numberVehicles, float trackLength) { this.trackLength = trackLength; this.vehicles = createVehiclesList(numberVehicles); - this.vtr_list = new LinkedList<>(); + this.vtrList = new LinkedList<>(); + this.sumAvgMemory = 0; + this.lastAvg = 0; } protected List createVehiclesList(int numberVehicles){ @@ -34,7 +43,7 @@ public class Track extends Observable { return result; } - public void timeElapse(float timeStep) { + public void timeElapse() { for(int i=0; i records = new ArrayList<>(vehicles.size()); - this.vtr_list.add(records); + this.vtrList.add(records); for(Vehicle v: vehicles){ - v.timeElapse(50); - VehicleTimeRecord vtr = new VehicleTimeRecord(v.id, v.position, v.curVelocity, timeStep); + v.timeElapse(); + VehicleTimeRecord vtr = new VehicleTimeRecord(v.id, v.position, v.curVelocity); records.add(vtr); } - + update_avg(); this.setChanged(); this.notifyObservers(this); this.clearChanged(); } + + public float avg_step(int step){ + float sum_step = 0; + for (VehicleTimeRecord r : vtrList.get(step)) { + sum_step += r.velocity; + } + return sum_step / vehicles.size(); + } + + protected void update_avg(){ + sumAvgMemory += avg_step(vtrList.size()-1); + lastAvg = sumAvgMemory / vtrList.size(); + } + + public float avg_span(int start, int end){ + float sum_span = 0; + for (int i=start; i