Newsgroup: it.comp.lang.visual-basic
Titolo: Ricevere dati da seriale

Ciao a tutti .... vorrei con le mie "scarse" conoscenze e qualche vostro
buon consiglio riuscire a realizzare un programma che intefacci un terminale
di una bilancia (Mod. Società Coop.Bilanciai D800) a una seriale del PC in
modo che quest'ultimo riceva costantemente i dati del peso.
Ho trovato in un sito il seguente esempio:
-----------------------------------------------------------
Come prima cosa è necessario dire al controllo MSCOMM che desideriamo essere
informati della ricezione dei caratteri, impostando la proprietà Rthreshold
a 1. Quindi l'apertura della porta la modifichiamo come segue.
Private Sub Form_Load()
    MSComm1.CommPort = 1 ' Selezioniamo la COM1
    MSComm1.Settings = "9600,n,8,1" ' Le impostazioni della seriale
    MSComm1.RThreshold = 1 ' voglio essere informato della ricezione di ogni
singolo carattere
    MSComm1.PortOpen = True ' Apriamo la porta.
End Sub
Aggiungete al Form un controllo testo Text1 (fatelo bello grande) ed
impostate la proprietà MultiLine a True.
A questo punto aggiungete il seguente codice:
Private Sub MSComm1_OnComm()
    Dim Rx$
    Rx$ = MSComm1.Input ' Leggo il contenuto del buffer di ricezione (e
svuoto .Input)
    If Len(Rx$) Then ' Se ho ricevuto qualcosa lo scrivo nella TextBox
        Text1.Text = Text1.Text & Rx$
    End If
End Sub
-------------------------------------------------------------
che se non erro ... dovrebbe far scrivere nella textbox i dati inviati dal
terminale.
Aimè non è successo nulla ho impostato il terminale in modo che mandasse in
modo ciclico i dati alla seriale ... ma nella textbox non è successo nulla.
c'è un modo sicuro per sapere se arriva qualche dato alla seriale ?
il cavo seriale deve avere qualche particolarità ?
.... grazie anticipatamente
MaxTy

 il cavo seriale deve avere qualche particolarità ?
direi di no, salvo diverse indicazioni del produttore della bilancia.
In più devi considerare che i parametri che setti "9600,n,8,1" non vanno
messi a caso ma in funzione di come trasmette la bilancia, quindi devi
considerare tutto : velocita, Xon Xoff ....., prima di poter pensare di
ricevere i dati.
Ciao Gab

Ho già realizzato un programma che si interfaccia con una bilancia della
ditta Bilanciai e posso dirti che prima di tutto devi farti dare le
specifiche di quel terminale perchè la seriale riceve dati in continuazione
e devi intercettare un carattere all'interno della stringa che indica che il
peso è stabile.
Ciao, Vincenzo

Due consigli:
1) sembra una scemata, ma e' il piu' importante: verifica il cavo. In
rete trovi le specifiche della seriale (sia a 9 che a 25 pin) e il
costruttore della bilancia dovrebbe averti dato le specifiche circa la
propria uscita seriale. OCCHIO: la mappatura a 9 pin e' differente
rispetto a quella a 25 (nel senso che i pin 2 e 3 sono invertiti) e la
disposizione degli stessi varia anche in funzione del fatto che la tua
apparecchiatura si comporti come un DCE (Data Controller Equipment,
ossia il PC) o come un DTE (Data Terminal Equipment, ad esempio un
terminale seriale).
2) verifica le impostazioni della seriale, ossia: la velocita' e'
corretta? la porta e' quella giusta? la parita'? Il costruttore della
bilancia dovrebbe averti dato anche l'elenco dei parametri supportati.
Ciao!
Luca 


 ricevere i dati.
Si i parametri li ho provati sia come da listato ovviamente
cambiandoli sul terminale ... sia per come era in default il terminale
4800,*,7,2  ... l'unica cosa che la parità era pari e io ho messo
nessuna poichè non sapevo come indicargli parità=pari ... ho provato
la 'p' ma mi dava errore.
   Grazie 
    MaxTy

...

per me il problema da superare adesso è quello di ricevere i dati in
continuazione .... è quello che non riesco a fare ... una volta
ricevuto qualche dato già potrei cominciare a fare delle prove.
Il protocollo di uscita sul terminale l'ho impostato come stringa Cb
...
1 car   - Inizio Stringa
2 car   - Stabilità del peso
3 --> 7 - Peso
8 cat   - Fine stringa
il tutto in modalità ciclica che dovrebbe inviare alla seriale la
striga 3 volte al secondo .... ma sul monitor non compare niente.
Non è che potresti mandarmi la parte del tuo programma dove acquisici
i dati dalla seriale in modo che posso fare quelche prova ?
   Grazie
   MaxTy

 bilancia dovrebbe averti dato anche l'elenco dei parametri supportati.
Verificate .... l'uscita seriale del terminale la si può impostare a
proprio piacimento ho provato sia ad usare le impostazioni di default
del terminale che quelle "9600,n,8,1" del programma ...
l'unica cosa come faccio a far capire al programma che voglio parità
pari ?
... parità nessuna = n ---- parità pari = (?)

... parità nessuna = n ---- parità pari = (?)
Documentazione in linea.
MSComm Control
Proprieta' Settings.....
Ti do un 'aiutino' ;-) : non si usa mai come riferimento
l'italiano......
Ciao!
Luca 

 l'italiano......
Grazi(E)
   MaxTy

essere uguali ?
Si, senno' non si capiscono.....
Ciao!
Luca

Hai ricevuto la mia e-mail?
Ciao, Vincenzo

 Ciao, Vincenzo
Si ho ricevuto la tua e-mail ... ti ho ringraziato via e-mail e ti
ringrazio nuovamente qui per la tua disponibilità. Ringrazio tutti
quanti per l'aiuto che mi avete dato ... purtroppo oggi la persona a
cui volevo realizzare il programma lo ha comprato da un programmatore.
Al di là che mi dispiace di non avergli fatto rispiarmare un bel pò di
&#8364;uri, la cosa che mi dispiace di più è quella di non poter
verificare se con l'aiuto che mi avete dato sarei riuscito a
realizzarlo.
   Di nuovo grazie
      Ciao
   MaxTy