Ciao a tutti.
Ho un problema con le porte comm.
Nel programma che sto realizzando un dispositivo comunica con il PC tramite una seriale.
Premetto che non ho mai utilizzato una seriale in VB e quindi mi son messo a cercare e a smanettare senza sapere di preciso se quello che sto facendo ha senso...ma visto quello che succede penso di essere abbastanza vicino alla soluzione.
Per comunicare con la porta ho utilizzato un oggetto MSComm (chiamato cmmP13).
Quando apro il form inizializzo così:
[CODE]
cmmP13.CommPort = 10
cmmP13.Settings = "256000, N, 8, 1"
cmmP13.PortOpen = True
cmmP13.RThreshold = 1
[\CODE]
Poi leggendo la guida ho scoperto che:
" Note that setting the RThreshold or SThreshold properties to 0 disables trapping for the comEvReceive and comEvSend events, respectively."
così ho aggiunto:
[CODE]
cmmP13.RThreshold = 1
[\CODE]
(Ammetto di non sapere cosa comporti metti 1... magari è questa la causa del problema)
L'oggetto MSComm ha un solo evento e lo gestisco così:
[CODE]
Private Sub cmmP13_OnComm()
Dim data As Variant
data = cmmP13.Input
Call My_function (data)
End Sub
[\CODE]
Per testare il funzionamento del tutto ho installato un programma che crea una seriale virtuale.
Ho provato a collegarmi con due istanze di unterminale a questa porta e sembra funzionare correttamente.
Ora... se collego il terminale alla porta e faccio partire il mio programma, quando invio un carattere dal terminale l'evento OnComm viene generato.
Il problema è che il valore di data è "" e non il carattere che invio io dal terminale.
Sapete spiegarmi il perchè?
Grazie mille in anticipo!