private async Task UpdateTemperature()
        {
            AndorTempControlled camct = CameraAs <AndorTempControlled>();

            if (camct != null)
            {
                if (TemperatureCts != null)
                {
                    TemperatureCts.Cancel();
                }
                TemperatureCts = new CancellationTokenSource();

                if (numericTemp.Value > camct.Temperature)
                {
                    labelTemperature.Text = "Warming";
                }
                if (numericTemp.Value < camct.Temperature)
                {
                    labelTemperature.Text = "Cooling";
                }
                labelTemperature.BackColor = Color.Red;

                await camct.StabilizeTemperatureAsync((int)numericTemp.Value, TemperatureCts.Token); // Wait for 3 deg threshold

                LogTextBox.AppendText("ANDOR: Temp stabilizing...\r\n");
                labelTemperature.BackColor = Color.Gold;
                if (numericTemp.Value > camct.Temperature)
                {
                    labelTemperature.Text = "Warming";
                }
                if (numericTemp.Value < camct.Temperature)
                {
                    labelTemperature.Text = "Cooling";
                }

                await camct.StabilizeTemperatureAsync(TemperatureCts.Token); // Wait for driver signal

                LogTextBox.AppendText("Ready.\r\n");
                labelTemperature.BackColor = Color.RoyalBlue;
                UpdateTemperatureLabel();
                TemperatureCts = null;
            }
        }