2012-11-22 2 views
1

내 응용 프로그램에서 SMS를 보내는 모듈을 개발하려고합니다. 문제는 연결된 휴대 전화에 AT 명령을 보낼 때 내 앱이 응답하지 않는다는 것입니다. Nokia 6720C를 사용하고 있으며 PC Suite를 설치했습니다. Com 포트에도 나타납니다.USB GSM 모뎀을 통해 SMS 보내기

내 코드는 다음과 같습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? ("vbCr"입니다)

Imports System 
Imports System.IO.Ports 
Imports System.Threading 
Imports System.ComponentModel 

Public Class Form1 
Delegate Sub SetTextCallback(ByVal [text] As String) 
Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click 

    With SerialPort1 
     .PortName = "COM14" 
     .DataBits = 8 
     .Parity = IO.Ports.Parity.None 
     .StopBits = StopBits.One 
    End With 

    SerialPort1.Open() 
    SerialPort1.Write("AT" & vbCr) 
    SerialPort1.Close() 
End Sub 

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived 
    ReceivedText(SerialPort1.ReadExisting()) 
End Sub 

Private Sub ReceivedText(ByVal [text] As String) 
    'compares the ID of the creating Thread to the ID of the calling Thread 
    If Me.TxtResponse.InvokeRequired Then 
     Dim x As New SetTextCallback(AddressOf ReceivedText) 
     Me.Invoke(x, New Object() {(text)}) 
    Else 
     Me.TxtResponse.Text &= [text] 
    End If 
End Sub 
+0

어디에서'SerialPort1'을 정의합니까? – Basic

+0

내 양식 designview에 SerialPort1을 사용합니다 .. – Malik

+0

감사합니다. 다음 질문은 응용 프로그램이 어떤 행에 매달려 있습니까? 각 코드 행에서'SerialPort1.Open()'과 'Step Over'에 중단 점을 넣으면'End Sub'에 도착합니까? 또한 정확한 COM 포트가 있는지 확인하십시오. – Basic

답변

0

음, AT 명령의 끝에서 당신은 Chr (13) 및 Chr (10)를 추가해야합니다, 당신이 사용 대하 (13) 만 (vbCrLf로 교체 시도 캐리지 리턴 "Chr (13)"및 라인 피드 "Chr (10)"). 나는 이것이 문제라고 생각한다 (명령 문자열은 완전하지 않다).

문제가 계속있는 경우

의 작업을 테스트하려면 다음을 수행하십시오

  1. 는 GSM 모뎀 (안 휴대 전화)와 통신 할 VB.NET 코드를 사용해보십시오. 잘 작동하면 전화기가 AT 명령을 받아들이지 않을 수도 있습니다.

  2. 터미널 프로그램을 사용하여 전화로 AT 명령을 보내보십시오. 터미널 프로그램은 "하이퍼 터미널"또는 "마에스트로 스마트 터미널"(Google에서 검색 할 수 있음)과 같을 수 있습니다.

저는 이것이 도움이 되었기를 바랍니다. 행운을 빕니다.

관련 문제