Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Comunicazione seriale con cellulare
Forum - C# / VB.NET - Comunicazione seriale con cellulare

Avatar
Cobra (Normal User)
Rookie


Messaggi: 29
Iscritto: 04/11/2011

Segnala al moderatore
Postato alle 12:53
Domenica, 11/12/2011
Ciao a tutti ragazzi,
sto alle prese con i comandi AT del mio cellulare. Ho creato un piccolo programma dotato di una textbox dove inserire il numero da chiamare e tre pulsanti che rappresentano l'avvio, la risposta e la chiusura di una chiamata. Effettuando una chiamata attraverso il comando ATDT seguito dal numero desiderato, il cellulare avvia la chiamata e fin qui tutto ok solo che, se invio il comando ATH (ovvero per chiudere la conversazione), anche se ricevo l'ok dal cellulare (ho fatto una prova con hyperterminal e come risultato da OK), la conversazione continua e non riesco per nessun motivo a chiuderla. Ho provato anche con il comando ATZ ma nulla da fare, la chiamata continua senza arrestarsi :( vi posto il codice per essere quanto più chiaro possibile :)

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Cellulare_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.         If SerialPort1.IsOpen Then
  3.             SerialPort1.Close()
  4.         End If
  5.  
  6.         Try
  7.             With SerialPort1
  8.                 .PortName = "COM4"
  9.                 .BaudRate = 115200
  10.                 .Parity = IO.Ports.Parity.None
  11.                 .DataBits = 8
  12.                 .StopBits = IO.Ports.StopBits.One
  13.             End With
  14.             SerialPort1.Open()
  15.         Catch ex As Exception
  16.             MsgBox(ex.ToString)
  17.         End Try
  18. end sub
  19.  
  20. Private Sub Chiama_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Chiama.Click
  21.         SerialPort1.WriteLine("ATDT " & TextBox1.Text & ";" & """" & vbCrLf)
  22.         SerialPort1.Write(Chr(26))
  23.     End Sub
  24.  
  25. Private Sub Chiudi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Chiudi.Click
  26.         SerialPort1.WriteLine("ATH" & vbCrLf)
  27.         SerialPort1.Write(Chr(26))
  28.     End Sub
  29.  
  30. Private Sub Rispondi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Rispondi.Click
  31.         SerialPort1.WriteLine("ATA" & vbCrLf)
  32.            End Sub



Per quanto riguarda i comandi AT vi posto questo link da cui ho preso spunto per creare il programma http://www.febat.com/Elettronica/Elettronica_comandi_AT.html

Grazie a tutti in anticipo :k: :k: :k:


« La vita è troppo breve per avere dei nemici. »
    
(Ayrton Senna)
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:07
Domenica, 11/12/2011
Prova da hyperterminal prima di dare ATH a dare il comando

+++


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Cobra (Normal User)
Rookie


Messaggi: 29
Iscritto: 04/11/2011

Segnala al moderatore
Postato alle 13:44
Domenica, 11/12/2011
Testo quotato

Postato originariamente da nessuno:

Prova da hyperterminal prima di dare ATH a dare il comando

+++



Ho provato a seguire il tuo consiglio, mi restituisce l'ok ma la chiamata non la chiude :-|


« La vita è troppo breve per avere dei nemici. »
    
(Ayrton Senna)
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5475
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 13:46
Domenica, 11/12/2011
Cioè usando

+++

dopo l'ok con

ATH

non chiude?


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
PM Quote
Avatar
Cobra (Normal User)
Rookie


Messaggi: 29
Iscritto: 04/11/2011

Segnala al moderatore
Postato alle 13:51
Domenica, 11/12/2011
Esatto, proprio così, ovvero, quando scrivo con hyperterminal succede questo:

+++

ATH

OK

questo che ho scritto e ciò che visualizzo, cioè scrivo +++, poi do invio, successivamente scrivo ATH, do invio ed ottengo l'OK ma la chiamata non la chiude. Ho provato anche a cambiare cellulare, ma fa sempre lo stesso "difetto" :(

Ultima modifica effettuata da Cobra il 11/12/2011 alle 13:53


« La vita è troppo breve per avere dei nemici. »
    
(Ayrton Senna)
PM Quote
Avatar
Cobra (Normal User)
Rookie


Messaggi: 29
Iscritto: 04/11/2011

Segnala al moderatore
Postato alle 15:26
Domenica, 11/12/2011
Anche facendo il contrario riscontro sempre il medesimo problema, ovvero, se prima scrivo ATH (ricevo OK), poi invio +++, non succede nulla e la conversazione continua. Imperterrito ho continuato a scrivere prima +++ dando invio, poi ATH, ricevo OK ma la conversazione non si chiude. Ho provato con il comando ATZ, ma non fa nulla, come se non "digerisse" il fatto di chiudere la chiamata e "bypassasse" l'evento :om:


« La vita è troppo breve per avere dei nemici. »
    
(Ayrton Senna)
PM Quote
Avatar
Cobra (Normal User)
Rookie


Messaggi: 29
Iscritto: 04/11/2011

Segnala al moderatore
Postato alle 15:43
Domenica, 11/12/2011
Ragazzi tutto ok, potete chiudere, il comando da utilizzare era AT+CHUP, grazie comunque per l'aiuto, grandi ;)


« La vita è troppo breve per avere dei nemici. »
    
(Ayrton Senna)
PM Quote