Anda di halaman 1dari 121

Autorizada la entrega del proyecto del alumno: Ignacio Arribas Snchez

EL DIRECTOR DEL PROYECTO David Contreras Brcena Fdo.: . Fecha: / /

V B del Coordinador de Proyectos David Contreras Brcena

Fdo.: .

Fecha: / /

UNIVERSIDAD PONTIFICIA COMILLAS


ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)
INGENIERO EN INFORMTICA

PROYECTO FIN DE CARRERA

PASARELA BLUETOOTH PARA MULTIFUNCIN RICOH MFP2500

AUTOR: IGNACIO ARRIBAS SNCHEZ

MADRID, SEPTIEMBRE DE 2008

AGRADECIMIENTOS
Dedico el proyecto a todas las personas que me ha apoyado, en especial a mis padres Pilar y Jos Ignacio, que siempre me han estado motivando.

Tambin, quiero dar las gracias por todo el apoyo recibido, a mi director de proyecto David Contreras Brcena, que en todo momento ha estado dispuesto a ayudarme en el desarrollo del mismo, y del que he aprendido no slo una gran formacin para mi futuro, sino tambin, otros valores que me han ayudado a formarme como persona.

RESUMEN DEL PROYECTO


El proyecto Pasarela Bluetooth para una multifuncin Ricoh MFP2500, surge de de un concurso que promociona la Empresa Ricoh. Se trata de un concurso, Ricoh Contest, para el desarrollo de software para impresoras Ricoh. En este concurso, participan unas pocas universidades, entre ellas, la Universidad Pontificia de Comillas. Da la casualidad que este ao no ha habido concurso, y aunque no se va a poder presentar para el mismo, se opt por desarrollar una aplicacin para estas impresoras, ya que resulta practico e interesante. La realizacin de este proyecto surgi de la idea de querer desarrollar una aplicacin que utilizase una de las tecnologas inalmbricas, como es el caso de la tecnologa Bluetooth, y su posterior implantacin en una impresora multifuncin Ricoh. Se ha optado por la utilizacin de esta tecnologa, que ya est asentada en el mercado, abriendo un gran abanico de posibilidades debido a su flexibilidad de aplicacin. El proyecto a desarrollar tambin fue elegido, en parte, por el gran avance que supone la tecnologa mvil en nuestra sociedad, y la intencin de aportar nuevas funcionalidades al uso de los mismos. El sistema que se va a desarrollar en la impresora multifuncin, surge de una intencin prctica del proyecto, es decir, un proyecto que aparte de realizar un estudio sobre estas tecnologas, culminara con una aplicacin til. Esto va a suponer una mayor facilidad a los usuarios, ayudado adems de un interfaz muy sencillo, que no va a suponer ninguna dificultad al usuario a la hora de utilizar la nueva aplicacin Ricoh. El nuevo sistema a implantar, consiste, en primer lugar, en el envo y recepcin de documentos a travs de bluetooth entre la impresora multifuncin Ricoh MFP2500 y un dispositivo bluetooth, y en segundo lugar, en la impresin y escaneo de los archivos, o bien recibidos o enviados.

II

Cualquier dispositivo bluetooth mvil, PDA, ordenador porttil, puede realizar el envo de archivos a la impresora. El nico requisito es que tengan integrada la tecnologa bluetooth. Los usuarios al nuevo sistema, por tanto tendrn 2 posibilidades a la hora de utilizar la aplicacin. La primera posibilidad, consiste en escanear un documento y enviarlo va bluetooth al dispositivo requerido. El usuario de la impresora, escanear el documento, despus tendr que iniciar la bsqueda de dispositivos bluetooth, el siguiente paso ser la seleccin del dispositivo al cual quieres enviar el documento, y por ltimo el envo del archivo. En la segunda opcin, la impresora multifuncin c2500, est preparada para la recepcin de archivos mediante bluetooth. El usuario que posea cualquier dispositivo bluetooth, mvil, porttil, pda, podr enviar a la impresora Ricoh cualquier imagen que tenga. El usuario, una vez que haya llegado la imagen a la impresora, podr ver informacin de la misma para asegurarse de que la imagen enviada se corresponde a la suya. El ltimo paso, ser la impresin del documento. Para conseguir el objetivo del proyecto, se va a seguir una serie de etapas que presenta la siguiente metodologa. Al principio se realizara un anlisis de requisitos, dentro de esta etapa, se introducir al proyecto, se analizar la arquitectura del sistema y se har un estudio de las tecnologas que van a ser necesarias para el desarrollo de la aplicacin. El siguiente paso es el diseo de la aplicacin, es decir, como se va a disear cada una de las posibilidades que va a tener el usuario, como se va estructurar el nuevo sistema, diseo de interfaces y organizar cada una de las clases. La siguiente etapa a acometer, es el desarrollo, que consiste en la programacin de cada una de las clases para conseguir los objetivos previstos. En esta etapa, ir al lado de la etapa de pruebas, ya que se simulara en un emulador su comportamiento hasta que se implante en la impresora multifuncin. El ltimo paso es la implantacin en la impresora Ricoh multifuncin, donde se instalar el nuevo software desarrollado. Todo el proyecto se ir documentando mientras se vayan acabando etapas.

III

ABSTRACT

The project Gangplank Bluetooth for a multifunction Ricoh MFP2500, arises from a contest that promotes the Company Ricoh. It is a question of a contest, Ricoh Contest, for the development of software for printers Ricoh. In this contest, they inform a few universities, between them, the University Pontificia of Comillas. It gives the chance that this year there has not been contest, and though it is not going to be able to appear for the same one, one chose to develop an application for these printers, since it turns out to be practical and interesting. The accomplishment of this project arose from the idea of wanting to develop an application that was using one of the wireless technologies, since it is the case of the technology Bluetooth, and its later implantation in a printer multifunction Ricoh. It has been chosen for the utilization of this technology, which already is seated on the market, opening a great range of possibilities due to its flexibility of application. The new system to implanting, consists, first, of the sending and receipt of documents across bluetooth between the printer multifunction Ricoh MFP2500 and one device bluetooth, and secondly, of the impression and scanning of the files, or received or envoys. Any device bluetooth mobile, PDA, portable computer , can realize the sending of files to the printer. The only requirement is that they have the technology integrated bluetooth. The users to the new system therefore will have 2 possibilities at the moment of using the application. The first possibility, it consists of scanning a document and it of sending route bluetooth to the asked device. The user of the printer will scan the document, later it will have to initiate the search of devices bluetooth, the following step will be the selection of the device to which you want to send the document, and finally the sending of the file.

IV

In the second option, the printer multifunction c2500, it is prepared for the receipt of files by means of bluetooth. The user who possesses any device bluetooth, mobile, portable, pda , will be able to send to the printer Ricoh any image that has. The user, as soon as the image has come to the printer, will be able to see information of the same one to insure itself that the sent image corresponds to his. The last step, it will be the impression of the document. To obtain the aim of the project, one is going to follow a series of stages that the following methodology presents. Initially realized an analysis of requirements, inside this stage, it will interfere to the project, the architecture of the system will be analyzed and there will be done a study of the technologies that are going to be necessary for the development of the application. The following step is the design of the application, that is to say, since there is going to be designed each of the possibilities that the user is going to have, since it goes away to construct the new system, design of interfaces and each of the classes organizes. The following stage to attacking is the development, which consists of the programming of each one of the classes to obtain the foreseen aims. In this stage, it will go next to the stage of tests, since his behavior was simulated in an emulator until multifunction is implanted in the printer. The last step is the implantation, where one will install the new developed software. The whole project will be receiving documents while stages are ended.

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

ndice
1 Introduccin
1.1 Motivacin del proyecto.............................................................................. 1 1.2 Metodologa ............................................................................................... 2 1.3 Planificacion ................................................................................................. 3 1.4 Presupuesto ................................................................................................. 4

2 Arquitectura y Recursos
2.1 Arquitectura del sistema ............................................................................. 5
2.1.1 2.1.2 Recursos Software .................................................................................... 6 Recursos Hardware ................................................................................ 10

3 Estudio de las tecnologas


3.1 J2ME ........................................................................................................... 12
3.1.1 3.1.2 Overview Java Platform.......................................................................... 14 Paquetes J2ME soportados .................................................................... 14

3.2 Ricoh SDK/J ................................................................................................ 15


3.2.1 3.2.2 3.2.3 3.2.4 Qu es Ricoh? ...................................................................................... 15 Arquitectura ........................................................................................... 17 Paquetes RICOH ..................................................................................... 18 Aplicaciones Xlet..................................................................................... 19

3.3 Emulador SDK/J ......................................................................................... 28


3.3.1 3.3.2 3.3.3 Estructura del emulador......................................................................... 28 Requisitos ............................................................................................... 29 Restricciones .......................................................................................... 30

3.4 Tecnologa Bluetooth................................................................................. 32


3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 Introduccin ........................................................................................... 32 Estructura ............................................................................................... 33 Jerarqua ................................................................................................. 34 Protocolos bluetooth.............................................................................. 35 Paquete javax.bluetooth ........................................................................ 40 VI

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 3.4.6 Servicios UUID ........................................................................................ 41

4 Desarrollo del proyecto Ricoh SDK/J


4.1 Instalacin Emulador SDK/J ....................................................................... 43 4.2 Proyecto Ricoh SDK/J ................................................................................. 43 4.3 Integracin Ricoh DSK/J - NetBeans .......................................................... 46 4.4 Simulacin Emulador SDK/J ....................................................................... 49 4.5 Proyecto Servidor Ricoh SDK/J .................................................................. 50
4.5.1 Librera BlueCove ................................................................................... 51

5 Diseo
5.1 Diagrama de flujo de datos ....................................................................... 52
5.1.1 5.1.2 DFD nivel de contexto ............................................................................ 52 DFD nivel conceptual.............................................................................. 53

5.2 Diagrama de clases .................................................................................... 55


5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 Paquete printermfbluetooth .................................................................. 56 Paquete run ............................................................................................ 58 Paquete paquete Util ............................................................................. 61 Paquete Server.bluetooth ...................................................................... 63 Paquete Server.obex .............................................................................. 65 Paquete Server.run ................................................................................ 66

6 Desarrollo 6.1 Funcionalidades ....................................................................................... 67


6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 Funcin Print .......................................................................................... 67 Funcin Scan........................................................................................... 74 Funcin interface de red ........................................................................ 78 Funcin bluetooth .................................................................................. 81 Funcin transferencia de archivos (Obex) ............................................. 87

7 Implantacin y Pruebas
7.1 Estudio de la tecnologa portable .............................................................. 91
7.1.1 7.1.2 Tarjetas SD.............................................................................................. 91 Caractersticas tcnicas .......................................................................... 93

7.2 Instalacin del nuevo sistema .................................................................. 94


VII

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

8 Bibliografa
8.1 Libros, apuntes, enlaces ............................................................................ 99

9 Anexos
9.1 Manual de usuario ................................................................................... 101

VIII

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

1. Introduccin
1.1. Motivacin del Proyecto

La Empresa Ricoh, fabricante de equipos digitales para oficina, cada ao realiza un concurso, Ricoh Contest, para el desarrollo de software para impresoras Ricoh. En este concurso, participan unas pocas universidades, entre ellas, la Universidad Pontificia de Comillas. Da la casualidad que este ao no ha habido concurso, y aunque no se va a poder presentar para el mismo, se opt por desarrollar una aplicacin para estas impresoras, ya que resulta practico e interesante. El proyecto a desarrollar tambin fue elegido, en parte, por el gran avance que supone la tecnologa mvil en nuestra sociedad, y la intencin de aportar nuevas funcionalidades al uso de los mismos. La realizacin de este proyecto surgi de la idea de querer desarrollar una aplicacin que utilizase una de las tecnologas inalmbricas, como es el caso de Bluetooth, y su posterior implantacin en una impresora multifuncin. Todo esto se ha querido implementar en el lenguaje de programacin Java. Se ha optado por la utilizacin de una tecnologa bluetooth, que ya est asentada en el mercado, abriendo un gran abanico de posibilidades debido a su flexibilidad de aplicacin. La idea de Pasarela Bluetooth para multifuncin Ricoh MFP2500, surge de la intencin prctica del proyecto, es decir, un proyecto que aparte de realizar un estudio sobre estas tecnologas, culminara con una aplicacin til. El sistema a implantar en la impresora multifuncin, supone una mayor facilidad a los usuarios, ya que desde sus dispositivos mviles, podrn conseguir de una manera sencilla, enviar documentos a imprimir y recibir imgenes escaneadas, mediante la tecnologa bluetooth.

-1-

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

1.2.

Metodologa
La metodologa a desarrollar va a ser la siguiente:

Anlisis de requisitos

Diseo

Documentacin Desarrollo

Implantacin

Pruebas

-2-

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS - PFC 07/08

1.3.

Planificacin

En la tabla siguiente se muestra la planificacin del proyecto de una manera grafica:

OCTUBRE INTRODUCCIN AL PROYECTO ARQUITECTURA Y RECURSOS ESTUDIO DE LA TECNOLOGA DISEO DESARROLLO E IMPLEMENTACIN IMPLANTACION Y PRUEBAS DOCUMENTACION

NOVIEMBRE DICIEMBRE ENERO FEBRERO MARZO ABRIL MAYO JUNIO JULIO AGOSTO SEPTIEMBRE

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

1.4.

Presupuesto

El desglose del presupuesto ser el siguiente:

Miembro del equipo Horas del Analista Horas del Diseador Horas del programador Horas del jefe de proyecto Horas del coordinador del proyecto Horas del director del proyecto Horas total

/Horas 75 h * 70 /h 55 h * 65 /h 300 h * 55 /h 60 h * 55 /h 10 h * 55 /h 20 h * 55 /h

5250 3575 16500 3300 550 1100

31650

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

2. Arquitectura y Recursos
2.1. Arquitectura del Sistema
Una vez hecha una primera introduccin, describiendo cuales son los objetivos que se va tener que realizar en la construccin del proyecto pasarela bluetooth para multifuncin Ricoh MFP2500, se mostrar de una manera grfica cual va a ser la arquitectura del sistema.

El sistema consta de dos entes externos, el dispositivo bluetooth y la impresora multifuncin 2500. EL objetivo del proyecto es el envo y recepcin por parte de ambos, de documentos mediante la red bluetooth. La impresora tiene funciones de escanear documentos y enviarlos al dispositivo bluetooth e imprimir archivos recibidos mediante bluetooth. El envo y recepcin se consigue gracias a que la impresora tiene un interfaz de red. Los documentos enviados y recibidos por parte de ambos dispositivos son imgenes jpeg.

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

2.2.

Recursos Software

Una vez mostrada cual va a ser la arquitectura del sistema, ahora se va a explicar los recursos software necesarios o utilizados para la realizacin de la aplicacin. Como luego se van e explicar en detalle en el apartado de estudio de la tecnologa, se analizar de forma breve cada uno de los siguientes recursos que aparecen a continuacin:

