/// <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)); }
/// <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); }