PDA

Ver la versión completa : Usar la GP32 como LCD externo de PC



Ryo-99
11/05/2006, 18:28
Buenas,

Es posible usar la GP32 para ver información de un PC de manera externa ?

Seria interesante poder ver cosas como la velocidad y temperatura de la CPU, la memoria usada, el disco duro disponible, etc.

Sé que hay LCDs externos, tanto por puerto paralelo como por puerto USB.

En principio a mi lo que me interesa es que sea por puerto USB, no quiero liarme a soldar y me parece una solución mas 'limpia'.

O sea, que es un tema de software más que de hardware. Quizá bastaría con un programita en el PC que enviase a la GP32 cadenas de texto, y un programita en la GP32 que se limitase a mostrarlas por pantalla. La clave, parece, sería disponer de alguna libreria con funciones de transferencia USB. Puede hacerse, eso seguro.

Ahora estaba pensando, quizá pueda cogerse el código fuente del Phodrive, y sencillamente añadir unas lineas de código que muestren el contenido de un archivo de texto de la SMC. Luego, en el PC, un programita que copie cada 2 o 3 segundos la información a la unidad USB Mass Storage. Es una chapuza, claro, porque implicaría estar escribiendo a la SMC continuamente. Pero funcionaria :D

De momento me he bajado el código fuente del Phodrive, pero hace bastantes años que no toco nada de C y dudo que sea capaz de compilarlo, mucho menos de modificarlo. Pero ya os contaré si consigo algo.

Saludos,

Ryo.

neostalker
11/05/2006, 19:05
Hombre, como curiosidad está bien :)

Si consigues algo avisa y pon fotos :D

Malenko
11/05/2006, 19:50
Creo que para lo que quieres hacer te iría mejor una Cybiko ya que tiene comunicación con el PC mediante el puerto serie. Vamos, que no solo podrías visualizar la información, sino administrar cosas del PC. Por ejemplo, cuando el PC tenga muy poco espacio en disco podría hacer que la Cy vibrase, y tu desde ella vaciar la papelera, o cualquier otra cosa.

Ryo-99
11/05/2006, 20:01
Malenko : Fijo que iria mejor una cybiko, pero quiero que sea con GP32, que es lo que tengo y ademas tiene una peazo pantalla en color.

Soy muy perro y para gastarme pasta en una cybiko me compro directamente un LCD que los hay para puerto USB y con el software ya incluido.

Bueno, pues de momento ya me he instalado el último DevKitArm y las SDK gracias al tutorial de Nestruo, ahora intentaré compilar algun ejemplo tipo Hello World.

Saludos,

Ryo.

Malenko
11/05/2006, 20:04
Ya se que hay LCD que te pueden mostrar esa misma información. Lo que decía es que la Cybiko no solo sería capaz de mostrarla, sino de interactuar con el PC! Vamos que es una comunicación bidireccional.

Ryo-99
11/05/2006, 20:30
Bueno, de momento sigo con la GP32. Lo de interactuar con el PC es interesante, pero prefiero limitarme a un simple Display. Por ahora no soy capaz de compilar ni siquiera un hello world sin que me dé errores :D

Más adelante podria usarse gráficos para mostrar la información, pero poco a poco.

Saludos,

Ryo.

dagus
11/05/2006, 20:59
yeh, yo no soy coder y aporto poca cosa al foro, pero estoy aquí para decir "ole, ole ahí tugwevos!!" y ánimo ;) sería la leche ver, por ejemplo, informaciónd el disco duro, programa que estás ejecutando o la canción que suena en el winamp jeje. la única pega que le veo es que la gp32 chupe pilas... ojalá se alimentara del usb.
saludos!

Ryo-99
11/05/2006, 22:05
Bueno dagus, nada te impide tenerla enchufada a la corriente con un simple transformador. Y ahora que lo pienso, tambien se podría usar el audio para oir pitidos cuanto te mencionen en el iRC. jeje, esto ya es fliparse mucho.

A ver que consigo esta tarde.

Saludos,

Ryo.

dagus
11/05/2006, 22:27
Bueno dagus, nada te impide tenerla enchufada a la corriente con un simple transformador. Y ahora que lo pienso, tambien se podría usar el audio para oir pitidos cuanto te mencionen en el iRC. jeje, esto ya es fliparse mucho.

A ver que consigo esta tarde.

Saludos,

Ryo.
hola ryo,
lo del transformador no es muy aconsejable. hemos tenido muchos casos en el foro de gp32s quemadas por sobrealimentación... es muy delicada la gp en el tema de la alimentación externa.

Endor
12/05/2006, 00:46
Me parece que habia un programilla para usar la GP32 como PAD USB para el PC. Así que la comunicación bidireccional quizas sea posible, con lo que, usando de base eso y el phodrive se podria dar con algo, no?

Ryo-99
12/05/2006, 02:58
Bueno, pues llevo TODA la tarde y no he conseguido resolver el problema que tengo modificando el phodrive. compila perfectamente con DevKitArm 12 y SDK Oficial de GP32, pero el siguiente código sencillamente no funciona como deberia.

1 /* abre archivo con la info y la muestra por pantalla */
2
3 F_HANDLE fichero;
4 char var[256]; /*la variable entera.*/
5 u32 cont; /*el retorno de los datos leidos, tiene q ser u32 ?*/
6 GpFileOpen("coco.txt",OPEN_R,&fichero);
7 GpFileRead(fichero,&var,sizeof(char)*30,&cont);
8
9 Puttxt (var, 50, 0xfe);
10 GpFileClose(fichero);

La rutina de abajo sencillamente muestra el texto en pantalla, funcionar bien así que el problema está en las 10 primeras lineas. Su propósito es leer un archivo de texto y mostrarlo en pantalla. JonGoten y kmkzk (http://gp32spain.com/foros/showthread.php?s=&threadid=13504) ya habian tenido este mismo problema y ninguno consiguió resolverlo.

Puck2099 me ha estado ayudando enormemente en el irc, pero sigo sin poder resolverlo. Ideas ?

11.
12 void Puttxt (char *string, int posy, int color)
13 {
14 unsigned int stringwidth, screenposition ;
15 stringwidth = GpTextWidthGet(string);
16 screenposition = (LCD_WIDTH - stringwidth)/2;
17 GpTextOut(NULL, &gpDraw, screenposition, posy, string, color);
18 }

Saludos,

Ryo.

alien8
12/05/2006, 03:55
Yo tenia a medio hacer algo como eso :) , un programa ( para windows ) que capturaba la pantalla y la mandaba a la gp32 usando el usb , en la gp32 se presentaba esa imagen , el problema es que usaba el codigo del gpdrive y tenia que estar escribiendo en la smc , intente un poco hacerlo directamente desde la memoria antes de escribir pero tenia muchas cosas empezadas por aquel entonces y me aburri :) , luego busco por el pc y te pego aqui lo que tenia acabado.

joanvr
12/05/2006, 05:04
Yo tenia a medio hacer algo como eso :) , un programa ( para windows ) que capturaba la pantalla y la mandaba a la gp32 usando el usb , en la gp32 se presentaba esa imagen , el problema es que usaba el codigo del gpdrive y tenia que estar escribiendo en la smc , intente un poco hacerlo directamente desde la memoria antes de escribir pero tenia muchas cosas empezadas por aquel entonces y me aburri :) , luego busco por el pc y te pego aqui lo que tenia acabado.

yo te pedí q lo hicieras :D xDD

Ryo-99
12/05/2006, 05:13
Te lo agradeceré Alien8, aunque si no soy capaz de hacerlo con texto y en plan chapuzas, mucho menos de tu manera más currada.

Realmente tiene que ser útil tener una pequeña pantalla auxiliar. Claro que lo ideal es un segundo monitor, pero de esta forma lo podría aprovechar todo aquel que tuviese una GP32 abandonada en el cajón.

