Newsgroup: it.comp.appl.access
Titolo: rs232

Ciao a tutti
ho il seguente problema:
PC che comunica con un registratore di cassa tramite seriale, e MSCOMM cosi
settata
2400,e,7,1 su porta com 1 Handhasking null
invio una sequenza di stringhe corrispondenti ad uno scontrino, se lo faccio
in modalità debug una riga alla volta (tasto F8) tutto ok lo scontrino viene
perfetto.
Se lo eseguo normalmente si blocca dopo la prima stringa.
da cosa dipende? devo inserire un ritardo tra un invio ed un'altro? se si
come?
Ciao, AEOM

"AEOM" <in...@FUCK-LAMER.com> wrote in
news:S6ynb.59443$
e5.21...@news1.tin.it
: 

la cosa più banale potrebbe essere:
for i=1 to 1000
    	'non fai niente...
next i
-- 
+-------
| Paolo opg
|
| janickg ( at ) hotmail ( dot ) com
| (fake address in reply-to field!)
+-------

"AEOM" <in...@FUCK-LAMER.com> ha scritto nel messaggio
news:S6ynb.59443$e5.21...@news1.tin.it...

Ciao AEOM
Ho fatto anche io un programma che stampa lo scontrino su un registratore di
cassa e a ogni comando inviato dovevo leggere la risposta che tutto fosse
OK. Forse anche il tuo reg. di cassa utilizza questo metodo.
Ciao Giorgio.

 ha scritto nel messaggio
news:bnmjp6$7me$1...@lacerta.tiscalinet.it...

Ciao Giorgio !
i vecchi modelli ad ogni invio mi rispondevano con un EOT ma questi nuovi
no!!
non so veramente che fare!
ciao, AEOM


Ciao AEOM
mi č venuto in mente che in un primo momento ho utilizzato il controllo
MSCOMM (poi ho ripiegato sulle funzioni API che sono piů affidabili) e dopo
l'inizializzazione della porta occorreva attendere circa 1 secondo prima di
trasmettere altrimenti si bloccava.
Prova a inserire uno Sleep di un secondo tra l'init della porta e il primo
comando, se anche cosě non funziona intervalla i comandi con 1/10 di
secondo.
Nel caso tu non abbia la funzione Sleep inserisci questa dichiarazione in un
modulo bas. Per l'utilizzo ....
Sleep 1000 '=1 Secondo.
=======================
Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
=======================
Ciao Giorgio


Ciao Giorgio
usando la funzione sleep tra un invio e l'altro funziona, ma devo mettere
ben 1.5 secondi tra un comando e l'altro...non è troppo?
Con le api pensi che possa risolvere il problema?
Mi posti qualche riga se non chiedo troppo?
Ciao, AEOM

 Mi posti qualche riga se non chiedo troppo?
Preleva e modifica secondo le tue necessità il Db di esempio per la
comunicazione con la porta seriale.
http://web.tiscali.it/giorgiorancati/msaccess.htm
Ciao Giorgio

 ha scritto nel messaggio
news:bnmoak$atn$1...@lacerta.tiscalinet.it...

Ciao Giorgio anche con la tua procedura ho lo stesso problema...
con pausa tra uno e l'altro tutto ok, se sparo a raffica si blocca.
Secondo te è meglio aprire la porta e chiuderla dopo ogni stringa che invio
o aprirla una sola volta e chiuderla al termine?
ciao, AEOM

 o aprirla una sola volta e chiuderla al termine?
Io la apro ogni volta che devo stampare uno scontrino e la chiudo alla fine
dei vari comandi.
Quanto è la lunghezza delle stringhe inviate ?
Facendo un calcolo brutale 2400/8 = 300 byte al secondo
Non è il caso di aumentare la velocità a 9600????
Ciao Giorgio

non pensi dipenda dalla mancanza di un carattere di separazione tra le
righe.
prova ad aggiungere un chr$(13), o la virgola o un punto e virgola...o
chr$(10)...
Il mio plotter anche su collegamento parallelo richede di terminare un
comando con un carattere di chiusura.
Il tempo di 1,5s mi sembra un po' esagerato e potrebbe essere il tempo di
timeout prima di considerare la linea ricevuta.
Ma sto solo supponendo.
Loris

 ha scritto nel messaggio
news:bnnsf5$p40$1...@lacerta.tiscalinet.it...

Ho provato ad aumentare a 9600...ma senza il secondo e mezzo di attesa tra
una stringa e l'altra si blocca tutto. Un scontrino di 10 articoli 15
sceondi mi sa che il cliente non sarà felicissimo!!
ciao, AEOM

 ha scritto nel messaggio
news:bnnt7j$pqs$1...@lacerta.tiscalinet.it...

Ciao Loris...il chr(13) lo attacco ad ogni stringa...ma non sembra quello il
problema
ciao AEOM

"AEOM" <in...@FUCK-LAMER.com> ha scritto nel messaggio
news:S6ynb.59443$e5.21...@news1.tin.it...

Ciao .
Se spedisci  la stringa tutta assieme nello stesso momento, puoi provare
a fare una piccola variazione al programma spedendo un carattere alla volta.
Nei miei trascorsi  riguardo delle comunicazioni seriali, ho sempre adottato
questo sistema e risulta essere molto piu' affidabile di sparare una intera
stringa.
Se puoi provare facci sapere.
bye :o)