private void OnKickDeviceChanged(KickDeviceInfo device) { BeginInvoke(new Action(() => { var index = cboDevices.SelectedIndex; cboDevices.DataSource = AllDevices.ToArray(); cboDevices.SelectedIndex = index; if (ActiveDevice == device) UpdateUI(); })); }
private void OnNewKickDevice(KickDeviceInfo device) { BeginInvoke(new Action(() => { var devices = AllDevices.ToArray(); cboDevices.DataSource = devices; cboDevices.SelectedIndex = devices.Count() - 1; })); }
private void ProcessUdpPacket(KickDeviceInfo device, UdpPacket request) { switch (request.Command) { case 0x01: var response = new UdpPacket(Address.All, 0x83, null); RegisterUdpPacketToSend(response); break; case 0x06: device.EV = request.Data[0]; if (OnKickDeviceChanged != null) OnKickDeviceChanged(device); break; case 0x81: var rgbBytes = request.Data.Take(3).ToArray(); var nameBytes = request.Data.Skip(3).TakeWhile(b => b > 0x0).ToArray(); device.Name = Encoding.ASCII.GetString(nameBytes); device.Color = new RGBColor(rgbBytes[0], rgbBytes[1], rgbBytes[2]); if (OnKickDeviceChanged != null) OnKickDeviceChanged(device); break; case 0x83: device.EmitterTemperature = Convert.ToSByte(request.Data[0]); device.Power = request.Data[1]; if (OnKickDeviceChanged != null) OnKickDeviceChanged(device); break; case 0x87: device.FirmwareVersion = new Version(request.Data[0], request.Data[1]); device.HardwareVersion = new Version(request.Data[2], request.Data[3]); device.SerialNumber = request.Data.Skip(4).Take(4).ToHexString() + "-" + request.Data.Skip(8).Take(4).ToHexString() + "-" + request.Data.Skip(12).Take(4).ToHexString() + "-" + request.Data.Skip(16).Take(4).ToHexString(); if (OnKickDeviceChanged != null) OnKickDeviceChanged(device); break; case 0x89: device.EmitterTemperature = Convert.ToSByte(request.Data[0]); if (OnKickDeviceChanged != null) OnKickDeviceChanged(device); break; case 0x90: device.Power = request.Data[0]; if (OnKickDeviceChanged != null) OnKickDeviceChanged(device); break; case 0x91: device.EV = request.Data[0]; device.Color = new RGBColor(request.Data[9], request.Data[10], request.Data[11]); device.FirmwareVersion = new Version(request.Data[12], request.Data[13]); device.HardwareVersion = new Version(request.Data[14], request.Data[15]); device.Name = Encoding.ASCII.GetString(request.Data.Skip(16).TakeWhile(b => b > 0x0).ToArray()); if (OnKickDeviceChanged != null) OnKickDeviceChanged(device); break; default: break; } }