Something went wrong on our end
-
Brutzman, Don authoredBrutzman, Don authored
Assignment7ConstantRate2Movers.java 3.14 KiB
package mv3302.run;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.List;
import mv3302.SimpleConstantRateMediator;
import mv3302.SimpleMover;
import mv3302.SimplePathMoverManager;
import mv3302.SimpleReferee;
import mv3302.sensor.AbstractSimpleSensor;
import mv3302.sensor.SimpleConstantRateSensor;
import simkit.Schedule;
import simkit.random.RandomVariate;
import simkit.random.RandomVariateFactory;
import simkit.smd.Mover;
import simkit.smd.Sensor;
import simkit.util.SimplePropertyDumper;
/**
*
* @author dansl
*/
public class Assignment7ConstantRate2Movers {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
RandomVariate exponentialGenerator = RandomVariateFactory.getInstance("Exponential", .7);
SimpleMover mover1 = new SimpleMover(new Point2D.Double(-20.0, 0.0), 30.0);
AbstractSimpleSensor sensor1 = new SimpleConstantRateSensor(mover1, 20.0, 5.0);
Point2D[] moverPath1 = new Point2D[]{
new Point2D.Double(100.0, 0.0)
};
SimplePathMoverManager moverManager1 = new SimplePathMoverManager(moverPath1, true);
mover1.addSimEventListener(moverManager1);
moverManager1.addSimEventListener(mover1);
SimpleMover mover2 = new SimpleMover(new Point2D.Double(50.0, 0.0), 40.0);
AbstractSimpleSensor sensor2 = new SimpleConstantRateSensor(mover2, 30.0, 5.0);
Point2D[] moverPath2 = new Point2D[] {
new Point2D.Double(-100.0, 0.0)
};
SimplePathMoverManager moverManager2 = new SimplePathMoverManager(moverPath2, true);
mover2.addSimEventListener(moverManager2);
moverManager2.addSimEventListener(mover2);
SimplePropertyDumper simplePropertyDumper = new SimplePropertyDumper(true);
mover1.addPropertyChangeListener(simplePropertyDumper);
moverManager1.addPropertyChangeListener(simplePropertyDumper);
sensor1.addPropertyChangeListener(simplePropertyDumper);
mover2.addPropertyChangeListener(simplePropertyDumper);
moverManager2.addPropertyChangeListener(simplePropertyDumper);
sensor2.addPropertyChangeListener(simplePropertyDumper);
List<Mover> targets = new ArrayList<>();
targets.add(mover1);
targets.add(mover2);
List<Sensor> sensors = new ArrayList<>();
sensors.add(sensor1);
sensors.add(sensor2);
SimpleReferee referee = new SimpleReferee(sensors, targets);
SimpleConstantRateMediator mediator1 = new SimpleConstantRateMediator(exponentialGenerator);
referee.addSimEventListener(mediator1);
System.out.println(mover1.paramString());
System.out.println(moverManager1);
System.out.println(sensor1.paramString());
System.out.println(mover2.paramString());
System.out.println(moverManager2);
System.out.println(sensor2.paramString());
System.out.println(referee);
Schedule.setVerbose(true);
Schedule.reset();
Schedule.startSimulation();
}
}