TODOPIC

Lenguajes de programación para PC => C, C#, C++ => Mensaje iniciado por: 5GTT en 02 de Febrero de 2006, 18:25:00

Título: Visual C++
Publicado por: 5GTT en 02 de Febrero de 2006, 18:25:00
Hola, recurro ya a este foro por que en otros de programacion no me han sabido ayudar o bien no me he sabido explicar.

Estoy retomando el proyecto del PicUSB de J1M, pero adaptandolo a Visual C++, que es el lenguaje con el que mas familiarizado estoy. Ya consegui que me funcionaran botones para apagar led y encenderlos, pero nunca consegui hacer las sumas. Investigando me he dado cuenta de que el fallo esta en los cuadros donde introduzco el numero a sumar.

Utilizo las MFC, y creo los EditBox. En ello introduzco una variable miembro y ahi comienzan mis problemas, he probado con diferentes tipos de variable, tanto int, UINT, BYTE y CString, de ninguna forma consigo que esas variables lleguen al PIC, en realidad creo que no consigo leerlas para pasarlas al buffer.

He visto que hay mucho nivel en programacion por aqui, a ver si alguien me puede hechar una mano.

Título: RE: Visual C++
Publicado por: migsantiago en 03 de Febrero de 2006, 15:16:00
No estoy familiarizado con lo de las sumas del proyecto de JIM, pero si expones tu duda mejor talvez te logre ayudar.

Mi nivel de programación en VC++ es básico. Pero he logrado usar el puerto paralelo bajo winXP con ayuda de un dll.

Divertido
Título: RE: Visual C++
Publicado por: 5GTT en 04 de Febrero de 2006, 11:26:00
Muchas gracias migsantiago, revisando el ejemplo de J1M, en C# me he dado cuenta de que intentaba hacer una locura y por eso no me llegaba la informacion bien al PIC.

Al final declarando la variable que introducia como UINT y pasandola posteriormente a BYTE me ha funcionado perfectamente.

Muchas gracias.
Título: RE: Visual C++
Publicado por: elmasvital en 04 de Febrero de 2006, 13:35:00
Escrito originalmente por 5GTT
Muchas gracias migsantiago, revisando el ejemplo de J1M, en C# me he dado cuenta de que intentaba hacer una locura y por eso no me llegaba la informacion bien al PIC.

Al final declarando la variable que introducia como UINT y pasandola posteriormente a BYTE me ha funcionado perfectamente.

Muchas gracias.


En verdad te lo iba a comentar pero es que no tengo experiencia con ese proyecto ni con vc++  pero te iba a comentar que tenias que tener en cuenta el numero de bits que en realidad tiene una variable en el pic y la del vc++.

En fin lo que no mata engorda y eso engorda la experiencia no?

1 saludo
Título: RE: Visual C++
Publicado por: migsantiago en 05 de Febrero de 2006, 10:44:00
Tienes razón vital... Sonrisa Gigante

El int en los pic vale 8bits.

---------------------------------------------
BOOL   A Boolean value.

BSTR   A 32-bit character pointer.

BYTE   An 8-bit integer that is not signed.

COLORREF   A 32-bit value used as a color value.

DWORD   A 32-bit unsigned integer or the address of a segment and its associated offset.

LONG   A 32-bit signed integer.

LPARAM   A 32-bit value passed as a parameter to a window procedure or callback function.

LPCSTR   A 32-bit pointer to a constant character string.

LPSTR   A 32-bit pointer to a character string.

LPCTSTR   A 32-bit pointer to a constant character string that is portable for Unicode and DBCS.

LPTSTR   A 32-bit pointer to a character string that is portable for Unicode and DBCS.

LPVOID   A 32-bit pointer to an unspecified type.

LRESULT   A 32-bit value returned from a window procedure or callback function.

UINT   A 16-bit unsigned integer on Windows versions 3.0 and 3.1; a 32-bit unsigned integer on Win32.

WNDPROC   A 32-bit pointer to a window procedure.

WORD   A 16-bit unsigned integer.

WPARAM   A value passed as a parameter to a window procedure or callback function: 16 bits on Windows versions 3.0 and 3.1; 32 bits on Win32.
Título: RE: Visual C++
Publicado por: 5GTT en 05 de Febrero de 2006, 19:45:00
Escrito originalmente por elmasvital

En verdad te lo iba a comentar pero es que no tengo experiencia con ese proyecto ni con vc++  pero te iba a comentar que tenias que tener en cuenta el numero de bits que en realidad tiene una variable en el pic y la del vc++.

En fin lo que no mata engorda y eso engorda la experiencia no?

1 saludo


Si si xD, ya vi que pasar un CString a byte era imposible, no daba error pero si advertia de la perdida de datos y claro, al PIC le llegaba informacion erronea.

Pero bueno, despues de estar un par de dias probando de una y otra forma creo que esto  nunca se me olvidara Giño
Título: RE: Visual C++
Publicado por: Artifox en 06 de Febrero de 2006, 06:27:00
Hola Mariano, recien vuelvo a estar al tanto del tema.... Que paso?? Lograste arreglar el problema?? pues a mi tampoco me resulto, y por el momento lo tengo en stand by.

Cuentanos como te fue.

Un abrazoSonrisa GiganteSonrisa GiganteSonrisa GiganteSonrisa Gigante
Título: RE: Visual C++
Publicado por: 5GTT en 06 de Febrero de 2006, 15:09:00
Artifox correcto jeje ya funciona, darme el correo y os lo mando que no se como ponerlo por aqui. No me acordaba ya de que ya lo intentamos hace un tiempo, esta vez no se ha podido resistir. El truco estava en poner UpdateData() .

J1M tambien va por ti que ya lei el privado, te lo mando a tu direccion tambien. Luego si sabeis y quereis lo podeis colgar aqui.

PD: Si no os llega esta noche es que he muerto estudiando analogica que tengo el examen mañana, deseadme suerte xD.
Título: RE: Visual C++
Publicado por: 5GTT en 06 de Febrero de 2006, 16:03:00
Se me olvidaba comentar una cosa. En si el programa es una mera transcripcion del de J1M a VC++, pero tiene algo interesante y es que he creado una clase USB, con sus constructores, destructores y funciones que se puede portar a cualquier proyecto que hagamos en adelante en VC++. Son los archivox USB.cpp y USB.h
Título: RE: Visual C++
Publicado por: Artifox en 06 de Febrero de 2006, 21:23:00
Hola Mariano, lo del UpdateData() me di cuenta recien hace poco con otro programa que hice... Pero lo bueno es que ya te funciono Giño

Me pareceria bueno que lo podamos poner para todos aca en el foro, hace tiempo subi los archivos de mi programa aca en el almacen... buscando por alli encontre el hilo...

http://miarroba.com/foros/ver.php?foroid=348538&temaid=3933900

A ver si lo puedes subir, sino yo lo hago cuando me envies los archivos Sonrisa Gigante Otra cosa que seria bueno es publicarlo en el hilo original del Proyecto PICUSB, para que otros que tengan el mismo problema lo puedan usar...

Un abrazo RebotadoRebotadoRebotado
Título: RE: Visual C++
Publicado por: 5GTT en 07 de Febrero de 2006, 09:06:00
Lo que pasa es que me da error al entrar en tu pagina web Artifox, y no se cual es tu correo para enviartelo, dimelo y te lo paso y ya lo cuelgas donde quieras para todos. Ya se lo envie a J1M tambien que si tenia su correo.
Título: RE: Visual C++
Publicado por: J1M en 07 de Febrero de 2006, 09:20:00
Aquí dejo un link para el programita de 5GTT (gracias tio Giño) en Rapidshare
http://rapidshare.de/files/12747646/PicUSB_C___5GTT.rar.html

saludos Giño
Título: RE: Visual C++
Publicado por: Artifox en 07 de Febrero de 2006, 10:44:00
Muchas Gracias MarianoRebotadoRebotadoRebotado

