jpicusb: Clase Java para comunicación USB con PICs usando API de Microchip



Documentos relacionados
1. LIBRERÍA DEL USB: MPUSBAPI.DLL

Curso de HTML5 y CSS3

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Guía de Usuario Programador USB

Manual de uso. Manual de uso - citanet 1

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Notas para la instalación de un lector de tarjetas inteligentes.

Creación de un Programa Ladder en el Simatic Manager

Manual de Usuario. Del. Módulo de Lector de códigos de barras. FacturPin. Diseñado y producido por. SystemPin

Manual de iniciación a

Sistemas Operativos: Controladores de dispositivos

UNIVERSIDAD TECNICA DEL NORTE

Desarrollo de apps para móviles Android. Entorno de desarrollo

MikroProgrammer 22 Clave: F502 Programador USB de Microcontroladores PIC y Memorias EEPROM Manual de Referencia v1.1

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

Figura 1.- Ejemplos de tableros electrónicos pasamensajes.

USB (Universal Serial Bus)

Manual de usuario de IBAI BackupRemoto

Inducción al Laboratorio de Informática

PRÁCTICAS. Diseño de. Sistemas Informáticos Industriales

Windows XP Instalación y configuración de hardware

UNIVERSIDAD DE SALAMANCA

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.

Modulo 1 El lenguaje Java

Capítulo 5. Cliente-Servidor.

Person IP CRM Manual MOBILE

MANUAL DE INSTALACIÓN DEL LECTOR DE TARJETAS

19. Packages o paquetes

Enviar archivos mediante FTP

Control de accesos autónomo por huella dactilar

OnePAD 700 Preguntas Frecuentes

MANUAL DE INSTALACIÓN DEL LECTOR DE TARJETAS (CRÉDITO O DÉBITO) DE LA PASARELA DE PAGOS DE LA ADMINISTRACIÓN PÚBLICA VASCA

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

1. Configuración del entorno de usuario

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Creación de Funciones de Conducción

7. Manejo de Archivos en C.

BUSINESS OBJECTS VISUALIZACIÓN DE REPORTES

Curso de Java POO: Programación orientada a objetos

MANUAL DE USUARIO. Contenido

Apéndice 5 Manual de usuario de ColeXión. ColeXión 1.0. Manual de usuario

UNIVERSIDAD AUTÓNOMA DEL CARIBE PROCEDIMIENTO DE ATENCIÓN DE INCIDENTES Y REQUERIMIENTOS PARA EQUIPOS DE CÓMUPUTO Y/O PERIFÉRICOS GESTIÓN INFORMÁTICA

PS.Vending Almacén Pocket PC

PROCESO SERVICIOS INFORMÁTICOS Y DE TELECOMUNICACIONES. Versión: 02 GUIA PARA PUBLICACIÓN DE DOCUMENTOS EN LA WEB Página 1de 6.

Asistente para la ayuda

Servicio de VPN de la Universidad de Salamanca

Qué es el enrutamiento estático?

Uso de la red telefónica

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW):

INSTALACIÓN DEL SPSS 15.0 DESDE UN SERVIDOR

TRANSFERENCIA DE FICHEROS FTP

Sistema de Captura Electrónica

TELEPROCESOS Y SISTEMAS DISTRIBUIDOS

MANUAL BASICO DE WEBEX

ACCESO Y USO DE CLASES VIRTUALES SINCRÓNICAS -WIZIQ ESTUDIANTES

INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0):

Manual de instalación del programa EDDI-7 INTRODUCCIÓN

Conexión a red LAN con servidor DHCP

Manual de NetBeans y XAMPP

INSTALACIÓN DE MEDPRO

Windows Embedded Standard 7

SUBIENDO NUESTRA WEB CON MACROMEDIA DREAMWEAVER

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

Qué ventajas presenta Google Drive para catedráticos y alumnos?

Manual del Módulo Externo Impresión de Códigos de Barra para Impresoras SATO

WEB APP VS APP NATIVA

Capítulo 3. Análisis y Diseño

INSTRUCTIVO PARA LA UTILIZACIÓN DEL SERVICIO DE CORREO CORPORATIVO A TRAVÉS DE WEBMAIL

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Guía de Usuario Convertidor USB-Serial

Soporte Técnico de Software HP

V Manual de Portafirmas V.2.3.1

UNIT4 CRM. Información de usuario. Release notes. v a v UNIT Ref. acv9010u.docx

Aplicación de protección con contraseña para los dispositivos flash USB de Verbatim

Manual de Instalación SICO MANUAL DE INSTALACION SICO - SOFTWARE DE GESTION BASE DE DATOS SQL SERVER

Anexo B. Comunicaciones entre mc y PC

CONTENIDO. Business Objects

