示例#1
0
        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;
            }
        }
示例#2
0
        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;
            }
        }