/// <summary>
 /// Journey state  - on C4Evo, when Ignition is ON – On C4Dongle, when RPM is not available (No RPM or C4Dongle offline)
 /// true if Journey on, false if not
 /// </summary>
 public static bool? GetJourneyState(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(Easyconnect.MDI_JOURNEY_STATE.Key))
         return null;
     return trackingData.GetFieldAsInt(Easyconnect.MDI_JOURNEY_STATE.Key) == 0 ? false : true;
 }
 /// <summary>
 /// Y-axis value at the begin of pattern detection
 /// </summary>
 /// <returns>mG</returns>
 public static int? GetAccYBegin(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(DriverBehavior.BEHAVE_ACC_Y_BEGIN.Key))
         return null;
     return trackingData.GetFieldAsInt(DriverBehavior.BEHAVE_ACC_Y_BEGIN.Key);
 }
 /// <summary>
 /// Time since the beginning of the Journey while vehicle is stopped in milliseconds
 /// (No movement detected by accelerometers during acceleroMvtDetector.no_movement_threshold)
 /// </summary>
 public static int? GetIdleJourney(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(Easyconnect.MDI_IDLE_JOURNEY.Key))
         return null;
     return trackingData.GetFieldAsInt(Easyconnect.MDI_IDLE_JOURNEY.Key);
 }
 /// <summary>
 /// Gives speed directly computed from the OBD stack (km/h)
 /// </summary>
 public static int? GetObdSpeed(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(CarDiagnostic.MDI_OBD_SPEED.Key))
         return null;
     return trackingData.GetFieldAsInt(CarDiagnostic.MDI_OBD_SPEED.Key);
 }
 /// <summary>
 /// Number of overspeeds since the beginning of the Journey
 /// </summary>
 public static int?GetOverspeedCounter(ITracking trackingData)
 {
     if (trackingData == null)
     {
         throw new NullReferenceException("ITracking is not initialize");
     }
     if (!trackingData.ContainsField(Easyconnect.MDI_OVERSPEED_COUNTER.Key))
     {
         return(null);
     }
     return(trackingData.GetFieldAsInt(Easyconnect.MDI_OVERSPEED_COUNTER.Key));
 }
Ejemplo n.º 6
0
        /// <summary>
        /// Gives total fuel consumption directly computed from the OBD stack (fuel consumption is estimated) (Liter)
        /// </summary>
        public static int?GetObdFuel(ITracking trackingData)
        {
            if (trackingData == null)
            {
                throw new NullReferenceException("ITracking is not initialize");
            }

            if (!trackingData.ContainsField(CarDiagnostic.MDI_OBD_FUEL.Key))
            {
                return(null);
            }
            return(trackingData.GetFieldAsInt(CarDiagnostic.MDI_OBD_FUEL.Key));
        }
 private bool IsInMovement(ITracking current, ITracking previous)
 {
     if (current.Longitude != 0.0 && previous.Longitude != 0.0)
     {
         return(MinDistanceDetected(previous, current));
     }
     else
     {
         if (current.ContainsField(MD.CloudConnect.FieldDefinition.MVT_STATE.Key))
         {
             return(current.IsMoving);
         }
         else if (current.SpeedKmPerHour > 5.0)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
 private bool IsInMovement(ITracking current, ITracking previous)
 {
     if (current.Longitude != 0.0 && previous.Longitude != 0.0)
     {
         return MinDistanceDetected(previous, current);
     }
     else
     {
         if (current.ContainsField(MD.CloudConnect.FieldDefinition.MVT_STATE.Key))
             return current.IsMoving;
         else if (current.SpeedKmPerHour > 5.0)
             return true;
         else
             return false;
     }
 }
        private void FillTrackingDataUserChoice(ITracking data, TrackingData history, bool updateCache = true)
        {
            bool fixMovementValue = false;

            foreach (string field in _fieldsUse)
            {
                /* Fix Movement before to update data cache */
                if (field == MD.CloudConnect.FieldDefinition.MVT_STATE.Key && _fixMoving)
                {
                    fixMovementValue = IsInMovement(data, history);

                    if (data.ContainsField(MD.CloudConnect.FieldDefinition.MVT_STATE.Key))
                        data.IsMoving = fixMovementValue;
                    else if (history.ContainsField(MD.CloudConnect.FieldDefinition.MVT_STATE.Key))
                        history.IsMoving = fixMovementValue;
                }
                /* End Fix Movement*/

                if (data.ContainsField(field))
                {
                    if (updateCache)
                    {
                        UpdateCache(history, field, data);
                    }
                }
                else
                {
                    if (history.fields.ContainsKey(field))
                        ((TrackingData)data).fields.Add(field, history.fields[field]);
                    else
                        ((TrackingData)data).fields.Add(field, new Field());
                }
            }

            if (((TrackingData)data).location == null)
            {
                ((TrackingData)data).location = (double[])history.location.Clone();
            }
            else
            {
                history.location[0] = data.Longitude;
                history.location[1] = data.Latitude;
            }
        }
 /// <summary>
 /// unique event id per session (reset at reboot)
 /// </summary>
 public static int? GetUniqueID(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(DriverBehavior.BEHAVE_UNIQUE_ID.Key))
         return null;
     return trackingData.GetFieldAsInt(DriverBehavior.BEHAVE_UNIQUE_ID.Key);
 }
 /// <summary>
 /// Speed over ground		
 /// </summary>
 /// <returns>Knots * 10^3</returns>
 public static int? GetSpeedPeak(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(DriverBehavior.BEHAVE_GPS_SPEED_PEAK.Key))
         return null;
     return trackingData.GetFieldAsInt(DriverBehavior.BEHAVE_GPS_SPEED_PEAK.Key);
 }
 /// <summary>
 /// Longitude in degrees
 /// </summary>
 public static double? GetLongitude(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(DriverBehavior.BEHAVE_LONG.Key))
         return null;
     return trackingData.GetFieldAsInt(DriverBehavior.BEHAVE_LONG.Key) / 100000.0;
 }
 /// <summary>
 /// Get course of degrees
 /// </summary>
 public static double? GetHeadingPeak(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(DriverBehavior.BEHAVE_GPS_HEADING_PEAK.Key))
         return null;
     return trackingData.GetFieldAsInt(DriverBehavior.BEHAVE_GPS_HEADING_PEAK.Key) / 1000.0;
 }
 /// <summary>
 /// Number of overspeeds since the beginning of the Journey
 /// </summary>
 public static bool? GetTowAway(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(Easyconnect.MDI_TOW_AWAY.Key))
         return null;
     return trackingData.GetFieldAsInt(Easyconnect.MDI_TOW_AWAY.Key) == 0 ? false : true;
 }
 /// <summary>
 /// Number of overspeeds since the beginning of the Journey
 /// </summary>
 public static int? GetOverspeedCounter(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(Easyconnect.MDI_OVERSPEED_COUNTER.Key))
         return null;
     return trackingData.GetFieldAsInt(Easyconnect.MDI_OVERSPEED_COUNTER.Key);
 }
 /// <summary>
 ///Returns the vehicle number identification retrieved from the OBD stack
 /// </summary>
 public static string GetObdVin(ITracking trackingData)
 {
     if (trackingData == null)
         throw new NullReferenceException("ITracking is not initialize");
     if (!trackingData.ContainsField(CarDiagnostic.MDI_OBD_VIN.Key))
         return null;
     return trackingData.GetFieldAsString(CarDiagnostic.MDI_OBD_VIN.Key);
 }