public override void Update()
        {
            int adlt = 0;

            if (ADL.ADL_Overdrive6_Temperature_Get(adapterIndex, ref adlt) == ADL.ADL_OK)
            {
                temperature.Value = 0.001f * adlt;
                ActivateSensor(temperature);
            }
            else
            {
                temperature.Value = null;
            }

            ADLOD6FanSpeedInfo adlf = new ADLOD6FanSpeedInfo();

            adlf.iSpeedType = ADL.ADL_OD6_FANSPEED_TYPE_RPM;
            if (ADL.ADL_Overdrive6_FanSpeed_Get(adapterIndex, ref adlf) == ADL.ADL_OK)
            {
                fan.Value = adlf.iFanSpeedRPM;
                ActivateSensor(fan);
            }
            else
            {
                fan.Value = null;
            }

            //adlf = new _ADLOD6FanSpeedValue();
            adlf.iSpeedType = ADL.ADL_OD6_FANSPEED_TYPE_PERCENT;
            if (ADL.ADL_Overdrive6_FanSpeed_Get(adapterIndex, ref adlf) == ADL.ADL_OK)
            {
                controlSensor.Value = adlf.iFanSpeedPercent;
                ActivateSensor(controlSensor);
            }
            else
            {
                controlSensor.Value = null;
            }

            ADLOD6CurrentStatus adlcs = new ADLOD6CurrentStatus();

            if (ADL.ADL_Overdrive6_CurrentStatus_Get(adapterIndex, ref adlcs) == ADL.ADL_OK)
            {
                if (adlcs.iEngineClock > 0)
                {
                    coreClock.Value = 0.01f * adlcs.iEngineClock;
                    ActivateSensor(coreClock);
                }
                else
                {
                    coreClock.Value = null;
                }

                if (adlcs.iMemoryClock > 0)
                {
                    memoryClock.Value = 0.01f * adlcs.iMemoryClock;
                    ActivateSensor(memoryClock);
                }
                else
                {
                    memoryClock.Value = null;
                }
                int curval, defaultval = 0;
                if (ADL.ADL_Overdrive6_VoltageControl_Get(adapterIndex, out curval, out defaultval) != ADL.ADL_OK)
                {
                    coreVoltage.Value = 0.001f * curval;
                    ActivateSensor(coreVoltage);
                }
                else
                {
                    coreVoltage.Value = null;
                }

                coreLoad.Value = Math.Min(adlcs.iActivityPercent, 100);
                ActivateSensor(coreLoad);
            }
            else
            {
                coreClock.Value   = null;
                memoryClock.Value = null;
                coreVoltage.Value = null;
                coreLoad.Value    = null;
            }
        }