Пример #1
0
        // update
        public void Update(canTimeStamp ts)
        {
            if (count != 0)
            {
                int tmp = Calculate(ts, LastTimeStamp);//, ts);

                // check
                if (count > 2)
                {
                    int cur = MilliSec;
                    if (cur > 20 || tmp > 20)
                    {
                        int    diff      = Math.Abs(tmp - cur);
                        double diffPrcnt = (double)diff / (double)cur;
                        double maxDiff   = 0.2;
                        if (diffPrcnt > maxDiff) // 20%
                        {
                            count = 0;
                            summ  = 0;
                            return;
                        }
                    }
                }

                summ += tmp;
            }

            LastTimeStamp = ts;
            count++;
        }
Пример #2
0
        // calculate
        public static int Calculate(canTimeStamp ts1, canTimeStamp ts2)
        {
            int ts = ts1.TimeStamp - ts2.TimeStamp;

            if (ts < 0)
            {
                ts += canTimeStamp.MaxTimeStamp;
            }
            return(ts);
        }
Пример #3
0
 // constructor
 public canMessage2(int id, bool is_29bit, byte b0, byte b1, byte b2, byte b3, byte b4, byte b5, byte b6, byte b7)
 {
     Data      = new byte[8];
     Data[0]   = b0;
     Data[1]   = b1;
     Data[2]   = b2;
     Data[3]   = b3;
     Data[4]   = b4;
     Data[5]   = b5;
     Data[6]   = b6;
     Data[7]   = b7;
     Id        = new canMessageId(id, Data.Length, is_29bit);
     TimeStamp = new canTimeStamp(0);
 }
Пример #4
0
 // constructor
 public canMessage2(int id = 0, bool is29bit = false, byte[] data = null, int ts = 0)
 {
     // data
     if (data != null && data.Length > 0)
     {
         Data = new byte[data.Length];
         data.CopyTo(Data, 0);
     }
     else
     {
         Data = null;
     }
     // id
     Id = new canMessageId(id, Data == null ? 0 : data.Length, is29bit);
     // timestamp
     TimeStamp = new canTimeStamp(ts);
 }
Пример #5
0
        // constructor
        public canMessage2(canMessageId id, byte[] data = null, int ts = 0)
        {
            Id = id;
            // data
            if (data != null && data.Length > 0)
            {
                Data = new byte[data.Length];
                data.CopyTo(Data, 0);
            }
            else
            {
                Data = null;
            }
            // todo: compare data len and DLC

            // ts
            TimeStamp = new canTimeStamp(ts);
        }
Пример #6
0
        // public long unix_ts = 0;

        // constructor
        public canMessage2()
        {
            Id        = canMessageId.Empty;
            Data      = null;
            TimeStamp = new canTimeStamp(0);
        }
Пример #7
0
 // clear
 public void Clear()
 {
     count         = 0;
     summ          = 0;
     LastTimeStamp = null;
 }
Пример #8
0
 // contructor
 public canPeriod(canTimeStamp ts)
 {
     Clear();
     Update(ts);
 }