Sistema operativo Windows Vista Windows Vista es una lnea de sistemas operativos desarrollada por Microsoft para ser usada en equipos de escritorio, porttiles, Tablet PC y centros multimedia. Entre las caractersticas ms importantes que ha introducido Windows Vista, se encuentran las siguientes:

Primer sistema operativo concebido para garantizar una compatibilidad total con EFI (Extensible Firmware Interface),

Una interfaz grfica completamente rediseada, cuyo nombre es Aero. Un sistema antispyware denominado Windows Defender. Aade al firewall de sistema la capacidad de bloquear conexiones que salen del sistema sin previa autorizacin.

Se incluye Windows ReadyBoost que es una tecnologa de cache de disco incluida por primera vez en el sistema operativo Windows Vista.

Carga aplicaciones un 15% ms rpido que Windows XP gracias a la caracterstica SuperF.

Se reduce en un 50% la cantidad de veces que es necesario reiniciar el sistema despus de las actualizaciones.

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

JAVA ME, plataforma Java, edicin Micro

La plataforma J2ME es una familia de especificaciones que definen varias versiones minimizadas de la plataforma Java 2; estas versiones minimizadas pueden ser usadas para programar en dispositivos electrnicos; desde telfonos celulares, en PDAs, hasta en tarjetas inteligentes, etc. Estos dispositivos presentan en comn que no disponen de abundante memoria ni mucha potencia en el procesamiento, ni tampoco necesitan de todo el soporte que brinda el J2SE, (la plataforma estndar de Java usada en sistemas de escritorio y servidor).

Tecnologa bluetooth Bluetooth es una especificacin industrial para Redes Inalmbricas de rea Personal (WPANs) que posibilita la transmisin de voz y datos entre diferentes dispositivos mediante un enlace por radiofrecuencia segura y globalmente libre (2,4 GHz.). Los principales objetivos que se pretende conseguir con esta norma son:

Facilitar las comunicaciones entre equipos mviles y fijos.

Eliminar cables y conectores entre stos. Ofrecer la posibilidad de crear pequeas redes inalmbricas y facilitar la sincronizacin de datos entre nuestros equipos personales.

Los dispositivos que con mayor intensidad utilizan esta tecnologa son los de los sectores de las telecomunicaciones y la informtica personal, como PDAs, telfonos mviles, computadoras porttiles, ordenadores personales, impresoras y cmaras digitales. 7

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

SDK/J SDK/J es un entorno de desarrollo que permite la creacin de aplicaciones integradas que corren sobre Productos de Multifuncin de Ricoh e Impresoras de lser. SDK/J est basado en tecnologa Java ME y controla la mayor parte de aspectos de operacin de dispositivo,

incluyendo el panel de control, y capacidades principales como la impresin, la exploracin, mandando por fax y guardar archivos.

SDK/J Emulator

El emulador SDK/J, es un programa software, que permite emular el comportamiento de una impresora multifuncin ricoh. Te ofrece un gran

abanico de funcionalidades como la posibilidad de escanear, imprimir, realizar fotocopias y fax.

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 NetBeans IDE 6.0.1.

NetBeans se refiere a una plataforma para el desarrollo de aplicaciones de escritorio usando Java y a un entorno de desarrollo integrado (IDE) desarrollado usando la Plataforma NetBeans.

La Plataforma NetBeans es una base modular y extensible usada como una estructura de integracin para crear aplicaciones de escritorio grandes.

La plataforma ofrece servicios comunes a las aplicaciones de escritorio, permitindole al desarrollador enfocarse en la lgica especfica de su aplicacin. Entre las caractersticas de la plataforma estn:

Administracin de las interfaces de usuario (ej. mens y barras de herramientas)

Administracin de las configuraciones del usuario Administracin del almacenamiento (guardando y cargando cualquier tipo de dato)

Administracin de ventanas Framework basado en asistentes (dilogos paso a paso)

El IDE NetBeans es un IDE - una herramienta para programadores pensada para escribir, compilar, depurar y ejecutar programas. Est escrito en Java - pero puede servir para cualquier otro lenguaje de programacin. Existe adems un nmero importante de mdulos para extender el IDE NetBeans. El IDE NetBeans es un producto libre y gratuito sin restricciones de uso.

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 El NetBeans IDE es un IDE de cdigo abierto escrito completamente en Java usando la plataforma NetBeans. El NetBeans IDE soporta el desarrollo de todos los tipos de aplicacin Java (J2SE, web, EJB y aplicaciones mviles). Entre sus caractersticas se encuentra un sistema de proyectos basado en Ant, control de versiones y refactoring.

Todas las funciones del IDE son provistas por mdulos. Cada mdulo provee una funcin bien definida, tales como el soporte de Java, edicin, o soporte para el sistema de control de versiones. NetBeans contiene todos los mdulos necesarios para el desarrollo de aplicaciones Java en una sola descarga, permitindole al usuario comenzar a trabajar inmediatamente.

2.3.

Recursos Hardware
Una vez se ha descrito brevemente cual son los recursos software

necesarios para el sistema a desarrollar, el siguiente paso es informar sobre los recursos hardware requeridos para el desarrollo del mismo. Se analizar cada uno de los siguientes recursos que aparecen a continuacin:

La tarjeta SD (Secure Digital) es un formato de tarjeta de memoria flash. Se utiliza en dispositivos porttiles tales como cmaras fotogrficas digitales, impresoras, Wiis,

ordenadores PDA y Palm, entre otros.

10

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Caractersticas multifuncion C2500:

de

la

impresora

Imprimir, copiar, escanear y enviar por fax desde un solo dispositivo

Resultados de alta calidad en B/N y color a 25 ppm

Acceso fcil y funcionamiento intuitivo con un sorprendente panel LCD a color

Capacidades avanzadas de distribucin de la informacin y fax Gestin de los documentos y acabado en la propia oficina

El otro recurso hardware necesario es cualquier dispositivo, mvil, pda,

ordenador porttil, que posibilite la transmisin de datos entre dispositivos mediante un enlace por radiofrecuencia segura y globalmente libre.

11

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3. Estudio de las Tecnologas


El proyecto Ricoh es un proyecto que va utilizar diferentes tecnologas que habr que estudiar. Primero se va a trabajar en J2ME, Java 2 Platform Micro Edition, desarrollada para la programacin de dispositivos inalmbricos. Luego se tendr que estudiar el kit de desarrollo SDK/J para la programacin de todas las funciones que tendr la impresora Ricoh multifuncin. Todas esas funciones de impresin y escner se encuentran integradas en aplicaciones Xlet, que son aplicaciones Ricoh SDK/J. Despus de realizar el estudio de todas estas tecnologas y aplicaciones podremos empezar a desarrollar nuestra aplicacin Ricoh.

Una vez estudiado estos primeros requisitos, el objetivo siguiente ser el estudio de la tecnologa bluetooth para aplicaciones java. Para esta funcionalidad, habr que estudiar cmo se realiza el descubrimiento de dispositivos bluetooth y que protocolo de intercambio de archivos se utiliza para la comunicacin entre dispositivos bluetooth.

3.1 J2ME
Java 2 Platform Micro Edition. Desarrollada por Sun como una plataforma para la programacin de dispositivos inalmbricos. El J2ME permite que los desarrolladores usen Java y las herramientas inalmbricas J2ME para crear aplicaciones y programas para dispositivos mviles, estos dispositivos inalmbricos tienen menos potencia y mucha menor capacidad grfica que los PC de escritorio. Por ello, J2ME representa una versin simplificada de J2SE pensada para dispositivos con estas limitaciones. J2ME se basa en dos elementos: configuraciones y perfiles.

12

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Las configuraciones suministran el conjunto de libreras y la maquina virtual adecuada para cierta categora de dispositivos mviles, en J2ME hay dos categoras la Conected Device Configuration (CDC) orientada a dispositivos de gama alta y la Conected Limited Device Configuration (CLDC1 y CLDC1.1) para dispositivos ms limitados como pda o telefona celular.

Los perfiles son APIs integradas por encima de las configuraciones CLDC, para proveer un ambiente de funcionamiento ms especifico para cada dispositivo. Estos dispositivos pueden ser PDAs, telefona celular, o set-top boxes. El perfil administra la aplicacin, la interfaz de usuario, las redes y la transmisin de datos. El perfil utilizado en J2ME es el de Mobile Information Device Profile (MIDP 1 y MIDP 2). Las libreras necesarias para la utilizacin de Bluetooth con J2ME estn incluidas en las Java Specification Request 82 (JSR-82).

13

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3.1.1 Overview Java Platform.


En la figura siguiente se muestra la figura de la plataforma Java necesaria.

3.1.2 Paquetes J2ME soportados.


A continuacin se muestran los paquetes soportados por J2ME. Hay que destacar para el desarrollo de la aplicacin, los paquetes java.io para la manipulacin de ficheros, y java.net para la creacin de conexiones TCP/IP que permitir conseguir las comunicaciones entre dispositivos.

java.io java.lang java.net java.security java.text java.util java.math (parcialmente)


BigInteger BigDecimal

javax.microedition.io
14

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3.2 . Ricoh SDK/J


SDK/J es un entorno de desarrollo que permite la creacin de aplicaciones integradas que corren sobre Productos de Multifuncin de Ricoh e Impresoras de lser. SDK/J est basado en tecnologa Java ME y controla la mayor parte de aspectos de operacin de dispositivo, incluyendo el panel de control, y capacidades principales como la impresin, la exploracin, mandando por fax y guardar archivos.

Primeramente se va a comentar sobre la empresa de las impresoras multifuncin en la que se va a instalar el sistema software.

3.2.1 Qu es Ricoh?

La empresa Ricoh fue fundada en Tokio (Japn) en 1936. Actualmente tiene ventas anuales superiores a los 17 mil millones de dlares con 75.000 empleados y oficinas en ms de 150 pases. Ricoh es un lder mundial en soluciones digitales para oficinas y contribuimos al xito de empresas de todo el mundo.

Ricoh Espaa es la subsidiaria para nuestro pas de Ricoh Company Ltd. Se fund en 1986 y en estos aos ha consolidado la posicin de liderazgo en el mercado. El ejercicio de 2004 fue el undcimo consecutivo de crecimiento.

15

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Ricoh Espaa se estableci en 1986 y desde entonces presta los servicios de comercializacin y de post-venta de los productos y servicios de la marca Ricoh en todo el territorio nacional. La sede central de la compaa se encuentra en Barcelona y cuenta con Delegaciones territoriales en Barcelona, Madrid, Pamplona, San Sebastin, Valencia y Vitoria. Adems, Ricoh Espaa tiene una red de distribuidores autorizados que comercializan sus productos en todo el territorio nacional. Principales Productos: Ricoh es fabricante de equipos digitales para la oficina: dispositivos multifuncionales, copiadoras, impresoras, faxes, escneres, duplicadoras

digitales, impresoras de gran formato y cmaras digitales. La imbricacin de sus

equipos con el proceso documental global de las empresas ha

convertido a Ricoh en un proveedor de soluciones, incorporando en su portafolio los productos de

software y los servicios de anlisis e integracin que las empresas

necesitan para encontrar respuesta a sus necesidades. Aproximacin al mercado: Disponer de la mejor tecnologa es para Ricoh Espaa el primer escaln de su cadena de valor. La integrabilidad de sus equipos en cualquier entorno y para cualquier funcin gracias a su arquitectura abierta es otra aportacin necesaria, que se relaciona directamente con la capacidad para analizar la situacin de cada cliente y ofrecer propuestas de mejora en eficacia y en costes.

16

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 El motor que mueve ese potencial es el profundo conocimiento y dinamismo de todos los profesionales que forman la compaa, volcados siempre en la mxima satisfaccin del cliente, objetivo estratgico de Ricoh. Esta empresa ha encargado un proyecto que consiste en el desarrollo de una aplicacin para la impresora Ricoh multifuncin. Se tiene que disear una impresora capaz de escanear, imprimir y adems que tenga un interfaz de red para que se le puedan enviar archivos para la impresin. Adems de estas funcionalidades, se tiene que incorporar al software de la impresora Ricoh multifuncin, una tecnologa bluetooth para que los usuarios puedan enviar archivos a la impresora para poder imprimirlas.

3.2.2. Arquitectura SDK/J


En la siguiente figura se muestra la arquitectura que presenta Ricoh SDK/J. Como se puede observar presenta un controlador para todas las funciones basicas como escanear, imprimir, copiar y faz. Tiene integrado la Java 2 Platform Micro Edition (J2ME), que permite el desarrollo y manipulacin de objetos java. Por ltimo, como aparece en la parte superior, permite el uso de ciertos protocolos como son http, ftp, smtp

17

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3.2.3. Paquetes RICOH

A continuacin se muestran los paquetes soportados por Ricoh para el desarrollo de la aplicacin. Ms adelante se explicara en ms en detalle los paquetes dsdk.function.print y dsdk.function.scan

dsdk.function dsdk.function.docStorage dsdk.function.print dsdk.function.scan dsdk.panel dsdk.panel.event dsdk.xlet

18

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3.2.4. Aplicaciones Xlet

Xlet es un tipo de aplicacin que se puede desarrollar con ricoh SDK/J. Es un modelo de ciclo de vida claramente definido gestionado por un gestor (XletManager). El ciclo de vida es un cambio de estado entre arrancar, pausar, continuar y destruir una aplicacin. Al contrario de los applets, GUI no es necesario. Cuando una aplicacin Xlet utiliza GUI, el XletManager podr gestionar las operaciones de la pantalla de la aplicacin Xlet siguiendo una estrategia del propio XletManager.

Comparacin de una aplicacin independiente y Xlet.

Xlet Hay ciclos de vida definidos Ciclo de vida por leer, parar, activar y destruir Numero de aplicaciones que pueden ser ejecutadas en la VM Todas las operaciones como descargar, instalar o ejecutar son posibles desde la VM, como el ciclo de Caractersticas vida puede ser gestionado y adems hacer restricciones mas fuertes par una posible seguridad Es posible ejecutar mltiples aplicaciones Xlet

Main() aplicacin Main y salida solo

Bsicamente habr una sola aplicacin por VM

Las aplicaciones gestionadas desde la VM son difciles as como las restricciones para la seguridad.

19

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Anatoma.
Los archivos principales que se generan o tienen informacin, dentro de cualquier proyecto Ricoh SDK/J, son los siguientes:

Main Class implementa dsdk.xlet.Xlet. Dalp file: Archivo XML con informacin del programa.

<?xml version="1.0" encoding="UTF-8"?> <dalp dsdk="" version="" spec="2.0"> <information> <product-id>51539410</product-id> <title>PrinterMF</title> <vendor>Vendor</vendor> <abbreviation></abbreviation> <description>Pasarela PrinterMF- Bluetooth</description> <description type="detail"></description> <telephone>620016595</telephone> <fax></fax> <e-mail>nachoarribass@gmail.com</e-mail> <application-ver>null</application-ver> <offline-allowed/> </information> <security> <all-permissions/> </security> <resources> <dsdk version="2.0"/> <jar href="./PrinterMF.jar" basepath="current" main="true" /> <encode-file>ricoh.mainui</encode-file>

20

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 </resources> <application-desc visible="true"> </application-desc> <install mode="auto" destination="hdd" work-dir="hdd"/> <display-mode size="HVGA" type="COLOR"/> </dalp> type="xlet" main-class="ricoh.MainUI"

Manifest File contiene informacin anticopia. Cdigo J2SE 1.3.1 compliant.

21

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Ciclo de vida.
Las aplicaciones Xlet presentan un ciclo de vida formado por 4 puntos de entrada. Los cuales son: initXlet, startXlet, pauseXlet, destroyXlet. Estos son llamados por el gestor de aplicaciones (XletManager) para controlar el estado de la aplicacin. Cuando el Xlet se carga por el XletManager, su estado cambia de pausado a activo, hasta que cambia a destruido y ya no puede recuperarse. La transicin al siguiente estado no esta completada hasta que el mtodo ejecutado acorde al cambio de estado se complete.

A continuacin se muestra el ciclo de vida de una aplicacin Xlet:

E s tados Xlet:

1) Estado inicial: El XletManager ejecuta un constructor por defecto para generar una instancia de una aplicacin Xlet, pero no es inicializada. Cada instancia Xlet es trasferida a ese estado una sola vez.

2) Estado pausado: El Xlet es inicializado, y pausado con el mnimo esfuerzo. 22

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 3) Estado activado: El Xlet se ejecuta normalmente, ofreciendo su servicio. 4) Estado destruido: Xlet se destruye asi mismo y libera sus recursos. Cada instancia Xlet es trasferida a ese estado una sola vez.

Diagrama Xlet.
En la siguiente figura se muestra el diagrama de secuencia del gestor Xlet. Esta secuencia muestra el orden de ejecucin de los mtodos implementados por el interface Xlet transferidos desde el estado inicial al pausado, al activado y al destruido.

23

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Caractersticas Xlet.

Una aplicacin Xlet implementa un interface del ciclo de vida del Xlet. El XletManager gestiona los estados del Xlet.

El XletManager puede cargar, inicializar, arrancar, pausar y destruir

un Xlet. El cambio de activo a pasivo se puede hacer tantas veces como se

quiera, pero la carga, la inicializacin y la destruccin del Xlet solo se puede hacer una vez. El XletManager puede destruir el Xlet cuando quiera El Xlet puede pararse y destruirse a si mismo El Xlet puede pedir el cambio a estado activo.

Clases Xlet.
El primer captulo para crear una aplicacin Xlet es implementar un metodo que soporte un interface Xlet para comunicarse con el XletManager. En la siguiente figura se muestran las clases necesarias para construir una aplicacin Xlet.

24

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Restricciones.
Las restricciones que tienen las aplicaciones Xlet son las siguientes:

Mximo nmero de ventanas abiertas a la vez: 10 (18 en total). Mximo nmero de iconos registrados: 10 (64 en total). Mximo nmero de Tareas: 40 (4 en estado pausado). Mximo nmero de ficheros abiertos: 36 (4 en estado pausado). Consumo mximo de memoria (por defecto): 2Mb. Consumo mximo de memoria (Heap :16Mb) 8Mb. Consumo en estado pausado: 200Kb.

Autentificacin.

Todas las aplicaciones desarrolladas para las impresoras multifuncin RICOH han de ir firmadas digitalmente.

Las aplicaciones tienen un identificador nico: o Proporcionado por RICOH bajo demanda. o Se entrega junto con una XLet-Key y un archivo de claves.

La firma digital permite certificar que la aplicacin no ha sido modificada por terceros. Impide hacer copias ilegales de los programas (Las tarjetas SD tambin son firmadas). Asegura al cliente que la aplicacin ha sido desarrollada por un vendedor cualificado. Permite bloquear aplicaciones a una MFP concreta, mediante la identificacin por nmero de serie. jar uvmf <app. Id>.mf MiAplicacion.jar

25

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Funciones MFP.

Se va a estudiar los diferentes paquetes de impresin y escaneo que tiene integrado el SDJ/K en el controlador Ricoh.

Funcin Print.

Primero se empieza con el paquete funcion.print de la de funcin imprimir. SDK/J tiene la misma estructura que J2SE.

J2SE javax.print

SDK/J function.print

Proposito Buscar servicio de impresin. Especificar formato de impresin Generar trabajos de impresin. Imprimir. Definir y configurar atributos de la impresin. Atributos de impresin. Notificacin de eventos de impresin

javax.print.attribute

function.print.attribute

javax.print.attribute.standard javax.print.event

function.print.attribute .standard function.print.event

Procedimiento bsico de impresin. Buscar un PrintService a travs de PrintServiceLookup.Usar PrintService.createPrintJob para obtener un DocPrintJob. Crear un SimpleDoc que apunte a los datos a imprimir. Aadir listeners al DocPrintJob. Llamar a DocPrintJob.print con el SimpleDoc.

26

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Funcin Scan.

Despus del estudio del principal paquete de la funcin print, se estudiar el paquete funcin.scan. A continuacin se muestra un tabla con los principales subpaquetes del mismo.

J2SE javax. scan

SDK/J function.scan

Propsito Buscar servicio de escaneo. Especificar formato de escaneo Generar trabajos de escaneo. Escanear.

javax. scan.attribute

function.scan.attribute

Definir y configurar atributos de la escaneo.

javax. scan.attribute.stand ard javax. scan.event

function.scan.attribute.st andard

Atributos de escaneo.

function.scan.event

Notificacin de eventos de escaneo

Procedimiento bsico de escanear.

Buscar un ScanService a travs de ScanServiceLookup. Usar ScanService.createPrintJob para obtener un DocScanJob. Crear un SimpleScanDoc que apunte a los datos a escanear. Aadir listeners al DocScanJob. Llamar a DocScanJob.scan para iniciar el escaneo.

27

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3.3.

Emulador SDK/J
Ahora se va a estudiar y analizar el emulador SDK/J necesario para el

desarrollo del proyecto. Este emulador nos permite ejecutar la aplicacin, ya que simula el comportamiento de la impresora multifuncion.

3.3.1. Estructura del emulador

El SDK/J emulador puede ser dividido en dos partes, A y B. La parte A es el nucleo del emulador, manteniendo el arranque y la gestin del emulador y dibujando el panel operativo de una manera similar al de impresora multifuncion. La parte B mantiene la emulacin del paquete Panel, anulando la parte soportada por dsdk.ar.

En esta versin, slo la emulacin simple en la capa de funcin es soportada, y los rasgos de los lenguajes en modo en color, softkeyboard y la entrada de hardkey, proporcionan la divisin de pantalla, y la certificacin de firma digital Estructura del emulador: Parte A: jp.co.ricoh.dsdk.emulator jp.co.ricoh.dsdk.emulator.panel

28

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Parte B: jp.co.ricoh.dsdk.core.common jp.co.ricoh.dsdk.core.manager jp.co.ricoh.dsdk.core.eventFilter jp.co.ricoh.dsdk.core.system.struct jp.co.ricoh.dsdk. panel jp.co.ricoh.dsdk. panel.event

3.3.2. Requisitos del entorno de trabajo.


Se va a listar los requisitos necesarios dentro del entorno de trabajo. Lista de modelos compatibles con la impresora MFP: Modelos domsticos, Fotocopiadora digital en color WVGA Imagio MF: C3500, C3500 SP, C4500, C4500 SP Imagio MF: C2500, C2500 SP, C3000, C3000 SP Modelos de exportacin Aficio MF: C3500 SP, C4500 SP Aficio MF: C2500 SP, C3000 SP Modelos de panel de operaciones SVGA,

Requisitos del Sistema Operativo: Windows 2000 o XP. RedHatLinux 7.2 o higher(Intelx86 Architecture) Solaris 10 o higher (Intelx86 Architecture)

Requisitos JVM: J2SE 50 es necesario

Requisitos de memoria: RAM 256 MB o mayor

Requisitos de Disco Duro: 29

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Para instalar el Emulador el disco duro requiere ms de 100 MB de espacio libre. Requisitos SDK: Dispositivo SDK tipo-J versin 2.04 o ms Nuevo (Emulador versin 1.14c versin 2.04) Requisitos de resolucin: Pantalla del monitor: 1024 x 768 pixels(requerido) o mayor (recomendado) incluye Dispositivo SDK tipo-J

3.3.3. Restricciones
Se va a enumerar las restricciones del emulador SDK/J. o Restriccin 1: hard Key y la etiqueta SAS Manager La hard Key y la etiqueta SAS Manager no estn soportadas parcialmente por el emulado. o Restriccin 2: Rasgos de escanear El Emulador simula un escaneo pero no realiza el escaneo real. Restricciones detalladas de los rasgos de escaneo: El nmero original de papel no est soportado Atributo: Cromacidad de color del escaneo no est soportado Atributo: El tipo de escaneo de MIXED_TYPE, OCR_TYPE Y PHOTO_TYPE no estn soportado Atributo: Bandeja de papel de impresin de BOTTOM, LARGE_CAPACITY, MANUAL, MIDDLE, TOP and TRAY4 no est soportado Atributo: La compresin de escaneo de JPEG, JPG, MH, MRR, MR no estn soportados Atributo: La resolucin desde 100dpi hasta 600 dpi no est soportada 30

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Atributo: La densidad de escaneo de DENSITY_LEVEL1 A DENSITY_LEVEL 9 no est soportada Atributo: Tamao de escaneo de ISO.A1 y ISO.A2 no estn soportados Atributo: Lados de escaneo de DUPLEX, TUMPLE, TWO_SIDES_SHORT_EDEGE o Restriccin 2: Rasgos de imprimir El emulador emula el proceso de fax, pero no realiza la impresin real. Restricciones detalladas de los rasgos de impresin: El nmero de copias no est soportado Atributo: Cromacidad de impresin de color no est soportado Atributo: Direccin de impresin en vertical y horizontal no est soportado Atributo: Bandeja de papel de impresin de BOTTOM, LARGE_CAPACITY, MANUAL, MIDDLE, TOP and TRAY4 no est soportado Atributo: Tamao del papel de impresin de ONE_SIDES,

TWO_SIDES_LONG_EDEGE,

MediaSize.ISO.A2, MediaSize.JIS,B2 no estn soportados Atributo: Tamao de impresin de ISO.A1 y ISO.A2 no estn soportados Atributo: Lados de impresin de DUPLEX, TUMPLE, TWO_SIDES_SHORT_EDEGE o Restriccin 2: Rasgos de fax El emulador emula el proceso de fax, pero no realiza el fax real. o Restriccin 5: Secuencias de error La secuencia de error no son soportadas ONE_SIDES,

TWO_SIDES_LONG_EDEGE,

31

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3.4.

Tecnologa Bluetooth

3.4.1. Introduccin
Bluetooth es una tecnologa de comunicacin inalmbrica

omnidireccional. Se ide pensando en dispositivos de bajo consumo y comunicaciones a corta distancia (10 metros). Se trata de una tecnologa barata con un ancho de banda reducido: hasta 11 Mbit/s. Es ideal para perifricos de ordenador (ratn, teclado, manos libres,...) y dispositivos mviles (telfonos mviles, PDAs, Pocket PCs,...).

Los principales objetivos que se pretende conseguir con esta norma son:

Facilitar las comunicaciones entre equipos mviles y fijos. Eliminar cables y conectores entre stos. Ofrecer la posibilidad de crear pequeas redes inalmbricas y facilitar la sincronizacin de datos entre nuestros equipos personales.

Las principales aplicaciones de Bluetooth son: transferencia de archivos, sincronizacin de dispositivos y conectividad de perifricos.

32

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3.4.2. Estructura Red Bluetooth


Los terminales Bluetooth utilizan unas pequeas redes de

comunicaciones llamadas piconets. En estas pequeas redes se pueden llegar a conectar 8 dispositivos, donde uno ser el dispositivo maestro, siendo este en principio el primer dispositivo que establece la piconet. La unidad maestra ser la encargada de controlar el trfico de esta red. El resto de dispositivos sern unidades esclavas, las cuales se conectan directamente con el dispositivo maestro para poder interactuar con las dems. El siguiente esquema muestra una piconet:

Varias de estas Piconets pueden establecer comunicacin entre ellas formando una scatternet, de esta forma pueden comunicarse ms dispositivos, o aprovechar ms el ancho de banda, ya que de estas forma al tener diferentes canales cada piconet, los dispositivos que necesiten comunicarse en mayor medida se ven menos limitados.

33

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3.4.3. Jerarqua del protocolo Bluetooth

La figura que se muestra a continuacin describe parte de la jerarqua de la arquitectura Bluetooth y muestra la ubicacin del protocolo OBEX y de los perfiles de aplicacin que lo usan. El protocolo puede tambin comunicarse con la base de datos de descubrimiento de servicios, aunque no se muestra en la figura.

34

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3.4.4. Protocolos de Bluetooth Protocolo Obex.


El protocolo Obex, es un protocolo adoptado, no es propio de la tecnologa bluetooth que nos permite intercambiar objetos entre dispositivos. Este va a ser el protocolo que se va a utilizar para el intercambio de archivos entre los dispositivos bluetooth. Es muy similar a HTTP: consiste en el intercambio de mensajes entre el cliente y el servidor. Tales mensajes consisten en un conjunto de cabeceras de mensaje y opcionalmente un cuerpo de mensaje. En este protocolo el cliente enva comandos al servidor (CONNECT, PUT, GET, DELETE, SETPATH, DISCONNECT) junto con algunas cabeceras de mensaje y en ocasiones (comando PUT) un cuerpo de mensaje. Las cabeceras de mensaje estn encapsuladas en un objeto HeaderSet y el cuerpo de mensaje se lee/escribe mediante un Input/OutputStream.

El servidor por su parte recibir los comandos del cliente y responder con un cdigo de respuesta indicando el xito o no de la peticin. Enviar adems una serie de cabeceras de mensaje con informacin adicional y un cuerpo de mensaje en caso de tratarse de una respuesta al comando GET.

35

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 El comando CONNECT es necesario para completar el inicio de la sesin. El comando PUT enva datos del cliente al servidor y el comando GET enva datos del servidor al cliente. El comando DELETE sirve para eliminar un recurso del servidor. El comando SETPATH sirve para crear directorios y navegar por ellos, y finalmente el comando DISCONNECT sirve para cerrar la conexin.

Package javax.obex.

Se va a realizar un estudio del paquete javax.obex. a travs de 2 tablas. Una de ellas muestra los interfaces mientras que la otra las principales clases.

Tabla de interfaces:

Class Summary Authenticator Interfaces El interface Authenticator proporciona un modo de responder al desafo de autenticacin y cabeceras de respuesta de autenticacin. El interface ClientSession proporciona mtodos para peticiones OBEX El interface HeaderSet proporciona metodos para aadir y conseguir valores de cabeceras OBEX El interface Operation proporciona caminos para manipular una nica operacin PUT o GET de OBEX El interface SessionNotifier define una connexion notifier para conexiones OBEX del servidor.

ClientSession HeaderSet

Operation

SessionNotifier

36

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Tabla de clases:

Class Summary Classes PasswordAuthentication La clase PasswordAuthentication maneja

combinaciones de nombres de usuario y contraseas. ResponseCodes La clase ResponseCodes contiene una lista de cdigos de respuesta validos que el servidor enva al cliente. ServerRequestHandler La clase ServerRequestHandler define un evento listener que responder a peticiones OBEX hechas por el servidor

Otros protocolos bluetooth.


La pila de protocolos Bluetooth est formada por muchos protocolos pero solo unos cuantos nos interesan para las JABWT (Java APIs for Bluetooth Wireless Technology), podemos ver un esquema de estos protocolos y una descripcin de los definidos por j2me:

37

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 o Logical Link Control and Adaptation Protocol (L2CAP): Este protocolo proporciona servicios de datos orientados o no a conexin a los protocolos de las capas superiores. Tambin multiplexa entre las conexiones lgicas creadas por las capas superiores. El protocolo de adaptacin y de control de enlace lgico (L2CAP) de Bluetooth es compatible con el multiplexado de protocolos de capas superiores, la segmentacin y unificacin de paquetes, y la comunicacin de informacin sobre la calidad del servicio. L2CAP hace posible que los protocolos y aplicaciones de capas superiores transmitan y reciban paquetes de datos de la capa superior (unidades de datos de servicio (SDU) L2CAP) de hasta 64 kilobytes de longitud. L2CAP hace tambin posible el control de flujo por canal y la retransmisin mediante los modos de control de flujo y retransmisin. La capa L2CAP proporciona canales lgicos, denominados canales L2CAP, que se asignan a enlaces lgicos L2CAP sustentados por una comunicacin lgica ACL.

A continuacin se muestra una figura del protocolo L2CAP.

38

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 o Service Discovery Protocol (SDP): Este protocolo nos permite encontrar los servicios que nos ofrecen otros dispositivos.

o RFCOMM: El protocolo RFCOMM emula los parmetros de un cable de serie y el estado de un puerto RS-232 para transmitir datos en serie. El RFCOMM se conecta a las capas inferiores de la pila de protocolos Bluetooth a travs de la capa L2CAP.

39

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

3.4.5. Package javax.bluetooth


Despus de haber estudiado el paquete javax.obex, lo siguiente a analizar es el paquete javax.bluetooth. A continuacin se va a mostrar 3 tablas diferenciando entre interfaces, clases y excepciones:

Tabla de interfaces: Class Summary Interfaces DiscoveryListener El interface DiscoveryListener permite a la aplicacin recibir eventos de descubrimiento de dispositivo y servicio. El interface L2CAPConnection representa una connexion orientada a un canal L2CAP El interface L2CAPConnectionNotifier proporciona una connexion L2CAP. El interface ServiceRecord describe caracteristicas de un servicio Bluetooth.

L2CAPConnection L2CAPConnectionNotifie r ServiceRecord

Tabla de clases: Class Summary Classes DataElement La clase DataElement define varios tipos de datos que los valores de los atributos pueden tener en un servicio Bluetooth DeviceClass La clase DeviceClass representa la clase de dispositivo (CoD) como definido por la especificacin de Bluetooth. DiscoveryAgent La clase DiscoveryAgent proporciona metodos para realizar el descubrimiento de servicios y dispositivos LocalDevice La clase LocalDevice define las funciones basicas del gestor de Bluetooth RemoteDevice La clase RemoteDevice representa un dispositivo Bluetooth remoto

40

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 UUID La clase UUID define universalmente identificadores unicos.

Tabla de excepciones:

Class Summary Exceptions

BluetoothConnectionException

La excepcion BluetoothConnectionException es lanzada cuando una conexin bluetooth no puede establecerse.

BluetoothStateException

La excepcion BluetoothStateException es lanzada cuando se hace una peticin al sistema Bluetooth y este no puede soportarla en su estado actual.

ServiceRegistrationException

La excepcion ServiceRegistrationException es lanzada cuando hay un fallo para aadir un ServiceRecord a la Base de Datos de

descubrimiento de servicios local(SddB) o para modificar un ServiceRecord en la SDDB.

3.4.6. Servicio UUID.


Una de las clases ms importantes es la UUID. Define universalmente identificadores que representan servicios bluetooth. Como es necesario, se muestra a continuacin, una tabla con los servicios ms importantes que se ofrece con la tecnologa bluetooth.

UUID
0x0003 0x0008 0x000C

Servicio
RFCOMM OBEX HTTP

41

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 0x0100 0x000F 0x1000 0x1001 0x1002 0x1101 0x1102 0x1103 0x1104 0x1105 0x1106 0x1107 0x1108 0x1109 0x110A 0x1111 0x1112 0x1115 0x1116 0x1117 0x111E 0x111F 0x1201 0x1202 0x1203 0x1204 L2CAP BNEP ServiceDiscoveryServerServiceClassID BrowseGroupDescriptorCerviceClassID PublicBrowseGroup SerialPort LANAccessUsingPPP DialupNetworking IrMCSync OBEX ObjectPushProfile OBEX FileTransferProfile IrMCSyncCommand Headset CordlessTelephony AudioSource Fax HeadsetAudioGateway PersonalAreaNetworkingUser NetworkAccessPoint GroupNetwork Handsfree HandsfreeAudioGateway GenericNetworking GenericFileTransfer GenericAudio GenericTelephony

42

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

4.

Desarrollo de un proyecto Ricoh SDK/J.


Despus de haber estudiado todas las tecnologas necesarias para la realizacin

del proyecto Pasarela Bluetooth para multifuncin Ricoh MFP2500, el siguiente paso a seguir, es la instalacin del emulador SDK/J, la integracin de Ricoh SDK/J y la creacin de 2 proyectos con el programa NetBeans.

4.1.

Instalacin de emulador SDK/J

En primer lugar se tendr que instalar el emulador Ricoh Embedded Software Architecture Emulator 1.14c. En el momento que se instale el emulador, se va a poder trabajar con la plataforma Ricoh SDK/J. Esta plataforma, incluye una serie de libreras (sdsk.jar, foundation.jar y emulator.jar) que va a permitir simular la ejecucin de nuestra aplicacin.

4.2.

Proyecto Ricoh SDK/J

Al finalizar con la instalacin del emulador, el segundo paso a acometer ser la creacin de un proyecto dentro del programa NetBeans. De entre las muchas categoras que te ofrece NetBeans, se tendr que crear un proyecto Mobility y dentro de las posibles aplicaciones, se elige una aplicacin CDC (Connected Device Configuration).

Este tipo de aplicacin corre sobre una maquina virtual C (CVM) y que es perfectamente compatible con la especificacin de la maquina virtual Java. J2ME se basa en dos elementos: configuraciones y perfiles. Las Aplicaciones CDC son un tipo de configuracin de J2ME, que permite desarrollar software para dispositivos de gama alta. La plataforma CDC para J2ME incorpora:

Una maquina virtual Java (Java Virtual Machine, JVM) completa compatible con J2SE 1.3.1

Las bibliotecas de clase y APIs mnimas para que el sistema funcione 43

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Soporte completo para carga de clases, gestin de subprocesos (threads) y mecanismos de seguridad En la figura siguiente, se muestra la seleccin del tipo de proyecto a

realizar.

El siguiente paso es seleccin de la plataforma JAVA utilizada. Como se muestra en la figura, la plataforma elegida es la Ricoh 1.14c, poder ejecutar la aplicacin en el emulador DSK/J. Esta plataforma, como ya se ha comentado anteriormente, ya se encuentra instalada dentro de la plataforma JAVA de nuestro equipo, debido a la instalacin de emulador, por lo que el programa NetBeans la puede reconocer.

La aplicacin CDC incorpora el perfil Foundation (Foundation Profile), aunque estn tambin disponibles los perfiles Personal y Personal Basis para aplicaciones que requieren una interfaz grafica de usuario compleja o Web. De todas maneras se va a seleccionar el perfil Foundation Profile. Con esto ya tendremos creado nuestro proyecto Ricoh SDK/J.

44

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Se muestra a continuacin, un ejemplo grfico del momento de seleccin de la plataforma a utilizar para la creacin del proyecto.

P o r

l t i m o ,

una vez finalizado todo el proceso de nuevo proyecto con el botn Finish, el programa NetBeans, te crea automticamente la clase principal del proyecto, en este caso una clase Xlet. A partir de dicha clase, ya se puede empezar a desarrollar todo el proyecto.

45

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

4.3.

Integracin Ricoh DSK/J-NetBeans


Una vez creado nuestro proyecto principal, el tercer paso consiste en

integrar Ricoh DSK/J con Netbeans. Para conseguirlo se tendr que seguir los pasos que se explican a continuacin.

1.- Descargarte la integracin de la pgina de Ricoh.

2.- Copiar el contenido de la carpeta dsdk a la carpeta raz del proyecto.

3.- Modificar el fichero build.xml y poner dentro (al inicio) de la etiqueta project:

<!-- Begin of Ricoh DSDK integration -->

<!-- Load configuration properties --> <property file="dsdk/dsdk.properties"/>

<path id="dsdk.bootclasspath"> <pathelement path="${dsdk.bootclasspath}/btclasses.zip" /> <pathelement path="${dsdk.bootclasspath}/foundation.jar" /> </path>

<import file="dsdk/Common-DSDK.xml"/>

<target name="-post-jar" depends="dsdk-jar-prepare,dsdk-jarinstall" description="DSDK integration"/>

<!-- Overrides default run for Xlet projects --> <target name="run" depends="init,compile,jar" description="Run a main class."> <ant antfile="${dsdk.emulator.path}/startemulator.xml" 46

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 target="start_emulator" dir="${dsdk.emulator.path}"> <property name="emulator.skin" value="WVGA.xml"/> <property name="emulator.autolaunchid" value="${app.appid}"/> </ant> </target>

<!-- Overrides default debug for Xlet projects --> <target name="debug" depends="init,compile,jar" description="Debug project in IDE."> <ant antfile="${dsdk.emulator.path}/startemulator_debug.xml" target="debug_emulator" dir="${dsdk.emulator.path}"> <property name="emulator.skin" value="WVGA.xml"/> <property name="emulator.autolaunchid" value="${app.appid}"/> </ant> </target>

<!-- End of Ricoh DSDK integration -->

4.- Aadir al build-impl.xml la parte de integracin del DSDK para que quede de la siguiente forma:

<target name="-init-macrodef-javac"> <macrodef name="javac" uri="http://www.netbeans.org/ns/j2se-project/3"> <attribute name="srcdir" default="${src.dir}"/> <attribute name="destdir" default="${build.classes.dir}"/> <attribute name="classpath" 47

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 default="${javac.classpath}"/> <attribute name="debug" default="${javac.debug}"/> <element name="customize" optional="true"/> <sequential> <javac srcdir="@{srcdir}" destdir="@{destdir}" debug="@{debug}" deprecation="${javac.deprecation}" fork="yes" executable="${platform.javac}" tempdir="${java.io.tmpdir}" includeantruntime="false"> <!-- DSDK Integration --> <bootclasspath refid="dsdk.bootclasspath" /> <!-- End of DSDK Integration --> <classpath> <path path="@{classpath}"/> </classpath> <compilerarg line="${javac.compilerargs}"/> <customize/> </javac> </sequential> </macrodef> </target>

5.- Copiar a la carpeta dsdk/ el archivo .mf, el .dalp de la aplicacin i el keystore (normalmente devstore.dat).

5.- Editar el fichero dsdk.properties con los parametros necesarios.

6.- Al hacer un build del proyecto, Netbeans actualizara el jar con el manifest file de la carpeta dsdk/, firmar el jar y lo copiar a la carpeta correspondiente del

48

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 emulador. Si la aplicacin es de tipo servlet, existe la opcin de definir un directorio de ficheros a incluir dentro del jar.

4.4.

Simulacin en el emulador.

Mientras se est realizando el desarrollo del cdigo, se puede ir ejecutando la aplicacin y viendo como se simula en el emulador SDK/J, y as poder ver el progreso de la misma. Cuando se ejecuta la aplicacin, lo primero que te aparece es una pequea pantalla con el tipo de archivo a seleccionar. Siempre se elegir WVGA.xml.

La figura que se muestra, es la pantalla del emulador. Si es la primera vez que se ejecuta la aplicacin, primeramente se tendr que instalar, seleccionando nuestro proyecto de la etiqueta Install. Una vez instalada, en la etiqueta de Startup Setting, se selecciona la aplicacin desarrollada, y se comienza el proceso de simulacin en el emulador SDK/J.

49

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

4.5.

Proyecto Servidor Ricoh SDK/J


El proyecto Pasarela Bluetooth para multifuncin Ricoh MFP2500, est

desarrollado bajo la plataforma Ricoh SDK/J, pero tiene el problema de no soportar la tecnologa bluetooth, paquetes javax.bluetooth y paquete javax.obex. Debido a esto, se tiene que desarrollar un proyecto servidor para la impresora multifuncin. Dentro del programa NetBeans, se crear un proyecto Java Application.

Para ese proyecto servidor, se va a necesitar una librera, que va a permitir trabajar con la tecnologa bluetooth. Esa librera se llama BlueCove.

4.5.1. Librera bluecove


BlueCove es una librera de Java para Bluetooth (JSR-82 implementation) que actualmente est implementado en Mac OS X, WIDCOMM, BlueSoleil y Microsoft Bluetooth stack encontrado en Windows XP SP2 or Windows Vista y WIDCOMM y Microsoft Bluetooth stack en Windows Mobile.

50

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 BlueCove proporciona una implementacion del JSR 82. Las aplicaciones deberan usar la API definido en JSR-82. En la figura anterior, se muestra la arquitectura de la librera bluecove.

Requerimientos para el uso de la librera bluecove. WIDCOMM (Broadcom) BTW Stack software version 1.4.2.10 SP5 BlueSoleil version 1.6.0, 2.3 o 3.2.2.8. Version 5.0.5 no es soportada. Microsoft Bluetooth stack PowerPC- or Intel-based Mac OS X 10.4 (Bluetooth v1.2) o ms reciente (Desde v2.0.2) Linux con BlueZ Bluetooth stack Un dispositivo bluetooth soportado por el WIDCOMM, BlueSoleil o Microsoft bluetooth stack Java 1.1 o ms reciente para la ejecucion, Java 1.4 o ms reciente para compilar. Otro dispositivo bluetooth para comunicarte. Gracias a la librera bluecove.jar, se va a poder trabajar con los paquetes javax.microedition, javax.obex y javax.bluetooth. Con todos estos paquetes, se podr realizar todas las funcionalidades de bluetooth requeridas para el desarrollo del nuevo sistema.

