Page 1 of 2
		
			
				bascom-arduino comunicazione su seriale
				
Posted: 
31 Oct 2012, 15:44 
				by massibal
				Buongiorno...rieccomi con le solite domande BASIChe!!
quesito:
vorrei che quando la routine " test" è finita 
 >>Lcd "Test OFF" 
>>  Print "z"
mi invia sulla seriale una lettera "z" e
poi con il programma di visual basic leggo che è arrivata le lettera in questione e faccio eseguire un comando!
mi date qualche idea!
 VB 6:
Rx = MSComm1.Input
If Len(Rx) Then  
          Text1.Text = Text1.Text & Rx 
          End If
          If Len(Rx) = z Then
           Shape17.FillColor = &HFF&
help !
grazie
massi
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
31 Oct 2012, 18:07 
				by Fagos
				massibal quale è l'aiuto che cerchi, non mi è chiaro.
il tuo programma x arduino quando finisce fa: PRINT "z"    ?
spedisci questa "z" a un programma VB6 che gira sul pc?
e allora cosa ti necessita, devi migliorare la routine VB6 per controllare la "z" o altro.
ciao
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
01 Nov 2012, 15:18 
				by massibal
				Ciao,
in effetti non sono stato chiarissimo..
il problema è questo :io uso print "z" per inviare un comando sulla com in modo che poi VB6 dovrebbe vedere che è arrivato "z" e quindi poi mi deve eseguire una semplice operazione ...tipo colorare una shape di rosso!
ora bascom invia correttamentre la "z" ma poi VB6 non esegue nulla ....
grazie
ciao
massi
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
01 Nov 2012, 20:05 
				by deluca
				ciao massibal,
quindi stai inviando i dati  tramite la seriale di arduino al pc su cui gira un applicativo VB6 per il quale devi scrivere il codice per la comm.
in che modalitàta stai gestendo l'"MScomm1.input" ? usando l'evento "onCom" o altro?  
la porta assegnata è esatta, è aperta, è giusto settings (baud, bitstart, parity)?
hai configurato l'"RThreshold" , l' "InputLen" e l' "InputMode" ? e con che valori ?
ho visto il tuo semplice codice .... dove lo hai inserito ? ci sono alcune imperfezioni.....  
puoi postare il codice in zip form? 
ciao
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
02 Nov 2012, 22:45 
				by massibal
				ciao,
ecco
Private Sub Form_Load()
Dim COM As Integer
COM = 0
COM = InputBox("   INSERISCI PORTA SERIALE  ", "PORTA COM")
MSComm1.CommPort = COM
MSComm1.Settings = "19200,N,8,1"
MSComm1.RThreshold = 1
On Error Resume Next
MSComm1.PortOpen = True
Label3.Caption = "COM" & COM
Shape1.FillColor = &HFF00&
If Err Then
Shape1.FillColor = &HFF&
End If
End Sub
Private Sub MSComm1_OnComm()
    Dim Rx As String
    Rx = MSComm1.Input
    If Len(Rx) Then ' legge il buffer di ricezione
      Text1.Text = Text1.Text & Rx
      End If
       If Rx = z Then
      Shape17.FillColor = &HFF&
      End If
 End Sub
in text1 io vedo arrivare la lettera "z" inviata da Bascom ...con il comando print "z" ... ma vb6 se ne frega !!
grazie
massi
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
02 Nov 2012, 23:05 
				by flz47655
				E' una vita che non programmo in VB6 ma mi sembra che nel confronto
Rx = z
devi mettere le virgolette ed eventualmente l caratteri di a capo, è minuscola la "z"?
Ciao
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
02 Nov 2012, 23:33 
				by massibal
				ciao
già provato !!ma non va!
grazie
massi
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
02 Nov 2012, 23:42 
				by flz47655
				Se fai debug passo passo riesci a vedere cosa vale Rx?
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
03 Nov 2012, 00:01 
				by massibal
				ci provo ! poi ti dico
