Newsgroup: it.comp.lang.visual-basic
Titolo: Timer e lettura da com

Indubbiamente l'argomento è stato già trattato ma non ho trovato
thread in quest'ottica.
Ho un timer che ogni tot mi scatena il suo evento (ora per tot intend
1000 mS ma non credo centri).
Nel Timer_timer invio in messaggio su di una seriale e attendo la
risposta (l'aggeggio collegato è un contametri che a domanda mia mi
risponde col valore dei metri che misura).
Il problema è che mentre il contametri sta fermo e sul suo display
c'è una cifra l'evento timer si scatena è tutto funziona, appena il
contametri comincia a contare (quindi sul suo display cambiano i
valori) l'evento timer non si scatena più.
So che in effetti l'oggetto ha problemi con le letture da porte ma che
soluzione adottare?
Al3x



Mah, direi che dovresti innanzitutto usare il polling almeno per vedere che cosa
trasmette l'aggeggio sulla seriale quando si muove, poi decidi se osare l'OnComm
o meno.
Il Timer mi sembra una cosa non molto adatta allo scopo.
--
ciao
  Stefano

 Il Timer mi sembra una cosa non molto adatta allo scopo.
C'è qche alternativa per "chiedergli" la misura ogni tot tempo? Sarei
ben felice di togliere il timer (che nn era in preventivo di essere
usato tra l'altro!).
Al3x

 trasmette l'aggeggio sulla seriale quando si muove,
Giusto per sicurezza l'ho provato ora (sono dal cliente a testare!) e
confermo se non chiedo non mi dice nulla...
Se nel timer_timer butto solo il MSComm.output e la lettura la faccio
nell'OnComm non funziona lo stesso perchè cmq il timer_timer non
scatta più... (a volte singhiozza a volte non va del tutto...).
Il bello è che appena stoppo il contametri tutto riparte... ma può
essere che rimane come incartato se la seriale da risultati?
Al3x

essere che rimane come incartato se la seriale da risultati?
Questo lo puoi sapere solo interrogando continuamente l'aggeggio.
Puň darsi che risponda in ritardo se sta girando, e tu col timer non lo becchi.
Fai un loop in polling con qualche sleep per vedere come si comporta.
Avevo postato del codice qui:
http://shorterlink.com/?18DFWJ
--
ciao
  Stefano

Dopo svariate prove sono giunto alla conclusione che il tutto si
incrucchia solo se leggo da altre COM!
Io infatti leggo con OnComm da una bilancia e da un lettore di barcode
(pistola) e in più "chiedo" al contametri i metri a cui sono arrivato.
Se disabilito i due OnComm il colloquio col contametri è ok altrimenti
si impalla.
Ora la bilancia la posso leggere in un secondo momento metre la pistola
deve essere in contemporanea, che fare?
La pistola tra l'altro mi da problemi poichè dopo 1 lettura mi si
pianta del tutto (perchè???) e devo toglierle la corrente per farla
riprendere! Non ci faccio nulla se non cercare di leggere nell'OnCom
con MsComm.Input... sono quasi disperato!
Al3x

con MsComm.Input... sono quasi disperato!
Hai usato 2  MsComm su due seriali diverse?
In questo caso avrai MsComm1 e MsComm2 da gestire separatamente.
--
ciao
  Stefano

 In questo caso avrai MsComm1 e MsComm2 da gestire separatamente.
In realtà ho MsComm1, MsComm2 e MsComm3.
Mi sono reso conto (grazie all'idea che mi hai dato) che c'era qcosa di
strano nel'handshaking che andava impostato com Hardware. Non so
perchè ma gestito come software andava solo se il contametri era fermo
(ma cmq buttava fuori un risultato!); probabilmente era proprio colpa
di un disallineamento nella comunicazione in concomitanza anche delle
letture dalla pistola e della bilancia.
Credo cmq di aver risolto, domani pomeriggio sono ancora la e
vediamo...
Al3x

vediamo...
Direi speriamo...     ;-))
--
ciao
  Stefano

> Direi speriamo...     ;-))
Funziona e direi bene :-)
Tempo rizzando la OnComm chiamata a mano ogni tot del timer riesco
anche a leggere il peso in tempo reale!
Grazie di tutto,
Al3x