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); } } } }