Instalación de Crystal Reports

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Manual AGENDA DE RESPALDO


PASOS PARA DESCARGAR LECTOR DE LIBRO DIGITAL ARGENTINO

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.

Capítulo 5. Análisis del software del simulador del sistema de seguridad

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

10 En este caso indica la dirección GPIB del instrumento.

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Google Drive y Almacenamiento en Nubes Virtuales

MEDIA KIT TRAFFICFACTORY.BIZ

CONFIGURACIÓN DEL ADAPTADOR DE RED EN LINUX

WEB SERVICES CON AXIS

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

Crear una Activity en Android. Paso por paso

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

SBConta.NET Manual de instalación. SBSS Consulting, S.A Barcelona Telf , fax web

Transcripción:

jpicusb: Clase Java para comunicación USB con PICs usando API de Microchip Oñativia, Gerónimo Isidro Universidad Nacional de Tucumán Facultad de Ciencias Exactas Ingeniería en Computación geronimox@gmail.com - desarrollos@divideandconquer.com.ar - www.divideandconquer.com.ar La mayoría de los fabricantes de computadoras portátiles, y de escritorio, poco a poco están jubilando al antiguo puerto serie; de la misma manera en que se dejó en el olvido al antiguo puerto paralelo. De este echo surgió la necesidad, y casi obligación, de migrar nuestros desarrollos a las nuevas tecnologías. El puerto USB trae consigo muchas ventajas respecto a los antiguos puertos serie y paralelo, las más notables son: Alta tasa de transferencia (mínimo 100 veces mayor al puerto serie) Hasta 127 dispositivos conectados en un mismo bus Es capaz de alimentar un periférico con 500mA/5V Es Plug And Play y Hot Swapable Tambien no se debe dejar de lado que se ha convertido en un Standard en la Industria de Computadoras, por lo que es prácticamente imposible encontrar una PC sin un puerto USB a nuestra disposición. Esta ponencia no abordará el software del lado de un PIC, sino del lado de la PC, y específicamente desde una aplicación Java, utilizando la clase jpicusb para lograr la comunicación PIC-PC. Que es jpicusb? JPicUSB es una clase java, que utilizando interfaces nativas (JNI) [7], permite a una aplicación Java hacer llamados a una librería dinámica, en este caso (jpicusb.dll). JPicUSB.dll es una librería que implementa todas las funciones de la API USB de Microchip [4] (mpusbapi.dll), con la diferencia de que está especialmente recompilada para permitir a la clase jpicusb que haga llamados a sus funciones. Porque jpicusb? El desarrollo rápido de aplicaciones e interfaces gráficas es una de las cualidades más notables de Java, pero este lenguaje, no nos proporciona un mátodo fácil para acceder a librerías dinámicas (.dll). Aquí es donde jpicusb facilita el camino, como si se tratase de cualquier lenguaje.

Métodos disponibles en JPicUSB Ficheros que componen al paquete jpicusb jpicusb.jar Interfaz java con la librería dinámica jpicusb.dll jpicusb.dll Librería dinámica que contiene todas las funciones de la API USB de Microchip [4] javadoc Carpeta con la documentación de la clase. (Descripción de todos los métodos) Distintos tipos de Métodos disponibles en jpicusb.jar En la clase iface del Paquete jpicusb podemos distinguir 3 tipos diferentes de métodos. - Métodos de inicialización varios Cargan la librería dinámica y establecen valores por defecto. - Métodos generales Lectura y Escritura de datos a un dispositivo USB, apertura de una conexión, etc. - Métodos rápidos Imitan a los métodos generales, pero con menos código para agilizar el desarrollo. Cada uno de estos 3 tipos de métodos están descriptos a continuación. Métodos de inicialización varios static void load( ) Carga la librería dinámica jpicusb.dll. Este método debe ser llamado solo una vez, antes de cualquier llamada a otro método. static void set_vidpid(java.lang.string s) Establece el VID&PID utilizado por defecto en toda llamada a un método rápido. static void set_instance(int i) Establece la instancia utilizada por defecto en toda llamada a un método rápido. Descripción de los Métodos rapidos en la clase jpicusb.jar Además de las funciones proporcionadas por la API de Microchip [4], jpicusb dispone de varios métodos que agilizan el desarrollo. Estos métodos rápidos se identifican gracias a que a su nombre le antecede el carácter Q ( Quick ). Antes de utilizar estos métodos, es necesaria una simple configuración de la librería utilizando los métodos de inicialización varios, descriptos en la lista anterior (set_vidpid y set_instance). Los métodos rápidos disponibles son: static byte[ ] QRead (int dwlen, long dwmilliseconds) Establece una conexión al VID&PID por defecto, lee dwlen bytes, con un timeout de dwmilliseconds milisegundos y luego cierra la conexión. Retorna los bytes leídos en un arreglo de bytes. static long QWrite (byte[ ] pdata, int dwlen, long dwmilliseconds) Establece una conexión al VID&PID por defecto, escribe dwlen bytes del arreglo pdata, con un timeout de dwmilliseconds milisegundos y luego cierra la conexión. Retorna la cantidad de bytes que se escribieron con éxito. static byte[ ] QWriteRead(byte[] pdata, int dwlenwrite, int dwlenread, long dwmilliseconds) Establece una conexión al VID&PID por defecto, escribe dwlenwrite bytes del arreglo pdata, luego lee dwlenread bytes, con un timeout de dwmilliseconds milisegundos y luego cierra la conexión. Retorna los bytes leídos en un arreglo de bytes.