domani però....
..grazie 
tra le altre cose mi sai dire come fare per refreshare una textbox multilinea ...io ricevo dati stringa da seriale che vengon scritti nella textbox a 4 righe .. poi però vorrei che si cancellassero e lasciassero spazio alle nuove stringhe in arrivo .. non riesco--!! sei hai qualche idea 
notte
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
03 Nov 2012, 00:58 
				by flz47655
				Ciao, sinceramente non mi ricordo più molto di VB6.. per cancellare la textbox bisogna impostare il testo ad una stringa vuota "", per aggiornarla devi reimpostare la proprietà text col nuovo testo (penso che vuoi fare quello)
Ad ogni modo sicuro che conviene studiare VB6 oggigiorno? Sono passati quasi tutti a C#
Ciao
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
03 Nov 2012, 10:39 
				by legacy
				domandilla, usi VB6 su XP ? se si che VB6 stai usando ? 
esiste liberamente scaricabile ? quanti MB occupa ?
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
03 Nov 2012, 12:59 
				by deluca
				@massibal,
il tuo codice se pur scritto in modo molto semplicistico a me funziona.
la (z) essendo un valore stringa deve essere racchiuso tra virgolette "z"
inoltre se vuoi azzerare il contenuto della textbox prima di stampare il valore nuovo puoi eseguire Text1.text="" 
purtroppo in questa modalità sei costretto a trasferire e a controllare un carattere alla volta....visto che MSComm1.RThreshold = 1
esistono metodi molto più avanzati che utilizzano il buffer seriale in modo ma ricevere molti pacchetti di dati  senza perdere nessun carattere(è quello che potrebbe succedere utilizzando l'evento onComm in questa modalità da te usata)
PS. ho aggiunto e rieditato qualche riga per debuggare meglio il tuo codice.
- Code: Select all
 Private Sub Form_Load()
    On Error Resume Next
    Dim COM As Integer
    COM = 0
    COM = InputBox(" INSERISCI PORTA SERIALE ", "PORTA COM")
        MSComm1.CommPort = COM
        MSComm1.Settings = "19200,N,8,1"
        MSComm1.RThreshold = 1
        MSComm1.PortOpen = True
        Label1.Caption = "COM" & COM
        Shape1.FillColor = &HFF00&
        If Err Then
            Shape1.FillColor = &HFF&
        End If
End Sub
Private Sub MSComm1_OnComm()
 Dim Rx As String
 Rx = MSComm1.Input
 Text1.text=""
 If Len(Rx) Then ' legge il buffer di ricezione
    Text1.Text = Rx
 End If
 
 If Rx = "z" Then
    
    Label1.Caption = Rx
    Shape2.FillColor = &HFF&
 
 End If
End Sub
 
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
03 Nov 2012, 16:48 
				by massibal
				per Legacy
Visual Basic 6.0 per SO 32 bit-  su win 7 -
su cd  ( circa 500 MB )  --- mi ha dato qualche problema su 7 ma gira ugualmente!
ciao
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
03 Nov 2012, 16:51 
				by massibal
				gentilissimo Deluca,
grazie mille ,
purtroppo non riesco a capire come sia possibile ma su pc ( nel textbox di vb) vedo arrivare la lettera "Z" ma purtroppo non accade nulla e la shape non cambia colore!
boh !!(come direbbe mio figlio !!)
saluti
massi
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
03 Nov 2012, 20:14 
				by deluca
				Massibal,
se fai copia e incolla del codice che ho postato sopra vedrai che funzionerà tutto.
Se continui a lasciare la (zeta) senza virgolette il confronto (IF) non capirà che stiamo parlando di una costante stringa con contenuto (z), ma eseguirà un confronto con una variabile numerica z
'-- errore
If Rx = z Then
    Shape17.FillColor = &HFF&
End If
'-- funziona
If Rx = "z" Then
    Shape17.FillColor = &HFF&
End If
spero di essere stato chiaro.
ciao
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
03 Nov 2012, 20:40 
				by flz47655
				legacy wrote:domandilla, usi VB6 su XP ? se si che VB6 stai usando ? 
esiste liberamente scaricabile ? quanti MB occupa ?
VB6 non è scaricabile liberamente, non è più possibile acquistarlo a meno di una MSDN Subscription, gli studenti in genere ne hanno una gratuita tramite l'università dove tra l'altro è possibile scaricare anche molto altro software.
Su Windows Vista/7/8 "funzionicchia" anche se XP è l'ideale
Io avevo iniziato proprio il mio "viaggio" con la "Learning Edition" di VB6
@massi: non è che il problema è il colore? Se è già quello non si nota il cambiamento..
Ciao
 
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
03 Nov 2012, 20:48 
				by legacy
				un tempo si, e liberamente scaricabile! Io pero' non ricordavo il nome del prodotto
VB5 (demo) -> 
Visual Basic Control Creation EditionVB6 (demo) -> 
Visual Basic 6 Working Model "demo" significa che non compilano .exe, il resto e' circa full, a me va benissimo
in particolare il 
Working Model veniva allegato anche a riviste o book come questo
-> 
http://www.amazon.com/Learn-Microsoft-Visual-Basic-6-0/dp/073560729X/ref=sr_1_2?ie=UTF8&s=books&qid=1304722789&sr=8-2#_fra l'altro il software delle ultime ristampe forse esiste "portable" e nel caso dovrebbe occupare meno di 10Mb !
@massibal
ottimo, e buono a sapersi se dovessi mai a passare oltre XP: vengo da un retaggio linux
XP l'ho messo su un muletto pentium3 con pochissimo disco fisso (10Gb, di cui 9 gia' pieni per tools di sviluppo)
l'ho preso espressamente perche' eseguendo Windows sotto macchina virtuale su macOSX (avevo solo un mac)
faccio molta fatica a virtualizzare l'hw che mi serve, p.e. USB, porta parallela
ma anche per usare accrocchi USB, anche solo USB<->UART ho problemi gravi e praticamente non funziona nulla.
Forse dovrei cambiare virtualizzatore. Invece con 20 euro in fiera ho tirato su un portatile scassone ed ho risolto.
 
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
04 Nov 2012, 10:09 
				by massibal
				@legacy...
