Пример #1
0
 public LotekData(LotekGpsData gpsData, DateTime mortalityTime, LotekActivityData activityData)
     : this()
 {
     GpsData       = gpsData;
     ActivityData  = activityData;
     MortalityTime = mortalityTime;
 }
Пример #2
0
        private static LotekData ActivityReader(IEnumerable <byte> data, bool firstByteIsHeader = false)
        {
            //Console.WriteLine("ActivityReader");
            var crc = CalcCrc8(data.Take(data.Count() - 1));

            //var crc2 = CalcCrc8(data.Skip(1).Take(data.Count() - 1));
            //Console.WriteLine(" crc1: {0:x2}, crc2: {1:x2}, crc3: {2:x2}", crc, crc2, data.Last());
            if (crc == data.Last())
            {
                var offset        = firstByteIsHeader ? 1 : 0;
                var gpsData       = GpsReader(data.Skip(offset));
                var refTime       = gpsData.Timestamp.Round(TimeSpan.FromMinutes(5));
                var activityBits  = data.Skip(9 + offset).First();
                var activityBytes = data.Skip(10 + offset).Take(4).ToArray();
                var isMortality   = (activityBits & 1) == 1;
                var activity1     = (activityBits & 2) == 2 ? activityBytes[0] : (byte?)null;
                if (isMortality)
                {
                    var mortTime      = Time(activityBytes.Skip(1));
                    var activityData1 = new LotekActivityData(refTime, activity1, null, null, null);
                    return(new LotekData(gpsData, mortTime, activityData1));
                }
                var activity2     = (activityBits & 4) == 4 ? activityBytes[1] : (byte?)null;
                var activity3     = (activityBits & 8) == 8 ? activityBytes[2] : (byte?)null;
                var activity4     = (activityBits & 16) == 16 ? activityBytes[3] : (byte?)null;
                var activityData2 = new LotekActivityData(refTime, activity1, activity2, activity3, activity4);
                return(new LotekData(gpsData, activityData2));
            }
            return(new LotekData());
        }
Пример #3
0
 public LotekData(LotekGpsData gpsData, LotekActivityData activityData)
     : this()
 {
     GpsData      = gpsData;
     ActivityData = activityData;
 }