Mscomm non da risultati

martedì 03 ottobre 2006 - 14.28

sonopiccolino Profilo | Newbie

Io ho un problema. Con il seguente codice Text 1 non prende alcun valore è sempre ""...ho provato ad installare un prg x la lettura della porta seriale e i risultati li mostra..Pecchee??
Da notare che il peso (bilancia) lo restituisce in continuo...HELLLP


Private Sub MSComm1_OnComm()
Dim Mes$
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
MSComm1.RThreshold = 1

Mes$ = MSComm1.Input

MSComm1.PortOpen = False
Text1 = Mes$
End Sub

Brainkiller Profilo | Guru

>Io ho un problema. Con il seguente codice Text 1 non prende alcun
>valore è sempre ""...ho provato ad installare un prg x la lettura
>della porta seriale e i risultati li mostra..Pecchee??
>Da notare che il peso (bilancia) lo restituisce in continuo...HELLLP

Io per fare test di questo tipo, utilizzo l'Hyper Terminal di Windows. Di solito non viene installato, devi andare in Installazione di Windows e aggiungerlo. Lo lanci, e ti puoi collegare direttamente sulla porta seriale e da lì lanciare i comandi per recuperare il peso o altri dati, basandoti sul protocollo di comunicazione della bilancia.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

squilibrium Profilo | Junior Member

Io ho avuto un problema simile utilizzando MsComm da VB.NET e "inspiegabilmente" mi ha funzionato aprendo e chiudendo la porta del tipo:

MSComm1.PortOpen = True

MSComm1.PortOpen = false

MSComm1.PortOpen = True

Non ricordo se prima di riaprirla ho cambiato altre impostazioni se non risolvi fammi sapere che ricerco il codice.

sonopiccolino Profilo | Newbie

Ok dopo provo sia ad aprire e chiudere la porta che ad installare l'hyper terminal (tra l'altro lo si fa direttamente da inst. applicazioni?) . Cmq ti ripeto che un altro prg per la lettura "simple term gold" legge tranquillamente..(naturalmente non li eseguo tutti e due all'unisono)..

sonopiccolino Profilo | Newbie

No non funziona...

squilibrium Profilo | Junior Member

Se ti può essere utile ti invio i parametri impostati da VB.NET

.RThreshold = 1

.ParityReplace = "?"

.DTREnable = True
.RTSEnable = True

.NullDiscard = False

.InputMode = MSCommLib.InputModeConstants.comInputModeText

.InputLen = p_iInputlen 'lnghezza massima dei dati in input

.CommPort = p_iPort 'porta comm per la connessione

.Handshaking = p_Handshake 'Controllo di flusso dati - default = none

.Settings = p_iBautrate & ",N,8,1" 'bautrate

.PortOpen = True
System.Threading.Thread.Sleep(500)
.PortOpen = False
System.Threading.Thread.Sleep(500)
.PortOpen = True
System.Threading.Thread.Sleep(500)

Prova eventualmente a cambiare il bautrate dalla tua e se usi VB6 al posto di System.Threading.Thread.Sleep(500) metti un DoEvents

sonopiccolino Profilo | Newbie

Be ci provo.. Posso solo sperare che sia una questione di tempistica. Io non ho impostato timer per la lettura. Però tieni presente che viene fornito in continua il peso con una stringa <flag> <segno> <peso> cr.

Brainkiller Profilo | Guru

>Be ci provo.. Posso solo sperare che sia una questione di tempistica.
>Io non ho impostato timer per la lettura. Però tieni presente
>che viene fornito in continua il peso con una stringa

Effettivamente su questo scenario non ho mai fatto test neanche io. Da quello che ho capito la bilancia continua a spararti i dati anche senza la tua richiesta vero ? Quindi in modalità asincrona. Io invece operavo in modalità sincrona, mandavo un comando e il device mi restituiva l'output.

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

fasol Profilo | Junior Member

molto provabilmente nn funziona percheè i settaggi nn sono corretti controlla il protocollo di trasmissione della bilancia e verifia la velofita di trasmissione il pit di parità etc..... poi settali confomemente nella prop mscomm.setting="velocita,...,...,..."

prova potrebbe essere x quello
fammi sapere



meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5