ToyBox (Sensor)

En este ejemplo de programa HOST se reciben mensajes (en la funcion eventoTAC) del dispositivo ToyBox, indicando cambios en el estado del sensor del juguete conectado al dispositivo ToyBox 0. El estado de un sensor de juguete solo puede ser activo (1) o desactivo (0)

 

Fichero TUIML.xml

<juguemos>
  <token name="toybox">
   <constraint name="boton" type= "0D" >
     <tac subtoken="0"/>
   </constraint> 
   <subtoken idG = "0"/>
 </token> 
</juguemos>

Codigo Host en Proccessing

int ANCHO=1280; //definir valores segun tamaño pantalla destino
int ALTO=768;

TACAPI miAPI;
DisplaysHost displaysClient;



void setup() {
 
 // Keystone will only work with P3D or OPENGL renderers, 
 // since it relies on texture mapping to deform
 //fullScreen( P3D);
 size(80, 60, P3D); 
 frameRate(16);
 
 //definicion de la API
 miAPI = new TACAPI();
 
 //virtual screens
 displaysClient = new DisplaysHost("host"); 
 
}

void draw() {
 
 displaysClient.beginDraw();
 //Programacion Juego
 
 displaysClient.endDraw();
}

void eventoTAC(TAC ta) {
 //tratamiento de tacs
 if(ta.getTokenName().equals("toybox") && ta.getSubtokenName().equals("0")) {
 if(ta.getValores().get(0) == 1)
 println("Boton pulsado");
 else
 println("Boton no pulsado");
 }
}

void mensajeRecibido(OscMessage theOscMessage) {
 //tratamiento mensaje osc
}

void keyPressed() {
 switch(key) { 
 case ESC: 
 displaysClient.disconnect();
 super.stop();
 break;
 }
}


Retos de aprendizaje

  1. Hacer que el display 1 emita un sonido cuando se active el sensor del juguete
  2. integrar otro dispositivo toybox, y que cada uno emita un sonido distonto en display 1 cuando se active el juguete

 


Documentación

  • Clase TAC

A continuación se presenta la clase TAC con sus diversas funciones:

ATRIBUTOS

String tokenName: Token al que pertenece el tac. Si el token es un sensor, <tokenName> es el nombre del sensor (tabletop, kinect…). Si el token es un objeto con áreas asociadas, <tokenName> = idG_Objeto + “_” + idS_Objeto

String consName: Nombre del constraint

String manipulación: Valor: “add”

String idG: id general del subtoken

String idS: id de sesión del subtoken

String idSToken: id de sesión del Token. Si el Token es un sensor y no un objeto, su valor es “–”.

ArrayList<Float> valores: 1 valor

MÉTODOS

String getTokenName() // devuelve el nombre del token

String getManipulacion()  // devuelve la manipulacion

ArrayList<Float> getValores() //devuelve la lista de valores:  1 valor (0 = remove, 1 = add)

String getConstraintName() // devuelve el nombre del constraint

String getSubtokenName() // devuelve el ID general

String getSubtokenIDS() // devuelve el ID de sesión

String getIDSToken() // devuelve el ID de sesión del Token

void info()  // escribe por pantalla la información del TAC