public async Task ChangeBridgeSettings() { if (SelectedBridge == null) { return; } Form_BridgeSettings frs = new Form_BridgeSettings { Owner = Application.Current.MainWindow }; await frs.Initialize(SelectedBridge); if (frs.ShowDialog() == true) { Philips_Hue.BridgeObject.BridgeObjects.BridgeSettings bresult = await SelectedBridge.GetBridgeSettingsAsyncTask(); if (bresult != null) { string newname = bresult.name; if (SelectedBridge.Name != newname) { SelectedBridge.Name = newname; ListBridges[ListBridges.IndexOf(SelectedBridge)].Name = newname; Bridge selbr = SelectedBridge; SelectedBridge = null; SelectedBridge = selbr; } await RefreshCurrentListHueObject(); RaisePropertyChanged("UpdateAvailable"); } } }
private static void _bgw_DoWork(object sender, DoWorkEventArgs e) { string mac = e.Argument.ToString(); IPAddress ip = IPAddress.Parse(GetLocalIPAddress()); byte[] ipArray = ip.GetAddressBytes(); byte currentip = ipArray[3]; e.Result = null; for (byte x = 2; x <= 254; x++) { if (_bgw.CancellationPending) { log.Info("Bridge lookup cancelled."); e.Cancel = true; break; } if (x == currentip) { continue; } ipArray[3] = x; _bgw.ReportProgress(0, new ProgressReport(new IPAddress(ipArray), x)); HueHttpClient.Timeout = 50; if (_bgw.CancellationPending) { break; } HttpResult comres = HueHttpClient.SendRequest(new Uri($@"http://{new IPAddress(ipArray)}/api/config"), WebRequestType.Get); Philips_Hue.BridgeObject.BridgeObjects.BridgeSettings desc = new Philips_Hue.BridgeObject.BridgeObjects.BridgeSettings(); if (comres.Success) { desc = Serializer.DeserializeToObject <Philips_Hue.BridgeObject.BridgeObjects.BridgeSettings>(comres.Data); // try to deserialize the received message. if (desc == null) { continue; // if the deserialisation didn't work it means this is not a bridge continue with next ip. } if (desc.mac == mac) { e.Result = new IPAddress(ipArray); break; } } if (e.Result != null) { _bgw.ReportProgress(0, new ProgressReport(new IPAddress(ipArray), 254)); break; } } // Restore the timeout to the original value HueHttpClient.Timeout = WinHueSettings.settings.Timeout; }
public async Task Initialize() { List <IHueObject> objects = await BridgesManager.Instance.SelectedBridge.GetAllObjectsAsync(); _bs = await BridgesManager.Instance.SelectedBridge.GetBridgeSettingsAsyncTask(); _listAvailableHueObject.AddRange(objects); }
public async Task Initialize(Bridge bridge) { _bridge = bridge; List <IHueObject> objects = await HueObjectHelper.GetBridgeDataStoreAsyncTask(bridge); _bs = await bridge.GetBridgeSettingsAsyncTask(); _listAvailableHueObject.AddRange(objects); }
public async Task Initialize(Bridge bridge) { _bridge = bridge; List <IHueObject> objects = await _bridge.GetAllObjectsAsync(WinHueSettings.settings.ShowHiddenScenes, true); _bs = await _bridge.GetBridgeSettingsAsyncTask(); _listAvailableHueObject.AddRange(objects); }