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
.NET Framework
Invio comandi AT su porta seriale C#
lunedì 17 novembre 2008 - 14.38
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
margottina
Profilo
| Newbie
4
messaggi | Data Invio:
lun 17 nov 2008 - 14:38
Aiutatemi!!!
come posso mandare i comandi AT su porta seriale utilizzando c#??
ho bisogno di instaurare una connessione sulla COM1 per inviare e ricevere da lì i comandi AT.
ho visto SerialPort e i metodi che esporta... eseguo una write o writeline ma non capisco come inviare i dati!!
potete darmi una mano???
grazie mille
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
lun 17 nov 2008 - 15:07
>Aiutatemi!!!
Ciao
>come posso mandare i comandi AT su porta seriale utilizzando
>c#??
>ho bisogno di instaurare una connessione sulla COM1 per inviare
>e ricevere da lì i comandi AT.
>ho visto SerialPort e i metodi che esporta... eseguo una write
>o writeline ma non capisco come inviare i dati!!
>potete darmi una mano???
Qui trovi la documentazione della classe SerialPort e un esempio. SerialPort si comporta a tutti gli effetti come uno Stream, quindi eseguendo appunto un write su di esso, si andranno ad inviare i dati alla porta configurata.
L'esempio nella documentazione msdn già può esserti di aiuto:
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx
>grazie mille
Enjoy It
- Michael -
http://blogs.dotnethell.it/Regulator/
margottina
Profilo
| Newbie
4
messaggi | Data Invio:
lun 17 nov 2008 - 15:28
grazie.. avevo già visto questo esempio
ma in lettura mi restituisce quello che io mando. ho un dispositivo attaccato alla seriale e se uso hyperterminal mandando AT lui tisponde OK , invece con qusto esempio mi restituisce quello che io scrivo nel buffer,... quindi ho paura che mi manchi qualcosa
.. grazie ancora
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
lun 17 nov 2008 - 15:54
>grazie.. avevo già visto questo esempio
>ma in lettura mi restituisce quello che io mando. ho un dispositivo
>attaccato alla seriale e se uso hyperterminal mandando AT lui
>tisponde OK , invece con qusto esempio mi restituisce quello
>che io scrivo nel buffer,... quindi ho paura che mi manchi qualcosa
>.. grazie ancora
Purtroppo io non riesco a provare, perchè non ho più l'hardware per fare test. Prova però anche questo esempio:
http://www.codeproject.com/KB/system/Serialport_COM.aspx
Convertilo in C#, facendo il new System.IO.Ports.SerialPort("COM1", 9600, Parity.None, 8, StopBits.One) e attaccando l'evento DataReceived.
Il delegato del DataReceived dovrebbe essere:
void DataReceived(Object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
Vedi se in quell'evento ti ritorna l'OK
Un po' di documentazione sul DataReceived:
http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.datareceived.aspx
Fammi sapere
- Michael -
http://blogs.dotnethell.it/Regulator/
margottina
Profilo
| Newbie
4
messaggi | Data Invio:
lun 17 nov 2008 - 16:08
CIAO... AVEVO PROVATO ANCHE L'EVENTO _DATARECEIVED MA PURTROPPO MI DAVA SEMPRE IL RITORNO DI CIò CHE SCRIVEVO... è come se scrivessi sul buffer e non lo facesse uscire ma lo girasse direttamente nel buffer di ingresso...
comunque continuo a provare ma ho finito le idee.... :(
grazie ancora
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
lun 17 nov 2008 - 16:24
>CIAO... AVEVO PROVATO ANCHE L'EVENTO _DATARECEIVED MA PURTROPPO
>MI DAVA SEMPRE IL RITORNO DI CIò CHE SCRIVEVO... è come se scrivessi
>sul buffer e non lo facesse uscire ma lo girasse direttamente
>nel buffer di ingresso...
>comunque continuo a provare ma ho finito le idee.... :(
>grazie ancora
Mi dispiace non poterti aiutare di più.
Magari a qualcun'altro della comunity viene in mente qualcos'altro...Stiamo a vedere se qualcuno ci viene in aiuto
- Michael -
http://blogs.dotnethell.it/Regulator/
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
lun 17 nov 2008 - 18:10
Ciao,
io avevo usato il codice mostrato qui:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=26071
con le impostazioni abbastanza classiche della portaCOM ,ossia:
Baud Rate: 115200
Data bit: 8
Stop Bit: One
DataParity: None
ps: notare che io avevo usato il metodo "ReadExisting()" e qualche sleep vario per svuotare il buffer prima di leggere ed aspettare che risponda il dispositivo.
ciao.
Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
lun 17 nov 2008 - 18:14
Quoto freeteo
, prova come ha detto lui
- Michael -
http://blogs.dotnethell.it/Regulator/
jack275
Profilo
| Junior Member
62
messaggi | Data Invio:
gio 20 nov 2008 - 09:45
Ciao,
ho letto gli altri commenti....
prova a guardare ke non ci sia un corto tra i piedini 2 e 3 della seriale
oppure se il circuito della com sul dispositivo e' stato fatto correttamente, per esempio puoi controllare le masse...
altre cose non mi vengono in mente
margottina
Profilo
| Newbie
4
messaggi | Data Invio:
gio 20 nov 2008 - 12:57
grazie... funziona con l'evento _DataReceived...
ho sistemato tutto... grazie ancora!
0v3rCl0ck
Profilo
| Guru
1.120
messaggi | Data Invio:
gio 20 nov 2008 - 13:20
>grazie... funziona con l'evento _DataReceived...
>ho sistemato tutto... grazie ancora!
>
Ah, benissimo
Accetta una risposta che chiudiamo il thread
Alla prossima...
Ciaooo
-------------------------------------------------------------------
Michael Denny
Senior Software Developer - Microsoft Framework (C# ASP.NET VB.NET)
http://blogs.dotnethell.it/Regulator/
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 !