Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
ACCESSO ALLE PORTE COM con VB.net
lunedì 17 maggio 2010 - 13.24
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ostoniv
Profilo
| Newbie
20
messaggi | Data Invio:
lun 17 mag 2010 - 13:24
Salve,
chi mi puo' aiutare con un nuovo problema ropicapo: ))
Dunque, nel mio applicativo ho gestito le funzionalità di invio SMS dal cell cellulare ( il cell. viene collegato al pc tramite cavetto usb ). Per tale funzionalità ho creato la classe: "Cellulare" che contiene le funzionalita necessarie.
Effettuo le seguenti operazioni:
1) Dalla form principale Menu, chiamo una seconda form "Connessione" che mi permette di trovare la porta COM su cui è aggangiato il modem del cellulare. Per tale operazioni creo un oggetto della classe cellulare ed uso un metodo opportuno ( checkPort) e quindi il controllo SerialPort creato all' interno della classe. Tale metodo funziona correttamente, trova la porta COM interessata ( es. COM5) ed la visualizzO in una TextBOX, dopodichè di chiudo la connessione del controllo ( SerialPort.Close, SerialPort.Dispose) e distruggo l' oggetto cellulare.
2) Dalla form principale Menu, chiamo la terza form "Messaggi" per l' invio del sms. Anche per tale operazione creo un oggetto della classe cellulare, il metodo "InviaSms" e lostesso tipo di controllo SerialPort usato in precedenza. Quindi configuro l' oggetto SerialPort con la porta trovata in precedenza, ma quando vado aprire la porta, invocando il metodo: SerialPort.Open, compare il messaggio di errore: "La porta COM5 è già impegnata in un altro processo".
Quindi non riesco ad utilizzare la porta COM, trovata.
Un osservazione: se salto il passo 1, inchiodo direttamente il nome della porta COM, nel codice del pass 2, il tutto funziona correttamente.
Qualcuno puo' dirmi cosa sbaglio?
Grazie in anticipo
Vinc.
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
lun 17 mag 2010 - 14:45
Ciao Vincenzo,
>Tale metodo funziona correttamente, trova la porta COM interessata
>( es. COM5) ed la visualizzO in una TextBOX, dopodichè di chiudo
>la connessione del controllo ( SerialPort.Close, SerialPort.Dispose)
>e distruggo l' oggetto cellulare.
allora, se vuoi chiudere la connessione per poi riaprirla subito dopo, devi utilizzare solo SerialPort.Close.
Utilizzando il metodo DISPOSE non fai altro che "dare in pasto" l'oggetto al Garbage Collection in modo da liberare la memoria utilizzata.
Questo processo non è immediato, perchè dipende dal SO.
Prova ad utilizzare solo il metoto CLOSE.
A mio parere ti sconsiglio di utlizzare il cellulare, ma appoggiarti a qualche gateway SMS sul web, che tramite una semplice richiesta http ti permette di inviare sms.
Ti consiglio
http://www.subitosms.it
Fammi sapere
------------------------
Luxsor
ostoniv
Profilo
| Newbie
20
messaggi | Data Invio:
lun 17 mag 2010 - 15:51
Ciao luxsor,
grazie per la tempestiva risposta.
Riquardo all' uso del solo metodo close, avevo già fatto questo tentativo: ho utilizzato solo il metodo close e poi insieme quello dispose.
Quello che non mi spiego come mai se utilizzo la porta COM da due form diverse non riesco ad utilizzarla, se invece la uso dalla stessa form la posso usare ripetutamente ( con i metodi Close, Open) ?
L' esigenza di mandare gli sms dal cell. è dovuta al fatto che il cliente non sempre la connessione internet disponibile. Poi analizzando i prezzi che offrono su internet, l' sms viene a costare sui 13,7 Cent. Mentre con i vari operatori in media costa da 10-15 cent.
Vinc.
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
lun 17 mag 2010 - 16:23
Utilizzi direttamente il controllo SerialPort o utilizzi la classe?
Posta il codice che utilizzi.
------------------------
Luxsor
ostoniv
Profilo
| Newbie
20
messaggi | Data Invio:
lun 17 mag 2010 - 16:58
Utilizzo la classe, creo un nuovo oggetto serialport nella mia classe.
luxsor
Profilo
| Guru
1.079
messaggi | Data Invio:
lun 17 mag 2010 - 18:29
Prova ad utilizzare il controllo.
Fammi sapere
------------------------
Luxsor
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !