Pequeño análisis del proyecto
Hemos diseñado una pequeño análisis del proyecto:
El proyecto va a estar dividido en 3 partes o capas:
· Interfaz
· Gestión de imágenes
· Proceso bluetooth
INTERFAZ
Está pensado hacer una interfaz con MONO y le metemos una cadena que irá a parar a la siguiente capa (Gestión de imágenes). Y recibirá la imagen totalmente hecha por parte de la capa de Gestión de imágenes.
GESTIÓN DE IMÁGENES
La capa de imágenes recibe la cadena y la procesamos para hacer el cartel completo para devolvérselo a la Interfaz.
Habrá que consultar ImageMagic ó SVG que es una especificación de imagen vectorial. Ésta última suena muy bien.
PROCESO BLUETOOTH
Esta es la parte más extensa. Vamos a hacerlo con C++ y por tanto manejo de objetos.
- Los dispositivos que se vayan detectando se irán encapsulando en objetos Dispositivo donde almacenaremos la MAC y la imagen.
- Conforme se vayan detectando y encapsulando, se van metiendo en una COLA
- Conforme vayan entrando en la COLA se van enviando y se almacenan luego en una estructura. Esta estructura se usará para que no se repitan los envíos a los mismos dispositivos comparando los que se van detectando con esa estructura y los que no estén repetidos se van metiendo en la COLA. Es decir, el proceso de comparación es anterior al almacenamiento en la COLA.
En principio esto tendría un Objeto que llamaríamos OBEX que contendrá el código para enviar al dispositivo y detectar dispositivo. Dentro de la función de detectar se establece el objeto con su MAC y la imagen. Y la función de enviar pues lo envía.
La imagen será otro Objeto que contendrá la ruta de la imagen.
Posible Clase (Pseudocódigo) :
Clase OBEX{
Public Dispositivo detecta(imagen){ // Devuelve un Dispositivo con MAC e Imagen.
//código de detección
imagen = miInterfaz.getImagen();
miDispositivo.setMAC(MAC);
miDispositivo.setImagen(imagen);
if(estructura.compare(miDispositivo)) //comparemos
cola.add(miDispositivo)//almacenamos si no está
{
Public boolean envia(dispositivo){
//código para envío
estructura.add(dispositivo);
}
}
Por encima esto es lo que podemos hacer, pero aún me parece que tiene lagunas, a ver que os parece.
Aqui hay un pequeño diagrama del proceso bluetooth
Un saludo, Thor the PowerHead