Ya vi las 2 lineas que me faltaban.... Ahora si esta completo el programa.Sonrisa GiganteSonrisa GiganteSonrisa Gigante
Por cierto, mi pagina web esta fuera de linea, pues el mierd@roba le dio de baja porque habian muy pocas visitas, cuando me de tiempo lo vuelvo a poner on-line con algunas cosas nuevas...Giño

Un abrazoFumador
Título: RE: Visual C++
Publicado por: migsantiago en 07 de Febrero de 2006, 14:57:00
Holas

Y a todo esto, ¿de qué trata el programa?
Título: RE: Visual C++
Publicado por: 5GTT en 07 de Febrero de 2006, 19:03:00
En si no hace nada interesante el programa, solo tiene utilidad didactica para aprender a usar el puerto USB con un PIC, el proyecto no es mio, es de J1M solo que el realizo la interface en un lenguaje que ni artifox ni yo habiamos usado nuca y hemos conseguido rehacerlo en VC++ que si lo conocemos un poco.

Título: RE: Visual C++
Publicado por: migsantiago en 07 de Febrero de 2006, 21:41:00
Qué bien, ¿se puede compilar con VC++6?

y ¿es posible aprender a usar USB desde cero usando como ejemplo el programita?

Porque si lo es empezaré a checarlo más a fondo. Sonrisa Gigante
Título: RE: Visual C++
Publicado por: 5GTT en 08 de Febrero de 2006, 07:48:00
Si, de hecho el VC++6 es el compilador que yo uso.

Para aprender desde 0 esta bien ya que aprendes a enviar desde el PC datos para encender el LED de la placa del GTPUSB y a recibir datos desde el PIC con la funcion de sumar.

Te recomiendo que mires el hilo original de J1M, en el subforo de proyectos, es el titulado PICUSB.
Título: RE: Visual C++
Publicado por: Artifox en 26 de Febrero de 2006, 11:01:00
Bueno, vuelvo al tema pues ahora me surge una nueva pregunta, he aqui: ¿Que pasa cuando el PIC envia a la PC un dato, sin que esta lo espere, como lo guarda o que se hace?

Pues quiero enviar constante mente datos del PIC y no se como recibirlos en algo asi como una interrupcion en la PC. Asi como cuando se recibe un evento de comunicacion serial.

A ver si alguien me echa un cable. Sonrisa GiganteSonrisa GiganteSonrisa GiganteSonrisa GiganteSonrisa Gigante
Título: RE: Visual C++
Publicado por: 5GTT en 28 de Febrero de 2006, 18:20:00
Tampoco se me habia ocurrido hacer un envio de varios datos consecutivos, supongo que en las funciones de la clase USB OpenPipes() y ClosePipes() estara la clave.

Podrias crear un vector incrementable y que antes de ejecutar ClosePipes guardara el valor de myInPipe. Esta variable myInPipe, al igual que la myOutPipe es donde se guarda el valor de entrada y salida del puerto en cada momento.

PD: Esas variables son las de mi clase USB, en tu ejemplo que me mandaste al principio de que empezaramos a investigar como migrar a VC++ este proyecto no usabas un clase, pero debe ser bastante parecido.
Título: RE: Visual C++
Publicado por: Artifox en 01 de Marzo de 2006, 08:58:00
Hola Mariano, pues la verdad que no me habia dado cuenta que habia diferencias entre nuestros programas (me refiero a los comandos) pense que usabamos los mismos dll"s.

Lo que tenia pensado era encontrar un modulo o evento que se genere automaticamente como cuando hacemos una comunicacion serial, en la cual se genera una inerrupcion del programa para revisar que pasa con el modulo de comunicacion serial.

Si mal no recuerdo en uno de los intenos que hice para usar el EasyHID generando un programa en VC++ me parece haber visto algo por el estilo para manejar la recepcion de datos USB y otros. Pero no lo pude hechar a andar por falta de fuentes y de tiempo.

Apenas me desocupe un poco voy a intentar hacer lo que me dices y ver que pasa...
Ya nos vemos, un abrazo.Sonrisa GiganteSonrisa GiganteSonrisa Gigante
Título: Re: Visual C++
Publicado por: raus en 14 de Diciembre de 2007, 10:24:35
Hola!!!

