En la última entrada de esta serie veremos como hacer un programa para el móvil que visualice continuamente los datos recibidos desde el PC. Es necesario antes empezar tener instalado correctamente el entorno de programación Eclipse, como se explicaba en las entradas «Instalar Eclipse para programa en Android»
Empezamos un proyecto nuevo como en el caso del «Hola Mundo»:
Para poder usar el dispositivo bluetooth del teléfono, lo primero es poner los permisos adecuados en el fichero AndroidManifest.xml. (Debajo de <uses sdk …/> )
<uses-permission android:name=»android.permission.BLUETOOTH» />
<uses-permission android:name=»android.permission.BLUETOOTH_ADMIN» />
<uses-permission android:name=»android.permission.WAKE_LOCK» />
También he añadido WAVE_LOCK para poder impedir el bloqueo del teléfono desde el programa.
Ahora diseñamos la pantalla en res>layout>activity_main.xml
Borramos el texto Hello World! y añadimos ocho RadioButton, uno para cada bit del Byte de entradas que estamos leyendo desde el PC. Con el botón derecho del ratón desplegamos el menú y pulsamos en Edit Text para cambiar el texto que aparece a la derecha del botón, vamos poniendo Bit 7, Bit 6 …
También con el botón derecho vamos cambiando el ID (Edit ID) y ponemos blBit7, blBit6 … Este identificador se usará luego en el programa para poder acceder al botón.
Aparecerán alarmas, porque estamos programando «mal» las cadenas de caracteres en el xml. Deberíamos crear un string en el fichero strings.xml para cada cadena de texto y luego usar el string creado en lugar de la cadena. Esto facilitaría más adelante el crear traducciones del programa o modificar los textos de la pantalla, pero en para este ejemplo vamos a optar por la simplicidad y poner directamente los textos.
Después de meter los ocho RadioButton, añadimos un Button «Conectar» para iniciar la conexión Bluetooth y una cadena Large Text para mostrar el número de la entrada que estamos viendo. Nos queda una pantalla como esta.
Ahora añadimos una clase nueva en la carpeta src, con el nombre Bluetooth donde pondremos todas las funciones de comunicación. La podemos ver en el zip que he puesto al final de esta entrada.
Básicamente conectamos al dispositivo que configuraremos en el main activity y abrimos un socket al servicio Bluetooth con UUID = 00001101-0000-1000-8000-00805F9B34FB. Este identificador corresponde a una comunicación serie que es lo que queremos. Podemos ver más servicios disponibles por ejemplo en esta página: http://kunyichen.wordpress.com/2007/06/08/bluetooth-service-uuid-list/
Una vez conectado al servicio nos quedamos esperando la llegada de datos y cuando llega un retorno de carro se lo enviamos a la actividad principal.
En la actividad principal (Main), hay que configurar la dirección del adaptador Bluetooth de nuestro ordenador para que todo funcione.
String address = «xx:xx:xx:xx:xx:xx»;
Hay que enlazar los IDs de la pantalla con las variables declaradas en Main.
mBTStatus = (TextView) findViewById(R.id.txtEstadoBT);
txtEntrada = (TextView) findViewById(R.id.txtEntrada);
blBit[0] = (RadioButton) findViewById(R.id.blBit0);…
Para recibir las pulsaciones de un botón ponemos un gestor del eventos
bpConectar = (Button) findViewById(R.id.bpConectar);
bpConectar.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
BTConnect();
}
});
Utilizamos mensajes entre Bluetooth y Main para pasar los datos recibidos a la actividad principal, los recogemos en la función mHandler() .. case MESSAGE_READ: y activamos las luces de acuerdo a los datos.
Aquí tenemos el programa terminado.
S7IHM Eclipse sólo visible para usuarios registrados
Conectamos el móvil por USB y ejecutamos el programa (Ctrl+F11). Si nos funciono la prueba de comunicación Bluetooth del capítulo anterior y hemos modificado correctamente la dirección MAC del adaptador del PC en el programa, al pulsar el botón de conectar nos mostrará un mensaje «Conectado a : xxxxx».
Ahora arrancamos el programa de visual basic en el pc y, si estamos conectados al autómata, empezaremos a ver una copia del byte de entradas elegido en la pantalla del teléfono. Si no hay conexión al autómata, se verán parpadear los ocho bits.
FIN
3 pings
[…] Basta modificar ligeramente la aplicación que ya realizamos en la entrada “Conectandose al autómata con el móvil (4/4) – Eclipse“ adaptando el aspecto de la pantalla y eliminando lo que sobra. El resultado lo adjunto a […]