Exemplo n.º 1
0
        private void timerIdentify_Tick(object sender, EventArgs e)
        {
            for (int i = 0; i < listViewDevices.Items.Count; i++)
            {
                int          id     = (int)listViewDevices.Items[i].Tag;
                DeviceStatus device = devices[id];

                if (identify.ContainsKey(id))
                {
                    int value = identify[id];
                    identify[id] = value - 1;
                    OmApi.OM_LED_STATE led;

                    if (value == 0)
                    {
                        identify.Remove(id);

                        // Emulate setup task LED colours
                        if (device.Mode == DeviceStatus.DeviceMode.Complete)
                        {
                            led = OmApi.OM_LED_STATE.OM_LED_MAGENTA;
                        }
                        else if (device.Mode == DeviceStatus.DeviceMode.Failed)
                        {
                            led = OmApi.OM_LED_STATE.OM_LED_BLUE;
                        }
                        else
                        {
                            led = OmApi.OM_LED_STATE.OM_LED_AUTO;
                        }
                    }
                    else
                    {
                        bool phase = (value & 1) != 0;
                        led = phase ? OmApi.OM_LED_STATE.OM_LED_WHITE : OmApi.OM_LED_STATE.OM_LED_OFF;
                    }

                    if (device.Connected)
                    {
                        device.GetDevice().SetLed(led);
                    }
                }
            }
        }