private void OnServiceInstanceDiscovered(object sender, ServiceInstanceDiscoveryEventArgs args) { if (args.ServiceInstanceName.Labels.Any(x => x.Contains("_webthing"))) { _name = args.ServiceInstanceName; } }
void OnServiceInstanceDiscovered(object sender, ServiceInstanceDiscoveryEventArgs e) { try { var msg = e.Message; // Is it our service? var qsn = ServiceName + ".local"; if (!e.ServiceInstanceName.EndsWith(qsn)) { return; } var addresses = GetAddresses(msg) .Where(a => a.PeerId != LocalPeer.Id) .ToArray(); if (addresses.Length > 0) { PeerDiscovered?.Invoke(this, new Peer { Id = addresses[0].PeerId, Addresses = addresses }); } } catch (Exception ex) { log.Error("OnServiceInstanceDiscovered error", ex); // eat it } }
private void DeviceDiscovered(object?sender, ServiceInstanceDiscoveryEventArgs e) { var foo = e.Message; if (!foo.ToString().Contains("_wled")) { return; } var name = e.ServiceInstanceName.ToString(); if (name.Contains(".local")) { name = name.Split(".")[0]; } if (_ids.Contains(name)) { return; } try { var rr = e.Message.AdditionalRecords; var ip = string.Empty; var id = string.Empty; foreach (var msg in rr) { switch (msg.Type) { // Extract IP case DnsType.A: ip = msg.ToString().Split(" ").Last(); break; // Extract Mac case DnsType.TXT: id = msg.ToString().Split("=")[1]; break; } } if (!string.IsNullOrEmpty(id) && !string.IsNullOrEmpty(ip)) { var nData = new WledData(id, ip) { Name = name }; ControlService.AddDevice(nData).ConfigureAwait(false); _ids.Add(id); } else { Log.Warning("Unable to get data for wled."); } } catch (Exception p) { Log.Warning("WLED Discovery Exception: " + p.Message); } }
private void Sd_ServiceInstanceDiscovered(object sender, ServiceInstanceDiscoveryEventArgs e) { logger.Info($"service instance '{e.ServiceInstanceName}' discovered"); var args = GetServiceInstanceEventArgs(e); ServiceInstanceDiscovered?.Invoke(sender, args); }
private void DeviceDiscovered(object?sender, ServiceInstanceDiscoveryEventArgs e) { var foo = e.Message; if (!foo.ToString().Contains("_glimmr")) { return; } var name = e.ServiceInstanceName.ToString(); if (name.Contains(".local")) { name = name.Split(".")[0]; } if (_ids.Contains(name)) { return; } try { var rr = e.Message.AdditionalRecords; var ip = string.Empty; var id = string.Empty; foreach (var msg in rr) { switch (msg.Type) { // Extract IP case DnsType.A: Log.Debug("A: " + msg); ip = msg.ToString().Split(" ").Last(); break; // Extract Mac case DnsType.TXT: Log.Debug("TXT: " + msg); id = msg.ToString().Split("mac=")[1]; break; } } if (!string.IsNullOrEmpty(id) && !string.IsNullOrEmpty(ip)) { var sd = DataUtil.GetSystemData(); if (id == sd.DeviceId) { return; } if (name == id) { name = "Glimmr-" + id[..3];
private void NanoleafDiscovered(object?sender, ServiceInstanceDiscoveryEventArgs e) { var name = e.ServiceInstanceName.ToString(); var nData = new NanoleafData { IpAddress = string.Empty }; if (!name.Contains("nanoleafapi", StringComparison.InvariantCulture)) { return; } var devName = name.Split(".")[0]; devName = devName[Math.Max(0, devName.Length - 3)..];
void OnServiceInstanceDiscovered(object sender, ServiceInstanceDiscoveryEventArgs e) { var msg = e.Message; // Is it our service? var qsn = ServiceName + ".local"; if (!e.ServiceInstanceName.EndsWith(qsn)) { return; } foreach (var address in GetAddresses(msg)) { if (LocalPeer.Id == address.PeerId) { continue; } PeerDiscovered?.Invoke(this, new PeerDiscoveredEventArgs { Address = address }); } }
private void Sd_ServiceInstanceDiscovered(object sender, ServiceInstanceDiscoveryEventArgs e) => ParseMessage(e.Message);