Newsgroup: it.comp.lang.visual-basic
Titolo: Problemi Gestione Seriale

Ciao a tutti.
Sono alle prese con un programma che interfaccia al computer un dispositivo
GSM per l'invio/ricezione di SMS. La gestione è via seriale però ho notato
che, anche usando un timeout molto lungo (dell'ordine di 2 sec.), tra
l'invio di dati, la ricezione e l'eventuale nuovo invio, parte dei dati che
invio si perdono. Visto che a parità di settaggio della COM, il problema si
verifica in maniera apparentemente casuale, penso sia dovuto ad una gestione
non costante dell'evento Timer.
Qualcuno mi saprebbe dire un modo più efficiente per gestire le pause tra
invio e ricezione sulla COM?
Cia Cia
fil
hyp...@aruba.it
www.teatrolabaracca.com
|-----------------------------------------|
|     in giro torte solo ciclos et rotor igni    |
|-----------------------------------------|

invio e ricezione sulla COM?
Mi pare di capire che usi un timer.
Se e' cosi', imho ti conviene rifare il programma utilizzando gli eventi (del controllo mscomm
se usi il controllo, altrimenti le callback del sistema operativo se usi l' api) 
e lasciar perdere il timer che, in sistemi operativi multitasking come windows 
e con la varieta' attuale delle configurazioni hardware, e' solo fonte di problemi.
ciao, hal

 ha scritto nel messaggio
news:9bs3f8$abu81$1...@ID-73994.news.dfncis.de...


 se usi il controllo, altrimenti le callback del sistema operativo se usi
l' api)
Utilizzo il controllo mscomm... potresti farmi un esempietto... ^___^
Grazie!


 Marius
Io sto sviluppando con un dispositivo GSM Nokia PremiCell che ha anche la
funzione modem e quindi accetta i comandi AT (cosa che cmq ora hanno quasi
tutti i nuovi telefoni GSM). Su internet si trovano molte informazioni sulla
codifica/decodifica del formato SMS (PDU). Se quello che cerchi dono
informazioni in merito a come decodificare un msg SMS c'č un bell'articolo
esauriente su Computer Programmin di questo mese. L'articolo č anche
disponibile on-line all'indirizzo 
www.infomedia.it
.
Cmq penso che se quello che ti occorre č tacitare la centralina tramite SMS
dovresti dedicarti ad una programmazione della centralina per farle
riconoscere ad esempio il umero di telefono e il comando (inserito nell'SMS)
per farla tacere.


Utilizzo il controllo mscomm... potresti farmi un esempietto... ^___^
se sapessi cosa stai facendo tu, pero' ...
riguarda il tuo post iniziale e l' inizio della mia risposta: sto tirando a indovinare il tuo reale
problema ...
ciao, hal
p.s.
dai un' occhiata sul sito comune al manifesto del newsgroup, che tratta della delle
modalita' piu' opportune sul come porre i quesiti.
riciao, hal


Allora...
Il problema è questo: il mio programma invia dei comandi AT ad un modem GSM
per inviare SMS. La procedura standard è
_ Invia il comando con il numero di cell a cui mandare l'SMS
_ Attendi la risposta dalla com (cioè attiva un evento timer che conta tot
secondi prima di inviare il comando seguente)
_ Invia il testo del messaggio.
 La procedura anche per i comandi AT di inizializzazione è sempre la stessa;
tra un comando e l'altro c'è un tempo di attesa.
Succede però che a volte dopo aver inviato il comando con il numero di cell
e aver atteso tot secondi, il dispositivo GSM non è ancora pronto a ricevere
i dati e quindi il testo del messaggio che viene realmente spedito è mozzato
della parte iniziale (di solito dalle 5 alle 10 lettere).
Mi potresti fare un esempio di come gestire gli eventi della COM senza così
dovermi vincolare ad un timer che, come hai detto anche tu, non è
affidabile.
Grazie


della parte iniziale (di solito dalle 5 alle 10 lettere).
Se vai su 
msdn.microsoft.com
 e digiti "MsComm" nel campo di ricerca ottieni piu' di trenta
link, di cui almeno la meta' relativi a visual basic e quasi tutti con codice di esempio.
Gli esempi non mi pare trattino specificamente di gsm, ma la logica non cambia poi molto.
ciao, hal

 wrote in message
news:9bs3f8$abu81$1...@ID-73994.news.dfncis.de...
