Esempio n. 1
0
        private void OnElapsed(object sender, ElapsedEventArgs e)
        {
            lock (_locker)
            {
                if (t1 != 0)
                {
                    double power = Power;
                    double mass  = Mass;
                    long   t2    = e.SignalTime.Ticks;
                    // dt in sec
                    double dt = (t2 - t1) / 10000000.0;
                    double a  = power / mass;
                    double v2 = a * dt + v1;
                    double dl = (v2 + v1) / 2 * dt;
                    v1 = v2;
                    if (Math.Abs(dl) > wheelLength)
                    {
                        EngenieOverhead?.Invoke();
                    }
                    if (dl > 0)
                    {
                        Direction = Direction.Forward;
                    }
                    else
                    {
                        if (dl < 0)
                        {
                            Direction = Direction.Back;
                        }
                        else
                        {
                            Direction = Direction.None;
                        }
                    }

                    distance += dl;
                    while (Math.Abs(distance) >= wheelLength)
                    {
                        SensorEvent?.Invoke();
                        if (distance > 0)
                        {
                            distance -= wheelLength;
                        }
                        else
                        {
                            distance += wheelLength;
                        }
                    }
                }
                t1 = e.SignalTime.Ticks;
            }
        }
 public void FireSensorEvent(object sender, SensorEventArgs e)
 {
     SensorEvent?.Invoke(this, e);
 }
Esempio n. 3
0
 private void OnTriggerExit2D(Collider2D collision)
 {
     OnTriggerExit.Invoke(collision);
 }
Esempio n. 4
0
 private void OnTriggerStay2D(Collider2D collision)
 {
     OnTriggerStay.Invoke(collision);
 }
Esempio n. 5
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     OnTriggerEnter.Invoke(collision);
 }
Esempio n. 6
0
 public void CallEvent(SensorEventArgs args)
 {
     SensorEvent?.Invoke(this, args);
 }