Bueno, pues a ver si arreglo ésto y a ver que pasa. Por cierto, para evitar la escritura constante a la SMC se me había ocurrido hacerlo cada 5 o 10 segundos, o pulsando un botón a voluntad. Eso, y no actualizar el archivo si no hay diferencia con el anterior.

Saludos,

Ryo.

alien8
12/05/2006, 06:44
así que fuiste tu ( joanvr ) el que me lió [wei] , ahora no encuentro el código para la gp32 , pero estoy probando con el del phodrive que igual va mejor que el gpdrive ( se le supone ) , de momento acabo de liar una que ya recuerdo de presentar la imagen mientras escribía y tengo que formatear la smc [chuck1] , para pasar las imágenes desde windows si que he encontrado el programejo.

Se puede configurar el intervalo y la unidad y ruta donde ira a parar el bmp ( si era lo mas rápido ) , lo mejor seria que la captura fuera en jpg o gif para minimizar las escrituras , y mejor aun que el phodrive no escribiera realmente en la smc y pasáramos a pantalla los datos que vienen por el usb sin pasar por la smc, a ver...

rondc
12/05/2006, 07:47
Hey tios, múcho ánimo con este proyecto.

Yo de momento solo puedo aportar una idea, si en vez de escribir en smc se hace que escriba en un disco ram o en una porcion de memoria ? o digamos más claro , una unidad virtual en ram de la gp32, seguramente que en algun emu o en algun otro source pudiese haber algo que se pudiera aprovechar.

enga a mi me interesa el tema , gracias por curraroslo

Ryo-99
12/05/2006, 09:12
rondc :

La idea es wena pero como ya he dicho lo mio no es programar y si me tirao un dia entero solo para la chapuza de mostrar texto desde un archivo pos imagínate lo q me costaria hacer lo que dices :D

De momento cuando pulsas el boton START sale el contenido del ficherin de texto, ahora tengo que descubrir porque no se refresca cuando lo vuelves a pulsar. A ver si resulta que el Phodrive no puede ver archivos nuevo sin tener q re-iniciar, en cuyo caso todo ésto no serviría para nada. :rolleyes:



alien8 :
estoy probando con el del phodrive que igual va mejor que el gpdrive ( se le supone ) , de momento acabo de liar una que ya recuerdo de presentar la imagen mientras escribía y tengo que formatear la smc , para pasar las imágenes desde windows si que he encontrado el programejo.

no he entendido ni una palabra de lo que has dicho :D pero he probado el programilla pa windows y ya veo por donde vas. eso tira mas a cliente VNC pero mi idea era algo mas estilo LCD-Display simple así que de momento paso de gráficos. Lo de no usar la chapuza del disco USB no tengo ni pajolera idea de como hacerlo. Se que se pueden usar funciones para controlar el puerto USB pero se me antojan a años luz. Veremos.

saludos,

Ryo.

EDITADO.


< - >
Bueno, tras un árduo dia de trabajo, algo he conseguido :)

El programa, o chapuza mas bien dicho, ya funciona. Carga el phodrive y te aparece como unidad de windows (tengo q probarlo en linux), a partir de ahí cada vez que pulsas START te muestra el contenido de \\GPMM\INFO.TXT. Me falta que te borre la pantalla para que las letras no se sobre-escriban :D.

El problema es que para que re-lea el archivo tengo que usar la funciona GpFatInit(); cada vez q pulsas START, lo que además de ser increiblemente chapucero es bastante peligroso. De hecho, justo ahora me acaba de petar la SMC. Tras formatearla vuelve a funcionar, pero dudo que sea ésta la forma ideal.

Igualmente mañana sacaré el código modificado del phodrive y un ejecutable por si algun intrépido con SMCs de sobra lo quiere probar. El próximo paso es crear un programilla simple para Windows que vuelque 'stats' al archivo de texto de marras de la GP32. En linux es fácil, basta con leer /proc y volcarlo a un TXT. En windows me parece que no va a ser tan facil. :S

