#Hololens – HoloToolkit Sharing: compartir Hologramas entre diferentes devices (Post 1 de N o lo que me cueste hacerlo funcionar …)

Hola !

Ahora que he encontrado un 2do set de Hololens para trabajar aquí en Toronto, llega el momento de volver a Unity3D y a HoloToolkit. Dentro del mismo, es momento de probar una de las features menos documentadas que hay: Sharing Holograms.

Una vez que hemos importado (de la forma correcta) el paquete de HoloToolkit Unity, podemos ver dentro de los Assets la carpeta Sharing.

Clipboard03.jpg

Este es el elemento que debemos agregar a nuestro proyecto de Unity para que el mismo tenga capacidades de “Sharing” con otras apps en Hololens. En las propiedades de este elemento vemos que el mismo utiliza un par de clases interesantes:

  • SharingStage.cs
  • SharingSessionTracker.cs
  • AutoJoinSession.cs
  • CustomMessages.cs

clipboard05

Como siempre, al faltar documentación relevante, os recomiendo ver el código de las mismas ya que es la forma más simple de comprender cómo funciona esta funcionalidad. Por ahora solo remarcar las propiedades de [Sharing Stage]

  • Client Role: define el tipo de cliente para una app de Sharing. Segun la documentación de la clase C#:

/// Set whether this app should be a Primary or Secondary client.
/// Primary: Connects directly to the Session Server, can create/join/leave sessions
/// Secondary: Connects to a Primary client. Cannot do any session management

  • Server Address y Server Port: La dirección IP y puerto del servidor que se utiliza para coordinar el sharing de información entre varios devices
  • Auto Discover Server: Solo con habilitar este check, nuestra app debería poder descubrir automáticamente un Sharing Server en la misma subnet. En mi caso, y tal vez por las restricciones de mi red local, no he podido descubrirlo automáticamente, por lo que he tenido que configurar a mano la dirección IP y el puerto.

Después de leer todo esto, llega el momento de preguntarse donde está Sharing Service. El server es un exe escondido en las entrañas del paquete de HoloToolkit.

$\HoloToolkit-Unity-master\External\HoloToolkit\Sharing\Server\SharingService.exe

Ahora ya podemos lanzar el executable y tener nuestro Sharing Service Up and Running.

Nota: Hay una opción para lanzar Sharing Service desde el menú de Unity. No he conseguido que funcione.

clipboard07

Ahora bien, más novedades, existen 2 formas de lanzar el Sharing Service

  • local, funcionando en modo app
  • servicio, funcionando como un servicio de Windows

clipboard09

Para este ejemplo lanzaré la app en modo local. En este momento podemos ver lo siguiente en la consola de comando

Clipboard11.jpg

C:\Hololens\Sharing\Server>SharingService.exe -local
Running Sharing Service locally. Enter ‘q’ to quit.
SharingService: ** Logging Session Began at 23:24:59, 10-6-2016
SharingService: ***********************************
SharingService: ****** Sharing Service OnStart ******
SharingService: ***********************************
SharingService: Server Info:
Build Version: 1.1.0.0
Schema Version: 15
SharingService: Listening for session list connections on port 20602 of all network devices of the local machine.
SharingService: Local IP addresses are:
SharingService: 172.16.80.1
SharingService: 192.168.0.19
SharingService: 169.254.80.80
SharingService: Created Session “Default” with ID 0 on port 20601

Cuando lanzamos una app creada que utilize el Asset de Sharing, con los valores correctamente configurados, podremos ver que el server detecta una nueva sesión y comienza a mostrar logs sobre la misma.

clipboard14

Pues bien, en el siguiente post sobre Sharing espero poder mostrar como 2 apps comparten y trabajan sobre un mismo holograma!

Saludos @ Toronto

El Bruno

References

Advertisements

3 thoughts on “#Hololens – HoloToolkit Sharing: compartir Hologramas entre diferentes devices (Post 1 de N o lo que me cueste hacerlo funcionar …)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s