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
- Hacer que el display 1 emita un sonido cuando se active el sensor del juguete
- 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