Saludos,

Ryo.

Endor
12/05/2006, 17:00
Aupa Ryo!

alien8
12/05/2006, 23:43
La sms ya la inicia el phodrive cada vez que escrive en la smc puedes intercalar tu funcion Puttxt(); en esta zona del codigo:

if (idlecounter == IDLE_TIME)
{
ARMDisableINT();
idlecounter++;
FillStatusWindow (160);
Puttxtc ("Saving Data", 130, 0xfe);
Puttxtc("When IDLE press SELECT to exit", 190, 0x01);
Puttxtc(">>> DO NOT TURN THE GP32 OFF!!! <<<", 190, 0xFF);
cache_empty();
FillStatusWindow (12);
Puttxt();
//Puttxtc ("Idle", 130, 0xfe);
Puttxtc(">>> DO NOT TURN THE GP32 OFF!!! <<<", 190, 0x01);
Puttxtc("When IDLE press SELECT to exit", 190, 0xfe);
ARMEnableINT();
}

así cada vez que reciva el archivo INFO.TXT presentara el contenido en pantalla.

EDIT : que tengo por aqui alguna funcion para leer ficheros de texto , saber el numero de lineas , ir a la linea "tal" , el codigo esta sacada a trocitos de gente de este foro.

int GetTotalLines(char *pFilename, char *pLine,int *lineas)
{
unsigned long bytesRead;unsigned long ts;
F_HANDLE handle;int i;//int lineas;
GpFileGetSize(pFilename, &ts);
GpFileOpen(pFilename, OPEN_R, &handle);
for (i=0; i < ts; i++)
{
GpFileRead (handle, &pLine[i], 1, &bytesRead);
if (pLine[i]=='\n') {++lineas;}
if (bytesRead > ts ) { break; }
}


GpFileClose(handle);
}

int GetNextLine(F_HANDLE handle, char *pLine)
{
unsigned long bytesRead;
int i;

for (i=0; ;++i) {
GpFileRead (handle, &pLine[i], 1, &bytesRead);
//if ((pLine[i]=='\n') || (pLine[i]=='\r'))
if (pLine[i]=='\n')

break;
}

pLine[i] = '\0';
pLine[i-1] = '\0';
return i;
}


int GetFileLine(char *pFilename, int numLine, char *pLine)
{

F_HANDLE handle;
int eof, i;

// Abrimos el archivo
if (GpFileOpen(pFilename, OPEN_R, &handle) != SM_OK)
return -1;

// Vamos leyendo lineas hasta encontrar la que buscamos
eof = FALSE;
for (i=1; i <= numLine && !eof; i++)
if (GetNextLine(handle, pLine) == 1)
eof = TRUE;

// Cerramos el archivo

GpFileClose(handle);

// Si hemos encontrado la linea
if (!eof)
return 0;
else
pLine[0] = '\0';

return -1;
}

Endor
13/05/2006, 00:47
No, si al final la GP parecera una pantalla de la Nebucaneezer de Matrix, xD, y Ryo será Cipher (ya no veo codigo, sólo una morena, una rubia...)

dagus
13/05/2006, 02:07
No, si al final la GP parecera una pantalla de la Nebucaneezer de Matrix, xD, y Ryo será Cipher (ya no veo codigo, sólo una morena, una rubia...)
Coool :D

ZeNiTRaM
13/05/2006, 19:46
Buenas,
No se si esto os servirá.. hace ya tiempo salió un "interprete" para GP32 de un lenguaje llamado PandaForth..
http://torlus.com/index.php?2005/03/20/61-pandaforth-for-gp32=
El lenguaje no sirve.. pero lo que quizas sea interesante es que usa unas librerias especiales para comunicarse con el PC por USB (a modo "debugger"), que quizas podais usar para comunicar con la GP32 sin usar el Phodrive y sin su consecuente escritura a SMC.. (quizas pueda funcionar sin SMC y todo).

