Newsgroup: it.comp.lang.visual-basic
Titolo: : Problema MsComm :

Messaggio inviato un paio di giorni fa..
Hal1961 mi ha consigliato di riprovarci con un subject diverso..
Salve NGW..ho una serie di consigli da richiedervi per una situazione un pò
particolare..
Nella giornata di domani (oramai è passata..e nn è che abbia fatto una bella
figura..:( !) devo presentare la versione demo di un programma ed
avrei bisongo di alcuni suggerimenti :
1) Ho un problemino con il controllo MsComm...
Allora mi capita una cosa alquanto strana :
Il mio è un programmino per la ricezione di alcuni dati dalla seriale.
Quando lo faccio partire dall'editor Visual Basic (tramite il tasto play
della barra degli strumenti) il programma riceve benissimo questi dati, e va
che è una favola.
Quando invece lo faccio partire dall'exe che ho compilato, e ovviamente
integrato in un setup, la
ricezione dei dati è completamente sballata?
Mi spiego meglio:
Nel momento in cui il dispositvo collegato alla seriale invia i dati, il mio
SW fa comparire una finestra che avvisa della ricezione dei dati.
Questo quando lo faccio partire in modalita test (debug di VB) va una
meraviglia.
Nel momento che uso l'exe per eseguire una ricezione dei dati, la finestra
di avviso mi compare ben 16 volte. Come se il dispositivo inviasse ben 16
volte i dati.
Come posso risolvere questo inconveniente..?
Ecco il codice:
Private Sub VSM_OnComm()
    Dim Risposta As String
    Risposta = MsgBox("Inviati dei Dati. Si Desidera Confermarli?", vbYesNo
+  vbInformation)
        If Risposta = vbYes Then
            StringaDati = VSM.Input
           Call sElaboraStringaDati(StringaDati)           'Sub che Elabora
i dati che sono arrivati
         End If
End Sub
2)In più, questo però lo posso affrontare con più calma, questo cliente mi
ha richiesto come funzione ausiliaria la possibilità di recupara da una
presa video alcune foto e di associarle ai dati inviati da questo
meccanismo. Da dove parto ? E' possibile da VB effettuare aquisizione
immagini..ovviamente disponendo di quelache supporto hardware ? E
soprattutto in termini di tempo quanto ci vuole per realizzare qualcosa ex
novo..?
Grazie 1000 !
Moebius

         If Risposta = vbYes Then
Comunque, saltando di brutto MsComm (che non conosco) e certo che quello non
può essere il problema, perchè hai dimensionato Risposta As String e non As
Integer?

 ricezione dei dati è completamente sballata?
perche' l'mscomm riceve i dati splittati, tocca a te riconporli , e' come
col winsok , i dati li invia tutti insieme , ma alla ricezione se la rete e'
carica si riceve una frase anche divisa in 2 trance !
Quindi studiati bene il protocollo che usi e ricomponi esternamente il tuo
buffer , sommetto che per modalita' test tu intenda il passo passo vero ?
Infatti in questo modo il buffer ha tempo di riempirsi fino all'esecuzione
del comando successivo , mentre in compilato appena riceve un pezzo manda il
msgbox mentre il resto dei dati e' ancora in accodamento nel buffer
-- 
<Gigio2K>
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/

 carica si riceve una frase anche divisa in 2 trance !
Detto che non ho una grandissima esperienza con tale controllo.
Non mi risulta, in teoria dovresti ricevere i dati sul commevent quando ne
sono stati ricevuti tanti quanti indicati in rsThresold.
Quindi se imposto rsthresold a 20 e invio 20 caratteri sia in compilato che
in debug dovrei ricevere i dati una volta sola, anche perchč dopo averli
letti il buffer si svuota automaticamente.
Ma ripeto, non ho molta esperienza su tale controllo.