Estoy trasteando con esto del USB y, con C# lo he conseguido, pero mi IDE es el Visual Studio 2005, y al abrir el proyecto en C++ (que me interesa especialmente), trata de convertirlo desde VC++ 6 a VC++ 2005, y da un par de errores... ¿Alguno sabéis que debería ajustar para que lo convierta bien? O, al menos, si me podeis dar unas pautas para rehacer el programa en la version 2005, os lo agradecería enormemente :)

El error, concretamente es:

Error   1   error C2440: 'static_cast' : cannot convert from 'void (__thiscall CPICUSBVCDlg::* )(UINT)' to 'AFX_PMSG'

y se refiere a esta línea del PICUSBVCDlg.cpp:

Código: C++
  1. ON_BN_CLICKED(IDC_BUTTON1, OnVerdeOn)

y creo que guarda relación con esta parte del PICUSBVCDlg.h :

Código: C++
  1. afx_msg void OnVerdeOn(UINT led);

Muchas gracias
Título: Re: Visual C++
Publicado por: c4_esp_VR en 14 de Diciembre de 2007, 12:44:45
Adjunata todo el código en un fichero zip e intentaré ayudarte en todo lo que pueda. He trabajado el usb con VC++ 6.0 y es sencillo, imagino que al final será alguna tontería.

Un saludete.
Título: Re: Visual C++
Publicado por: raus en 14 de Diciembre de 2007, 13:37:45
Hola!!!

Gracias por tu respuesta. El código no es mio, es el que está en la página de J1M, en:
este link (http://www.hobbypic.com/images/stories/articulos/comunicacion/picusbstuff/PicUSB_VC++.rar)

Lo unico que pretendía era poder pasarlo a Visual C++ 2005, para poder trabajar con el y seguir investigando
Título: Re: Visual C++
Publicado por: c4_esp_VR en 19 de Diciembre de 2007, 20:07:54
Bueno raus como bien te dije sólo era cuestión de tiempo, pásate por aquí, estoy seguro que es esto lo que estas buscando  :-) :-) :-) :-)

Visual C++ 2005 PIC Calculadora USB 2.0 (http://www.muchotrasto.com/Visual%20C++.php)

Espero que sea útil a la comunidad de todopic.

Lo he hecho ya que en la aplicación que hice en paralelo en su día con 5GTT yo no tuve problemas con mi aplicación al pasar de VC++ 6 a 2005, así que hay dos tipos, uno realizado en VC++ 6.0 que puede ser pasado a 2005 y una hecha íntegramente en 2005, además de un magnífico tutorial de como hacerlo paso a paso y con sus respectivos download.

Un saludete a todos y sobre todo a aquellos que me han pedido este tutorial, amigos raus y tsunami
Título: Re: Visual C++
Publicado por: raus en 20 de Diciembre de 2007, 05:25:21
Vaya, muchísimas gracias!!

Esta tarde cuando llegue a casa lo probaré a ver que tal, pero de antemano muchisimas gracias por tomarte la molestia! :)
Título: Re: Visual C++
Publicado por: c4_esp_VR en 21 de Diciembre de 2007, 13:47:12
Espero que te sirva de mucho raus. No es molestía, pensaba que la gente no tenía complicaciones con el usb en visual 2005, así que me puse manos a la obra para ayudar a los demás.

Ya no s contarás si te ha funcionado perfectamente o no.

Un saludote.
Título: Re: Visual C++
Publicado por: raus en 23 de Diciembre de 2007, 06:01:13
No estoy teniendo mucho tiempo en estas fechas, con las reuniones familiares y tal.... pero si que funciona!!!!!!!!!
Título: Re: Visual C++
Publicado por: c4_esp_VR en 24 de Diciembre de 2007, 09:33:59
Con saber que el programita que he hecho funciona en otro ordenador que no sea el mio significa que está bien depurado y que no usa librerias estrañas.

Ya nos contarás los resultados de tu aplicación raus.

Un saludete y suerte.