51

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

5. Diseo
En este captulo, se ha centrado en el diseo de todos los componentes de nuestra aplicacin. Se va a explicar el explicar cul va a ser el funcionamiento de los diferentes procesos del nuevo sistema.

5.1.

Diagrama de flujo de datos

En este primer apartado se va a desarrollar el diseo de los diagramas de flujos de datos tanto de nivel de contexto como conceptual.

5.1.1. DFD nivel de contexto


Lo primero que se va a realizar es el dfd de nivel de contexto. En este dfd muestra las relaciones que tiene la aplicacin con las dems entidades externas. A continuacin se encuentra el diagrama de contexto:

Se va a explicar de una manera breve en qu consiste este diagrama de flujo de contexto. La aplicacin, por parte del usuario de la impresora Multifuncin, va a recibir diferentes tipo de solicitudes; solicitud de envo, de bsqueda de dispositivos, de escner y adems el documento a escanear. La aplicacin, una vez escaneado el documento, lo enva mediante la red bluetooth al usuario bluetooth. La segunda funcionalidad de la aplicacin, ira en el sentido contrario. El usuario

52

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 bluetooth enva una solicitud de envo adems del documento a imprimir, enviado mediante bluetooth por el usuario bluetooth. Esta lo imprime y ya est listo para el usuario de la impresora Ricoh c2500.

5.1.2. DFD de nivel conceptual


Una vez desarrollado el dfd de contexto, el siguiente paso es el desarrollo de diagrama de flujo de nivel conceptual. Documento Solicitud de escner
1 Espera de solicitud

OK
4 Escner del Documento

OK OK Documento adjuntado
2 Recepcin del documento

Solicitud de bsqueda de dispositivos

Documento a imprimir

Documentos Escaneados Documento adjuntado Documentos a Imprimir

5 Bsqueda de dispositivos

OK

Dispositivos

OK
6 Seleccin del dispositivo

Solicitud de impresin
3 Impreso del Documento

OK Documento impreso Dispositivo Solicitud de envo

7 Envo del documento

Documento escaneado 53

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Este diagrama muestra todo el proceso interno de la aplicacin, desde su comienzo hasta su final. Nos da informacin de los datos que utilizan cada proceso, adems de los datos almacenado en los almacenes.

Se va a explicar brevemente cual es el funcionamiento de la aplicacin. En primer lugar hay posibles caminos, que son las dos principales funcionalidades del nuestro proyecto. Si lo que se quiere es imprimir un documento desde un dispositivo bluetooth, se estar en el primer proceso hasta que recibamos el documento, una vez recibido simplemente lo nico que queda es la impresin del documento. Pero si por el contrario lo que se quiere enviar un documento escaneado al dispositivo mvil, seguir por el segundo camino, segunda funcionalidad respectivamente. El usuario escanea el documento, una vez escaneado, realizara una bsqueda de dispositivos bluetooth que se encuentren cerca de la impresora Multifuncin. La aplicacin recibe un conjunto de dispositivos bluetooth, y posteriormente realiza la seleccin del dispositivo al quiere enviar el documento. El ltimo paso de este procedimiento, es el envo del archivo a dispositivo seleccionado anteriormente.

54

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

5.2.

Diagrama de clases

En esta capitulo, primeramente desarrollaremos el diagrama de clases del proyecto. Despus, cuando se vaya describiendo cada una de ellas, se explicara las dependencias funcionales entre las clases.

55

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 A continuacin se va a mostrar cmo se ha diseado cada una de las clases que son necesarias para el desarrollo de nuestro proyecto. Cada una de ellas se encuentra en paquetes diferentes dependiendo de su funcin en la aplicacin. Vamos a representar cada clase con cada uno de los nombres de los mtodos que han implementado dentro de ellas, y explicando brevemente de que se encargan y que acciones realizan dentro del proyecto.

5.2.1. Paquete printermfbluetooth

A continuacin se encuentra el diagrama de clases del paquete printermfbluetooth. En este paquete se tiene, la clase principal del proyecto MainUI, adems de las clases ScanUI y PrintUI, que gestionan todos los procesos, adems de crear el interfaz de las operaciones de imprimir y escanear.

Esta es la clase principal de la aplicacin, el Xlet. Contiene los mtodos de inicializacin, comienzo, pausa y destruccin del Xlet. Esos mtodos son los siguientes: initXlet (), startXlet (), pauseXlet (), destroyXlet ().

56

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Se crea una conexin de red TCP/IP, para poder recibir y enviar documentos. Tambin en esta clase se desarrolla el interfaz principal de la aplicacin Pasarela Bluetooth para impresora multifuncin, y lo consigue mediante la funcin makeUIControls (). Por ltimo presenta mtodos para encapsular y almacenar los archivos a imprimir que enva el usuario bluetooth, Aadir_A_Cola (Archivo a), DevolverCola () y Sacar_de_Cola (). Cada vez que se va iniciar el proceso de escanear y enviar archivo por bluetooth, llama a clase ScanUI, mientras que cuando va a realizar el proceso de imprimir, llama a PrintUI. Una vez que se ejecuta esta clase, crea un Thread, ThreadMain, para poder comunicarse con el servidor de la impresora.

La clase PrintUI, generada por la clase MainUI, se ha desarrollado para todo el proceso de recepcin e impresin de la aplicacin. Cuando se va a imprimir un documento, esta clase crea un objeto de Print, para realizar dicha funcin. Esta clase genera un interfaz diferente en cada momento de la aplicacin (Durante el proceso de impresin) gracias a las funciones paso1 () y paso2 (). Presenta una funcin pintarInterfaz estndar para todo el proceso. () que produce un interfaz

57

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

La clase ScanUI, generada por la clase MainUI, se ha desarrollado para todo el proceso de escaneo y de envi de archivos de la aplicacin. Esta clase cada vez que se va a realizar un escaneo, instancia un objeto Scan. Para poder mostrar al usuario los dispositivos bluetooth, crea objetos Dispositivo, con informacin de ellos, y tambin cada vez que enva un archivo escaneado, genera la clase ScanDoc. Esta clase genera un interfaz diferente en cada momento de la aplicacin (Durante el proceso de escaneo) gracias a las

funciones paso1 (), paso2 (), paso3 () y paso4 (). Tambin se ha desarrollado un funcin para eliminar todos los archivos escaneados despus del escaneo gracias a la funcin eliminarEscaneados () .Al igual que en la clase PrintUI presenta la funcin pintarInterfaz () que produce un interfaz estndar para todo el proceso.

58

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

5.2.2. Paquete run

A continuacin se muestra el diagrama de clases del paquete run. En este paquete se encuentran tanto las clases que realizar el escaneo (Scan) e impresin pura (Print), como el thread que recoge toda la informacin para el sistema.

Esta clase ha desarrollado un interface de red para que la aplicacin se pueda comunicar con el servidor de la impresora. Esto va a permitir recibir documentos para imprimirlos como enviar documentos escaneados. Cada vez que recibe archivos a imprimir, crear objetos Archivo y PrintDoc, para la gestin del proceso de imprimir. ThreadMain hereda de Thread y toda su implementacin se encuentra en el mtodo run ().

59

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

La clase Print representa la impresin del documento. Esta ser la encargada de realizar toda la impresin pura. Como se puede ver en el constructor, para la creacin de la clase Print, es necesario recibir el fichero a imprimir, adems de la clase principal y una etiqueta. Con el mtodo start (), empieza todo el proceso. Luego con el mtodo attributeUpdate

(PrintServiceAttributeEvent ev) cambia el estado de la impresin (escribiendo, parado, activo, procesando), y con los cinco ltimos mtodos del diagrama de la clase Print, sirve para indicar como se ha desarrollando el proceso, si la impresin se ha cancelado, si se ha completado, si ha fallado...

La clase Scan representa el escaneo del documento. Esta ser la encargada de realizar todo el escaneo puro. Con el mtodo start (), empieza todo el proceso. Luego con el mtodo attributeUpdate

(ScanServiceAttributeEvent ev) cambia el estado de la impresin (escribiendo, parado, activo, procesando), y con los cinco ltimos mtodos del diagrama de la 60

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 clase Scan, sirve para indicar como se ha desarrollando el proceso, si la impresin se ha cancelado, si se ha completado, si ha fallado... Una vez que el proceso ha terminado, con el mtodo archivosEscaneados () guarda todos los documentos escaneados.

5.2.3. Paquete Util

El siguiente diagrama de clases, es el del paquete util. El contenido de este paquete est formado por clases que representan bien el documento escaneado (ScanDoc), el documento enviado a imprimir (PrintDoc), el documento a imprimir (Archivo), el dispositivo bluetooth (Dispositivo) y por ltimo un panel de informacin (DialogInfo).

La clase ScanDoc representa el documento escaneado real. Contiene en su constructor el nombre del documento, contenido del documento y el dispositivo bluetooth que va a recibirlo. Presenta los clsicos mtodos getters para obtener los atributos y los mtodos setters para introducirlos. Es creado por la clase ScanUI.

61

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

La clase PrintDoc representa el documento a imprimir enviado por el dispositivo bluetooth. Contiene en su constructor el nombre del documento y contenido del documento. Presenta los clsicos mtodos getters para obtener los atributos y los mtodos setters para introducirlos. Es creado por la clase ThreadMain.

La clase Dispositivo se relaciona con el dispositivo bluetooth. Contiene en su constructor el nombre del dispositivo. Esta clase Dispositivo su funcin es guardar el nombre del dispositivo para cada uno conectado a la red bluetooth cuando la aplicacin realiza la bsqueda de dispositivos. Presenta los clsicos mtodos getters para obtener los atributos y los mtodos setters para introducirlos.

62

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

La clase Archivo representa el documento a imprimir ya recibido. Cuando la aplicacin ha recibido el fichero, guarda su nombre para poder luego saber qu documento se va imprimir en la impresora Multifuncion. Contiene en su constructor el nombre del documento. Presenta los clsicos mtodos getters para obtener los atributos y los mtodos setters para introducirlos.

La clase DialogInfo representa paneles de informacin cuando la aplicacin ejecuta correctamente e incorrectamente las acciones a realizar. Su nica funcin mostrarInfo (), muestra la informacin correspondiente a la accin ejecutada. Es llamada desde cualquier clase.

5.2.4. Paquete Server.bluetooth


A continuacin se muestra el diagrama de clases del paquete Server.bluetooth. Aqu se encuentran todas las clases que realizan el descubrimiento de dispositivos (RemoteDeviceDiscovery) y servicios bluetooth (ServicesSearch). La inicializacin la realiza BluetoothClient.

La clase BluetoothClient

inicializa todo el proceso de bsqueda de

dispositivos y bsqueda de servicios Obex, llamando a la clase ServicesSearch. No

63

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 tiene mtodos asociados, simplemente un constructor que es llamado desde el mtodo main ().

La clase RemoteDevideDiscovery representa la bsqueda pura de dispositivos bluetooth. Esta clase es llamada desde la clase ServicesSearch, para despus de encontrar dispositivos remotos, puedo ver si tienen servicios Obex. El mtodo Synchronized (inquiryCompletedEvent), se utiliza para ir captando los dispositivos. Mientras que los otros mtodos el primero devideDiscovery (), almacena los nombres de dichos dispositivos y el mtodo inquiryCompleted (int discType) representa el final de la pregunta por la existencia de dispositivos bluetooth.

La clase ServicesSearch es que la que realiza propiamente la bsqueda de servicios de transferencia de archivos, servicio Obex. Despus de ser creada por la clase BluetoothClient, y una vez llamado a la clase

RemoteDevideDiscovery, la aplicacin ya habr encontrado a los dispositivos bluetooth conectados a la red, entonces esta clase busca servicios Obex de transferencia de archivos, en cada dispositivo bluetooth.

64

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

5.2.5. Paquete Server.obex


Se muestra el diagrama de clases del paquete Server.obex. Este paquete est formado por 2 clases que realizar el intercambio de archivos mediante el protocolo Obex. La recepcin se consigue con OBEXServer y el envo con OBEXClient.

Esta clase OBEXServer su funcin es la de recibir los documentos directamente de los dispositivos remotos bluetooth, mediante el protocolo de transferencia Obex. Es llamada cuando el servidor arranca, es decir, cuando arranca la clase ServerThread. Cada vez que reciba un archivo, creara un objeto PrintDoc. El mtodo onPut (Operation op), es el encargado de ejecutar las acciones necesarias para llevar el acabo el trabajo descrito anteriormente.

Esta clase OBEXClient su funcionalidad es la de enviar los documentos directamente de los dispositivos remotos bluetooth, mediante el protocolo de transferencia Obex. Cada vez que se vaya a enviar un documento va bluetooth, ser instanciada. Como se puede ver en el diagrama de su clase, para su creacin necesita el documento escaneado que va a ser enviado.

65

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

5.2.6. Paquete Server.run

El siguiente diagrama de clases, es del paquete Server.run. Slo est formado por la clase ThreadServer.

La clase ThreadServer hereda de Thread, y permite comunicar la impresora Multifuncin con los dispositivos bluetooth. Gestiona toda la funcionalidad del servidor. La Api de Ricoh no permite trabajar con los paquetes Obex y bluetooth, por lo que es necesario el desarrollo de esta clase, para comunicarnos mediante TCP/IP con la impresora MF y luego mediante bluetooth con los dispositivos remotos. Esta clase va a recibir por parte de la impresora solicitudes de bsqueda de dispositivos, adems del archivo escaneado que se quiere enviar mediante bluetooth (ObexClient). Iniciar el proceso de bsqueda de dispositivos (obejtos BluetoothClient), y estar a la espera de recibir archivos para imprimir a travs de la red bluetooth (ObexServer). Al heredar de Thread, simplemente tiene el mtodo run (), donde implementa todo su funcionalidad.

66

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

6. Desarrollo
Habiendo realizado con anterioridad un exhaustivo estudio de todas las tecnologas necesarias, y de haber hecho un diseo de en que va a consistir nuestro sistema pasarela printerMF - Bluetooth, lo siguiente que a realizar programar toda las funcionalidades descritas a lo largo del proyecto.

6.1.

Funcionalidades

Se va mostrar el cdigo que se ha desarrollado para cada uno de los procesos a conseguir en el transcurso del proyecto. Cada uno de los objetivos, los clasificaremos en las funcionalidades siguientes:

6.1.1. Funcin print