http://www.ishani.plus.com/gp32/ (pulsar en el icono al lado de GP32 USB)

Logann
13/05/2006, 19:51
Que buena idea, espero que lo consigas.

PD: Una idea cutre como yo mismo que he tenido, es si para cojer un archivo tienes que copiarlo en la smc, seria màs facil enviar la información con el nombre del archivo, mandar al pho buscar archivos, si encuentra un archivo que se llame "hola mundo", mostrar "hola mundo" por la pantalla XD

ZeNiTRaM
13/05/2006, 20:25
Que buena idea, espero que lo consigas.

PD: Una idea cutre como yo mismo que he tenido, es si para cojer un archivo tienes que copiarlo en la smc, seria màs facil enviar la información con el nombre del archivo, mandar al pho buscar archivos, si encuentra un archivo que se llame "hola mundo", mostrar "hola mundo" por la pantalla XD
Eso no se puede, al menos directamente, ya que al ser FAT16 los nombres están limitados creo que a 8 caracteres.. y escribiria en la SMC de todas formas.

ZeNiTRaM
13/05/2006, 22:46
Lo consegui! Esta es una beta chapucera, con codigo chapucero y fallos pero funciona...

//OUTPUT USB on GP32 SCREEN DEMO
//Based on.
// PandaForth by Torlus (c) 2005
// Some C functions for system-related stuff
// This code is based on Harry Denholm's GP32 USB code
// See the original copyright notice below
////////////////////////////////////////////////////////////////////////////////
// Copyright © 2003 Harry Denholm http://www.ishani.plus.com
//
//
////////////////////////////////////////////////////////////////////////////////

#include "gpdef.h"
#include "gpstdlib.h"
#include "gpgraphic.h"
#include "gpcomm.h"
#include "gpstdio.h"
#include "gpfont.h"

#include "USBDebugging.h"

#ifndef u8
#define u8 unsigned char
#endif
#ifndef u16
#define u16 unsigned short
#endif
#ifndef u32
#define u32 unsigned long
#endif

// Space reserved for PandaForth
u8 user_area[256*4];
// This stack is used by Forth and C, so it needs to be large enough
// I could have made these two stacks distinct...
u8 ps_area[1024*4];
u8 rs_area[256*4];
u8 holdpad_area[40+88];

// Memory Map Information needed by PandaForth
u8 *forthInfo[] = { ps_area+128, rs_area+128, user_area, holdpad_area+40 };

// PandaForth entry point function
extern void boot(u8 *forthInfo[]);

GPN_COMM usbCom;

char inbuf[256];
int inbufPos;
int inbufLen;
char buffer[256];
char buffern[8192];
char salida;
char outbuf[2];
int longitud;


void GpMain(void *arg)
{
GPDRAWSURFACE gpDraw;

// Create surface
GpLcdSurfaceGet(&gpDraw, 0);

// Clear surface to black
GpRectFill(NULL, &gpDraw, 0, 0, gpDraw.buf_w, gpDraw.buf_h, 0xff);

// Set gpDraw as primary surface
GpSurfaceSet(&gpDraw);
if ( !(GPC_LCD_ON_BIT & GpLcdStatusGet()) ) GpLcdEnable();

// Draw some text
GPRECT rect;
rect.left=0;
rect.top=0;
rect.right=320;
rect.bottom=240;
GpRectFill(NULL, &gpDraw, 0, 0, gpDraw.buf_w, gpDraw.buf_h, 0x00);
char *text = "";
//GpTextDraw (&gpDraw, &rect, 0, text, 0, strlen(text), 0xF8);

// Setup communications
USBDebuggingStart(&usbCom);

// Init input buffer
inbufLen=0;
inbufPos=0;
longitud = 0;
while(1) {
salida = service(6, 0xFF);

//en longitud tenemos la cuenta hasta 40 para ahi meter un word wrap
if(salida != 0) {
longitud += 1;
sprintf(buffer, "%c", salida);
sprintf(buffern, "%s%s", buffern, buffer);
if(longitud == 40) {
sprintf(buffern, "%s\n", buffern);
longitud = 0;
}
if(salida == 172) {
buffern = "";
}
GpRectFill(NULL, &gpDraw, 0, 0, gpDraw.buf_w, gpDraw.buf_h, 0x00);
GpTextDraw (&gpDraw, &rect, 0, buffern, 0, strlen(buffern), 0xF8);
}
}
// The following lines are never reached

// finish with usb comms
USBDebuggingStop();

// quit back to firmware!
GpAppExit();
}

