Newsgroup: it.comp.lang.visual-basic
Titolo: mscomm e cts/dsr

Salve, spero che qualcuno mi aiuti.
Sto cercando di interfacciare un oscilloscopio tramite porta seriale usando
l'ocx MSComm e visual basic.
Se uso hyperterminal tutto funziona a meraviglia, altrimenti con mscomm
succede che vengono trasmessi solo i primi 7 bytes rendendo incomprensibile
il comando inviato all'oscilloscopio
Credo di aver capito che  mscomm.output="data:enc bin" invia tutta la
stringa all'oscilloscopio mentre hyperterminal un carattere alla volta
(mentre li digito) per cui ho fatto in modo di mandare un carattere alla
volta intervallandoli di 200 ms.
Tuttavia mi accorgo che anche intervallando i caratteri da trasmettere
succede sempre qualche inconveniente e quindi, visto che l'oscilloscopio
supporta handshake hard/soft, vorrei usarlo per trasmettere solo quando
l'oscilloscopio me lo consente.
Quindi speravo che qualcuno mi illustrasse come gestire handshake hardware
tramite l'evento mscomm_onComm. Se invio una serie di bytes ricevo un evento
CTS, ma da qui in poi non so come gestire la cosa.
Se serve posso postare un pezzetto di codice.
Grazie mille,
 alessio

 ha scritto nel
messaggio news:asfk5n$6m9$1...@newsfeed.cineca.it...

Ciao
Per essere sincero non ho capito se ogni tanto riesci a spedire
correttamente
i dati all'oscilloscopio o non ci sei mai riuscito, comunque come già
postato
un sacco di volte (usare google please!) sul sito comune leggiti l'ottimo
articolo
di Ettore Maronese disamina esaustivamente gli aspetti dell'handshake HW e
SW, poi se non riesci riposta.
JKLJKL

Si sono riuscito a spedire e ricevere. Pero' ho capito che se volgio avere
una cosa che funzioni sempre (e mi e' stato confermato dal support tecnico
tektronix) devo lavorare con handshake hardware.
..il problema e' che non ho idea di come esso funzioni. Nel senso che non so
quando abiltiare dsr e quando no. Quando spedire dati e quando no. Quando
ricevere e quando no.
Ovviamente ho letto tutto il leggibile dal gruppo italiano di visual basic e
infatti di solito non chiedo riesco a risolvere i miei problemi vedendo se
qualcun altro li ha afforntati e superati. Stavolta e' prorpio una questione
di inadeguatezza mia :-|
Ho anche letto le pagine di Maronese pero' luifa solo un esempio con una
stampante da cui non riceve niente..mentre a me interessa sia spedire che
ricevere..
Ciao e grazie.


 ha scritto nel
messaggio news:asilcr$n32$1...@newsfeed.cineca.it...

Vedo nel tuo post che parli di DSR, lo sai che l'hanshake DTR-DSR non viene
gestito da MSCOMM?
Handshake DTR - DSR
Per spiegare come funziona l'handshake DTR-DSR è necessario sapere che il
DTR è un'uscita ed il DSR è un ingresso, e che il DTR del primo dispositivo
è connesso al DSR del secondo, ed il DTR del secondo dispositivo è connesso
al DSR del primo. Per sincronizzare la comunicazione chi riceve deve dare il
consenso a chi trasmette, ossia alza il segnale di DTR (lo pone a 1)
cosicché chi deve trasmettere sa che può farlo consultando lo stato del
proprio DSR. Quando un dispositivo apre la porta di comunicazione, come
prima cosa deve alzare il segnale DTR (segnale in uscita) per informare la
controparte che è pronta a ricevere, e lo abbassa solo se il buffer di
ricezione si satura. Di conseguenza il DSR (segnale in ingresso) è sempre
alto, ossia con il consenso a trasmettere, e risulta basso solo se il
ricevente è spento o non connesso, o perché il buffer di ricezione del
ricevente è saturo.
(tratto da 
http://dida.fauser.edu/sistemi/sistem5/io_ser.htm
)
Occhio ai cablaggi cambiano se le tue apparecchiature sono DTE o DCE
http://www.maronese.com/mes/Articoli/Mscomm/Cablaggi.htm
Se fai una ricerca accurata sulla rete trovi un sacco di materiale
Ti consiglio di farti un connettore Sub-D con tutti i segnali appoggiati a
dei morsetti
a vite così da poter provare tutte le combinazioni.
Ciao
JKLJKL

 gestito da MSCOMM?
si ho letto di cio' nella pagina di maronese, per cui dato che lui stesso
sconsiglia l'Xon/Xoff, volevo usare l'handshaking hardware.
Ho capito in linea di principio lo scambio tra pc e apparecchiatura, quello
che non capisco e' come gestire una cosa del genere con il VB, se mi devo
affidare ad un timer per fare il polling ogni tot millisecondi o meno.
L'ideale per me sarebbe poter ricevere dall'oscilloscopio informazioni in
"temp reale" sulle misure oltre che in "differita" sulle forme d'onda
visualizzate.
Provero' di nuovo a cercare in rete, ma per ora non ho trovato niente su
come effettuare questo scambio DTR/DSR.
Ultimamnente sto vedendo che se il buffer dell'oscilloscopio si satura
l'mscomm riceve un evento CTS. Questo solo se l'oscilloscopio e' impostato
con hardflagging.
Ciao e grazie
  alessio



Purtroppo a distanza non è facile !
Ti consiglio (cosa che sicuramente hai fatto) di scaricarti e/o di farti
spedire
la documentazione dell'apparecchiatura  è assolutamente necessario.
E' molto importante capire se l'oscillosopio e un DTE o DCE  cambia
a livello di cablaggio (è per quello che ti consigliavo il cavo con i
morsetti
così puoi provare le varie combinazioni)
La butto lì hai provato un'handshake hw RTS / CTS con i ponticellati i due
segnali sui connettori ?
Fammi sapere
Ciao e buona domenica
JKLJKL