/// <summary> /// Constructor /// </summary> public TruckingVSAPIJobData(Ets2Telemetry telemetryData, ETruckingVSAPIJobDataType type) { this.telemetryData = telemetryData; this.type = type; }
/// <summary> /// Telemetry data event /// </summary> /// <param name="data">Data</param> /// <param name="newTimestamp">New timestamp</param> private void Telemetry_Data(Ets2Telemetry data, bool newTimestamp) { telemetryData = data; if (api != null) { if (data.Job.OnJob) { DateTime now = DateTime.Now; if (isJobRunning) { if ((now - lastUpdateTimestamp).TotalSeconds >= 60.0) { lastUpdateTimestamp = now; string job_data = GetJobData(data); if (jobData == job_data) { api.QueueJobData(new TruckingVSAPIJobData(data, ETruckingVSAPIJobDataType.DataUpdated)); } else { takeScreenshot = true; ETruckingVSAPIJobDataType api_data_type = ((lastJobDistance <= 2000.0f) ? ETruckingVSAPIJobDataType.Finished : ETruckingVSAPIJobDataType.Canceled); if (api_data_type == ETruckingVSAPIJobDataType.Canceled) { totalRoute -= api.Distance; totalWeight -= api.Weight; totalYield -= api.Yield; } api.QueueJobData(new TruckingVSAPIJobData(data, api_data_type)); lastUpdateTimestamp = now; jobData = job_data; ClearCharts(); totalRoute += data.Job.NavigationDistanceLeft; totalWeight += data.Job.Mass; totalYield += data.Job.Income; api.QueueJobData(new TruckingVSAPIJobData(data, ETruckingVSAPIJobDataType.New)); } } } else { if (data.Job.NavigationDistanceLeft > float.Epsilon) { isJobRunning = true; lastUpdateTimestamp = now; jobData = GetJobData(data); ClearCharts(); totalRoute += data.Job.NavigationDistanceLeft; totalWeight += data.Job.Mass; totalYield += data.Job.Income; api.QueueJobData(new TruckingVSAPIJobData(data, ETruckingVSAPIJobDataType.New)); } } lastJobDistance = data.Job.NavigationDistanceLeft; } else if (isJobRunning) { isJobRunning = false; takeScreenshot = true; ETruckingVSAPIJobDataType api_data_type = ((lastJobDistance <= 2000.0f) ? ETruckingVSAPIJobDataType.Finished : ETruckingVSAPIJobDataType.Canceled); if (api_data_type == ETruckingVSAPIJobDataType.Canceled) { totalRoute -= api.Distance; totalWeight -= api.Weight; totalYield -= api.Yield; } api.QueueJobData(new TruckingVSAPIJobData(data, (lastJobDistance <= 2000.0f) ? ETruckingVSAPIJobDataType.Finished : ETruckingVSAPIJobDataType.Canceled)); } } updateTelemetryData = true; }