// PandaForth service function
int service(int serv, int param) {
int ch;
if (serv == 6) {
if (param != 0xff) {
outbuf[0]=1;
outbuf[1]=param;
inbufLen += USBDebuggingSendText(&usbCom, outbuf, inbuf+inbufLen);
} else {
outbuf[0]=0;
inbufLen += USBDebuggingSendText(&usbCom, outbuf, inbuf+inbufLen);
ch = 0;
if (inbufPos < inbufLen) {
ch = inbuf[inbufPos++];
if (inbufPos == inbufLen) {
inbufPos=0;
inbufLen=0;
}
}
//if (ch == '\n') return 0;
//if (ch == '\t') return ' ';
return ch;
}
} else if (serv == 1) {
return 0;
}
return 0;
}


Eso se compila junto a los otros archivos que vienen en la carpeta Source del Pandaforth. Me voy ya, asi que una explicacion rapida:

-Poner la GP32 en modo Pc-Link para que el PC la reconozca como tal dispositivo USB (no hay que lanzar el PC-Link en el PC).
-Salir y sin apagar la consola ni desenchufar el USB ejecutar el output.fxe
-Una vez ejecutado el output.fxe ejecutar el GP32DeMon.exe
-Escribir en el GP32DeMon, sale en la GP!!!

Tiene algun que otro bug, pero hace su funcion.

Ryo-99
14/05/2006, 01:00
Fantástico Zenitram ! :saltando: Se nota que sabes programar !

Lo acabo de probar y funciona ! aunque la GP32 se resetea a la que escribes algunas letras. :D Espero que te animes a mejorarlo.

Cuelgo mi chapuza ya que así no me habré pegado el curro para nada.

==== CUIDADO : Este programa es MUY probable que corrompa tu SMC, asi que tu mismo :D ===

Ya sabeis, GPSTATS.FXE y INFO.TXT dentro de \\GPMM y listo. Podeis modificar INFO.TXT cuando quereis desde el PC y vereis su contenido reflejado en la GP32.

Ahora solo me falta encontrar algun programita que modifique el TXT por mi. He probado el Mother Board Monitor 5 de Windows pero me saca demasiados datos y mal organizados. Pena que Windows no tenga un sistema de hardware virtual como el /PROC de unix, facilitaria mucho las cosas.

Saludos,

Ryo

ZeNiTRaM
14/05/2006, 02:37
Fantástico Zenitram ! :saltando: Se nota que sabes programar !

Pues la verdad es que es el primer programa que hago en C y que funciona :rolleyes: es más, practicamente TODO el codigo está copiado del PandaForth...

Pero ahora lo que hace falta es modificar el programita ese que controla el USB (lo he colgado tal cual venia compilado del PandaForth) para que lea de un archivo y tal y cual. Pero está en C#...:rolleyes:

rondc
14/05/2006, 04:13
Gracias, por llevar adelante el tema, os estoy agradecido.

Espero que pronto veamos algo chulo rulando con sus coloritos y demás-

Ánimo

saruman
14/05/2006, 05:44
Lo consegui! Esta es una beta chapucera, con codigo chapucero y fallos pero funciona...

Eso se compila junto a los otros archivos que vienen en la carpeta Source del Pandaforth. Me voy ya, asi que una explicacion rapida:

