roNetworkDiscovery
Este objeto permite el descubrimiento zeroconf de dispositivos en la red local (incluidos otros reproductores BrightSign) mediante mDNS. Otros reproductores BrightSign deben ejecutar una instancia de roNetworkAdvertisementroNetworkAdvertisement para ser descubiertos mediante el objeto roNetworkDiscovery .
Creación del objeto: El objeto roNetworkDiscovery se crea sin parámetros.
CreateObject("roNetworkDiscovery") ifNetworkDiscovery
Search(parameters As roAssociativeArray) As Boolean
Busca reproductores BrightSign en la red local. Un reproductor solo responderá a la búsqueda si actualmente está ejecutando una instancia de roNetworkAdvertisement. Los resultados de la búsqueda se publicarán en el puerto de mensajes adjunto. Los parámetros de búsqueda se pasan a este método como un arreglo asociativo que contiene los siguientes valores:
- tipo: El tipo de servicio. Si se omite esta entrada, la búsqueda utilizará de forma predeterminada "_http._tcp".
- protocolo: El protocolo IP. Los valores aceptados son "IPv4" y "IPv6". También puede omitir esta entrada si desea buscar reproductores que utilicen cualquiera de los dos protocolos.
ifMessagePort
SetPort(port As roMessagePort)
Publica eventos en el puerto de mensajes adjunto. Consulte la sección Tipos de eventos a continuación para obtener más detalles.
ifUserData
SetUserData(user_data As Object)
Establece los datos de usuario que se devolverán cuando se generen eventos.
GetUserData() As Object
Devuelve los datos de usuario que se establecieron previamente mediante SetUserData(). Devolverá Inválido si no se ha establecido ningún dato.
Tipos de eventos
El objeto roNetworkDiscovery puede publicar tres tipos de objetos de evento en el puerto de mensajes adjunto:
- roNetworkDiscoveryResolvedEvent: Se genera cuando un host se resuelve completamente.
- roNetworkDiscoveryCompletedEvent: Se genera cuando la búsqueda se completa.
- roNetworkDiscoveryGeneralEvent: Se genera para eventos distintos de los dos anteriores. Este evento ocurre raramente.
Los tres objetos de evento ofrecen los métodos SetUserData(), GetUserData() y GetData() . Use GetData() para recuperar un arreglo asociativo de resultados. Para el objeto roNetworkDiscoveryResolvedEvent, llamar a GetData() devolverá las siguientes entradas:
- protocolo: La familia de protocolos de red que se utilizó para el descubrimiento, ya sea "IPv4" o "IPv6". Tenga en cuenta que esta no es necesariamente la familia de direcciones para la dirección devuelta; es posible que las direcciones IPv6 se anuncien mediante un transporte IPv4, o viceversa.
- host_name: El nombre de host del reproductor
- nombre: El nombre del servicio
- txt: Un arreglo asociativo que contiene entradas de texto arbitrarias especificadas durante la creación de la instancia de roNetworkAdvertisement .
- dominio: El dominio del reproductor
- tipo: El tipo de servicio
- dirección: La dirección IPv4 o IPv6
El siguiente script busca un reproductor que ejecute una instancia de roNetworkAdvertisement e imprime los resultados del descubrimiento.
rn = CreateObject("roNetworkDiscovery")
mp = CreateObject("roMessagePort")
rn.SetPort(mp)
params = {}
rn.Search(params)
complete = false
while not complete
ev = mp.WaitMessage(10000)
if ev = invalid then
stop
end if
if type(ev) = "roNetworkDiscoveryCompletedEvent" then
print "roNetworkDiscoveryCompletedEvent"
end if
if type(ev) = "roNetworkDiscoveryGeneralEvent" then
print "roNetworkDiscoveryGeneralEvent"
end if
if type(ev) = "roNetworkDiscoveryResolvedEvent" then
complete = true
data = ev.GetData()
print "DATA:"; data
print "DONE"
textdata = data[ "txt" ]
if textdata <> invalid then
print "TEXT: "; textdata
endif
end if
end while