Descripcion de los Métodos generales en la clase jpicusb.jar Los métodos generales, son aquellos que se comportan igual a las funciones proporcionadas por la API USB de Microchip [4], ya que se tratan de las mismas funciones, recompiladas de tal forma, que puedan ser accedidas desde la librería jpicusb en Java. static int GetDeviceCount(java.lang.String pvid_pid) Retorna la cantidad de dispositivos que coinciden con pvid_pid. static long Open(int instance, java.lang.string pvid_pid, java.lang.string pep, int dwdir, int dwreserved) Retorna una handle que identifica a la conexión para ser usada con los demás métodos generales que requieren una conexión previamente establecida. static boolean Close(long handle) Cierra la conexión proporcionada. static byte[ ] Read(long handle, int dwlen, long dwmilliseconds) Lee dwlen bytes de la conexión proporcionada via el parámetro handle. static long Write(long handle, byte[] pdata, int dwlen, long dwmilliseconds) Escribe dwlen bytes de pdata en la conexión proporcionada vía el parámetro handle. Retorna un entero representando la cantidad de bytes escritos con éxito. static byte[ ] Read(java.lang.String pvid_pid, int instance, int dwlen, long dwmilliseconds) Lee dwlen bytes de la conexión y luego cierra la conexión abierta. static long Write(java.lang.String pvid_pid, int instance, byte[] pdata, int dwlen, long dwmilliseconds) Escribe dwlen bytes de pdata a la conexión y luego cierra la conexión abierta. Retorna un entero representando la cantidad de bytes escritos con éxito. static byte[ ] WriteRead(java.lang.String pvid_pid, int instance, byte[] pdata, int dwlenwrite, int dwlenread, long dwmilliseconds) Abre dos pipes (uno de lectura y otro de escritura) con el dispositivo cuyo VID&PID coincide con pvid_pid. Envia dwlenwrite bytes de pdata al dispositivo y luego lee dwlenread bytes del mismo. Luego cierra la conexión. Nota: Varios usuarios reportaron problemas al ejecutar el método load. El problema se resolvió instalando los Runtimes de Visual C++ [6]

Usando jpicusb en cuatro pasos Pasos básicos para la utilización de jpicusb en un Proyecto Java de Netbeans [5] Para utilizar jpicusb en nuestras aplicaciones, es necesario añadir el paquete jpicusb.jar al proyecto. Importar todos los paquetes contenidos en jpicusb. Inicializar la librería en el código antes de usarla. Y antes de ejecutar la aplicación, copiar la librería jpicusb.dll al contexto en el cual se ejecuta nuestra aplicación.

Anexos que acompañan esta ponencia: 1. jpicusb_1.1.1.rar Librería jpicusb y su documentación. 2. jpicusb_1.1.1_led_show_demo.rar Demostración de jpicusb en un proyecto en NetBeans, con simulación de hardware utilizando PIC18F4550 en Proteus. Vínculos de Interes: 1. Web del Proyecto: http://divideandconquer.com.ar/dyq/2009/01/jpicusb-comunicacion-pic-usb-usando-java/ 2. Tutorial de desarrollo de una aplicación paso a paso con NetBeans y uso de jpicusb http://www.ucontrol.com.ar/forosmf/programacion-en-java/tutorial-java-pic-usb-(primerospasos)/ 3. Video del proyecto de demostración de la librería http://tinypic.com/player.php?v=2eb4awn&s=5 4. Microchip Aplication Libraries http://www.microchip.com/stellent/idcplg?idcservice=ss_get_page&nodeid=2680&ddoc Name=en540668 5. NetBeans IDE http://www.netbeans.org/ 6. Microsoft Visual C++ SP1 Redistributable Package http://www.microsoft.com/downloads/details.aspx?familyid=a5c84275-3b97-4ab7-a40d- 3802B2AF5FC2&displaylang=en 7. Java Native Interface http://es.wikipedia.org/wiki/java_native_interface http://java.sun.com/j2se/1.5.0/docs/guide/jni/index.html