public RealCar(CarController parent) { Controller = parent; CarInfo = new CarInformations(); IsAlertBrakeActive = false; //regulators and communicator initiation CarComunicator = new RealCarCommunicator(this); // = new RealCarCommunicator(this); SpeedRegulator = new PIDSpeedRegulator(this); //SpeedRegulator = new FakeSpeedRegulator(); //SteeringWheelAngleRegulator = new SimpleSteeringWheelRegulator(this); SteeringWheelAngleRegulator = new PIDSteeringWheelAngleRegulator(this); //SteeringWheelAngleRegulator = new FakeSteeringWheelRegulator(); BrakeRegulator = new PIDBrakeRegulator(this); CarComunicator.InitRegulatorsEventsHandling(); //TODO: REFACTOR THIS SHIT!!! //for now this is needed, because reagulators does not exists when communicator constructor is invoked //internal event handling initialization evAlertBrake += new EventHandler(ExampleFakeCar_evAlertBrake); evTargetSpeedChanged += new TargetSpeedChangedEventHandler(ExampleFakeCar_evTargetSpeedChanged); evTargetSteeringWheelAngleChanged += new TargetSteeringWheelAngleChangedEventHandler(ExampleFakeCar_evTargetSteeringWheelAngleChanged); }
public void SetTargetWheelAngle(double targetAngle) { TargetSteeringWheelAngleChangedEventHandler temp = evTargetSteeringWheelAngleChanged; if (temp != null) { temp(this, new TargetSteeringWheelAngleChangedEventArgs(targetAngle)); } }
public void SetTargetWheelAngle(double angle) { CarInfo.TargetWheelAngle = angle; TargetSteeringWheelAngleChangedEventHandler temp = evTargetSteeringWheelAngleChanged; if (temp != null) { temp(this, new TargetSteeringWheelAngleChangedEventArgs(angle)); } }