Help Me! Không hiểu sau đoạn mã trên không hoạt động

Thảo luận trong 'LẬP TRÌNH CHO DI ĐỘNG' bắt đầu bởi namkiss, 16 Tháng chín 2011.

  1. namkiss Thành viên

    Sub SendSMS(MobileNumber As String, Message As String)
    MSComm1.CommPort = 10 'select the port it may change case to case
    MSComm1.PortOpen = True ' Open port

    MSComm1.Output = "AT" & Chr$(13)

    MSComm1.Output = "ATZ" & Chr$(13)
    MSComm1.Output = "ATE0" & Chr$(13)
    MSComm1.Output = "AT+CGREG=0" & Chr$(13)
    MSComm1.Output = "AT&W" & Chr$(13)
    MSComm1.Output = "AT+CMGF=1" & Chr$(13)
    MSComm1.Output = "AT+CSCS=" & Chr$(34) & "GSM" & Chr$(34) & Chr$(13)



    MSComm1.Output = "AT+CMGS=" & MobileNumber & Chr$(13) 'mobile number and enter character
    MSComm1.Output = "AT+CMGS=" & Message & Chr$(26) ' Message and ctrl+z character

    'Sleep 1000 ' USE API
    End Sub

    -------------------------------------------------
    Không gởi tin nhắn được, mình đã thử với chương trình Terminal câu lênh ok, chuyển qua VB6 thì ... không tài nào send được
  2. haiduyvu

    haiduyvu Thành viên

    Bài viết:
    339
    Được Like:
    419
    Bạn lập code gửi lệnh AT ra thiết bị sai rồi, để gửi được SMS thì sau khi open thành công có 4 bước
    AT+ CGMF=1 để lập chế độ
    AT+CGMS="số gửi tới"
    "nội dung gửi"
    chr(26)

    Trong code của bạn bị sai ở cái code này:
    MSComm1.Output = "AT+CMGS=" & Message & Chr$(26) ' Message and ctrl+z character
    vì lệnh AT+CMGS lúc này đang chờ bạn gửi tiếp nội dung tin nhắn và phím ctrl+z, nếu bạn lại dùng tiếp cú pháp AT+CGMS để gửi tiếp thì hóa ra là lệnh chưa xong đã lập lệnh AT mới à?
    Bạn chỉ cần sửa thành để hoàn thiện:
    MSComm1.Output = Message & Chr$(26)
  3. ukilu0

    ukilu0 Thành viên

    Bài viết:
    13
    Được Like:
    0
    lại phải ngâm cứu vụ này thôi