User Tag List

Página 2 de 3 PrimerPrimer 123 ÚltimoÚltimo
Resultados 16 al 30 de 33

Tema: Usar la GP32 como LCD externo de PC

  1. #16

    Fecha de ingreso
    Jun 2004
    Mensajes
    94
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    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
    SH4 Risc LittleEndian

  2. #17

    Fecha de ingreso
    Jul 2003
    Ubicación
    Barcelona
    Mensajes
    4,251
    Mencionado
    37 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    668
    Agradecer Thanks Received 
    425
    Thanked in
    Agradecido 275 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    10

    progress

    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

    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.

    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 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 .

    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.
    Última edición por Ryo-99; 12/05/2006 a las 09:12 Razón: Edición automática anti doble-post.

  3. #18

    Fecha de ingreso
    Jun 2004
    Ubicación
    Reus / Catalunya
    Mensajes
    5,204
    Mencionado
    23 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    285
    Agradecer Thanks Received 
    169
    Thanked in
    Agradecido 91 veces en [ARG:2 UNDEFINED] posts
    Aupa Ryo!
    May the Force be with you, ALWAYS...

  4. #19

    Fecha de ingreso
    Jan 2004
    Mensajes
    1,240
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    2
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    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;
    }
    Última edición por alien8; 12/05/2006 a las 23:52

  5. #20

    Fecha de ingreso
    Jun 2004
    Ubicación
    Reus / Catalunya
    Mensajes
    5,204
    Mencionado
    23 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    285
    Agradecer Thanks Received 
    169
    Thanked in
    Agradecido 91 veces en [ARG:2 UNDEFINED] posts
    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...)
    May the Force be with you, ALWAYS...

  6. #21

    Fecha de ingreso
    Jul 2005
    Ubicación
    Montijo Ville
    Mensajes
    1,812
    Mencionado
    5 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    155
    Agradecer Thanks Received 
    11
    Thanked in
    Agradecido 8 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Endor
    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

  7. #22

    Fecha de ingreso
    Feb 2005
    Ubicación
    Estudiando (o no) en Leganés
    Mensajes
    2,052
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    2
    Thanked in
    Agradecido 2 veces en [ARG:2 UNDEFINED] posts
    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/...orth-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)

  8. #23

    Fecha de ingreso
    Dec 2004
    Ubicación
    Barcelona
    Mensajes
    690
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    4
    Agradecer Thanks Received 
    5
    Thanked in
    Agradecido 5 veces en [ARG:2 UNDEFINED] posts
    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

  9. #24

    Fecha de ingreso
    Feb 2005
    Ubicación
    Estudiando (o no) en Leganés
    Mensajes
    2,052
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    2
    Thanked in
    Agradecido 2 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Logann
    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.

  10. #25

    Fecha de ingreso
    Feb 2005
    Ubicación
    Estudiando (o no) en Leganés
    Mensajes
    2,052
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    2
    Thanked in
    Agradecido 2 veces en [ARG:2 UNDEFINED] posts
    Lo consegui! Esta es una beta chapucera, con codigo chapucero y fallos pero funciona...
    Código:
    //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.
    Archivos adjuntados Archivos adjuntados

  11. #26

    Fecha de ingreso
    Jul 2003
    Ubicación
    Barcelona
    Mensajes
    4,251
    Mencionado
    37 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    668
    Agradecer Thanks Received 
    425
    Thanked in
    Agradecido 275 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    10

    mi release.

    Fantástico Zenitram ! Se nota que sabes programar !

    Lo acabo de probar y funciona ! aunque la GP32 se resetea a la que escribes algunas letras. 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 ===

    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
    Archivos adjuntados Archivos adjuntados

  12. #27

    Fecha de ingreso
    Feb 2005
    Ubicación
    Estudiando (o no) en Leganés
    Mensajes
    2,052
    Mencionado
    1 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    2
    Thanked in
    Agradecido 2 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Ryo-99
    Fantástico Zenitram ! Se nota que sabes programar !
    Pues la verdad es que es el primer programa que hago en C y que funciona 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#...

  13. #28

    Fecha de ingreso
    Jun 2004
    Mensajes
    94
    Mencionado
    0 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    0
    Agradecer Thanks Received 
    0
    Thanked in
    Agradecido 0 veces en [ARG:2 UNDEFINED] posts
    Gracias, por llevar adelante el tema, os estoy agradecido.

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

    Ánimo
    SH4 Risc LittleEndian

  14. #29

    Fecha de ingreso
    Sep 2004
    Ubicación
    Madrid
    Mensajes
    3,317
    Mencionado
    9 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    284
    Agradecer Thanks Received 
    236
    Thanked in
    Agradecido 124 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por ZeNiTRaM
    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...

  15. #30

    Fecha de ingreso
    Jul 2003
    Ubicación
    Barcelona
    Mensajes
    4,251
    Mencionado
    37 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    668
    Agradecer Thanks Received 
    425
    Thanked in
    Agradecido 275 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    10
    Saruman : de cracks nada, chapuceros

    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.

Página 2 de 3 PrimerPrimer 123 ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •