Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        void speedometer_evSpeedInfoReceived(object sender, SpeedInfoReceivedEventArgs args)
        {
            SpeedInfoReceivedEventHander temp = evSpeedInfoReceived;

            if (temp != null)
            {
                temp(this, new SpeedInfoReceivedEventArgs(args.GetSpeedInfo()));
            }
        }
Esempio n. 3
0
        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);
                }
            }
        }