TODOPIC

Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: loverman24 en 20 de Febrero de 2006, 05:28:00

Título: Archivos necesarios para que funcione ene otro pc sin VB
Publicado por: loverman24 en 20 de Febrero de 2006, 05:28:00
Vereis, tengo un programa hecho en VB que recibe datos y los muestra por pantalla a traves del puerto serie. El programa funciona perfectamente en mi pc, donde esta instalado el VB.

El problema reside que el programa debo hacerlo correr en un portatil que no tiene instalado VB.

Yo creo mi exe del proyecto y cuando lo pruebo en mi pc con VB va bien, pero cuando lo pruebo en el portatil sin VB no va. El portatil recibe los datos por puerto serie pq lo he mirado por hyperterminal.

Se que habia q meter unos archivos para que corriesen aplicaciones hechas en VB en cualquier ordenador, de hecho ya meti un archivo en la carpeta system32 del portatil para que el programa se ejecutase, pero me parece que necesito otro mas.

A ver si alguien me puede indicar cual es.

Muchas gracias

Un saludo
Título: RE: Archivos necesarios para que funcione ene otro pc sin VB
Publicado por: atlasdelcarinakeel en 20 de Febrero de 2006, 05:51:00
Intenta crear un archivo instalador del programa que quieres correr, te recomiendo que copies el archivo mscomm32.ocx en el system32 de la portatil, para que pueda recibir los datos por el puerto serie. Espero que eso te ayude. Saludos
Título: RE: Archivos necesarios para que funcione ene otro pc sin VB
Publicado por: loverman24 en 20 de Febrero de 2006, 06:16:00
Y como creo ese archivo instalador?

Con que aplicacion?

EDITADO:

Ese fue el archivo que meti en el portatil y aun asi no funciona. Llegan datos por el hyperterminal pero por el programa en VB no llega nada.

Bien, he hecho un archivo de instalacion con la utlidad de empaquetado que trae VB6, pero no me funciona.

Lo instala bien, pero los datos no me aparecen en el programa, sin embargo he visto por el hyperterminal del portatil si le llegan los datos. Ademas, el mismo programa lo he instalado en mi ordenador, el q tiene VB, y funciona perfectamente.

Alguien sabe que co.o puede pasar?

Gracias

Un saludo
Título: RE: Archivos necesarios para que funcione ene otro pc sin VB
Publicado por: Colores en 20 de Febrero de 2006, 12:18:00
Solo sucede que no llegan los datos? O te pide archivos faltantes? O se cuelga en algún lugar? El portatil no tendrá los numeros de puerto cambiados por default? Acordate que tenés que incluir los .OCX de los controles que hayas usado (no solo del msComm)... instalaste los MSVB***.dll (runtimes)??? La mayoría de los archivos .OCX y otros que usan los sistemas de VB no alcxcanzan con copiarlos a la carpeta system sinó que además hay que registrarlos con un comando de DOS (en win98 al menos). El comando creo que era "regsvr /?" y te van a aparecer las opciones de como usarlo. Sirve para que windows "vea" los nuevos archivos incluyendolos en el registro de manera automática.

Si no es ninguna de esas vas a tener que dar mas informacion...
Título: RE: Archivos necesarios para que funcione ene otro pc sin VB
Publicado por: loverman24 en 20 de Febrero de 2006, 13:59:00
Bien, ya desde luego no se que pasa.

Por probar, instale el VB6 en el portatil y sorpresa, el mismo proyecto que tengo en mi ordenador no va.

Desde el hypererminal a ambos pc les llega lo mismo, y el programa en VB funciona en prefectamente. La verdad es q no se q puede ser.

La unica diferencia es que el portatil tiene un conversor de usb a puerto serie, ya q no tenia puertos serie el portatil, pero esto no creo q sea el problema, sino no podria leer los datos desde el hyperterminal.

Espero vuestra ayuda con impaciencia.
Título: RE: Archivos necesarios para que funcione ene otro pc sin VB
Publicado por: atlasdelcarinakeel en 20 de Febrero de 2006, 19:03:00
Ya rebisaste que la velociadad de transmision sea la misma?
Título: RE: Archivos necesarios para que funcione ene otro pc sin VB
Publicado por: loverman24 en 21 de Febrero de 2006, 04:06:00
Si, todo esta correcto.

Ya localice el problema, esta en el cable usb-puerto serie. Lo probe con el ordenador donde funciona todo y sucede lo mismo que en el portatil, aunque recibe bien por hyperterminal no es capaz de sacar correctamente los datos por pantalla. Saca algun numero de vez en cuando, pero nada. Ese es el problema, pero yo no le veo solucion alguna, pq el programa funcionar funciona.

Por favor si alguien se ha encontrado en el mismo embrollo que yo, q indique como salio.

Gracias

Un saludo
Título: RE: Archivos necesarios para que funcione ene otro pc sin VB
Publicado por: loverman24 en 01 de Marzo de 2006, 11:30:00
Bien, ya he arreglado a medias el problema. Ahora tengo este:

