void ContinousCommunication() { while (true) { try { SteeringWheelAngleInfoReceivedEventHandler tempAngleEvent = evSteeringWheelAngleInfoReceived; if (tempAngleEvent != null) { tempAngleEvent(this, new SteeringWheelAngleInfoReceivedEventArgs(model.WheelAngle)); } SpeedInfoReceivedEventHander tempSpeedEvent = evSpeedInfoReceived; if (tempSpeedEvent != null) { tempSpeedEvent(this, new SpeedInfoReceivedEventArgs(model.Speed)); } BrakePositionReceivedEventHandler temp = evBrakePositionReceived; if (temp != null) { temp(this, new BrakePositionReceivedEventArgs(model.BrakePosition)); } Thread.Sleep(COMMUNICATION_THREAD_SLEEP_PER_LOOP); } catch (Exception e) { Logger.Log(this, String.Format("Fake car communicator exception catched: {0}", e.Message), 2); Logger.Log(this, String.Format("Fake car communicator exception stack: {0}", e.StackTrace), 1); } } }
void speedometer_evSpeedInfoReceived(object sender, SpeedInfoReceivedEventArgs args) { SpeedInfoReceivedEventHander temp = evSpeedInfoReceived; if (temp != null) { temp(this, new SpeedInfoReceivedEventArgs(args.GetSpeedInfo())); } }
void ConstantSpeedMeasuring() { while (true) { try { int ticks = extentionCardCommunicator.getSpeedCounterStatus(); int newTicks = ticks - lastTicks; measurePoints.AddLast(new SpeedMeasurementPoint(newTicks)); CleanUpMeasurePoints(); TimeSpan totalTimeOnMeasurementsList = measurePoints.Last().measurementTime - measurePoints.First().measurementTime; int totalTicksOnMeasurementsList = measurePoints.Sum(x => x.ticks); double speedInMetersPerSecond = totalTicksOnMeasurementsList * DISTANCE_PER_HAAL_METER_CATCHED / totalTimeOnMeasurementsList.TotalSeconds; if (ticks > TICKS_TO_RESTART) { extentionCardCommunicator.RestartSpeedCounter(); lastTicks = 0; } if (Double.IsNaN(speedInMetersPerSecond) || Double.IsInfinity(speedInMetersPerSecond)) //WORKARROUND { Logger.Log(this, "speed from speedometer is NaN", 2); } else { SpeedInfoReceivedEventHander SpeedEvent = evSpeedInfoReceived; if (SpeedEvent != null) { SpeedEvent(this, new SpeedInfoReceivedEventArgs(speedInMetersPerSecond)); } } lastTicks = ticks; Thread.Sleep(SPEED_MEASURING_THREAD_SLEEP_PER_LOOP_IN_MS); } catch (Exception e) { Logger.Log(this, String.Format("Speed measuring exception catched: {0}", e.Message), 2); Logger.Log(this, String.Format("Speed measuring exception stack: {0}", e.StackTrace), 1); } } }