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