Hola,
Queria compartir con todos un proyecto que hace tiempo tenia en mente y que por fin en estas vacaciones logro empezar y terminar.
Quiero agradecer de gran manera a JIM, SUKY y BRUNOF por sus aportes a este proyecto. Sus comentarios y respuesta fueron siempre una gran ayuda en aquellos problemas que se me presentaban por mi poca experiencia en Visual C++.
Para explicar de que se trata esto, les dejo todo acá:
OCTOPLUS
Terminal
Garantías:Este trabajo se distribuye de forma gratuita sin ningún tipo de retribución económica. No se dará garantía sobre este software de ningún tipo. No nos hacemos responsables por cualquier daño o perjuicio que pueda generar una mala manipulación o instalación de este software.
1. ¿Qué es Octoplus-Terminal?En este proyecto la palabra terminal hace referencia a una aplicación o interfaz para PC que permite de manera grafica enviar, recibir y visualizar datos provenientes de un puerto que implemente el estándar serial COM RS232. Existe una gran variedad de aplicaciones de este tipo, algunas de ellas son de libre distribución por internet con diferentes niveles de complejidad, versatilidad y robustez.
¿Que se pretende con Octoplus-Terminal?En el desarrollo de proyectos con sistemas embebidos, toma gran importancia la comunicación por puerto serial entre estos y el PC. En muchos casos existe la necesidad de hacer seguimiento y/o depuración del proyecto que se está realizando, ya que a decisión del programador el dispositivo programable puede enviar cadenas de caracteres que indiquen el estado del proyecto, solicitar datos de configuración que permitan validar contraseñas o infinidad de aplicativos que solo se pueden determinar durante el proceso de desarrollo. Lo anterior nos describe que se requiere una interfaz grafica instalada en el PC que reciba los datos por puerto serial y los muestre de manera clara, que su configuración no requiera de grandes conocimientos de programación y sea de fácil instalacion. En Windows®XP se contaba con la aplicación Hyperterminal que es bastante conocida y usada por muchos desarrolladores de aplicaciones, pero que lastimosamente fue dejada de lado en las nuevas versiones de sistemas operativos como Vista o Seven. Esta necesidad nos lleva a crear una solución, una nueva interfaz que cumpla con los requerimientos mínimos para comunicar un MCU, DSP, FPGA, CPLD, DSC, o cualquier equipo programable el PC por puerto COM RS232 y que a su vez incluya algunas mejoras y utilidades que serán de gran ayuda para la visualización de estos datos recibidos.
2. Instalación de OCTOPLUS-TERMINAL.OctoplusTerminal es distribuido de manera gratuita bajo un instalador para sistemas operativos Windows®.
Pasos para instalar OctoplusTerminal:
1. En la carpeta “OctoplusTerminal”, ejecutar Setup.msi
2. Determinar lugar donde se quiere instalar aplicación. (Recomendado mantener valor por defecto).
3. Confirmar Instalación, lo que iniciara el proceso de instalación.
4. Al finalizar el proceso de instalación, cerrar instalador de aplicación.
En este punto, debe aparecer en el Escritorio el icono de la aplicación OctoplusTerminal.
5. Abrir ruta donde se instalo OctoplusTerminal y buscar carpeta “EFmJM60 Driver Installer”. Por defecto la ruta de instalación es “C:\Octoplus\Octoplus Terminal”.
6. Ejecutar “Setup JM60 Bootloader WinUSB Driver Installer”.
7. Iniciar Instalación de Driver.
8. Permitir instalacion de Driver.
9. Esperar proceso de instalación de Driver, hasta que aparece información de cerrar proceso en pantalla.
10. Iniciar OctoplusTerminal para verificar Instalación.
3. Interfaz grafica Octoplus-Terminal.4. Modulos Octoplus-Terminal.4.1. Consola ASCII-HEXEl espacio llamado consola es dedicado a la visualización de datos de entrada y salida por el puerto serial.
4.1.1. Consola ASCII.En Consola-ASCII todos los datos son mostrados usando los caracteres ASCII imprimibles, es decir aquellos que van del carácter espacio “ ” que corresponde al número decimal 32 hasta el símbolo “~” que corresponde al número decimal 127). Los caracteres ASCII no imprimibles tendrán un comportamiento sobre la impresión según el byte recibido, por ejemplo: si se llega a recibir el byte 13 en decimal, este corresponde al código ASCII de retorno de carro (“\r”), lo cual daría como resultado en la Consola HEX un cambio de línea para impresión.
4.1.2. Consola HEX.En Consola-HEX todos los datos son mostrados como números hexadecimales. Byte a byte son impresos sin importar si son caracteres ASCII imprimibles o no imprimibles, lo cual nos permite poder ver en pantalla todos los datos enviados y recibidos por puerto COM. Los caracteres no imprimibles serán resaltados en color VERDE.
4.2. Osciloscopio de 8 canales.Esta es una pequeña y sencilla interfaz grafica que permite visualizar a manera de osciloscopio hasta 8 datos de 8 bits cada uno, todos serán visualizados simultáneamente como si de un osciloscopio digital se tratara. El avance en el tiempo o escala del eje X es controlado de manera automática, ya que avanzara un punto de la señal cada vez que se recibe un dato valido para el osciloscopio. La escala de nivel o eje Y sea fijo pues solo se admiten datos de 8 bits ( 0 … 255).
Cada canal será dibujado con un color diferente para su fácil identificación.
4.2.1. Formato de datos para Osciloscopio.Octoplus-Terminal en modo osciloscopio trabaja de manera simultánea con la consola ASCII y HEX, lo que permite poder visualizar los datos recibidos en cualquier formato, pero Octoplus-Terminal hace una validación del paquete de dato recibido para garantizar una correcta identificación de dato y canal correspondiente.
Para que los datos sean identificados de manera correcta, se debe enviar una cadena de caracteres ASCII con el siguiente formato:
“Sxx,Txx,Uxx,Vxx,Wxx,Xxx,Yxx,Zxx\r\n”
S : [Byte=1] Carácter ASCII de letra mayúscula que identifica canal.
xx : [Byte=2] Caracteres ASCII representa el valor en hex que se desea graficar.
, : [Byte=1] Carácter Ascii separador de dato.
\r : [Byte=1] Representa en número 13 en decimal (retorno de carro).
\n : [Byte=1] Representa el número 10 en decimal (nueva línea).
NOTA: La cadena enviada debe respetar la cantidad de caracteres nombrados anteriormente, así como las mayúsculas.Ejemplo:Si se desea grafica en el osciloscopio los valores decimales 10, 20, 30, 40, 50, 60, 76, 80, se debe enviar la siguiente cadena de texto:
“S0A,T14,U1E,V28,W32,X3C,Y4C,Z50\r\n”
4.3. Indicadores Lineales, Angulares y de Temperatura.Estos indicadores permiten una visualización rápida y clara de datos. Son de gran utilidad en aplicaciones de lectura de sensores análogos y digitales desde sistemas embebidos.
4.3.1. Formato de datos para Indicadores.Octoplus-Terminal en modo indicador trabaja de manera simultánea con la consola ASCII y HEX, lo que permite poder visualizar los datos recibidos en cualquier formato, pero Octoplus-Terminal hace una validación del paquete de dato recibido para garantizar una correcta identificación de dato e indicador correspondiente. Esta validación es exactamente la misma que la realizada para el osciloscopio.
Para que los datos sean identificados de manera correcta, se debe enviar una cadena de caracteres ASCII con el siguiente formato:
“Sxx,Txx,Uxx,Vxx,Wxx,Xxx,Yxx,Zxx\r\n”
S : [Byte=1] Carácter ASCII de letra mayúscula que identifica canal.
xx : [Byte=2] Caracteres ASCII representa el valor en hex que se desea graficar.
, : [Byte=1] Carácter Ascii separador de dato.
\r : [Byte=1] Representa en número 13 en decimal (retorno de carro).
\n : [Byte=1] Representa el número 10 en decimal (nueva línea).
NOTA: La cadena enviada debe respetar la cantidad de caracteres nombrados anteriormente, así como las mayúsculas.Ejemplo:
Si se desean visualizar los valores decimales 10, 20, 30, 40, 50, 60, 76, 80, se debe enviar la siguiente cadena de texto:
“S0A,T14,U1E,V28,W32,X3C,Y4C,Z50\r\n”
4.4. Programador para modulo EFmJM60 y EMm47J53.Esta es una aplicación adicional muy específica. Lo que se pretende con este modulo es programar de manera rápida y fácil los modulo auto-programables diseñados, fabricados y distribuidos por la empresa OCTOPLUS.
Una vez conectado el modulo EFmJM60 o EMm47J53 al puerto USB y llevado a modo programador, Octoplus-Terminal detecta el dispositivo y habilita el botón de programación correspondiente para buscar el archivo .S19 o .hex según modulo detectado.
Una vez programado de debe dar RESET al dispositivo para probar el funcionamiento del proyecto programado sobre el microcontrolador.
5. Registro de Datos.En Octoplus-Terminal existen 3 hojas en las cuales se imprime información para el usuario. Cuando Octoplus Terminal inicia, revisa la existencia de 3 archivos de extensión .rtf sobre los cuales se escribe y guarda información. De no existir estos archivos, serán creados y guardados al finalizar la sesión. No se debe cambiar el nombre y la ruta por defecto de estos archivos.
5.1. DataLog.En Octoplus-Terminal se cuenta con una ventana llamada Session Log, en ella se imprimen todos los eventos ocurridos durante una sesión. Errores, apertura y cierre de puerto COM, detección de módulos EFmJM60 y EMm47J53.
5.2. ConsolaLog.Es en este espacio se visualizan los datos que llegan y salen por el puerto COM en formato ASCII.
5.3. ConsolaHexLog.Es en este espacio se visualizan los datos que llegan y salen por el puerto COM en formato HEX.
Con esta función de Octoplus-Terminal se podrá convertirse en un sistema que registre de manera permanente los datos que llegan por puerto serial y almacenarlos en un archivo de texto para posterior análisis.
Los datos solo son almacenados cada que el usuario lo desee usando el botón Guardar Consola o al finalizar sesión. También puede modificar el texto en Consola usando Borrar Consola, Cambiar Fuente Consola.
DESCARGA INSTALADOR