예제 #1
0
 /// <summary>
 /// Constructor
 /// </summary>
 public TruckingVSAPIJobData(Ets2Telemetry telemetryData, ETruckingVSAPIJobDataType type)
 {
     this.telemetryData = telemetryData;
     this.type          = type;
 }
예제 #2
0
 /// <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;
 }