He modificado el codigo de la aplicacion, en concreto he añadido MSComm1.Settings = "9600,N,8,1" al entrar en el evento. Con esto recibo datos, peeeeeero, me muestra por pantalla caracteres extraños. He investigado, y con el codigo que tengo los caracteres extraños corresponden a lo que deberian ser numeros, no teniedo ningun problemas con las letras (en este caso aA, Bc.......) No entiendo el pq de esta pega con el convertidor usb serie, pues con el normal va muy bien, pero bueno, es lo que hay.

Pq me pasa esto con los numeros si la variable "lectura" es string??

Os pego el codigo completo.

Option Explicit
Private buffer As String
Private canal As String
Private lectura As String

Private Sub cmdCal_Click()
frmCalibracion.Show vbModal
End Sub

Private Sub cmdMed_Click()
frmMedicion.Show vbModal
End Sub

Private Sub Form_Load() "Configura el puerto en cuanto se ejecuta el programa
MSComm1.CommPort = 3 "puerto com3
MSComm1.Settings = "9600,N,8,1" "Velocidad, paridad...
MSComm1.PortOpen = True "Abre el puerto
MSComm1.InputLen = 0 "es la cantidad de caracteres que va a leer cada vez que se hace un Input, si se 5 te va a leer 5, si hay 20 no te va a vaciar el buffer, te va a dejar 15 en espera. Con 0 le decís que lea TODO el buffer y que lo vacíe completamente en cada lectura.
MSComm1.RThreshold = 1 "Ejecuta el evento OnComm cada un caracter ASCII "13" (retorno de carro)
End Sub




Private Sub MSComm1_OnComm() "Se genera el evento
MSComm1.Settings = "9600,N,8,1"
If MSComm1.InputLen > 12 Then "Si el buffer tenía más de 8 caracteres que lo descarte y vacíe el buffer. SOLO EN EL CASO QUE SE SEPA QUE LOS DATOS DEL PIC NO SUPERAN ESTA CANTIDAD. se puede especificar otro valor distinto a 8 o ignorar toda la condición.
MSComm1.PortOpen = False
MSComm1.PortOpen = True
Exit Sub
End If
buffer = MSComm1.Input
If buffer = " " Then Exit Sub
canal = Left$(buffer, 2)
lectura = Mid$(buffer, 3, 12)


Select Case canal
Case "aA"
frmCalibracion.LblPot1.Caption = "            " & canal
Case "aB"
frmCalibracion.LblPot2.Caption = "             " & lectura
Case "aC"
frmCalibracion.LblPot3.Caption = "" & canal
Case "bA"
frmMedicion.LblPot1.Caption = "" & lectura
Case "bB"
frmMedicion.LblPot2.Caption = "" & canal
Case "bC"
frmMedicion.LblPot3.Caption = "" & lectura
Case "cA"
frmMedicion.LblPot4.Caption = "" & canal
Case "cB"
frmMedicion.LblPot5.Caption = "" & canal
Case "cC"
frmMedicion.LblPot6.Caption = "" & canal

End Select
End Sub

Private Sub cmdFinalizar_Click()
Hide
End
End Sub


Bien, en el case donde pone canal me señala perfectamente aA, etc, el problema, como ya comento, es con los numeros.

Espero vuestra ayuda

Gracias

Un saludo

EDITADO:

No lo he dicho, pero el pic me envia lo siguiente:

printf ("%c%c%1.2f V
",modo, canal, tensionm); (esto en lenguaje ccs)

puede ser ese el problema? q envie los numeros como floats?

Título: RE: Archivos necesarios para que funcione ene otro pc sin VB
Publicado por: loverman24 en 02 de Marzo de 2006, 04:47:00
Bueno, incluso enviando los datos desde el pic al pc como string, los numeros me siguen saliendo como caracteres raros. Si alguien tiene alguna idea.....

Gracias

Un saludo
Título: Re: Archivos necesarios para que funcione ene otro pc sin VB
Publicado por: IngLAOFX en 17 de Mayo de 2006, 15:46:00
Yo tuve problemas de comuincacion una vez, pero no he utilizado aun ese tipo de conversores, en teoria, a una velocidad de unos 9.6 Kbps no deberia andar nada mal, asi que te contare lo que me paso...

Cuando ejecutaba mi programa desde el visual, es decir, la simulacion, todo iba bien, al generar el exe, pum todo mal...

En mi caso fue por problema de tiempo, ya que la comunicacion buscaba ser mas fluida de un lado que del otro, asi que tuve que armar una especie de protocolo para mandar y recibir datos de forma controlada y ordenada, no solo guardando datos y datos en el buffer y despues leyendolos y armando el mensaje...

Yo solo he probado ese conversor de USB a serial para programar PLCs con una laptop y no tuve problemas, asi que imagino que con el pic tampoco debe haber problema.. a menos que te estes alimentando el pic del mismo puerto serial de la PC de escritorio, y al llegar a una laptop pues, no tenes el mismo nivel de voltaje, pero no creo que sea eso... checa mejor tus tiempos,

Saludos..