-Poner la GP32 en modo Pc-Link para que el PC la reconozca como tal dispositivo USB (no hay que lanzar el PC-Link en el PC).
-Salir y sin apagar la consola ni desenchufar el USB ejecutar el output.fxe
-Una vez ejecutado el output.fxe ejecutar el GP32DeMon.exe
-Escribir en el GP32DeMon, sale en la GP!!!

Tiene algun que otro bug, pero hace su funcion.
Buenìsimo trabajo Zenitram. Lo mismo te digo a ti Ryo. Estáis hechos unos cracks los 2. Por cierto, Zenitram, no me ha quedado claro si el tuyo escribe continuamente en la SMC o no...

Ryo-99
14/05/2006, 06:22
Saruman : de cracks nada, chapuceros :D

El programa de Zenitram no escribe nada en la SMC, esa es la gracia. Trasmite datos directamente desde el PC a la GP32. El mio es mas chapucero y si tiene que escribir, aunque a cambio ya funciona y es más práctico para usar software de monitorización ya que estos suelen escribir cada cierto tiempo un LOG donde tu le digas.

Lo malo del programa de Zenitram es que la parte del PC es enrevesada de escribir y tras comentarlo un rato en el irc esta chungo, porque o se aprovecha la DLL ya existente y el programa en C#o se re-escribe que es un trabajo colosal. No puedo decirte mas porque a fin de cuentas no soy programador.

En mi caso, lo próximo que intentaré será encontrar algun programa pa PC que me escribe los datos que yo quiero como yo quiero. Luego intentaré mostrar en la GP32 los datos como fuente de gráficos y no como texto simple, y mas adelante ponerle un dibujito de fondo o algo pa que quede bonito. Veremos.

Saludos,

Ryo.

Malenko
14/05/2006, 08:14
Yo tengo bastante experiencia programando en C#. Si me dais información de como usar la DLL yo mismo os lo puedo hacer.

ZeNiTRaM
14/05/2006, 18:58
Yo tengo bastante experiencia programando en C#. Si me dais información de como usar la DLL yo mismo os lo puedo hacer.
Creo que es mas bien sencillo.. aunque sin tener yo ni idea de C# es un poco dificil :rolleyes:

Aqui te cuelgo el codigo fuente "tal cual" del programa de PC. Por ahora lo que hace es por lo que he mirado pasar el codigo ASCII de las teclas pulsadas directamente por el USB, tambien espera respuesta de la GP aunque en la parte de la GP no se usa la respuesta.

Lo que se podria hacer es lo siguiente:
-Modificar el codigo para que cada X segundos/minutos transfiera un TXT, como? Leyendo uno a uno cada caracter y pasandolo en codigo ASCII. Esto se almacenaria en el buffer de la parte de la GP y al pasar un caracter determinado (ej: 255, esto lo detectaria el programa en la parte de la GP) la GP limpiaria la pantalla, sacaria el buffer, y limpiaria el buffer.

o bien
-Montar un mini-servidor telnet, el funcionamiento seria mas o menos el mismo, simplemente lo que le entra lo desvia a la GP32, pero seria mas flexible al poder hacer scripts en otros lenguajes que saquen ahi la información.

Quizas tambien se puedan pasar imagenes y que el programa las fuera sacando por pantalla, aunque esto quizas sea demasiado complicado..

En principio el codigo que maneja el USB no hay que tocarlo, la DLL que maneja el USB ya viene compilada, si no vienen las fuentes creo que estan aqui http://www.ishani.plus.com/gp32/, pero creo que no hace falta recompilarlo.

Si alguien se ofrece a colaborar, seas tu, Malenko, o quien quiera, gracias por adelantado:brindis:

alien8
15/05/2006, 13:22
Ryo-99 para leer información desde windows puedes probar con coolmon (http://www.coolmon.org) , el programada puede configurarse para que guarde cada x tiempo los datos en formato xml , yo uso una versión vieja de coolmon pero veo que existe una versión nueva que puede sea mas configurable el formato en el que guarda los datos , voy a echarle un ojo...