La clase desarrollada Print, se instancia en con una serie de argumentos, el fichero a imprimir, un objeto MainUI, y una etiqueta para poder ir mostrando el proceso de impresin. Dentro del constructor se puede observar, que se realiza el establecimiento de los atributos bsicos para la impresin. Se busca un printService (Servicio de impresin) a travs de un PrintServiceLookup y se aaden los listeners del servicio de impresion.

public Print(File _fileAImprimir, MainUI _main, Label _lblEstado) { // Captura de argumentos main = _main; lblEstado = _lblEstado; fileAImprimir = _fileAImprimir; // Establecimiento de atributos por defecto, siempre seran estos. attributeSet = new HashPrintRequestAttributeSet(); attributeSet.add(new Copies(1)); attributeSet.add(Sides.DUPLEX); // Obtencion del servicio de impresion

67

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
printServices = PrintServiceLookup.lookupPrintServices(docFlavor, attributeSet); pService = printServices[0]; if(pService != null) { pService.addPrintServiceAttributeListener(new PrintSvListener()); } }

Cuando

llaman

al

mtodo

start(),

se

usar

un

printService.createPrintJob() para obtener un docPrintJob (un trabajo de impresin). Despus se crea un SimpleDoc, que apunte a los datos a imprimir. Aadiremos listeners del trabajo de impresin al DocPrintJob y por ltimo se llamar a DocPrintJob.print con el SimpleDoc para realizar la impresin pura.

public void start() { // Creacion del job docPrintJob = pService.createPrintJob(); // La impresin pura try { printDoc = new SimpleDoc(fileAImprimir.toURL(), docFlavor, null); } catch (MalformedURLException ex) { new Dialogo(main).mostrarInfo(new Text("ERROR!-No-se-hapodido-capturar-el-comprobante-para-imprimir.")); } // Se le anyaden los listeners docPrintJob.addPrintJobListener(new PrintJbListener()); // Ejecucion del scaning try { docPrintJob.print(printDoc, attributeSet);

68

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
} catch (PrintException e) { new Dialogo(main).mostrarInfo(new Text("ERROR!-No-se-hapodido-imprimir-correctamente,-reinice-por-favor.")); } fileAImprimir.delete(); }

Se muestra a continuacin los Listeners del servicio de impresin. Muestra el estado de la impresora cuando cambia. Ese estado puede variar entre activo, parado y procesando a travs del PrinterState.

// Listener de la impresion private class PrintSvListener implements PrintServiceAttributeListener { private PrinterState state; public PrintSvListener() { state = PrinterState.IDLE; } public PrinterState getPrinterState() { return state; } // Metodo que se le llama cuando el estado de la impresora cambia public void attributeUpdate(PrintServiceAttributeEvent ev) { PrintServiceAttributeSet atrSet = ev.getAttributes(); Attribute[] atts = atrSet.toArray(); for(int cnt=0; cnt<atts.length; cnt++) { if(atts[cnt].getCategory().equals(PrinterState.class)) { state = (PrinterState)atts[cnt]; if(state == PrinterState.IDLE) { System.out.println(ACTIVO);

69

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
} else if(state == PrinterState.PROCESSING) { System.out.println(PROCESANDO); } else if(state == PrinterState.STOPPED) { System.out.println(PARADO); } else if(state == PrinterState.UNKNOWN) { System.out.println(PROCESANDO); } } else if(atts[cnt].getCategory().equals(PrinterStateReasons.class)) { stateReasons = printerStateReasons)atts[cnt]; } } } }

70

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Lo siguiente es implementar los listeners del trabajo de impresin. Durante la impresin puede haber habido algn tipo de problemas. Con las funciones dentro de esta clase permite mantener informado al usuario del trabajo de impresin. Algunas de las informaciones expuestas son: Impresin cancelada, impresin fallida, alimentador vacio, la impresin requiere atencin tcnica

// Listener de los job's private class PrintJbListener extends PrintJobAdapter { public void printDataTransferCompleted(PrintJobEvent ev) { lblEstado.setText(new Text("DOCUMENTO IMPRIMIDO")); lblEstado.repaint(); } public void printJobCanceled(PrintJobEvent ev) { lblEstado.setText(new Text("Impresion-cancelada")); lblEstado.repaint(); } public void printJobCompleted(PrintJobEvent ev) { lblEstado.setText(new Text("DOCUMENTO IMPRIMIDO ")); lblEstado.repaint(); } public void printJobFailed(PrintJobEvent ev) { lblEstado.setText(new Text("Impresion-fallida")); lblEstado.repaint(); } public void printJobRequiresAttention(PrintJobEvent ev) { lblEstado.setText(new Text("La-impresora-requiere-atencion-tecnica")); Set set = ((PrinterStateReasons)(stateReasons)).printerStateReasonSet(Severity.ERROR); if(set.size() > 0) { if(set.contains(PrinterStateReason.DEVELOPER_EMPTY)) {

71

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
lblEstado.setText(new Text("Alimentador-vacio")); try { ((CancelablePrintJob)docPrintJob).cancel(); } catch(PrintException ex) { new Dialogo(main).mostrarInfo(new Text("ERROR!-No-se-ha-podido-cancelar-la-impresion.")); } } else if(set.contains(PrinterStateReason.OTHER)) { lblEstado.setText(new Text("Impresion-fallida-por-causasdesconocidas")); try { ((CancelablePrintJob)docPrintJob).cancel(); } catch(PrintException ex) { new Dialogo(main).mostrarInfo(new Text("ERROR!-No-se-ha-podido-cancelar-la-impresion.")); } } else if(set.contains(PrinterStateReason.MEDIA_JAM)) lblEstado.setText(new Text("Atasco-de-papel")); else if(set.contains(PrinterStateReason.MEDIA_NEEDED)) lblEstado.setText(new Text("Se-necesita-papel")); else if(set.contains(PrinterStateReason.DOOR_OPEN)) lblEstado.setText(new Text("Cubierta-abierta")); else if(set.contains(PrinterStateReason.TONER_EMPTY)) lblEstado.setText(new Text("Toner-agotado")); else if(set.contains(PrinterStateReason.MARKER_SUPPLY_EMPTY)) { lblEstado.setText(new Text("Marcador-de-alimentadorvacio")); try { ((CancelablePrintJob)docPrintJob).cancel(); } catch(PrintException ex) { new Dialogo(main).mostrarInfo(new Text("ERROR!-No-se-ha-podido-cancelar-la-impresion.")); } } else if(set.contains(PrinterStateReason.OPC_LIFE_OVER)) {

72

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
lblEstado.setText(new Text("Vida-del-OPC-finalizada")); try { ((CancelablePrintJob)docPrintJob).cancel(); } catch(PrintException ex) { new Dialogo(main).mostrarInfo(new Text("ERROR!-No-se-ha-podido-cancelar-la-impresion.")); } } else if(set.contains(PrinterStateReason.MARKER_WASTE_FULL)) lblEstado.setText(new Text("Papelera-llena")); else if(set.contains(PrinterStateReason.OUTPUT_AREA_FULL)) lblEstado.setText(new Text("Bandeja-de-salida-llena")); else if(set.contains(PrinterStateReason.INPUT_TRAY_MISSING)) lblEstado.setText(new Text("Falta-bandeja-de-entrada")); else if(set.contains(PrinterStateReason.OUTPUT_TRAY_MISSING)) lblEstado.setText(new Text("Falta-bandeja-de-salida")); else if(set.contains(PrinterStateReason.TIMED_OUT)) lblEstado.setText(new Text("Impresion-fuera-detiempo")); } set = ((PrinterStateReasons)(stateReasons)).printerStateReasonSet(Severity.WARNING); if(set.size() > 0) { if(set.contains(PrinterStateReason.TONER_LOW)) lblEstado.setText(new Text("Nivel-de-Toner-BAJO")); else if(set.contains(PrinterStateReason.PAUSED)) lblEstado.setText(new Text("PARADO")); } lblEstado.repaint(); } }

73

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

6.2.

Funcin scan

La clase desarrollada Scan, se instancia en con una serie de argumentos, el nombre del documento, un objeto MainUI, y una etiqueta para poder ir mostrando el proceso de escanear. Dentro del constructor se puede observar, que se realiza el establecimiento de los atributos bsicos para el escaneo. Se busca un scanService a travs de un ScanServiceLookup y se aaden los listeners del servicio de escaneo.

