Manejar puerto USB (serial)

Post Reply
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Manejar puerto USB (serial)

Post by JmGarcia »

Para acceder a un puerto USB emulador serie, los que aparecen dentro del apartado "Puertos (COM y LPT)" del administrador de despositivos de MiPC, lo hago de la siguiente forma:
hPuerto:=oPenComm("COM1:",1024,128)
WriteComm(hPuerto,"Lo que sea...")
CloseComm(hPuerto)
.../...


Pero mi problema viene cuando ese dispositivo no aparece en Puertos (COM y LPT) si no en "Controladoras de bus serie universal" con los nombres:
USB Serial Converter A
USB Serial Converter B

¿ Como manejo esos puertos con los comandos/funciones de xHarbour/FW ?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Manejar puerto USB (serial)

Post by JmGarcia »

¡¡¡ Socorroooooo.... !!! :(
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Manejar puerto USB (serial)

Post by MarioG »

Esto es un O.T. aunque afin a este tema
Existe alguna función que me indique que es un DataDrive lo que esta coenctado al puerto USB?. algo así como IsDiskette()

gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Manejar puerto USB (serial)

Post by JmGarcia »

No es ningun device de almacenamiento. Es un transmisor de información, tipo modem, tipo bascula, etc...
Mi problema es que no se manejarlo ya que no esta definido como un COM.
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Manejar puerto USB (serial)

Post by Antonio Linares »

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Manejar puerto USB (serial)

Post by JmGarcia »

Antonio, gracias por el enlace, pero mi problema es que los puertos serie USB que quiero manejar no aparecen en Puertos (COM y LPT) del "Administrador de dispositivos" si no que aparecen en Controladoras de bus serie universal y no tienen NUMERO de puerto, se llaman:
USB Serial Converter A
USB Serial Converter B
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Manejar puerto USB (serial)

Post by JmGarcia »

¿ Alguna pista ? :oops:
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
admsoporte
Posts: 79
Joined: Sun Oct 09, 2005 3:09 pm
Location: Mexico

Re: Manejar puerto USB (serial)

Post by admsoporte »

Checa bien en propiedades del com que aparece en los drivers usb, tiene asociado un com configurable como los normales, puede ser com4, com5 o tu lo puedes modificar para que sea com1.
Lo anterior quiere decir que aunque sean puesrtos serie a traves de USB, tienen asociado un com virtual
Saludos
Saludos

Atentamente

Jose F Dominguez Serafin

email admsoporte@gmail.com
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Manejar puerto USB (serial)

Post by JmGarcia »

admsoporte wrote:Checa bien en propiedades del com que aparece en los drivers usb...
Pues solo sale en "Controladoras bus serie universal". En el apartado "Puertos (COM y LPT)" no hay cambios.

Te adjunto el panel del "Administrador de Dispositivos" antes y después de enchufar el periférico que quiero manejar.
Image
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Manejar puerto USB (serial)

Post by JmGarcia »

Ahora sin embargo me encuentro con un puerto serie de un aparato de USB que me aparece en el apartado de "Puertos (COM y LPT)" y sin embargo no lo puedo manejar con las funciones de manejo de puertos serie.

Cuando hago el OpenComm me devuelve números mayores que cero y cuando uso, acto seguido, BuildCommDcb me da false es decir que no reconoce los puertos serie que no sean físicos. Tampoco el SetCommState.

Con el hyperterminal si manejo todos los puertos.

¿ Alguna idea ?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Manejar puerto USB (serial)

Post by JmGarcia »

¿ Alguna libreria de comunicaciones serie de licencia GNU (libre) ?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Manejar puerto USB (serial)

Post by JmGarcia »

"Wrapeando" la funcion CreateFile de la librería kernerl32.dll, que es como se manejan los puertos COM en Win32, al consultar GetLastError me da error 123 (ERROR_INVALID_NAME. The filename, directory name, or volume label syntax is incorrect) para un dispoditivo de comunicaciones que al instalarlo aparece como COM21.

El código:

Code: Select all

CreateFile("COM21:",nOr(GENERIC_READ,GENERIC_WRITE),0,nil,OPEN_EXISTING,0,nil) // Devuelve -1
GetLastError() // Devuelve 123
DLL32 FUNCTION GetLastError() AS LONG PASCAL FROM "GetLastError" LIB "kernel32.dll"
DLL32 FUNCTION CreateFile(lpFileName AS LPSTR,;
                          dwDesiredAccess AS LONG,;
                          dwShareMode AS LONG,;
                          lpSecurityAttributes AS LONG,;
                          dwCreationDisposition AS LONG,;
                          dwFlagsAndAttributes AS LONG,;
                          hTemplateFile AS LONG) AS LONG PASCAL FROM "CreateFileA" LIB "kernel32.dll"
Para otros COMs como COM1 y COM2 (puertos físicos no virtuales) me devuelve datos válidos.

¿ Alguna idea ?
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
User avatar
JmGarcia
Posts: 654
Joined: Mon May 29, 2006 3:14 pm
Location: Madrid - ESPAÑA

Re: Manejar puerto USB (serial)

Post by JmGarcia »

¿ Y si me dedico a usar un control OCX ?

¿ Como usar CreateOleObject("MSCommLib.MSComm") ?
¿ Que DLLs o LIBs hacen falta ?

¡¡¡ SOCORRO !!!
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
Simon
Posts: 105
Joined: Thu Oct 20, 2005 12:29 pm
Location: Maracaibo, Venezuela.

Re: Manejar puerto USB (serial)

Post by Simon »

Hola Jm tengo el mismo problema con dispositivos usb, lo solucionaste ? como hiciste ?
Post Reply