Exemple #1
0
        /// <summary>
        /// Gets the OverdriveN temperature.
        /// </summary>
        /// <param name="type">The type.</param>
        /// <param name="sensor">The sensor.</param>
        private void GetODNTemperature(AtiAdlxx.ADLODNTemperatureType type, Sensor sensor)
        {
            // If a sensor isn't available, some cards report 54000 degrees C. 110C is expected for Navi, so 100 more than that should be enough to use as a maximum.
            const int maxTemperature = 210 * 1000;

            int temperature = 0;

            if (AtiAdlxx.ADL2_OverdriveN_Temperature_Get(_context, _adapterIndex, type, ref temperature) == AtiAdlxx.ADLStatus.ADL_OK && temperature < maxTemperature)
            {
                sensor.Value = 0.001f * temperature;
                ActivateSensor(sensor);
            }
            else
            {
                sensor.Value = null;
            }
        }
        /// <summary>
        /// Gets the OverdriveN temperature.
        /// </summary>
        /// <param name="type">The type.</param>
        /// <param name="sensor">The sensor.</param>
        /// <param name="minTemperature">The minimum temperature.</param>
        /// <param name="scale">The scale.</param>
        private void GetODNTemperature(AtiAdlxx.ADLODNTemperatureType type, Sensor sensor, double minTemperature = -200, double scale = 1)
        {
            // If a sensor isn't available, some cards report 54000 degrees C. 110C is expected for Navi, so 100 more than that should be enough to use as a maximum.
            int maxTemperature = (int)(210.0 / scale);

            minTemperature = (int)(minTemperature / scale);

            int temperature = 0;

            if (AtiAdlxx.ADL2_OverdriveN_Temperature_Get(_context, _adapterIndex, type, ref temperature) == AtiAdlxx.ADLStatus.ADL_OK && temperature > minTemperature && temperature < maxTemperature)
            {
                sensor.Value = (float)(scale * temperature);
                ActivateSensor(sensor);
            }
            else
            {
                sensor.Value = null;
            }
        }