Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Comunicazione con porta USB

34 views
Skip to first unread message

g

unread,
Dec 14, 2009, 12:03:36 PM12/14/09
to
Ciao a tutti,
devo rifare un progetto che attualmente comunica con un dispositivo
collegato ad una porta COM e rimane in attesa dei dati letti dallo
stesso. Il progetto utilizza il componente MSComm e testa la porta
COM1 e la porta COM2.

Il rifacimento è richiesto perchè l'evoluzione del dispositivo è USB.
In realtà lo ritrovo ancora su una porta COM ma non è reale.

Il componente sopra menzionato non lo posso più utilizzarlo in quanto,
da articolo MSN, non è adeguato.

A questo punto ho provato ad utilizzare le dll fornite con il
dispositivo ma anche seguendo le istruzioni il componente viene
correttamente inizializzato su qualsiasi porta. Mi spiego meglio, ho
fatto un ciclo (che poi sostituirò con Select * from Win32_PnPEntity)
e ho richiamato il .inizializza della dll fornita dal costruttore. Su
qualsiasi porta va a buon fine!

Qualcuno è in grado di darmi una dritta?

Grazie

SB

unread,
Dec 15, 2009, 3:39:52 AM12/15/09
to
Il giorno Mon, 14 Dec 2009 09:03:36 -0800 (PST), g <giachett...@gmail.com>
ha scritto:

>Ciao a tutti,
>devo rifare un progetto che attualmente comunica con un dispositivo
>collegato ad una porta COM e rimane in attesa dei dati letti dallo
>stesso. Il progetto utilizza il componente MSComm e testa la porta
>COM1 e la porta COM2.
>

>Il rifacimento � richiesto perch� l'evoluzione del dispositivo � USB.
>In realt� lo ritrovo ancora su una porta COM ma non � reale.
>
>Il componente sopra menzionato non lo posso pi� utilizzarlo in quanto,
>da articolo MSN, non � adeguato.

Mooolto strano.

Le seriali virtuali funzionano tranquillamente con MSCOMM, devi installare
correttemnte i driver e poi andare a vedere qual'� il numero di Com assegnato
dal s.o.
Lo puoi fare da:
Propriet� sistema >> hardware >> gestione periferiche >> Porte COM-LPT
Selezioni la seriale virtuale e in Avanzate puoi anche cambiare il numero.

Per sapere il numero da VB leggi questo thread in cui ho anche postato del
codice:

http://is.gd/57Brf

Per modificare MsComm in modo da poter usare le Com oltre la 16 leggi qui

http://is.gd/5odGx

--
ciao
Stefano

Andrea [Work]

unread,
Dec 15, 2009, 4:22:19 AM12/15/09
to
Il Tue, 15 Dec 2009 09:39:52 +0100, SB ha scritto:

> Le seriali virtuali funzionano tranquillamente con MSCOMM

Confermo, ho interfacciato diversi strumenti, collegati con adattatori
usb/seriale.

g

unread,
Dec 16, 2009, 3:51:11 AM12/16/09
to
Ciao, prima di tutto grazie per le vostre risposte.
Ho visto i thread suggeriti da Stefano, ho ricontrollato la mia
procedura e mi sembra tutto corretto.
Ora, a seguito dei vostri consigli, ho provato a riutilizzare MSComm
(nonostante quanto detto da MSDN presente sull'articolo
http://support.microsoft.com/kb/832678/it) ma nulla è cambiato.
Nemmeno con questo componente, come attraverso l'utilizzo della dll
fornita dal costruttore, mi viene inizializzata la porta giusta.
Questo il mio codice
.Handshaking = comRTS
.Settings = "9600,E,7,1"
.RThreshold = 1
If SGF_GesPas.MyComm.DSRHolding = True Then
TrovatoPorta = True

g

unread,
Dec 16, 2009, 4:13:19 AM12/16/09
to
On 16 Dic, 09:51, g <giachetti.giu...@gmail.com> wrote:
> Ciao, prima di tutto grazie per le vostre risposte.
> Ho visto i thread suggeriti da Stefano, ho ricontrollato la mia
> procedura e mi sembra tutto corretto.
> Ora, a seguito dei vostri consigli, ho provato a riutilizzare MSComm
> (nonostante quanto detto da MSDN presente sull'articolohttp://support.microsoft.com/kb/832678/it) ma nulla è cambiato.

> Nemmeno con questo componente, come attraverso l'utilizzo della dll
> fornita dal costruttore, mi viene inizializzata la porta giusta.
> Questo il mio codice
> .Handshaking = comRTS
> .Settings = "9600,E,7,1"
> .RThreshold = 1
> If SGF_GesPas.MyComm.DSRHolding = True Then
> TrovatoPorta = True


Sto continuando con le prove perchè mi è stato richiesto l'utilizzo
delle dll/ocx fornite dal costruttore.
Negli esempi forniti con gli ocx il .inizializza non funziona e la dll
ha dei comportamenti alterni. Ogni tanto inizializza la porta corretta
e altre volte no, inizializza la prima trovata.
Ho due dubbi, la dll ha tra i vari parametri hwnd, tale valore se non
erro è l'handle della finestra, è corretto? Dove viene inizializzata?
La dll l'ho sia messa nella root del progetto sia sotto system32 ma
non cambia nulla.
Ora è sotto la root del progetto è corretto?

Tutte le prove le sto facendo con una form anche se poi il tutto dovrà
diventare un ocx, a quel punto hwnd sarà sempre quello di un form che
andrò ad inserire.

Grazie

0 new messages