Newsgroup: it.comp.lang.visual-basic
Titolo: Scrivere 0h su seriale

Scusate se forse a chi è più
pratico può sembrare banale, ma io ho una periferica
che si aspetta 0h (zero in esadecimale) sulla porta seriale,
io ho scritto
MSComm1.Output = "0"
ma probabilmente non è corretto, voi come scrivereste?
Grazie
Ciao


Dipende dal protocollo.
Ad esempio, protocolli tipo Siemens ModBus si aspettano CHR$(0), protocolli
tipo Omron Sysway si aspettano "0", altri vogliono "0000" (dW) ecc...
Senza dimenticare che quasi tutte le comunicazioni hanno caratteri di inizio
e fine messaggio, ecc...
Devi necessariamente valutare la documentazione della periferica.
Ciao
Alberto

 Devi necessariamente valutare la documentazione della periferica.
Nella documentazione c'è scritto che la periferica si aspetta uno 0
(esadecimale)
sulla porta seriale (che è l'inizio di una serie di botta e risposta).
Nella guida di MSComm dice:
"Per inviare dati binari è necessario passare alla proprietà Output una
variabile
Variant contenente una matrice di byte."
Ma mi continua a dire "Valore della proprietà non valido"...
Forse sto affogando in un bicchier d'acqua...
Grazie
Ciao

"Carta" <tat...@XXXXfreemail.it> ha scritto nel messaggio
news:b42gon$2sm$1...@fata.cs.interbusiness.it...

Ovviamente hai provato con MSComm1.Output=&H0    ......vero?
Umbe

> Ovviamente hai provato con MSComm1.Output=&H0    ......verO?
Si ma dice che il tipo non è corretto... e gli do' ragione su questo!

 > ma probabilmente non č corretto, voi come scrivereste?


 MSComm1.Output = chr(0)
chr(0)=Null !!
ciaociao

 (esadecimale)
Non c'è scritto altro?
Dimmi che periferica è, così evito di acquistarla...
Ciao
Alberto


chr(0) ???
In base a cosa lo dici?
Umbe

 Dimmi che periferica è, così evito di acquistarla...
E' una gettoniera per giochi da bar!!!
Sono scandalizzato dall'assoluta assenza di documentazione,
mi hanno fornito unapagina in cui c'è scritto:
 - Inviare uno 0 esadecimale sulla porta seriale
 - Attendere (entro 100 ms) un segnale qualunque
 - Inviare un 1D esadecimale sulla porta seriale
 - I due byte che si riceveranno successivamente sono
    il valore della moneta inserita
Non sai quante volte e cosa ho provato ad inviare sto 0h senza ottenere
nulla,
poi ho incominciato a sentirmi stupido perchè dopo decine
di combinazioni non capivo cosa effettivamente stesse uscendo su sta porta
seriale...
Poi ho provato ad abbandonare il controllo MSComm ed andare via API, ma non
ho
ottenuto nulla di diverso.
Tu, leggendo questo:
"Per inviare dati binari è necessario passare alla proprietà Output una
variabile Variant contenente una matrice di byte."
Non scriveresti forse
Dim VectByte(0 to 1 ) as byte
Dim PassZero as Variant
VectByte(0)=0
VectByte(1)=0
PassZero =  VectByte
MScomm.output=PassZero
ma non sembra funzionare....
Grazie
Ciao
P.S. Marca Comestero modello RM4 ... tanto per non fare nomi...

 ma non sembra funzionare....
Prima di impazzire, controlla BaudRate, Bit di dati, Stop, Parità.
Poi, effettivamente il codice che riporti è quello giusto.
Forza a 1 SThreshold e RThreshold.
Ciao
Alberto

 Forza a 1 SThreshold e RThreshold.
Effettivamente il mio codice era corretto, lo 0 lo inviava correttamente,
è il protocollo di comunicazione che è assolutamente primitivo....
Comunque ha incominciato a sputare qualcosa... adesso è solo questione
di sincronizzarsi decentemente....
Grazie mille ciao
Andrea
P.S. Sempre in debito!

Ce l'ho fatta!!! Incredibile ma vero!
Grazie ad ogni contributo!
Ciao