ma in fiera al marc di genova ??
bye
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
04 Nov 2012, 10:24 
				by legacy
				Friedrichshafen, tempo fa
c'ero andato per altri motivi, poi mi sono fatto un giro in fiera 
ed ho tirato su il muletto IBM thinkpad con meno di 2 min di batteria  
 IBM thinkpad T23, Pentium3@800Mhz, 512Mb ram, 10Gb disco, alimentatore: 20 euro
Da noi, Milano, Erba, Busto Arsizio, le fiere delle mie parti, come minimo chiedevano 70-90 euro.
 
			 
			
		
			
				Re: bascom-arduino comunicazione su seriale
				
Posted: 
04 Nov 2012, 10:57 
				by massibal
				Buongiorno Deluca... 
"abbiamo un problema"  !!!!   avevo già inserito il tuo codice ma non funziona!!
Private Sub Form_Load()
    On Error Resume Next
    Dim COM As Integer
    COM = 0
    COM = InputBox(" INSERISCI PORTA SERIALE ", "PORTA COM")
        MSComm1.CommPort = COM
        MSComm1.Settings = "19200,N,8,1"
        MSComm1.RThreshold = 1
        MSComm1.PortOpen = True
        Label3.Caption = "COM" & COM
        Shape1.FillColor = &HFF00&
        If Err Then
            Shape1.FillColor = &HFF&
        End If
End Sub
Private Sub MSComm1_OnComm()
 Dim Rx As String
 Rx = MSComm1.Input
  If Len(Rx) Then 
    Text1.Text =Text1.text & Rx
 End If
 
 If Rx = "z" Then   
     Shape2.FillColor = &HFF&
  End If
End Sub
idee?
massi