public FormTracker() { if (Tracker != null) { return; // Can only have one tracker } Tracker = this; InitializeComponent(); _statusTimer = new System.Timers.Timer(STATUS_JSON_CHECK_INTERVAL); _statusTimer.Elapsed += _statusTimer_Elapsed; _journalReader = new JournalReader(EDJournalPath()); _journalReader.InterestingEventOccurred += _journalReader_InterestingEventOccurred; FormLocator.ServerAddress = (string)radioButtonUseDefaultServer.Tag; InitStatusLocation(); InitCommanderName(); // Attach our form configuration saver _formConfig = new ConfigSaverClass(this, true); _formConfig.ExcludedControls.Add(textBoxCommanderName); _formConfig.ExcludedControls.Add(textBoxClientId); _formConfig.ExcludedControls.Add(textBoxStatusFile); _formConfig.SaveEnabled = true; _formConfig.RestoreFormValues(); buttonTest.Visible = System.Diagnostics.Debugger.IsAttached; CalculateWindowSizes(); this.Size = _configHidden; this.Text = Application.ProductName + " v" + Application.ProductVersion; groupBoxSRVTracker.Text = this.Text; if (!File.Exists("Race Manager.exe")) { buttonRaceTracker.Enabled = false; } radioButtonUseTimer.Checked = true; if (checkBoxAutoUpdate.Checked) { CheckForUpdate(); } if (checkBoxCaptureSRVTelemetry.Tag != null) { _vehicleTelemetry = new VehicleTelemetry((string)checkBoxCaptureSRVTelemetry.Tag, _commanderName); } else { _vehicleTelemetry = new VehicleTelemetry(); } VehicleTelemetry.SessionSaveFolder = textBoxTelemetryFolder.Text; if (checkBoxShowSRVTelemetry.Checked) { _vehicleTelemetry.DisplayTelemetry(); this.Size = _configShowing; tabControlSettings.SelectedIndex = 3; } }
private void onTelemetryReceived(VehicleTelemetry listOfTelemetry) { int vehicleId = listOfTelemetry.Vehicle.Id; Dictionary <TelemetryKey, TelemetryValue> dict = new Dictionary <TelemetryKey, TelemetryValue>(); lock (_latestValues) { if (!_latestValues.TryGetValue(vehicleId, out _)) { _latestValues.Add(vehicleId, new Dictionary <TelemetryKey, TelemetryValue>()); } } lock (_latestValues) { int count = listOfTelemetry.Telemetry.Count; for (int i = 0; i < count; i++) { Telemetry telemetry = listOfTelemetry.Telemetry[i]; if (telemetry.TelemetryField == null) { continue; } TelemetryKey key = TelemetryKeys.Register(telemetry.TelemetryField); var tv = TelemetryValue.MapValue(telemetry.Value); if (!_latestValues[vehicleId].ContainsKey(key)) { _latestValues[vehicleId].Add(key, tv); } else { _latestValues[vehicleId][key] = tv; } if (!dict.ContainsKey(key)) { dict.Add(key, tv); } else { dict[key] = tv; } } } if (_tlmCallBack != null) { foreach (KeyValuePair <TelemetryKey, TelemetryValue> entry in dict) { _tlmCallBack(vehicleId, entry.Key, entry.Value); } } }
void SetupVehicleComponents(VehicleController vehicle, bool enabled) { VehicleTelemetry vehicleTelemetry = vehicle.GetComponent <VehicleTelemetry>(); VehicleStandardInput vehicleInput = vehicle.GetComponent <VehicleStandardInput>(); VehicleDamage vehicleDamage = vehicle.GetComponent <VehicleDamage>(); if (vehicleInput != null) { if (m_commonInput != null) { if (overrideVehicleComponents) { vehicleInput.enabled = false; m_commonInput.enabled = true; m_commonInput.target = enabled ? vehicle : null; } else { vehicleInput.enabled = enabled; m_commonInput.enabled = false; } } else { vehicleInput.enabled = enabled; } } else { if (m_commonInput != null) { m_commonInput.enabled = true; m_commonInput.target = enabled ? vehicle : null; } } if (vehicleTelemetry != null) { if (m_commonTelemetry != null) { if (overrideVehicleComponents) { vehicleTelemetry.enabled = false; m_commonTelemetry.enabled = true; m_commonTelemetry.target = enabled ? vehicle : null; } else { vehicleTelemetry.enabled = enabled; m_commonTelemetry.enabled = false; } } else { vehicleTelemetry.enabled = enabled; } } else { if (m_commonTelemetry != null) { m_commonTelemetry.enabled = true; m_commonTelemetry.target = enabled ? vehicle : null; } } if (vehicleDamage != null) { vehicleDamage.enableRepairKey = enabled; } }