public Scan(String _nomDocumento, MainUI _main, Label _lblEstado) { // Captura de argumentos mainUI = _main; nombreDoc = _nomDocumento; lblEstado = _lblEstado; xletContext = _main.getContext(); // Establecimiento de atributos por defecto, siempre seran estos. attrSet = new HashScanRequestAttributeSet(); attrSet.add(ScanSides.DUPLEX); attrSet.add(ScanPixelDepth.DEPTH_BITS_8); attrSet.add(ScanCompression.JPEG); attrSet.add(ScanSourceMode.MANUAL_MODE); // Obtencion del servicio de Scaneo scanService = ScanServiceLookup.lookupScanService(scanDocFlavor, attrSet); if(scanService != null) { serviceListener = new ScanSvListener(); scanService.addScanServiceAttributeListener(serviceListener); } }

74

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Funcin para obtener los documentos escaneados.

public ArrayList archivosEscaneados() { ArrayList array =archivo.getFileNames(); return array; }

Cuando llaman al mtodo start(), se usar un scanService.createScantJob() para obtener un docScanJob, un trabajo de escaneo. Luego se ha de crear un SimpleScanDoc, con el scanDocFlavor y el array de archivos que se generan al escanear. Se aadirn los listeners del trabajo de escaneo al DocScanJob y por ultimo se llamar a DocScanJob.scan con el SimpleDoc para el escaneo puro.

public void start() { job = scanService.createScanJob(); StringBuffer sb = new StringBuffer(); sb.append((String) xletContext.getXletProperty(XletContext.HOME)); sb.append("\\ArchivosGenerados\\"); archivo = new OutputFiles(sb.toString(), nombreDoc); // El scan puro try { scanDoc = new SimpleScanDoc(archivo, scanDocFlavor, null); } catch (ScanException e) { new DialogInfo(mainUI).mostrarInfo(new Text("ERROR!-No-se-ha-podidocancelar-el-servicio-de-scaneo.")); } // Se le aaden los listeners scanJbListener = new ScanJbListener(); job.addScanJobListener(scanJbListener);

75

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

// Ejecucion del scaning try { job.scan(scanDoc, attrSet); } catch (ScanException e) { new DialogInfo(mainUI).mostrarInfo(new Text("ERROR!-No-se-ha-podidoscanear-correctamente,-reinicie-por-favor.")); } //this.end(); }

Se aaden los listeners del trabajo de escaneo. Durante el escaneo puede haber habido algn tipo de problemas. Con las funciones dentro de esta clase permite mantener informado al usuario del trabajo de escaneo. Algunas de las informaciones expuestas son: Trabajo cancelado, trabajo fallido, documento escaneado, escaneando, atasco en el escner.

// Listener de los job's private class ScanJbListener implements ScanJobListener { public void scanJobCanceled(ScanJobEvent ev) { lblEstado.setText(new Text("Trabajo Cancelado")); lblEstado.repaint(); } public void scanJobFailed(ScanJobEvent ev) { lblEstado.setText(new Text("Trabajo Fallido")); lblEstado.repaint(); } public void scanJobScanEnd(ScanJobEvent ev) { lblEstado.setText(new Text("Documento adjuntado correctamente")); lblEstado.repaint(); }

76

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
public void scanJobCompleted(ScanJobEvent ev) { lblEstado.setText(new Text("DOCUMENTO ESCANEADO")); lblEstado.repaint(); } public void scanJobRequiresAttention(ScanJobEvent ev) { Set set = ((ScannerStateReasons)(stateReasons)).scannerStateReasonSet(Severity.ERROR); if(set.size() > 0) { if(set.contains(ScannerStateReason.COVER_OPEN)) lblEstado.setText(new Text("Cubierta-abierta")); else if(set.contains(ScannerStateReason.DOWN)) lblEstado.setText(new Text("Funcion-de-scanestropeada")); else if(set.contains(ScannerStateReason.MEDIA_JAM)) lblEstado.setText(new Text("Atasco-en-el-scanner")); else if(set.contains(ScannerStateReason.OTHER)) lblEstado.setText(new Text("Problema-no-identificado-enel-scanner")); job.cancelScanJob(); } set = ((ScannerStateReasons)(stateReasons)).scannerStateReasonSet(Severity.WARNING); if(set.size() > 0) { if(set.contains(ScannerStateReason.CONNECTING_TO_DEVICE)) { lblEstado.setText(new Text("Conectando-aldispositivo...")); job.cancelScanJob(); } else if(set.contains(ScannerStateReason.DPX_ORIGINAL_LEFT)) lblEstado.setText(new Text("Se-ha-dejado-el-original")); else if(set.contains(ScannerStateReason.GLASS_DIRT)) lblEstado.setText(new Text("Cristal-sucio")); else if(set.contains(ScannerStateReason.LIFT_UP)) lblEstado.setText(new Text("Scan-averiado")); else if(set.contains(ScannerStateReason.ORG_SIZE_UNKNOWN)) lblEstado.setText(new Text("Tamanyo-del-originaldesconocido")); else if(set.contains(ScannerStateReason.ORIGINAL_EXIST)) lblEstado.setText(new Text("El-original-existe")); else if(set.contains(ScannerStateReason.ORIGINAL_LEFT)) lblEstado.setText(new Text("Se-ha-dejado-el-original")); } lblEstado.repaint();} }

77

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

6.3.

Funcin interface de red

El paquete de trabajo Ricoh, no soporta los paquetes javax.obex ni javax.bluetooth, la aplicacin necesita de un interface TCP/IP para poder comunicarnse con un pequeo servidor y poder realizar la funcin de bluetooth. En la clase ThreadMain (Hilo principal del sistema de la impresora), que hereda de Thread, se crea una conexin TCP/IP con el servidor, y se podr realizar el intercambio de archivos.

try { so= new Socket("172.16.0.5", 6121); } catch(IOException ex) { ex.printStackTrace(); }

A continuacin se muestra el cdigo del mtodo run (). Se recibe mediante conexin IP, los nombres de los dispositivos en vectorDisp para poder mostrarlos al usuario de la impresora y el documento a imprimir a travs del PrintDoc.
Try { is = so.getInputStream(); ois = new ObjectInputStream(is); Object o= ois.readObject(); if(o instanceof Vector) { vectorDisp.removeAllElements(); vectorDisp = (Vector)o; main.lblImprimir.setText("Busqueda completada"); main.lblImprimir.setLocation(240, 155); main.lblImprimir.repaint(); } else { //Nos creamos el documento a imprimir

78

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
PrintDoc f = (PrintDoc)o; String nombre =f.getNombreFichero(); Object obj = f.getObjeto(); Archivo arch= new Archivo(nombre); //Lo aadimos a la cola de impresion main.Aadir_A_Cola(arch); //Nos creamos un fichero con lo recibido String rNueva = (String)main.getContext().getXletProperty(XletContext.HOME); rNueva = rNueva+"\\archivosAImprimir\\"+nombre; System.out.println("Ruta la la creacion del nuevo fichero: "+ rNueva); File fich = new File(rNueva); //Escribimos el fichero FileOutputStream fos = new FileOutputStream(fich); fos.write((byte[])obj); fich.delete(); fos.close(); } } catch(IOException e) { System.out.println(e); sw=false; } catch(ClassNotFoundException ex) { System.out.println(ex); sw=false; }

Tambin se ha desarrollado una clase llamada ThreadServer, que implementa la funcionalidad del pequeo servidor de la impresora. Crea una conexin servidora TCP/IP.
try { ss= new ServerSocket(6121); so= ss.accept(); } catch(IOException e) { e.printStackTrace(); }

79

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 La implementacin de su mtodo run () consiste en lo siguiente: Recibe el archivo escaneado, y lo manda por bluetooth, tambin enva el archivo a imprimir (recibido por bluetooth) mediante IP al sistema de la impresora. Tambin enva los nombres los nombres de los dispositivos bluetooth para informacin del usuario.
try { is = so.getInputStream(); ois = new ObjectInputStream(is); Object o = ois.readObject(); if(o instanceof ScanDoc) { ScanDoc sdoc = (ScanDoc)o; new OBEXClient(sdoc); } else if(o instanceof String) { if (segunda_vez==true) { vector.removeAllElements(); ServicesSearch.v.removeAllElements(); } segunda_vez=true; BluetoothClient.main(null); for (Enumeration en = ServicesSearch.v.elements(); en.hasMoreElements();) { RemoteDevice btDevice = (RemoteDevice) en.nextElement(); String nombre=btDevice.getFriendlyName(false); System.out.println(nombre); Dispositivo device = new Dispositivo(nombre); vector.add(device); } oos = new ObjectOutputStream(so.getOutputStream()); oos.writeObject(vector); }

} catch(IOException e1) { e1.printStackTrace(); sw=false;

80

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
} catch(Exception e2) { sw=false; e2.printStackTrace(); }

6.4.

Funcin bluetooth

En una comunicacin Bluetooth existe un dispositivo que ofrece un servicio (servidor) y otros dispositivos acceden a l (clientes). Un cliente Bluetooth deber realizar las siguientes operaciones para comunicarse con un servidor Bluetooth:

Bsqueda de dispositivos Bsqueda de servicios Establecimiento de la conexin Comunicacin

El punto de partida es la clase LocalDevice que representa el dispositivo en el que se est ejecutando la aplicacin. Este objeto es un singleton y se obtiene mediante LocalDevice.getLocalDevice (). Este objeto permite obtener informacin sobre el dispositivo: modo de conectividad, direccin bluetooth y nombre del dispositivo. El primer paso que debe realizar un cliente es realizar una bsqueda de dispositivos. Para ello se deber obtener un objeto DiscoveryAgent. Este objeto es nico y se obtiene a travs del objeto LocalDevice.DiscoveryAgent da = ocalDevice.getLocalDevice ().getDiscoveryAgent ();
synchronized(serviceSearchCompletedEvent) { LocalDevice.getLocalDevice().getDiscoveryAgent().searchServices(attrIDs, searchUuidSet, btDevice, listener); serviceSearchCompletedEvent.wait(); }

81

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 As pues, se puede obtener el nombre del dispositivo mediante getFriendlyName() y su direccin bluetooth mediante getBluetoothAddress().

Se podra omitir la bsqueda de dispositivos y pasar directamente a la bsqueda de servicios en caso de que se desease conectar con alguno de los dispositivos pertenecientes a alguna de estas listas. Sin embargo lo ms comn ser intentar conectar con un dispositivo encontrado en una bsqueda de dispositivos, debido a que obviamente se tendr al alcance.

Una bsqueda de dispositivos se inicia llamando al mtodo startInquiry(). Este mtodo requiere un argumento de tipo DiscoveryListener. DiscoveryListener es una interfaz que se implementar a nuestra conveniencia y que ser usada para que el dispositivo notifique eventos a la aplicacin cada vez que se descubre un dispositivo, un servicio, o se finaliza una bsqueda.

synchronized(inquiryCompletedEvent) { boolean started LocalDevice.getLocalDevice().getDiscoveryAgent().startInquiry(DiscoveryAgent.GIAC, listener); if (started) { inquiryCompletedEvent.wait(); System.out.println(devicesDiscovered.size() + " dispositivo/s encontrados"); } }

Estos son los cuatro mtodos de la interfaz DiscoveryListener:

deviceDiscovered() inquiryCompleted() servicesDiscovered() serviceSearchCompleted() 82

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Los dos primeros mtodos son llamados en el proceso de bsqueda de dispositivos. Los otros dos son llamados en procesos de bsqueda de servicios. Cada vez que un dispositivo es encontrado se llama al mtodo deviceDiscovered() pasando un argumento de tipo RemoteDevice.

public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod) { System.out.println("Dispositivo " + btDevice.getBluetoothAddress() + " encontrado"); devicesDiscovered.addElement(btDevice); try { System.out.println(" nombre " + btDevice.getFriendlyName(false)); } catch (IOException cantGetDeviceName) { } }

Una vez que la bsqueda de dispositivos ha concluido se llama al mtodo inquiryCompleted () pasando como argumento un entero que indica el motivo de la finalizacin. Este entero puede valer:

DiscoveryListener.INQUIRY_COMPLETED si la bsqueda concluy con normalidad. DiscoveryListener.INQUIRY_TERMINATED si la bsqueda ha sido cancelada manualmente DiscoveryListener.INQUIRY_ERROR si se produjo un error en el proceso de bsqueda.

83

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
public void inquiryCompleted(int discType) { System.out.println("Pregunta de completada!"); synchronized(inquiryCompletedEvent){ inquiryCompletedEvent.notifyAll(); } }

dispositivos

Ya se ha conseguido dar el primer paso para realizar una conexin cliente. El siguiente paso es realizar una bsqueda de servicios. Antes de seguir se debe comprender ciertos conceptos.

Una aplicacin cliente es una aplicacin que requiere un servidor para que le ofrezca un servicio. Este servicio puede ser: un servicio de impresin, un servicio de videoconferencia, un servicio de transferencia de archivos, etc. En una comunicacin TCP-IP un cliente se conecta directamente a un servidor del que conoce el servicio que ofrece, es decir, se conocer a priori la localizacin del servidor y el servicio que nos ofrecer; sin embargo un cliente Bluetooth no conoce de antemano qu dispositivos tiene a su alcance ni cules de ellos pueden ofrecerle el servicio que necesita. De modo que un cliente Bluetooth necesita primero buscar los dispositivos que tiene a su alcance y posteriormente les preguntar si ofrecen el servicio en el que est interesado. Este ltimo proceso se denomina bsqueda de servicios y es el siguiente paso que un cliente debe realizar.

Cada servicio es identificado numricamente. Es decir, a cada servicio se le asgina un nmero y para referirnos a dicho servicio se usar su nmero asociado. Este identificador se denomina UUID (Universal Unique IDentifier). Adicionalmente, cada servicio tiene ciertos atributos que lo describen. Por ejemplo un servicio de impresin podra describirse por diversos atributos como: tipo de papel (dinA4, USletter,), tipo de tinta (color, blanco y negro), etc. Los atributos tambin estn identificados numricamente, es decir, para referirse a un atributo se usa su nmero asociado. 84

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Las bsquedas de dispositivos tambin se realizan mediante el objeto DiscoveryAgent. Concretamente se usar el mtodo searchServices() al que le se tendr que pasar un objeto DiscoveryListener que recibir los eventos de la bsqueda, el dispositivo en el que realizar la bsqueda (un objeto RemoteDevice que normalmente se obtiene en la bsqueda de dispositivos), los servicios en los que se est interesado, y los atributos que se quiere conocer sobre dichos servicios (tipo de papel, tipo de tinta, etc). Por ejemplo un cliente que est interesado en un servicio de impresin, para imprimir un texto probablemente slo le interese conocer el tipo de papel, sin embargo si queremos imprimir una imagen estar tambin interesados en si soporta o no tinta de color.

synchronized(serviceSearchCompletedEvent) { LocalDevice.getLocalDevice().getDiscoveryAgent().searchServices(attrIDs, searchUuidSet, btDevice, listener); serviceSearchCompletedEvent.wait(); }

Si se encuentra algn servicio se nos notificar a travs del objeto DiscoveryListener mediante el mtodo servicesDiscovered (). Se pasar un array de objetos ServiceRecord que encapsulan los atributos de servicio que se solicita al invocar la bsqueda. Los valores de estos atributos de servicio son objetos DataElement. Un objeto DataElement encapsula los tipos de datos en los que puede ser representado un atributo de servicio. Estos pueden ser: nmeros enteros de diferente longitud con o sin signo, cadenas de texto, URLs, booleanos, o colecciones de DataElements.

85

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
public void servicesDiscovered(int transID, ServiceRecord[] servRecord) { for (int i = 0; i < servRecord.length; i++) { String url = servRecord[i].getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false); if (url == null) { continue; } serviceFound.add(url); DataElement serviceName = servRecord[i].getAttributeValue(0x0100); if (serviceName != null) { System.out.println("servicio " + serviceName.getValue() + " encontrado " + url); } else { System.out.println("servicio encontrado " + url); } } }

Un ServiceRecord es, pues, como una tabla que relaciona los identificadores de los atributos con sus valores (objetos DataElement). Cuando finalice la bsqueda de servicios se notificar mediante una llamada al mtodo serviceSearchCompleted () de la interfaz DiscoveryListener. Se pasar un argumento de tipo entero indicando el motivo de la finalizacin. Este entero puede valer:

SERVICE_SEARCH_COMPLETED: la bsqueda ha finalizado con normalidad. SERVICE_SEARCH_TERMINATED: la bsqueda ha sido cancelada manualmente. SERVICE_SEARCH_NO_RECORDS: no existe la informacin solicitada. SERVICE_SEARCH_ERROR: finaliz por un error. SERVICE_SEARCH_DEVICE_NOT_REACHABLE: el dispositivo no est a nuestro alcance.

86

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

public void serviceSearchCompleted(int transID, int respCode) { synchronized(serviceSearchCompletedEvent) { serviceSearchCompletedEvent.notifyAll(); } }

Estas constantes son miembros de la interfaz DiscoveryListener. Si se ha encontrado algn servicio que interesa se pasar al siguiente paso: abrir la conexin. No se necesita construir la URL a mano ya que el objeto ServiceRecord posee un mtodo que ahorra esta tarea: getConnectionURL(). Luego la comunicacin de transferencia de archivos corresponde al protocolo Obex, que se explicara a continuacin.

6.5.

Funcin transferencia de archivo mediante Obex

Una de las principales funciones de la aplicacin, es la transferencia de documentos mediante el protocolo Obex para la comunicacin bluetooth. Para el desarrollo de este objetivo, como ya se ha mencionado anteriormente, en el captulo del estudio de las tecnologas, es necesario aadir el paquete javax.obex. Este paquete es totalmente independiente del paquete javax.bluetooth, es decir, cuando se haga una aplicacin utilizando el protocolo OBEX no se usa ninguna de las clases del paquete javax.bluetooth.

Pues se ha desarrollado dos clases una como cliente para el envo de ficheros y otra como servidor para la recepcin de archivos.

La clase OBEXClient, despus de haberse buscado todos los dispositivos, es la encargada de crear la conexin Obex con dicho dispositivo. Primero obtiene la 87

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 direccin del servicio Obex, despus crea un objeto ClientSession, para establecer la conexin con el dispositivo a travs de Connector.open().

// Nos conectamos al dispositivo seleccionado serverURL = (String) ServicesSearch.serviceFound.elementAt(posDispositivo); ClientSession clientSession = (ClientSession) Connector.open(serverURL);

Una vez creada la conexin del servicio Obex, el siguiente paso es la creacin de la cabeceras a travs de clientSession.createHeaderSet(), donde se le indicar el nombre y tipo de archivo a enviar. A continuacin se implementa la conexin put, que es la operacin que permite enviar el archivo.
//Creamos las cabeceras HeaderSet hsOperation = clientSession.createHeaderSet(); hsOperation.setHeader(HeaderSet.NAME, "foto.jpg"); hsOperation.setHeader(HeaderSet.TYPE, "image/jpeg"); //Crea una conexion PUT Operation putOperation = clientSession.put(hsOperation); OutputStream os = putOperation.openOutputStream(); //Enviamos el archivo Object obj = sdoc.getObjeto(); os.write((byte[])obj); //Cerramos las conexiones os.close(); putOperation.close(); clientSession.disconnect(null); clientSession.close(); e.printStackTrace();

88

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 La clase OBEXServer, es la encargada recibir los archivos mediante el protocolo Obex. En primer lugar, obtendr su dispositivo local bluetooth a travs de LocalDevice.getLocalDevice() y el servicio Obex para la recepcin de archivos a gracias al Connector.open ().
//Descubrimiento del dispositivo local Bluetooth LocalDevice.getLocalDevice().setDiscoverable(DiscoveryAgent.GIAC); SessionNotifier serverConnection = (SessionNotifier) Connector.open("btgoep://localhost:"+ serverUUID + ";name=ObexExample");

Una vez establecido tanto el dispositivo bluetooth local y el servicio local Obex, cuando algn dispositivo bluetooth nos intente crear un conexin Obex para la transferencia de archivos, la clase OBEXServer aceptar la conexin a travs del un objeto RequestHandler. Esta clase implementa el metodo onPut(), que se explicara en el siguiente paso.

RequestHandler handler = new RequestHandler(); serverConnection.acceptAndOpen(handler); System.out.println("Conexion OBEX recibida (++count));

"

El metodo onPut, es el encargado de toda la recepcin. Con el metodo op.getReceivedHeaders(), recibe la cabecera del archivo, para poder obtener el nombre del archivo. A travs de op.openInputStream(), siendo op una ocurrencia del objeto Operator, se consigue la recepcin del contenido del fichero.
public int onPut(Operation op) { try { //Nos creamos las cabeceras y obtenemos informacino del archivo HeaderSet hs = op.getReceivedHeaders(); String name = (String) hs.getHeader(HeaderSet.NAME); String tipo = (String) hs.getHeader(HeaderSet.TYPE);

89

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08
if (name != null) { System.out.println("name:" + name); System.out.println("type:" + tipo); } //Recibimos el fichero InputStream is = op.openInputStream(); byte bt[]=new byte[buffer]; is.read(bt); //Cerrramos conexion op.close(); is.close();

//Nos creamos el objeto PrintDoc para enviar el fichero a la impresora PrintDoc pd= new PrintDoc(name, bt); ObjectOutputStream oos = new ObjectOutputStream(ThreadServer.so.getOutputStream()); oos.writeObject(pd); return ResponseCodes.OBEX_HTTP_OK; } catch (IOException e) { e.printStackTrace(); return ResponseCodes.OBEX_HTTP_UNAVAILABLE; } }

90

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

7. Implantacin y Pruebas
Ya se ha desarrollado todo el cdigo de la aplicacin, implementando todas las funcionalidades de escanear, imprimir, enviar y recibir documento mediante bluetooth. Ahora es el momento, primeramente de estudiar cmo se va a implantar la aplicacin software desarrollada en la impresora Multifuncin.

7.1.

Estudio de la tecnologa portable


En primer lugar se tendr que ver con que tecnologa portable podemos

ejecutar el sistema dentro de la impresora multifuncin aficio c2500. Para ello, viendo las especificaciones tcnicas de nuestra impresora, llegamos a la conclusin de que la tarjeta SD es la indicada.

7.1.1. Tarjetas SD
Primeramente se va a explicar brevemente en qu consisten las tarjetas SD.

Qu son las tarjetas SD?


La tarjeta SD (Secure Digital) es un formato de tarjeta de memoria flash. Se utiliza en dispositivos porttiles tales como cmaras fotogrficas digitales, Wiis, impresoras, ordenadores PDA y Palm, entre otros. Estas tarjetas tienen unas dimensiones de 32 mm x 24 mm x 2'1 mm. Existen dos tipos: unos que funcionan a velocidades normales, y otros de alta velocidad que tienen tasas de transferencia de datos ms altas. Algunas cmaras fotogrficas digitales requieren tarjetas de alta velocidad para poder grabar vdeo con fluidez o para capturar mltiples fotografas en una sucesin rpida.

91

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Los dispositivos con ranuras SD pueden utilizar tarjetas MMC, que son ms finas, pero las tarjetas SD no caben en las ranuras MMC. Asimismo, se pueden utilizar directamente en las ranuras de

CompactFlash o de PC Card con un adaptador. Sus variantes MiniSD y MicroSD se pueden utilizar, tambin directamente, en ranuras SD mediante un adaptador. Hay algunas tarjetas SD que tienen un conector USB integrado con un doble propsito, y hay lectores que permiten que las tarjetas SD sean accesibles por medio de muchos puertos de conectividad como USB,

FireWire y el puerto paralelo comn. Las tarjetas mediante SD una tambin son accesibles usando un

disquetera

adaptador FlashPath.

92

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

7.1.2. Caractersticas Tcnicas


A continuacin se muestran las caractersticas tcnicas de las tarjetas Secure Digital.
CARACTERISTICAS

SD S 9 Grueso 24 mm 32 mm 2'1 mm Necesario S Opcional No 025 MHz 100 Mbps 25 Mbps S No S 1.500 USD/ao (parece necesario) Miembro 1.000 USD/ao + membr. S N/D Slo SPI

Socket SD Pines Factor de forma Ancho Largo Grosor


Modo SPI

Modo 1 bit Modo 4 bits Modo 8 bits Reloj xfer XFER mximo
SPI XFR mximo

DRM Cifrado de usuario Especificaciones. simplificadas Coste de membr. Coste de especificaciones Licencia de host Royalties de tarjeta de memoria Royalties de tarjeta E/S Compatible con desarrollo de cdigo abierto

93

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

7.2.

Instalacin del nuevo sistema


Despus de haber explicado un poco en qu consisten las tarjetas SD y

sus especificaciones tcnicas, nuestro ltimo paso es la instalacin del sistema en la impresora multifuncin aficio c2500.

La impresora, tiene un lector de tarjetas para 3

SD Card. Este se

encuentra en unos de lados de la impresora multifuncin. Cada una de las tarjetas SD que se encuentra en cada una de las ranuras (slots), tiene una funcionalidad diferente. En el primer slot, se inserta la tarjeta SD donde estn instaladas las aplicaciones que se pueden ejecutar en la impresora (esa ser la ubicacin del sistema). En los otros slots estn insertadas 2 tarjetas SD que sirven para la configuracin de la impresora. En esa tercer slot se encuentra instalada la JavaTM Platform, que permite la ejecucin correcta todas las aplicaciones instaladas. En la siguiente figura, corresponde a la informacin ofrecida por la impresora de la JavaTM Platform.

Ya sabemos donde instalar el sistema. El siguiente paso, es instalar nuestra aplicacin en la tarjeta SD del primer slot. Todas las aplicaciones estn referenciadas con un identificador nico creado por Ricoh. Dentro de la tarjeta SD, para el correcto funcionamiento, tendremos que guardar nuestra aplicacin (el archivo .jar y al archivo .dalp) dentro de un directorio creado cuyo nombre es

94

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 nuestro identificador nico (en nuestro caso 51539410). A continuacin mostramos como estn organizadas las aplicaciones en la tarjeta SD.

Una vez instaladas dentro de la tarjeta SD, se tendr que insertar dentro de la impresora multifuncin aficio c2500. Se apaga la impresora y lse vuelve a encender para que el lector pueda leer la aplicacin.

Para poder instalarla en la impresora, se tendr que entrar en el sistema como administrador e introducir la contrasea de la impresora multifuncin ******.

Despus de haber entrado como administrador, y haber entrado en Extended Feature Setting, iremos a la etiqueta Install. Hay la posibilidad de instalar la aplicacin va WEB o va SD Card. Se va a instalar con esta segunda posibilidad. Se pulsa el botn SD Card.

95

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Una vez pulsado el botn SD CARD, se mostrara las aplicaciones que se pueden instalar dentro de la impresora Ricoh. Se selecciona la aplicacin PrinterMFP-Bluetooth.

Una vez seleccionada la aplicacin, hay que elegir donde guardarla en el disco duro de la impresora aficio c2500.

96

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Despus de la operacin anterior, el sistema muestra informacin sobre la aplicacin, como el nombre, una pequea descripcin, ubicacin, el

identificador nico de cada aplicacin, y pequeos detalles del desarrollador del nuevo sistema a instalar.

Al pulsar el botn ok, el sistema muestra un panel de informacin para confirmar la instalacin correcta de la aplicacin.

97

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Por ltimo se pasar a la etiqueta Startup Setting, se selecciona y arranca la aplicacin, en la impresora multifuncin aparecer nuestra pantalla principal (siguiente figura) y ya se podr utilizar el nuevo programa desarrollado.

98

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

8. Bibliografa

[1] Gimeno Brieba, Alberto. Programacin de dispositivos Bluetooth a travs de Java.

[2] Gimeno Brieba, Alberto. JSR-82: Bluetooth desde Java.

[3] JavaTM 2 Platform, Micro Edition SDKJ_V2.08-CD-ROM. Specification Version 1.0a. JavaTM APIs for BluetoothTM Wireless Technology (JSR-82).

[4] Vlez Rabasseda, Sergi. SDK/J v.2 Start Up.

[5] Embedded Software Architecture. Version 2.05.

[6] De la Rocha Gmez, Ernesto. Ricoh Contest 2007. Printer 2.0.

[7] Devide

SDK

typeJ

Xlet

Emulator:

Version

1.14.xlet_emulator_important_e_1_14c.pdf.

[8] Devide

SDK

typeJ

Xlet

Emulator:

Version

1.14.

xlet_emulator_e_1_14c.pdf.

[9] Appendix1.pdf. Paquete javax.bluetooth. [10] Appendix2.pdf. Paquete javax.obex. [11] http://java.sun.com/javame/reference/apis/jsr082/

[12] http://es.wikipedia.org/wiki/Portada

[13] http://www.bluecove.org/ 99

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

[14] http://www.ibm.com/developerworks/java/library/wiboogie1/index.htm l [15] http://wiki.forum.nokia.com/index.php/Creating_a_Bluetooth_server_ru nning_OBject_EXhange_(OBEX)_protocol [16] http://images.google.com/imghp?um=1&hl=es&rls=DAES,DAES:200641, DAES:es [17] https://ricoh.dev.java.net/

100

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

9. Anexo 9.1. Manual de Usuario

Se va a explicar cul es el funcionamiento del nuevo sistema software implantado en la impresora multifuncin aficio c2500. El interfaz de toda la aplicacin, es muy sencillo para que nadie tenga problemas a la hora de conocer su funcionamiento y facilita el uso de los usuarios a la impresora MF con pasarela bluetooth.

En la pantalla principal, como se puede ver en la figura anterior, hay dos posibles opciones a la hora de trabajar; realizar una solicitud de escaneo o bien realizar una impresin de un documento. Tambin aparece en la parte de abajo, el botn de salir, por si el usuario quiere cerrar la aplicacin y abrir otra.

101

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Si el usuario ha decidido presionar el botn Solicitud de escner, comenzar el proceso de una de las opciones, escanear y enviar un documento por bluetooth. Como se muestra en la figura, el interfaz presenta un botn SCAN, en el centro de la pantalla, para comenzar la ejecucin del escaneo del documento.

En este primer paso del proceso, cuando el usuario de la impresora Multifuncin pulsa e botn SCAN, se muestra informacin mientras la impresora realiza el escaneo. El botn siguiente, hasta que no haya realizado el escaneo del documento se mantendr deshabilitado. El botn borrar, tampoco estar habilitado en todo este proceso.

102

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

Debajo del botn, se muestra un texto explicativo del procedimiento. Cuando todava no se ha iniciado el proceso de escanear (Figura anterior), se informa con presione el botn para escanear, mientras que ya al pulsar el botn de escanear, informa al usuario con el mensaje escaneando. hasta que, si todo ha ido correctamente, mostrar la informacin con DOCUMENTO ESCANEADO. Ya se puede seguir con el procedimiento, presionando el botn siguiente que se habr habilitado despus de realizar el escaneo.

103

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Despus escanear la imagen, el siguiente paso a seguir es la bsqueda de dispositivos bluetooth. El botn siguiente, se mantendr deshabilitado hasta que no se haya completado la bsqueda.

EL usuario, al presionar el botn BUSCAR DISPOSITIVOS, comenzara el proceso de bsqueda, mostrando en la parte inferior del botn, el texto Buscando., para que el usuario, pueda elegir a que persona quiere el enviar el documento escaneado.

El usuario tendr el conocimiento de que se ha terminado la bsqueda cuando en el texto explicativo, ponga BSQUEDA COMPLETADA. En ese momento el botn siguiente se habilitar para poder continuar tu objetivo. El botn borrar, permite volver a comenzar la bsqueda, cambiando el contenido del texto explicativo de debajo del botn principal.

Despus de que se hecho la bsqueda internamente, para seguir con el procedimiento, se presiona el botn Siguiente.

104

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

En este paso, se va a mostrar una lista, en la que aparecen todos los dispositivos bluetooth a los que se les puede enviar el documento escaneado. Se ha impuesto un lmite de dispositivos bluetooth encontrados (mximo de 10), para que el interfaz de nuevos sistema no resulte excesivamente complejo y pesado. As el usuario tiene una mayor facilidad de lectura y uso.

Si no aparece el nombre de tu dispositivo bluetooth, procedes a ir al paso anterior (pulsando el botn anterior), para realizar de nuevo la bsqueda.

105

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 Si en la lista de dispositivos, se encuentra el nombre del cual quieres enviarle el documento, lo siguiente a realizar es presionar en la figura anterior al botn nombre del dispositivo. Se muestra un teclado, donde el usuario tendr que escribir el nombre del dispositivo bluetooth exactamente igual a como aparezca en la lista de dispositivos anterior. Para finalizar, se pulsa el botn ok.

Una vez introducido el nombre aparecer en la pantalla anterior, al lado del botn Nombre de dispositivo.

106

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 El ltimo paso, dentro de la solicitud de escaneo, es el envo del archivo. El interfaz presenta un botn para enviar ENVIAR DOCUMENTO. Al pulsarlo, la aplicacin enva el documento, y el dispositivo bluetooth lo recibe.

Al igual, que en un paso anterior, se informara al usuario, del proceso de envo. Al cuando todava no se ha presionado el botn SCAN, el texto informativo, que se encuentra debajo del botn enviar, es solicitud de envo. En el momento que se pulse cambia a ARCHIVO ENVIADO, y en unos pocos segundos el dispositivo bluetooth recibir el documento. Para volver a la pantalla principal de la aplicacin, simplemente hay que pulsar el botn Volver a men.

107

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 La otra opcin a ejecutar en el sistema, como se puede ver en la pantalla principal de la figura siguiente, es la de solicitud de impresin.

El usuario bluetooth podr realizar el envo de documentos a imprimir mediante bluetooth en el momento que desee, ya que cuando el sistema arranca ya est preparado para la recepcin de archivos. Se puede ir comprobando si hay algn archivo a imprimir pulsando el botn Solicitud de impresin.

108

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 El siguiente paso a acometer por el usuario, es asegurarse que el archivo a imprimir es el que se ha enviado. Para ello, la aplicacin mostrara informacin del documento: nombre del archivo y tipo. En la figura siguiente, se muestra un ejemplo de cuando no hay archivos a imprimir.

Cuando no haya archivos a imprimir, el texto informativo que se encuentra debajo, informar Esperando a recibir archivo por Bluetooth. Cuando el usuario, enve el documento a imprimir a la impresora multifuncin mediante bluetooth, aparecer el nombre y el tipo del archivo enviado, en la pantalla anterior, sin que el usuario tenga que hacer nada. Siempre que haya archivos a imprimir, el sistema se actualizar automticamente.

Abajo en la parte de los botones, el botn borrar, su funcin es la siguiente: elimina el documento de la cola de impresin del sistema, y actualiza automticamente el sistema. Es decir, si al borrar el documento a imprimir, hay ms archivos en la cola, aparece el siguiente a imprimir, y si no hay, no aparecer nada.

109

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08 En la siguiente figura se muestra cuando hay un archivo a imprimir.

Nota importante; Si hay varios dispositivos bluetooth intentando la conexin con la impresora y realizando el envo, aparece en la pantalla el primer documento que haya llegado. Despus de imprimir ese documento, en esta misma pantalla se mostrara el siguiente documento a imprimir.

110

Pasarela Bluetooth Ricoh MFP2500 Ignacio Arribas Snchez - IINF - ICAI - COMILLAS PFC 07/08

En el ltimo paso en el procedimiento de impresin, se presionara el botn PRINT, para imprimir el documento. Para facilidad de informacin, hay un texto explicativo en la parte inferior del botn, donde muestra el conocimiento del proceso mencionado. Al principio muestra Solicitud de impreso, mientras este imprimiendo el documento mostrar imprimiendo., y cuando haya finalizado con xito la operacin, informar con DOCUMENTO IMPRIMIDO. Se podr volver a la pantalla principal, con el botn volver a men para realizar otra operacin de escaneo o impresin. Tambin con el botn anterior, se vuelve al primer paso de impresin para ver si hay archivos a imprimir todava del mismo usuario.

111

Anda mungkin juga menyukai